diff --git a/.gitattributes b/.gitattributes deleted file mode 100644 index f6a7cb0faa..0000000000 --- a/.gitattributes +++ /dev/null @@ -1,11 +0,0 @@ -# Usefull with: -# -# cat < ~/.local/bin/podiff -# #!/bin/sh -# grep -v '^#:' "$1" -# EOF -# chmod a+x ~/.local/bin/podiff -# git config diff.podiff.textconv podiff - -*.po diff=podiff merge=po3way -*.pot diff=podiff diff --git a/.gitignore b/.gitignore deleted file mode 100644 index 19a83abbae..0000000000 --- a/.gitignore +++ /dev/null @@ -1,12 +0,0 @@ -*.mo -.tx/**/*.po -venv/ -.idea/ -.DS_Store -.pospell/ -.make/ -.potodo/ -locales/ -.venv/ -.envrc -.vscode diff --git a/.potodoignore b/.potodoignore deleted file mode 100644 index 734b522417..0000000000 --- a/.potodoignore +++ /dev/null @@ -1,2 +0,0 @@ -venv/ -locales/ diff --git a/.scripts/check-colon.py b/.scripts/check-colon.py deleted file mode 100644 index e3187af409..0000000000 --- a/.scripts/check-colon.py +++ /dev/null @@ -1,105 +0,0 @@ -#!/usr/bin/env python -"""Check consistency of colons at the end of entries. - -It returns 0 if nothing was done, 1 if files were modified. -""" -import sys -import pathlib -import polib - - -def colon_is_visible(msg): - if msg.endswith(": ::"): - return True - if msg.endswith(" ::"): - return False - if msg.endswith("::"): - return True - raise ValueError("Don't know if msg ends with a visible or an invisible colon.") - - -def fix_double_colon(filename, entry, check, verbose): - fixed = entry.msgstr.rstrip(": \u202f\u00A0") - if colon_is_visible(entry.msgid): - fixed += "\u00A0::" - message = r"Expected translation to end with: '\u00A0::'" - else: - fixed += " ::" - message = "Expected translation to end with: ' ::'" - if entry.msgstr != fixed: - if check: - print(f"{filename}:{entry.linenum}: {message}") - if verbose: - print(entry) - else: - entry.msgstr = fixed - return True - return False - - -def fix_simple_colon(filename, entry, check, verbose): - fixed = entry.msgstr.rstrip(": \u202f\u00A0") - fixed += "\u00A0:" - if entry.msgstr != fixed: - if check: - print( - rf"{filename}:{entry.linenum}: Expected translation to end with: '\u00A0:'" - ) - if verbose: - print(entry) - else: - entry.msgstr = fixed - return True - return False - - -def check(filename, check, verbose): - try: - pofile = polib.pofile(filename) - except OSError: - print(f"{filename} doesn't seem to be a .po file", file=sys.stderr) - return True - has_errors = False - for entry in pofile: - if not entry.msgstr: - continue # No need to check untranslated entries. - if entry.msgid.endswith("::"): - has_errors |= fix_double_colon(filename, entry, check, verbose) - elif entry.msgid.endswith(":"): - has_errors |= fix_simple_colon(filename, entry, check, verbose) - - if not check and has_errors: - pofile.save() - return has_errors - - -def parse_args(): - import argparse - - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument( - "--check", - action="store_true", - default=False, - help="only display suspected entries, do not fix.", - ) - parser.add_argument( - "--verbose", - action="store_true", - default=False, - help="display whole entry", - ) - parser.add_argument("path", nargs="*") - return parser.parse_args() - - -def main(): - has_errors = False - args = parse_args() - for filename in args.path: - has_errors |= check(filename, args.check, args.verbose) - sys.exit(has_errors) - - -if __name__ == "__main__": - main() diff --git a/.scripts/check-headers.sh b/.scripts/check-headers.sh deleted file mode 100644 index 3a876361a5..0000000000 --- a/.scripts/check-headers.sh +++ /dev/null @@ -1,72 +0,0 @@ -#!/bin/sh - -if [ -z "$*" ] -then - exit 0 -fi - -grep -L '^# Copyright (C) [0-9-]*,\? Python Software Foundation' $* | while read -r file -do - cat <, YEAR.' $* | while read -r file -do - cat <, YEAR./d' "$file" - -EOF -done - - -grep -L '^"Project-Id-Version: Python 3\\n"$' $* | while read -r file -do - cat <\\n"' $* | while read -r file -do - cat <\\\\n"/"Language-Team: FRENCH \\\\n"/' $file - -EOF -done diff --git a/.scripts/fuzzy_diff b/.scripts/fuzzy_diff deleted file mode 100755 index 319e1c62df..0000000000 --- a/.scripts/fuzzy_diff +++ /dev/null @@ -1,76 +0,0 @@ -#!/bin/sh - - -_usage() { - echo "Usage: $0 [-n] PO_FILE" - echo "Ease the correction of fuzzies inserted by merge commits" - echo - echo "-n, --no-edit do not launch po editor" - exit -} - -LAUNCH_EDIT=1 -if [ $# -eq 2 ]; then - if [ "$1" = "-n" ] || [ "$1" = "--no-edit" ]; then - LAUNCH_EDIT=0 - else - _usage - fi - shift -fi - -if [ $# -ne 1 ]; then - _usage -fi - -if [ ! -f "$1" ]; then - echo "$1: file not found" - _usage -fi - -# Temp directory to filter files before display -TMP_DIR=$(mktemp -d /tmp/fuzzy_diff.XXXXXX || exit 1) -trap 'rm --force --recursive "${TMP_DIR}"' EXIT - - -PO_EDITOR=poedit -DIFFTOOL=$(which $(git config diff.tool)) - -if [ ! -x "$DIFFTOOL" ]; then - echo "git diff.tool seems not configured" - _usage -fi - -PO_FILE=$1 - -if [ ${LAUNCH_EDIT} -eq 1 ]; then - ${PO_EDITOR} "${PO_FILE}" 2>/dev/null & -fi - -git blame --line-porcelain ${PO_FILE} | \ -awk '/^[0-9a-f]{40} / { sha=$1 } - /^author / {$1="" ; author=$0 } - /^committer-time / { $1="" ; date=$0 } - /^\s#, fuzzy/ { printf "%-10s %-40s %s\n", date, sha, author}' | -sort --numeric-sort --unique --reverse | -while read line ; do - gdh=$(date --date=@${line:0:10}) - sha=${line:11:40} - author=${line:52} - echo "Comparing with: ${gdh} - ${author}" - # filter files à la mode textconv - git show ${sha}^:${PO_FILE} | \ - grep --invert-match \ - --regexp='^#:' \ - --regexp='^"PO' > "${TMP_DIR}/${gdh}.po" - # reload current file every time as it may has been modified - grep --invert-match \ - --regexp='^#:' \ - --regexp='^"PO' ${PO_FILE} > ${TMP_DIR}/current.po - "${DIFFTOOL}" "${TMP_DIR}/${gdh}.po" ${TMP_DIR}/current.po -done - -# clean up temp directory -rm --force --recursive "${TMP_DIR}" -trap - EXIT - diff --git a/.scripts/line-length.py b/.scripts/line-length.py deleted file mode 100644 index 9d061ad819..0000000000 --- a/.scripts/line-length.py +++ /dev/null @@ -1,45 +0,0 @@ -#!/usr/bin/env python -"""Measure line length in given files, run as: - - python line-length.py *.po - -It does not count zero-width caracters from the Mn Unicode category -(Nonspacing Mark). - -It returns 0 on success, 1 on failure. -""" - -import fileinput -import sys -from unicodedata import category - -MAX_LINE_LENGTH = 80 - -def clean(line): - """Prepare the line to be measured. - - See https://lists.gnu.org/archive/html/bug-gettext/2025-10/msg00010.html - about hiding spaces before colon. - """ - line = "".join(char for char in line if category(char) != "Mn").rstrip("\n") - line = line.replace(" :", " :") # It's not allowed to split a line before `:` - return line - - -return_code = 0 - -for line in fileinput.input(encoding="utf-8"): - line = clean(line) - - if line.count(" ") <= 2: - continue # Could be hard to break. - if len(line) > MAX_LINE_LENGTH: - print( - f"{fileinput.filename()}:{fileinput.filelineno()} line too long " - f"({len(line)} > {MAX_LINE_LENGTH} characters)", - file=sys.stderr, - ) - return_code = 1 - - -sys.exit(return_code) diff --git a/.scripts/merge.py b/.scripts/merge.py deleted file mode 100644 index 30c106de07..0000000000 --- a/.scripts/merge.py +++ /dev/null @@ -1,157 +0,0 @@ -"""Tool to merge cpython pot files to python-docs-fr po files for a -given branch. -""" - -import argparse -import re -import shutil -import subprocess -from pathlib import Path -from subprocess import PIPE - -from tqdm import tqdm - -NOT_TO_TRANSLATE = {Path("whatsnew/changelog.po")} - - -def run(*args: str | Path, **kwargs) -> subprocess.CompletedProcess: - """Run a shell command with subprocess.run() with check=True and - encoding="UTF-8". - """ - return subprocess.run(list(args), encoding="UTF-8", check=True, **kwargs) - - -def parse_args(): - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument( - "--cpython_repo", - default=Path("venv/cpython"), - type=Path, - help="Use this given cpython clone.", - ) - parser.add_argument( - "branch", - help="Merge from this branch or from this commit", - ) - return parser.parse_args() - - -def setup_repo(repo_path: Path, branch: str): - """Ensure we're up-to-date.""" - if branch.find('.') == 1: - run("git", "-C", repo_path, "checkout", branch) - run("git", "-C", repo_path, "pull", "--ff-only") - else: # it's a commit - run("git", "-C", repo_path, "checkout", branch) - - -def copy_new_files(new_files: set[Path], pot_path: Path) -> None: - """Just copy new po files to our hierarchy.""" - print(f"{len(new_files)} new files.") - for file in new_files: - file.parent.mkdir(parents=True, exist_ok=True) - src = (pot_path / file).with_suffix(".pot") - run("msgcat", "-o", file, src) - run("git", "add", file) - - -def update_known_files(known_files: set[Path], pot_path: Path) -> None: - """msgmerge updated pot files in our po files.""" - print(f"{len(known_files)} files to update.") - for file in tqdm(known_files, desc="merging pot files"): - src = (pot_path / file).with_suffix(".pot") - run("msgmerge", "-q", "--backup=off", "--force-po", "-U", file, src) - - -def remove_old_files(old_files: set[Path]) -> None: - """Remove files removed upstream.""" - print(f"{len(old_files)} removed files.") - - for file in old_files: - run("git", "rm", file) - - -def clean_paths(files: set[Path]) -> None: - """Ensure the path present in po files are always relative. - - This avoid having diffs on those paths when we change something in - a script. - """ - for file in tqdm(files, desc="Cleaning rst path in pot files"): - contents = file.read_text(encoding="UTF-8") - contents = re.sub("^#: .*Doc/", "#: ", contents, flags=re.M) - file.write_text(contents, encoding="UTF-8") - - -def update_makefile(cpython_repo: Path) -> None: - """Update CPYTHON_CURRENT_COMMIT in the Makefile. - - So that when we run `make` it use the same commit than the one - used to generate the `po` files. - """ - makefile = Path("Makefile").read_text(encoding="UTF-8") - head = run( - "git", "-C", cpython_repo, "rev-parse", "HEAD", stdout=PIPE - ).stdout.strip() - makefile = re.sub( - "^CPYTHON_CURRENT_COMMIT :=.*$", - f"CPYTHON_CURRENT_COMMIT := {head}", - makefile, - flags=re.M, - ) - Path("Makefile").write_text(makefile, encoding="UTF-8") - run("git", "add", "Makefile") - - -def git_add_relevant_files(): - """Add only files with relevant modifications. - - This only add files with actual modifications, not just metadata - modifications, to avoid noise in history. - """ - modified_files = run("git", "ls-files", "-m", stdout=PIPE).stdout.split("\n") - modified_po_files = [line for line in modified_files if line.endswith(".po")] - for file in modified_po_files: - diff = run("git", "diff", "-U0", file, stdout=PIPE).stdout - if len(diff.split("\n")) > 8: - run("git", "add", file) - else: - run("git", "checkout", "--", file) - - -def main(): - args = parse_args() - setup_repo(args.cpython_repo, args.branch) - run( - "sphinx-build", - "-jauto", - "--silent", - "-Dgettext_compact=0", - "-Dgettext_additional_targets=['index']", - "-bgettext", - ".", - "../pot", - cwd=args.cpython_repo / "Doc", - ) - pot_path = args.cpython_repo / "pot" - upstream = { - file.relative_to(pot_path).with_suffix(".po") - for file in pot_path.glob("**/*.pot") - } - NOT_TO_TRANSLATE - downstream = { - Path(po) - for po in run("git", "ls-files", "*.po", stdout=PIPE).stdout.splitlines() - } - copy_new_files(upstream - downstream, pot_path=pot_path) - update_known_files(upstream & downstream, pot_path=pot_path) - remove_old_files(downstream - upstream) - clean_paths(upstream) - shutil.rmtree(pot_path) - run("powrap", "-m") - update_makefile(args.cpython_repo) - git_add_relevant_files() - run("git", "commit", "-m", "Make merge") - - -if __name__ == "__main__": - main() diff --git a/.scripts/plot.png b/.scripts/plot.png deleted file mode 100644 index ff35514c26..0000000000 Binary files a/.scripts/plot.png and /dev/null differ diff --git a/.scripts/plot.py b/.scripts/plot.py deleted file mode 100644 index f3062fff62..0000000000 --- a/.scripts/plot.py +++ /dev/null @@ -1,165 +0,0 @@ -import datetime - -from matplotlib import pyplot as plt - -r"""Update using something like: - -YEAR=2025 -for i in $(seq -w 01 12) -do - git clean -dfqx >/dev/null - git checkout -- . >/dev/null - git checkout $(git log 3.15 --after "$YEAR-$i-01" | grep ^commit | tail -n 1 | cut -d' ' -f2) >/dev/null 2>/dev/null - python -c 'import sys; print("datetime.date({}, {}, {}): {:.1f},".format(int(sys.argv[3]), int(sys.argv[4]), int(sys.argv[5]), 100 * int(sys.argv[1]) / int(sys.argv[2])))' \ - "$(ls -1 *.po */*.po | grep -v 'whatsnew/changelog\|whatsnew/2\|whatsnew/3.[0-8]\|setupscript.po\|random.po\|typing.po' | xargs msgcat -u --use-first | msgattrib --translated | grep -c '^msgid')" \ - "$(ls -1 *.po */*.po | grep -v 'whatsnew/changelog\|whatsnew/2\|whatsnew/3.[0-8]\|setupscript.po\|random.po\|typing.po' | xargs msgcat -u --use-first | grep -c '^msgid')" \ - $(git show -s --pretty=format:%cs | tr '-' ' ') -done -""" - - -plt.xkcd() - -# According to `make progress` - -progress = { - datetime.date(2012, 10, 1): 0, - datetime.date(2012, 12, 1): 4, - datetime.date(2013, 12, 1): 4, - datetime.date(2014, 11, 1): 4, - datetime.date(2015, 12, 1): 5, - datetime.date(2016, 1, 4): 6, # f8933be - datetime.date(2016, 2, 1): 15, # very short untranslatable strings - datetime.date(2016, 3, 4): 16, # 18c7d86 - datetime.date(2016, 4, 12): 17, # 4616b26 - datetime.date(2016, 5, 1): 18, # dd31bac - datetime.date(2016, 6, 13): 20, # d16d992 - datetime.date(2016, 7, 3): 20, # 9e52ea9 - datetime.date(2016, 10, 17): 20, # efc39ad... - # Changement de repo - datetime.date(2016, 11, 5): 19, # e61fde28 - datetime.date(2017, 1, 17): 19, # 384a9e5c - datetime.date(2017, 3, 5): 19.3, # 384a9e5c - datetime.date(2017, 4, 2): 19.5, - datetime.date(2017, 5, 10): 20, - datetime.date(2017, 6, 1): 21.3, - datetime.date(2017, 7, 6): 22.2, - datetime.date(2017, 8, 1): 22.2, - datetime.date(2017, 9, 5): 23.3, - datetime.date(2017, 10, 2): 24.5, - datetime.date(2017, 11, 5): 26.5, - datetime.date(2017, 12, 1): 27.1, - datetime.date(2018, 1, 4): 27.3, - datetime.date(2018, 1, 30): 27.8, - datetime.date(2018, 3, 1): 27.8, - datetime.date(2018, 5, 21): 29.9, - datetime.date(2018, 7, 2): 30, - datetime.date(2018, 8, 1): 33, - datetime.date(2018, 9, 15): 33.2, - datetime.date(2018, 11, 1): 37.6, - datetime.date(2018, 12, 7): 39.6, - datetime.date(2019, 1, 2): 40.1, - datetime.date(2019, 2, 3): 41, - datetime.date(2019, 3, 1): 43.2, - datetime.date(2019, 4, 2): 44.6, - datetime.date(2019, 5, 6): 45, - datetime.date(2019, 6, 3): 45.6, - datetime.date(2019, 7, 2): 47.1, - datetime.date(2019, 8, 13): 47.4, - datetime.date(2019, 9, 3): 49.4, - datetime.date(2019, 9, 30): 47.9, # Coût du passage en 3.8 - datetime.date(2019, 10, 2): 47.9, - datetime.date(2019, 11, 1): 48.5, - datetime.date(2019, 12, 1): 48.8, - datetime.date(2020, 1, 2): 49.6, - datetime.date(2020, 2, 1): 50.0, - datetime.date(2020, 3, 3): 50.9, - datetime.date(2020, 4, 1): 51.1, - datetime.date(2020, 5, 1): 51.4, - datetime.date(2020, 6, 5): 53.2, - datetime.date(2020, 7, 1): 53.4, - datetime.date(2020, 8, 4): 52.8, - datetime.date(2020, 9, 9): 53.4, - datetime.date(2020, 10, 1): 54.1, - datetime.date(2020, 11, 6): 54.1, - datetime.date(2020, 12, 2): 54.1, - datetime.date(2021, 2, 2): 54.0, - datetime.date(2021, 3, 1): 54.4, - datetime.date(2021, 4, 1): 54.8, - datetime.date(2021, 5, 4): 55.1, - datetime.date(2021, 6, 4): 56.2, - datetime.date(2021, 7, 14): 56.4, - datetime.date(2021, 8, 5): 56.4, - datetime.date(2021, 9, 6): 56.4, - datetime.date(2021, 11, 1): 58, - datetime.date(2022, 1, 27): 58.2, - datetime.date(2022, 2, 4): 58.2, - datetime.date(2022, 3, 6): 58.2, - datetime.date(2022, 4, 5): 57.2, - datetime.date(2022, 5, 23): 57.2, - datetime.date(2022, 9, 13): 58.1, - datetime.date(2022, 10, 27): 58.7, - datetime.date(2022, 11, 1): 58.7, - datetime.date(2022, 12, 6): 59.9, - datetime.date(2023, 1, 2): 60.3, - datetime.date(2023, 2, 4): 60.2, - datetime.date(2023, 3, 5): 60.8, - datetime.date(2023, 4, 1): 61.0, - datetime.date(2023, 5, 14): 61.3, - datetime.date(2023, 6, 20): 61.5, - datetime.date(2023, 7, 4): 61.7, - datetime.date(2024, 1, 2): 62.8, - datetime.date(2024, 3, 23): 63.7, - datetime.date(2024, 4, 3): 64.7, - datetime.date(2024, 5, 14): 64.7, - datetime.date(2024, 8, 24): 64.7, - datetime.date(2024, 10, 1): 64.7, - datetime.date(2025, 10, 17): 62.2, -} - -plt.rcParams["figure.figsize"] = (20, 10) - -f, ax = plt.subplots(1) -ax.plot(list(progress.keys()), list(progress.values()), linestyle="-") -ax.annotate( - "Bump to 3.10", - (datetime.date(2021, 9, 24), 56.4), - xytext=(datetime.date(2021, 9, 24), 40), - arrowprops={"arrowstyle": "->"}, -) -ax.annotate( - "Bump to 3.9", - (datetime.date(2020, 8, 4), 52.8), - xytext=(datetime.date(2020, 6, 5), 35), - arrowprops={"arrowstyle": "->"}, -) -ax.annotate( - "Bump to 3.8", - (datetime.date(2019, 9, 30), 47.9), - xytext=(datetime.date(2019, 9, 4), 30), - arrowprops={"arrowstyle": "->"}, -) -ax.annotate( - "Meetups AFPy mensuels", - (datetime.date(2018, 9, 1), 29.4), - xytext=(-10, -40), - textcoords="offset points", - arrowprops={"arrowstyle": "->"}, -) -ax.annotate( - "/python/python-docs-fr/", - (datetime.date(2016, 11, 5), 23.5), - xytext=(-100, 50), - textcoords="offset points", - arrowprops={"arrowstyle": "->"}, -) -ax.annotate( - "Working on very short strings", - (datetime.date(2016, 1, 15), (6 + 16) / 2), - xytext=(-10, -50), - textcoords="offset points", - arrowprops={"arrowstyle": "->"}, -) -plt.ylabel("%") -ax.set_ylim(ymin=0) -plt.savefig("fr_translation_percent.png") diff --git a/.scripts/replace.py b/.scripts/replace.py deleted file mode 100755 index 5e1dcc4a86..0000000000 --- a/.scripts/replace.py +++ /dev/null @@ -1,41 +0,0 @@ -#!/usr/bin/env python -"""Search and replace in msgstrs.""" - -import sys -from pathlib import Path - -import polib - - -def replace(file: Path, from_str: str, to_str: str) -> None: - try: - pofile = polib.pofile(file) - except OSError: - print(f"{file} doesn't seem to be a .po file", file=sys.stderr) - return - for entry in pofile: - entry.msgstr = entry.msgstr.replace(from_str, to_str) - pofile.save() - - -def parse_args(): - import argparse - - parser = argparse.ArgumentParser(description=__doc__) - parser.add_argument("from_str", help="Replace occurrences of this string") - parser.add_argument( - "to_str", - help="with this string.", - ) - parser.add_argument("path", nargs="*", type=Path) - return parser.parse_args() - - -def main(): - args = parse_args() - for filename in args.path: - replace(filename, args.from_str, args.to_str) - - -if __name__ == "__main__": - main() diff --git a/.woodpecker.yml b/.woodpecker.yml deleted file mode 100644 index 8148310380..0000000000 --- a/.woodpecker.yml +++ /dev/null @@ -1,37 +0,0 @@ ---- - -# `make check` only checks changed files, so it make sense only on -# pull requests. - -# Also we're using `branch: "$CI_COMMIT_SOURCE_BRANCH"` because the -# default branch name is the target branch, conflicting with the fact -# the Makefile tries to compare the current branch to the target -# branch... - -when: - event: pull_request - -clone: - git: - image: woodpeckerci/plugin-git - pull: true - settings: - branch: ${CI_COMMIT_SOURCE_BRANCH} - -steps: - fetch target branch: - image: python - commands: - - BRANCH="$(make print-BRANCH)" - - git fetch origin --no-tags +refs/heads/$BRANCH - - git branch $BRANCH origin/$BRANCH - - git branch -va - - test: - image: python - commands: - - apt-get update - - apt-get install -y hunspell hunspell-fr-comprehensive gettext - - python3 -m pip install -r requirements.txt - - make diff - - make check diff --git a/CONTRIBUTING-CORE.rst b/CONTRIBUTING-CORE.rst deleted file mode 100644 index 4458778519..0000000000 --- a/CONTRIBUTING-CORE.rst +++ /dev/null @@ -1,74 +0,0 @@ -Nouvelle branche upstream -------------------------- - -Lorsque cpython crée une nouvelle branche, il devient possible de la -traduire :: - - git switch -c 3.16 - python .scripts/merge.py --cpython_repo ../cpython/ origin/3.16 - make check-all -j 8 - -Il faut mettre à jour la variable ``BRANCH`` dans le ``Makefile``. - - -Maintenance ------------ - -Dans certains cas on a besoin de propager des traductions d'une branche -à l'autre : - -- d'une ancienne branche vers une nouvelle branche : lors du passage - d'une version à l'autre de CPython, lorsque quelqu'un a une PR sur une - ancienne version (*forward porting*) ; -- d'une nouvelle branche vers des anciennes branches : pour propager - de temps en temps le travail sur d'anciennes versions (rétroportage - ou *backporting*). - -Pour forward-porter un ou plusieurs commits, il vaut mieux utiliser ``git -cherry-pick -x LE_SHA``, ça garde l'auteur, le sha1 d'origine, et -toutes les modifications. - -Pour rétroporter « en gros » on utilise ``pomerge``\ : on le fait lire -sur une branche, puis écrire sur une autre, par exemple pour copier de -la 3.8 à la 3.7 : - -.. code-block:: bash - - git fetch - git checkout 3.8 - git reset --hard upstream/3.8 - pomerge --from-files *.po */*.po - git checkout --branch back-porting upstream/3.7 - pomerge --no-overwrite --to-files *.po */*.po - powrap --modified - git add --patch - git commit --message="Backporting from 3.8" - git push --set-upstream origin HEAD - - -Notes : - -- j'utilise ``git fetch`` au début pour avoir *upstream/3.7* et - *upstream/3.8* à jour localement, ainsi je peux travailler sans - toucher au réseau jusqu'au ``git push``, mais chacun fait comme il - veut ; -- j'utilise ``*.po */*.po`` et pas ``**/*.po``, car si vous avez un - *venv* dans l'arborescence il va vous trouver des traductions de Sphinx - et peut-être d'autres paquets dans ``.venv/lib/python*/`` (et mettre - beaucoup plus de temps) ; -- j'utilise ``pomerge --no-overwrite``, ça indique à ``pomerge`` de - n'écrire que si le ``msgstr`` est vide, donc de ne pas modifier - l'existant, ainsi il est impossible de casser quelque chose. - On peut le tenter sans ``--no-overwrite``, attention, ça fait - des bêtises, ça nécessite une relecture attentive : - certaines traductions, comme *example:* sont en parfois traduites en - français avec une majuscule, et parfois non, en - fonction du contexte, ``pomerge`` uniformiserait ça, ce n'est pas bien ; -- attention, si vous testez sans ``--no-overwrite``, il est peut-être - bon de vider la mémoire de ``pomerge`` avant la lecture, pour éviter - de lui faire écrire des choses lues lors des sessions précédentes, - via un ``rm -f ~/.pomerge.json``\ ; -- j'utilise ``git add --patch`` (ou ``-p``) car j'aime bien relire quand même, - en général, je n'ajoute pas les différences d'ordre dans les entêtes, - mais un ``git add --update`` irait très bien ; -- attention au fichier *dict* auquel il peut manquer des lignes. diff --git a/CONTRIBUTING.rst b/CONTRIBUTING.rst deleted file mode 100644 index 50679a10f7..0000000000 --- a/CONTRIBUTING.rst +++ /dev/null @@ -1,847 +0,0 @@ -Guide de contribution à la documentation -######################################## - -.. |branch| replace:: 3.15 - - -Prérequis -========= - -Outils nécessaires ------------------- - -Pour participer à la traduction, vous aurez besoin d'installer : - -- un client ``git`` `Linux `_, `MacOS - `_ ou `Windows `_ ; - -- un éditeur de fichier ``.po`` (comme `Poedit `_). - - -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 :: - - python3 -m pip install poutils - - -.. _cloner: - -Première étape : créer et peupler son dépôt -=========================================== - -Créer un compte ---------------- - -Si ce n'est pas déjà fait, créez un compte sur `la forge de l'AFPy -`_ (souvent nommée Forgejo plus loin, ça se -prononce `/forˈd͡ʒe.jo/ `_). - - -Créer un *fork* du dépôt des fichiers de traduction ---------------------------------------------------- - -Commençons par créer une copie du dépôt ``python-docs-fr`` sur -Forgejo, pour cela rendez-vous sur le dépôt `python-docs-fr -`_ et cliquez sur le bouton -« Fourche » (*Fork*) en haut à droite. - -De votre point de vue il existe maintenant deux versions de -``python-docs-fr`` : - -- https://git.afpy.org/AFPy/python-docs-fr le dépôt commun, que vous n'avez pas le droit de modifier. -- https://git.afpy.org/VOTRE_LOGIN/python-docs-fr votre dépôt, que vous avez le droit de modifier. - - -Créer sa paire de clés SSH (facultatif) ---------------------------------------- - -Une clé SSH permet d’effectuer des ``git pull`` et des ``git push`` en -utilisant SSH : sans avoir à saisir son identifiant et son mot de -passe HTTP à chaque fois : c'est du confort. - -Vous pouvez sauter cette section pour le moment : vous pourrez y -revenir plus tard. - -Si vous n'avez pas encore de clé SSH, créez une paire de clés SSH en -utilisant la commande ``ssh-keygen``, consultez `le guide de GitLab -`_ si vous souhaitez en -savoir plus. - -Vous obtiendrez deux fichiers : typiquement ``id_ed25519`` et -``id_ed25519.pub`` (ou ``id_rsa`` et ``id_rsa.pub``). Le premier est -votre clé privée, elle **doit** rester secrète. La seconde se -terminant par ``.pub`` est votre clé publique, comme son nom l'indique -vous pouvez la partager publiquement. - - -Ajouter sa clé SSH à la forge de l'AFPy ---------------------------------------- - -Pour ajouter votre clé publique sur Forgejo, allez dans le menu de -votre compte en haut à droite et cliquez sur « Configuration », puis -d'aller dans l'onglet « Clés SSH / GPG », et copiez votre clé SSH -publique. - -Cette clé publique sur le serveur Forgejo lui permet de s'assurer de -votre identité (en générant des défis que seul le détenteur de la clé -privée peut résoudre). - - -Obtenir une copie du dépôt sur son ordinateur ---------------------------------------------- - -Enfin, faites une copie locale du dépôt sur votre ordinateur afin de -pouvoir éditer les fichiers, avec ces commandes : - -.. code-block:: bash - - # Si vous utilisez une clé SSH : - git clone git@git.afpy.org:VOTRE_NOM_DE_COMPTE_FORGEJO/python-docs-fr.git - - # Sinon : - git clone https://git.afpy.org/VOTRE_NOM_DE_COMPTE_FORGEJO/python-docs-fr.git - - # Allez dans le répertoire cloné : - cd python-docs-fr/ - - # Profitez-en pour indiquer à git qu'il existe aussi le dépôt - # commun (qu'on nomme upstream) : - git remote add upstream https://git.afpy.org/AFPy/python-docs-fr.git - - -À partir de maintenant de votre point de vue il existe trois copies -des fichiers : - -- Une sur votre ordinateur, pour la modifier aisément. -- Une appartenant à l'AFPy sur Forgejo, que ``git`` appelle ``upstream``. -- Une vous appartenant sur Forgejo, que ``git`` appelle ``origin``. - - -Deuxième étape : choisir et réserver le fichier sur lequel travailler -===================================================================== - -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 ----------------------------------------- - -Si vous avez besoin d'aide pour choisir un fichier à traduire, vous -pouvez utiliser la commande ``make todo`` (dans le dossier -``python-docs-fr``). - -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 -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.* - -Pour éviter que quelqu'un d'autre fasse le travail en double. - -Une fois que vous avez choisi un fichier sur lequel travailler vous pouvez nous -le signaler par différents moyens : - -* Soit en ouvrant un `ticket sur Forgejo `_ - en indiquant dans le titre ``Je travaille sur DOSSIER/FICHIER.po`` - (par exemple « Je travaille sur library/sys.po »). - -Ceci permet à `potodo`_ de détecter via l'API Forgejo les fichiers ``.po`` réservés -dans les tickets et les demandes d'ajout. - - -Création de la branche de traduction ------------------------------------- - -*Chaque fois que vous commencez un nouveau fichier, suivez cette procédure.* - -``git`` représente une session de travail sous forme d'une branche (en -traduisant vous allez faire diverger les fichiers qui sont sur votre -ordinateur par rapport aux fichiers publics, comme une branche qui se -sépare de son tronc). - -Pour éviter de travailler sur des fichiers modifiés par d'autres, -assurez-vous toujours que la base de votre future branche est « un -tronc » à jour. Pour ceci utilisez : - -.. code-block:: bash - - git fetch upstream - - -Créez ensuite une branche ``git``, dont la base est « upstream/|branch| », -Il est pratique de nommer cette branche en fonction du fichier sur -lequel on travaille. Par exemple, si vous travaillez sur -« library/sys.po », vous pouvez nommer votre branche « library-sys ». - -.. code-block:: bash - - git switch -c library-sys upstream/3.15 - -Chaque branche ayant un nom, avec un peu de pratique vous pourrez -bientôt avoir plusieurs sessions de travail en parallèle (avoir -plusieurs branches, travailler un peu sur l'une, puis un peu sur -l'autre, puis revenir à la première, …) ! - - -Troisième étape : la traduction -=============================== - -Avec Poedit ou avec votre éditeur préféré ------------------------------------------ - -Ici, remplacez « library/sys.po » par le fichier que vous avez choisi précédemment. - -.. code-block:: bash - - poedit library/sys.po - - -Ou lancez simplement Poedit puis « Fichier » → « Ouvrir ». - -Configurez votre nom et votre adresse de courriel (Édition → - Préférences → Général). - -Vérifiez également que poedit est configuré pour passer à la ligne à -79 caractères (Édition → Préférences → Avancé → Passer à la ligne à -79). - -Il n'est pas obligatoire de terminer un fichier, ni de le travailler -de haut en bas, chacun traduit ce qu'il souhaite. Cependant évitons de -changer plus de 200 lignes par *pull request* (pour le confort des -relecteurs). Faire plusieurs *pull requests* est bien sûr autorisé ! - -La vocation de ce projet de traduction n'est pas d'y injecter la -sortie brute d'un outil LLM. Si vous utilisez ce type d'outil, -veillez à faire une relecture attentive afin que ce que vous -soumettez soit agréable à lire et sémantiquement correct. - - -Vérifications après traduction ------------------------------- - -Après avoir modifié les fichiers, vérifiez que vous respectez les -`conventions`_ du projet. Pour vous y aider, la commande : - -.. code-block:: bash - - make check - -vérifie la longueur des lignes et l'orthographe (mais pas la -grammaire, pour cela utilisez `padpo (beta)`_). En cas de doute, un -`glossaire`_ répertorie déjà les traductions retenues pour certains -termes techniques ou faux amis en anglais. - -Si ``make check`` 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, vous pouvez générer la documentation -pour les relire. Si la commande précédente s'est exécutée sans erreur, -la génération ne devrait pas échouer. - -.. code-block:: bash - - make htmlview - -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 htmlview``. - - -Quatrième étape : publier sa traduction -======================================= - -Une fois que le ``make check`` 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 votre dépôt Forgejo. - -* ``git add`` permet d’indiquer à git quels fichiers vous voulez - ajouter au futur ``commit``. - -.. code-block:: bash - - git add library/sys.po - - -* ``git commit`` permet de valider les modifications effectuées. - -.. code-block:: bash - - git commit --message "Traduction de library/sys.po" # Ou un autre message plus inspiré :) - - -Publiez ensuite vos modifications sur votre dépôt Forgejo avec ``git push``. - -.. code-block:: bash - - git push origin - - -Sur Forgejo ------------ - -La commande précédente vous affiche un lien pour ouvrir une demande d'ajout sur -Forgejo. Si vous l'avez manqué, allez simplement sur -https://git.afpy.org/AFPy/python-docs-fr/pulls et cliquez -sur le bouton « Nouvelle demande d'ajout ». - -Mettez dans le commentaire de la demande d'ajout le texte suivant : -« Closes #XXXX » où XXXX est le numéro du ticket Forgejo créé pour réserver le -fichier traduit. Cela permet à Forgejo de lier la demande d'ajout au ticket de -réservation. - -Pour le moment vous savez : - -- récupérez des modifications depuis *upstream* (le dépôt commun sur Forgejo) ; -- poussez des modifications vers *origin* (votre dépôt sur Forgejo). - -Mais vous ne pouvez pas faire la dernière étape : copier les -modifications depuis votre dépôt Forgejo vers le dépôt commun Forgejo, -c'est le travail d’un administrateur du dépôt commun. - -Toutes les traductions sont faites sur la dernière version. -Nous ne traduisons jamais sur une version plus ancienne. Par exemple, -si la dernière version de python est Python |branch|, nous ne voulons pas -traduire directement sur la version Python 3.6. - - -Conventions -=========== - -Certaines conventions ont été édictées pour homogénéiser la traduction. -Il faut suivre les règles de `style`_ imposées, les `règles rst`_ et -les traductions déjà définies dans le `glossaire`_. - - -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 -agréable à lire. Les traductions mot-à-mot sont à proscrire et il est permis — même -conseillé — d'intervertir des propositions ou de réarranger des phrases de la -documentation anglaise, si le rythme l'exige. Il faut aussi chercher des -équivalents français aux termes techniques et aux idiotismes rencontrés, et prendre -garde aux anglicismes. - - -Utilisation du futur -^^^^^^^^^^^^^^^^^^^^ - -Dans la description du comportement de Python (au sens large, c'est-à-dire -l'interpréteur lui-même mais aussi toutes les bibliothèques), la version -originale utilise souvent le futur : « if you do this, it will produce -that… ». En français, l'utilisation du présent convient tout à fait et le -présent est souvent plus facile à lire : « si vous faites ceci, il se -produit cela… ». On ne conserve le futur que si la seconde proposition -se situe réellement dans le futur (par exemple, on peut penser qu'un -processus de compilation n'est pas immédiat) ou pour des raisons de -concordance des temps. - - -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 on peut de temps en temps se passer, alors que c'est très -rarement le cas pour les « you should » de cette documentation. -De la même manière, « can » est souvent mieux traduit sans introduire de notion -de possibilité, en particulier quand la phrase est à la voix passive ; la -phrase « these objects can be accessed by… » se traduit mieux par « on accède à -ces objets en… ». - - -Utilisation du masculin -^^^^^^^^^^^^^^^^^^^^^^^ - -Dans un souci de lisibilité et en accord avec la préconisation de -l'Académie française, nous utilisons le masculin pour indiquer un -genre neutre. Par exemple : l'utilisateur ou le lecteur. - - -Règles rst ----------- - -Prototypes et exemples -^^^^^^^^^^^^^^^^^^^^^^ - -Il ne faut pas traduire le nom des éléments de la bibliothèque standard (noms -de fonctions, paramètres de ces fonctions, constantes, etc.) mais les laisser -tels quel, entourés d'astérisques dans les blocs de texte. -Si la documentation contient des exemples, vous *pouvez* traduire les noms -utilisés, en prenant garde d'être cohérent. Vous pouvez ainsi traduire : - -.. code-block:: python - - def sample_function(): - result = thread.join(timeout=...) - ... - - -en - -.. code-block:: python - - def fonction_exemple(): - resultat = thread.join(timeout=...) - ... - - -mais pas en - -.. code-block:: python - - def fonction_exemple(): - resultat = fildexécution.attendre(délai=...) - ... - - -Liens hypertextes -^^^^^^^^^^^^^^^^^ - -Il faut transformer les liens hypertextes qui redirigent vers une page dont il -existe une version française (c'est notamment très souvent le cas pour les -articles de Wikipédia). Modifiez le lien *et* sa description dans ce cas. -Si aucune traduction de la cible n'existe, ne traduisez pas la description. -Par exemple, ```Conway's Game of Life `_`` -doit devenir ```Jeu de la vie `_``. - - -Balises -^^^^^^^ - -Ne traduisez pas le contenu des balises comme ``:ref:...`` ou ``:class:...``. -Vous devez cependant traduire les balises ``:term:...``, qui font référence à -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 ` - -Comme le glossaire est déjà traduit, il y a forcément une correspondance à chaque -terme que vous pouvez rencontrer. - - -Glossaire -========= - -Afin d'assurer la cohérence de la traduction, voici quelques -termes fréquents déjà traduits. Une liste blanche de noms propres, comme « Guido », -« C99 » ou de certains anglicismes comme « sérialisable » ou « implémentation», -est stockée dans le fichier *dict* à la racine du projet. Vous pouvez -y ajouter une entrée si cela est nécessaire. -Si vous devez *absolument* utiliser un mot anglais, mettez-le en italique -(entouré par des astérisques). - -Pour trouver facilement comment un terme est déjà traduit dans la -documentation, vous pouvez utiliser `pogrep`_. - -========================== =============================================== -Terme Traduction -========================== =============================================== --like -compatible -abstract data type type abstrait -argument argument (à ne pas confondre avec *paramètre*) -backslash antislash, *backslash* -backtrace trace d'appels, trace de pile -backport rétroporter -base class classe mère -bound lier -bug bogue -built-in natif -bytecode code intermédiaire -callback fonction de rappel -call stack pile d'appels -caught (exception) interceptée -code points points de code -daemon *daemon* -debugging débogage -deep copy copie récursive (préféré), ou copie profonde -double quote guillemet -deprecated obsolète -e.g. p. ex. (on n'utilise pas l'anglicisme « e.g. », - lui-même issu du latin *exempli gratia*). - On sépare les deux mots par une espace - insécable pour éviter les retours à la ligne - malheureux. -et al. et autres, `à accorder - `_ - suivant le contexte -export exportation -expression expression -framework cadriciel -frozen package or set paquet ou ensemble figé -garbage collector ramasse-miettes -getter accesseur -i.e. c.-à-d. (on n'utilise pas l'anglicisme « i.e. », - lui-même issu du latin *id est*) -identifier identifiant -immutable immuable -import importation -index indice (en particulier quand on parle de chaînes - de caractères) -installer installateur -interpreter interpréteur -keyword mot clé -keyword argument argument nommé -library bibliothèque -list comprehension liste en compréhension (liste en intension est - valide, mais nous ne l'utilisons pas) -little-endian, big-endian `petit-boutiste, gros-boutiste - `_ -mixin type type de mélange -mutable `mutable `_ -namespace espace de nommage - (sauf pour le XML où c'est espace de noms) -parameter paramètre -parse, parser analyser, analyseur syntaxique -pickle (v.) sérialiser -prompt invite -raise lever -regular expression expression rationnelle, expression régulière -return renvoie, donne (on évite « retourne » qui - pourrait porter à confusion) -roughly approximativement, à peu près (on ne traduit pas - « roughly equivalent » par « sensiblement équivalent ») -setter mutateur -simple quote guillemet simple -slot emplacement -socket connecteur ou interface de connexion -sort trier (préféré), ordonner, classer -specify définir, préciser (plutôt que « spécifier ») -statement instruction -subprocess sous-processus -support prendre en charge, implémenter (« supporter » - n'a pas le même sens en français) -token (parsing) lexème -thread fil d'exécution -traceback trace d'appels, trace de pile -tuple *n*-uplet (avec *n* en italique), on peut - traduire *2-tuple* par « paire » ou « couple », - *3-tuple* par « triplet », *4-tuple* par - « quadruplet » etc. -typically normalement, habituellement, comme d'habitude - (plutôt que « typiquement ») -underscore tiret bas, *underscore*, sous-tiret -whitespace caractère d'espacement -========================== =============================================== - - -Utilisation avancée -=================== - -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``. - -.. code-block:: bash - - cat < ~/.local/bin/podiff - #!/bin/sh - grep -v '^#:' "\$1" - EOF - - chmod a+x ~/.local/bin/podiff - -Allez ensuite dans le répertoire du dépôt récupéré (``python-docs-fr``) et faites : - -.. code-block:: bash - - 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. - - -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-doc `_ — communauté python autour de la documentation anglophone ; -- 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 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 ; -- `Petites leçons de typographie `_, - résumé succinct de typographie, utile pour apprendre le bon usage des - majuscules, des espaces, etc. - -L'utilisation de traducteurs automatiques comme `DeepL `_ ou semi-automatiques comme -`reverso `_ est proscrite. -Les traductions générées sont très souvent à retravailler, ils ignorent les règles énoncées sur cette -page et génèrent une documentation au style très « lourd ». - - -Caractères spéciaux et typographie -================================== - -La touche de composition ------------------------- - -Cette `touche `_, -absente par défaut des claviers, permet de saisir des -caractères spéciaux en combinant les caractères déjà présents sur le -clavier. C'est à l'utilisateur de définir la touche de composition. - -Avec une touche de composition, vous pouvez utiliser les -compositions suivantes : - -- :kbd:`Compose < <` donne ``«`` -- :kbd:`Compose > >` donne ``»`` -- :kbd:`Compose SPACE SPACE` donne une espace insécable -- :kbd:`Compose . . .` donne ``…`` - -Comme vous l'avez noté, presque toutes les compositions sont intuitives, -vous pouvez donc en essayer d'autres et elles devraient tout -simplement fonctionner : - -- :kbd:`Compose C =` donne ``€`` -- :kbd:`Compose 1 2` donne ``½`` -- :kbd:`Compose ' E` donne ``É`` -- etc. - - -Comment définir la touche de composition ? ------------------------------------------- - -Cela dépend de votre système d'exploitation et de votre clavier. - -- Sur Gnome c'est dans « Paramètres », « Clavier », « Touche de composition ». -- Sur Debian en ligne de commande ``dpkg-reconfigure keyboard-configuration``. -- Ubuntu documente aussi la `Compose Key `_. -- Sur Windows, vous pouvez utiliser `wincompose `_. - -Si aucune des solutions précédente ne vous convient, vous pouvez -configurer votre fichier *~/.Xmodmap* pour ajouter l'équivalent de : - -.. code-block:: shell - - # key Compose - keycode 115 = Multi_key - - -Utilisez ``xev`` pour connaître la bonne correspondance de la touche que vous -voulez assigner ! - -Ensuite, dans votre fichier *~/.xsession*, ajoutez : - -.. code-block:: shell - - # Gestion des touches clavier - xmodmap $HOME/.Xmodmap - -Pour finir, redémarrez votre session. - - -Le cas de « --- », « -- », « ... » -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -La version anglaise utilise les -`smartquotes `_, -qui fonctionnent en anglais, mais causent des problèmes dans d'autres langues. -Nous les avons donc désactivées (voir #303) dans la version française. - -Les *smartquotes* sont normalement responsables de la transformation de -``--`` en *en-dash* (``—``), de ``---`` en *em-dash* (``—``), et de -``...`` en *ellipses* ``…``. - -⇒ Si vous voyez : -| « -- » ou « --- » : faites :kbd:`Compose - - -` -| « ... » : faites :kbd:`Compose . . .` - - -Le cas de « "…" » -^^^^^^^^^^^^^^^^^ - -Les guillemets français ``«`` et ``»`` ne sont pas identiques aux -guillemets anglais ``"``. Cependant, Python utilise les guillemets -anglais comme délimiteurs de chaîne de caractères. Il convient donc de -traduire les guillemets mais pas les délimiteurs de chaîne. - -⇒ Si vous voyez : -| « "…" » : 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. :: ». -| ``::`` collé à la fin d'un mot signifie « affiche ``:`` et introduit un bloc de code », - mais un ``::`` après une espace signifie « introduit juste un bloc de code ». - -En français, nous mettons une espace insécable devant nos deux-points, comme : -« Et voilà : ». - -⇒ Traduisez ``mot deux-points deux-points`` par -``mot espace-insécable deux-points deux-points``. - -Pour saisir une espace insécable faites :kbd:`Compose SPACE SPACE` - - -Les doubles espaces -^^^^^^^^^^^^^^^^^^^ - -La documentation originale comporte beaucoup de doubles-espaces. -Cela se fait en anglais, mais pas en français. De toute manière, -ils passent ensuite à une moulinette et le rendu des espaces est délégué -au HTML et au PDF, qui n'en tiennent pas compte. -Nous avons décidé de ne rien changer pour les doubles-espaces -coté traduction : nous ne les retirons pas et ce n'est pas grave -si des traducteurs en retirent par accident. - - -Les énumérations -^^^^^^^^^^^^^^^^ - -Chaque paragraphe d'une énumération introduite par un deux-point -doit se terminer par un point-virgule (bien entendu précédé d'une -espace insécable) quelle que soit sa ponctuation interne. Seul le dernier -paragraphe de l'énumération s'achève par un point ou, si la phrase -continue après l'énumération, une virgule. Si l'un des paragraphes est -lui-même une énumération, chacun des sous-paragraphes se termine par -une virgule et le dernier par un point-virgule. - -Par exemple : - -- le premier paragraphe de l'énumération ; -- le deuxième paragraphe, lui aussi une énumération : - - - premier sous-paragraphe, - - second sous-paragraphe ; - -- le dernier paragraphe. - -Malheureusement Poedit n'aime pas les différences de ponctuation finales -entre un paragraphe et sa traduction ; il faut passer outre ses avertissements. -Vous pouvez aussi rajouter un commentaire dans le fichier *.po* pour avertir -les traducteurs suivants et éviter qu'ils ne « corrigent » par erreur ces -avertissements. - - -Outils disponnibles dans poutils -================================ - -Pospell -------- - -Vérificateur d'orthographe fondé sur Hunspell, qu'il vous faut donc installer :: - - sudo apt install hunspell hunspell-fr-comprehensive - -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. Nous utilisons la version qui accepte les deux -orthographes. - -C'est l'outil qui se cache derrière ``make spell``. - - -Potodo ------- - -Permet d'identifier les parties de la documentation qu'il reste à -traduire. - -C'est l'outil qui se cache derrière ``make todo``. - - -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*. diff --git a/Makefile b/Makefile deleted file mode 100644 index 28e2de51e5..0000000000 --- a/Makefile +++ /dev/null @@ -1,227 +0,0 @@ -# Makefile for French Python Documentation -# -# Here is what you can do: -# -# - make # Automatically build an HTML local version -# - make todo # To list remaining tasks and show current progression -# - make check # To check for correctness of modified files: wrapping, spelling, … -# - make check-all # To check for correctness of all files: wrapping, spelling, … -# - make wrap # To rewrap modified files -# - make spell # To check for spelling -# - make clean # To remove build artifacts -# - make fuzzy # To find fuzzy strings -# -# Modes are: autobuild-stable, autobuild-dev, and autobuild-html, -# documented in gen/src/3.6/Doc/Makefile as we're only delegating the -# real work to the Python Doc Makefile. - -# Configuration - -# The CPYTHON_CURRENT_COMMIT is the commit, in the cpython repository, -# 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 := 86e291e6627a6eee2912c4f6ec6848b7e4866029 -LANGUAGE := fr -BRANCH := 3.15 - -EXCLUDED := \ - whatsnew/2.?.po \ - whatsnew/3.[0-8].po \ - c-api/ \ - distutils/ \ - install/ \ - library/2to3.po \ - library/distutils.po \ - library/imp.po \ - library/tkinter.tix.po \ - library/test.po \ - library/aifc.po \ - library/asynchat.po \ - library/asyncore.po \ - library/audioop.po \ - library/cgi.po \ - library/cgitb.po \ - library/chunk.po \ - library/crypt.po \ - library/imghdr.po \ - library/msilib.po \ - library/nntplib.po \ - library/nis.po \ - library/ossaudiodev.po \ - library/pipes.po \ - library/smtpd.po \ - library/sndhdr.po \ - library/spwd.po \ - library/sunau.po \ - library/telnetlib.po \ - library/uu.po \ - library/xdrlib.po - -# Internal variables - -UPSTREAM := https://github.com/python/cpython - -PYTHON := $(shell which python3) -MODE := html -MAKE_TMP_DIR := .make/ -JOBS := auto -SPHINXERRORHANDLING = -W - -# Detect OS - -ifeq '$(findstring ;,$(PATH))' ';' - detected_OS := Windows -else - detected_OS := $(shell uname 2>/dev/null || echo Unknown) - detected_OS := $(patsubst CYGWIN%,Cygwin,$(detected_OS)) - detected_OS := $(patsubst MSYS%,MSYS,$(detected_OS)) - detected_OS := $(patsubst MINGW%,MSYS,$(detected_OS)) -endif - -ifeq ($(detected_OS),Darwin) # Mac OS X - CP_CMD := gcp # accessible with `brew install coreutils` or `brew upgrade coreutils` -else - CP_CMD := cp -endif - -.PHONY: all -all: ensure_build_prerequisites - git -C venv/cpython checkout $(CPYTHON_CURRENT_COMMIT) || (git -C venv/cpython fetch && git -C venv/cpython checkout $(CPYTHON_CURRENT_COMMIT)) - mkdir -p locales/$(LANGUAGE)/LC_MESSAGES/ - $(CP_CMD) -u --parents *.po */*.po locales/$(LANGUAGE)/LC_MESSAGES/ - $(MAKE) -C venv/cpython/Doc/ \ - JOBS='$(JOBS)' \ - SPHINXOPTS='-D locale_dirs=$(abspath locales) \ - -D language=$(LANGUAGE) \ - -D gettext_compact=0 \ - -D latex_engine=xelatex \ - -D latex_elements.inputenc= \ - -D latex_elements.fontenc=' \ - SPHINXERRORHANDLING=$(SPHINXERRORHANDLING) \ - $(MODE) - @echo "Build success, open file://$(abspath venv/cpython/)/Doc/build/html/index.html or run 'make htmlview' to see them." - -# We clone cpython/ inside venv/ because venv/ is the only directory -# excluded by cpython' Sphinx configuration. -venv/cpython/.git/HEAD: - git clone https://github.com/python/cpython venv/cpython - - -.PHONY: ensure_test_prerequisites -ensure_test_prerequisites: - @if ! (hunspell -v >/dev/null 2>&1); then \ - echo "You're missing dependencies please install: hunspell and the fr-toutesvariantes dictionary."; \ - echo "The dictionary is available here http://grammalecte.net:8080/dir?ci=tip&name=gc_lang/fr/oxt/Dictionnaires/dictionaries"; \ - echo "and also included in the hunspell-fr-comprehensive Debian package."; \ - exit 1; \ - fi - @if ! (pospell --help >/dev/null 2>&1 && potodo --help >/dev/null 2>&1); then \ - echo "You're missing dependencies please install:"; \ - echo ""; \ - echo " python -m pip install -r requirements.txt"; \ - exit 1; \ - fi - -.PHONY: ensure_build_prerequisites -ensure_build_prerequisites: venv/cpython/.git/HEAD - @if ! (blurb help >/dev/null 2>&1 && sphinx-build --version >/dev/null 2>&1); then \ - git -C venv/cpython/ checkout $(BRANCH); \ - echo "You're missing dependencies please install:"; \ - echo ""; \ - echo " python -m pip install -r venv/cpython/Doc/requirements.txt"; \ - exit 1; \ - fi - -.PHONY: htmlview -htmlview: MODE=htmlview -htmlview: all - -.PHONY: todo -todo: ensure_test_prerequisites - @potodo --api-url 'https://git.afpy.org/api/v1/repos/AFPy/python-docs-fr/issues?state=open' --exclude venv .venv $(EXCLUDED) - -.PHONY: wrap -wrap: ensure_test_prerequisites - @echo "Re wrapping modified files" - powrap -m - -SRCS_MODIFIED = $(shell git diff --name-only --diff-filter=d $(BRANCH) | grep '.po$$') -SRCS_ALL = $(wildcard *.po */*.po) - -# foo/bar.po => $(MAKE_TMP_DIR)/foo/bar.po.out -DESTS_MODIFIED = $(addprefix $(MAKE_TMP_DIR)/,$(addsuffix .pospell,$(SRCS_MODIFIED))) -DESTS_ALL = $(addprefix $(MAKE_TMP_DIR)/,$(addsuffix .all,$(SRCS_ALL))) - -.PHONY: spell -spell: ensure_test_prerequisites $(DESTS_MODIFIED) - -.PHONY: line-length -line-length: - @echo Checking line length... - @if [ -n "$(SRCS_MODIFIED)" ]; then python .scripts/line-length.py $(SRCS_MODIFIED); fi - -.PHONY: sphinx-lint -sphinx-lint: ensure_test_prerequisites - @echo Checking reStructuredText syntax... - @if [ -n "$(SRCS_MODIFIED)" ]; then sphinx-lint --enable all --disable line-too-long $(SRCS_MODIFIED); fi - -$(MAKE_TMP_DIR)/%.po.pospell: %.po dict - @echo "Pospell checking $<..." - @mkdir -p $(@D) - pospell -p dict -l fr_FR $< - @touch $@ - -$(MAKE_TMP_DIR)/%.po.all: %.po dict - @mkdir -p $(@D) - @msgcat $< >/dev/null - @python .scripts/line-length.py $< - @sh .scripts/check-headers.sh $< - @pospell -p dict -l fr_FR $< - @sphinx-lint --enable all --disable line-too-long $< >/dev/null - @touch $@ - -.PHONY: fuzzy -fuzzy: ensure_test_prerequisites - potodo --only-fuzzy --api-url 'https://git.afpy.org/api/v1/repos/AFPy/python-docs-fr/issues?state=open&type=issues' --exclude venv .venv $(EXCLUDED) - -.PHONY: check-headers -check-headers: - @echo Checking po headers... - @sh .scripts/check-headers.sh $(SRCS_MODIFIED) - -# .PHONY: check-colons -# check-colons: -# @echo Checking colons... -# @python .scripts/check-colon.py --check $(SRCS_MODIFIED) - -.PHONY: syntax -syntax: - @echo Checking po sytax... - @msgcat *.po */*.po > /dev/null - -.PHONY: verifs -verifs: syntax check-headers sphinx-lint spell line-length - @echo "'make verifs' is deprecated, please use 'make check' instead." - -.PHONY: check -check: syntax check-headers sphinx-lint spell line-length - -.PHONY: check-all -check-all: ensure_test_prerequisites $(DESTS_ALL) - -.PHONY: clean -clean: - @echo "Cleaning *.mo and $(MAKE_TMP_DIR)" - rm -fr .pospell/ $(MAKE_TMP_DIR) locales/$(LANGUAGE)/LC_MESSAGES/ - find -name '*.mo' -delete - @echo "Cleaning build directory" - $(MAKE) -C venv/cpython/Doc/ clean - -.PHONY: diff -diff: - @echo "Files changed between $(BRANCH) and HEAD:" - @echo $(shell git diff --name-only --diff-filter=d $(BRANCH)) - -print-%: - @echo $($*) diff --git a/README.md b/README.md new file mode 100644 index 0000000000..1af1c4bcd0 --- /dev/null +++ b/README.md @@ -0,0 +1,18 @@ +# Traduction française de la documentation Python + +Ce dépôt permet de contribuer aux traductions de +https://docs.python.org/fr/. + +## Forges + +Ce repo existe sur deux forges : + +- https://git.afpy.org/AFPy/python-docs-fr/ +- https://github.com/python/python-docs-fr/ + +Nous acceptons les contributions sur les deux forges. + + +## Progression + +La progression peut être vue sur https://translations.python.org/ diff --git a/README.rst b/README.rst deleted file mode 100644 index 76c23d24f8..0000000000 --- a/README.rst +++ /dev/null @@ -1,78 +0,0 @@ -Traduction française de la documentation Python -=============================================== - -Ce projet est réalisé en collaboration avec l'`AFPy -`_ (Association Francophone Python), dont le but est la -promotion du langage de développement Python dans l'ensemble des -nations francophones à travers des événements accessibles à tous comme -l'édition francophone de la PyCon, la `PyConFR -`_, de nombreux meetups dans plusieurs villes et le -maintien de nombreux projets communautaires pour enrichir -l'écosystème. - - -Contribuer à la traduction --------------------------- - -TL;DR:: - -Vous pouvez contribuer : - -- en proposant des *pull requests* sur `notre forge - `_ (solution - recommandée) ; -- en remontant des erreurs et propositions d'amélioration sur - le `forum de l'AFPy `_ ; -- en devenant `membre `_ de l'AFPy ou - `mécène `_ du projet. - -Consultez le -`guide de style `_ -de la documentation, et le -`guide de la traduction en français `_ -pour apprendre les conventions à respecter. - -Le `coordinateur `_ de -cette traduction est `Julien Palard (mdk) `_. -Vous pouvez obtenir de l'aide sur le canal -`irc://irc.libera.chat/#python-fr `_ -(ne nécessite pas d'inscription) ou poser vos questions sur la -`liste de diffusion `_ -des traductions de l'AFPy. - - -Accord de contribution à la documentation ------------------------------------------ - -NOTE CONCERNANT LA LICENCE POUR LES TRADUCTIONS : La documentation de Python -est maintenue grâce à un réseau mondial de bénévoles. En publiant ce projet -sur Transifex, Github, et d'autres endroits publics, et vous invitant -à participer, la PSF vous enjoint à accepter cet accord qui stipule que vous -acceptez de fournir vos améliorations à la documentation de Python ou à la -traduction de la documentation de Python pour le bénéfice de la PSF sous licence -CC0 (disponible à l'adresse -https://creativecommons.org/publicdomain/zero/1.0/legalcode). En retour, vous -pouvez demander à ce que votre contribution à la documentation soit -publiquement reconnue, et si votre traduction est acceptée par la -PSF, vous pouvez (mais vous n'êtes pas obligé) soumettre un correctif incluant -une modification appropriée dans le fichier Misc/ACKS ou TRANSLATORS. Bien que -rien dans le présent *accord de contribution* à la documentation n'oblige la PSF -à incorporer votre contribution textuelle, votre participation à la communauté -Python est bienvenue et appréciée. - -En soumettant votre travail à la PSF pour inclusion dans la documentation, -vous signifiez votre acceptation de cet accord. - - -Historique du projet --------------------- - -- vers 2000 : lancement du projet ; -- vers 2012 : `reprise `_ par l'`AFPy `_ ; -- 2016 : 15 % de la documentation traduite ; -- 2017 : le projet devient traduction officielle de la documentation Python par la `PEP 545 `_ ; -- 2019 : 30 % de la documentation traduite ; -- 2021 : 50 % de la documentation traduite. - -.. image:: .scripts/plot.png - :alt: Progression de la traduction diff --git a/TRANSLATORS b/TRANSLATORS deleted file mode 100644 index 2808541aed..0000000000 --- a/TRANSLATORS +++ /dev/null @@ -1,24 +0,0 @@ -Baptiste Fontaine -Julien Palard -RobinPetit -Valentin Lorentz -Antoine Rozo -Mohamed Kiouaz -Hervé Sousset -Mickaël Bergem -Vincent Poulailleau -Jules Lasne -Mathieu Dupuy -Vivien Lambert -Andy Kwok -Aya Keddam -Antoine Wecxsteen -Youen 'laën' Froger -Sascha Salles -Valériane Venance -Loc Cosnier -Yannick Gingras -Martin Chlumsky -Stephan Michaud -Edith Viau -Jean-Michel Laprise diff --git a/about.po b/about.po deleted file mode 100644 index f88579243a..0000000000 --- a/about.po +++ /dev/null @@ -1,94 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2026-10-29 10:59+0100\n" -"Last-Translator: Adrien Precigout \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 3.10\n" - -#: about.rst:3 -msgid "About this documentation" -msgstr "À propos de ces documents" - -#: about.rst:6 -msgid "" -"Python's documentation is generated from `reStructuredText`_ sources using " -"`Sphinx`_, a documentation generator originally created for Python and now " -"maintained as an independent project." -msgstr "" -"La documentation de Python est générée à partir de sources en " -"`reStructuredText`_ par `Sphinx`_, un générateur de documentation conçu à " -"l'origine pour Python, mais aujourd'hui maintenu comme projet indépendant." - -#: about.rst:16 -msgid "" -"Development of the documentation and its toolchain is an entirely volunteer " -"effort, just like Python itself. If you want to contribute, please take a " -"look at the :ref:`reporting-bugs` page for information on how to do so. New " -"volunteers are always welcome!" -msgstr "" -"Le développement de la documentation et de ses outils est entièrement basé " -"sur le volontariat, tout comme Python. Si vous voulez contribuer, allez voir " -"la page :ref:`reporting-bugs` qui contient des informations pour vous y " -"aider. Les nouveaux volontaires sont toujours les bienvenus !" - -#: about.rst:21 -msgid "Many thanks go to:" -msgstr "Merci beaucoup à :" - -#: about.rst:23 -msgid "" -"Fred L. Drake, Jr., the creator of the original Python documentation toolset " -"and author of much of the content;" -msgstr "" -"Fred L. Drake, Jr., créateur des outils originaux de la documentation Python " -"et auteur de la plupart de son contenu ;" - -#: about.rst:25 -msgid "" -"the `Docutils `_ project for creating " -"reStructuredText and the Docutils suite;" -msgstr "" -"le projet `Docutils `_ pour avoir créé " -"*reStructuredText* et la suite d'outils *Docutils* ;" - -#: about.rst:27 -msgid "" -"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." - -#: about.rst:32 -msgid "Contributors to the Python documentation" -msgstr "Contributrices et contributeurs de la documentation Python" - -#: about.rst:34 -msgid "" -"Many people have contributed to the Python language, the Python standard " -"library, and the Python documentation. See the `CPython GitHub repository " -"`__ for a partial " -"list of contributors." -msgstr "" -"De nombreuses personnes ont contribué au langage Python, à sa bibliothèque " -"standard et à sa documentation. Consultez le `dépôt GitHub CPython `__ pour avoir une liste " -"partielle des contributeurs." - -#: about.rst:39 -msgid "" -"It is only with the input and contributions of the Python community that " -"Python has such wonderful documentation -- Thank You!" -msgstr "" -"Ce n'est que grâce aux suggestions et contributions de la communauté Python " -"que Python a une documentation si merveilleuse — Merci !" diff --git a/bugs.po b/bugs.po deleted file mode 100644 index 962eb16e6a..0000000000 --- a/bugs.po +++ /dev/null @@ -1,309 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-17 10:42+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: bugs.rst:5 -msgid "Dealing with Bugs" -msgstr "S'attaquer aux bogues" - -#: bugs.rst:7 -msgid "" -"Python is a mature programming language which has established a reputation " -"for stability. In order to maintain this reputation, the developers would " -"like to know of any deficiencies you find in Python." -msgstr "" -"Python est un langage de programmation robuste réputé pour sa stabilité. " -"Afin de maintenir cette réputation, les développeurs souhaitent connaître " -"tout problème que vous pourriez rencontrer dans Python." - -#: bugs.rst:11 -#, fuzzy -msgid "" -"It can be sometimes faster to fix bugs yourself and contribute patches to " -"Python as it streamlines the process and involves fewer people. Learn how " -"to :ref:`contribute `." -msgstr "" -"Il est parfois plus rapide de réparer les bogues soi-même et d'en proposer " -"les correctifs, ça simplifie le processus et implique moins de monde. " -"Apprenez à :ref:`contribuer `." - -#: bugs.rst:19 -msgid "Documentation bugs" -msgstr "Bogues de documentation" - -#: bugs.rst:21 -msgid "" -"If you find a bug in this documentation or would like to propose an " -"improvement, please submit a bug report on the :ref:`issue tracker `. If you have a suggestion on how to fix it, include that as " -"well." -msgstr "" -"Si vous trouvez un bogue dans cette documentation ou si vous désirez " -"proposer une amélioration, si cela concerne aussi la documentation en " -"anglais, ouvrez un ticket sur le :ref:`traqueur ` " -"décrivant en anglais le bogue et où vous l'avez trouvé. Si le problème ne " -"touche que la traduction en français, ouvrez un ticket sur https://" -"git.afpy.org/AFPy/python-docs-fr/issues, ou venez nous en toucher un mot sur " -"le forum Python francophone (https://discuss.afpy.org) ou sur canal IRC " -"#python-fr sur *libera.chat* (https://web.libera.chat/#python-fr). Si vous " -"avez une suggestion de correction, merci de l'inclure également." - -#: bugs.rst:27 -msgid "" -"If the bug or suggested improvement concerns the translation of this " -"documentation, submit the report to the `translation’s repository " -"`_ instead." -msgstr "" - -#: bugs.rst:31 -msgid "" -"You can also open a discussion item on our `Documentation Discourse forum " -"`_." -msgstr "" -"Vous pouvez aussi commenter une discussion sur le `forum de discussion de la " -"documentation `_." - -#: bugs.rst:34 -msgid "" -"If you find a bug in the theme (HTML / CSS / JavaScript) of the " -"documentation, please submit a bug report on the `python-doc-theme issue " -"tracker `_." -msgstr "" -"Si vous trouvez un bug dans la partie HTML, CSS, ou JavaScript de la " -"documentation, prenez le temps d'écrire un ticket sur le dépôt `python-docs-" -"theme `_." - -#: bugs.rst:40 -msgid "`Documentation bugs`_" -msgstr "`Bogues de documentation`_" - -#: bugs.rst:41 -msgid "" -"A list of documentation bugs that have been submitted to the Python issue " -"tracker." -msgstr "" -"Liste des bogues de documentation soumis à l'outil de suivi des problèmes " -"Python." - -#: bugs.rst:43 -msgid "`Issue Tracking `_" -msgstr "`Outil de suivi des problèmes `_" - -#: bugs.rst:44 -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:46 -msgid "" -"`Helping with Documentation `_" -msgstr "" -"`Aider avec la documentation `_" - -#: bugs.rst:47 -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:49 -#, fuzzy -msgid "" -"`Documentation Translations `_" -msgstr "" -"`Traductions de la Documentation `_" - -#: bugs.rst:50 -#, fuzzy -msgid "" -"A list of GitHub pages for documentation translation and their coordination " -"teams." -msgstr "" -"Liste de dépôts GitHub où la documentation est traduite, avec les personnes " -"à contacter." - -#: bugs.rst:56 -msgid "Using the Python issue tracker" -msgstr "Utilisation du gestionnaire de tickets Python" - -#: bugs.rst:58 -msgid "" -"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 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:63 -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 " -"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 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 ; " -"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 le " -"gestionnaire de tickets grâce à la boîte de recherche en haut de la page." - -#: bugs.rst:70 -msgid "" -"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 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:75 -msgid "" -"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 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:78 -msgid "The submission form has two fields, \"Title\" and \"Comment\"." -msgstr "Le formulaire de rapport contient deux champs, *Title* et *Comment*." - -#: bugs.rst:80 -msgid "" -"For the \"Title\" field, enter a *very* short description of the problem; " -"fewer than ten words is good." -msgstr "" -"Dans le champ *Title*, entrez une *très* brève description du problème " -"rencontré : dix mots ou moins suffiront." - -#: bugs.rst:83 -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 " -"extension modules were involved, and what hardware and software platform you " -"were using (including version information as appropriate)." -msgstr "" -"Dans le champ « Commentaire », décrivez le problème de manière détaillée, " -"incluant ce à quoi vous vous attendiez et ce qui s'est vraiment produit. " -"Assurez-vous d'y inclure les éventuels modules d'extensions impliqués et la " -"plateforme matérielle et logicielle vous utilisiez (en incluant les " -"informations de versions)." - -#: bugs.rst:88 -msgid "" -"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 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 concernant le rapport." - -#: bugs.rst:95 -msgid "" -"`How to Report Bugs Effectively `_" -msgstr "" -"`Comment signaler des bogues de manière efficace `_ (en anglais)" - -#: bugs.rst:96 -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." -msgstr "" -"Article qui entre dans les détails sur la manière de créer un rapport de " -"bogue utile. Il décrit quel genre d'information est utile et pourquoi elle " -"est utile." - -#: bugs.rst:99 -msgid "" -"`Bug Writing Guidelines `_" -msgstr "" -"`Guide pour la rédaction de rapports de bogues `_" - -#: bugs.rst:100 -msgid "" -"Information about writing a good bug report. Some of this is specific to " -"the Mozilla project, but describes general good practices." -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:106 -msgid "Getting started contributing to Python yourself" -msgstr "Commencer à contribuer à Python vous-même" - -#: bugs.rst:108 -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 " -"patching Python in the `Python Developer's Guide`_. If you have questions, " -"the `core-mentorship mailing list`_ is a friendly place to get answers to " -"any and all questions pertaining to the process of fixing issues in Python." -msgstr "" -"Au-delà de simplement remonter les bogues que vous trouvez, il est aussi " -"apprécié d'y attacher des correctifs. Vous pouvez trouver plus " -"d'informations pour débuter la rédaction de correctifs dans le `Python " -"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 "" -#~ "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, though it may take a while to be processed." -#~ msgstr "" -#~ "Si vous êtes limité par le temps, vous pouvez aussi envoyer un courriel à " -#~ "docs@python.org (les bogues de comportement peuvent être envoyés à python-" -#~ "list@python.org). « docs@ » est une liste de diffusion gérée par des " -#~ "volontaires, votre requête sera vue, mais elle peut prendre un moment " -#~ "pour être traitée." - -#~ 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/abstract.po b/c-api/abstract.po deleted file mode 100644 index db11cbefb2..0000000000 --- a/c-api/abstract.po +++ /dev/null @@ -1,45 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2018-10-17 19:31+0200\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2\n" - -#: c-api/abstract.rst:7 -msgid "Abstract Objects Layer" -msgstr "Couche d'abstraction des objets" - -#: c-api/abstract.rst:9 -msgid "" -"The functions in this chapter interact with Python objects regardless of " -"their type, or with wide classes of object types (e.g. all numerical types, " -"or all sequence types). When used on object types for which they do not " -"apply, they will raise a Python exception." -msgstr "" -"Dans ce chapitre, les fonctions s'appliquent à des objets Python sans tenir " -"compte de leur type, ou des classes d'objets au sens large (par exemple, " -"tous les types numériques, ou tous les types de séquence). Quand ils sont " -"utilisés sur des types d'objets qui ne correspondent pas, ils lèveront une " -"exception Python." - -#: c-api/abstract.rst:14 -msgid "" -"It is not possible to use these functions on objects that are not properly " -"initialized, such as a list object that has been created " -"by :c:func:`PyList_New`, but whose items have not been set to some non-\\ " -"``NULL`` value yet." -msgstr "" -"Il n'est pas possible d'utiliser ces fonctions sur des objets qui n'ont pas " -"été correctement initialisés, comme un objet liste qui a été créé " -"avec :c:func:`PyList_New` mais dont les éléments n'ont pas encore été mis à " -"une valeur non-\\ ``NULL``." diff --git a/c-api/allocation.po b/c-api/allocation.po deleted file mode 100644 index ef3cb7dd49..0000000000 --- a/c-api/allocation.po +++ /dev/null @@ -1,289 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-10-20 21:16+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2\n" - -#: c-api/allocation.rst:6 -#, fuzzy -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 " -"reference. Returns the initialized object. Other fields of the object are " -"not initialized. Despite its name, this function is unrelated to the " -"object's :meth:`~object.__init__` method (:c:member:`~PyTypeObject.tp_init` " -"slot). Specifically, this function does **not** call the object's :meth:`!" -"__init__` method." -msgstr "" -"Permet d'initialiser un objet *op* nouvellement alloué ainsi que son type et " -"sa référence initiale. Renvoie l'objet initialisé. La présence de *type* " -"indique que l'objet doit être traité par le détecteur d'ordures cycliques, " -"il est de ce fait ajouté à l'ensemble du détecteur d'objets observés. Les " -"autres champs de l'objet ne sont pas affectés." - -#: c-api/allocation.rst:24 -msgid "" -"In general, consider this function to be a low-level routine. " -"Use :c:member:`~PyTypeObject.tp_alloc` where possible. For " -"implementing :c:member:`!tp_alloc` for your type, " -"prefer :c:func:`PyType_GenericAlloc` or :c:func:`PyObject_New`." -msgstr "" - -#: c-api/allocation.rst:31 -msgid "" -"This function only initializes the object's memory corresponding to the " -"initial :c:type:`PyObject` structure. It does not zero the rest." -msgstr "" - -#: c-api/allocation.rst:37 -msgid "" -"This does everything :c:func:`PyObject_Init` does, and also initializes the " -"length information for a variable-size object." -msgstr "" -"Effectue les mêmes opérations que :c:func:`PyObject_Init` fait, et " -"initialise également l'information de la longueur pour un objet de taille " -"variable." - -#: c-api/allocation.rst:42 -msgid "" -"This function only initializes some of the object's memory. It does not " -"zero the rest." -msgstr "" - -#: c-api/allocation.rst:48 -#, fuzzy -msgid "" -"Allocates a new Python object using the C structure type *TYPE* and the " -"Python type object *typeobj* (``PyTypeObject*``) by " -"calling :c:func:`PyObject_Malloc` to allocate memory and initializing it " -"like :c:func:`PyObject_Init`. The caller will own the only reference to the " -"object (i.e. its reference count will be one)." -msgstr "" -"Alloue un nouvel objet Python en utilisant le type de structure C *TYPE* et " -"l'objet Python *type*. Les champs non définis par l'en-tête de l'objet " -"Python ne sont pas initialisés; le compteur de la référence objet sera égal " -"à un. La taille de l'allocation mémoire est déterminée par le " -"champ :c:member:`~PyTypeObject.tp_basicsize` de l'objet type." - -#: c-api/allocation.rst:107 -msgid "" -"Avoid calling this directly to allocate memory for an object; call the " -"type's :c:member:`~PyTypeObject.tp_alloc` slot instead." -msgstr "" - -#: c-api/allocation.rst:110 -msgid "" -"When populating a type's :c:member:`~PyTypeObject.tp_alloc` " -"slot, :c:func:`PyType_GenericAlloc` is preferred over a custom function that " -"simply calls this macro." -msgstr "" - -#: c-api/allocation.rst:61 -msgid "" -"This macro does not " -"call :c:member:`~PyTypeObject.tp_alloc`, :c:member:`~PyTypeObject.tp_new` " -"(:meth:`~object.__new__`), or :c:member:`~PyTypeObject.tp_init` " -"(:meth:`~object.__init__`)." -msgstr "" - -#: c-api/allocation.rst:65 -msgid "" -"This cannot be used for objects with :c:macro:`Py_TPFLAGS_HAVE_GC` set " -"in :c:member:`~PyTypeObject.tp_flags`; use :c:macro:`PyObject_GC_New` " -"instead." -msgstr "" - -#: c-api/allocation.rst:68 -msgid "" -"Memory allocated by this macro must be freed with :c:func:`PyObject_Free` " -"(usually called via the object's :c:member:`~PyTypeObject.tp_free` slot)." -msgstr "" - -#: c-api/allocation.rst:123 -msgid "" -"The returned memory is not guaranteed to have been completely zeroed before " -"it was initialized." -msgstr "" - -#: c-api/allocation.rst:128 -msgid "" -"This macro does not construct a fully initialized object of the given type; " -"it merely allocates memory and prepares it for further initialization " -"by :c:member:`~PyTypeObject.tp_init`. To construct a fully initialized " -"object, call *typeobj* instead. For example::" -msgstr "" - -#: c-api/allocation.rst:137 c-api/allocation.rst:186 c-api/allocation.rst:188 -#, fuzzy -msgid ":c:func:`PyObject_Free`" -msgstr ":c:func:`PyModule_Create`" - -#: c-api/allocation.rst:88 -msgid ":c:macro:`PyObject_GC_New`" -msgstr "" - -#: c-api/allocation.rst:139 -msgid ":c:func:`PyType_GenericAlloc`" -msgstr "" - -#: c-api/allocation.rst:140 -msgid ":c:member:`~PyTypeObject.tp_alloc`" -msgstr "" - -#: c-api/allocation.rst:95 -msgid "Like :c:macro:`PyObject_New` except:" -msgstr "" - -#: c-api/allocation.rst:97 -msgid "" -"It allocates enough memory for the *TYPE* structure plus *size* " -"(``Py_ssize_t``) fields of the size given by " -"the :c:member:`~PyTypeObject.tp_itemsize` field of *typeobj*." -msgstr "" - -#: c-api/allocation.rst:100 -msgid "The memory is initialized like :c:func:`PyObject_InitVar`." -msgstr "" - -#: c-api/allocation.rst:102 -msgid "" -"This is useful for implementing objects like tuples, which are able to " -"determine their size at construction time. Embedding the array of fields " -"into the same allocation decreases the number of allocations, improving the " -"memory management efficiency." -msgstr "" - -#: c-api/allocation.rst:114 -msgid "" -"This cannot be used for objects with :c:macro:`Py_TPFLAGS_HAVE_GC` set " -"in :c:member:`~PyTypeObject.tp_flags`; use :c:macro:`PyObject_GC_NewVar` " -"instead." -msgstr "" - -#: c-api/allocation.rst:118 -msgid "" -"Memory allocated by this function must be freed with :c:func:`PyObject_Free` " -"(usually called via the object's :c:member:`~PyTypeObject.tp_free` slot)." -msgstr "" - -#: c-api/allocation.rst:138 -msgid ":c:macro:`PyObject_GC_NewVar`" -msgstr "" - -#: c-api/allocation.rst:145 -msgid "" -"Object which is visible in Python as ``None``. This should only be accessed " -"using the :c:macro:`Py_None` macro, which evaluates to a pointer to this " -"object." -msgstr "" -"Objet qui est visible en tant que ``None`` dans Python. Ne devrait être " -"accessible uniquement en utilisant la macro :c:macro:`Py_None`, qui évalue " -"cet objet à un pointeur." - -#: c-api/allocation.rst:152 -msgid ":ref:`moduleobjects`" -msgstr "" - -#: c-api/allocation.rst:153 -msgid "To allocate and create extension modules." -msgstr "Allouer et créer des modules d'extension." - -#: c-api/allocation.rst:157 -msgid "Soft-deprecated aliases" -msgstr "" - -#: c-api/allocation.rst:161 -msgid "" -"These are aliases to existing functions and macros. They exist solely for " -"backwards compatibility." -msgstr "" - -#: c-api/allocation.rst:169 -msgid "Soft-deprecated alias" -msgstr "" - -#: c-api/allocation.rst:170 -msgid "Function" -msgstr "" - -#: c-api/allocation.rst:172 -#, fuzzy -msgid ":c:macro:`PyObject_New`" -msgstr ":c:func:`PyModule_Create`" - -#: c-api/allocation.rst:174 -#, fuzzy -msgid ":c:macro:`PyObject_NewVar`" -msgstr ":c:func:`PyModule_Create`" - -#: c-api/allocation.rst:176 -#, fuzzy -msgid ":c:func:`PyObject_Init`" -msgstr ":c:func:`PyModule_Create`" - -#: c-api/allocation.rst:178 -#, fuzzy -msgid ":c:func:`PyObject_InitVar`" -msgstr ":c:func:`PyModule_Create`" - -#: c-api/allocation.rst:180 -#, fuzzy -msgid ":c:func:`PyObject_Malloc`" -msgstr ":c:func:`PyModule_Create`" - -#: c-api/allocation.rst:182 -#, fuzzy -msgid ":c:func:`PyObject_Realloc`" -msgstr ":c:func:`PyModule_Create`" - -#, fuzzy -#~ msgid "" -#~ "Allocate a new Python object using the C structure type *TYPE* and the " -#~ "Python type object *typeobj* (``PyTypeObject*``). Fields not defined by " -#~ "the Python object header are not initialized. The allocated memory " -#~ "allows for the *TYPE* structure plus *size* (``Py_ssize_t``) fields of " -#~ "the size given by the :c:member:`~PyTypeObject.tp_itemsize` field of " -#~ "*typeobj*. This is useful for implementing objects like tuples, which " -#~ "are able to determine their size at construction time. Embedding the " -#~ "array of fields into the same allocation decreases the number of " -#~ "allocations, improving the memory management efficiency." -#~ msgstr "" -#~ "Alloue un nouvel objet Python en utilisant le type de structure C *TYPE* " -#~ "et l'objet Python de type *type*. Les champs non définis par l'en-tête de " -#~ "l'objet Python ne sont pas initialisés. La mémoire allouée est suffisante " -#~ "pour la structure *TYPE* plus *size* champs de la taille donnée par le " -#~ "champ de *type* :c:member:`~PyTypeObject.tp_itemsize`. Ceci est utile " -#~ "pour l'implémentation d'objets comme les *n*-uplets, qui sont capables de " -#~ "déterminer leur taille à la construction. Allouer les champs en même " -#~ "temps que l'objet diminue le nombre d'allocations, améliorant ainsi les " -#~ "performances." - -#, fuzzy -#~ msgid "" -#~ "Releases memory allocated to an object using :c:macro:`PyObject_New` " -#~ "or :c:macro:`PyObject_NewVar`. This is normally called from " -#~ "the :c:member:`~PyTypeObject.tp_dealloc` handler specified in the " -#~ "object's type. The fields of the object should not be accessed after " -#~ "this call as the memory is no longer a valid Python object." -#~ msgstr "" -#~ "Libère la mémoire allouée à un objet utilisant :c:func:`PyObject_New` " -#~ "ou :c:func:`PyObject_NewVar`. Ceci est normalement appelé par le " -#~ "gestionnaire :c:member:`~PyTypeObject.tp_dealloc` spécifié dans le type " -#~ "d'objet. Les champs de l'objet ne doivent plus être accédés après cet " -#~ "appel puisque cet emplacement mémoire ne correspond plus à un objet " -#~ "Python valide." diff --git a/c-api/apiabiversion.po b/c-api/apiabiversion.po deleted file mode 100644 index dc2a26880e..0000000000 --- a/c-api/apiabiversion.po +++ /dev/null @@ -1,394 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-03-19 18:43+0100\n" -"Last-Translator: FULL NAME \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" - -#: c-api/apiabiversion.rst:7 -msgid "API and ABI Versioning" -msgstr "Version des API et ABI" - -#: c-api/apiabiversion.rst:11 -msgid "Build-time version constants" -msgstr "" - -#: c-api/apiabiversion.rst:13 -#, fuzzy -msgid "" -"CPython exposes its version number in the following macros. Note that these " -"correspond to the version code is **built** with. See :c:var:`Py_Version` " -"for 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:17 -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:21 -msgid "The ``3`` in ``3.4.1a2``." -msgstr "Le ``3`` dans ``3.4.1a2``.)" - -#: c-api/apiabiversion.rst:25 -msgid "The ``4`` in ``3.4.1a2``." -msgstr "Le ``4`` dans ``3.4.1a2``." - -#: c-api/apiabiversion.rst:29 -msgid "The ``1`` in ``3.4.1a2``." -msgstr "Le ``1`` dans ``3.4.1a2``.)" - -#: c-api/apiabiversion.rst:33 -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 "" -" 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:48 -msgid "" -"For completeness, the values are available as macros: :c:macro:`!" -"PY_RELEASE_LEVEL_ALPHA` (``0xA``), :c:macro:`!PY_RELEASE_LEVEL_BETA` " -"(``0xB``), :c:macro:`!PY_RELEASE_LEVEL_GAMMA` (``0xC``), and :c:macro:`!" -"PY_RELEASE_LEVEL_FINAL` (``0xF``)." -msgstr "" - -#: c-api/apiabiversion.rst:56 -msgid "The ``2`` in ``3.4.1a2``. Zero for final releases." -msgstr "Le ``2`` dans ``3.4.1a2``. Nul pour des versions finales." - -#: c-api/apiabiversion.rst:60 -#, fuzzy -msgid "" -"The Python version number encoded in a single integer. " -"See :c:func:`Py_PACK_FULL_VERSION` for the encoding details." -msgstr "Le numéro de version de Python encodé en un seul entier." - -#: c-api/apiabiversion.rst:63 -#, fuzzy -msgid "" -"Use this for numeric comparisons, for example, ``#if PY_VERSION_HEX >= ...``." -msgstr "" -"Vous pouvez l'utiliser pour les comparaisons numériques, par exemple, ``#if " -"PY_VERSION_HEX >= ...``." - -#: c-api/apiabiversion.rst:68 -msgid "The Python version as a string, for example, ``\"3.4.1a2\"``." -msgstr "" - -#: c-api/apiabiversion.rst:70 -#, fuzzy -msgid "These macros are defined in :source:`Include/patchlevel.h`." -msgstr "" -"Toutes les macros données sont définies dans :source:`Include/patchlevel.h`." - -#: c-api/apiabiversion.rst:74 -msgid "Run-time version" -msgstr "" - -#: c-api/apiabiversion.rst:78 -#, fuzzy -msgid "" -"The Python runtime version number encoded in a single constant integer. " -"See :c:func:`Py_PACK_FULL_VERSION` for the encoding details. This contains " -"the Python version used at run time." -msgstr "" -"La version à l'exécution de Python est encodée en une constante, avec le " -"même format que la macro :c:macro:`PY_VERSION_HEX`. Cela contient la version " -"de Python utilisée lors de l'exécution." - -#: c-api/apiabiversion.rst:82 -#, fuzzy -msgid "" -"Use this for numeric comparisons, for example, ``if (Py_Version >= ...)``." -msgstr "" -"Vous pouvez l'utiliser pour les comparaisons numériques, par exemple, ``#if " -"PY_VERSION_HEX >= ...``." - -#: c-api/apiabiversion.rst:88 -msgid "Bit-packing macros" -msgstr "" - -#: c-api/apiabiversion.rst:92 -msgid "" -"Return the given version, encoded as a single 32-bit integer with the " -"following structure:" -msgstr "" - -#: c-api/apiabiversion.rst:98 -msgid "Argument" -msgstr "" - -#: c-api/apiabiversion.rst:96 -msgid "No. of bits" -msgstr "" - -#: c-api/apiabiversion.rst:98 -msgid "Bit mask" -msgstr "" - -#: c-api/apiabiversion.rst:98 -msgid "Bit shift" -msgstr "" - -#: c-api/apiabiversion.rst:96 -msgid "Example values" -msgstr "" - -#: c-api/apiabiversion.rst:116 -#, fuzzy -msgid "``3.4.1a2``" -msgstr "Valeur pour ``3.4.1a2``" - -#: c-api/apiabiversion.rst:118 -msgid "``3.10.0``" -msgstr "" - -#: c-api/apiabiversion.rst:100 -msgid "*major*" -msgstr "" - -#: c-api/apiabiversion.rst:102 c-api/apiabiversion.rst:104 -msgid "8" -msgstr "8" - -#: c-api/apiabiversion.rst:100 -#, fuzzy -msgid "``0xFF000000``" -msgstr "``0x03``" - -#: c-api/apiabiversion.rst:100 -#, fuzzy -msgid "24" -msgstr "2" - -#: c-api/apiabiversion.rst:100 -msgid "``0x03``" -msgstr "``0x03``" - -#: c-api/apiabiversion.rst:102 -msgid "*minor*" -msgstr "" - -#: c-api/apiabiversion.rst:102 -#, fuzzy -msgid "``0x00FF0000``" -msgstr "``0x03``" - -#: c-api/apiabiversion.rst:102 -#, fuzzy -msgid "16" -msgstr "1" - -#: c-api/apiabiversion.rst:102 -msgid "``0x04``" -msgstr "``0x04``" - -#: c-api/apiabiversion.rst:102 -#, fuzzy -msgid "``0x0A``" -msgstr "``0xA``" - -#: c-api/apiabiversion.rst:104 -msgid "*micro*" -msgstr "" - -#: c-api/apiabiversion.rst:104 -#, fuzzy -msgid "``0x0000FF00``" -msgstr "``0x03``" - -#: c-api/apiabiversion.rst:104 -msgid "``0x01``" -msgstr "``0x01``" - -#: c-api/apiabiversion.rst:104 -#, fuzzy -msgid "``0x00``" -msgstr "``0x03``" - -#: c-api/apiabiversion.rst:106 -msgid "*release_level*" -msgstr "" - -#: c-api/apiabiversion.rst:108 -msgid "4" -msgstr "4" - -#: c-api/apiabiversion.rst:106 -#, fuzzy -msgid "``0x000000F0``" -msgstr "``0x03``" - -#: c-api/apiabiversion.rst:106 -msgid "``0xA``" -msgstr "``0xA``" - -#: c-api/apiabiversion.rst:106 -#, fuzzy -msgid "``0xF``" -msgstr "``0xA``" - -#: c-api/apiabiversion.rst:108 -msgid "*release_serial*" -msgstr "" - -#: c-api/apiabiversion.rst:108 -#, fuzzy -msgid "``0x0000000F``" -msgstr "``0x03``" - -#: c-api/apiabiversion.rst:108 -msgid "0" -msgstr "0" - -#: c-api/apiabiversion.rst:108 -msgid "``0x2``" -msgstr "``0x2``" - -#: c-api/apiabiversion.rst:108 -#, fuzzy -msgid "``0x0``" -msgstr "``0x03``" - -#: c-api/apiabiversion.rst:111 -msgid "For example:" -msgstr "Par exemple :" - -#: c-api/apiabiversion.rst:114 -msgid "Version" -msgstr "" - -#: c-api/apiabiversion.rst:114 -msgid "``Py_PACK_FULL_VERSION`` arguments" -msgstr "" - -#: c-api/apiabiversion.rst:114 -msgid "Encoded version" -msgstr "" - -#: c-api/apiabiversion.rst:116 -msgid "``(3, 4, 1, 0xA, 2)``" -msgstr "" - -#: c-api/apiabiversion.rst:116 -#, fuzzy -msgid "``0x030401a2``" -msgstr "``0x03``" - -#: c-api/apiabiversion.rst:118 -msgid "``(3, 10, 0, 0xF, 0)``" -msgstr "" - -#: c-api/apiabiversion.rst:118 -#, fuzzy -msgid "``0x030a00f0``" -msgstr "``0x03``" - -#: c-api/apiabiversion.rst:121 -msgid "" -"Out-of range bits in the arguments are ignored. That is, the macro can be " -"defined as:" -msgstr "" - -#: c-api/apiabiversion.rst:135 -msgid "" -"``Py_PACK_FULL_VERSION`` is primarily a macro, intended for use in ``#if`` " -"directives, but it is also available as an exported function." -msgstr "" - -#: c-api/apiabiversion.rst:142 -msgid "" -"Equivalent to ``Py_PACK_FULL_VERSION(major, minor, 0, 0, 0)``. The result " -"does not correspond to any Python release, but is useful in numeric " -"comparisons." -msgstr "" - -#~ msgid "" -#~ "The underlying version information can be found by treating it as a 32 " -#~ "bit number in the following manner:" -#~ msgstr "" -#~ "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 :" - -#~ msgid "Bytes" -#~ msgstr "Octets" - -#~ msgid "Bits (big endian order)" -#~ msgstr "Bits (ordre gros-boutiste)" - -#~ msgid "Meaning" -#~ msgstr "Signification" - -#~ msgid "1-8" -#~ msgstr "1-8" - -#~ msgid "``PY_MAJOR_VERSION``" -#~ msgstr "``PY_MAJOR_VERSION``" - -#~ msgid "9-16" -#~ msgstr "9-16" - -#~ msgid "``PY_MINOR_VERSION``" -#~ msgstr "``PY_MINOR_VERSION``" - -#~ msgid "3" -#~ msgstr "3" - -#~ msgid "17-24" -#~ msgstr "17-24" - -#~ msgid "``PY_MICRO_VERSION``" -#~ msgstr "``PY_MICRO_VERSION``" - -#~ msgid "25-28" -#~ msgstr "25-28" - -#~ msgid "``PY_RELEASE_LEVEL``" -#~ msgstr "``PY_RELEASE_LEVEL``" - -#~ msgid "29-32" -#~ msgstr "29-32" - -#~ msgid "``PY_RELEASE_SERIAL``" -#~ msgstr "``PY_RELEASE_SERIAL``" - -#~ msgid "" -#~ "Thus ``3.4.1a2`` is hexversion ``0x030401a2`` and ``3.10.0`` is " -#~ "hexversion ``0x030a00f0``." -#~ 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``" - -#, fuzzy -#~ msgid "This version is also available via the symbol :c:var:`Py_Version`." -#~ msgstr "" -#~ "Cette version est aussi disponible via le symbole :data:`Py_Version`." - -#~ msgid "``1``" -#~ msgstr "``1``" - -#~ msgid "``2``" -#~ msgstr "``2``" - -#~ msgid "``3``" -#~ msgstr "``3``" - -#~ msgid "``4``" -#~ msgstr "``4``" diff --git a/c-api/arg.po b/c-api/arg.po deleted file mode 100644 index 2e17593b20..0000000000 --- a/c-api/arg.po +++ /dev/null @@ -1,1534 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-12-11 11:44+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" - -#: c-api/arg.rst:6 -msgid "Parsing arguments and building values" -msgstr "Analyse des arguments et construction des valeurs" - -#: c-api/arg.rst:8 -#, fuzzy -msgid "" -"These functions are useful when creating your own extension functions and " -"methods. Additional information and examples are available " -"in :ref:`extending-index`." -msgstr "" -"Ces fonctions sont utiles pour créer vos propres fonctions et méthodes " -"d'extensions. Des informations supplémentaires et des exemples sont " -"disponibles ici: :ref:`extending-index`." - -#: c-api/arg.rst:12 -msgid "" -"The first three of these functions " -"described, :c:func:`PyArg_ParseTuple`, :c:func:`PyArg_ParseTupleAndKeywords`, " -"and :c:func:`PyArg_Parse`, all use *format strings* which are used to tell " -"the function about the expected arguments. The format strings use the same " -"syntax for each of these functions." -msgstr "" -"Dans Les trois premières de ces fonctions " -"décrites, :c:func:`PyArg_ParseTuple`, :c:func:`PyArg_ParseTupleAndKeywords`, " -"et :c:func:`PyArg_Parse`, toutes utilisent *des chaînes de format* qui sont " -"utilisées pour indiquer à la fonction les arguments attendus. Les chaînes de " -"format utilise la même syntaxe pour chacune de ces fonctions." - -#: c-api/arg.rst:19 -msgid "Parsing arguments" -msgstr "Analyse des arguments" - -#: c-api/arg.rst:21 -msgid "" -"A format string consists of zero or more \"format units.\" A format unit " -"describes one Python object; it is usually a single character or a " -"parenthesized sequence of format units. With a few exceptions, a format " -"unit that is not a parenthesized sequence normally corresponds to a single " -"address argument to these functions. In the following description, the " -"quoted form is the format unit; the entry in (round) parentheses is the " -"Python object type that matches the format unit; and the entry in [square] " -"brackets is the type of the C variable(s) whose address should be passed." -msgstr "" -"Une chaîne de format se compose de zéro ou plusieurs \"unités de format\". " -"Une unité de format décrit un objet Python, elle est généralement composée " -"d'un seul caractère ou d'une séquence d'unités de format entre parenthèses. " -"À quelques exceptions près, une unité de format qui n'est pas une séquence " -"entre parenthèses correspond normalement à un argument d'une seule adresse " -"pour ces fonctions. Dans la description qui suit, la forme entre guillemets " -"est l'unité de format, l'entrée entre parenthèses est le type d'objet Python " -"qui correspond à l'unité de format, et l'entrée entre crochets est le type " -"de la variable C (ou des variables) dont l'adresse doit être donnée." - -#: c-api/arg.rst:33 -msgid "Strings and buffers" -msgstr "Chaînes et tampons" - -#: c-api/arg.rst:37 -msgid "" -"On Python 3.12 and older, the macro :c:macro:`!PY_SSIZE_T_CLEAN` must be " -"defined before including :file:`Python.h` to use all ``#`` variants of " -"formats (``s#``, ``y#``, etc.) explained below. This is not necessary on " -"Python 3.13 and later." -msgstr "" -"Dans Python 3.12 et précédents, la macro :c:macro:`!PY_SSIZE_T_CLEAN` doit " -"être définie avant d'inclure :file:`Python.h` pour utiliser toutes les " -"variantes ``#`` de format (``s#``, ``y#``, etc.) détaillées ci-dessous. Ce " -"n'est plus nécessaire pour Python 3.13 et les versions ultérieures." - -#: c-api/arg.rst:42 -msgid "" -"These formats allow accessing an object as a contiguous chunk of memory. You " -"don't have to provide raw storage for the returned unicode or bytes area." -msgstr "" -"Ces formats permettent d'accéder à un objet sous forme d'un fragment de " -"mémoire contiguë. Il n'est pas nécessaire d'allouer la mémoire pour " -"l'*unicode* ou le *bytes* renvoyé." - -#: c-api/arg.rst:46 -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 "There are three ways strings and buffers can be converted to C:" -msgstr "" -"Les chaînes de caractères et tampons peuvent être convertis de trois " -"manières vers C:" - -#: c-api/arg.rst:50 -#, fuzzy -msgid "" -"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 à " -"l'appelant d'utiliser le tampon par la suite, même à l'intérieur d'un " -"bloc :c:type:`Py_BEGIN_ALLOW_THREADS`, sans risques de voir des données " -"mutables se faire redimensionner ou supprimer. En conséquence, **il vous " -"appartient 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:57 -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 "" -"Les formats ``es``, ``es#``, ``et`` et ``et#`` allouent le tampon de " -"résultats. **Vous devez appeler** :c:func:`PyMem_Free` après avoir fini de " -"traiter les données (ou en cas d'abandon prématuré)." - -#: c-api/arg.rst:63 -#, 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:70 -msgid "" -"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 "" - -#: c-api/arg.rst:76 -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:80 -msgid "``s`` (:class:`str`) [const char \\*]" -msgstr "``s`` (:class:`str`) [``const char *``]" - -#: 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 " -"you pass. The C string is NUL-terminated. The Python string must not " -"contain embedded null code points; if it does, a :exc:`ValueError` exception " -"is raised. Unicode objects are converted to C strings using ``'utf-8'`` " -"encoding. If this conversion fails, a :exc:`UnicodeError` is raised." -msgstr "" -"Convertit un objet Unicode en un pointeur vers une chaîne de caractères. " -"S'il s'agit d'un pointeur vers une chaîne de caractères déjà existante, il " -"est stocké dans la variable de type pointeur vers un caractère dont vous " -"avez donné l'adresse. Une chaîne de caractères en C se termine par *NULL*. " -"La chaîne de caractères Python ne doit donc pas contenir de caractère dont " -"le code est *null*. Si elle en contient, une exception :exc:`ValueError` est " -"levée. Si la conversion échoue, une :exc:`UnicodeError` est levée." - -#: 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 " -"strings, it is preferable to use the ``O&`` format " -"with :c:func:`PyUnicode_FSConverter` as *converter*." -msgstr "" -"Ce format n'accepte pas les :term:`objets compatibles avec une chaîne " -"d'octets `. Si vous voulez accepter les chemins du " -"système de fichiers et les convertir vers des chaînes de caractères C, il " -"est préférable d'utiliser le format ``O&`` " -"avec :c:func:`PyUnicode_FSConverter` en tant que *converter*." - -#: c-api/arg.rst:96 -msgid "" -"Previously, :exc:`TypeError` was raised when embedded null code points were " -"encountered in the Python string." -msgstr "" -"Auparavant, une :exc:`TypeError` était levée quand la chaîne de caractères " -"Python contenait des codes NULL." - -#: c-api/arg.rst:100 -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: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 " -"resulting C string may contain embedded NUL bytes. Unicode objects are " -"converted to C strings using ``'utf-8'`` encoding." -msgstr "" -"Ce format accepte les objets Unicode et les *bytes-like object*. Cela " -"remplit une structure :c:type:`Py_buffer` qui est fournie par l'appelant. " -"Dans ce cas, la chaîne de caractères C qui en résulte peut contenir des " -"octets NULL. Les objets Unicode sont convertis en chaînes de caractères C en " -"utilisant l'encodage ``'utf-8'``." - -#: c-api/arg.rst:106 -#, fuzzy -msgid "" -"``s#`` (:class:`str`, read-only :term:`bytes-like object`) [const char " -"\\*, :c:type:`Py_ssize_t`]" -msgstr "" -"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " -"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" - -#: c-api/arg.rst:107 -#, fuzzy -msgid "" -"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 mutables. Le " -"résultat est stocké dans deux variables C, la première est un pointeur vers " -"une chaîne de caractères C, la seconde contient sa taille. La chaîne de " -"caractères peut contenir des octets NULL. Les objets Unicode sont convertis " -"vers des chaînes de caractères C utilisant l'encodage ``'utf-8'``." - -#: c-api/arg.rst:643 -msgid "``z`` (:class:`str` or ``None``) [const char \\*]" -msgstr "``z`` (:class:`str` ou ``None``) [``const char *``]" - -#: c-api/arg.rst:114 -#, fuzzy -msgid "" -"Like ``s``, but the Python object may also be ``None``, in which case the C " -"pointer is set to ``NULL``." -msgstr "" -"Comme ``s``, mais l'objet Python peut aussi être ``None``, auquel cas le " -"pointeur C devient *NULL*." - -#: c-api/arg.rst:117 -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: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``." -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:121 -#, fuzzy -msgid "" -"``z#`` (:class:`str`, read-only :term:`bytes-like object` or ``None``) " -"[const char \\*, :c:type:`Py_ssize_t`]" -msgstr "" -"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " -"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" - -#: c-api/arg.rst:122 -#, fuzzy -msgid "" -"Like ``s#``, but the Python object may also be ``None``, in which case the C " -"pointer is set to ``NULL``." -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:125 -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:126 -#, fuzzy -msgid "" -"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:132 -msgid "" -"Previously, :exc:`TypeError` was raised when embedded null bytes were " -"encountered in the bytes buffer." -msgstr "" -"Auparavant, :exc:`TypeError` était levée lorsque des octets *null* étaient " -"rencontrés dans le tampon d'octets." - -#: c-api/arg.rst:136 -msgid "``y*`` (:term:`bytes-like object`) [Py_buffer]" -msgstr "``y*`` (:term:`bytes-like object`) [``Py_buffer``]" - -#: 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:141 -#, fuzzy -msgid "" -"``y#`` (read-only :term:`bytes-like object`) [const char " -"\\*, :c:type:`Py_ssize_t`]" -msgstr "" -"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " -"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" - -#: c-api/arg.rst:142 -msgid "" -"This variant on ``s#`` doesn't accept Unicode objects, only bytes-like " -"objects." -msgstr "" -"Cette variante de ``s#`` n'accepte pas les objets Unicode, uniquement des " -"objets assimilés à des octets." - -#: c-api/arg.rst:145 -msgid "``S`` (:class:`bytes`) [PyBytesObject \\*]" -msgstr "``S`` (:class:`bytes`) [``PyBytesObject *``]" - -#: 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: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:150 -msgid "``Y`` (:class:`bytearray`) [PyByteArrayObject \\*]" -msgstr "``Y`` (:class:`bytearray`) [``PyByteArrayObject *``]" - -#: 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: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:155 -msgid "``U`` (:class:`str`) [PyObject \\*]" -msgstr "``U`` (:class:`str`) [``PyObject *``]" - -#: c-api/arg.rst:156 -#, 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: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:160 -msgid "``w*`` (read-write :term:`bytes-like object`) [Py_buffer]" -msgstr "``w*`` (lecture-écriture :term:`bytes-like object`) [``Py_buffer``]" - -#: c-api/arg.rst:161 -#, fuzzy -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. " -"The buffer may contain embedded null bytes. The caller has to " -"call :c:func:`PyBuffer_Release` when it is done with the buffer." -msgstr "" -"Ce format accepte les objets Unicode et les *bytes-like object*. Cela " -"remplit une structure :c:type:`Py_buffer` qui est fournie par l'appelant. " -"Dans ce cas, la chaîne de caractères C qui en résulte peut contenir des " -"octets NULL. Les objets Unicode sont convertis en chaînes de caractères C en " -"utilisant l'encodage ``'utf-8'``." - -#: c-api/arg.rst:166 -msgid "``es`` (:class:`str`) [const char \\*encoding, char \\*\\*buffer]" -msgstr "" - -#: c-api/arg.rst:167 -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:170 -msgid "" -"This format requires two arguments. The first is only used as input, and " -"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: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:178 -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 " -"newly allocated storage. The caller is responsible for " -"calling :c:func:`PyMem_Free` to free the allocated buffer after use." -msgstr "" - -#: c-api/arg.rst:183 -msgid "" -"``et`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " -"\\*encoding, char \\*\\*buffer]" -msgstr "" - -#: c-api/arg.rst:184 -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:188 -#, fuzzy -msgid "" -"``es#`` (:class:`str`) [const char \\*encoding, char " -"\\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" -msgstr "" -"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " -"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" - -#: c-api/arg.rst:189 -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:193 -msgid "" -"It requires three arguments. The first is only used as input, and 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: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:203 -msgid "There are two modes of operation:" -msgstr "Il existe deux modes de fonctionnement :" - -#: c-api/arg.rst:205 -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 " -"responsible for calling :c:func:`PyMem_Free` to free the allocated buffer " -"after usage." -msgstr "" - -#: c-api/arg.rst:210 -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 " -"interpret the initial value of *\\*buffer_length* as the buffer size. It " -"will then copy the encoded data into the buffer and NUL-terminate it. If " -"the buffer is not large enough, a :exc:`ValueError` will be set." -msgstr "" - -#: c-api/arg.rst:216 -msgid "" -"In both cases, *\\*buffer_length* is set to the length of the encoded data " -"without the trailing NUL byte." -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:219 -#, fuzzy -msgid "" -"``et#`` (:class:`str`, :class:`bytes` or :class:`bytearray`) [const char " -"\\*encoding, char \\*\\*buffer, :c:type:`Py_ssize_t` \\*buffer_length]" -msgstr "" -"``s#`` (:class:`str`, :term:`bytes-like object` en lecture seule) [``const " -"char \\*``, ``int`` ou :c:type:`Py_ssize_t`]" - -#: c-api/arg.rst:220 -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:224 -msgid "" -"``u``, ``u#``, ``Z``, and ``Z#`` are removed because they used a legacy " -"``Py_UNICODE*`` representation." -msgstr "" - -#: c-api/arg.rst:230 -msgid "Numbers" -msgstr "Les nombres" - -#: c-api/arg.rst:232 -msgid "" -"These formats allow representing Python numbers or single characters as C " -"numbers. Formats that require :class:`int`, :class:`float` " -"or :class:`complex` can also use the corresponding special " -"methods :meth:`~object.__index__`, :meth:`~object.__float__` " -"or :meth:`~object.__complex__` to convert the Python object to the required " -"type." -msgstr "" - -#: c-api/arg.rst:238 -msgid "" -"For signed integer formats, :exc:`OverflowError` is raised if the value is " -"out of range for the C type. For unsigned integer formats, the most " -"significant bits are silently truncated when the receiving field is too " -"small to receive the value, and :exc:`DeprecationWarning` is emitted when " -"the value is larger than the maximal value for the C type or less than the " -"minimal value for the corresponding signed integer type of the same size." -msgstr "" - -#: c-api/arg.rst:246 -msgid "``b`` (:class:`int`) [unsigned char]" -msgstr "``b`` (:class:`int`) [``unsigned char``]" - -#: c-api/arg.rst:247 -#, fuzzy -msgid "" -"Convert a nonnegative Python integer to an unsigned tiny integer, stored in " -"a C :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:677 -msgid "``B`` (:class:`int`) [unsigned char]" -msgstr "``B`` (:class:`int`) [``unsigned char``]" - -#: c-api/arg.rst:251 -#, fuzzy -msgid "" -"Convert a Python integer to a tiny integer without overflow checking, stored " -"in a C :c:expr:`unsigned char`. Convert a Python integer to 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:671 -msgid "``h`` (:class:`int`) [short int]" -msgstr "``h`` (:class:`int`) [``short int``]" - -#: c-api/arg.rst:256 -#, 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:680 -msgid "``H`` (:class:`int`) [unsigned short int]" -msgstr "``H`` (:class:`int`) [``unsigned short int``]" - -#: c-api/arg.rst:259 -#, fuzzy -msgid "Convert a Python integer to a C :c:expr:`unsigned short int`." -msgstr "Convertit un entier Python en un :c:type:`short int` C." - -#: c-api/arg.rst:665 -msgid "``i`` (:class:`int`) [int]" -msgstr "``i`` (:class:`int`) [``int``]" - -#: c-api/arg.rst:262 -#, 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:683 -msgid "``I`` (:class:`int`) [unsigned int]" -msgstr "``I`` (:class:`int`) [``unsigned int``]" - -#: c-api/arg.rst:265 -#, fuzzy -msgid "Convert a Python integer to a C :c:expr:`unsigned int`." -msgstr "Convertit un entier Python en un :c:type:`long int`." - -#: c-api/arg.rst:674 -msgid "``l`` (:class:`int`) [long int]" -msgstr "``l`` (:class:`int`) [``long int``]" - -#: c-api/arg.rst:268 -#, 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:686 -msgid "``k`` (:class:`int`) [unsigned long]" -msgstr "``k`` (:class:`int`) [``unsigned long``]" - -#: c-api/arg.rst:271 -#, fuzzy -msgid "Convert a Python integer to a C :c:expr:`unsigned long`." -msgstr "Convertit un entier Python en un :c:type:`long int`." - -#: c-api/arg.rst:282 -msgid "Use :meth:`~object.__index__` if available." -msgstr "" - -#: c-api/arg.rst:689 -msgid "``L`` (:class:`int`) [long long]" -msgstr "``L`` (:class:`int`) [``long long``]" - -#: c-api/arg.rst:277 -#, fuzzy -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:694 -msgid "``K`` (:class:`int`) [unsigned long long]" -msgstr "``K`` (:class:`int`) [``unsigned long long``]" - -#: c-api/arg.rst:280 -#, fuzzy -msgid "Convert a Python integer to a C :c:expr:`unsigned long long`." -msgstr "Convertit un entier Python en un :c:type:`long int`." - -#: c-api/arg.rst:697 -#, fuzzy -msgid "``n`` (:class:`int`) [:c:type:`Py_ssize_t`]" -msgstr "``n`` (:class:`int`) [``Py_ssize_t``]" - -#: c-api/arg.rst:286 -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:288 -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:289 -#, fuzzy -msgid "" -"Convert a Python byte, represented as a :class:`bytes` or :class:`bytearray` " -"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:292 -msgid "Allow :class:`bytearray` objects." -msgstr "" - -#: c-api/arg.rst:715 -msgid "``C`` (:class:`str` of length 1) [int]" -msgstr "``C`` (:class:`str` de longueur 1) [``int``]" - -#: c-api/arg.rst:296 -#, fuzzy -msgid "" -"Convert a Python character, represented as a :class:`str` object of length " -"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:722 -msgid "``f`` (:class:`float`) [float]" -msgstr "``f`` (:class:`float`) [``float``]" - -#: c-api/arg.rst:300 -#, 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:719 -msgid "``d`` (:class:`float`) [double]" -msgstr "``d`` (:class:`float`) [``double``]" - -#: c-api/arg.rst:303 -#, 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:305 -msgid "``D`` (:class:`complex`) [Py_complex]" -msgstr "``D`` (:class:`complex`) [``Py_complex``]" - -#: c-api/arg.rst:306 -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:310 -msgid "" -"For unsigned integer formats ``B``, ``H``, ``I``, ``k`` and " -"``K``, :exc:`DeprecationWarning` is emitted when the value is larger than " -"the maximal value for the C type or less than the minimal value for the " -"corresponding signed integer type of the same size." -msgstr "" - -#: c-api/arg.rst:317 -msgid "Other objects" -msgstr "Autres objets" - -#: c-api/arg.rst:728 -msgid "``O`` (object) [PyObject \\*]" -msgstr "``O`` (objet) [``PyObject *``]" - -#: c-api/arg.rst:320 -#, fuzzy -msgid "" -"Store a Python object (without any conversion) in a C object pointer. The C " -"program thus receives the actual object that was passed. A " -"new :term:`strong reference` to the object is not created (i.e. its " -"reference count is not increased). The pointer stored is not ``NULL``." -msgstr "" -"Stocke un objet Python (sans aucune conversion) en un pointeur sur un objet " -"C. Ainsi, Le programme C reçoit l'objet réel qui a été passé. Le compteur de " -"référence sur l'objet n'est pas incrémenté. Le pointeur stocké n'est pas " -"*NULL*." - -#: c-api/arg.rst:326 -msgid "``O!`` (object) [*typeobject*, PyObject \\*]" -msgstr "``O!`` (objet) [*typeobject*, ``PyObject *``]" - -#: c-api/arg.rst:327 -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: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:335 -#, fuzzy -msgid "``O&`` (object) [*converter*, *address*]" -msgstr "``O&`` (objet) [*converter*, *anything*]" - -#: c-api/arg.rst:336 -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:expr:`void *`. The " -"*converter* function in turn is called as follows::" -msgstr "" - -#: c-api/arg.rst:343 -msgid "" -"where *object* is the Python object to be converted and *address* is " -"the :c: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:352 -msgid "" -"If the *converter* returns :c:macro:`!Py_CLEANUP_SUPPORTED`, it may get " -"called a second time if the argument parsing eventually fails, giving the " -"converter a chance to release any memory that it had already allocated. In " -"this second call, the *object* parameter will be ``NULL``; *address* will " -"have the same value as in the original call." -msgstr "" - -#: c-api/arg.rst:358 -msgid "" -"Examples of converters: :c:func:`PyUnicode_FSConverter` " -"and :c:func:`PyUnicode_FSDecoder`." -msgstr "" - -#: c-api/arg.rst:361 -#, fuzzy -msgid ":c:macro:`!Py_CLEANUP_SUPPORTED` was added." -msgstr "``Py_CLEANUP_SUPPORTED`` à été ajouté." - -#: c-api/arg.rst:700 -msgid "``p`` (:class:`bool`) [int]" -msgstr "``p`` (:class:`bool`) [``int``]" - -#: c-api/arg.rst:365 -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 " -"int to ``1`` if the expression was true and ``0`` if it was false. This " -"accepts any valid Python value. See :ref:`truth` for more information about " -"how Python tests values for truth." -msgstr "" - -#: c-api/arg.rst:373 -#, fuzzy -msgid "``(items)`` (sequence) [*matching-items*]" -msgstr "``(items)`` (:class:`tuple`) [*matching-items*]" - -#: c-api/arg.rst:374 -#, fuzzy -msgid "" -"The object must be a Python sequence (except :class:`str`, :class:`bytes` " -"or :class:`bytearray`) whose length is the number of format units in " -"*items*. The C arguments must correspond to the individual format units in " -"*items*. Format units for sequences may be nested." -msgstr "" -"L'objet doit être une séquence Python dont la longueur est le nombre " -"d'unités de formats dans *articles*. Les arguments C doivent correspondre à " -"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:379 -msgid "" -"If *items* contains format units which store a :ref:`borrowed buffer ` (``s``, ``s#``, ``z``, ``z#``, ``y``, or ``y#``) or " -"a :term:`borrowed reference` (``S``, ``Y``, ``U``, ``O``, or ``O!``), the " -"object must be a Python tuple. The *converter* for the ``O&`` format unit in " -"*items* must not store a borrowed buffer or a borrowed reference." -msgstr "" - -#: c-api/arg.rst:386 -msgid "" -":class:`str` and :class:`bytearray` objects no longer accepted as a sequence." -msgstr "" - -#: c-api/arg.rst:389 -msgid "" -"Non-tuple sequences are deprecated if *items* contains format units which " -"store a borrowed buffer or a borrowed reference." -msgstr "" - -#: c-api/arg.rst:393 -msgid "" -"A few other characters have a meaning in a format string. These may not " -"occur inside nested parentheses. They are:" -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:396 -msgid "``|``" -msgstr "``|``" - -#: c-api/arg.rst:397 -msgid "" -"Indicates that the remaining arguments in the Python argument list are " -"optional. The C variables corresponding to optional arguments should be " -"initialized to their default value --- when an optional argument is not " -"specified, :c:func:`PyArg_ParseTuple` does not touch the contents of the " -"corresponding C variable(s)." -msgstr "" - -#: c-api/arg.rst:403 -msgid "``$``" -msgstr "``$``" - -#: c-api/arg.rst:404 -msgid "" -":c:func:`PyArg_ParseTupleAndKeywords` only: Indicates that the remaining " -"arguments in the Python argument list are keyword-only. Currently, all " -"keyword-only arguments must also be optional arguments, so ``|`` must always " -"be specified before ``$`` in the format string." -msgstr "" - -#: c-api/arg.rst:412 -msgid "``:``" -msgstr "" - -#: c-api/arg.rst:413 -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:417 -msgid "``;``" -msgstr "" - -#: c-api/arg.rst:418 -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 " -"``;`` mutually exclude each other." -msgstr "" -"La liste des unités de format s'arrête ici ; la chaîne après le point-" -"virgule est utilise comme message d'erreur *au lieu* du message d'erreur par " -"défaut. ``:`` et ``;`` sont mutuellement exclusifs." - -#: c-api/arg.rst:422 -#, fuzzy -msgid "" -"Note that any Python object references which are provided to the caller are " -"*borrowed* references; do not release them (i.e. do not decrement their " -"reference count)!" -msgstr "" -"Notez que n'importe quelles références sur un objet Python qui sont données " -"à l'appelant sont des références *empruntées* ; ne décrémentez pas leur " -"compteur de références !" - -#: c-api/arg.rst:426 -msgid "" -"Additional arguments passed to these functions must be addresses of " -"variables whose type is determined by the format string; these are used to " -"store values from the input tuple. There are a few cases, as described in " -"the list of format units above, where these parameters are used as input " -"values; they should match what is specified for the corresponding format " -"unit in that case." -msgstr "" -"Les arguments additionnels qui sont donnés à ces fonctions doivent être des " -"adresses de variables dont le type est déterminé par la chaîne de format. " -"Elles sont utilisées pour stocker les valeurs du *n*-uplet d'entrée. Il y a " -"quelques cas, comme décrit précédemment dans le liste des unités de formats, " -"où ces paramètres sont utilisés comme valeurs d'entrée. Dans ce cas, ils " -"devraient correspondre à ce qui est spécifié pour l'unité de format " -"correspondante." - -#: c-api/arg.rst:432 -msgid "" -"For the conversion to succeed, the *arg* object must match the format and " -"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:441 -msgid "API Functions" -msgstr "Fonction de l'API" - -#: c-api/arg.rst:445 -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:452 -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:458 -msgid "" -"Parse the parameters of a function that takes both positional and keyword " -"parameters into local variables. The *keywords* argument is a ``NULL``-" -"terminated array of keyword parameter names specified as null-terminated " -"ASCII or UTF-8 encoded C strings. Empty names denote :ref:`positional-only " -"parameters `. Returns true on success; on " -"failure, it returns false and raises the appropriate exception." -msgstr "" - -#: c-api/arg.rst:469 -msgid "" -"The *keywords* parameter declaration is :c:expr:`char * const *` in C " -"and :c:expr:`const char * const *` in C++. This can be overridden with " -"the :c:macro:`PY_CXX_CONST` macro." -msgstr "" - -#: c-api/arg.rst:473 -msgid "" -"Added support for :ref:`positional-only parameters `." -msgstr "" - -#: c-api/arg.rst:477 -msgid "" -"The *keywords* parameter has now type :c:expr:`char * const *` in C " -"and :c:expr:`const char * const *` in C++, instead of :c:expr:`char **`. " -"Added support for non-ASCII keyword parameter names." -msgstr "" - -#: c-api/arg.rst:486 -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:492 -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:501 -msgid "" -"Parse the parameter of a function that takes a single positional parameter " -"into a local variable. Returns true on success; on failure, it returns " -"false and raises the appropriate exception." -msgstr "" - -#: c-api/arg.rst:505 -msgid "Example::" -msgstr "Exemple ::" - -#: c-api/arg.rst:521 -msgid "" -"Parse the parameters of a function that takes only array parameters into " -"local variables (that is, a function using the :c:macro:`METH_FASTCALL` " -"calling convention). Returns true on success; on failure, it returns false " -"and raises the appropriate exception." -msgstr "" - -#: c-api/arg.rst:532 -msgid "" -"Parse the parameters of a function that takes both array and keyword " -"parameters into local variables (that is, a function using " -"the :c:macro:`METH_FASTCALL` ``|`` :c:macro:`METH_KEYWORDS` calling " -"convention). Returns true on success; on failure, it returns false and " -"raises the appropriate exception." -msgstr "" - -#: c-api/arg.rst:543 -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 " -"retrieve their parameters should be declared as :c:macro:`METH_VARARGS` in " -"function or method tables. The tuple containing the actual parameters " -"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: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 " -"the caller. This function returns true on success and false if *args* is not " -"a tuple or contains the wrong number of elements; an exception will be set " -"if there was a failure." -msgstr "" - -#: c-api/arg.rst:558 -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:574 -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:581 -msgid "" -"The value to be inserted, if any, before :c:expr:`char * const *` in the " -"*keywords* parameter declaration of :c:func:`PyArg_ParseTupleAndKeywords` " -"and :c:func:`PyArg_VaParseTupleAndKeywords`. Default empty for C and " -"``const`` for C++ (:c:expr:`const char * const *`). To override, define it " -"to the desired value before including :file:`Python.h`." -msgstr "" - -#: c-api/arg.rst:595 -msgid "Building values" -msgstr "Construction des valeurs" - -#: c-api/arg.rst:599 -msgid "" -"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:604 -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 " -"string is empty, it returns ``None``; if it contains exactly one format " -"unit, it returns whatever object is described by that format unit. To force " -"it to return a tuple of size 0 or one, parenthesize the format string." -msgstr "" - -#: c-api/arg.rst:610 -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. " -"Buffers provided by the caller are never referenced by the objects created " -"by :c:func:`Py_BuildValue`. In other words, if your code " -"invokes :c:func:`malloc` and passes the allocated memory " -"to :c:func:`Py_BuildValue`, your code is responsible for " -"calling :c:func:`free` for that memory once :c:func:`Py_BuildValue` returns." -msgstr "" - -#: c-api/arg.rst:618 -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 " -"return; and the entry in [square] brackets is the type of the C value(s) to " -"be passed." -msgstr "" - -#: c-api/arg.rst:622 -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:626 -msgid "``s`` (:class:`str` or ``None``) [const char \\*]" -msgstr "``s`` (:class:`str` ou ``None``) [``const char *``]" - -#: c-api/arg.rst:627 -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:630 -#, 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:631 -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:635 -msgid "``y`` (:class:`bytes`) [const char \\*]" -msgstr "``y`` (:class:`bytes`) [``const char *``]" - -#: c-api/arg.rst:636 -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:639 -#, fuzzy -msgid "``y#`` (:class:`bytes`) [const char \\*, :c:type:`Py_ssize_t`]" -msgstr "``y#`` (:class:`bytes`) [``const char *, int``]" - -#: c-api/arg.rst:640 -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:660 -msgid "Same as ``s``." -msgstr "" - -#: c-api/arg.rst:646 -#, 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:663 -msgid "Same as ``s#``." -msgstr "" - -#: c-api/arg.rst:649 -msgid "``u`` (:class:`str`) [const wchar_t \\*]" -msgstr "``u`` (:class:`str`) [``const wchar_t *``]" - -#: c-api/arg.rst:650 -msgid "" -"Convert a null-terminated :c:type:`wchar_t` buffer of Unicode (UTF-16 or " -"UCS-4) data to a Python Unicode object. If the Unicode buffer pointer is " -"``NULL``, ``None`` is returned." -msgstr "" - -#: c-api/arg.rst:654 -#, 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:655 -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:659 -msgid "``U`` (:class:`str` or ``None``) [const char \\*]" -msgstr "``U`` (:class:`str` ou ``None``) [``const char *``]" - -#: c-api/arg.rst:662 -#, 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:666 -#, fuzzy -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:668 -msgid "``b`` (:class:`int`) [char]" -msgstr "``b`` (:class:`int`) [``char``]" - -#: c-api/arg.rst:669 -#, 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:672 -#, 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:675 -#, 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:678 -#, 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:681 -#, 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:684 -#, fuzzy -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:687 -#, 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:690 -#, fuzzy -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:695 -#, 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:698 -msgid "Convert a C :c:type:`Py_ssize_t` to a Python integer." -msgstr "" - -#: c-api/arg.rst:701 -#, fuzzy -msgid "Convert a C :c:expr:`int` to a Python :class:`bool` object." -msgstr "Convertit un :c:type:`long int` en un *int* Python." - -#: c-api/arg.rst:703 -msgid "" -"Be aware that this format requires an ``int`` argument. Unlike most other " -"contexts in C, variadic arguments are not coerced to a suitable type " -"automatically. You can convert another type (for example, a pointer or a " -"float) to a suitable ``int`` value using ``(x) ? 1 : 0`` or ``!!x``." -msgstr "" - -#: c-api/arg.rst:711 -msgid "``c`` (:class:`bytes` of length 1) [char]" -msgstr "``c`` (:class:`bytes` de taille 1) [``char``]" - -#: c-api/arg.rst:712 -#, fuzzy -msgid "" -"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:716 -#, fuzzy -msgid "" -"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:720 -#, 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:723 -#, 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:725 -msgid "``D`` (:class:`complex`) [Py_complex \\*]" -msgstr "``D`` (:class:`complex`) [``Py_complex *``]" - -#: c-api/arg.rst:726 -msgid "Convert a C :c:type:`Py_complex` structure to a Python complex number." -msgstr "" - -#: c-api/arg.rst:729 -msgid "" -"Pass a Python object untouched but create a new :term:`strong reference` to " -"it (i.e. its reference count is incremented by one). If the object passed in " -"is a ``NULL`` pointer, it is assumed that this was caused because the call " -"producing the argument found an error and set an exception. " -"Therefore, :c:func:`Py_BuildValue` will return ``NULL`` but won't raise an " -"exception. If no exception has been raised yet, :exc:`SystemError` is set." -msgstr "" - -#: c-api/arg.rst:738 -msgid "``S`` (object) [PyObject \\*]" -msgstr "``S`` (objet) [``PyObject *``]" - -#: c-api/arg.rst:739 -msgid "Same as ``O``." -msgstr "" - -#: c-api/arg.rst:741 -msgid "``N`` (object) [PyObject \\*]" -msgstr "``N`` (objet) [``PyObject *``]" - -#: c-api/arg.rst:742 -msgid "" -"Same as ``O``, except it doesn't create a new :term:`strong reference`. " -"Useful when the object is created by a call to an object constructor in the " -"argument list." -msgstr "" - -#: c-api/arg.rst:746 -msgid "``O&`` (object) [*converter*, *anything*]" -msgstr "``O&`` (objet) [*converter*, *anything*]" - -#: c-api/arg.rst:747 -msgid "" -"Convert *anything* to a Python object through a *converter* function. The " -"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:752 -msgid "``(items)`` (:class:`tuple`) [*matching-items*]" -msgstr "``(items)`` (:class:`tuple`) [*matching-items*]" - -#: c-api/arg.rst:753 -msgid "" -"Convert a sequence of C values to a Python tuple with the same number of " -"items." -msgstr "" - -#: c-api/arg.rst:755 -msgid "``[items]`` (:class:`list`) [*matching-items*]" -msgstr "``[items]`` (:class:`list`) [*matching-items*]" - -#: c-api/arg.rst:756 -msgid "" -"Convert a sequence of C values to a Python list with the same number of " -"items." -msgstr "" - -#: c-api/arg.rst:758 -msgid "``{items}`` (:class:`dict`) [*matching-items*]" -msgstr "``{items}`` (:class:`dict`) [*matching-items*]" - -#: c-api/arg.rst:759 -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:763 -msgid "" -"If there is an error in the format string, the :exc:`SystemError` exception " -"is set and ``NULL`` returned." -msgstr "" - -#: c-api/arg.rst:768 -msgid "" -"Identical to :c:func:`Py_BuildValue`, except that it accepts a va_list " -"rather than a variable number of arguments." -msgstr "" - -#, fuzzy -#~ msgid "" -#~ "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." - -#, fuzzy -#~ msgid "" -#~ "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." - -#, fuzzy -#~ msgid "" -#~ "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." - -#, fuzzy -#~ msgid "" -#~ "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." - -#~ msgid "``u`` (:class:`str`) [const Py_UNICODE \\*]" -#~ msgstr "``u`` (:class:`str`) [``const Py_UNICODE *``]" - -#~ 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` pointer variable, which will be filled with the " -#~ "pointer to an existing Unicode buffer. Please note that the width of " -#~ "a :c:type:`Py_UNICODE` character depends on compilation options (it is " -#~ "either 16 or 32 bits). The Python string must not contain embedded null " -#~ "code points; if it does, a :exc:`ValueError` exception is raised." -#~ msgstr "" -#~ "Convertit un objet Python Unicode en un pointeur C vers un tampon de " -#~ "caractères Unicode terminé par *NULL*. Vous devez passer l'adresse d'un " -#~ "pointeur :c:type:`Py_UNICODE`, qui sera rempli avec le pointeur vers un " -#~ "tampon Unicode existant. Veuillez noter que la taille " -#~ "d'un :c:type:`Py_UNICODE` dépend des options de compilation (soit 16, " -#~ "soit 32 bits). La chaîne de caractères Python ne doit pas contenir de " -#~ "code *NULL*. Si elle en contient, une exception :exc:`ValueError` est " -#~ "levée." - -#, fuzzy -#~ msgid "``u#`` (:class:`str`) [const Py_UNICODE \\*, :c:type:`Py_ssize_t`]" -#~ msgstr "``u#`` (:class:`str`) [``const Py_UNICODE *``, ``int``]" - -#~ msgid "``Z`` (:class:`str` or ``None``) [const Py_UNICODE \\*]" -#~ msgstr "``Z`` (:class:`str` ou ``None``) [``const Py_UNICODE *``]" - -#, fuzzy -#~ msgid "" -#~ "Like ``u``, but the Python object may also be ``None``, in which case " -#~ "the :c:type:`Py_UNICODE` pointer is set to ``NULL``." -#~ msgstr "" -#~ "Comme ``u``, mais l'objet Python peut aussi être ``None``, auquel cas le " -#~ "pointeur :c:type:`Py_UNICODE` vaut *NULL*." - -#, 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``]" - -#, fuzzy -#~ msgid "" -#~ "Like ``u#``, but the Python object may also be ``None``, in which case " -#~ "the :c:type:`Py_UNICODE` pointer is set to ``NULL``." -#~ msgstr "" -#~ "Comme ``u#``, mais l'objet Python peut également être ``None``, auquel " -#~ "cas le pointeur :c:type:`Py_UNICODE` vaut *NULL*." - -#~ 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 mutables 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 " -#~ "the macro :c:macro:`PY_SSIZE_T_CLEAN` before including :file:`Python.h`. " -#~ "If the macro was defined, length is a :c:type:`Py_ssize_t` rather than " -#~ "an :c:type:`int`. This behavior will change in a future Python version to " -#~ "only support :c:type:`Py_ssize_t` and drop :c:type:`int` support. It is " -#~ "best to always define :c:macro:`PY_SSIZE_T_CLEAN`." -#~ msgstr "" -#~ "Pour toutes les variantes du marqueur ``#`` (``s#``, ``y#``, etc), le " -#~ "type de l'argument *length* (*int* ou :c:type:`Py_ssize_t`) est contrôlé " -#~ "en définissant la macro :c:macro:`PY_SSIZE_T_CLEAN` avant d'inclure le " -#~ "fichier :file:`Python.h`. Si la macro est définie, la longueur est de " -#~ "type :c:type:`Py_ssize_t` au lieu d'être de type :c:type:`int`. Ce " -#~ "comportement changera dans une future version de Python, qui supportera " -#~ "seulement :c:type:`Py_ssize_t` a la place de :c:type:`int`. Il est " -#~ "préférable de toujours définir :c:macro:`PY_SSIZE_T_CLEAN`." diff --git a/c-api/bool.po b/c-api/bool.po deleted file mode 100644 index 144736bb22..0000000000 --- a/c-api/bool.po +++ /dev/null @@ -1,103 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2021-10-27 19:19+0200\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.0\n" - -#: c-api/bool.rst:6 -msgid "Boolean Objects" -msgstr "Les objets booléens" - -#: c-api/bool.rst:8 -#, fuzzy -msgid "" -"Booleans in Python are implemented as a subclass of integers. There are " -"only two booleans, :c:data:`Py_False` and :c:data:`Py_True`. As such, the " -"normal creation and deletion functions don't apply to booleans. The " -"following macros are available, however." -msgstr "" -"Les booléens en Python sont implémentés comme une classe dérivée des " -"entiers. Il y a seulement deux booléens, :const:`Py_False` " -"et :const:`Py_True`. Comme tel, les fonctions de création de suppression ne " -"s'appliquent pas aux booléens. Toutefois, les macros suivantes sont " -"disponibles." - -#: c-api/bool.rst:16 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python boolean type; " -"it is the same object as :class:`bool` in the Python layer." -msgstr "" - -#: c-api/bool.rst:22 -msgid "" -"Return true if *o* is of type :c:data:`PyBool_Type`. This function always " -"succeeds." -msgstr "" -"Renvoie vrai si *o* est de type :c:data:`PyBook_Type`. Cette fonction " -"réussit systématiquement." - -#: c-api/bool.rst:28 -#, fuzzy -msgid "" -"The Python ``False`` object. This object has no methods and " -"is :term:`immortal`." -msgstr "" -"L'objet Python ``False``. Cet objet n'a pas de méthodes. En ce qui concerne " -"le comptage de référence, il doit être traité comme n'importe quel autre " -"objet." - -#: c-api/bool.rst:31 -msgid ":c:data:`Py_False` is :term:`immortal`." -msgstr "" - -#: c-api/bool.rst:37 -#, fuzzy -msgid "" -"The Python ``True`` object. This object has no methods and " -"is :term:`immortal`." -msgstr "" -"L'objet Python ``True``. Cet objet n'a pas de méthodes. En ce qui concerne " -"le comptage de références, il doit être traité comme n'importe quel autre " -"objet." - -#: c-api/bool.rst:40 -msgid ":c:data:`Py_True` is :term:`immortal`." -msgstr "" - -#: c-api/bool.rst:46 -#, fuzzy -msgid "Return :c:data:`Py_False` from a function." -msgstr "" -"Renvoie :const:`Py_False` depuis une fonction tout en incrémentant son " -"nombre de références." - -#: c-api/bool.rst:51 -msgid "Return :c:data:`Py_True` from a function." -msgstr "" - -#: c-api/bool.rst:56 -#, fuzzy -msgid "" -"Return :c:data:`Py_True` or :c:data:`Py_False`, depending on the truth value " -"of *v*." -msgstr "" -"Renvoie une nouvelle référence de :const:`Py_True` ou :const:`Py_False` en " -"fonction de la valeur de *v*." - -#~ msgid "" -#~ "Return :const:`Py_True` from a function, properly incrementing its " -#~ "reference count." -#~ msgstr "" -#~ "Renvoie :const:`Py_True` depuis une fonction, en incrémentant son nombre " -#~ "de références." diff --git a/c-api/buffer.po b/c-api/buffer.po deleted file mode 100644 index 4c3554242b..0000000000 --- a/c-api/buffer.po +++ /dev/null @@ -1,772 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-10-27 21:13+0200\n" -"Last-Translator: David GIRAUD \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 3.0\n" - -#: c-api/buffer.rst:11 -msgid "Buffer Protocol" -msgstr "Protocole tampon" - -#: c-api/buffer.rst:13 -msgid "" -"Certain objects available in Python wrap access to an underlying memory " -"array or *buffer*. Such objects include the built-in :class:`bytes` " -"and :class:`bytearray`, and some extension types like :class:`array.array`. " -"Third-party libraries may define their own types for special purposes, such " -"as image processing or numeric analysis." -msgstr "" -"Certains objets Python enveloppent l'accès à un tableau de mémoire sous-" -"jacente (nommée zone tampon ou simplement tampon, *buffer* en anglais). Les " -"objets natifs :class:`bytes` et :class:`bytearray` en sont des exemples, " -"ainsi que quelques types d'extension comme :class:`array.array`. Les " -"bibliothèques tierces peuvent définir leurs propres types à des fins " -"spéciales, telles que le traitement d'image ou l'analyse numérique." - -#: c-api/buffer.rst:19 -msgid "" -"While each of these types have their own semantics, they share the common " -"characteristic of being backed by a possibly large memory buffer. It is " -"then desirable, in some situations, to access that buffer directly and " -"without intermediate copying." -msgstr "" -"Alors que chacun de ces types a sa propre sémantique, ils partagent la " -"caractéristique commune d'être soutenus par un tampon de mémoire important. " -"Il est donc souhaitable, dans certains cas, d'accéder à cette mémoire " -"directement sans l'étape intermédiaire de copie." - -#: c-api/buffer.rst:24 -#, fuzzy -msgid "" -"Python provides such a facility at the C and Python level in the form of " -"the :ref:`buffer protocol `. This protocol has two sides:" -msgstr "" -"Python fournit une telle facilité au niveau du C sous la forme " -"de :ref:`protocole tampon `. Ce protocole comporte deux " -"aspects :" - -#: c-api/buffer.rst:29 -#, fuzzy -msgid "" -"on the producer side, a type can export a \"buffer interface\" which allows " -"objects of that type to expose information about their underlying buffer. " -"This interface is described in the section :ref:`buffer-structs`; for Python " -"see :ref:`python-buffer-protocol`." -msgstr "" -"du côté producteur, un type peut exporter une \"interface tampon\" qui " -"permet aux objets de ce type d'exposer des informations concernant leur " -"tampon sous-jacent. Cette interface est décrite dans la section :ref:`buffer-" -"structs` ;" - -#: c-api/buffer.rst:34 -#, fuzzy -msgid "" -"on the consumer side, several means are available to obtain a pointer to the " -"raw underlying data of an object (for example a method parameter). For " -"Python see :class:`memoryview`." -msgstr "" -"du côté consommateur, plusieurs moyens sont disponibles pour obtenir un " -"pointeur vers les données sous-jacentes brutes d'un objet (par exemple un " -"paramètre de méthode)." - -#: c-api/buffer.rst:38 -msgid "" -"Simple objects such as :class:`bytes` and :class:`bytearray` expose their " -"underlying buffer in byte-oriented form. Other forms are possible; for " -"example, the elements exposed by an :class:`array.array` can be multi-byte " -"values." -msgstr "" -"Des objets simples tels que :class:`bytes` et :class:`bytearray` exposent " -"leur tampon sous-jacent dans un format orienté octet. D'autres formes sont " -"possibles ; par exemple, les éléments exposés par un :class:`array.array` " -"peuvent être des valeurs multi-octets." - -#: c-api/buffer.rst:42 -#, fuzzy -msgid "" -"An example consumer of the buffer interface is " -"the :meth:`~io.BufferedIOBase.write` method of file objects: any object that " -"can export a series of bytes through the buffer interface can be written to " -"a file. While :meth:`!write` only needs read-only access to the internal " -"contents of the object passed to it, other methods such " -"as :meth:`~io.BufferedIOBase.readinto` need write access to the contents of " -"their argument. The buffer interface allows objects to selectively allow or " -"reject exporting of read-write and read-only buffers." -msgstr "" -"Un exemple de consommateur de l'interface tampon est la " -"méthode :meth:`~io.BufferedIOBase.write` des objets fichiers : tout objet " -"qui peut exporter une série d'octets à travers l'interface tampon peut être " -"écrit dans un fichier. Alors que :meth:`write` n'a besoin que d'un accès " -"lecture au contenu interne de l'objet qui lui est passé, d'autres méthodes " -"telles que :meth:`~io.BufferedIOBase.readinto` nécessitent un accès écriture " -"au contenu de leur argument. L'interface *buffer* permet aux objets " -"d'autoriser ou de rejeter sélectivement l'exportation de tampons en mode " -"lecture-écriture et en mode lecture seule." - -#: c-api/buffer.rst:50 -msgid "" -"There are two ways for a consumer of the buffer interface to acquire a " -"buffer over a target object:" -msgstr "" -"Un consommateur de l'interface tampon peut acquérir un tampon sur un objet " -"cible de deux manières :" - -#: c-api/buffer.rst:53 -msgid "call :c:func:`PyObject_GetBuffer` with the right parameters;" -msgstr "appelez :c:func:`PyObject_GetBuffer` avec les paramètres appropriés ;" - -#: c-api/buffer.rst:55 -msgid "" -"call :c:func:`PyArg_ParseTuple` (or one of its siblings) with one of the " -"``y*``, ``w*`` or ``s*`` :ref:`format codes `." -msgstr "" -"appelez :c:func:`PyArg_ParseTuple` (ou l'un de ses fonctions sœurs) avec " -"l'un des ``y*``, ``w*`` ou ``s*`` :ref:`format codes `." - -#: c-api/buffer.rst:58 -msgid "" -"In both cases, :c:func:`PyBuffer_Release` must be called when the buffer " -"isn't needed anymore. Failure to do so could lead to various issues such as " -"resource leaks." -msgstr "" -"Dans les deux cas, :c:func:`PyBuffer_Release` doit être appelée quand le " -"tampon n'est plus nécessaire. Ne pas le faire peut conduire à divers " -"problèmes tels que des fuites de ressources." - -#: c-api/buffer.rst:64 -msgid "" -"The buffer protocol is now accessible in Python, see :ref:`python-buffer-" -"protocol` and :class:`memoryview`." -msgstr "" - -#: c-api/buffer.rst:70 -msgid "Buffer structure" -msgstr "La structure *buffer*" - -#: c-api/buffer.rst:72 -msgid "" -"Buffer structures (or simply \"buffers\") are useful as a way to expose the " -"binary data from another object to the Python programmer. They can also be " -"used as a zero-copy slicing mechanism. Using their ability to reference a " -"block of memory, it is possible to expose any data to the Python programmer " -"quite easily. The memory could be a large, constant array in a C extension, " -"it could be a raw block of memory for manipulation before passing to an " -"operating system library, or it could be used to pass around structured data " -"in its native, in-memory format." -msgstr "" -"Les structures tampons (ou simplement les \"tampons\", *buffers* en anglais) " -"sont utiles pour exposer les données binaires d'un autre objet au " -"programmeur Python. Elles peuvent également être utilisées comme un " -"mécanisme de découpage sans copie. En utilisant leur capacité à référencer " -"un bloc de mémoire, il est possible d'exposer toutes les données au " -"programmeur Python assez facilement. La mémoire peut être un grand tableau " -"constant dans une extension C, il peut s'agir d'un bloc brut de mémoire à " -"manipuler avant de passer à une bibliothèque de système d'exploitation ou " -"être utilisé pour transmettre des données structurées dans son format natif " -"en mémoire." - -#: c-api/buffer.rst:81 -msgid "" -"Contrary to most data types exposed by the Python interpreter, buffers are " -"not :c:type:`PyObject` pointers but rather simple C structures. This allows " -"them to be created and copied very simply. When a generic wrapper around a " -"buffer is needed, a :ref:`memoryview ` object can be " -"created." -msgstr "" -"Contrairement à la plupart des types de données exposés par l'interpréteur " -"Python, les tampons ne sont pas de simples pointeurs vers :c:type:`PyObject` " -"mais plutôt des structures C simples. Cela leur permet d'être créés et " -"copiés très simplement. lorsque vous avez besoin d'une enveloppe générique " -"(*wrapper* en anglais) pour un tampon, un objet :ref:`memoryview ` peut être créé." - -#: c-api/buffer.rst:87 -msgid "" -"For short instructions how to write an exporting object, see :ref:`Buffer " -"Object Structures `. For obtaining a buffer, " -"see :c:func:`PyObject_GetBuffer`." -msgstr "" - -#: c-api/buffer.rst:95 -msgid "" -"A pointer to the start of the logical structure described by the buffer " -"fields. This can be any location within the underlying physical memory block " -"of the exporter. For example, with negative :c:member:`~Py_buffer.strides` " -"the value may point to the end of the memory block." -msgstr "" - -#: c-api/buffer.rst:100 -msgid "" -"For :term:`contiguous` arrays, the value points to the beginning of the " -"memory block." -msgstr "" - -#: c-api/buffer.rst:105 -msgid "" -"A new reference to the exporting object. The reference is owned by the " -"consumer and automatically released (i.e. reference count decremented) and " -"set to ``NULL`` by :c:func:`PyBuffer_Release`. The field is the equivalent " -"of the return value of any standard C-API function." -msgstr "" - -#: c-api/buffer.rst:112 -msgid "" -"As a special case, for *temporary* buffers that are wrapped " -"by :c:func:`PyMemoryView_FromBuffer` or :c:func:`PyBuffer_FillInfo` this " -"field is ``NULL``. In general, exporting objects MUST NOT use this scheme." -msgstr "" - -#: c-api/buffer.rst:119 -msgid "" -"``product(shape) * itemsize``. For contiguous arrays, this is the length of " -"the underlying memory block. For non-contiguous arrays, it is the length " -"that the logical structure would have if it were copied to a contiguous " -"representation." -msgstr "" - -#: c-api/buffer.rst:124 -msgid "" -"Accessing ``((char *)buf)[0] up to ((char *)buf)[len-1]`` is only valid if " -"the buffer has been obtained by a request that guarantees contiguity. In " -"most cases such a request will be :c:macro:`PyBUF_SIMPLE` " -"or :c:macro:`PyBUF_WRITABLE`." -msgstr "" - -#: c-api/buffer.rst:130 -msgid "" -"An indicator of whether the buffer is read-only. This field is controlled by " -"the :c:macro:`PyBUF_WRITABLE` flag." -msgstr "" - -#: c-api/buffer.rst:135 -msgid "" -"Item size in bytes of a single element. Same as the value " -"of :func:`struct.calcsize` called on non-" -"``NULL`` :c:member:`~Py_buffer.format` values." -msgstr "" - -#: c-api/buffer.rst:138 -msgid "" -"Important exception: If a consumer requests a buffer without " -"the :c:macro:`PyBUF_FORMAT` flag, :c:member:`~Py_buffer.format` will be set " -"to ``NULL``, but :c:member:`~Py_buffer.itemsize` still has the value for " -"the original format." -msgstr "" - -#: c-api/buffer.rst:143 -msgid "" -"If :c:member:`~Py_buffer.shape` is present, the equality ``product(shape) * " -"itemsize == len`` still holds and the consumer can " -"use :c:member:`~Py_buffer.itemsize` to navigate the buffer." -msgstr "" - -#: c-api/buffer.rst:147 -msgid "" -"If :c:member:`~Py_buffer.shape` is ``NULL`` as a result of " -"a :c:macro:`PyBUF_SIMPLE` or a :c:macro:`PyBUF_WRITABLE` request, the " -"consumer must disregard :c:member:`~Py_buffer.itemsize` and assume " -"``itemsize == 1``." -msgstr "" - -#: c-api/buffer.rst:153 -msgid "" -"A *NULL* terminated string in :mod:`struct` module style syntax describing " -"the contents of a single item. If this is ``NULL``, ``\"B\"`` (unsigned " -"bytes) is assumed." -msgstr "" - -#: c-api/buffer.rst:157 -msgid "This field is controlled by the :c:macro:`PyBUF_FORMAT` flag." -msgstr "" - -#: c-api/buffer.rst:161 -msgid "" -"The number of dimensions the memory represents as an n-dimensional array. If " -"it is ``0``, :c:member:`~Py_buffer.buf` points to a single item representing " -"a scalar. In this " -"case, :c:member:`~Py_buffer.shape`, :c:member:`~Py_buffer.strides` " -"and :c:member:`~Py_buffer.suboffsets` MUST be ``NULL``. The maximum number " -"of dimensions is given by :c:macro:`PyBUF_MAX_NDIM`." -msgstr "" - -#: c-api/buffer.rst:169 -msgid "" -"An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " -"indicating the shape of the memory as an n-dimensional array. Note that " -"``shape[0] * ... * shape[ndim-1] * itemsize`` MUST be equal " -"to :c:member:`~Py_buffer.len`." -msgstr "" - -#: c-api/buffer.rst:174 -msgid "" -"Shape values are restricted to ``shape[n] >= 0``. The case ``shape[n] == 0`` " -"requires special attention. See `complex arrays`_ for further information." -msgstr "" - -#: c-api/buffer.rst:178 -msgid "The shape array is read-only for the consumer." -msgstr "" - -#: c-api/buffer.rst:182 -msgid "" -"An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim` " -"giving the number of bytes to skip to get to a new element in each dimension." -msgstr "" - -#: c-api/buffer.rst:186 -msgid "" -"Stride values can be any integer. For regular arrays, strides are usually " -"positive, but a consumer MUST be able to handle the case ``strides[n] <= " -"0``. See `complex arrays`_ for further information." -msgstr "" - -#: c-api/buffer.rst:190 -msgid "The strides array is read-only for the consumer." -msgstr "" - -#: c-api/buffer.rst:194 -msgid "" -"An array of :c:type:`Py_ssize_t` of length :c:member:`~Py_buffer.ndim`. If " -"``suboffsets[n] >= 0``, the values stored along the nth dimension are " -"pointers and the suboffset value dictates how many bytes to add to each " -"pointer after de-referencing. A suboffset value that is negative indicates " -"that no de-referencing should occur (striding in a contiguous memory block)." -msgstr "" - -#: c-api/buffer.rst:201 -msgid "" -"If all suboffsets are negative (i.e. no de-referencing is needed), then this " -"field must be ``NULL`` (the default value)." -msgstr "" - -#: c-api/buffer.rst:204 -msgid "" -"This type of array representation is used by the Python Imaging Library " -"(PIL). See `complex arrays`_ for further information how to access elements " -"of such an array." -msgstr "" - -#: c-api/buffer.rst:208 -msgid "The suboffsets array is read-only for the consumer." -msgstr "" - -#: c-api/buffer.rst:212 -msgid "" -"This is for use internally by the exporting object. For example, this might " -"be re-cast as an integer by the exporter and used to store flags about " -"whether or not the shape, strides, and suboffsets arrays must be freed when " -"the buffer is released. The consumer MUST NOT alter this value." -msgstr "" - -#: c-api/buffer.rst:219 -msgid "Constants:" -msgstr "" - -#: c-api/buffer.rst:223 -msgid "" -"The maximum number of dimensions the memory represents. Exporters MUST " -"respect this limit, consumers of multi-dimensional buffers SHOULD be able to " -"handle up to :c:macro:`!PyBUF_MAX_NDIM` dimensions. Currently set to 64." -msgstr "" - -#: c-api/buffer.rst:232 -msgid "Buffer request types" -msgstr "" - -#: c-api/buffer.rst:234 -msgid "" -"Buffers are usually obtained by sending a buffer request to an exporting " -"object via :c:func:`PyObject_GetBuffer`. Since the complexity of the logical " -"structure of the memory can vary drastically, the consumer uses the *flags* " -"argument to specify the exact buffer type it can handle." -msgstr "" - -#: c-api/buffer.rst:239 -msgid "" -"All :c:type:`Py_buffer` fields are unambiguously defined by the request type." -msgstr "" - -#: c-api/buffer.rst:243 -msgid "request-independent fields" -msgstr "" - -#: c-api/buffer.rst:244 -msgid "" -"The following fields are not influenced by *flags* and must always be filled " -"in with the correct " -"values: :c:member:`~Py_buffer.obj`, :c:member:`~Py_buffer.buf`, :c:member:`~Py_buffer.len`, :c:member:`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`." -msgstr "" - -#: c-api/buffer.rst:249 -msgid "readonly, format" -msgstr "" - -#: c-api/buffer.rst:253 -msgid "" -"Controls the :c:member:`~Py_buffer.readonly` field. If set, the exporter " -"MUST provide a writable buffer or else report failure. Otherwise, the " -"exporter MAY provide either a read-only or writable buffer, but the choice " -"MUST be consistent for all consumers. For example, :c:expr:`PyBUF_SIMPLE | " -"PyBUF_WRITABLE` can be used to request a simple writable buffer." -msgstr "" - -#: c-api/buffer.rst:261 -msgid "This is an alias to :c:macro:`PyBUF_WRITABLE`." -msgstr "" - -#: c-api/buffer.rst:267 -msgid "" -"Controls the :c:member:`~Py_buffer.format` field. If set, this field MUST be " -"filled in correctly. Otherwise, this field MUST be ``NULL``." -msgstr "" - -#: c-api/buffer.rst:271 -msgid "" -":c:macro:`PyBUF_WRITABLE` can be \\|'d to any of the flags in the next " -"section. Since :c:macro:`PyBUF_SIMPLE` is defined as " -"0, :c:macro:`PyBUF_WRITABLE` can be used as a stand-alone flag to request a " -"simple writable buffer." -msgstr "" - -#: c-api/buffer.rst:275 -msgid "" -":c:macro:`PyBUF_FORMAT` must be \\|'d to any of the flags " -"except :c:macro:`PyBUF_SIMPLE`, because the latter already implies format " -"``B`` (unsigned bytes). :c:macro:`!PyBUF_FORMAT` cannot be used on its own." -msgstr "" - -#: c-api/buffer.rst:281 -msgid "shape, strides, suboffsets" -msgstr "" - -#: c-api/buffer.rst:283 -msgid "" -"The flags that control the logical structure of the memory are listed in " -"decreasing order of complexity. Note that each flag contains all bits of the " -"flags below it." -msgstr "" - -#: c-api/buffer.rst:314 c-api/buffer.rst:339 -msgid "Request" -msgstr "" - -#: c-api/buffer.rst:314 c-api/buffer.rst:339 -msgid "shape" -msgstr "" - -#: c-api/buffer.rst:314 c-api/buffer.rst:339 -msgid "strides" -msgstr "" - -#: c-api/buffer.rst:314 c-api/buffer.rst:339 -msgid "suboffsets" -msgstr "" - -#: c-api/buffer.rst:294 c-api/buffer.rst:316 c-api/buffer.rst:320 -#: c-api/buffer.rst:341 c-api/buffer.rst:345 c-api/buffer.rst:349 -#: c-api/buffer.rst:353 c-api/buffer.rst:355 -msgid "yes" -msgstr "oui" - -#: c-api/buffer.rst:341 c-api/buffer.rst:343 -msgid "if needed" -msgstr "si nécessaire" - -#: c-api/buffer.rst:296 c-api/buffer.rst:316 c-api/buffer.rst:320 -#: c-api/buffer.rst:345 c-api/buffer.rst:349 c-api/buffer.rst:353 -#: c-api/buffer.rst:355 -msgid "NULL" -msgstr "" - -#: c-api/buffer.rst:305 -msgid "contiguity requests" -msgstr "" - -#: c-api/buffer.rst:307 -msgid "" -"C or Fortran :term:`contiguity ` can be explicitly requested, " -"with and without stride information. Without stride information, the buffer " -"must be C-contiguous." -msgstr "" - -#: c-api/buffer.rst:339 -msgid "contig" -msgstr "" - -#: c-api/buffer.rst:322 c-api/buffer.rst:355 -msgid "C" -msgstr "C" - -#: c-api/buffer.rst:318 -msgid "F" -msgstr "F" - -#: c-api/buffer.rst:320 -msgid "C or F" -msgstr "" - -#: c-api/buffer.rst:322 -msgid ":c:macro:`PyBUF_ND`" -msgstr "" - -#: c-api/buffer.rst:327 -msgid "compound requests" -msgstr "" - -#: c-api/buffer.rst:329 -msgid "" -"All possible requests are fully defined by some combination of the flags in " -"the previous section. For convenience, the buffer protocol provides " -"frequently used combinations as single flags." -msgstr "" - -#: c-api/buffer.rst:333 -msgid "" -"In the following table *U* stands for undefined contiguity. The consumer " -"would have to call :c:func:`PyBuffer_IsContiguous` to determine contiguity." -msgstr "" - -#: c-api/buffer.rst:339 -msgid "readonly" -msgstr "lecture seule" - -#: c-api/buffer.rst:339 -msgid "format" -msgstr "format" - -#: c-api/buffer.rst:343 c-api/buffer.rst:347 c-api/buffer.rst:351 -msgid "U" -msgstr "" - -#: c-api/buffer.rst:345 c-api/buffer.rst:353 -msgid "0" -msgstr "0" - -#: c-api/buffer.rst:347 c-api/buffer.rst:355 -msgid "1 or 0" -msgstr "0 ou 1" - -#: c-api/buffer.rst:360 -msgid "Complex arrays" -msgstr "" - -#: c-api/buffer.rst:363 -msgid "NumPy-style: shape and strides" -msgstr "" - -#: c-api/buffer.rst:365 -msgid "" -"The logical structure of NumPy-style arrays is defined " -"by :c:member:`~Py_buffer.itemsize`, :c:member:`~Py_buffer.ndim`, :c:member:`~Py_buffer.shape` " -"and :c:member:`~Py_buffer.strides`." -msgstr "" - -#: c-api/buffer.rst:368 -msgid "" -"If ``ndim == 0``, the memory location pointed to " -"by :c:member:`~Py_buffer.buf` is interpreted as a scalar of " -"size :c:member:`~Py_buffer.itemsize`. In that case, " -"both :c:member:`~Py_buffer.shape` and :c:member:`~Py_buffer.strides` are " -"``NULL``." -msgstr "" - -#: c-api/buffer.rst:372 -msgid "" -"If :c:member:`~Py_buffer.strides` is ``NULL``, the array is interpreted as a " -"standard n-dimensional C-array. Otherwise, the consumer must access an n-" -"dimensional array as follows:" -msgstr "" - -#: c-api/buffer.rst:382 -msgid "" -"As noted above, :c:member:`~Py_buffer.buf` can point to any location within " -"the actual memory block. An exporter can check the validity of a buffer with " -"this function:" -msgstr "" - -#: c-api/buffer.rst:416 -msgid "PIL-style: shape, strides and suboffsets" -msgstr "" - -#: c-api/buffer.rst:418 -msgid "" -"In addition to the regular items, PIL-style arrays can contain pointers that " -"must be followed in order to get to the next element in a dimension. For " -"example, the regular three-dimensional C-array ``char v[2][2][3]`` can also " -"be viewed as an array of 2 pointers to 2 two-dimensional arrays: ``char " -"(*v[2])[2][3]``. In suboffsets representation, those two pointers can be " -"embedded at the start of :c:member:`~Py_buffer.buf`, pointing to two ``char " -"x[2][3]`` arrays that can be located anywhere in memory." -msgstr "" - -#: c-api/buffer.rst:427 -msgid "" -"Here is a function that returns a pointer to the element in an N-D array " -"pointed to by an N-dimensional index when there are both non-``NULL`` " -"strides and suboffsets::" -msgstr "" - -#: c-api/buffer.rst:446 -msgid "Buffer-related functions" -msgstr "Fonctions relatives aux tampons" - -#: c-api/buffer.rst:450 -msgid "" -"Return ``1`` if *obj* supports the buffer interface otherwise ``0``. When " -"``1`` is returned, it doesn't guarantee that :c:func:`PyObject_GetBuffer` " -"will succeed. This function always succeeds." -msgstr "" - -#: c-api/buffer.rst:457 -msgid "" -"Send a request to *exporter* to fill in *view* as specified by *flags*. If " -"the exporter cannot provide a buffer of the exact type, it MUST " -"raise :exc:`BufferError`, set ``view->obj`` to ``NULL`` and return ``-1``." -msgstr "" - -#: c-api/buffer.rst:462 -msgid "" -"On success, fill in *view*, set ``view->obj`` to a new reference to " -"*exporter* and return 0. In the case of chained buffer providers that " -"redirect requests to a single object, ``view->obj`` MAY refer to this object " -"instead of *exporter* (See :ref:`Buffer Object Structures `)." -msgstr "" - -#: c-api/buffer.rst:467 -msgid "" -"Successful calls to :c:func:`PyObject_GetBuffer` must be paired with calls " -"to :c:func:`PyBuffer_Release`, similar to :c:func:`malloc` " -"and :c:func:`free`. Thus, after the consumer is done with the " -"buffer, :c:func:`PyBuffer_Release` must be called exactly once." -msgstr "" - -#: c-api/buffer.rst:475 -msgid "" -"Release the buffer *view* and release the :term:`strong reference` (i.e. " -"decrement the reference count) to the view's supporting object, ``view-" -">obj``. This function MUST be called when the buffer is no longer being " -"used, otherwise reference leaks may occur." -msgstr "" - -#: c-api/buffer.rst:480 -msgid "" -"It is an error to call this function on a buffer that was not obtained " -"via :c:func:`PyObject_GetBuffer`." -msgstr "" - -#: c-api/buffer.rst:486 -#, fuzzy -msgid "" -"Return the implied :c:member:`~Py_buffer.itemsize` " -"from :c:member:`~Py_buffer.format`. On error, raise an exception and return " -"-1." -msgstr "" -"Retourne l'\\ :c:data:`~Py_buffer.itemsize` du :c:data:`~Py_buffer.format`. " -"En cas d'erreur, lève une exception et retourne -1." - -#: c-api/buffer.rst:494 -msgid "" -"Return ``1`` if the memory defined by the *view* is C-style (*order* is " -"``'C'``) or Fortran-style (*order* is ``'F'``) :term:`contiguous` or either " -"one (*order* is ``'A'``). Return ``0`` otherwise. This function always " -"succeeds." -msgstr "" - -#: c-api/buffer.rst:501 -msgid "" -"Get the memory area pointed to by the *indices* inside the given *view*. " -"*indices* must point to an array of ``view->ndim`` indices." -msgstr "" - -#: c-api/buffer.rst:507 -msgid "" -"Copy contiguous *len* bytes from *buf* to *view*. *order* can be ``'C'`` or " -"``'F'`` or ``'A'`` (for C-style or Fortran-style ordering or either one). " -"``0`` is returned on success, ``-1`` on error." -msgstr "" - -#: c-api/buffer.rst:515 -msgid "" -"Copy *len* bytes from *src* to its contiguous representation in *buf*. " -"*order* can be ``'C'`` or ``'F'`` or ``'A'`` (for C-style or Fortran-style " -"ordering or either one). ``0`` is returned on success, ``-1`` on error." -msgstr "" - -#: c-api/buffer.rst:519 -msgid "This function fails if *len* != *src->len*." -msgstr "" - -#: c-api/buffer.rst:524 -msgid "" -"Copy data from *src* to *dest* buffer. Can convert between C-style and or " -"Fortran-style buffers." -msgstr "" - -#: c-api/buffer.rst:527 -msgid "``0`` is returned on success, ``-1`` on error." -msgstr "" - -#: c-api/buffer.rst:531 -msgid "" -"Fill the *strides* array with byte-strides of a :term:`contiguous` (C-style " -"if *order* is ``'C'`` or Fortran-style if *order* is ``'F'``) array of the " -"given shape with the given number of bytes per element." -msgstr "" - -#: c-api/buffer.rst:538 -msgid "" -"Handle buffer requests for an exporter that wants to expose *buf* of size " -"*len* with writability set according to *readonly*. *buf* is interpreted as " -"a sequence of unsigned bytes." -msgstr "" - -#: c-api/buffer.rst:542 -msgid "" -"The *flags* argument indicates the request type. This function always fills " -"in *view* as specified by flags, unless *buf* has been designated as read-" -"only and :c:macro:`PyBUF_WRITABLE` is set in *flags*." -msgstr "" - -#: c-api/buffer.rst:546 -msgid "" -"On success, set ``view->obj`` to a new reference to *exporter* and return 0. " -"Otherwise, raise :exc:`BufferError`, set ``view->obj`` to ``NULL`` and " -"return ``-1``;" -msgstr "" - -#: c-api/buffer.rst:550 -msgid "" -"If this function is used as part of a :ref:`getbufferproc `, " -"*exporter* MUST be set to the exporting object and *flags* must be passed " -"unmodified. Otherwise, *exporter* MUST be ``NULL``." -msgstr "" - -#, fuzzy -#~ msgid "buffer protocol" -#~ msgstr "Protocole tampon" - -#, fuzzy -#~ msgid "buffer interface" -#~ msgstr "La structure *buffer*" - -#, fuzzy -#~ msgid "(see buffer protocol)" -#~ msgstr "Protocole tampon" - -#, fuzzy -#~ msgid "PyBufferProcs (C type)" -#~ msgstr "Protocole tampon" - -#~ msgid "contiguous" -#~ msgstr "contigu" diff --git a/c-api/bytearray.po b/c-api/bytearray.po deleted file mode 100644 index 8e2c83d3af..0000000000 --- a/c-api/bytearray.po +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-05-05 14:32+0200\n" -"Last-Translator: Mindiell \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" - -#: c-api/bytearray.rst:6 -msgid "Byte Array Objects" -msgstr "Objets tableau d'octets" - -#: c-api/bytearray.rst:13 -msgid "" -"This subtype of :c:type:`PyObject` represents a Python bytearray object." -msgstr "" -"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." - -#: c-api/bytearray.rst:18 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python bytearray " -"type; it is the same object as :class:`bytearray` in the Python layer." -msgstr "" -"Cette instance de :c:type:`PyTypeObject` représente le type Python " -"*bytearray*, c'est le même que :class:`bytearray` côté Python." - -#: c-api/bytearray.rst:23 -msgid "Type check macros" -msgstr "Macros de vérification de type" - -#: c-api/bytearray.rst:27 -msgid "" -"Return true if the object *o* is a bytearray object or an instance of a " -"subtype of the bytearray type. This function always succeeds." -msgstr "" -"Renvoie vrai si l'objet *o* est un ``bytearray`` ou une instance d'un sous-" -"type du type ``bytearray``. Cette méthode réussit toujours." - -#: c-api/bytearray.rst:33 -msgid "" -"Return true if the object *o* is a bytearray object, but not an instance of " -"a subtype of the bytearray type. This function always succeeds." -msgstr "" -"Renvoie vrai si l'objet *o* est un ``bytearray``, mais pas une instance d'un " -"sous-type du type ``bytearray``. Cette méthode réussit toujours." - -#: c-api/bytearray.rst:38 -msgid "Direct API functions" -msgstr "Fonctions directes sur l'API" - -#: c-api/bytearray.rst:42 -msgid "" -"Return a new bytearray object from any object, *o*, that implements " -"the :ref:`buffer protocol `." -msgstr "" -"Renvoie un nouvel objet *bytearray* depuis n'importe quel objet, *o*, qui " -"implémente le :ref:`protocole buffer `." - -#: c-api/bytearray.rst:56 c-api/bytearray.rst:63 -msgid "On failure, return ``NULL`` with an exception set." -msgstr "" - -#: c-api/bytearray.rst:66 -msgid "" -"If the object implements the buffer protocol, then the buffer must not be " -"mutated while the bytearray object is being created." -msgstr "" - -#: c-api/bytearray.rst:54 -#, fuzzy -msgid "Create a new bytearray object from *string* and its length, *len*." -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:61 -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:72 -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:77 -msgid "" -"Return the contents of *bytearray* as a char array after checking for a " -"``NULL`` pointer. The returned array always has an extra null byte appended." -msgstr "" -"Renvoie le contenu de *bytearray* sous forme d'un tableau de caractères, en " -"vérifiant que ce n'est pas un pointeur ``NULL``. Le tableau renvoyé a " -"toujours un caractère *null* rajouté." - -#: c-api/bytearray.rst:104 -msgid "" -"It is not thread-safe to mutate the bytearray object while using the " -"returned char array." -msgstr "" - -#: c-api/bytearray.rst:87 -#, fuzzy -msgid "" -"Resize the internal buffer of *bytearray* to *len*. Failure is a ``-1`` " -"return with an exception set." -msgstr "Redimensionne le tampon interne de *bytearray* à la taille *len*." - -#: c-api/bytearray.rst:90 -msgid "" -"A negative *len* will now result in an exception being set and -1 returned." -msgstr "" - -#: c-api/bytearray.rst:95 -msgid "Macros" -msgstr "Macros" - -#: c-api/bytearray.rst:97 -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:101 -#, fuzzy -msgid "Similar to :c:func:`PyByteArray_AsString`, but without error checking." -msgstr "Version macro de :c:func:`PyByteArray_AsString`." - -#: c-api/bytearray.rst:109 -msgid "Similar to :c:func:`PyByteArray_Size`, but without error checking." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ 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 deleted file mode 100644 index 07e385e9f3..0000000000 --- a/c-api/bytes.po +++ /dev/null @@ -1,673 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-07-03 11:50+0200\n" -"Last-Translator: FULL NAME \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" - -#: c-api/bytes.rst:6 -msgid "Bytes Objects" -msgstr "Objets *bytes*" - -#: c-api/bytes.rst:8 -msgid "" -"These functions raise :exc:`TypeError` when expecting a bytes parameter and " -"called with a non-bytes parameter." -msgstr "" - -#: c-api/bytes.rst:16 -#, fuzzy -msgid "This subtype of :c:type:`PyObject` represents a Python bytes object." -msgstr "" -"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." - -#: c-api/bytes.rst:21 -#, fuzzy -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python bytes type; it " -"is the same object as :class:`bytes` in the Python layer." -msgstr "" -"Cette instance de :c:type:`PyTypeObject` représente le type Python " -"*bytearray*, c'est le même que :class:`bytearray` côté Python." - -#: c-api/bytes.rst:27 -#, fuzzy -msgid "" -"Return true if the object *o* is a bytes object or an instance of a subtype " -"of the bytes type. This function always succeeds." -msgstr "" -"Renvoie vrai si l'objet *o* est un ``bytearray`` ou une instance d'un sous-" -"type du type ``bytearray``." - -#: c-api/bytes.rst:33 -#, fuzzy -msgid "" -"Return true if the object *o* is a bytes object, but not an instance of a " -"subtype of the bytes type. This function always succeeds." -msgstr "" -"Renvoie vrai si l'objet *o* est un ``bytearray``, mais pas une instance d'un " -"sous-type du type ``bytearray``." - -#: c-api/bytes.rst:39 -msgid "" -"Return a new bytes object with a copy of the string *v* as value on success, " -"and ``NULL`` on failure. The parameter *v* must not be ``NULL``; it will " -"not be checked." -msgstr "" - -#: c-api/bytes.rst:46 -msgid "" -"Return a new bytes object with a copy of the string *v* as value and length " -"*len* on success, and ``NULL`` on failure. If *v* is ``NULL``, the contents " -"of the bytes object are uninitialized." -msgstr "" - -#: c-api/bytes.rst:50 -msgid "" -"Use the :c:type:`PyBytesWriter` API instead of " -"``PyBytes_FromStringAndSize(NULL, len)``." -msgstr "" - -#: c-api/bytes.rst:57 -msgid "" -"Take a C :c:func:`printf`\\ -style *format* string and a variable number of " -"arguments, calculate the size of the resulting Python bytes object and " -"return a bytes object with the values formatted into it. The variable " -"arguments must be C types and must correspond exactly to the format " -"characters in the *format* string. The following format characters are " -"allowed:" -msgstr "" - -#: c-api/bytes.rst:69 -msgid "Format Characters" -msgstr "Caractères de format" - -#: c-api/bytes.rst:69 -msgid "Type" -msgstr "Type" - -#: c-api/bytes.rst:69 -#, fuzzy -msgid "Comment" -msgstr "Commentaires" - -#: c-api/bytes.rst:71 -msgid "``%%``" -msgstr "``%%``" - -#: c-api/bytes.rst:71 -msgid "*n/a*" -msgstr "" - -#: c-api/bytes.rst:71 -msgid "The literal % character." -msgstr "" - -#: c-api/bytes.rst:73 -msgid "``%c``" -msgstr "``%c``" - -#: c-api/bytes.rst:76 c-api/bytes.rst:97 -msgid "int" -msgstr "*int*" - -#: c-api/bytes.rst:73 -msgid "A single byte, represented as a C int." -msgstr "" - -#: c-api/bytes.rst:76 -msgid "``%d``" -msgstr "``%d``" - -#: c-api/bytes.rst:76 -msgid "Equivalent to ``printf(\"%d\")``. [1]_" -msgstr "" - -#: c-api/bytes.rst:79 -msgid "``%u``" -msgstr "``%u``" - -#: c-api/bytes.rst:79 -msgid "unsigned int" -msgstr "``unsigned int``" - -#: c-api/bytes.rst:79 -msgid "Equivalent to ``printf(\"%u\")``. [1]_" -msgstr "" - -#: c-api/bytes.rst:82 -msgid "``%ld``" -msgstr "" - -#: c-api/bytes.rst:82 -msgid "long" -msgstr "" - -#: c-api/bytes.rst:82 -msgid "Equivalent to ``printf(\"%ld\")``. [1]_" -msgstr "" - -#: c-api/bytes.rst:85 -msgid "``%lu``" -msgstr "" - -#: c-api/bytes.rst:85 -msgid "unsigned long" -msgstr "``unsigned long``" - -#: c-api/bytes.rst:85 -msgid "Equivalent to ``printf(\"%lu\")``. [1]_" -msgstr "" - -#: c-api/bytes.rst:88 -msgid "``%zd``" -msgstr "" - -#: c-api/bytes.rst:88 -msgid ":c:type:` Py_ssize_t`" -msgstr "" - -#: c-api/bytes.rst:88 -msgid "Equivalent to ``printf(\"%zd\")``. [1]_" -msgstr "" - -#: c-api/bytes.rst:91 -msgid "``%zu``" -msgstr "" - -#: c-api/bytes.rst:91 -msgid "size_t" -msgstr "" - -#: c-api/bytes.rst:91 -msgid "Equivalent to ``printf(\"%zu\")``. [1]_" -msgstr "" - -#: c-api/bytes.rst:94 -msgid "``%i``" -msgstr "``%i``" - -#: c-api/bytes.rst:94 -msgid "Equivalent to ``printf(\"%i\")``. [1]_" -msgstr "" - -#: c-api/bytes.rst:97 -msgid "``%x``" -msgstr "``%x``" - -#: c-api/bytes.rst:97 -msgid "Equivalent to ``printf(\"%x\")``. [1]_" -msgstr "" - -#: c-api/bytes.rst:100 -msgid "``%s``" -msgstr "``%s``" - -#: c-api/bytes.rst:100 -msgid "const char\\*" -msgstr "" - -#: c-api/bytes.rst:100 -msgid "A null-terminated C character array." -msgstr "" - -#: c-api/bytes.rst:103 -msgid "``%p``" -msgstr "``%p``" - -#: c-api/bytes.rst:103 -msgid "const void\\*" -msgstr "" - -#: c-api/bytes.rst:103 -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." -msgstr "" - -#: c-api/bytes.rst:112 -msgid "" -"An unrecognized format character causes all the rest of the format string to " -"be copied as-is to the result object, and any extra arguments discarded." -msgstr "" - -#: c-api/bytes.rst:115 -msgid "" -"For integer specifiers (d, u, ld, lu, zd, zu, i, x): the 0-conversion flag " -"has effect even when a precision is given." -msgstr "" - -#: c-api/bytes.rst:121 -msgid "" -"Identical to :c:func:`PyBytes_FromFormat` except that it takes exactly two " -"arguments." -msgstr "" - -#: c-api/bytes.rst:127 -msgid "" -"Return the bytes representation of object *o* that implements the buffer " -"protocol." -msgstr "" - -#: c-api/bytes.rst:131 -msgid "" -"If the object implements the buffer protocol, then the buffer must not be " -"mutated while the bytes object is being created." -msgstr "" - -#: c-api/bytes.rst:137 -msgid "Return the length of the bytes in bytes object *o*." -msgstr "" - -#: c-api/bytes.rst:142 -msgid "Similar to :c:func:`PyBytes_Size`, but without error checking." -msgstr "" - -#: c-api/bytes.rst:147 -msgid "" -"Return a pointer to the contents of *o*. The pointer refers to the internal " -"buffer of *o*, which consists of ``len(o) + 1`` bytes. The last byte in the " -"buffer is always null, regardless of whether there are any other null " -"bytes. The data must not be modified in any way, unless the object was just " -"created using ``PyBytes_FromStringAndSize(NULL, size)``. It must not be " -"deallocated. If *o* is not a bytes object at " -"all, :c:func:`PyBytes_AsString` returns ``NULL`` and raises :exc:`TypeError`." -msgstr "" - -#: c-api/bytes.rst:159 -msgid "Similar to :c:func:`PyBytes_AsString`, but without error checking." -msgstr "" - -#: c-api/bytes.rst:164 -msgid "" -"Return the null-terminated contents of the object *obj* through the output " -"variables *buffer* and *length*. Returns ``0`` on success." -msgstr "" - -#: c-api/bytes.rst:168 -msgid "" -"If *length* is ``NULL``, the bytes object may not contain embedded null " -"bytes; if it does, the function returns ``-1`` and a :exc:`ValueError` is " -"raised." -msgstr "" - -#: c-api/bytes.rst:172 -msgid "" -"The buffer refers to an internal buffer of *obj*, which includes an " -"additional null byte at the end (not counted in *length*). The data must " -"not be modified in any way, unless the object was just created using " -"``PyBytes_FromStringAndSize(NULL, size)``. It must not be deallocated. If " -"*obj* is not a bytes object at all, :c:func:`PyBytes_AsStringAndSize` " -"returns ``-1`` and raises :exc:`TypeError`." -msgstr "" - -#: c-api/bytes.rst:179 -msgid "" -"Previously, :exc:`TypeError` was raised when embedded null bytes were " -"encountered in the bytes object." -msgstr "" - -#: c-api/bytes.rst:186 -msgid "" -"Create a new bytes object in *\\*bytes* containing the contents of *newpart* " -"appended to *bytes*; the caller will own the new reference. The reference " -"to the old value of *bytes* will be stolen. If the new object cannot be " -"created, the old reference to *bytes* will still be discarded and the value " -"of *\\*bytes* will be set to ``NULL``; the appropriate exception will be set." -msgstr "" - -#: c-api/bytes.rst:203 -msgid "" -"If *newpart* implements the buffer protocol, then the buffer must not be " -"mutated while the new bytes object is being created." -msgstr "" - -#: c-api/bytes.rst:198 -msgid "" -"Create a new bytes object in *\\*bytes* containing the contents of *newpart* " -"appended to *bytes*. This version releases the :term:`strong reference` to " -"*newpart* (i.e. decrements its reference count)." -msgstr "" - -#: c-api/bytes.rst:209 -msgid "Similar to ``sep.join(iterable)`` in Python." -msgstr "" - -#: c-api/bytes.rst:211 -msgid "" -"*sep* must be Python :class:`bytes` object. (Note " -"that :c:func:`PyUnicode_Join` accepts ``NULL`` separator and treats it as a " -"space, whereas :c:func:`PyBytes_Join` doesn't accept ``NULL`` separator.)" -msgstr "" - -#: c-api/bytes.rst:216 -msgid "" -"*iterable* must be an iterable object yielding objects that implement " -"the :ref:`buffer protocol `." -msgstr "" - -#: c-api/bytes.rst:219 -msgid "" -"On success, return a new :class:`bytes` object. On error, set an exception " -"and return ``NULL``." -msgstr "" - -#: c-api/bytes.rst:225 -msgid "" -"If *iterable* objects implement the buffer protocol, then the buffers must " -"not be mutated while the new bytes object is being created." -msgstr "" - -#: c-api/bytes.rst:230 -msgid "" -"Resize a bytes object. *newsize* will be the new length of the bytes object. " -"You can think of it as creating a new bytes object and destroying the old " -"one, only more efficiently. Pass the 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` is set, and ``-1`` is returned." -msgstr "" - -#: c-api/bytes.rst:241 -msgid "Use the :c:type:`PyBytesWriter` API instead." -msgstr "" - -#: c-api/bytes.rst:247 -msgid "" -"Get the string representation of *bytes*. This function is currently used to " -"implement :meth:`!bytes.__repr__` in Python." -msgstr "" - -#: c-api/bytes.rst:250 -msgid "" -"This function does not do type checking; it is undefined behavior to pass " -"*bytes* as a non-bytes object or ``NULL``." -msgstr "" - -#: c-api/bytes.rst:253 -msgid "" -"If *smartquotes* is true, the representation will use a double-quoted string " -"instead of single-quoted string when single-quotes are present in *bytes*. " -"For example, the byte string ``'Python'`` would be represented as " -"``b\"'Python'\"`` when *smartquotes* is true, or ``b'\\'Python\\''`` when it " -"is false." -msgstr "" - -#: c-api/bytes.rst:259 -msgid "" -"On success, this function returns a :term:`strong reference` to " -"a :class:`str` object containing the representation. On failure, this " -"returns ``NULL`` with an exception set." -msgstr "" - -#: c-api/bytes.rst:266 -msgid "" -"Unescape a backslash-escaped string *s*. *s* must not be ``NULL``. *len* " -"must be the size of *s*." -msgstr "" - -#: c-api/bytes.rst:269 -msgid "" -"*errors* must be one of ``\"strict\"``, ``\"replace\"``, or ``\"ignore\"``. " -"If *errors* is ``NULL``, then ``\"strict\"`` is used by default." -msgstr "" - -#: c-api/bytes.rst:272 -msgid "" -"On success, this function returns a :term:`strong reference` to a " -"Python :class:`bytes` object containing the unescaped string. On failure, " -"this function returns ``NULL`` with an exception set." -msgstr "" - -#: c-api/bytes.rst:276 -msgid "*unicode* and *recode_encoding* are now unused." -msgstr "" - -#: c-api/bytes.rst:283 -msgid "PyBytesWriter" -msgstr "" - -#: c-api/bytes.rst:285 -#, fuzzy -msgid "" -"The :c:type:`PyBytesWriter` API can be used to create a " -"Python :class:`bytes` object." -msgstr "" -"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." - -#: c-api/bytes.rst:292 -msgid "A bytes writer instance." -msgstr "" - -#: c-api/bytes.rst:294 -msgid "" -"The API is **not thread safe**: a writer should only be used by a single " -"thread at the same time." -msgstr "" - -#: c-api/bytes.rst:297 -msgid "" -"The instance must be destroyed by :c:func:`PyBytesWriter_Finish` on success, " -"or :c:func:`PyBytesWriter_Discard` on error." -msgstr "" - -#: c-api/bytes.rst:302 -msgid "Create, Finish, Discard" -msgstr "" - -#: c-api/bytes.rst:306 -msgid "Create a :c:type:`PyBytesWriter` to write *size* bytes." -msgstr "" - -#: c-api/bytes.rst:308 -msgid "" -"If *size* is greater than zero, allocate *size* bytes, and set the writer " -"size to *size*. The caller is responsible to write *size* bytes " -"using :c:func:`PyBytesWriter_GetData`. This function does not overallocate." -msgstr "" - -#: c-api/bytes.rst:438 -msgid "On error, set an exception and return ``NULL``." -msgstr "" - -#: c-api/bytes.rst:414 -msgid "*size* must be positive or zero." -msgstr "" - -#: c-api/bytes.rst:319 -msgid "" -"Finish a :c:type:`PyBytesWriter` created by :c:func:`PyBytesWriter_Create`." -msgstr "" - -#: c-api/bytes.rst:322 -msgid "" -"On success, return a Python :class:`bytes` object. On error, set an " -"exception and return ``NULL``." -msgstr "" - -#: c-api/bytes.rst:325 -msgid "" -"The writer instance is invalid after the call in any case. No API can be " -"called on the writer after :c:func:`PyBytesWriter_Finish`." -msgstr "" - -#: c-api/bytes.rst:330 -msgid "" -"Similar to :c:func:`PyBytesWriter_Finish`, but resize the writer to *size* " -"bytes before creating the :class:`bytes` object." -msgstr "" - -#: c-api/bytes.rst:335 -msgid "" -"Similar to :c:func:`PyBytesWriter_Finish`, but resize the writer using *buf* " -"pointer before creating the :class:`bytes` object." -msgstr "" - -#: c-api/bytes.rst:338 -msgid "" -"Set an exception and return ``NULL`` if *buf* pointer is outside the " -"internal buffer bounds." -msgstr "" - -#: c-api/bytes.rst:442 -msgid "Function pseudo-code::" -msgstr "" - -#: c-api/bytes.rst:348 -msgid "" -"Discard a :c:type:`PyBytesWriter` created by :c:func:`PyBytesWriter_Create`." -msgstr "" - -#: c-api/bytes.rst:350 -msgid "Do nothing if *writer* is ``NULL``." -msgstr "" - -#: c-api/bytes.rst:352 -msgid "" -"The writer instance is invalid after the call. No API can be called on the " -"writer after :c:func:`PyBytesWriter_Discard`." -msgstr "" - -#: c-api/bytes.rst:356 -msgid "High-level API" -msgstr "" - -#: c-api/bytes.rst:360 -msgid "" -"Grow the *writer* internal buffer by *size* bytes, write *size* bytes of " -"*bytes* at the *writer* end, and add *size* to the *writer* size." -msgstr "" - -#: c-api/bytes.rst:364 -msgid "" -"If *size* is equal to ``-1``, call ``strlen(bytes)`` to get the string " -"length." -msgstr "" - -#: c-api/bytes.rst:376 c-api/bytes.rst:424 -msgid "On success, return ``0``. On error, set an exception and return ``-1``." -msgstr "" - -#: c-api/bytes.rst:372 -msgid "" -"Similar to :c:func:`PyBytes_FromFormat`, but write the output directly at " -"the writer end. Grow the writer internal buffer on demand. Then add the " -"written size to the writer size." -msgstr "" - -#: c-api/bytes.rst:381 -msgid "Getters" -msgstr "" - -#: c-api/bytes.rst:385 -msgid "Get the writer size." -msgstr "" - -#: c-api/bytes.rst:396 -msgid "The function cannot fail." -msgstr "" - -#: c-api/bytes.rst:391 -msgid "Get the writer data: start of the internal buffer." -msgstr "" - -#: c-api/bytes.rst:393 -msgid "" -"The pointer is valid until :c:func:`PyBytesWriter_Finish` " -"or :c:func:`PyBytesWriter_Discard` is called on *writer*." -msgstr "" - -#: c-api/bytes.rst:400 -msgid "Low-level API" -msgstr "" - -#: c-api/bytes.rst:404 -msgid "" -"Resize the writer to *size* bytes. It can be used to enlarge or to shrink " -"the writer. This function typically overallocates to achieve amortized " -"performance when resizing multiple times." -msgstr "" - -#: c-api/bytes.rst:422 -msgid "Newly allocated bytes are left uninitialized." -msgstr "" - -#: c-api/bytes.rst:418 -msgid "" -"Resize the writer by adding *grow* bytes to the current writer size. This " -"function typically overallocates to achieve amortized performance when " -"resizing multiple times." -msgstr "" - -#: c-api/bytes.rst:427 -msgid "*size* can be negative to shrink the writer." -msgstr "" - -#: c-api/bytes.rst:431 -msgid "" -"Similar to :c:func:`PyBytesWriter_Grow`, but update also the *buf* pointer." -msgstr "" - -#: c-api/bytes.rst:434 -msgid "" -"The *buf* pointer is moved if the internal buffer is moved in memory. The " -"*buf* relative position within the internal buffer is left unchanged." -msgstr "" - -#: c-api/bytes.rst:440 -msgid "*buf* must not be ``NULL``." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "bytes" -#~ msgstr "*bytes* (séquence d'octets)" - -#~ msgid ":attr:`%%`" -#~ msgstr ":attr:`%%`" - -#~ msgid ":attr:`%c`" -#~ msgstr ":attr:`%c`" - -#~ msgid ":attr:`%d`" -#~ msgstr ":attr:`%d`" - -#~ msgid ":attr:`%u`" -#~ msgstr ":attr:`%u`" - -#~ msgid ":attr:`%ld`" -#~ msgstr ":attr:`%ld`" - -#~ msgid ":attr:`%lu`" -#~ msgstr ":attr:`%lu`" - -#~ msgid ":attr:`%zd`" -#~ msgstr ":attr:`%zd`" - -#~ msgid ":attr:`%zu`" -#~ msgstr ":attr:`%zu`" - -#~ msgid ":attr:`%i`" -#~ msgstr ":attr:`%i`" - -#~ msgid ":attr:`%x`" -#~ msgstr ":attr:`%x`" - -#~ msgid ":attr:`%s`" -#~ msgstr ":attr:`%s`" - -#~ msgid ":attr:`%p`" -#~ msgstr ":attr:`%p`" diff --git a/c-api/call.po b/c-api/call.po deleted file mode 100644 index 772e639450..0000000000 --- a/c-api/call.po +++ /dev/null @@ -1,565 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2020-07-20 15:07+0200\n" -"Last-Translator: FULL NAME \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" - -#: c-api/call.rst:6 -msgid "Call Protocol" -msgstr "" - -#: c-api/call.rst:8 -msgid "" -"CPython supports two different calling protocols: *tp_call* and vectorcall." -msgstr "" - -#: c-api/call.rst:12 -msgid "The *tp_call* Protocol" -msgstr "" - -#: c-api/call.rst:14 -msgid "" -"Instances of classes that set :c:member:`~PyTypeObject.tp_call` are " -"callable. The signature of the slot is::" -msgstr "" - -#: c-api/call.rst:19 -msgid "" -"A call is made using a tuple for the positional arguments and a dict for the " -"keyword arguments, similarly to ``callable(*args, **kwargs)`` in Python " -"code. *args* must be non-NULL (use an empty tuple if there are no arguments) " -"but *kwargs* may be *NULL* if there are no keyword arguments." -msgstr "" - -#: c-api/call.rst:25 -msgid "" -"This convention is not only used by " -"*tp_call*: :c:member:`~PyTypeObject.tp_new` " -"and :c:member:`~PyTypeObject.tp_init` also pass arguments this way." -msgstr "" - -#: c-api/call.rst:29 -msgid "" -"To call an object, use :c:func:`PyObject_Call` or another :ref:`call API " -"`." -msgstr "" - -#: c-api/call.rst:36 -msgid "The Vectorcall Protocol" -msgstr "" - -#: c-api/call.rst:40 -msgid "" -"The vectorcall protocol was introduced in :pep:`590` as an additional " -"protocol for making calls more efficient." -msgstr "" - -#: c-api/call.rst:43 -msgid "" -"As rule of thumb, CPython will prefer the vectorcall for internal calls if " -"the callable supports it. However, this is not a hard rule. Additionally, " -"some third-party extensions use *tp_call* directly (rather than " -"using :c:func:`PyObject_Call`). Therefore, a class supporting vectorcall " -"must also implement :c:member:`~PyTypeObject.tp_call`. Moreover, the " -"callable must behave the same regardless of which protocol is used. The " -"recommended way to achieve this is by " -"setting :c:member:`~PyTypeObject.tp_call` to :c:func:`PyVectorcall_Call`. " -"This bears repeating:" -msgstr "" - -#: c-api/call.rst:57 -msgid "" -"A class supporting vectorcall **must** also " -"implement :c:member:`~PyTypeObject.tp_call` with the same semantics." -msgstr "" - -#: c-api/call.rst:62 -msgid "" -"The :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag is now removed from a class " -"when the class's :py:meth:`~object.__call__` method is reassigned. (This " -"internally sets :c:member:`~PyTypeObject.tp_call` only, and thus may make it " -"behave differently than the vectorcall function.) In earlier Python " -"versions, vectorcall should only be used with :c:macro:`immutable " -"` or static types." -msgstr "" - -#: c-api/call.rst:69 -msgid "" -"A class should not implement vectorcall if that would be slower than " -"*tp_call*. For example, if the callee needs to convert the arguments to an " -"args tuple and kwargs dict anyway, then there is no point in implementing " -"vectorcall." -msgstr "" - -#: c-api/call.rst:74 -msgid "" -"Classes can implement the vectorcall protocol by enabling " -"the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag and " -"setting :c:member:`~PyTypeObject.tp_vectorcall_offset` to the offset inside " -"the object structure where a *vectorcallfunc* appears. This is a pointer to " -"a function with the following signature:" -msgstr "" - -#: c-api/call.rst:82 -msgid "*callable* is the object being called." -msgstr "" - -#: c-api/call.rst:83 -msgid "" -"*args* is a C array consisting of the positional arguments followed by the" -msgstr "" - -#: c-api/call.rst:84 -msgid "" -"values of the keyword arguments. This can be *NULL* if there are no " -"arguments." -msgstr "" - -#: c-api/call.rst:86 -msgid "*nargsf* is the number of positional arguments plus possibly the" -msgstr "" - -#: c-api/call.rst:87 -msgid "" -":c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` flag. To get the actual number of " -"positional arguments from *nargsf*, use :c:func:`PyVectorcall_NARGS`." -msgstr "" - -#: c-api/call.rst:90 -msgid "*kwnames* is a tuple containing the names of the keyword arguments;" -msgstr "" - -#: c-api/call.rst:91 -msgid "" -"in other words, the keys of the kwargs dict. These names must be strings " -"(instances of ``str`` or a subclass) and they must be unique. If there are " -"no keyword arguments, then *kwnames* can instead be *NULL*." -msgstr "" - -#: c-api/call.rst:98 -msgid "" -"If this flag is set in a vectorcall *nargsf* argument, the callee is allowed " -"to temporarily change ``args[-1]``. In other words, *args* points to " -"argument 1 (not 0) in the allocated vector. The callee must restore the " -"value of ``args[-1]`` before returning." -msgstr "" - -#: c-api/call.rst:103 -msgid "" -"For :c:func:`PyObject_VectorcallMethod`, this flag means instead that " -"``args[0]`` may be changed." -msgstr "" - -#: c-api/call.rst:106 -msgid "" -"Whenever they can do so cheaply (without additional allocation), callers are " -"encouraged to use :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET`. Doing so will " -"allow callables such as bound methods to make their onward calls (which " -"include a prepended *self* argument) very efficiently." -msgstr "" - -#: c-api/call.rst:113 -msgid "" -"To call an object that implements vectorcall, use a :ref:`call API ` function as with any other callable. :c:func:`PyObject_Vectorcall` " -"will usually be most efficient." -msgstr "" - -#: c-api/call.rst:119 -msgid "Recursion Control" -msgstr "Contrôle de la récursion" - -#: c-api/call.rst:121 -msgid "" -"When using *tp_call*, callees do not need to worry about :ref:`recursion " -"`: CPython uses :c:func:`Py_EnterRecursiveCall` " -"and :c:func:`Py_LeaveRecursiveCall` for calls made using *tp_call*." -msgstr "" - -#: c-api/call.rst:126 -msgid "" -"For efficiency, this is not the case for calls done using vectorcall: the " -"callee should use *Py_EnterRecursiveCall* and *Py_LeaveRecursiveCall* if " -"needed." -msgstr "" - -#: c-api/call.rst:132 -msgid "Vectorcall Support API" -msgstr "" - -#: c-api/call.rst:136 -msgid "" -"Given a vectorcall *nargsf* argument, return the actual number of arguments. " -"Currently equivalent to::" -msgstr "" - -#: c-api/call.rst:142 -msgid "" -"However, the function ``PyVectorcall_NARGS`` should be used to allow for " -"future extensions." -msgstr "" - -#: c-api/call.rst:149 -msgid "" -"If *op* does not support the vectorcall protocol (either because the type " -"does not or because the specific instance does not), return *NULL*. " -"Otherwise, return the vectorcall function pointer stored in *op*. This " -"function never raises an exception." -msgstr "" - -#: c-api/call.rst:154 -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:161 -msgid "" -"Call *callable*'s :c:type:`vectorcallfunc` with positional and keyword " -"arguments given in a tuple and dict, respectively." -msgstr "" - -#: c-api/call.rst:164 -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``. It does not check the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` " -"flag and it does not fall back to ``tp_call``." -msgstr "" - -#: c-api/call.rst:175 -msgid "Object Calling API" -msgstr "" - -#: c-api/call.rst:177 -msgid "" -"Various functions are available for calling a Python object. Each converts " -"its arguments to a convention supported by the called object – either " -"*tp_call* or vectorcall. In order to do as little conversion as possible, " -"pick one that best fits the format of data you have available." -msgstr "" - -#: c-api/call.rst:183 -msgid "" -"The following table summarizes the available functions; please see " -"individual documentation for details." -msgstr "" - -#: c-api/call.rst:187 -msgid "Function" -msgstr "Fonction" - -#: c-api/call.rst:187 -msgid "callable" -msgstr "appelable" - -#: c-api/call.rst:187 -msgid "args" -msgstr "" - -#: c-api/call.rst:187 -msgid "kwargs" -msgstr "" - -#: c-api/call.rst:189 -msgid ":c:func:`PyObject_Call`" -msgstr "" - -#: c-api/call.rst:191 c-api/call.rst:195 c-api/call.rst:201 c-api/call.rst:211 -msgid "``PyObject *``" -msgstr "" - -#: c-api/call.rst:189 -msgid "tuple" -msgstr "*n*-uplet" - -#: c-api/call.rst:211 -msgid "dict/``NULL``" -msgstr "" - -#: c-api/call.rst:191 -msgid ":c:func:`PyObject_CallNoArgs`" -msgstr "" - -#: c-api/call.rst:193 c-api/call.rst:197 c-api/call.rst:201 c-api/call.rst:205 -#: c-api/call.rst:207 -msgid "---" -msgstr "" - -#: c-api/call.rst:193 -msgid ":c:func:`PyObject_CallOneArg`" -msgstr "" - -#: c-api/call.rst:207 -msgid "1 object" -msgstr "" - -#: c-api/call.rst:195 -msgid ":c:func:`PyObject_CallObject`" -msgstr "" - -#: c-api/call.rst:195 -msgid "tuple/``NULL``" -msgstr "" - -#: c-api/call.rst:197 -msgid ":c:func:`PyObject_CallFunction`" -msgstr "" - -#: c-api/call.rst:199 -msgid "format" -msgstr "format" - -#: c-api/call.rst:199 -msgid ":c:func:`PyObject_CallMethod`" -msgstr "" - -#: c-api/call.rst:199 -msgid "obj + ``char*``" -msgstr "" - -#: c-api/call.rst:201 -msgid ":c:func:`PyObject_CallFunctionObjArgs`" -msgstr "" - -#: c-api/call.rst:203 -msgid "variadic" -msgstr "" - -#: c-api/call.rst:203 -msgid ":c:func:`PyObject_CallMethodObjArgs`" -msgstr "" - -#: c-api/call.rst:205 c-api/call.rst:207 -msgid "obj + name" -msgstr "" - -#: c-api/call.rst:205 -msgid ":c:func:`PyObject_CallMethodNoArgs`" -msgstr "" - -#: c-api/call.rst:207 -msgid ":c:func:`PyObject_CallMethodOneArg`" -msgstr "" - -#: c-api/call.rst:209 -msgid ":c:func:`PyObject_Vectorcall`" -msgstr "" - -#: c-api/call.rst:211 c-api/call.rst:213 -msgid "vectorcall" -msgstr "" - -#: c-api/call.rst:211 -msgid ":c:func:`PyObject_VectorcallDict`" -msgstr "" - -#: c-api/call.rst:213 -msgid ":c:func:`PyObject_VectorcallMethod`" -msgstr "" - -#: c-api/call.rst:213 -msgid "arg + name" -msgstr "" - -#: c-api/call.rst:219 -msgid "" -"Call a callable Python object *callable*, with arguments given by the tuple " -"*args*, and named arguments given by the dictionary *kwargs*." -msgstr "" -"Appelle un objet Python appelable *callable*, avec des arguments donnés par " -"le *n*-uplet *args*, et des arguments nommés donnés par le dictionnaire " -"*kwargs*." - -#: c-api/call.rst:222 -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:237 c-api/call.rst:259 c-api/call.rst:291 c-api/call.rst:324 -#: c-api/call.rst:345 c-api/call.rst:399 -msgid "" -"Return the result of the call on success, or raise an exception and return " -"*NULL* on failure." -msgstr "" - -#: c-api/call.rst:228 -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:234 -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:245 -msgid "" -"Call a callable Python object *callable* with exactly 1 positional argument " -"*arg* and no keyword arguments." -msgstr "" - -#: c-api/call.rst:256 -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:274 -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:267 -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` " -"style format string. The format can be *NULL*, indicating that no arguments " -"are provided." -msgstr "" - -#: c-api/call.rst:276 -msgid "" -"Note that if you only pass :c:expr:`PyObject *` " -"args, :c:func:`PyObject_CallFunctionObjArgs` is a faster alternative." -msgstr "" - -#: c-api/call.rst:279 -msgid "The type of *format* was changed from ``char *``." -msgstr "" - -#: c-api/call.rst:285 -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:289 -msgid "The format can be *NULL*, indicating that no arguments are provided." -msgstr "" - -#: c-api/call.rst:294 -msgid "" -"This is the equivalent of the Python expression: ``obj.name(arg1, " -"arg2, ...)``." -msgstr "" - -#: c-api/call.rst:297 -msgid "" -"Note that if you only pass :c:expr:`PyObject *` " -"args, :c:func:`PyObject_CallMethodObjArgs` is a faster alternative." -msgstr "" - -#: c-api/call.rst:300 -msgid "The types of *name* and *format* were changed from ``char *``." -msgstr "" - -#: c-api/call.rst:306 -msgid "" -"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:313 -msgid "" -"This is the equivalent of the Python expression: ``callable(arg1, " -"arg2, ...)``." -msgstr "" - -#: c-api/call.rst:319 -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:expr:`PyObject *` arguments. The arguments are provided as a " -"variable number of parameters followed by *NULL*." -msgstr "" - -#: c-api/call.rst:330 -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:341 -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: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:363 -msgid "as ``_PyObject_Vectorcall``" -msgstr "" - -#: c-api/call.rst:367 -msgid "" -"Renamed to the current name, without the leading underscore. The old " -"provisional name is :term:`soft deprecated`." -msgstr "" - -#: c-api/call.rst:372 -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:376 -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 " -"already has a dictionary ready to use for the keyword arguments, but not a " -"tuple for the positional arguments." -msgstr "" - -#: c-api/call.rst:386 -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 " -"is *args[0]*, and the *args* array starting at *args[1]* represents the " -"arguments of the call. There must be at least one positional argument. " -"*nargsf* is the number of positional arguments including *args[0]*, " -"plus :c:macro:`PY_VECTORCALL_ARGUMENTS_OFFSET` if the value of ``args[0]`` " -"may temporarily be changed. Keyword arguments can be passed just like " -"in :c:func:`PyObject_Vectorcall`." -msgstr "" - -#: c-api/call.rst:395 -msgid "" -"If the object has the :c:macro:`Py_TPFLAGS_METHOD_DESCRIPTOR` feature, this " -"will call the unbound method object with the full *args* vector as arguments." -msgstr "" - -#: c-api/call.rst:406 -msgid "Call Support API" -msgstr "" - -#: c-api/call.rst:410 -msgid "" -"Determine if the object *o* is callable. Return ``1`` if the object is " -"callable and ``0`` otherwise. This function always succeeds." -msgstr "" -"Détermine si l'objet *o* est appelable. Renvoie ``1`` si c'est le cas, et " -"``0`` sinon. Cette fonction réussit toujours." diff --git a/c-api/capsule.po b/c-api/capsule.po deleted file mode 100644 index 595c94fa77..0000000000 --- a/c-api/capsule.po +++ /dev/null @@ -1,228 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/capsule.rst:6 -msgid "Capsules" -msgstr "Capsules" - -#: c-api/capsule.rst:10 -msgid "" -"Refer to :ref:`using-capsules` for more information on using these objects." -msgstr "" -"Reportez-vous à :ref:`using-capsules` pour plus d'informations sur " -"l'utilisation de ces objets." - -#: c-api/capsule.rst:17 -msgid "" -"This subtype of :c:type:`PyObject` represents an opaque value, useful for C " -"extension modules which 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 " -"loaded modules." -msgstr "" - -#: c-api/capsule.rst:27 -msgid "" -"The type object corresponding to capsule objects. This is the same object " -"as :class:`types.CapsuleType` in the Python layer." -msgstr "" - -#: c-api/capsule.rst:33 -msgid "The type of a destructor callback for a capsule. Defined as::" -msgstr "" - -#: c-api/capsule.rst:37 -msgid "" -"See :c:func:`PyCapsule_New` for the semantics of PyCapsule_Destructor " -"callbacks." -msgstr "" - -#: c-api/capsule.rst:43 -msgid "" -"Return true if its argument is a :c:type:`PyCapsule`. This function always " -"succeeds." -msgstr "" - -#: c-api/capsule.rst:49 -msgid "" -"Create a :c:type:`PyCapsule` encapsulating the *pointer*. The *pointer* " -"argument may not be ``NULL``." -msgstr "" - -#: c-api/capsule.rst:52 -msgid "On failure, set an exception and return ``NULL``." -msgstr "" - -#: c-api/capsule.rst:54 -msgid "" -"The *name* string may either be ``NULL`` or a pointer to a valid C string. " -"If non-``NULL``, this string must outlive the capsule. (Though it is " -"permitted to free it inside the *destructor*.)" -msgstr "" - -#: c-api/capsule.rst:58 -msgid "" -"If the *destructor* argument is not ``NULL``, it will be called with the " -"capsule as its argument when it is destroyed." -msgstr "" - -#: c-api/capsule.rst:61 -msgid "" -"If this capsule will be stored as an attribute of a module, the *name* " -"should be specified as ``modulename.attributename``. This will enable other " -"modules to import the capsule using :c:func:`PyCapsule_Import`." -msgstr "" - -#: c-api/capsule.rst:68 -msgid "" -"Retrieve the *pointer* stored in the capsule. On failure, set an exception " -"and return ``NULL``." -msgstr "" - -#: c-api/capsule.rst:71 -msgid "" -"The *name* parameter must compare exactly to the name stored in the capsule. " -"If the name stored in the capsule is ``NULL``, the *name* passed in must " -"also be ``NULL``. Python uses the C function :c:func:`!strcmp` to compare " -"capsule names." -msgstr "" - -#: c-api/capsule.rst:79 -msgid "" -"Return the current destructor stored in the capsule. On failure, set an " -"exception and return ``NULL``." -msgstr "" - -#: c-api/capsule.rst:82 -msgid "" -"It is legal for a capsule to have a ``NULL`` destructor. This makes a " -"``NULL`` return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " -"or :c:func:`PyErr_Occurred` to disambiguate." -msgstr "" - -#: c-api/capsule.rst:89 -msgid "" -"Return the current context stored in the capsule. On failure, set an " -"exception and return ``NULL``." -msgstr "" - -#: c-api/capsule.rst:92 -msgid "" -"It is legal for a capsule to have a ``NULL`` context. This makes a ``NULL`` " -"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " -"or :c:func:`PyErr_Occurred` to disambiguate." -msgstr "" - -#: c-api/capsule.rst:99 -msgid "" -"Return the current name stored in the capsule. On failure, set an exception " -"and return ``NULL``." -msgstr "" - -#: c-api/capsule.rst:102 -msgid "" -"It is legal for a capsule to have a ``NULL`` name. This makes a ``NULL`` " -"return code somewhat ambiguous; use :c:func:`PyCapsule_IsValid` " -"or :c:func:`PyErr_Occurred` to disambiguate." -msgstr "" - -#: c-api/capsule.rst:109 -msgid "" -"Import a pointer to a C object from a capsule attribute in a module. The " -"*name* parameter should specify the full name to the attribute, as in " -"``module.attribute``. The *name* stored in the capsule must match this " -"string exactly." -msgstr "" - -#: c-api/capsule.rst:114 -msgid "" -"This function splits *name* on the ``.`` character, and imports the first " -"element. It then processes further elements using attribute lookups." -msgstr "" - -#: c-api/capsule.rst:117 -msgid "" -"Return the capsule's internal *pointer* on success. On failure, set an " -"exception and return ``NULL``." -msgstr "" - -#: c-api/capsule.rst:122 -msgid "" -"If *name* points to an attribute of some submodule or subpackage, this " -"submodule or subpackage must be previously imported using other means (for " -"example, by using :c:func:`PyImport_ImportModule`) for the attribute lookups " -"to succeed." -msgstr "" - -#: c-api/capsule.rst:127 -msgid "*no_block* has no effect anymore." -msgstr "" - -#: c-api/capsule.rst:133 -msgid "" -"Determines whether or not *capsule* is a valid capsule. A valid capsule is " -"non-``NULL``, passes :c:func:`PyCapsule_CheckExact`, has a non-``NULL`` " -"pointer stored in it, and its internal name matches the *name* parameter. " -"(See :c:func:`PyCapsule_GetPointer` for information on how capsule names are " -"compared.)" -msgstr "" - -#: c-api/capsule.rst:139 -msgid "" -"In other words, if :c:func:`PyCapsule_IsValid` returns a true value, calls " -"to any of the accessors (any function starting with ``PyCapsule_Get``) are " -"guaranteed to succeed." -msgstr "" - -#: c-api/capsule.rst:143 -msgid "" -"Return a nonzero value if the object is valid and matches the name passed " -"in. Return ``0`` otherwise. This function will not fail." -msgstr "" - -#: c-api/capsule.rst:149 -msgid "Set the context pointer inside *capsule* to *context*." -msgstr "" - -#: c-api/capsule.rst:158 c-api/capsule.rst:175 -msgid "" -"Return ``0`` on success. Return nonzero and set an exception on failure." -msgstr "" - -#: c-api/capsule.rst:156 -msgid "Set the destructor inside *capsule* to *destructor*." -msgstr "" - -#: c-api/capsule.rst:163 -msgid "" -"Set the name inside *capsule* to *name*. If non-``NULL``, the name must " -"outlive the capsule. If the previous *name* stored in the capsule was not " -"``NULL``, no attempt is made to free it." -msgstr "" - -#: c-api/capsule.rst:172 -msgid "" -"Set the void pointer inside *capsule* to *pointer*. The pointer may not be " -"``NULL``." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#, fuzzy -#~ msgid "Capsule" -#~ msgstr "Capsules" diff --git a/c-api/cell.po b/c-api/cell.po deleted file mode 100644 index 377a219d8a..0000000000 --- a/c-api/cell.po +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-05-09 10:14+0200\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" - -#: c-api/cell.rst:6 -msgid "Cell Objects" -msgstr "Objets Cellules" - -#: c-api/cell.rst:8 -#, fuzzy -msgid "" -"\"Cell\" objects are used to implement variables referenced by multiple " -"scopes. For each such variable, a cell object is created to store the value; " -"the local variables of each stack frame that references the value contain a " -"reference to the cells from outer scopes which also use that variable. When " -"the value is accessed, the value contained in the cell is used instead of " -"the cell object itself. This de-referencing of the cell object requires " -"support from the generated byte-code; these are not automatically de-" -"referenced when accessed. Cell objects are not likely to be useful elsewhere." -msgstr "" -"Les objets \"Cellules\" (*cell* en anglais) sont utilisés pour implémenter " -"des variables référencées dans de multiples environnements. Pour chacune de " -"ces variables, un objet cellule est créé pour stocker sa valeur ; les " -"variables locales de chaque pile d'exécution qui référence cette valeur " -"contiennent une référence sur les cellules des autres environnements qui " -"utilisent aussi cette variable. Quand la valeur est accédée, la valeur de la " -"cellule est utilisée, au lei de celle de l'objet cellule proprement dit. Ce " -"dé-référencement de l'objet cellule requiert l'intervention du *bytecode* " -"généré ; il n'est pas automatiquement dé-référencé quand il est accédé. Il " -"est plausible que les objets cellules ne soit utilisés ailleurs." - -#: c-api/cell.rst:20 -msgid "The C structure used for cell objects." -msgstr "Structure C utilisée pour les objets cellules." - -#: c-api/cell.rst:25 -msgid "The type object corresponding to cell objects." -msgstr "Type objet correspondant aux objets cellules." - -#: c-api/cell.rst:30 -#, fuzzy -msgid "" -"Return true if *ob* is a cell object; *ob* must not be ``NULL``. This " -"function always succeeds." -msgstr "" -"Renvoie ``True`` si *ob* est un objet cellule ; *ob* ne doit pas être à " -"*NULL*." - -#: c-api/cell.rst:36 -#, fuzzy -msgid "" -"Create and return a new cell object containing the value *ob*. The parameter " -"may be ``NULL``." -msgstr "" -"Crée et retourne un nouvel objet cellule contenant la valeur *ob*. Le " -"paramètre peut être mis à *NULL*." - -#: c-api/cell.rst:42 -#, fuzzy -msgid "" -"Return the contents of the cell *cell*, which can be ``NULL``. If *cell* is " -"not a cell object, returns ``NULL`` with an exception set." -msgstr "" -"Renvoie le contenu de la cellule *cell*, mais sans vérifier si *cell* est " -"non *NULL* et sans vérifier si c'est un objet cellule." - -#: c-api/cell.rst:48 -#, fuzzy -msgid "" -"Return the contents of the cell *cell*, but without checking that *cell* is " -"non-``NULL`` and a cell object." -msgstr "" -"Renvoie le contenu de la cellule *cell*, mais sans vérifier si *cell* est " -"non *NULL* et sans vérifier si c'est un objet cellule." - -#: c-api/cell.rst:54 -#, fuzzy -msgid "" -"Set the contents of the cell object *cell* to *value*. This releases the " -"reference to any current content of the cell. *value* may be ``NULL``. " -"*cell* must be non-``NULL``." -msgstr "" -"Définit le contenu de l'objet cellule à *value*. Cela libère la référence à " -"toute valeur de la cellule. *value* peut être fixé à *NULL*. *cell* ne doit " -"pas être *NULL* ; si ce n'est pas un objet cellule, ``-1`` est renvoyé. Si " -"c'est un objet cellule, renvoie ``0``." - -#: c-api/cell.rst:58 -msgid "" -"On success, return ``0``. If *cell* is not a cell object, set an exception " -"and return ``-1``." -msgstr "" - -#: c-api/cell.rst:64 -#, fuzzy -msgid "" -"Sets the value of the cell object *cell* to *value*. No reference counts " -"are adjusted, and no checks are made for safety; *cell* must be non-``NULL`` " -"and must be a cell object." -msgstr "" -"Définit la valeur de l'objet cellule à *value*. Pas de comptage de " -"références n'est ajusté et il n'y' a pas de contrôle effectué pour vérifier " -"la sûreté ; *cell* doit être à non *NULL* et doit être un objet cellule." - -#~ msgid "Return the contents of the cell *cell*." -#~ msgstr "Renvoie le contenu de la cellule *cell*." diff --git a/c-api/code.po b/c-api/code.po deleted file mode 100644 index d032528022..0000000000 --- a/c-api/code.po +++ /dev/null @@ -1,487 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-02-15 00:30+0100\n" -"Last-Translator: FULL NAME \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" - -#: c-api/code.rst:8 -msgid "Code Objects" -msgstr "Objets code" - -#: c-api/code.rst:10 -msgid "" -"Code objects are a low-level detail of the CPython implementation. Each one " -"represents a chunk of executable code that hasn't yet been bound into a " -"function." -msgstr "" -"Les objets *Code* sont spécifiques à l'implémentation bas niveau de CPython. " -"Chacun d'eux représente une partie de code exécutable, qui n'a pas encore " -"été lié dans une fonction." - -#: c-api/code.rst:16 -msgid "" -"The C structure of the objects used to describe code objects. The fields of " -"this type are subject to change at any time." -msgstr "" -"La structure C utilisée pour décrire les objets *Code*. Les attributs de " -"cette structure sont sujets à changer à tout moment." - -#: c-api/code.rst:22 -#, fuzzy -msgid "" -"This is an instance of :c:type:`PyTypeObject` representing the " -"Python :ref:`code object `." -msgstr "" -"C'est une instance de :c:type:`PyTypeObject` représentant le type " -"Python :class:`code`." - -#: c-api/code.rst:28 -#, fuzzy -msgid "" -"Return true if *co* is a :ref:`code object `. This function " -"always succeeds." -msgstr "Renvoie vrai si *co* est un objet :class:`code`." - -#: c-api/code.rst:33 -#, fuzzy -msgid "" -"Return the number of :term:`free (closure) variables ` in " -"a code object." -msgstr "Renvoie le nombre de variables libres dans *co*." - -#: c-api/code.rst:38 -#, fuzzy -msgid "" -"Return the position of the first :term:`free (closure) variable ` in a code object." -msgstr "Renvoie le nombre de variables libres dans *co*." - -#: c-api/code.rst:43 -msgid "" -"Renamed from ``PyCode_GetFirstFree`` as part of :ref:`unstable-c-api`. The " -"old name is deprecated, but will remain available until the signature " -"changes again." -msgstr "" - -#: c-api/code.rst:49 -msgid "" -"Return a new code object. If you need a dummy code object to create a " -"frame, use :c:func:`PyCode_NewEmpty` instead." -msgstr "" - -#: c-api/code.rst:52 -msgid "" -"Since the definition of the bytecode changes often, " -"calling :c:func:`PyUnstable_Code_New` directly can bind you to a precise " -"Python version." -msgstr "" - -#: c-api/code.rst:55 -#, fuzzy -msgid "" -"The many arguments of this function are inter-dependent in complex ways, " -"meaning that subtle changes to values are likely to result in incorrect " -"execution or VM crashes. Use this function only with extreme care." -msgstr "" -"Renvoie un nouvel objet *code*. Si vous avez besoin d'un objet code factice " -"pour créer une *frame*, utilisez plutôt :c:func:`PyCode_NewEmpty`. " -"Appeler :c:func:`PyCode_New` peut vous lier directement à une version " -"spécifique de Python, le *bytecode* étant sujet à modifications." - -#: c-api/code.rst:59 -msgid "Added ``qualname`` and ``exceptiontable`` parameters." -msgstr "" - -#: c-api/code.rst:66 -msgid "" -"Renamed from ``PyCode_New`` as part of :ref:`unstable-c-api`. The old name " -"is deprecated, but will remain available until the signature changes again." -msgstr "" - -#: c-api/code.rst:75 -msgid "" -"Similar to :c:func:`PyUnstable_Code_New`, but with an extra " -"\"posonlyargcount\" for positional-only arguments. The same caveats that " -"apply to ``PyUnstable_Code_New`` also apply to this function." -msgstr "" - -#: c-api/code.rst:78 -msgid "as ``PyCode_NewWithPosOnlyArgs``" -msgstr "" - -#: c-api/code.rst:80 -msgid "Added ``qualname`` and ``exceptiontable`` parameters." -msgstr "" - -#: c-api/code.rst:85 -msgid "" -"Renamed to ``PyUnstable_Code_NewWithPosOnlyArgs``. The old name is " -"deprecated, but will remain available until the signature changes again." -msgstr "" - -#: c-api/code.rst:91 -#, fuzzy -msgid "" -"Return a new empty code object with the specified filename, function name, " -"and first line number. The resulting code object will raise an ``Exception`` " -"if executed." -msgstr "" -"Renvoie un nouvel objet *code* avec le nom de fichier, le nom de fonction, " -"et le numéro de première ligne donnés. Il n'est pas permis " -"d'utiliser :func:`exec` ou :func:`eval` sur l'objet renvoyé." - -#: c-api/code.rst:97 -msgid "" -"Return the line number of the instruction that occurs on or before " -"``byte_offset`` and ends after it. If you just need the line number of a " -"frame, use :c:func:`PyFrame_GetLineNumber` instead." -msgstr "" - -#: c-api/code.rst:100 -msgid "" -"For efficiently iterating over the line numbers in a code object, " -"use :pep:`the API described in PEP 626 <0626#out-of-process-debuggers-and-" -"profilers>`." -msgstr "" - -#: c-api/code.rst:105 -msgid "" -"Sets the passed ``int`` pointers to the source code line and column numbers " -"for the instruction at ``byte_offset``. Sets the value to ``0`` when " -"information is not available for any particular element." -msgstr "" - -#: c-api/code.rst:109 -msgid "Returns ``1`` if the function succeeds and 0 otherwise." -msgstr "" - -#: c-api/code.rst:115 -msgid "" -"Equivalent to the Python code ``getattr(co, 'co_code')``. Returns a strong " -"reference to a :c:type:`PyBytesObject` representing the bytecode in a code " -"object. On error, ``NULL`` is returned and an exception is raised." -msgstr "" - -#: c-api/code.rst:120 -msgid "" -"This ``PyBytesObject`` may be created on-demand by the interpreter and does " -"not necessarily represent the bytecode actually executed by CPython. The " -"primary use case for this function is debuggers and profilers." -msgstr "" - -#: c-api/code.rst:128 -msgid "" -"Equivalent to the Python code ``getattr(co, 'co_varnames')``. Returns a new " -"reference to a :c:type:`PyTupleObject` containing the names of the local " -"variables. On error, ``NULL`` is returned and an exception is raised." -msgstr "" - -#: c-api/code.rst:137 -msgid "" -"Equivalent to the Python code ``getattr(co, 'co_cellvars')``. Returns a new " -"reference to a :c:type:`PyTupleObject` containing the names of the local " -"variables that are referenced by nested functions. On error, ``NULL`` is " -"returned and an exception is raised." -msgstr "" - -#: c-api/code.rst:146 -msgid "" -"Equivalent to the Python code ``getattr(co, 'co_freevars')``. Returns a new " -"reference to a :c:type:`PyTupleObject` containing the names of " -"the :term:`free (closure) variables `. On error, ``NULL`` " -"is returned and an exception is raised." -msgstr "" - -#: c-api/code.rst:155 -msgid "" -"Register *callback* as a code object watcher for the current interpreter. " -"Return an ID which may be passed to :c:func:`PyCode_ClearWatcher`. In case " -"of error (e.g. no more watcher IDs available), return ``-1`` and set an " -"exception." -msgstr "" - -#: c-api/code.rst:164 -msgid "" -"Clear watcher identified by *watcher_id* previously returned " -"from :c:func:`PyCode_AddWatcher` for the current interpreter. Return ``0`` " -"on success, or ``-1`` and set an exception on error (e.g. if the given " -"*watcher_id* was never registered.)" -msgstr "" - -#: c-api/code.rst:173 -msgid "" -"Enumeration of possible code object watcher events: - " -"``PY_CODE_EVENT_CREATE`` - ``PY_CODE_EVENT_DESTROY``" -msgstr "" - -#: c-api/code.rst:181 -msgid "Type of a code object watcher callback function." -msgstr "" - -#: c-api/code.rst:183 -msgid "" -"If *event* is ``PY_CODE_EVENT_CREATE``, then the callback is invoked after " -"*co* has been fully initialized. Otherwise, the callback is invoked before " -"the destruction of *co* takes place, so the prior state of *co* can be " -"inspected." -msgstr "" - -#: c-api/code.rst:188 -msgid "" -"If *event* is ``PY_CODE_EVENT_DESTROY``, taking a reference in the callback " -"to the about-to-be-destroyed code object will resurrect it and prevent it " -"from being freed at this time. When the resurrected object is destroyed " -"later, any watcher callbacks active at that time will be called again." -msgstr "" - -#: c-api/code.rst:193 -msgid "" -"Users of this API should not rely on internal runtime implementation " -"details. Such details may include, but are not limited to, the exact order " -"and timing of creation and destruction of code objects. While changes in " -"these details may result in differences observable by watchers (including " -"whether a callback is invoked or not), it does not change the semantics of " -"the Python code being executed." -msgstr "" - -#: c-api/code.rst:200 -msgid "" -"If the callback sets an exception, it must return ``-1``; this exception " -"will be printed as an unraisable exception " -"using :c:func:`PyErr_WriteUnraisable`. Otherwise it should return ``0``." -msgstr "" - -#: c-api/code.rst:204 -msgid "" -"There may already be a pending exception set on entry to the callback. In " -"this case, the callback should return ``0`` with the same exception still " -"set. This means the callback may not call any other API that can set an " -"exception unless it saves and clears the exception state first, and restores " -"it before returning." -msgstr "" - -#: c-api/code.rst:215 -msgid "This is a function that does nothing." -msgstr "" - -#: c-api/code.rst:217 -msgid "" -"Prior to Python 3.10, this function would perform basic optimizations to a " -"code object." -msgstr "" - -#: c-api/code.rst:220 -msgid "This function now does nothing." -msgstr "" - -#: c-api/code.rst:229 -#, fuzzy -msgid "Code Object Flags" -msgstr "Objets code" - -#: c-api/code.rst:231 -msgid "" -"Code objects contain a bit-field of flags, which can be retrieved as " -"the :attr:`~codeobject.co_flags` Python attribute (for example " -"using :c:func:`PyObject_GetAttrString`), and set using a *flags* argument " -"to :c:func:`PyUnstable_Code_New` and similar functions." -msgstr "" - -#: c-api/code.rst:236 -msgid "" -"Flags whose names start with ``CO_FUTURE_`` correspond to features normally " -"selectable by :ref:`future statements `. These flags can be used " -"in :c:member:`PyCompilerFlags.cf_flags`. Note that many ``CO_FUTURE_`` flags " -"are mandatory in current versions of Python, and setting them has no effect." -msgstr "" - -#: c-api/code.rst:242 -msgid "" -"The following flags are available. For their meaning, see the linked " -"documentation of their Python equivalents." -msgstr "" - -#: c-api/code.rst:250 -msgid "Flag" -msgstr "Option" - -#: c-api/code.rst:251 -msgid "Meaning" -msgstr "Signification" - -#: c-api/code.rst:253 -msgid ":py:data:`inspect.CO_OPTIMIZED`" -msgstr "" - -#: c-api/code.rst:255 -msgid ":py:data:`inspect.CO_NEWLOCALS`" -msgstr "" - -#: c-api/code.rst:257 -msgid ":py:data:`inspect.CO_VARARGS`" -msgstr "" - -#: c-api/code.rst:259 -msgid ":py:data:`inspect.CO_VARKEYWORDS`" -msgstr "" - -#: c-api/code.rst:261 -msgid ":py:data:`inspect.CO_NESTED`" -msgstr "" - -#: c-api/code.rst:263 -msgid ":py:data:`inspect.CO_GENERATOR`" -msgstr "" - -#: c-api/code.rst:265 -msgid ":py:data:`inspect.CO_COROUTINE`" -msgstr "" - -#: c-api/code.rst:267 -msgid ":py:data:`inspect.CO_ITERABLE_COROUTINE`" -msgstr "" - -#: c-api/code.rst:269 -msgid ":py:data:`inspect.CO_ASYNC_GENERATOR`" -msgstr "" - -#: c-api/code.rst:271 -msgid ":py:data:`inspect.CO_HAS_DOCSTRING`" -msgstr "" - -#: c-api/code.rst:273 -msgid ":py:data:`inspect.CO_METHOD`" -msgstr "" - -#: c-api/code.rst:276 -msgid "no effect (:py:data:`__future__.division`)" -msgstr "" - -#: c-api/code.rst:278 -msgid "no effect (:py:data:`__future__.absolute_import`)" -msgstr "" - -#: c-api/code.rst:280 -msgid "no effect (:py:data:`__future__.with_statement`)" -msgstr "" - -#: c-api/code.rst:282 -msgid "no effect (:py:data:`__future__.print_function`)" -msgstr "" - -#: c-api/code.rst:284 -msgid "no effect (:py:data:`__future__.unicode_literals`)" -msgstr "" - -#: c-api/code.rst:286 -msgid "no effect (:py:data:`__future__.generator_stop`)" -msgstr "" - -#: c-api/code.rst:288 -msgid ":py:data:`__future__.annotations`" -msgstr "" - -#: c-api/code.rst:292 -msgid "Extra information" -msgstr "" - -#: c-api/code.rst:294 -msgid "" -"To support low-level extensions to frame evaluation, such as external just-" -"in-time compilers, it is possible to attach arbitrary extra data to code " -"objects." -msgstr "" - -#: c-api/code.rst:298 -msgid "" -"These functions are part of the unstable C API tier: this functionality is a " -"CPython implementation detail, and the API may change without deprecation " -"warnings." -msgstr "" - -#: c-api/code.rst:307 -msgid "Return a new opaque index value used to adding data to code objects." -msgstr "" - -#: c-api/code.rst:309 -msgid "" -"You generally call this function once (per interpreter) and use the result " -"with ``PyCode_GetExtra`` and ``PyCode_SetExtra`` to manipulate data on " -"individual code objects." -msgstr "" - -#: c-api/code.rst:313 -msgid "" -"If *free* is not ``NULL``: when a code object is deallocated, *free* will be " -"called on non-``NULL`` data stored under the new index. " -"Use :c:func:`Py_DecRef` when storing :c:type:`PyObject`." -msgstr "" - -#: c-api/code.rst:317 -msgid "as ``_PyEval_RequestCodeExtraIndex``" -msgstr "" - -#: c-api/code.rst:321 -msgid "" -"Renamed to ``PyUnstable_Eval_RequestCodeExtraIndex``. The old private name " -"is deprecated, but will be available until the API changes." -msgstr "" - -#: c-api/code.rst:330 -msgid "" -"Set *extra* to the extra data stored under the given index. Return 0 on " -"success. Set an exception and return -1 on failure." -msgstr "" - -#: c-api/code.rst:333 -msgid "" -"If no data was set under the index, set *extra* to ``NULL`` and return 0 " -"without setting an exception." -msgstr "" - -#: c-api/code.rst:336 -msgid "as ``_PyCode_GetExtra``" -msgstr "" - -#: c-api/code.rst:340 -msgid "" -"Renamed to ``PyUnstable_Code_GetExtra``. The old private name is deprecated, " -"but will be available until the API changes." -msgstr "" - -#: c-api/code.rst:349 -msgid "" -"Set the extra data stored under the given index to *extra*. Return 0 on " -"success. Set an exception and return -1 on failure." -msgstr "" - -#: c-api/code.rst:352 -msgid "as ``_PyCode_SetExtra``" -msgstr "" - -#: c-api/code.rst:356 -msgid "" -"Renamed to ``PyUnstable_Code_SetExtra``. The old private name is deprecated, " -"but will be available until the API changes." -msgstr "" - -#, fuzzy -#~ msgid "object" -#~ msgstr "Objets code" - -#~ msgid "code" -#~ msgstr "code" - -#, fuzzy -#~ msgid "code object" -#~ msgstr "Objets code" diff --git a/c-api/codec.po b/c-api/codec.po deleted file mode 100644 index 320691b272..0000000000 --- a/c-api/codec.po +++ /dev/null @@ -1,181 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/codec.rst:4 -msgid "Codec registry and support functions" -msgstr "" - -#: c-api/codec.rst:8 -msgid "Register a new codec search function." -msgstr "" - -#: c-api/codec.rst:10 -msgid "" -"As a side effect, this tries to load the :mod:`!encodings` package, if not " -"yet done, to make sure that it is always first in the list of search " -"functions." -msgstr "" - -#: c-api/codec.rst:15 -msgid "" -"Unregister a codec search function and clear the registry's cache. If the " -"search function is not registered, do nothing. Return 0 on success. Raise an " -"exception and return -1 on error." -msgstr "" - -#: c-api/codec.rst:23 -msgid "" -"Return ``1`` or ``0`` depending on whether there is a registered codec for " -"the given *encoding*. This function always succeeds." -msgstr "" - -#: c-api/codec.rst:28 -msgid "Generic codec based encoding API." -msgstr "" - -#: c-api/codec.rst:30 -msgid "" -"*object* is passed through the encoder function found for the given " -"*encoding* using the error handling method defined by *errors*. *errors* " -"may be ``NULL`` to use the default method defined for the codec. Raises " -"a :exc:`LookupError` if no encoder can be found." -msgstr "" - -#: c-api/codec.rst:37 -msgid "Generic codec based decoding API." -msgstr "" - -#: c-api/codec.rst:39 -msgid "" -"*object* is passed through the decoder function found for the given " -"*encoding* using the error handling method defined by *errors*. *errors* " -"may be ``NULL`` to use the default method defined for the codec. Raises " -"a :exc:`LookupError` if no decoder can be found." -msgstr "" - -#: c-api/codec.rst:46 -msgid "Codec lookup API" -msgstr "" - -#: c-api/codec.rst:48 -msgid "" -"In the following functions, the *encoding* string is looked up converted to " -"all lower-case characters, which makes encodings looked up through this " -"mechanism effectively case-insensitive. If no codec is found, " -"a :exc:`KeyError` is set and ``NULL`` returned." -msgstr "" - -#: c-api/codec.rst:55 -msgid "Get an encoder function for the given *encoding*." -msgstr "" - -#: c-api/codec.rst:59 -msgid "Get a decoder function for the given *encoding*." -msgstr "" - -#: c-api/codec.rst:63 -msgid "" -"Get an :class:`~codecs.IncrementalEncoder` object for the given *encoding*." -msgstr "" - -#: c-api/codec.rst:67 -msgid "" -"Get an :class:`~codecs.IncrementalDecoder` object for the given *encoding*." -msgstr "" - -#: c-api/codec.rst:71 -msgid "" -"Get a :class:`~codecs.StreamReader` factory function for the given " -"*encoding*." -msgstr "" - -#: c-api/codec.rst:75 -msgid "" -"Get a :class:`~codecs.StreamWriter` factory function for the given " -"*encoding*." -msgstr "" - -#: c-api/codec.rst:79 -msgid "Registry API for Unicode encoding error handlers" -msgstr "" - -#: c-api/codec.rst:83 -msgid "" -"Register the error handling callback function *error* under the given " -"*name*. This callback function will be called by a codec when it encounters " -"unencodable characters/undecodable bytes and *name* is specified as the " -"error parameter in the call to the encode/decode function." -msgstr "" - -#: c-api/codec.rst:88 -msgid "" -"The callback gets a single argument, an instance " -"of :exc:`UnicodeEncodeError`, :exc:`UnicodeDecodeError` " -"or :exc:`UnicodeTranslateError` that holds information about the problematic " -"sequence of characters or bytes and their offset in the original string " -"(see :ref:`unicodeexceptions` for functions to extract this information). " -"The callback must either raise the given exception, or return a two-item " -"tuple containing the replacement for the problematic sequence, and an " -"integer giving the offset in the original string at which encoding/decoding " -"should be resumed." -msgstr "" - -#: c-api/codec.rst:98 -msgid "Return ``0`` on success, ``-1`` on error." -msgstr "" - -#: c-api/codec.rst:102 -msgid "" -"Lookup the error handling callback function registered under *name*. As a " -"special case ``NULL`` can be passed, in which case the error handling " -"callback for \"strict\" will be returned." -msgstr "" - -#: c-api/codec.rst:108 -msgid "Raise *exc* as an exception." -msgstr "" - -#: c-api/codec.rst:112 -msgid "Ignore the unicode error, skipping the faulty input." -msgstr "" - -#: c-api/codec.rst:116 -msgid "Replace the unicode encode error with ``?`` or ``U+FFFD``." -msgstr "" - -#: c-api/codec.rst:120 -msgid "Replace the unicode encode error with XML character references." -msgstr "" - -#: c-api/codec.rst:124 -msgid "" -"Replace the unicode encode error with backslash escapes (``\\x``, ``\\u`` " -"and ``\\U``)." -msgstr "" - -#: c-api/codec.rst:129 -msgid "Replace the unicode encode error with ``\\N{...}`` escapes." -msgstr "" - -#: c-api/codec.rst:135 -msgid "Codec utility variables" -msgstr "" - -#: c-api/codec.rst:139 -msgid "" -"A string constant containing the lowercase hexadecimal digits: " -"``\"0123456789abcdef\"``." -msgstr "" diff --git a/c-api/complex.po b/c-api/complex.po deleted file mode 100644 index 16bb89cd03..0000000000 --- a/c-api/complex.po +++ /dev/null @@ -1,316 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-01-14 20:31+0100\n" -"Last-Translator: ANTOINE FOURES \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.4\n" - -#: c-api/complex.rst:6 -msgid "Complex Number Objects" -msgstr "Objets représentant des nombres complexes" - -#: c-api/complex.rst:13 -msgid "" -"This subtype of :c:type:`PyObject` represents a Python complex number object." -msgstr "" -"Ce sous-type de l'objet :c:type:`PyObject` représente un nombre complexe en " -"Python." - -#: c-api/complex.rst:17 -#, fuzzy -msgid "" -"The complex number value, using the C :c:type:`Py_complex` representation." -msgstr "" -"Renvoie la somme de deux nombres complexes, sous la forme " -"d'un :c:type:`Py_complex` en C." - -#: c-api/complex.rst:19 -msgid "" -"Use :c:func:`PyComplex_AsCComplex` and :c:func:`PyComplex_FromCComplex` to " -"convert a Python complex number to/from the C :c:type:`Py_complex` " -"representation." -msgstr "" - -#: c-api/complex.rst:28 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python complex number " -"type. It is the same object as :class:`complex` in the Python layer." -msgstr "" -"Cette instance de :c:type:`PyTypeObject` représente le type nombre complexe " -"Python. C'est le même objet que la classe :class:`complex` de la couche " -"Python." - -#: c-api/complex.rst:34 -#, fuzzy -msgid "" -"Return true if its argument is a :c:type:`PyComplexObject` or a subtype " -"of :c:type:`PyComplexObject`. This function always succeeds." -msgstr "" -"Renvoie vrai si l'argument est de type :c:type:`PyComplexObject` ou un sous-" -"type de :c:type:`PyComplexObject`." - -#: c-api/complex.rst:40 -#, fuzzy -msgid "" -"Return true if its argument is a :c:type:`PyComplexObject`, but not a " -"subtype of :c:type:`PyComplexObject`. This function always succeeds." -msgstr "" -"Renvoie vrai si l'argument est de type :c:type:`PyComplexObject`, mais pas " -"un sous-type de :c:type:`PyComplexObject`." - -#: c-api/complex.rst:46 -#, fuzzy -msgid "" -"Return a new :c:type:`PyComplexObject` object from *real* and *imag*. Return " -"``NULL`` with an exception set on error." -msgstr "" -"Renvoie un nouveau :c:type:`PyComplexObject` à partir de *real* et de *imag*." - -#: c-api/complex.rst:52 -#, 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:54 -#, fuzzy -msgid "" -"If *op* is not a Python complex number object but has " -"a :meth:`~object.__complex__` method, this method will first be called to " -"convert *op* to a Python complex number object. If :meth:`!__complex__` is " -"not defined then it falls back to call :c:func:`PyFloat_AsDouble` and " -"returns its result." -msgstr "" -"Si *op* n'est pas un nombre complexe Python mais a une " -"méthode :meth:`__complex__`, cette méthode est d'abord appelée pour " -"convertir *op* en nombre complexe Python. En cas d'échec, cette méthode " -"renvoie ``-1.0`` en tant que nombre réel." - -#: c-api/complex.rst:76 -msgid "" -"Upon failure, this method returns ``-1.0`` with an exception set, so one " -"should call :c:func:`PyErr_Occurred` to check for errors." -msgstr "" - -#: c-api/complex.rst:79 -msgid "Use :meth:`~object.__complex__` if available." -msgstr "" - -#: c-api/complex.rst:68 -#, 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." - -#: c-api/complex.rst:70 -#, fuzzy -msgid "" -"If *op* is not a Python complex number object but has " -"a :meth:`~object.__complex__` method, this method will first be called to " -"convert *op* to a Python complex number object. If :meth:`!__complex__` is " -"not defined then it falls back to call :c:func:`PyFloat_AsDouble` and " -"returns ``0.0`` on success." -msgstr "" -"Si *op* n'est pas un nombre complexe Python mais a une " -"méthode :meth:`__complex__`, cette méthode est d'abord appelée pour " -"convertir *op* en nombre complexe Python. En cas d'échec, cette méthode " -"renvoie ``-1.0`` en tant que nombre réel." - -#: c-api/complex.rst:85 -#, fuzzy -msgid "" -"This C structure defines an export format for a Python complex number object." -msgstr "" -"Ce sous-type de l'objet :c:type:`PyObject` représente un nombre complexe en " -"Python." - -#: c-api/complex.rst:91 -msgid "The structure is defined as::" -msgstr "" - -#: c-api/complex.rst:101 -#, fuzzy -msgid "" -"Create a new Python complex number object from a C :c:type:`Py_complex` " -"value. Return ``NULL`` with an exception set on error." -msgstr "" -"Crée un nouveau nombre complexe à partir de la valeur " -"d'un :c:type:`Py_complex` en C." - -#: c-api/complex.rst:107 -msgid "Return the :c:type:`Py_complex` value of the complex number *op*." -msgstr "" -"Renvoie la valeur du nombre complexe *op* sous la forme " -"d'un :c:type:`Py_complex` en C." - -#: c-api/complex.rst:109 -#, fuzzy -msgid "" -"If *op* is not a Python complex number object but has " -"a :meth:`~object.__complex__` method, this method will first be called to " -"convert *op* to a Python complex number object. If :meth:`!__complex__` is " -"not defined then it falls back to :meth:`~object.__float__`. If :meth:`!" -"__float__` is not defined then it falls back to :meth:`~object.__index__`." -msgstr "" -"Si *op* n'est pas un nombre complexe Python mais a une " -"méthode :meth:`__complex__`, cette méthode est d'abord appelée pour " -"convertir *op* en nombre complexe Python. En cas d'échec, cette méthode " -"renvoie ``-1.0`` en tant que nombre réel." - -#: c-api/complex.rst:115 -msgid "" -"Upon failure, this method returns :c:type:`Py_complex` " -"with :c:member:`~Py_complex.real` set to ``-1.0`` and with an exception set, " -"so one should call :c:func:`PyErr_Occurred` to check for errors." -msgstr "" - -#: c-api/complex.rst:119 -msgid "Use :meth:`~object.__index__` if available." -msgstr "" - -#: c-api/complex.rst:124 -msgid "Complex Numbers as C Structures" -msgstr "Nombres complexes en tant que structures C" - -#: c-api/complex.rst:126 -#, fuzzy -msgid "" -"The API also provides functions for working with complex numbers, using " -"the :c:type:`Py_complex` representation. Note that the functions which " -"accept these structures as parameters and return them as results do so *by " -"value* rather than dereferencing them through pointers." -msgstr "" -"Les fonctions qui acceptent ces structures comme paramètres et les renvoient " -"comme résultats le font en fonction de leur *valeur* au lieu de les dé-" -"référencer en utilisant des pointeurs. C'est constant dans toute l'API." - -#: c-api/complex.rst:131 -msgid "" -"Please note, that these functions are :term:`soft deprecated` since Python " -"3.15. Avoid using this API in a new code to do complex arithmetic: either " -"use the :ref:`Number Protocol ` API or use native complex types, " -"like :c:expr:`double complex`." -msgstr "" - -#: c-api/complex.rst:139 -msgid "" -"Return the sum of two complex numbers, using the C :c:type:`Py_complex` " -"representation." -msgstr "" -"Renvoie la somme de deux nombres complexes, sous la forme " -"d'un :c:type:`Py_complex` en C." - -#: c-api/complex.rst:147 -msgid "" -"Return the difference between two complex numbers, using the " -"C :c:type:`Py_complex` representation." -msgstr "" -"Renvoie la différence de deux nombres complexes, sous la forme " -"d'un :c:type:`Py_complex` en C." - -#: c-api/complex.rst:155 -#, fuzzy -msgid "" -"Return the negation of the complex number *num*, using the " -"C :c:type:`Py_complex` representation." -msgstr "" -"Renvoie l'opposé du nombre complexe *complex*, sous la forme " -"d'un :c:type:`Py_complex` en C." - -#: c-api/complex.rst:163 -msgid "" -"Return the product of two complex numbers, using the C :c:type:`Py_complex` " -"representation." -msgstr "" -"Renvoie le produit de deux nombres complexes, sous la forme " -"d'un :c:type:`Py_complex` en C." - -#: c-api/complex.rst:171 -msgid "" -"Return the quotient of two complex numbers, using the C :c:type:`Py_complex` " -"representation." -msgstr "" -"Renvoie le quotient de deux nombres complexes, sous la forme " -"d'un :c:type:`Py_complex` en C." - -#: c-api/complex.rst:174 -#, fuzzy -msgid "" -"If *divisor* is null, this method returns zero and sets :c:data:`errno` " -"to :c:macro:`!EDOM`." -msgstr "" -"Si *divisor* est nul, cette méthode renvoie zéro et assigne :c:data:`EDOM` " -"à :c:data:`errno`." - -#: c-api/complex.rst:182 -msgid "" -"Return the exponentiation of *num* by *exp*, using the " -"C :c:type:`Py_complex` representation." -msgstr "" -"Renvoie *num* à la puissance *exp*, sous la forme d'un :c:type:`Py_complex` " -"en C." - -#: c-api/complex.rst:185 -#, fuzzy -msgid "" -"If *num* is null and *exp* is not a positive real number, this method " -"returns zero and sets :c:data:`errno` to :c:macro:`!EDOM`." -msgstr "" -"Si *num* est nul et *exp* n'est pas un nombre réel positif, cette méthode " -"renvoie zéro et assigne :c:data:`EDOM` à :c:data:`errno`." - -#: c-api/complex.rst:197 -msgid "Set :c:data:`errno` to :c:macro:`!ERANGE` on overflows." -msgstr "" - -#: c-api/complex.rst:195 -#, fuzzy -msgid "Return the absolute value of the complex number *num*." -msgstr "" -"Renvoie la valeur du nombre complexe *op* sous la forme " -"d'un :c:type:`Py_complex` en C." - -#~ msgid "" -#~ "Python's complex number objects are implemented as two distinct types " -#~ "when viewed from the C API: one is the Python object exposed to Python " -#~ "programs, and the other is a C structure which represents the actual " -#~ "complex number value. The API provides functions for working with both." -#~ msgstr "" -#~ "Les nombres complexes Python sont implémentés comme deux types distincts, " -#~ "lorsqu'ils sont vus de l'API C : l'un est l'objet Python tel qu'il est vu " -#~ "par les programmes Python, et l'autre est une structure C qui représente " -#~ "la valeur exacte du nombre complexe. L'API fournit des fonctions pour " -#~ "travailler avec ces deux représentations." - -#, fuzzy -#~ msgid "" -#~ "The C structure which corresponds to the value portion of a Python " -#~ "complex number object. Most of the functions for dealing with complex " -#~ "number objects use structures of this type as input or output values, as " -#~ "appropriate." -#~ msgstr "" -#~ "Structure C représentant la valeur d'un nombre complexe Python. La " -#~ "majorité des fonctions qui traitent des nombres complexes utilisent cette " -#~ "structure en entrée ou en sortie, selon le cas. Elle est définie par ::" - -#~ msgid "Complex Numbers as Python Objects" -#~ msgstr "Nombres complexes en tant qu'objets Python" - -#~ msgid "object" -#~ msgstr "objet" - -#, fuzzy -#~ msgid "complex number" -#~ msgstr "Objets représentant des nombres complexes" diff --git a/c-api/concrete.po b/c-api/concrete.po deleted file mode 100644 index 9856638274..0000000000 --- a/c-api/concrete.po +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-01-28 14:56+0100\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.2\n" - -#: c-api/concrete.rst:8 -msgid "Concrete Objects Layer" -msgstr "Couche des objets concrets" - -#: c-api/concrete.rst:10 -msgid "" -"The functions in this chapter are specific to certain Python object types. " -"Passing them an object of the wrong type is not a good idea; if you receive " -"an object from a Python program and you are not sure that it has the right " -"type, you must perform a type check first; for example, to check that an " -"object is a dictionary, use :c:func:`PyDict_Check`. The chapter is " -"structured like the \"family tree\" of Python object types." -msgstr "" -"Les fonctions de ce chapitre sont spécifiques à certains types d'objets " -"Python. Leur donner un objet du mauvais type n'est pas une bonne idée, si " -"vous recevez un objet d'un programme Python, et que vous n'êtes pas sûr " -"qu'il soit du bon type, vous devez vérifier son type en premier. Par " -"exemple, pour vérifier qu'un objet est un dictionnaire, " -"utilisez :c:func:`PyDict_Check`. Ce chapitre est organisé comme un arbre " -"généalogique de types d'objets Python." - -#: c-api/concrete.rst:19 -msgid "" -"While the functions described in this chapter carefully check the type of " -"the objects which are passed in, many of them do not check for ``NULL`` " -"being passed instead of a valid object. Allowing ``NULL`` to be passed in " -"can cause memory access violations and immediate termination of the " -"interpreter." -msgstr "" -"Tandis que les fonctions décrites dans ce chapitre vérifient avec soin le " -"type des objets qui leur sont passés, beaucoup d'entre elles ne vérifient " -"pas que ``NULL`` est passé au lieu d'un objet valide. Autoriser ``NULL`` à " -"être passé peut provoquer des violations d'accès à la mémoire et ainsi " -"terminer immédiatement l'interpréteur." - -#: c-api/concrete.rst:28 -msgid "Fundamental Objects" -msgstr "Objets fondamentaux" - -#: c-api/concrete.rst:30 -msgid "" -"This section describes Python type objects and the singleton object ``None``." -msgstr "" -"Cette section décrit les objets de type Python et l'objet singleton ``None``." - -#: c-api/concrete.rst:41 -msgid "Numeric Objects" -msgstr "Objets numériques" - -#: c-api/concrete.rst:56 -msgid "Sequence Objects" -msgstr "Objets séquences" - -#: c-api/concrete.rst:60 -msgid "" -"Generic operations on sequence objects were discussed in the previous " -"chapter; this section deals with the specific kinds of sequence objects that " -"are intrinsic to the Python language." -msgstr "" -"Les opérations génériques sur les objets séquences ont été discutées dans le " -"chapitre précédent. Cette section traite des genres spécifiques d'objets " -"séquences qui sont intrinsèques au langage Python." - -#: c-api/concrete.rst:78 -msgid "Container Objects" -msgstr "Objets conteneurs" - -#: c-api/concrete.rst:91 -msgid "Function Objects" -msgstr "Objets fonctions" - -#: c-api/concrete.rst:102 -msgid "Other Objects" -msgstr "Autres objets" - -#: c-api/concrete.rst:124 -msgid "C API for extension modules" -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "sequence" -#~ msgstr "séquence" - -#~ msgid "mapping" -#~ msgstr "tableau de correspondances" diff --git a/c-api/contextvars.po b/c-api/contextvars.po deleted file mode 100644 index 243613cc7a..0000000000 --- a/c-api/contextvars.po +++ /dev/null @@ -1,223 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2018-08-03 23:47+0200\n" -"Last-Translator: FULL NAME \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" - -#: c-api/contextvars.rst:6 -msgid "Context Variables Objects" -msgstr "" - -#: c-api/contextvars.rst:15 -msgid "" -"In Python 3.7.1 the signatures of all context variables C APIs were " -"**changed** to use :c:type:`PyObject` pointers instead " -"of :c:type:`PyContext`, :c:type:`PyContextVar`, " -"and :c:type:`PyContextToken`, e.g.::" -msgstr "" - -#: c-api/contextvars.rst:26 -msgid "See :issue:`34762` for more details." -msgstr "" - -#: c-api/contextvars.rst:29 -msgid "" -"This section details the public C API for the :mod:`contextvars` module." -msgstr "" - -#: c-api/contextvars.rst:33 -msgid "" -"The C structure used to represent a :class:`contextvars.Context` object." -msgstr "" - -#: c-api/contextvars.rst:38 -msgid "" -"The C structure used to represent a :class:`contextvars.ContextVar` object." -msgstr "" - -#: c-api/contextvars.rst:43 -msgid "The C structure used to represent a :class:`contextvars.Token` object." -msgstr "" - -#: c-api/contextvars.rst:47 -msgid "The type object representing the *context* type." -msgstr "" - -#: c-api/contextvars.rst:51 -msgid "The type object representing the *context variable* type." -msgstr "" - -#: c-api/contextvars.rst:55 -msgid "The type object representing the *context variable token* type." -msgstr "" - -#: c-api/contextvars.rst:58 -msgid "Type-check macros:" -msgstr "Macros pour vérifier les types :" - -#: c-api/contextvars.rst:62 -msgid "" -"Return true if *o* is of type :c:data:`PyContext_Type`. *o* must not be " -"``NULL``. This function always succeeds." -msgstr "" - -#: c-api/contextvars.rst:67 -msgid "" -"Return true if *o* is of type :c:data:`PyContextVar_Type`. *o* must not be " -"``NULL``. This function always succeeds." -msgstr "" - -#: c-api/contextvars.rst:72 -msgid "" -"Return true if *o* is of type :c:data:`PyContextToken_Type`. *o* must not be " -"``NULL``. This function always succeeds." -msgstr "" - -#: c-api/contextvars.rst:76 -msgid "Context object management functions:" -msgstr "" - -#: c-api/contextvars.rst:80 -msgid "" -"Create a new empty context object. Returns ``NULL`` if an error has " -"occurred." -msgstr "" - -#: c-api/contextvars.rst:85 -msgid "" -"Create a shallow copy of the passed *ctx* context object. Returns ``NULL`` " -"if an error has occurred." -msgstr "" - -#: c-api/contextvars.rst:90 -msgid "" -"Create a shallow copy of the current thread context. Returns ``NULL`` if an " -"error has occurred." -msgstr "" - -#: c-api/contextvars.rst:95 -msgid "" -"Set *ctx* as the current context for the current thread. Returns ``0`` on " -"success, and ``-1`` on error." -msgstr "" - -#: c-api/contextvars.rst:100 -msgid "" -"Deactivate the *ctx* context and restore the previous context as the current " -"context for the current thread. Returns ``0`` on success, and ``-1`` on " -"error." -msgstr "" - -#: c-api/contextvars.rst:106 -msgid "" -"Register *callback* as a context object watcher for the current interpreter. " -"Return an ID which may be passed to :c:func:`PyContext_ClearWatcher`. In " -"case of error (e.g. no more watcher IDs available), return ``-1`` and set an " -"exception." -msgstr "" - -#: c-api/contextvars.rst:115 -msgid "" -"Clear watcher identified by *watcher_id* previously returned " -"from :c:func:`PyContext_AddWatcher` for the current interpreter. Return " -"``0`` on success, or ``-1`` and set an exception on error (e.g. if the given " -"*watcher_id* was never registered.)" -msgstr "" - -#: c-api/contextvars.rst:124 -msgid "Enumeration of possible context object watcher events:" -msgstr "" - -#: c-api/contextvars.rst:126 -msgid "" -"``Py_CONTEXT_SWITCHED``: The :term:`current context` has switched to a " -"different context. The object passed to the watch callback is the now-" -"current :class:`contextvars.Context` object, or None if no context is " -"current." -msgstr "" - -#: c-api/contextvars.rst:135 -msgid "" -"Context object watcher callback function. The object passed to the callback " -"is event-specific; see :c:type:`PyContextEvent` for details." -msgstr "" - -#: c-api/contextvars.rst:138 -msgid "" -"If the callback returns with an exception set, it must return ``-1``; this " -"exception will be printed as an unraisable exception " -"using :c:func:`PyErr_FormatUnraisable`. Otherwise it should return ``0``." -msgstr "" - -#: c-api/contextvars.rst:142 -msgid "" -"There may already be a pending exception set on entry to the callback. In " -"this case, the callback should return ``0`` with the same exception still " -"set. This means the callback may not call any other API that can set an " -"exception unless it saves and clears the exception state first, and restores " -"it before returning." -msgstr "" - -#: c-api/contextvars.rst:151 -msgid "Context variable functions:" -msgstr "" - -#: c-api/contextvars.rst:155 -msgid "" -"Create a new ``ContextVar`` object. The *name* parameter is used for " -"introspection and debug purposes. The *def* parameter specifies a default " -"value for the context variable, or ``NULL`` for no default. If an error has " -"occurred, this function returns ``NULL``." -msgstr "" - -#: c-api/contextvars.rst:162 -msgid "" -"Get the value of a context variable. Returns ``-1`` if an error has " -"occurred during lookup, and ``0`` if no error occurred, whether or not a " -"value was found." -msgstr "" - -#: c-api/contextvars.rst:166 -msgid "" -"If the context variable was found, *value* will be a pointer to it. If the " -"context variable was *not* found, *value* will point to:" -msgstr "" - -#: c-api/contextvars.rst:169 -msgid "*default_value*, if not ``NULL``;" -msgstr "" - -#: c-api/contextvars.rst:170 -msgid "the default value of *var*, if not ``NULL``;" -msgstr "" - -#: c-api/contextvars.rst:171 -msgid "``NULL``" -msgstr "``NULL``" - -#: c-api/contextvars.rst:173 -msgid "Except for ``NULL``, the function returns a new reference." -msgstr "" - -#: c-api/contextvars.rst:177 -msgid "" -"Set the value of *var* to *value* in the current context. Returns a new " -"token object for this change, or ``NULL`` if an error has occurred." -msgstr "" - -#: c-api/contextvars.rst:182 -msgid "" -"Reset the state of the *var* context variable to that it was in " -"before :c:func:`PyContextVar_Set` that returned the *token* was called. This " -"function returns ``0`` on success and ``-1`` on error." -msgstr "" diff --git a/c-api/conversion.po b/c-api/conversion.po deleted file mode 100644 index 3c85a55c82..0000000000 --- a/c-api/conversion.po +++ /dev/null @@ -1,340 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/conversion.rst:6 -msgid "String conversion and formatting" -msgstr "Conversion et formatage de chaînes" - -#: c-api/conversion.rst:8 -msgid "Functions for number conversion and formatted string output." -msgstr "" -"Fonctions de conversion pour les nombres et pour la sortie des chaînes " -"formatées." - -#: c-api/conversion.rst:13 -msgid "" -"Output not more than *size* bytes to *str* according to the format string " -"*format* and the extra arguments. See the Unix man " -"page :manpage:`snprintf(3)`." -msgstr "" - -#: c-api/conversion.rst:19 -msgid "" -"Output not more than *size* bytes to *str* according to the format string " -"*format* and the variable argument list *va*. Unix man " -"page :manpage:`vsnprintf(3)`." -msgstr "" - -#: c-api/conversion.rst:23 -msgid "" -":c:func:`PyOS_snprintf` and :c:func:`PyOS_vsnprintf` wrap the Standard C " -"library functions :c:func:`snprintf` and :c:func:`vsnprintf`. Their purpose " -"is to guarantee consistent behavior in corner cases, which the Standard C " -"functions do not." -msgstr "" - -#: c-api/conversion.rst:28 -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``. 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:34 -msgid "" -"The return value (*rv*) for these functions should be interpreted as follows:" -msgstr "" - -#: 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: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:44 -msgid "" -"When ``rv < 0``, the output conversion failed and ``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:49 -msgid "" -"The following functions provide locale-independent string to number " -"conversions." -msgstr "" - -#: c-api/conversion.rst:53 -msgid "" -"Convert the initial part of the string in ``str`` to an :c:expr:`unsigned " -"long` value according to the given ``base``, which must be between ``2`` and " -"``36`` inclusive, or be the special value ``0``." -msgstr "" - -#: c-api/conversion.rst:57 -msgid "" -"Leading white space and case of characters are ignored. If ``base`` is zero " -"it looks for a leading ``0b``, ``0o`` or ``0x`` to tell which base. If " -"these are absent it defaults to ``10``. Base must be 0 or between 2 and 36 " -"(inclusive). If ``ptr`` is non-``NULL`` it will contain a pointer to the " -"end of the scan." -msgstr "" - -#: c-api/conversion.rst:63 -msgid "" -"If the converted value falls out of range of corresponding return type, " -"range error occurs (:c:data:`errno` is set to :c:macro:`!ERANGE`) " -"and :c:macro:`!ULONG_MAX` is returned. If no conversion can be performed, " -"``0`` is returned." -msgstr "" - -#: c-api/conversion.rst:68 -msgid "See also the Unix man page :manpage:`strtoul(3)`." -msgstr "" - -#: c-api/conversion.rst:75 -msgid "" -"Convert the initial part of the string in ``str`` to an :c:expr:`long` value " -"according to the given ``base``, which must be between ``2`` and ``36`` " -"inclusive, or be the special value ``0``." -msgstr "" - -#: c-api/conversion.rst:79 -msgid "" -"Same as :c:func:`PyOS_strtoul`, but return a :c:expr:`long` value instead " -"and :c:macro:`LONG_MAX` on overflows." -msgstr "" - -#: c-api/conversion.rst:82 -msgid "See also the Unix man page :manpage:`strtol(3)`." -msgstr "" - -#: c-api/conversion.rst:89 -msgid "" -"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:95 -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:99 -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 " -"segment of the string is the valid representation of a floating-point " -"number, set ``*endptr`` to point to the beginning of the string, raise " -"ValueError, and return ``-1.0``." -msgstr "" - -#: c-api/conversion.rst:106 -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 " -"``overflow_exception`` is ``NULL`` return :c:macro:`!INFINITY` (with an " -"appropriate sign) and don't set any exception. Otherwise, " -"``overflow_exception`` must point to a Python exception object; raise that " -"exception and return ``-1.0``. In both cases, set ``*endptr`` to point to " -"the first character after the converted value." -msgstr "" - -#: c-api/conversion.rst:114 -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:123 -msgid "" -"Convert a :c:expr:`double` *val* to a string using supplied *format_code*, " -"*precision*, and *flags*." -msgstr "" - -#: c-api/conversion.rst:126 -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:131 -msgid "*flags* can be zero or more of the following values or-ed together:" -msgstr "" - -#: c-api/conversion.rst:137 -msgid "" -"Always precede the returned string with a sign character, even if *val* is " -"non-negative." -msgstr "" - -#: c-api/conversion.rst:142 -msgid "Ensure that the returned string will not look like an integer." -msgstr "" - -#: c-api/conversion.rst:146 -msgid "" -"Apply \"alternate\" formatting rules. See the documentation for " -"the :c:func:`PyOS_snprintf` ``'#'`` specifier for details." -msgstr "" - -#: c-api/conversion.rst:152 -msgid "Negative zero is converted to positive zero." -msgstr "" - -#: c-api/conversion.rst:156 -msgid "" -"If *ptype* is non-``NULL``, then the value it points to will be set to one " -"of the following constants depending on the type of *val*:" -msgstr "" - -#: c-api/conversion.rst:163 -msgid "*\\*ptype*" -msgstr "" - -#: c-api/conversion.rst:164 -msgid "type of *val*" -msgstr "" - -#: c-api/conversion.rst:166 -msgid "finite number" -msgstr "" - -#: c-api/conversion.rst:168 -msgid "infinite number" -msgstr "" - -#: c-api/conversion.rst:170 -msgid "not a number" -msgstr "" - -#: c-api/conversion.rst:172 -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:182 -msgid "" -"Case insensitive comparison of strings. These functions work almost " -"identically to :c:func:`!strcmp` and :c:func:`!strncmp` (respectively), " -"except that they ignore the case of ASCII characters." -msgstr "" - -#: c-api/conversion.rst:186 -msgid "" -"Return ``0`` if the strings are equal, a negative value if *str1* sorts " -"lexicographically before *str2*, or a positive value if it sorts after." -msgstr "" - -#: c-api/conversion.rst:189 -msgid "" -"In the *str1* or *str2* arguments, a NUL byte marks the end of the string. " -"For :c:func:`!PyOS_mystrnicmp`, the *size* argument gives the maximum size " -"of the string, as if NUL was present at the index given by *size*." -msgstr "" - -#: c-api/conversion.rst:193 -msgid "These functions do not use the locale." -msgstr "" - -#: c-api/conversion.rst:199 -msgid "Case insensitive comparison of strings." -msgstr "" - -#: c-api/conversion.rst:201 -msgid "" -"On Windows, these are aliases of :c:func:`!stricmp` and :c:func:`!strnicmp`, " -"respectively." -msgstr "" - -#: c-api/conversion.rst:204 -msgid "" -"On other platforms, they are aliases of :c:func:`PyOS_mystricmp` " -"and :c:func:`PyOS_mystrnicmp`, respectively." -msgstr "" - -#: c-api/conversion.rst:209 -msgid "Character classification and conversion" -msgstr "" - -#: c-api/conversion.rst:211 -msgid "" -"The following macros provide locale-independent (unlike the C standard " -"library ``ctype.h``) character classification and conversion. The argument " -"must be a signed or unsigned :c:expr:`char`." -msgstr "" - -#: c-api/conversion.rst:218 -msgid "Return true if the character *c* is an alphanumeric character." -msgstr "" - -#: c-api/conversion.rst:223 -msgid "" -"Return true if the character *c* is an alphabetic character (``a-z`` and ``A-" -"Z``)." -msgstr "" - -#: c-api/conversion.rst:228 -msgid "Return true if the character *c* is a decimal digit (``0-9``)." -msgstr "" - -#: c-api/conversion.rst:233 -msgid "Return true if the character *c* is a lowercase ASCII letter (``a-z``)." -msgstr "" - -#: c-api/conversion.rst:238 -msgid "" -"Return true if the character *c* is an uppercase ASCII letter (``A-Z``)." -msgstr "" - -#: c-api/conversion.rst:243 -msgid "" -"Return true if the character *c* is a whitespace character (space, tab, " -"carriage return, newline, vertical tab, or form feed)." -msgstr "" - -#: c-api/conversion.rst:249 -msgid "" -"Return true if the character *c* is a hexadecimal digit (``0-9``, ``a-f``, " -"and ``A-F``)." -msgstr "" - -#: c-api/conversion.rst:255 -msgid "Return the lowercase equivalent of the character *c*." -msgstr "" - -#: c-api/conversion.rst:260 -msgid "Return the uppercase equivalent of the character *c*." -msgstr "" diff --git a/c-api/coro.po b/c-api/coro.po deleted file mode 100644 index 7ea10961be..0000000000 --- a/c-api/coro.po +++ /dev/null @@ -1,56 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -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: 2018-10-04 12:24+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/coro.rst:6 -msgid "Coroutine Objects" -msgstr "Objets coroutines" - -#: c-api/coro.rst:10 -msgid "" -"Coroutine objects are what functions declared with an ``async`` keyword " -"return." -msgstr "" -"Les objets coroutines sont les objets renvoyés par les fonctions déclarées " -"avec le mot clef ``async``." - -#: c-api/coro.rst:16 -msgid "The C structure used for coroutine objects." -msgstr "La structure C utilisée pour les objets coroutine." - -#: c-api/coro.rst:21 -msgid "The type object corresponding to coroutine objects." -msgstr "L'objet type correspondant aux objets coroutines." - -#: c-api/coro.rst:26 -#, fuzzy -msgid "" -"Return true if *ob*'s type is :c:type:`PyCoro_Type`; *ob* must not be " -"``NULL``. This function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type *PyCoro_Type*. *ob* ne doit pas être *NULL*." - -#: c-api/coro.rst:32 -#, fuzzy -msgid "" -"Create and return a new coroutine object based on the *frame* object, with " -"``__name__`` and ``__qualname__`` set to *name* and *qualname*. A reference " -"to *frame* is stolen by this function. The *frame* argument must not be " -"``NULL``." -msgstr "" -"Crée et renvoie un nouvel objet coroutine basé sur l'objet *frame*, avec " -"``__name__`` et ``__qualname__`` respectivement assignés de *name* et " -"*qualname*. Une référence à *frame* est empruntée par cette fonction. " -"L'argument *frame* ne doit pas être *NULL*." diff --git a/c-api/curses.po b/c-api/curses.po deleted file mode 100644 index b9931e32ff..0000000000 --- a/c-api/curses.po +++ /dev/null @@ -1,146 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/curses.rst:4 -msgid "Curses C API" -msgstr "" - -#: c-api/curses.rst:6 -msgid "" -":mod:`curses` exposes a small C interface for extension modules. Consumers " -"must include the header file :file:`py_curses.h` (which is not included by " -"default by :file:`Python.h`) and :c:func:`import_curses` must be invoked, " -"usually as part of the module initialisation function, to " -"populate :c:var:`PyCurses_API`." -msgstr "" - -#: c-api/curses.rst:14 -msgid "" -"Neither the C API nor the pure Python :mod:`curses` module are compatible " -"with subinterpreters." -msgstr "" - -#: c-api/curses.rst:19 -msgid "" -"Import the curses C API. The macro does not need a semi-colon to be called." -msgstr "" - -#: c-api/curses.rst:21 -msgid "On success, populate the :c:var:`PyCurses_API` pointer." -msgstr "" - -#: c-api/curses.rst:23 -msgid "" -"On failure, set :c:var:`PyCurses_API` to NULL and set an exception. The " -"caller must check if an error occurred via :c:func:`PyErr_Occurred`:" -msgstr "" - -#: c-api/curses.rst:34 -msgid "" -"Dynamically allocated object containing the curses C API. This variable is " -"only available once :c:macro:`import_curses` succeeds." -msgstr "" - -#: c-api/curses.rst:37 -msgid "``PyCurses_API[0]`` corresponds to :c:data:`PyCursesWindow_Type`." -msgstr "" - -#: c-api/curses.rst:39 -msgid "" -"``PyCurses_API[1]``, ``PyCurses_API[2]``, and ``PyCurses_API[3]`` are " -"pointers to predicate functions of type ``int (*)(void)``." -msgstr "" - -#: c-api/curses.rst:42 -msgid "" -"When called, these predicates return " -"whether :func:`curses.setupterm`, :func:`curses.initscr`, " -"and :func:`curses.start_color` have been called respectively." -msgstr "" - -#: c-api/curses.rst:46 -msgid "" -"See also the convenience " -"macros :c:macro:`PyCursesSetupTermCalled`, :c:macro:`PyCursesInitialised`, " -"and :c:macro:`PyCursesInitialisedColor`." -msgstr "" - -#: c-api/curses.rst:51 -msgid "" -"The number of entries in this structure is subject to changes. Consider " -"using :c:macro:`PyCurses_API_pointers` to check if new fields are available " -"or not." -msgstr "" - -#: c-api/curses.rst:58 -msgid "" -"The number of accessible fields (``4``) in :c:var:`PyCurses_API`. This " -"number is incremented whenever new fields are added." -msgstr "" - -#: c-api/curses.rst:64 -msgid "" -"The :ref:`heap type ` corresponding to :class:`curses.window`." -msgstr "" - -#: c-api/curses.rst:69 -msgid "" -"Return true if *op* is a :class:`curses.window` instance, false otherwise." -msgstr "" - -#: c-api/curses.rst:72 -msgid "" -"The following macros are convenience macros expanding into C statements. In " -"particular, they can only be used as ``macro;`` or ``macro``, but not " -"``macro()`` or ``macro();``." -msgstr "" - -#: c-api/curses.rst:78 -msgid "Macro checking if :func:`curses.setupterm` has been called." -msgstr "" - -#: c-api/curses.rst:97 c-api/curses.rst:114 -msgid "The macro expansion is roughly equivalent to:" -msgstr "" - -#: c-api/curses.rst:95 -msgid "Macro checking if :func:`curses.initscr` has been called." -msgstr "" - -#: c-api/curses.rst:112 -msgid "Macro checking if :func:`curses.start_color` has been called." -msgstr "" - -#: c-api/curses.rst:128 -msgid "Internal data" -msgstr "" - -#: c-api/curses.rst:130 -msgid "" -"The following objects are exposed by the C API but should be considered " -"internal-only." -msgstr "" - -#: c-api/curses.rst:135 -msgid "Name of the curses capsule to pass to :c:func:`PyCapsule_Import`." -msgstr "" - -#: c-api/curses.rst:137 -msgid "Internal usage only. Use :c:macro:`import_curses` instead." -msgstr "" diff --git a/c-api/datetime.po b/c-api/datetime.po deleted file mode 100644 index 413fcd7f4d..0000000000 --- a/c-api/datetime.po +++ /dev/null @@ -1,458 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-12-11 11:57+0100\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.3\n" -"X-Poedit-Bookmarks: -1,-1,-1,-1,-1,-1,-1,3,-1,-1\n" - -#: c-api/datetime.rst:6 -msgid "DateTime Objects" -msgstr "Objets DateTime" - -#: c-api/datetime.rst:8 -#, fuzzy -msgid "" -"Various date and time objects are supplied by the :mod:`datetime` module. " -"Before using any of these functions, the header file :file:`datetime.h` must " -"be included in your source (note that this is not included " -"by :file:`Python.h`), and the macro :c:macro:`PyDateTime_IMPORT` must be " -"invoked, usually as part of the module initialisation function. The macro " -"puts a pointer to a C structure into a static " -"variable, :c:data:`PyDateTimeAPI`, that is used by the following macros." -msgstr "" -"De nombreux objets *date* et *time* sont exposés par le " -"module :mod:`DateTime`. Avant d'utiliser une de ces fonctions, le fichier " -"d'en-tête :file:`datetime.h` doit être inclus dans vos sources (veuillez " -"noter qu'il n'est pas inclus par le fichier :file:`Python.h`) et la " -"macro :c:macro:`PyDateTime_IMPORT` doit être invoquée, généralement lors de " -"la fonction d'initialisation du module. La macro crée un pointeur vers une " -"structure C et place celui-ci dans une variable " -"statique, :c:data:`PyDateTimeAPI`, qui est utilisée par les macros suivantes." - -#: c-api/datetime.rst:18 -msgid "Import the datetime C API." -msgstr "" - -#: c-api/datetime.rst:20 -msgid "" -"On success, populate the :c:var:`PyDateTimeAPI` pointer. On failure, " -"set :c:var:`PyDateTimeAPI` to ``NULL`` and set an exception. The caller must " -"check if an error occurred via :c:func:`PyErr_Occurred`:" -msgstr "" - -#: c-api/datetime.rst:31 -msgid "This is not compatible with subinterpreters." -msgstr "" - -#: c-api/datetime.rst:35 -msgid "This macro is now thread safe." -msgstr "" - -#: c-api/datetime.rst:39 -msgid "Structure containing the fields for the datetime C API." -msgstr "" - -#: c-api/datetime.rst:41 -msgid "The fields of this structure are private and subject to change." -msgstr "" - -#: c-api/datetime.rst:43 -msgid "Do not use this directly; prefer ``PyDateTime_*`` APIs instead." -msgstr "" - -#: c-api/datetime.rst:47 -msgid "Dynamically allocated object containing the datetime C API." -msgstr "" - -#: c-api/datetime.rst:49 -msgid "" -"This variable is only available once :c:macro:`PyDateTime_IMPORT` succeeds." -msgstr "" - -#: c-api/datetime.rst:53 -msgid "" -"This variable should not be accessed directly as direct access is not thread-" -"safe. Use :c:func:`PyDateTime_IMPORT` instead." -msgstr "" - -#: c-api/datetime.rst:58 -msgid "This subtype of :c:type:`PyObject` represents a Python date object." -msgstr "" - -#: c-api/datetime.rst:62 -msgid "This subtype of :c:type:`PyObject` represents a Python datetime object." -msgstr "" - -#: c-api/datetime.rst:66 -msgid "This subtype of :c:type:`PyObject` represents a Python time object." -msgstr "" - -#: c-api/datetime.rst:70 -msgid "" -"This subtype of :c:type:`PyObject` represents the difference between two " -"datetime values." -msgstr "" - -#: c-api/datetime.rst:74 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python date type; it " -"is the same object as :class:`datetime.date` in the Python layer." -msgstr "" - -#: c-api/datetime.rst:79 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python datetime type; " -"it is the same object as :class:`datetime.datetime` in the Python layer." -msgstr "" - -#: c-api/datetime.rst:84 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python time type; it " -"is the same object as :class:`datetime.time` in the Python layer." -msgstr "" - -#: c-api/datetime.rst:89 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python type for the " -"difference between two datetime values; it is the same object " -"as :class:`datetime.timedelta` in the Python layer." -msgstr "" - -#: c-api/datetime.rst:95 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python time zone info " -"type; it is the same object as :class:`datetime.tzinfo` in the Python layer." -msgstr "" - -#: c-api/datetime.rst:99 -msgid "Macro for access to the UTC singleton:" -msgstr "Macro pour accéder au singleton UTC :" - -#: c-api/datetime.rst:103 -msgid "" -"Returns the time zone singleton representing UTC, the same object " -"as :attr:`datetime.timezone.utc`." -msgstr "" -"Renvoie le singleton du fuseau horaire UTC, qui est le même objet " -"que :attr:`datetime.timezone.utc`." - -#: c-api/datetime.rst:109 -msgid "Type-check macros:" -msgstr "Macros pour vérifier les types :" - -#: c-api/datetime.rst:113 -#, fuzzy -msgid "" -"Return true if *ob* is of type :c:data:`PyDateTime_DateType` or a subtype " -"of :c:data:`!PyDateTime_DateType`. *ob* must not be ``NULL``. This " -"function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateType` ou un sous-" -"type de :c:data:`PyDateTime_DateType`. *ob* ne doit pas être *NULL*." - -#: c-api/datetime.rst:120 -#, fuzzy -msgid "" -"Return true if *ob* is of type :c:data:`PyDateTime_DateType`. *ob* must not " -"be ``NULL``. This function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateType`. *ob* ne doit " -"pas être *NULL*." - -#: c-api/datetime.rst:126 -#, fuzzy -msgid "" -"Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType` or a " -"subtype of :c:data:`!PyDateTime_DateTimeType`. *ob* must not be ``NULL``. " -"This function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateTimeType` ou un " -"sous-type de :c:data:`PyDateTime_DateTimeType`. *ob* ne doit pas être *NULL*." - -#: c-api/datetime.rst:133 -#, fuzzy -msgid "" -"Return true if *ob* is of type :c:data:`PyDateTime_DateTimeType`. *ob* must " -"not be ``NULL``. This function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DateTimeType`. *ob* ne " -"doit pas être *NULL*." - -#: c-api/datetime.rst:139 -#, fuzzy -msgid "" -"Return true if *ob* is of type :c:data:`PyDateTime_TimeType` or a subtype " -"of :c:data:`!PyDateTime_TimeType`. *ob* must not be ``NULL``. This " -"function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TimeType` ou un sous-" -"type de :c:data:`PyDateTime_TimeType`. *ob* ne doit pas être *NULL*." - -#: c-api/datetime.rst:146 -#, fuzzy -msgid "" -"Return true if *ob* is of type :c:data:`PyDateTime_TimeType`. *ob* must not " -"be ``NULL``. This function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TimeType`. *ob* ne doit " -"pas être *NULL*." - -#: c-api/datetime.rst:152 -#, fuzzy -msgid "" -"Return true if *ob* is of type :c:data:`PyDateTime_DeltaType` or a subtype " -"of :c:data:`!PyDateTime_DeltaType`. *ob* must not be ``NULL``. This " -"function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DeltaType` ou un sous-" -"type de :c:data:`PyDateTime_DeltaType`. *ob* ne doit pas être *NULL*." - -#: c-api/datetime.rst:159 -#, fuzzy -msgid "" -"Return true if *ob* is of type :c:data:`PyDateTime_DeltaType`. *ob* must not " -"be ``NULL``. This function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_DeltaType`. *ob* ne " -"doit pas être *NULL*." - -#: c-api/datetime.rst:165 -#, fuzzy -msgid "" -"Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType` or a subtype " -"of :c:data:`!PyDateTime_TZInfoType`. *ob* must not be ``NULL``. This " -"function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TZInfoType` ou un sous-" -"type de :c:data:`PyDateTime_TZInfoType`. *ob* ne doit pas être *NULL*." - -#: c-api/datetime.rst:172 -#, fuzzy -msgid "" -"Return true if *ob* is of type :c:data:`PyDateTime_TZInfoType`. *ob* must " -"not be ``NULL``. This function always succeeds." -msgstr "" -"Renvoie vrai si *ob* est de type :c:data:`PyDateTime_TZInfoType`. *ob* ne " -"doit pas être *NULL*." - -#: c-api/datetime.rst:176 -msgid "Macros to create objects:" -msgstr "Macros pour créer des objets :" - -#: c-api/datetime.rst:180 -msgid "" -"Return a :class:`datetime.date` object with the specified year, month and " -"day." -msgstr "" -"Renvoie un objet :class:`datetime.date` avec l'année, le mois et le jour " -"spécifiés." - -#: c-api/datetime.rst:185 -msgid "" -"Return a :class:`datetime.datetime` object with the specified year, month, " -"day, hour, minute, second and microsecond." -msgstr "" -"Renvoie un objet :class:`datetime.datetime` avec l'année, le mois, le jour, " -"l'heure, la minute, la seconde et la microseconde spécifiés." - -#: c-api/datetime.rst:191 -msgid "" -"Return a :class:`datetime.datetime` object with the specified year, month, " -"day, hour, minute, second, microsecond and fold." -msgstr "" -"Renvoie un objet :class:`datetime.datetime` avec l'année, le mois, le jour, " -"l'heure, la minute, la seconde, la microseconde et le pli (*fold* en " -"anglais) spécifiés." - -#: c-api/datetime.rst:199 -msgid "" -"Return a :class:`datetime.time` object with the specified hour, minute, " -"second and microsecond." -msgstr "" -"Renvoie un objet :class:`datetime.time` avec l'heure, la minute, la seconde " -"et la microseconde spécifiées." - -#: c-api/datetime.rst:205 -msgid "" -"Return a :class:`datetime.time` object with the specified hour, minute, " -"second, microsecond and fold." -msgstr "" -"Renvoie un objet :class:`datetime.time` avec l'heure, la minute, la seconde, " -"la microseconde et le pli (*fold* en anglais) spécifiés." - -#: c-api/datetime.rst:213 -msgid "" -"Return a :class:`datetime.timedelta` object representing the given number of " -"days, seconds and microseconds. Normalization is performed so that the " -"resulting number of microseconds and seconds lie in the ranges documented " -"for :class:`datetime.timedelta` objects." -msgstr "" -"Renvoie un objet :class:`datetime.timedelta` représentant le nombre passé en " -"paramètre de jours, de secondes et de microsecondes. Le résultat est " -"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:221 -msgid "" -"Return a :class:`datetime.timezone` object with an unnamed fixed offset " -"represented by the *offset* argument." -msgstr "" -"Renvoie un objet :class:`datetime.timezone` avec un décalage anonyme fixe " -"représenté par l'argument *offset*." - -#: c-api/datetime.rst:229 -msgid "" -"Return a :class:`datetime.timezone` object with a fixed offset represented " -"by the *offset* argument and with tzname *name*." -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:235 -#, fuzzy -msgid "" -"Macros to extract fields from date objects. The argument must be an " -"instance of :c:type:`PyDateTime_Date`, including subclasses (such " -"as :c:type:`PyDateTime_DateTime`). The argument must not be ``NULL``, and " -"the type is not checked:" -msgstr "" -"Macros pour extraire les champs des objets *date*. L'argument doit être une " -"instance de :c:data:`PyDateTime_Date`, ou une sous-classe (telle " -"que :c:data:`PyDateTime_DateTime`). L'argument ne doit pas être *NULL*, et " -"le type n'est pas vérifié :" - -#: c-api/datetime.rst:242 -msgid "Return the year, as a positive int." -msgstr "Renvoie l'année, sous forme d'entier positif." - -#: c-api/datetime.rst:247 -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:252 -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:255 -#, fuzzy -msgid "" -"Macros to extract fields from datetime objects. The argument must be an " -"instance of :c:type:`PyDateTime_DateTime`, including subclasses. The " -"argument must not be ``NULL``, and the type is not checked:" -msgstr "" -"Macros pour extraire les champs des objets *datetime*. L'argument doit être " -"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:299 -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:304 -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:309 -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:314 -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:319 -#, 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:326 -msgid "Return the tzinfo (which may be ``None``)." -msgstr "" - -#: c-api/datetime.rst:293 -#, fuzzy -msgid "" -"Macros to extract fields from time objects. The argument must be an " -"instance of :c:type:`PyDateTime_Time`, including subclasses. The argument " -"must not be ``NULL``, and the type is not checked:" -msgstr "" -"Macros pour extraire les champs des objets *time*. L'argument doit être une " -"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:331 -#, fuzzy -msgid "" -"Macros to extract fields from time delta objects. The argument must be an " -"instance of :c:type:`PyDateTime_Delta`, including subclasses. The argument " -"must not be ``NULL``, and the type is not checked:" -msgstr "" -"Macros pour extraire les champs des objets *time delta*. L'argument doit " -"ê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:337 -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:344 -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:351 -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:356 -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:360 -#, fuzzy -msgid "" -"Create and return a new :class:`datetime.datetime` object given an argument " -"tuple suitable for passing to :meth:`datetime.datetime.fromtimestamp`." -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:366 -#, fuzzy -msgid "" -"Create and return a new :class:`datetime.date` object given an argument " -"tuple suitable for passing to :meth:`datetime.date.fromtimestamp`." -msgstr "" -"Crée et renvoie un nouvel objet :class:`datetime.date` à partir d'un *n*-" -"uplet qui peut être passé à :meth:`datetime.date.fromtimestamp()`." - -#: c-api/datetime.rst:371 -msgid "Internal data" -msgstr "" - -#: c-api/datetime.rst:373 -msgid "" -"The following symbols are exposed by the C API but should be considered " -"internal-only." -msgstr "" - -#: c-api/datetime.rst:378 -msgid "Name of the datetime capsule to pass to :c:func:`PyCapsule_Import`." -msgstr "" - -#: c-api/datetime.rst:380 -msgid "Internal usage only. Use :c:macro:`PyDateTime_IMPORT` instead." -msgstr "" diff --git a/c-api/descriptor.po b/c-api/descriptor.po deleted file mode 100644 index 841c1e1c52..0000000000 --- a/c-api/descriptor.po +++ /dev/null @@ -1,257 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-02-15 00:32+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/descriptor.rst:6 -msgid "Descriptor Objects" -msgstr "Les descripteurs" - -#: c-api/descriptor.rst:8 -msgid "" -"\"Descriptors\" are objects that describe some attribute of an object. They " -"are found in the dictionary of type objects." -msgstr "" -"Les \"Descripteurs\" sont des objets décrivant des attributs pour un objet. " -"Ils se trouvent dans le dictionnaire du type de l'objet." - -#: c-api/descriptor.rst:13 -msgid "" -"Create a new get-set descriptor for extension type *type* from " -"the :c:type:`PyGetSetDef` structure *getset*." -msgstr "" - -#: c-api/descriptor.rst:16 -msgid "" -"Get-set descriptors expose attributes implemented by C getter and setter " -"functions rather than stored directly in the instance. This is the same kind " -"of descriptor created for entries in :c:member:`~PyTypeObject.tp_getset`, " -"and it appears in Python as a :class:`types.GetSetDescriptorType` object." -msgstr "" - -#: c-api/descriptor.rst:34 c-api/descriptor.rst:96 c-api/descriptor.rst:118 -msgid "" -"On success, return a :term:`strong reference` to the descriptor. Return " -"``NULL`` with an exception set on failure." -msgstr "" - -#: c-api/descriptor.rst:26 -msgid "" -"Create a new member descriptor for extension type *type* from " -"the :c:type:`PyMemberDef` structure *member*." -msgstr "" - -#: c-api/descriptor.rst:29 -msgid "" -"Member descriptors expose fields in the type's C struct as Python " -"attributes. This is the same kind of descriptor created for entries " -"in :c:member:`~PyTypeObject.tp_members`, and it appears in Python as " -"a :class:`types.MemberDescriptorType` object." -msgstr "" - -#: c-api/descriptor.rst:39 -msgid "" -"The type object for member descriptor objects created " -"from :c:type:`PyMemberDef` structures. These descriptors expose fields of a " -"C struct as attributes on a type, and correspond " -"to :class:`types.MemberDescriptorType` objects in Python." -msgstr "" - -#: c-api/descriptor.rst:48 -msgid "" -"The type object for get/set descriptor objects created " -"from :c:type:`PyGetSetDef` structures. These descriptors implement " -"attributes whose value is computed by C getter and setter functions, and are " -"used for many built-in type attributes. They correspond " -"to :class:`types.GetSetDescriptorType` objects in Python." -msgstr "" - -#: c-api/descriptor.rst:57 -msgid "" -"Create a new method descriptor for extension type *type* from " -"the :c:type:`PyMethodDef` structure *meth*." -msgstr "" - -#: c-api/descriptor.rst:60 -msgid "" -"Method descriptors expose C functions as methods on a type. This is the same " -"kind of descriptor created for entries " -"in :c:member:`~PyTypeObject.tp_methods`, and it appears in Python as " -"a :class:`types.MethodDescriptorType` object." -msgstr "" - -#: c-api/descriptor.rst:70 -msgid "" -"The type object for method descriptor objects created " -"from :c:type:`PyMethodDef` structures. These descriptors expose C functions " -"as methods on a type, and correspond to :class:`types.MethodDescriptorType` " -"objects in Python." -msgstr "" - -#: c-api/descriptor.rst:78 -msgid "Describes a slot wrapper used by :c:func:`PyDescr_NewWrapper`." -msgstr "" - -#: c-api/descriptor.rst:80 -msgid "" -"Each ``wrapperbase`` record stores the Python-visible name and metadata for " -"a special method implemented by a type slot, together with the wrapper " -"function used to adapt that slot to Python's calling convention." -msgstr "" - -#: c-api/descriptor.rst:86 -msgid "" -"Create a new wrapper descriptor for extension type *type* from " -"the :c:struct:`wrapperbase` structure *base* and the wrapped slot function " -"pointer *wrapped*." -msgstr "" - -#: c-api/descriptor.rst:91 -msgid "" -"Wrapper descriptors expose special methods implemented by type slots. This " -"is the same kind of descriptor that CPython creates for slot-based special " -"methods such as ``__repr__`` or ``__add__``, and it appears in Python as " -"a :class:`types.WrapperDescriptorType` object." -msgstr "" - -#: c-api/descriptor.rst:101 -msgid "" -"The type object for wrapper descriptor objects created " -"by :c:func:`PyDescr_NewWrapper` and :c:func:`PyWrapper_New`. Wrapper " -"descriptors are used internally to expose special methods implemented via " -"wrapper structures, and appear in Python " -"as :class:`types.WrapperDescriptorType` objects." -msgstr "" - -#: c-api/descriptor.rst:110 -msgid "" -"Create a new class method descriptor for extension type *type* from " -"the :c:type:`PyMethodDef` structure *method*." -msgstr "" - -#: c-api/descriptor.rst:113 -msgid "" -"Class method descriptors expose C methods that receive the class rather than " -"an instance when accessed. This is the same kind of descriptor created for " -"``METH_CLASS`` entries in :c:member:`~PyTypeObject.tp_methods`, and it " -"appears in Python as a :class:`types.ClassMethodDescriptorType` object." -msgstr "" - -#: c-api/descriptor.rst:123 -#, fuzzy -msgid "" -"Return non-zero if the descriptor object *descr* describes a data attribute, " -"or ``0`` if it describes a method. *descr* must be a descriptor object; " -"there is no error checking." -msgstr "" -"Renvoie vrai si le descripteur *descr* décrit un attribut de donnée, ou faux " -"s'il décrit une méthode. *descr* doit être un objet descripteur. Il n'y a " -"pas de vérification d'erreur." - -#: c-api/descriptor.rst:130 -msgid "" -"Create a new bound wrapper object from the wrapper descriptor *d* and the " -"instance *self*." -msgstr "" - -#: c-api/descriptor.rst:133 -msgid "" -"This is the bound form of a wrapper descriptor created " -"by :c:func:`PyDescr_NewWrapper`. CPython creates these objects when a slot " -"wrapper is accessed through an instance, and they appear in Python " -"as :class:`types.MethodWrapperType` objects." -msgstr "" - -#: c-api/descriptor.rst:138 -msgid "" -"On success, return a :term:`strong reference` to the wrapper object. Return " -"``NULL`` with an exception set on failure." -msgstr "" - -#: c-api/descriptor.rst:143 -msgid "This is a macro including the common fields for a descriptor object." -msgstr "" - -#: c-api/descriptor.rst:146 -msgid "" -"This was included in Python's C API by mistake; do not use it in extensions. " -"For creating custom descriptor objects, create a class implementing the " -"descriptor protocol (:c:member:`~PyTypeObject.tp_descr_get` " -"and :c:member:`~PyTypeObject.tp_descr_set`)." -msgstr "" - -#: c-api/descriptor.rst:155 -msgid "Built-in descriptors" -msgstr "" - -#: c-api/descriptor.rst:159 -msgid "" -"The type object for property objects. This is the same object " -"as :class:`property` in the Python layer." -msgstr "" - -#: c-api/descriptor.rst:165 -msgid "" -"The type object for super objects. This is the same object as :class:`super` " -"in the Python layer." -msgstr "" - -#: c-api/descriptor.rst:171 -msgid "" -"The type of class method objects. This is the same object " -"as :class:`classmethod` in the Python layer." -msgstr "" - -#: c-api/descriptor.rst:177 -msgid "" -"The type object for C-level class method descriptor objects. This is the " -"type of the descriptors created for :func:`classmethod` defined in C " -"extension types, and corresponds to :class:`types.ClassMethodDescriptorType` " -"objects in Python." -msgstr "" - -#: c-api/descriptor.rst:185 -msgid "" -"Create a new :class:`classmethod` object wrapping *callable*. *callable* " -"must be a callable object and must not be ``NULL``." -msgstr "" - -#: c-api/descriptor.rst:188 -msgid "" -"On success, this function returns a :term:`strong reference` to a new class " -"method descriptor. On failure, this function returns ``NULL`` with an " -"exception set." -msgstr "" - -#: c-api/descriptor.rst:195 -msgid "" -"The type of static method objects. This is the same object " -"as :class:`staticmethod` in the Python layer." -msgstr "" - -#: c-api/descriptor.rst:201 -msgid "" -"Create a new :class:`staticmethod` object wrapping *callable*. *callable* " -"must be a callable object and must not be ``NULL``." -msgstr "" - -#: c-api/descriptor.rst:204 -msgid "" -"On success, this function returns a :term:`strong reference` to a new static " -"method descriptor. On failure, this function returns ``NULL`` with an " -"exception set." -msgstr "" - -#~ msgid "The type object for the built-in descriptor types." -#~ msgstr "L'objet *type* des descripteurs natifs." diff --git a/c-api/dict.po b/c-api/dict.po deleted file mode 100644 index a9b7028e99..0000000000 --- a/c-api/dict.po +++ /dev/null @@ -1,757 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-07-03 11:36+0200\n" -"Last-Translator: FULL NAME \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" - -#: c-api/dict.rst:6 -#, fuzzy -msgid "Dictionary objects" -msgstr "Objets dictionnaires" - -#: c-api/dict.rst:13 -#, fuzzy -msgid "" -"This subtype of :c:type:`PyObject` represents a Python dictionary object." -msgstr "" -"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." - -#: c-api/dict.rst:18 -#, fuzzy -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python dictionary " -"type. This is the same object as :class:`dict` in the Python layer." -msgstr "" -"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " -"virgule flottante en Python. C'est le même objet que la " -"classe :class:`float` de la couche Python." - -#: c-api/dict.rst:24 -msgid "" -"Return true if *p* is a dict object or an instance of a subtype of the dict " -"type. This function always succeeds." -msgstr "" - -#: c-api/dict.rst:30 -msgid "" -"Return true if *p* is a dict object, but not an instance of a subtype of the " -"dict type. This function always succeeds." -msgstr "" - -#: c-api/dict.rst:36 -msgid "Return a new empty dictionary, or ``NULL`` on failure." -msgstr "" - -#: c-api/dict.rst:41 -msgid "" -"Return a :class:`types.MappingProxyType` object for a mapping which enforces " -"read-only behavior. This is normally used to create a view to prevent " -"modification of the dictionary for non-dynamic class types." -msgstr "" - -#: c-api/dict.rst:45 -msgid "" -"The first argument can be a :class:`dict`, a :class:`frozendict`, or a " -"mapping." -msgstr "" - -#: c-api/dict.rst:98 c-api/dict.rst:196 c-api/dict.rst:239 c-api/dict.rst:337 -#: c-api/dict.rst:358 c-api/dict.rst:379 c-api/dict.rst:453 -msgid "Also accept :class:`frozendict`." -msgstr "" - -#: c-api/dict.rst:54 -msgid "" -"The type object for mapping proxy objects created " -"by :c:func:`PyDictProxy_New` and for the read-only ``__dict__`` attribute of " -"many built-in types. A :c:type:`PyDictProxy_Type` instance provides a " -"dynamic, read-only view of an underlying dictionary: changes to the " -"underlying dictionary are reflected in the proxy, but the proxy itself does " -"not support mutation operations. This corresponds " -"to :class:`types.MappingProxyType` in Python." -msgstr "" - -#: c-api/dict.rst:65 -msgid "Empty an existing dictionary of all key-value pairs." -msgstr "" - -#: c-api/dict.rst:67 -msgid "" -"Do nothing if the argument is not a :class:`dict` or a :class:`!dict` " -"subclass." -msgstr "" - -#: c-api/dict.rst:73 -msgid "" -"Determine if dictionary *p* contains *key*. If an item in *p* matches " -"*key*, return ``1``, otherwise return ``0``. On error, return ``-1``. This " -"is equivalent to the Python expression ``key in p``." -msgstr "" - -#: c-api/dict.rst:156 c-api/dict.rst:335 c-api/dict.rst:356 c-api/dict.rst:396 -msgid "The first argument can be a :class:`dict` or a :class:`frozendict`." -msgstr "" - -#: c-api/dict.rst:135 c-api/dict.rst:294 c-api/dict.rst:316 -msgid "" -"The operation is atomic on :term:`free threading ` when " -"*key* is :class:`str`, :class:`int`, :class:`float`, :class:`bool` " -"or :class:`bytes`." -msgstr "" - -#: c-api/dict.rst:90 -msgid "" -"This is the same as :c:func:`PyDict_Contains`, but *key* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/dict.rst:104 -msgid "Return a new dictionary that contains the same key-value pairs as *p*." -msgstr "" - -#: c-api/dict.rst:108 -msgid "" -"Insert *val* into the dictionary *p* with a key of *key*. *key* must " -"be :term:`hashable`; if it isn't, :exc:`TypeError` will be raised. Return " -"``0`` on success or ``-1`` on failure. This function *does not* steal a " -"reference to *val*." -msgstr "" - -#: c-api/dict.rst:121 -msgid "" -"This is the same as :c:func:`PyDict_SetItem`, but *key* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/dict.rst:128 -msgid "" -"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:141 -msgid "" -"This is the same as :c:func:`PyDict_DelItem`, but *key* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/dict.rst:148 -msgid "" -"Return a new :term:`strong reference` to the object from dictionary *p* " -"which has a key *key*:" -msgstr "" - -#: c-api/dict.rst:151 -msgid "" -"If the key is present, set *\\*result* to a new :term:`strong reference` to " -"the value and return ``1``." -msgstr "" - -#: c-api/dict.rst:153 -msgid "If the key is missing, set *\\*result* to ``NULL`` and return ``0``." -msgstr "" - -#: c-api/dict.rst:154 -msgid "" -"On error, raise an exception, set *\\*result* to ``NULL`` and return ``-1``." -msgstr "" - -#: c-api/dict.rst:168 -msgid "See also the :c:func:`PyObject_GetItem` function." -msgstr "" - -#: c-api/dict.rst:173 -msgid "" -"Return a :term:`borrowed reference` to the object from dictionary *p* which " -"has a key *key*. Return ``NULL`` if the key *key* is missing *without* " -"setting an exception." -msgstr "" - -#: c-api/dict.rst:181 -msgid "" -"Exceptions that occur while this calls :meth:`~object.__hash__` " -"and :meth:`~object.__eq__` methods are silently ignored. Prefer " -"the :c:func:`PyDict_GetItemWithError` function instead." -msgstr "" - -#: c-api/dict.rst:209 -msgid "" -"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " -"may become invalid if another thread modifies the dictionary concurrently. " -"Prefer :c:func:`PyDict_GetItemRef`, which returns a :term:`strong reference`." -msgstr "" - -#: c-api/dict.rst:192 -msgid "" -"Calling this API without an :term:`attached thread state` had been allowed " -"for historical reason. It is no longer allowed." -msgstr "" - -#: c-api/dict.rst:202 -msgid "" -"Variant of :c:func:`PyDict_GetItem` that does not suppress exceptions. " -"Return ``NULL`` **with** an exception set if an exception occurred. Return " -"``NULL`` **without** an exception set if the key wasn't present." -msgstr "" - -#: c-api/dict.rst:220 -msgid "" -"This is the same as :c:func:`PyDict_GetItem`, but *key* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/dict.rst:226 -msgid "" -"Exceptions that occur while this calls :meth:`~object.__hash__` " -"and :meth:`~object.__eq__` methods or while creating the " -"temporary :class:`str` object are silently ignored. Prefer using " -"the :c:func:`PyDict_GetItemWithError` function with your " -"own :c:func:`PyUnicode_FromString` *key* instead." -msgstr "" - -#: c-api/dict.rst:234 -msgid "" -"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " -"may become invalid if another thread modifies the dictionary concurrently. " -"Prefer :c:func:`PyDict_GetItemStringRef`, which returns a :term:`strong " -"reference`." -msgstr "" - -#: c-api/dict.rst:245 -msgid "" -"Similar to :c:func:`PyDict_GetItemRef`, but *key* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/dict.rst:257 -msgid "" -"This is the same as the Python-level :meth:`dict.setdefault`. If present, " -"it returns the value corresponding to *key* from the dictionary *p*. If the " -"key is not in the dict, it is inserted with value *defaultobj* and " -"*defaultobj* is returned. This function evaluates the hash function of " -"*key* only once, instead of evaluating it independently for the lookup and " -"the insertion." -msgstr "" - -#: c-api/dict.rst:267 -msgid "" -"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " -"may become invalid if another thread modifies the dictionary concurrently. " -"Prefer :c:func:`PyDict_SetDefaultRef`, which returns a :term:`strong " -"reference`." -msgstr "" - -#: c-api/dict.rst:276 -msgid "" -"Inserts *default_value* into the dictionary *p* with a key of *key* if the " -"key is not already present in the dictionary. If *result* is not ``NULL``, " -"then *\\*result* is set to a :term:`strong reference` to either " -"*default_value*, if the key was not present, or the existing value, if *key* " -"was already present in the dictionary. Returns ``1`` if the key was present " -"and *default_value* was not inserted, or ``0`` if the key was not present " -"and *default_value* was inserted. On failure, returns ``-1``, sets an " -"exception, and sets ``*result`` to ``NULL``." -msgstr "" - -#: c-api/dict.rst:286 -msgid "" -"For clarity: if you have a strong reference to *default_value* before " -"calling this function, then after it returns, you hold a strong reference to " -"both *default_value* and *\\*result* (if it's not ``NULL``). These may refer " -"to the same object: in that case you hold two separate references to it." -msgstr "" - -#: c-api/dict.rst:302 -msgid "" -"Remove *key* from dictionary *p* and optionally return the removed value. Do " -"not raise :exc:`KeyError` if the key is missing." -msgstr "" - -#: c-api/dict.rst:305 -msgid "" -"If the key is present, set *\\*result* to a new reference to the removed " -"value if *result* is not ``NULL``, and return ``1``." -msgstr "" - -#: c-api/dict.rst:307 -msgid "" -"If the key is missing, set *\\*result* to ``NULL`` if *result* is not " -"``NULL``, and return ``0``." -msgstr "" - -#: c-api/dict.rst:309 -msgid "On error, raise an exception and return ``-1``." -msgstr "" - -#: c-api/dict.rst:311 -msgid "" -"Similar to :meth:`dict.pop`, but without the default value and not " -"raising :exc:`KeyError` if the key is missing." -msgstr "" - -#: c-api/dict.rst:324 -msgid "" -"Similar to :c:func:`PyDict_Pop`, but *key* is specified as a :c:expr:`const " -"char*` UTF-8 encoded bytes string, rather than a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/dict.rst:333 -msgid "" -"Return a :c:type:`PyListObject` containing all the items from the dictionary." -msgstr "" - -#: c-api/dict.rst:343 -msgid "" -"Return a :c:type:`PyListObject` containing all the keys from the dictionary." -msgstr "" - -#: c-api/dict.rst:353 -msgid "" -"Return a :c:type:`PyListObject` containing all the values from the " -"dictionary *p*." -msgstr "" - -#: c-api/dict.rst:366 -msgid "" -"Return the number of items in the dictionary. This is equivalent to " -"``len(p)`` on a dictionary." -msgstr "" - -#: c-api/dict.rst:369 -msgid "The argument can be a :class:`dict` or a :class:`frozendict`." -msgstr "" - -#: c-api/dict.rst:377 -msgid "Similar to :c:func:`PyDict_Size`, but without error checking." -msgstr "" - -#: c-api/dict.rst:385 -msgid "" -"Iterate over all key-value pairs in the dictionary *p*. " -"The :c:type:`Py_ssize_t` referred to by *ppos* must be initialized to ``0`` " -"prior to the first call to this function to start the iteration; the " -"function returns true for each pair in the dictionary, and false once all " -"pairs have been reported. The parameters *pkey* and *pvalue* should either " -"point to :c: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 represents offsets within the internal dictionary structure, and " -"since the structure is sparse, the offsets are not consecutive." -msgstr "" - -#: c-api/dict.rst:398 -msgid "For example::" -msgstr "Par exemple ::" - -#: c-api/dict.rst:408 -msgid "" -"The dictionary *p* should not be mutated during iteration. It is safe to " -"modify the values of the keys as you iterate over the dictionary, but only " -"so long as the set of keys does not change. For example::" -msgstr "" - -#: c-api/dict.rst:430 -msgid "" -"The function is not thread-safe in the :term:`free-threaded ` build without external synchronization for a " -"mutable :class:`dict`. You can use :c:macro:`Py_BEGIN_CRITICAL_SECTION` to " -"lock the dictionary while iterating over it::" -msgstr "" - -#: c-api/dict.rst:441 -msgid "The function is thread-safe on a :class:`frozendict`." -msgstr "" - -#: c-api/dict.rst:445 -msgid "" -"On the free-threaded build, this function can be used safely inside a " -"critical section. However, the references returned for *pkey* and *pvalue* " -"are :term:`borrowed ` and are only valid while the " -"critical section is held. If you need to use these objects outside the " -"critical section or when the critical section can be suspended, create " -"a :term:`strong reference ` (for example, " -"using :c:func:`Py_NewRef`)." -msgstr "" - -#: c-api/dict.rst:458 -msgid "" -"Iterate over mapping object *b* adding key-value pairs to dictionary *a*. " -"*b* may be a dictionary, or any object supporting :c:func:`PyMapping_Keys` " -"and :c:func:`PyObject_GetItem`. If *override* is true, existing pairs in *a* " -"will be replaced if a matching key is found in *b*, otherwise pairs will " -"only be added if there is not a matching key in *a*. Return ``0`` on success " -"or ``-1`` if an exception was raised." -msgstr "" - -#: c-api/dict.rst:483 -msgid "" -"In the :term:`free-threaded build`, when *b* is a :class:`dict` (with the " -"standard iterator), both *a* and *b* are locked for the duration of the " -"operation. When *b* is a non-dict mapping, only *a* is locked; *b* may be " -"concurrently modified by another thread." -msgstr "" - -#: c-api/dict.rst:475 -msgid "" -"This is the same as ``PyDict_Merge(a, b, 1)`` in C, and is similar to " -"``a.update(b)`` in Python except that :c:func:`PyDict_Update` doesn't fall " -"back to the iterating over a sequence of key value pairs if the second " -"argument has no \"keys\" attribute. Return ``0`` on success or ``-1`` if an " -"exception was raised." -msgstr "" - -#: c-api/dict.rst:491 -msgid "" -"Update or merge into dictionary *a*, from the key-value pairs in *seq2*. " -"*seq2* must be an iterable object producing iterable objects of length 2, " -"viewed as key-value pairs. In case of duplicate keys, the last wins if " -"*override* is true, else the first wins. Return ``0`` on success or ``-1`` " -"if an exception was raised. Equivalent Python (except for the return value)::" -msgstr "" - -#: c-api/dict.rst:505 -msgid "" -"In the :term:`free-threaded ` build, only *a* is locked. The " -"iteration over *seq2* is not synchronized; *seq2* may be concurrently " -"modified by another thread." -msgstr "" - -#: c-api/dict.rst:512 -msgid "" -"Register *callback* as a dictionary watcher. Return a non-negative integer " -"id which must be passed to future calls to :c:func:`PyDict_Watch`. In case " -"of error (e.g. no more watcher IDs available), return ``-1`` and set an " -"exception." -msgstr "" - -#: c-api/dict.rst:534 -msgid "" -"This function is not internally synchronized. In the :term:`free-threaded " -"` build, callers should ensure no concurrent calls " -"to :c:func:`PyDict_AddWatcher` or :c:func:`PyDict_ClearWatcher` are in " -"progress." -msgstr "" - -#: c-api/dict.rst:528 -msgid "" -"Clear watcher identified by *watcher_id* previously returned " -"from :c:func:`PyDict_AddWatcher`. Return ``0`` on success, ``-1`` on error " -"(e.g. if the given *watcher_id* was never registered.)" -msgstr "" - -#: c-api/dict.rst:543 -msgid "" -"Mark dictionary *dict* as watched. The callback granted *watcher_id* " -"by :c:func:`PyDict_AddWatcher` will be called when *dict* is modified or " -"deallocated. Return ``0`` on success or ``-1`` on error." -msgstr "" - -#: c-api/dict.rst:551 -msgid "" -"Mark dictionary *dict* as no longer watched. The callback granted " -"*watcher_id* by :c:func:`PyDict_AddWatcher` will no longer be called when " -"*dict* is modified or deallocated. The dict must previously have been " -"watched by this watcher. Return ``0`` on success or ``-1`` on error." -msgstr "" - -#: c-api/dict.rst:560 -msgid "" -"Enumeration of possible dictionary watcher events: ``PyDict_EVENT_ADDED``, " -"``PyDict_EVENT_MODIFIED``, ``PyDict_EVENT_DELETED``, " -"``PyDict_EVENT_CLONED``, ``PyDict_EVENT_CLEARED``, or " -"``PyDict_EVENT_DEALLOCATED``." -msgstr "" - -#: c-api/dict.rst:568 -msgid "Type of a dict watcher callback function." -msgstr "" - -#: c-api/dict.rst:570 -msgid "" -"If *event* is ``PyDict_EVENT_CLEARED`` or ``PyDict_EVENT_DEALLOCATED``, both " -"*key* and *new_value* will be ``NULL``. If *event* is ``PyDict_EVENT_ADDED`` " -"or ``PyDict_EVENT_MODIFIED``, *new_value* will be the new value for *key*. " -"If *event* is ``PyDict_EVENT_DELETED``, *key* is being deleted from the " -"dictionary and *new_value* will be ``NULL``." -msgstr "" - -#: c-api/dict.rst:576 -msgid "" -"``PyDict_EVENT_CLONED`` occurs when *dict* was previously empty and another " -"dict is merged into it. To maintain efficiency of this operation, per-key " -"``PyDict_EVENT_ADDED`` events are not issued in this case; instead a single " -"``PyDict_EVENT_CLONED`` is issued, and *key* will be the source dictionary." -msgstr "" - -#: c-api/dict.rst:582 -msgid "" -"The callback may inspect but must not modify *dict*; doing so could have " -"unpredictable effects, including infinite recursion. Do not trigger Python " -"code execution in the callback, as it could modify the dict as a side effect." -msgstr "" - -#: c-api/dict.rst:586 -msgid "" -"If *event* is ``PyDict_EVENT_DEALLOCATED``, taking a new reference in the " -"callback to the about-to-be-destroyed dictionary will resurrect it and " -"prevent it from being freed at this time. When the resurrected object is " -"destroyed later, any watcher callbacks active at that time will be called " -"again." -msgstr "" - -#: c-api/dict.rst:592 -msgid "" -"Callbacks occur before the notified modification to *dict* takes place, so " -"the prior state of *dict* can be inspected." -msgstr "" - -#: c-api/dict.rst:595 -msgid "" -"If the callback sets an exception, it must return ``-1``; this exception " -"will be printed as an unraisable exception " -"using :c:func:`PyErr_WriteUnraisable`. Otherwise it should return ``0``." -msgstr "" - -#: c-api/dict.rst:599 -msgid "" -"There may already be a pending exception set on entry to the callback. In " -"this case, the callback should return ``0`` with the same exception still " -"set. This means the callback may not call any other API that can set an " -"exception unless it saves and clears the exception state first, and restores " -"it before returning." -msgstr "" - -#: c-api/dict.rst:609 -#, fuzzy -msgid "Dictionary view objects" -msgstr "Objets dictionnaires" - -#: c-api/dict.rst:613 -msgid "" -"Return true if *op* is a view of a set inside a dictionary. This is " -"currently equivalent to :c:expr:`PyDictKeys_Check(op) || " -"PyDictItems_Check(op)`. This function always succeeds." -msgstr "" - -#: c-api/dict.rst:620 -msgid "" -"Type object for a view of dictionary keys. In Python, this is the type of " -"the object returned by :meth:`dict.keys`." -msgstr "" - -#: c-api/dict.rst:626 -msgid "" -"Return true if *op* is an instance of a dictionary keys view. This function " -"always succeeds." -msgstr "" - -#: c-api/dict.rst:632 -msgid "" -"Type object for a view of dictionary values. In Python, this is the type of " -"the object returned by :meth:`dict.values`." -msgstr "" - -#: c-api/dict.rst:638 -msgid "" -"Return true if *op* is an instance of a dictionary values view. This " -"function always succeeds." -msgstr "" - -#: c-api/dict.rst:644 -msgid "" -"Type object for a view of dictionary items. In Python, this is the type of " -"the object returned by :meth:`dict.items`." -msgstr "" - -#: c-api/dict.rst:650 -msgid "" -"Return true if *op* is an instance of a dictionary items view. This function " -"always succeeds." -msgstr "" - -#: c-api/dict.rst:655 -#, fuzzy -msgid "Frozen dictionary objects" -msgstr "Objets dictionnaires" - -#: c-api/dict.rst:662 -#, fuzzy -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python frozen " -"dictionary type. This is the same object as :class:`frozendict` in the " -"Python layer." -msgstr "" -"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " -"virgule flottante en Python. C'est le même objet que la " -"classe :class:`float` de la couche Python." - -#: c-api/dict.rst:669 -msgid "" -"Return true if *p* is a :class:`dict` object, a :class:`frozendict` object, " -"or an instance of a subtype of the :class:`!dict` or :class:`!frozendict` " -"type. This function always succeeds." -msgstr "" - -#: c-api/dict.rst:677 -msgid "" -"Return true if *p* is a :class:`dict` object or a :class:`frozendict` " -"object, but not an instance of a subtype of the :class:`!dict` or :class:`!" -"frozendict` type. This function always succeeds." -msgstr "" - -#: c-api/dict.rst:685 -msgid "" -"Return true if *p* is a :class:`frozendict` object or an instance of a " -"subtype of the :class:`!frozendict` type. This function always succeeds." -msgstr "" - -#: c-api/dict.rst:692 -msgid "" -"Return true if *p* is a :class:`frozendict` object, but not an instance of a " -"subtype of the :class:`!frozendict` type. This function always succeeds." -msgstr "" - -#: c-api/dict.rst:699 -msgid "" -"Return a new :class:`frozendict` from an iterable, or ``NULL`` on failure " -"with an exception set." -msgstr "" - -#: c-api/dict.rst:702 -msgid "Create an empty dictionary if *iterable* is ``NULL``." -msgstr "" - -#: c-api/dict.rst:706 -#, fuzzy -msgid "Ordered dictionaries" -msgstr "Objets dictionnaires" - -#: c-api/dict.rst:708 -msgid "" -"Python's C API provides interface for :class:`collections.OrderedDict` from " -"C. Since Python 3.7, dictionaries are ordered by default, so there is " -"usually little need for these functions; prefer ``PyDict*`` where possible." -msgstr "" - -#: c-api/dict.rst:715 -#, fuzzy -msgid "" -"Type object for ordered dictionaries. This is the same object " -"as :class:`collections.OrderedDict` in the Python layer." -msgstr "" -"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " -"virgule flottante en Python. C'est le même objet que la " -"classe :class:`float` de la couche Python." - -#: c-api/dict.rst:721 -msgid "" -"Return true if *od* is an ordered dictionary object or an instance of a " -"subtype of the :class:`~collections.OrderedDict` type. This function always " -"succeeds." -msgstr "" - -#: c-api/dict.rst:728 -msgid "" -"Return true if *od* is an ordered dictionary object, but not an instance of " -"a subtype of the :class:`~collections.OrderedDict` type. This function " -"always succeeds." -msgstr "" - -#: c-api/dict.rst:735 -msgid "Analogous to :c:type:`PyDictKeys_Type` for ordered dictionaries." -msgstr "" - -#: c-api/dict.rst:740 -msgid "Analogous to :c:type:`PyDictValues_Type` for ordered dictionaries." -msgstr "" - -#: c-api/dict.rst:745 -msgid "Analogous to :c:type:`PyDictItems_Type` for ordered dictionaries." -msgstr "" - -#: c-api/dict.rst:750 -msgid "Return a new empty ordered dictionary, or ``NULL`` on failure." -msgstr "" - -#: c-api/dict.rst:752 -msgid "This is analogous to :c:func:`PyDict_New`." -msgstr "" - -#: c-api/dict.rst:757 -msgid "" -"Insert *value* into the ordered dictionary *od* with a key of *key*. Return " -"``0`` on success or ``-1`` with an exception set on failure." -msgstr "" - -#: c-api/dict.rst:760 -msgid "This is analogous to :c:func:`PyDict_SetItem`." -msgstr "" - -#: c-api/dict.rst:765 -msgid "" -"Remove the entry in the ordered dictionary *od* with key *key*. Return ``0`` " -"on success or ``-1`` with an exception set on failure." -msgstr "" - -#: c-api/dict.rst:768 -msgid "This is analogous to :c:func:`PyDict_DelItem`." -msgstr "" - -#: c-api/dict.rst:771 -msgid "These are :term:`soft deprecated` aliases to ``PyDict`` APIs:" -msgstr "" - -#: c-api/dict.rst:778 -msgid "``PyODict``" -msgstr "" - -#: c-api/dict.rst:779 -msgid "``PyDict``" -msgstr "" - -#: c-api/dict.rst:781 -msgid ":c:func:`PyDict_GetItem`" -msgstr "" - -#: c-api/dict.rst:783 -msgid ":c:func:`PyDict_GetItemWithError`" -msgstr "" - -#: c-api/dict.rst:785 -msgid ":c:func:`PyDict_GetItemString`" -msgstr "" - -#: c-api/dict.rst:787 -msgid ":c:func:`PyDict_Contains`" -msgstr "" - -#: c-api/dict.rst:789 -msgid ":c:func:`PyDict_Size`" -msgstr "" - -#: c-api/dict.rst:791 -msgid ":c:func:`PyDict_GET_SIZE`" -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "built-in function" -#~ msgstr "fonction native" diff --git a/c-api/exceptions.po b/c-api/exceptions.po deleted file mode 100644 index 7f5ffe5268..0000000000 --- a/c-api/exceptions.po +++ /dev/null @@ -1,2139 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-10-04 12:24+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" - -#: c-api/exceptions.rst:8 -msgid "Exception Handling" -msgstr "Gestion des exceptions" - -#: c-api/exceptions.rst:10 -msgid "" -"The functions described in this chapter will let you handle and raise Python " -"exceptions. It is important to understand some of the basics of Python " -"exception handling. It works somewhat like the POSIX :c:data:`errno` " -"variable: there is a global indicator (per thread) of the last error that " -"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 ``PyArg_*`` " -"functions return ``1`` for success and ``0`` for failure)." -msgstr "" - -#: c-api/exceptions.rst:20 -msgid "" -"Concretely, the error indicator consists of three object pointers: the " -"exception's type, the exception's value, and the traceback object. Any of " -"those pointers can be ``NULL`` if non-set (although some combinations are " -"forbidden, for example you can't have a non-``NULL`` traceback if the " -"exception type is ``NULL``)." -msgstr "" - -#: c-api/exceptions.rst:26 -msgid "" -"When a function must fail because some function it called failed, it " -"generally doesn't set the error indicator; the function it called already " -"set it. It is responsible for either handling the error and clearing the " -"exception or returning after cleaning up any resources it holds (such as " -"object references or memory allocations); it should *not* continue normally " -"if it is not prepared to handle the error. If returning due to an error, it " -"is important to indicate to the caller that an error has been set. If the " -"error is not handled or carefully propagated, additional calls into the " -"Python/C API may not behave as intended and may fail in mysterious ways." -msgstr "" - -#: c-api/exceptions.rst:37 -msgid "" -"The error indicator is **not** the result of :func:`sys.exc_info`. The " -"former corresponds to an exception that is not yet caught (and is therefore " -"still propagating), while the latter returns an exception after it is caught " -"(and has therefore stopped propagating)." -msgstr "" - -#: c-api/exceptions.rst:44 -msgid "Printing and clearing" -msgstr "" - -#: c-api/exceptions.rst:49 -msgid "" -"Clear the error indicator. If the error indicator is not set, there is no " -"effect." -msgstr "" - -#: c-api/exceptions.rst:55 -msgid "" -"Print a standard traceback to ``sys.stderr`` and clear the error indicator. " -"**Unless** the error is a ``SystemExit``, in that case no traceback is " -"printed and the Python process will exit with the error code specified by " -"the ``SystemExit`` instance." -msgstr "" - -#: c-api/exceptions.rst:60 -msgid "" -"Call this function **only** when the error indicator is set. Otherwise it " -"will cause a fatal error!" -msgstr "" - -#: c-api/exceptions.rst:63 -msgid "" -"If *set_sys_last_vars* is nonzero, the variable :data:`sys.last_exc` is set " -"to the printed exception. For backwards compatibility, the deprecated " -"variables :data:`sys.last_type`, :data:`sys.last_value` " -"and :data:`sys.last_traceback` are also set to the type, value and traceback " -"of this exception, respectively." -msgstr "" - -#: c-api/exceptions.rst:69 -msgid "The setting of :data:`sys.last_exc` was added." -msgstr "" - -#: c-api/exceptions.rst:75 -msgid "Alias for ``PyErr_PrintEx(1)``." -msgstr "" - -#: c-api/exceptions.rst:80 -msgid "" -"Call :func:`sys.unraisablehook` using the current exception and *obj* " -"argument." -msgstr "" - -#: c-api/exceptions.rst:83 -msgid "" -"This utility function prints a warning message to ``sys.stderr`` when an " -"exception has been set but it is impossible for the interpreter to actually " -"raise the exception. It is used, for example, when an exception occurs in " -"an :meth:`~object.__del__` method." -msgstr "" - -#: c-api/exceptions.rst:88 -msgid "" -"The function is called with a single argument *obj* that identifies the " -"context in which the unraisable exception occurred. If possible, the repr of " -"*obj* will be printed in the warning message. If *obj* is ``NULL``, only the " -"traceback is printed." -msgstr "" - -#: c-api/exceptions.rst:93 -msgid "An exception must be set when calling this function." -msgstr "" - -#: c-api/exceptions.rst:95 -msgid "Print a traceback. Print only traceback if *obj* is ``NULL``." -msgstr "" - -#: c-api/exceptions.rst:98 -msgid "Use :func:`sys.unraisablehook`." -msgstr "" - -#: c-api/exceptions.rst:104 -msgid "" -"Similar to :c:func:`PyErr_WriteUnraisable`, but the *format* and subsequent " -"parameters help format the warning message; they have the same meaning and " -"values as in :c:func:`PyUnicode_FromFormat`. ``PyErr_WriteUnraisable(obj)`` " -"is roughly equivalent to ``PyErr_FormatUnraisable(\"Exception ignored in: " -"%R\", obj)``. If *format* is ``NULL``, only the traceback is printed." -msgstr "" - -#: c-api/exceptions.rst:116 -msgid "" -"Print the standard traceback display of ``exc`` to ``sys.stderr``, including " -"chained exceptions and notes." -msgstr "" - -#: c-api/exceptions.rst:123 -msgid "Raising exceptions" -msgstr "Lever des exceptions" - -#: c-api/exceptions.rst:125 -msgid "" -"These functions help you set the current thread's error indicator. For " -"convenience, some of these functions will always return a ``NULL`` pointer " -"for use in a ``return`` statement." -msgstr "" - -#: c-api/exceptions.rst:132 -msgid "" -"This is the most common way to set the error indicator. The first argument " -"specifies the exception type; it is normally one of the standard exceptions, " -"e.g. :c:data:`PyExc_RuntimeError`. You need not create a new :term:`strong " -"reference` to it (e.g. with :c:func:`Py_INCREF`). The second argument is an " -"error message; it is decoded from ``'utf-8'``." -msgstr "" - -#: c-api/exceptions.rst:141 -msgid "" -"This function is similar to :c:func:`PyErr_SetString` but lets you specify " -"an arbitrary Python object for the \"value\" of the exception." -msgstr "" - -#: c-api/exceptions.rst:147 -msgid "" -"This function sets the error indicator and returns ``NULL``. *exception* " -"should be a Python exception class. The *format* and subsequent parameters " -"help format the error message; they have the same meaning and values as " -"in :c:func:`PyUnicode_FromFormat`. *format* is an ASCII-encoded string." -msgstr "" - -#: c-api/exceptions.rst:156 -msgid "" -"Same as :c:func:`PyErr_Format`, but taking a :c:type:`va_list` argument " -"rather than a variable number of arguments." -msgstr "" - -#: c-api/exceptions.rst:164 -msgid "This is a shorthand for ``PyErr_SetObject(type, Py_None)``." -msgstr "" - -#: c-api/exceptions.rst:169 -msgid "" -"This is a shorthand for ``PyErr_SetString(PyExc_TypeError, message)``, where " -"*message* indicates that a built-in operation was invoked with an illegal " -"argument. It is mostly for internal use." -msgstr "" - -#: c-api/exceptions.rst:176 -msgid "" -"This is a shorthand for ``PyErr_SetNone(PyExc_MemoryError)``; it returns " -"``NULL`` so an object allocation function can write ``return " -"PyErr_NoMemory();`` when it runs out of memory." -msgstr "" - -#: c-api/exceptions.rst:185 -msgid "" -"This is a convenience function to raise an exception when a C library " -"function has returned an error and set the C variable :c:data:`errno`. It " -"constructs a tuple object whose first item is the integer :c:data:`errno` " -"value and whose second item is the corresponding error message (gotten " -"from :c:func:`!strerror`), and then calls ``PyErr_SetObject(type, " -"object)``. On Unix, when the :c:data:`errno` value is :c:macro:`!EINTR`, " -"indicating an interrupted system call, this " -"calls :c:func:`PyErr_CheckSignals`, and if that set the error indicator, " -"leaves it set to that. The function always returns ``NULL``, so a wrapper " -"function around a system call can write ``return PyErr_SetFromErrno(type);`` " -"when the system call returns an error." -msgstr "" - -#: c-api/exceptions.rst:199 -msgid "" -"Similar to :c:func:`PyErr_SetFromErrno`, with the additional behavior that " -"if *filenameObject* is not ``NULL``, it is passed to the constructor of " -"*type* as a third parameter. In the case of :exc:`OSError` exception, this " -"is used to define the :attr:`!filename` attribute of the exception instance." -msgstr "" - -#: c-api/exceptions.rst:208 -msgid "" -"Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but takes a " -"second filename object, for raising errors when a function that takes two " -"filenames fails." -msgstr "" - -#: c-api/exceptions.rst:217 -msgid "" -"Similar to :c:func:`PyErr_SetFromErrnoWithFilenameObject`, but the filename " -"is given as a C string. *filename* is decoded from the :term:`filesystem " -"encoding and error handler`." -msgstr "" - -#: c-api/exceptions.rst:224 -msgid "" -"This is a convenience function to raise :exc:`OSError`. If called with " -"*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 :exc:`OSError` " -"object with the :attr:`~OSError.winerror` attribute set to the error code, " -"the :attr:`~OSError.strerror` attribute set to the corresponding error " -"message (gotten from :c:func:`!FormatMessage`), and then calls " -"``PyErr_SetObject(PyExc_OSError, object)``. This function always returns " -"``NULL``." -msgstr "" - -#: c-api/exceptions.rst:242 c-api/exceptions.rst:263 c-api/exceptions.rst:281 -msgid "Availability" -msgstr "Disponibilité" - -#: c-api/exceptions.rst:239 -msgid "" -"Similar to :c:func:`PyErr_SetFromWindowsErr`, with an additional parameter " -"specifying the exception type to be raised." -msgstr "" - -#: c-api/exceptions.rst:247 -msgid "" -"Similar to :c:func:`PyErr_SetFromWindowsErr`, with the additional behavior " -"that if *filename* is not ``NULL``, it is decoded from the filesystem " -"encoding (:func:`os.fsdecode`) and passed to the constructor " -"of :exc:`OSError` as a third parameter to be used to define the :attr:`!" -"filename` attribute of the exception instance." -msgstr "" - -#: c-api/exceptions.rst:258 -msgid "" -"Similar to :c:func:`PyErr_SetExcFromWindowsErr`, with the additional " -"behavior that if *filename* is not ``NULL``, it is passed to the constructor " -"of :exc:`OSError` as a third parameter to be used to define the :attr:`!" -"filename` attribute of the exception instance." -msgstr "" - -#: c-api/exceptions.rst:268 -msgid "" -"Similar to :c:func:`PyErr_SetExcFromWindowsErrWithFilenameObject`, but " -"accepts a second filename object." -msgstr "" - -#: c-api/exceptions.rst:278 -msgid "" -"Similar to :c:func:`PyErr_SetFromWindowsErrWithFilename`, with an additional " -"parameter specifying the exception type to be raised." -msgstr "" - -#: c-api/exceptions.rst:286 -msgid "" -"This is a convenience function to raise :exc:`ImportError`. *msg* will be " -"set as the exception's message string. *name* and *path*, both of which can " -"be ``NULL``, will be set as the :exc:`ImportError`'s respective ``name`` and " -"``path`` attributes." -msgstr "" - -#: c-api/exceptions.rst:296 -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:304 -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:314 -msgid "" -"Similar to :c:func:`PyErr_SyntaxLocationObject`, but also sets the " -"*end_lineno* and *end_col_offset* information for the current exception." -msgstr "" - -#: c-api/exceptions.rst:322 -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:330 -msgid "" -"Like :c:func:`PyErr_SyntaxLocationEx`, but the *col_offset* parameter is " -"omitted." -msgstr "" - -#: c-api/exceptions.rst:336 -msgid "" -"This is a shorthand for ``PyErr_SetString(PyExc_SystemError, message)``, " -"where *message* indicates that an internal operation (e.g. a Python/C API " -"function) was invoked with an illegal argument. It is mostly for internal " -"use." -msgstr "" - -#: c-api/exceptions.rst:344 -msgid "" -"Get the source line in *filename* at line *lineno*. *filename* should be a " -"Python :class:`str` object." -msgstr "" - -#: c-api/exceptions.rst:347 -msgid "" -"On success, this function returns a Python string object with the found " -"line. On failure, this function returns ``NULL`` without an exception set." -msgstr "" - -#: c-api/exceptions.rst:353 -msgid "" -"Similar to :c:func:`PyErr_ProgramTextObject`, but *filename* is " -"a :c:expr:`const char *`, which is decoded with the :term:`filesystem " -"encoding and error handler`, instead of a Python object reference." -msgstr "" - -#: c-api/exceptions.rst:360 -msgid "Issuing warnings" -msgstr "" - -#: c-api/exceptions.rst:362 -msgid "" -"Use these functions to issue warnings from C code. They mirror similar " -"functions exported by the Python :mod:`warnings` module. They normally " -"print a warning message to *sys.stderr*; however, it is also possible that " -"the user has specified that warnings are to be turned into errors, and in " -"that case they will raise an exception. It is also possible that the " -"functions raise an exception because of a problem with the warning " -"machinery. The return value is ``0`` if no exception is raised, or ``-1`` if " -"an exception is raised. (It is not possible to determine whether a warning " -"message is actually printed, nor what the reason is for the exception; this " -"is intentional.) If an exception is raised, the caller should do its normal " -"exception handling (for example, :c:func:`Py_DECREF` owned references and " -"return an error value)." -msgstr "" - -#: c-api/exceptions.rst:377 -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. " -"*stack_level* is a positive number giving a number of stack frames; the " -"warning will be issued from the currently executing line of code in that " -"stack frame. A *stack_level* of 1 is the function " -"calling :c:func:`PyErr_WarnEx`, 2 is the function above that, and so forth." -msgstr "" - -#: c-api/exceptions.rst:384 -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 warning category " -"is :c:data:`PyExc_RuntimeWarning`. The standard Python warning categories " -"are available as global variables whose names are enumerated " -"at :ref:`standardwarningcategories`." -msgstr "" - -#: c-api/exceptions.rst:390 -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:397 -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* arguments may be set to ``NULL`` to get the " -"default effect described there." -msgstr "" - -#: c-api/exceptions.rst:408 -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:415 -msgid "" -"Function similar to :c:func:`PyErr_WarnEx`, but " -"uses :c:func:`PyUnicode_FromFormat` to format the warning message. *format* " -"is an ASCII-encoded string." -msgstr "" - -#: c-api/exceptions.rst:424 -msgid "" -"Similar to :c:func:`PyErr_WarnExplicit`, but " -"uses :c:func:`PyUnicode_FromFormat` to format the warning message. *format* " -"is an ASCII-encoded string." -msgstr "" - -#: c-api/exceptions.rst:433 -msgid "" -"Function similar to :c:func:`PyErr_WarnFormat`, but *category* " -"is :exc:`ResourceWarning` and it passes *source* to :class:`!" -"warnings.WarningMessage`." -msgstr "" - -#: c-api/exceptions.rst:440 -msgid "Querying the error indicator" -msgstr "" - -#: c-api/exceptions.rst:444 -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 ``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:450 -msgid "The caller must have an :term:`attached thread state`." -msgstr "" - -#: c-api/exceptions.rst:454 -msgid "" -"Do not compare the return value to a specific exception; " -"use :c:func:`PyErr_ExceptionMatches` instead, shown below. (The comparison " -"could easily fail since the exception may be an instance instead of a class, " -"in the case of a class exception, or it may be a subclass of the expected " -"exception.)" -msgstr "" - -#: c-api/exceptions.rst:462 -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:469 -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 " -"instance of a subclass. If *exc* is a tuple, all exception types in the " -"tuple (and recursively in subtuples) are searched for a match." -msgstr "" - -#: c-api/exceptions.rst:477 -msgid "" -"Return the exception currently being raised, clearing the error indicator at " -"the same time. Return ``NULL`` if the error indicator is not set." -msgstr "" - -#: c-api/exceptions.rst:480 -msgid "" -"This function is used by code that needs to catch exceptions, or code that " -"needs to save and restore the error indicator temporarily." -msgstr "" - -#: c-api/exceptions.rst:527 -msgid "For example::" -msgstr "Par exemple ::" - -#: c-api/exceptions.rst:493 -msgid "" -":c:func:`PyErr_GetHandledException`, to save the exception currently being " -"handled." -msgstr "" - -#: c-api/exceptions.rst:501 -msgid "" -"Set *exc* as the exception currently being raised, clearing the existing " -"exception if one is set." -msgstr "" - -#: c-api/exceptions.rst:506 -msgid "This call steals a reference to *exc*, which must be a valid exception." -msgstr "" - -#: c-api/exceptions.rst:515 -msgid "Use :c:func:`PyErr_GetRaisedException` instead." -msgstr "" - -#: c-api/exceptions.rst:517 -msgid "" -"Retrieve the error indicator into three variables whose addresses are " -"passed. If the error indicator is not set, set all three variables to " -"``NULL``. If it is set, it will be cleared and you own a reference to each " -"object retrieved. The value and traceback object may be ``NULL`` even when " -"the type object is not." -msgstr "" - -#: c-api/exceptions.rst:524 -msgid "" -"This function is normally only used by legacy code that needs to catch " -"exceptions or save and restore the error indicator temporarily." -msgstr "" - -#: c-api/exceptions.rst:543 -msgid "Use :c:func:`PyErr_SetRaisedException` instead." -msgstr "" - -#: c-api/exceptions.rst:545 -msgid "" -"Set the error indicator from the three objects, *type*, *value*, and " -"*traceback*, clearing the existing exception if one is set. If the objects " -"are ``NULL``, the error indicator is cleared. Do not pass a ``NULL`` type " -"and non-``NULL`` value or traceback. The exception type should be a class. " -"Do not pass an invalid exception type or value. (Violating these rules will " -"cause subtle problems later.) This call takes away a reference to each " -"object: you must own a reference to each object before the call and after " -"the call you no longer own these references. (If you don't understand this, " -"don't use this function. I warned you.)" -msgstr "" - -#: c-api/exceptions.rst:559 -msgid "" -"This function is normally only used by legacy 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:568 -msgid "" -"Use :c:func:`PyErr_GetRaisedException` instead, to avoid any possible de-" -"normalization." -msgstr "" - -#: c-api/exceptions.rst:571 -msgid "" -"Under certain circumstances, the values returned by :c:func:`PyErr_Fetch` " -"below can be \"unnormalized\", meaning that ``*exc`` is a class object but " -"``*val`` is not an instance of the same class. This function can be used " -"to instantiate the class in that case. If the values are already " -"normalized, nothing happens. The delayed normalization is implemented to " -"improve performance." -msgstr "" - -#: c-api/exceptions.rst:579 -msgid "" -"This function *does not* implicitly set " -"the :attr:`~BaseException.__traceback__` attribute on the exception value. " -"If setting the traceback appropriately is desired, the following additional " -"snippet is needed::" -msgstr "" - -#: c-api/exceptions.rst:591 -msgid "" -"Retrieve the active exception instance, as would be returned " -"by :func:`sys.exception`. This refers to an exception that was *already " -"caught*, not to an exception that was freshly raised. Returns a new " -"reference to the exception or ``NULL``. Does not modify the interpreter's " -"exception state." -msgstr "" - -#: c-api/exceptions.rst:598 -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 " -"state temporarily. Use :c:func:`PyErr_SetHandledException` to restore or " -"clear the exception state." -msgstr "" - -#: c-api/exceptions.rst:607 -msgid "" -"Set the active exception, as known from ``sys.exception()``. This refers to " -"an exception that was *already caught*, not to an exception that was freshly " -"raised. To clear the exception state, pass ``NULL``." -msgstr "" - -#: c-api/exceptions.rst:614 -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 " -"state temporarily. Use :c:func:`PyErr_GetHandledException` to get the " -"exception state." -msgstr "" - -#: c-api/exceptions.rst:623 -msgid "" -"Retrieve the old-style representation of the exception info, as known " -"from :func:`sys.exc_info`. This refers to an exception that was *already " -"caught*, not to an exception that was freshly raised. Returns new " -"references for the three objects, any of which may be ``NULL``. Does not " -"modify the exception info state. This function is kept for backwards " -"compatibility. Prefer using :c:func:`PyErr_GetHandledException`." -msgstr "" - -#: c-api/exceptions.rst:632 -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 " -"state temporarily. Use :c:func:`PyErr_SetExcInfo` to restore or clear the " -"exception state." -msgstr "" - -#: c-api/exceptions.rst:642 -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 " -"raised. This function steals the references of the arguments. To clear the " -"exception state, pass ``NULL`` for all three arguments. This function is " -"kept for backwards compatibility. Prefer " -"using :c:func:`PyErr_SetHandledException`." -msgstr "" - -#: c-api/exceptions.rst:651 -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 " -"state temporarily. Use :c:func:`PyErr_GetExcInfo` to read the exception " -"state." -msgstr "" - -#: c-api/exceptions.rst:658 -msgid "" -"The ``type`` and ``traceback`` arguments are no longer used and can be NULL. " -"The interpreter now derives them from the exception instance (the ``value`` " -"argument). The function still steals references of all three arguments." -msgstr "" - -#: c-api/exceptions.rst:666 -msgid "Signal Handling" -msgstr "Traitement des signaux" - -#: c-api/exceptions.rst:676 -msgid "" -"Handle external interruptions, such as signals or activating a debugger, " -"whose processing has been delayed until it is safe to run Python code and/or " -"raise exceptions." -msgstr "" - -#: c-api/exceptions.rst:680 -msgid "" -"For example, pressing :kbd:`Ctrl-C` causes a terminal to send " -"the :py:data:`signal.SIGINT` signal. This function executes the " -"corresponding Python signal handler, which, by default, raises " -"the :exc:`KeyboardInterrupt` exception." -msgstr "" - -#: c-api/exceptions.rst:685 -msgid "" -":c:func:`!PyErr_CheckSignals` should be called by long-running C code " -"frequently enough so that the response appears immediate to humans." -msgstr "" - -#: c-api/exceptions.rst:688 -msgid "Handlers invoked by this function currently include:" -msgstr "" - -#: c-api/exceptions.rst:690 -msgid "" -"Signal handlers, including Python functions registered using " -"the :mod:`signal` module." -msgstr "" - -#: c-api/exceptions.rst:693 -msgid "" -"Signal handlers are only run in the main thread of the main interpreter." -msgstr "" - -#: c-api/exceptions.rst:695 -msgid "" -"(This is where the function got the name: originally, signals were the only " -"way to interrupt the interpreter.)" -msgstr "" - -#: c-api/exceptions.rst:698 -msgid "Running the garbage collector, if necessary." -msgstr "" - -#: c-api/exceptions.rst:700 -msgid "Executing a pending :ref:`remote debugger ` script." -msgstr "" - -#: c-api/exceptions.rst:702 -msgid "Raise the exception set by :c:func:`PyThreadState_SetAsyncExc`." -msgstr "" - -#: c-api/exceptions.rst:704 -msgid "" -"If any handler raises an exception, immediately return ``-1`` with that " -"exception set. Any remaining interruptions are left to be processed on the " -"next :c:func:`PyErr_CheckSignals()` invocation, if appropriate." -msgstr "" - -#: c-api/exceptions.rst:709 -msgid "" -"If all handlers finish successfully, or there are no handlers to run, return " -"``0``." -msgstr "" - -#: c-api/exceptions.rst:712 -msgid "This function may now invoke the garbage collector." -msgstr "" - -#: c-api/exceptions.rst:715 -msgid "" -"This function may now execute a remote debugger script, if remote debugging " -"is enabled." -msgstr "" - -#: c-api/exceptions.rst:719 -msgid "The exception set by :c:func:`PyThreadState_SetAsyncExc` is now raised." -msgstr "" - -#: c-api/exceptions.rst:730 -msgid "" -"Simulate the effect of a :c:macro:`!SIGINT` signal arriving. This is " -"equivalent to ``PyErr_SetInterruptEx(SIGINT)``." -msgstr "" - -#: c-api/exceptions.rst:761 -msgid "" -"This function is async-signal-safe. It can be called without " -"an :term:`attached thread state` and from a C signal handler." -msgstr "" - -#: c-api/exceptions.rst:744 -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:748 -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 " -"interruption is requested (for example when the user presses Ctrl-C to " -"interrupt an operation)." -msgstr "" - -#: c-api/exceptions.rst:753 -msgid "" -"If the given signal isn't handled by Python (it was set " -"to :py:const:`signal.SIG_DFL` or :py:const:`signal.SIG_IGN`), it will be " -"ignored." -msgstr "" - -#: c-api/exceptions.rst:756 -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:769 -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:773 -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 " -"checking. *fd* should be a valid file descriptor. The function should only " -"be called from the main thread." -msgstr "" - -#: c-api/exceptions.rst:778 -msgid "On Windows, the function now also supports socket handles." -msgstr "" - -#: c-api/exceptions.rst:783 -msgid "Exception Classes" -msgstr "" - -#: c-api/exceptions.rst:787 -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 " -"``module.classname``. The *base* and *dict* arguments are normally " -"``NULL``. This creates a class object derived from :exc:`Exception` " -"(accessible in C as :c:data:`PyExc_Exception`)." -msgstr "" - -#: c-api/exceptions.rst:793 -msgid "" -"The :attr:`~type.__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 the last part (after the last dot). The *base* argument can be used to " -"specify alternate base classes; it can either be only one class or a tuple " -"of classes. The *dict* argument can be used to specify a dictionary of class " -"variables and methods." -msgstr "" - -#: c-api/exceptions.rst:802 -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:811 -msgid "" -"Return non-zero if *ob* is an exception class, zero otherwise. This function " -"always succeeds." -msgstr "" - -#: c-api/exceptions.rst:816 -msgid "Return :c:member:`~PyTypeObject.tp_name` of the exception class *ob*." -msgstr "" - -#: c-api/exceptions.rst:821 -msgid "This is a macro including the base fields for an exception object." -msgstr "" - -#: c-api/exceptions.rst:824 -msgid "" -"This was included in Python's C API by mistake and is not designed for use " -"in extensions. For creating custom exception objects, " -"use :c:func:`PyErr_NewException` or otherwise create a class inheriting " -"from :c:data:`PyExc_BaseException`." -msgstr "" - -#: c-api/exceptions.rst:833 -msgid "Exception Objects" -msgstr "Objets exception" - -#: c-api/exceptions.rst:837 -msgid "" -"Return true if *op* is an instance of :class:`BaseException`, false " -"otherwise. This function always succeeds." -msgstr "" - -#: c-api/exceptions.rst:843 -msgid "Equivalent to :c:func:`Py_TYPE(op) `." -msgstr "" - -#: c-api/exceptions.rst:848 -msgid "" -"Return the traceback associated with the exception as a new reference, as " -"accessible from Python through the :attr:`~BaseException.__traceback__` " -"attribute. If there is no traceback associated, this returns ``NULL``." -msgstr "" - -#: c-api/exceptions.rst:856 -msgid "" -"Set the traceback associated with the exception to *tb*. Use ``Py_None`` to " -"clear it." -msgstr "" - -#: c-api/exceptions.rst:862 -msgid "" -"Return the context (another exception instance during whose handling *ex* " -"was raised) associated with the exception as a new reference, as accessible " -"from Python through the :attr:`~BaseException.__context__` attribute. If " -"there is no context associated, this returns ``NULL``." -msgstr "" - -#: c-api/exceptions.rst:870 -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:877 -msgid "" -"Return the cause (either an exception instance, or ``None``, set by " -"``raise ... from ...``) associated with the exception as a new reference, as " -"accessible from Python through the :attr:`~BaseException.__cause__` " -"attribute." -msgstr "" - -#: c-api/exceptions.rst:885 -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 ``None``. This steals a reference to *cause*." -msgstr "" - -#: c-api/exceptions.rst:889 -msgid "" -"The :attr:`~BaseException.__suppress_context__` attribute is implicitly set " -"to ``True`` by this function." -msgstr "" - -#: c-api/exceptions.rst:895 -msgid "Return :attr:`~BaseException.args` of exception *ex*." -msgstr "" - -#: c-api/exceptions.rst:900 -msgid "Set :attr:`~BaseException.args` of exception *ex* to *args*." -msgstr "" - -#: c-api/exceptions.rst:904 -msgid "" -"Implement part of the interpreter's implementation of :keyword:`!except*`. " -"*orig* is the original exception that was caught, and *excs* is the list of " -"the exceptions that need to be raised. This list contains the unhandled part " -"of *orig*, if any, as well as the exceptions that were raised from " -"the :keyword:`!except*` clauses (so they have a different traceback from " -"*orig*) and those that were reraised (and have the same traceback as " -"*orig*). Return the :exc:`ExceptionGroup` that needs to be reraised in the " -"end, or ``None`` if there is nothing to reraise." -msgstr "" - -#: c-api/exceptions.rst:918 -msgid "Unicode Exception Objects" -msgstr "Objets exception Unicode" - -#: c-api/exceptions.rst:920 -msgid "" -"The following functions are used to create and modify Unicode exceptions " -"from C." -msgstr "" - -#: c-api/exceptions.rst:924 -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:931 -msgid "Return the *encoding* attribute of the given exception object." -msgstr "" - -#: c-api/exceptions.rst:937 -msgid "Return the *object* attribute of the given exception object." -msgstr "" - -#: c-api/exceptions.rst:943 -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`` " -"on failure." -msgstr "" - -#: c-api/exceptions.rst:947 -msgid "" -"If the :attr:`UnicodeError.object` is an empty sequence, the resulting " -"*start* is ``0``. Otherwise, it is clipped to ``[0, len(object) - 1]``." -msgstr "" - -#: c-api/exceptions.rst:950 -#, fuzzy -msgid ":attr:`UnicodeError.start`" -msgstr ":exc:`UnicodeError`" - -#: c-api/exceptions.rst:956 -msgid "" -"Set the *start* attribute of the given exception object to *start*. Return " -"``0`` on success, ``-1`` on failure." -msgstr "" - -#: c-api/exceptions.rst:961 -msgid "" -"While passing a negative *start* does not raise an exception, the " -"corresponding getters will not consider it as a relative offset." -msgstr "" - -#: c-api/exceptions.rst:969 -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 " -"failure." -msgstr "" - -#: c-api/exceptions.rst:973 -msgid "" -"If the :attr:`UnicodeError.object` is an empty sequence, the resulting *end* " -"is ``0``. Otherwise, it is clipped to ``[1, len(object)]``." -msgstr "" - -#: c-api/exceptions.rst:980 -msgid "" -"Set the *end* attribute of the given exception object to *end*. Return " -"``0`` on success, ``-1`` on failure." -msgstr "" - -#: c-api/exceptions.rst:983 -#, fuzzy -msgid ":attr:`UnicodeError.end`" -msgstr ":exc:`UnicodeError`" - -#: c-api/exceptions.rst:989 -msgid "Return the *reason* attribute of the given exception object." -msgstr "" - -#: c-api/exceptions.rst:995 -msgid "" -"Set the *reason* attribute of the given exception object to *reason*. " -"Return ``0`` on success, ``-1`` on failure." -msgstr "" - -#: c-api/exceptions.rst:1002 -msgid "Recursion Control" -msgstr "Contrôle de la récursion" - -#: c-api/exceptions.rst:1004 -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 " -"recursive code does not necessarily invoke Python code (which tracks its " -"recursion depth automatically). They are also not needed for *tp_call* " -"implementations because the :ref:`call protocol ` takes care of " -"recursion handling." -msgstr "" - -#: c-api/exceptions.rst:1013 -msgid "Marks a point where a recursive C-level call is about to be performed." -msgstr "" - -#: c-api/exceptions.rst:1015 -msgid "" -"The function then checks if the stack 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:1019 -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:1024 -msgid "The :c:func:`PyUnstable_ThreadState_SetStackProtection` function." -msgstr "" - -#: c-api/exceptions.rst:1034 -msgid "" -"This function is now also available in the :ref:`limited API `." -msgstr "" - -#: c-api/exceptions.rst:1031 -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:1037 -msgid "" -"Properly implementing :c:member:`~PyTypeObject.tp_repr` for container types " -"requires special recursion handling. In addition to protecting the " -"stack, :c:member:`~PyTypeObject.tp_repr` also needs to track objects to " -"prevent cycles. The following two functions facilitate this functionality. " -"Effectively, these are the C equivalent to :func:`reprlib.recursive_repr`." -msgstr "" - -#: c-api/exceptions.rst:1045 -msgid "" -"Called at the beginning of the :c:member:`~PyTypeObject.tp_repr` " -"implementation to detect cycles." -msgstr "" - -#: c-api/exceptions.rst:1048 -msgid "" -"If the object has already been processed, the function returns a positive " -"integer. In that case the :c:member:`~PyTypeObject.tp_repr` implementation " -"should return a string object indicating a cycle. As " -"examples, :class:`dict` objects return ``{...}`` and :class:`list` objects " -"return ``[...]``." -msgstr "" - -#: c-api/exceptions.rst:1054 -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:1058 -msgid "" -"Otherwise, the function returns zero and " -"the :c:member:`~PyTypeObject.tp_repr` implementation can continue normally." -msgstr "" - -#: c-api/exceptions.rst:1063 -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:1068 -msgid "" -"Get the recursion limit for the current interpreter. It can be set " -"with :c:func:`Py_SetRecursionLimit`. The recursion limit prevents the Python " -"interpreter stack from growing infinitely." -msgstr "" - -#: c-api/exceptions.rst:1082 -msgid "" -"This function cannot fail, and the caller must hold an :term:`attached " -"thread state`." -msgstr "" - -#: c-api/exceptions.rst:1076 -msgid ":py:func:`sys.getrecursionlimit`" -msgstr "" - -#: c-api/exceptions.rst:1080 -msgid "Set the recursion limit for the current interpreter." -msgstr "" - -#: c-api/exceptions.rst:1086 -msgid ":py:func:`sys.setrecursionlimit`" -msgstr "" - -#: c-api/exceptions.rst:1091 -#, fuzzy -msgid "Exception and warning types" -msgstr "Gestion des exceptions" - -#: c-api/exceptions.rst:1093 -msgid "" -"All standard Python exceptions and warning categories are available as " -"global variables whose names are ``PyExc_`` followed by the Python exception " -"name. These have the type :c:expr:`PyObject*`; they are all class objects." -msgstr "" - -#: c-api/exceptions.rst:1097 -msgid "For completeness, here are all the variables:" -msgstr "" - -#: c-api/exceptions.rst:1100 -#, fuzzy -msgid "Exception types" -msgstr "Objets exception" - -#: c-api/exceptions.rst:1255 c-api/exceptions.rst:1285 -msgid "C name" -msgstr "" - -#: c-api/exceptions.rst:1256 c-api/exceptions.rst:1286 -#, fuzzy -msgid "Python name" -msgstr "Nom Python" - -#: c-api/exceptions.rst:1110 -msgid ":exc:`BaseException`" -msgstr ":exc:`BaseException`" - -#: c-api/exceptions.rst:1112 -#, fuzzy -msgid ":exc:`BaseExceptionGroup`" -msgstr ":exc:`BaseException`" - -#: c-api/exceptions.rst:1114 -msgid ":exc:`Exception`" -msgstr ":exc:`Exception`" - -#: c-api/exceptions.rst:1116 -msgid ":exc:`ArithmeticError`" -msgstr ":exc:`ArithmeticError`" - -#: c-api/exceptions.rst:1118 -msgid ":exc:`AssertionError`" -msgstr ":exc:`AssertionError`" - -#: c-api/exceptions.rst:1120 -msgid ":exc:`AttributeError`" -msgstr ":exc:`AttributeError`" - -#: c-api/exceptions.rst:1122 -msgid ":exc:`BlockingIOError`" -msgstr ":exc:`BlockingIOError`" - -#: c-api/exceptions.rst:1124 -msgid ":exc:`BrokenPipeError`" -msgstr ":exc:`BrokenPipeError`" - -#: c-api/exceptions.rst:1126 -msgid ":exc:`BufferError`" -msgstr ":exc:`BufferError`" - -#: c-api/exceptions.rst:1128 -msgid ":exc:`ChildProcessError`" -msgstr ":exc:`ChildProcessError`" - -#: c-api/exceptions.rst:1130 -msgid ":exc:`ConnectionAbortedError`" -msgstr ":exc:`ConnectionAbortedError`" - -#: c-api/exceptions.rst:1132 -msgid ":exc:`ConnectionError`" -msgstr ":exc:`ConnectionError`" - -#: c-api/exceptions.rst:1134 -msgid ":exc:`ConnectionRefusedError`" -msgstr ":exc:`ConnectionRefusedError`" - -#: c-api/exceptions.rst:1136 -msgid ":exc:`ConnectionResetError`" -msgstr ":exc:`ConnectionResetError`" - -#: c-api/exceptions.rst:1138 -msgid ":exc:`EOFError`" -msgstr ":exc:`EOFError`" - -#: c-api/exceptions.rst:1140 -msgid ":exc:`FileExistsError`" -msgstr ":exc:`FileExistsError`" - -#: c-api/exceptions.rst:1142 -msgid ":exc:`FileNotFoundError`" -msgstr ":exc:`FileNotFoundError`" - -#: c-api/exceptions.rst:1144 -msgid ":exc:`FloatingPointError`" -msgstr ":exc:`FloatingPointError`" - -#: c-api/exceptions.rst:1146 -msgid ":exc:`GeneratorExit`" -msgstr ":exc:`GeneratorExit`" - -#: c-api/exceptions.rst:1148 -#, fuzzy -msgid ":exc:`ImportCycleError`" -msgstr ":exc:`ImportError`" - -#: c-api/exceptions.rst:1150 -msgid ":exc:`ImportError`" -msgstr ":exc:`ImportError`" - -#: c-api/exceptions.rst:1152 -msgid ":exc:`IndentationError`" -msgstr ":exc:`IndentationError`" - -#: c-api/exceptions.rst:1154 -msgid ":exc:`IndexError`" -msgstr ":exc:`IndexError`" - -#: c-api/exceptions.rst:1156 -msgid ":exc:`InterruptedError`" -msgstr ":exc:`InterruptedError`" - -#: c-api/exceptions.rst:1158 -msgid ":exc:`IsADirectoryError`" -msgstr ":exc:`IsADirectoryError`" - -#: c-api/exceptions.rst:1160 -msgid ":exc:`KeyError`" -msgstr ":exc:`KeyError`" - -#: c-api/exceptions.rst:1162 -msgid ":exc:`KeyboardInterrupt`" -msgstr ":exc:`KeyboardInterrupt`" - -#: c-api/exceptions.rst:1164 -msgid ":exc:`LookupError`" -msgstr ":exc:`LookupError`" - -#: c-api/exceptions.rst:1166 -msgid ":exc:`MemoryError`" -msgstr ":exc:`MemoryError`" - -#: c-api/exceptions.rst:1168 -msgid ":exc:`ModuleNotFoundError`" -msgstr ":exc:`ModuleNotFoundError`" - -#: c-api/exceptions.rst:1170 -msgid ":exc:`NameError`" -msgstr ":exc:`NameError`" - -#: c-api/exceptions.rst:1172 -msgid ":exc:`NotADirectoryError`" -msgstr ":exc:`NotADirectoryError`" - -#: c-api/exceptions.rst:1174 -msgid ":exc:`NotImplementedError`" -msgstr ":exc:`NotImplementedError`" - -#: c-api/exceptions.rst:1259 c-api/exceptions.rst:1265 -msgid ":exc:`OSError`" -msgstr ":exc:`OSError`" - -#: c-api/exceptions.rst:1178 -msgid ":exc:`OverflowError`" -msgstr ":exc:`OverflowError`" - -#: c-api/exceptions.rst:1180 -msgid ":exc:`PermissionError`" -msgstr ":exc:`PermissionError`" - -#: c-api/exceptions.rst:1182 -msgid ":exc:`ProcessLookupError`" -msgstr ":exc:`ProcessLookupError`" - -#: c-api/exceptions.rst:1184 -#, fuzzy -msgid ":exc:`PythonFinalizationError`" -msgstr ":exc:`ConnectionError`" - -#: c-api/exceptions.rst:1186 -msgid ":exc:`RecursionError`" -msgstr ":exc:`RecursionError`" - -#: c-api/exceptions.rst:1188 -msgid ":exc:`ReferenceError`" -msgstr ":exc:`ReferenceError`" - -#: c-api/exceptions.rst:1190 -msgid ":exc:`RuntimeError`" -msgstr ":exc:`RuntimeError`" - -#: c-api/exceptions.rst:1192 -msgid ":exc:`StopAsyncIteration`" -msgstr ":exc:`StopAsyncIteration`" - -#: c-api/exceptions.rst:1194 -msgid ":exc:`StopIteration`" -msgstr ":exc:`StopIteration`" - -#: c-api/exceptions.rst:1196 -msgid ":exc:`SyntaxError`" -msgstr ":exc:`SyntaxError`" - -#: c-api/exceptions.rst:1198 -msgid ":exc:`SystemError`" -msgstr ":exc:`SystemError`" - -#: c-api/exceptions.rst:1200 -msgid ":exc:`SystemExit`" -msgstr ":exc:`SystemExit`" - -#: c-api/exceptions.rst:1202 -msgid ":exc:`TabError`" -msgstr ":exc:`TabError`" - -#: c-api/exceptions.rst:1204 -msgid ":exc:`TimeoutError`" -msgstr ":exc:`TimeoutError`" - -#: c-api/exceptions.rst:1206 -msgid ":exc:`TypeError`" -msgstr ":exc:`TypeError`" - -#: c-api/exceptions.rst:1208 -msgid ":exc:`UnboundLocalError`" -msgstr ":exc:`UnboundLocalError`" - -#: c-api/exceptions.rst:1210 -msgid ":exc:`UnicodeDecodeError`" -msgstr ":exc:`UnicodeDecodeError`" - -#: c-api/exceptions.rst:1212 -msgid ":exc:`UnicodeEncodeError`" -msgstr ":exc:`UnicodeEncodeError`" - -#: c-api/exceptions.rst:1214 -msgid ":exc:`UnicodeError`" -msgstr ":exc:`UnicodeError`" - -#: c-api/exceptions.rst:1216 -msgid ":exc:`UnicodeTranslateError`" -msgstr ":exc:`UnicodeTranslateError`" - -#: c-api/exceptions.rst:1218 -msgid ":exc:`ValueError`" -msgstr ":exc:`ValueError`" - -#: c-api/exceptions.rst:1220 -msgid ":exc:`ZeroDivisionError`" -msgstr ":exc:`ZeroDivisionError`" - -#: c-api/exceptions.rst:1222 -msgid "" -":c:data:`PyExc_BlockingIOError`, :c:data:`PyExc_BrokenPipeError`, :c:data:`PyExc_ChildProcessError`, :c:data:`PyExc_ConnectionError`, :c:data:`PyExc_ConnectionAbortedError`, :c:data:`PyExc_ConnectionRefusedError`, :c:data:`PyExc_ConnectionResetError`, :c:data:`PyExc_FileExistsError`, :c:data:`PyExc_FileNotFoundError`, :c:data:`PyExc_InterruptedError`, :c:data:`PyExc_IsADirectoryError`, :c:data:`PyExc_NotADirectoryError`, :c:data:`PyExc_PermissionError`, :c:data:`PyExc_ProcessLookupError` " -"and :c:data:`PyExc_TimeoutError` were introduced following :pep:`3151`." -msgstr "" - -#: c-api/exceptions.rst:1232 -msgid ":c:data:`PyExc_StopAsyncIteration` and :c:data:`PyExc_RecursionError`." -msgstr ":c:data:`PyExc_StopAsyncIteration` et :c:data:`PyExc_RecursionError`." - -#: c-api/exceptions.rst:1235 -msgid ":c:data:`PyExc_ModuleNotFoundError`." -msgstr ":c:data:`PyExc_ModuleNotFoundError`." - -#: c-api/exceptions.rst:1238 -#, fuzzy -msgid ":c:data:`PyExc_BaseExceptionGroup`." -msgstr ":c:data:`PyExc_BaseException`" - -#: c-api/exceptions.rst:1243 -msgid "OSError aliases" -msgstr "" - -#: c-api/exceptions.rst:1245 -msgid "The following are a compatibility aliases to :c:data:`PyExc_OSError`." -msgstr "" - -#: c-api/exceptions.rst:1247 -msgid "These aliases used to be separate exception types." -msgstr "" - -#: c-api/exceptions.rst:1257 -msgid "Notes" -msgstr "Notes" - -#: c-api/exceptions.rst:1266 -msgid "[win]_" -msgstr "" - -#: c-api/exceptions.rst:1268 -msgid "Notes:" -msgstr "Notes :" - -#: c-api/exceptions.rst:1271 -msgid "" -":c:var:`!PyExc_WindowsError` is only defined on Windows; protect code that " -"uses this by testing that the preprocessor macro ``MS_WINDOWS`` is defined." -msgstr "" - -#: c-api/exceptions.rst:1278 -msgid "Warning types" -msgstr "" - -#: c-api/exceptions.rst:1288 -msgid ":exc:`Warning`" -msgstr ":exc:`Warning`" - -#: c-api/exceptions.rst:1290 -msgid ":exc:`BytesWarning`" -msgstr ":exc:`BytesWarning`" - -#: c-api/exceptions.rst:1292 -msgid ":exc:`DeprecationWarning`" -msgstr ":exc:`DeprecationWarning`" - -#: c-api/exceptions.rst:1294 -#, fuzzy -msgid ":exc:`EncodingWarning`" -msgstr ":exc:`UnicodeWarning`" - -#: c-api/exceptions.rst:1296 -msgid ":exc:`FutureWarning`" -msgstr ":exc:`FutureWarning`" - -#: c-api/exceptions.rst:1298 -msgid ":exc:`ImportWarning`" -msgstr ":exc:`ImportWarning`" - -#: c-api/exceptions.rst:1300 -msgid ":exc:`PendingDeprecationWarning`" -msgstr ":exc:`PendingDeprecationWarning`" - -#: c-api/exceptions.rst:1302 -msgid ":exc:`ResourceWarning`" -msgstr ":exc:`ResourceWarning`" - -#: c-api/exceptions.rst:1304 -msgid ":exc:`RuntimeWarning`" -msgstr ":exc:`RuntimeWarning`" - -#: c-api/exceptions.rst:1306 -msgid ":exc:`SyntaxWarning`" -msgstr ":exc:`SyntaxWarning`" - -#: c-api/exceptions.rst:1308 -msgid ":exc:`UnicodeWarning`" -msgstr ":exc:`UnicodeWarning`" - -#: c-api/exceptions.rst:1310 -msgid ":exc:`UserWarning`" -msgstr ":exc:`UserWarning`" - -#: c-api/exceptions.rst:1312 -msgid ":c:data:`PyExc_ResourceWarning`." -msgstr ":c:data:`PyExc_ResourceWarning`." - -#: c-api/exceptions.rst:1315 -#, fuzzy -msgid ":c:data:`PyExc_EncodingWarning`." -msgstr ":c:data:`PyExc_UnicodeWarning`" - -#: c-api/exceptions.rst:1320 -msgid "Tracebacks" -msgstr "" - -#: c-api/exceptions.rst:1324 -msgid "" -"Type object for traceback objects. This is available " -"as :class:`types.TracebackType` in the Python layer." -msgstr "" - -#: c-api/exceptions.rst:1330 -msgid "" -"Return true if *op* is a traceback object, false otherwise. This function " -"does not account for subtypes." -msgstr "" - -#: c-api/exceptions.rst:1336 -msgid "" -"Replace the :attr:`~BaseException.__traceback__` attribute on the current " -"exception with a new traceback prepending *f* to the existing chain." -msgstr "" - -#: c-api/exceptions.rst:1339 -msgid "Calling this function without an exception set is undefined behavior." -msgstr "" - -#: c-api/exceptions.rst:1349 -msgid "" -"This function returns ``0`` on success, and returns ``-1`` with an exception " -"set on failure." -msgstr "" - -#: c-api/exceptions.rst:1347 -msgid "Write the traceback *tb* into the file *f*." -msgstr "" - -#: c-api/exceptions.rst:1354 -msgid "" -"Write a trace of the Python stack in *tstate* into the file *fd*. The " -"format looks like::" -msgstr "" - -#: c-api/exceptions.rst:1363 -msgid "" -"This function is meant to debug situations such as segfaults, fatal errors, " -"and similar. The file and function names it outputs are encoded to ASCII " -"with backslashreplace and truncated to 500 characters. It writes only the " -"first 100 frames; further frames are truncated with the line ``...``." -msgstr "" - -#: c-api/exceptions.rst:1393 -msgid "" -"This function will return ``NULL`` on success, or an error message on error." -msgstr "" - -#: c-api/exceptions.rst:1401 -msgid "" -"This function is intended for use in crash scenarios such as signal handlers " -"for SIGSEGV, where the interpreter may be in an inconsistent state. Given " -"that it reads interpreter data structures that may be partially modified, " -"the function might produce incomplete output or it may even crash itself." -msgstr "" - -#: c-api/exceptions.rst:1375 -msgid "" -"The caller does not need to hold an :term:`attached thread state`, nor does " -"*tstate* need to be attached." -msgstr "" - -#: c-api/exceptions.rst:1382 -msgid "Write the traces of all Python threads in *interp* into the file *fd*." -msgstr "" - -#: c-api/exceptions.rst:1384 -msgid "" -"If *interp* is ``NULL`` then this function will try to identify the current " -"interpreter using thread-specific storage. If it cannot, it will return an " -"error." -msgstr "" - -#: c-api/exceptions.rst:1388 -msgid "" -"If *current_tstate* is not ``NULL`` then it will be used to identify what " -"the current thread is in the written output. If it is ``NULL`` then this " -"function will identify the current thread using thread-specific storage. It " -"is not an error if the function is unable to get the current Python thread " -"state." -msgstr "" - -#: c-api/exceptions.rst:1395 -msgid "" -"This function is meant to debug situations such as segfaults, fatal errors, " -"and similar. It calls :c:func:`PyUnstable_DumpTraceback` for each thread. It " -"only writes the tracebacks of the first *max_threads* threads, further " -"output is truncated with the line ``...``. If *max_threads* is 0, the " -"function will use a default value of 100 for the argument." -msgstr "" - -#: c-api/exceptions.rst:1406 -msgid "" -"The caller does not need to hold an :term:`attached thread state`, nor does " -"*current_tstate* need to be attached." -msgstr "" - -#: c-api/exceptions.rst:1410 -msgid "" -"On the :term:`free-threaded build`, this function is not thread-safe. If " -"another thread deletes its :term:`thread state` while this function is being " -"called, the process will likely crash." -msgstr "" - -#~ msgid "Standard Exceptions" -#~ msgstr "Exceptions standards" - -#~ msgid "C Name" -#~ msgstr "Nom C" - -#~ msgid "[1]_" -#~ msgstr "[1]_" - -#~ msgid ":c:data:`PyExc_Exception`" -#~ msgstr ":c:data:`PyExc_Exception`" - -#~ msgid ":c:data:`PyExc_ArithmeticError`" -#~ msgstr ":c:data:`PyExc_ArithmeticError`" - -#~ msgid ":c:data:`PyExc_AssertionError`" -#~ msgstr ":c:data:`PyExc_AssertionError`" - -#~ msgid ":c:data:`PyExc_AttributeError`" -#~ msgstr ":c:data:`PyExc_AttributeError`" - -#~ msgid ":c:data:`PyExc_BlockingIOError`" -#~ msgstr ":c:data:`PyExc_BlockingIOError`" - -#~ msgid ":c:data:`PyExc_BrokenPipeError`" -#~ msgstr ":c:data:`PyExc_BrokenPipeError`" - -#~ msgid ":c:data:`PyExc_BufferError`" -#~ msgstr ":c:data:`PyExc_BufferError`" - -#~ msgid ":c:data:`PyExc_ChildProcessError`" -#~ msgstr ":c:data:`PyExc_ChildProcessError`" - -#~ msgid ":c:data:`PyExc_ConnectionAbortedError`" -#~ msgstr ":c:data:`PyExc_ConnectionAbortedError`" - -#~ msgid ":c:data:`PyExc_ConnectionError`" -#~ msgstr ":c:data:`PyExc_ConnectionError`" - -#~ msgid ":c:data:`PyExc_ConnectionRefusedError`" -#~ msgstr ":c:data:`PyExc_ConnectionRefusedError`" - -#~ msgid ":c:data:`PyExc_ConnectionResetError`" -#~ msgstr ":c:data:`PyExc_ConnectionResetError`" - -#~ msgid ":c:data:`PyExc_EOFError`" -#~ msgstr ":c:data:`PyExc_EOFError`" - -#~ msgid ":c:data:`PyExc_FileExistsError`" -#~ msgstr ":c:data:`PyExc_FileExistsError`" - -#~ msgid ":c:data:`PyExc_FileNotFoundError`" -#~ msgstr ":c:data:`PyExc_FloatingPointError`" - -#~ msgid ":c:data:`PyExc_FloatingPointError`" -#~ msgstr ":c:data:`PyExc_FloatingPointError`" - -#~ msgid ":c:data:`PyExc_GeneratorExit`" -#~ msgstr ":c:data:`PyExc_GeneratorExit`" - -#~ msgid ":c:data:`PyExc_ImportError`" -#~ msgstr ":c:data:`PyExc_ImportError`" - -#~ msgid ":c:data:`PyExc_IndentationError`" -#~ msgstr ":c:data:`PyExc_IndentationError`" - -#~ msgid ":c:data:`PyExc_IndexError`" -#~ msgstr ":c:data:`PyExc_IndexError`" - -#~ msgid ":c:data:`PyExc_InterruptedError`" -#~ msgstr ":c:data:`PyExc_InterruptedError`" - -#~ msgid ":c:data:`PyExc_IsADirectoryError`" -#~ msgstr ":c:data:`PyExc_IsADirectoryError`" - -#~ msgid ":c:data:`PyExc_KeyError`" -#~ msgstr ":c:data:`PyExc_KeyError`" - -#~ msgid ":c:data:`PyExc_KeyboardInterrupt`" -#~ msgstr ":c:data:`PyExc_KeyboardInterrupt`" - -#~ msgid ":c:data:`PyExc_LookupError`" -#~ msgstr ":c:data:`PyExc_LookupError`" - -#~ msgid ":c:data:`PyExc_MemoryError`" -#~ msgstr ":c:data:`PyExc_MemoryError`" - -#, fuzzy -#~ msgid ":c:data:`PyExc_ModuleNotFoundError`" -#~ msgstr ":c:data:`PyExc_ModuleNotFoundError`." - -#~ msgid ":c:data:`PyExc_NameError`" -#~ msgstr ":c:data:`PyExc_NameError`" - -#~ msgid ":c:data:`PyExc_NotADirectoryError`" -#~ msgstr ":c:data:`PyExc_NotADirectoryError`" - -#~ msgid ":c:data:`PyExc_NotImplementedError`" -#~ msgstr ":c:data:`PyExc_NotImplementedError`" - -#~ msgid ":c:data:`PyExc_OSError`" -#~ msgstr ":c:data:`PyExc_OSError`" - -#~ msgid ":c:data:`PyExc_OverflowError`" -#~ msgstr ":c:data:`PyExc_OverflowError`" - -#~ msgid ":c:data:`PyExc_PermissionError`" -#~ msgstr ":c:data:`PyExc_PermissionError`" - -#~ msgid ":c:data:`PyExc_ProcessLookupError`" -#~ msgstr ":c:data:`PyExc_ProcessLookupError`" - -#, fuzzy -#~ msgid ":c:data:`PyExc_PythonFinalizationError`" -#~ msgstr ":c:data:`PyExc_ConnectionError`" - -#~ msgid ":c:data:`PyExc_RecursionError`" -#~ msgstr ":c:data:`PyExc_ReferenceError`" - -#~ msgid ":c:data:`PyExc_ReferenceError`" -#~ msgstr ":c:data:`PyExc_ReferenceError`" - -#~ msgid ":c:data:`PyExc_RuntimeError`" -#~ msgstr ":c:data:`PyExc_RuntimeError`" - -#~ msgid ":c:data:`PyExc_StopAsyncIteration`" -#~ msgstr ":c:data:`PyExc_StopAsyncIteration`" - -#~ msgid ":c:data:`PyExc_StopIteration`" -#~ msgstr ":c:data:`PyExc_StopIteration`" - -#~ msgid ":c:data:`PyExc_SyntaxError`" -#~ msgstr ":c:data:`PyExc_SyntaxError`" - -#~ msgid ":c:data:`PyExc_SystemError`" -#~ msgstr ":c:data:`PyExc_SystemError`" - -#~ msgid ":c:data:`PyExc_SystemExit`" -#~ msgstr ":c:data:`PyExc_SystemExit`" - -#~ msgid ":c:data:`PyExc_TabError`" -#~ msgstr ":c:data:`PyExc_TabError`" - -#~ msgid ":c:data:`PyExc_TimeoutError`" -#~ msgstr ":c:data:`PyExc_ImportError`" - -#~ msgid ":c:data:`PyExc_TypeError`" -#~ msgstr ":c:data:`PyExc_TypeError`" - -#~ msgid ":c:data:`PyExc_UnboundLocalError`" -#~ msgstr ":c:data:`PyExc_UnboundLocalError`" - -#~ msgid ":c:data:`PyExc_UnicodeDecodeError`" -#~ msgstr ":c:data:`PyExc_UnicodeDecodeError`" - -#~ msgid ":c:data:`PyExc_UnicodeEncodeError`" -#~ msgstr ":c:data:`PyExc_UnicodeEncodeError`" - -#~ msgid ":c:data:`PyExc_UnicodeError`" -#~ msgstr ":c:data:`PyExc_UnicodeError`" - -#~ msgid ":c:data:`PyExc_UnicodeTranslateError`" -#~ msgstr ":c:data:`PyExc_UnicodeTranslateError`" - -#~ msgid ":c:data:`PyExc_ValueError`" -#~ msgstr ":c:data:`PyExc_ValueError`" - -#~ msgid ":c:data:`PyExc_ZeroDivisionError`" -#~ msgstr ":c:data:`PyExc_ZeroDivisionError`" - -#, fuzzy -#~ msgid ":c:data:`!PyExc_EnvironmentError`" -#~ msgstr ":c:data:`PyExc_EnvironmentError`" - -#, fuzzy -#~ msgid ":c:data:`!PyExc_IOError`" -#~ msgstr ":c:data:`PyExc_IOError`" - -#, fuzzy -#~ msgid ":c:data:`!PyExc_WindowsError`" -#~ msgstr ":c:data:`PyExc_WindowsError`" - -#~ msgid "This is a base class for other standard exceptions." -#~ msgstr "C'est la classe de base pour les autres exceptions standards." - -#~ msgid ":c:data:`PyExc_Warning`" -#~ msgstr ":c:data:`PyExc_Warning`" - -#~ msgid ":c:data:`PyExc_BytesWarning`" -#~ msgstr ":c:data:`PyExc_BytesWarning`" - -#~ msgid ":c:data:`PyExc_DeprecationWarning`" -#~ msgstr ":c:data:`PyExc_DeprecationWarning`" - -#~ msgid ":c:data:`PyExc_FutureWarning`" -#~ msgstr ":c:data:`PyExc_FutureWarning`" - -#~ msgid ":c:data:`PyExc_ImportWarning`" -#~ msgstr ":c:data:`PyExc_ImportWarning`" - -#~ msgid ":c:data:`PyExc_PendingDeprecationWarning`" -#~ msgstr ":c:data:`PyExc_PendingDeprecationWarning`" - -#~ msgid ":c:data:`PyExc_ResourceWarning`" -#~ msgstr ":c:data:`PyExc_ResourceWarning`" - -#~ msgid ":c:data:`PyExc_RuntimeWarning`" -#~ msgstr ":c:data:`PyExc_RuntimeWarning`" - -#~ msgid ":c:data:`PyExc_SyntaxWarning`" -#~ msgstr ":c:data:`PyExc_SyntaxWarning`" - -#~ msgid ":c:data:`PyExc_UserWarning`" -#~ msgstr ":c:data:`PyExc_UserWarning`" - -#~ 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 "module" -#~ msgstr "module" - -#~ msgid "signal" -#~ msgstr "*signal*" - -#, fuzzy -#~ msgid "PyExc_BaseException (C var)" -#~ msgstr ":c:data:`PyExc_BaseException`" - -#, fuzzy -#~ msgid "PyExc_Exception (C var)" -#~ msgstr ":c:data:`PyExc_Exception`" - -#, fuzzy -#~ msgid "PyExc_ArithmeticError (C var)" -#~ msgstr ":c:data:`PyExc_ArithmeticError`" - -#, fuzzy -#~ msgid "PyExc_AssertionError (C var)" -#~ msgstr ":c:data:`PyExc_AssertionError`" - -#, fuzzy -#~ msgid "PyExc_AttributeError (C var)" -#~ msgstr ":c:data:`PyExc_AttributeError`" - -#, fuzzy -#~ msgid "PyExc_BlockingIOError (C var)" -#~ msgstr ":c:data:`PyExc_BlockingIOError`" - -#, fuzzy -#~ msgid "PyExc_BrokenPipeError (C var)" -#~ msgstr ":c:data:`PyExc_BrokenPipeError`" - -#, fuzzy -#~ msgid "PyExc_BufferError (C var)" -#~ msgstr ":c:data:`PyExc_BufferError`" - -#, fuzzy -#~ msgid "PyExc_ChildProcessError (C var)" -#~ msgstr ":c:data:`PyExc_ChildProcessError`" - -#, fuzzy -#~ msgid "PyExc_ConnectionAbortedError (C var)" -#~ msgstr ":c:data:`PyExc_ConnectionAbortedError`" - -#, fuzzy -#~ msgid "PyExc_ConnectionError (C var)" -#~ msgstr ":c:data:`PyExc_ConnectionError`" - -#, fuzzy -#~ msgid "PyExc_ConnectionRefusedError (C var)" -#~ msgstr ":c:data:`PyExc_ConnectionRefusedError`" - -#, fuzzy -#~ msgid "PyExc_ConnectionResetError (C var)" -#~ msgstr ":c:data:`PyExc_ConnectionResetError`" - -#, fuzzy -#~ msgid "PyExc_EOFError (C var)" -#~ msgstr ":c:data:`PyExc_EOFError`" - -#, fuzzy -#~ msgid "PyExc_FileExistsError (C var)" -#~ msgstr ":c:data:`PyExc_FileExistsError`" - -#, fuzzy -#~ msgid "PyExc_FileNotFoundError (C var)" -#~ msgstr ":c:data:`PyExc_FloatingPointError`" - -#, fuzzy -#~ msgid "PyExc_FloatingPointError (C var)" -#~ msgstr ":c:data:`PyExc_FloatingPointError`" - -#, fuzzy -#~ msgid "PyExc_GeneratorExit (C var)" -#~ msgstr ":c:data:`PyExc_GeneratorExit`" - -#, fuzzy -#~ msgid "PyExc_ImportError (C var)" -#~ msgstr ":c:data:`PyExc_ImportError`" - -#, fuzzy -#~ msgid "PyExc_IndentationError (C var)" -#~ msgstr ":c:data:`PyExc_IndentationError`" - -#, fuzzy -#~ msgid "PyExc_IndexError (C var)" -#~ msgstr ":c:data:`PyExc_IndexError`" - -#, fuzzy -#~ msgid "PyExc_InterruptedError (C var)" -#~ msgstr ":c:data:`PyExc_InterruptedError`" - -#, fuzzy -#~ msgid "PyExc_IsADirectoryError (C var)" -#~ msgstr ":c:data:`PyExc_IsADirectoryError`" - -#, fuzzy -#~ msgid "PyExc_KeyError (C var)" -#~ msgstr ":c:data:`PyExc_KeyError`" - -#, fuzzy -#~ msgid "PyExc_KeyboardInterrupt (C var)" -#~ msgstr ":c:data:`PyExc_KeyboardInterrupt`" - -#, fuzzy -#~ msgid "PyExc_LookupError (C var)" -#~ msgstr ":c:data:`PyExc_LookupError`" - -#, fuzzy -#~ msgid "PyExc_MemoryError (C var)" -#~ msgstr ":c:data:`PyExc_MemoryError`" - -#, fuzzy -#~ msgid "PyExc_ModuleNotFoundError (C var)" -#~ msgstr ":c:data:`PyExc_ModuleNotFoundError`." - -#, fuzzy -#~ msgid "PyExc_NameError (C var)" -#~ msgstr ":c:data:`PyExc_NameError`" - -#, fuzzy -#~ msgid "PyExc_NotADirectoryError (C var)" -#~ msgstr ":c:data:`PyExc_NotADirectoryError`" - -#, fuzzy -#~ msgid "PyExc_NotImplementedError (C var)" -#~ msgstr ":c:data:`PyExc_NotImplementedError`" - -#, fuzzy -#~ msgid "PyExc_OSError (C var)" -#~ msgstr ":c:data:`PyExc_OSError`" - -#, fuzzy -#~ msgid "PyExc_OverflowError (C var)" -#~ msgstr ":c:data:`PyExc_OverflowError`" - -#, fuzzy -#~ msgid "PyExc_PermissionError (C var)" -#~ msgstr ":c:data:`PyExc_PermissionError`" - -#, fuzzy -#~ msgid "PyExc_ProcessLookupError (C var)" -#~ msgstr ":c:data:`PyExc_ProcessLookupError`" - -#, fuzzy -#~ msgid "PyExc_PythonFinalizationError (C var)" -#~ msgstr ":c:data:`PyExc_ConnectionError`" - -#, fuzzy -#~ msgid "PyExc_RecursionError (C var)" -#~ msgstr ":c:data:`PyExc_ReferenceError`" - -#, fuzzy -#~ msgid "PyExc_ReferenceError (C var)" -#~ msgstr ":c:data:`PyExc_ReferenceError`" - -#, fuzzy -#~ msgid "PyExc_RuntimeError (C var)" -#~ msgstr ":c:data:`PyExc_RuntimeError`" - -#, fuzzy -#~ msgid "PyExc_StopAsyncIteration (C var)" -#~ msgstr ":c:data:`PyExc_StopAsyncIteration`" - -#, fuzzy -#~ msgid "PyExc_StopIteration (C var)" -#~ msgstr ":c:data:`PyExc_StopIteration`" - -#, fuzzy -#~ msgid "PyExc_SyntaxError (C var)" -#~ msgstr ":c:data:`PyExc_SyntaxError`" - -#, fuzzy -#~ msgid "PyExc_SystemError (C var)" -#~ msgstr ":c:data:`PyExc_SystemError`" - -#, fuzzy -#~ msgid "PyExc_SystemExit (C var)" -#~ msgstr ":c:data:`PyExc_SystemExit`" - -#, fuzzy -#~ msgid "PyExc_TabError (C var)" -#~ msgstr ":c:data:`PyExc_TabError`" - -#, fuzzy -#~ msgid "PyExc_TimeoutError (C var)" -#~ msgstr ":c:data:`PyExc_ImportError`" - -#, fuzzy -#~ msgid "PyExc_TypeError (C var)" -#~ msgstr ":c:data:`PyExc_TypeError`" - -#, fuzzy -#~ msgid "PyExc_UnboundLocalError (C var)" -#~ msgstr ":c:data:`PyExc_UnboundLocalError`" - -#, fuzzy -#~ msgid "PyExc_UnicodeDecodeError (C var)" -#~ msgstr ":c:data:`PyExc_UnicodeDecodeError`" - -#, fuzzy -#~ msgid "PyExc_UnicodeEncodeError (C var)" -#~ msgstr ":c:data:`PyExc_UnicodeEncodeError`" - -#, fuzzy -#~ msgid "PyExc_UnicodeError (C var)" -#~ msgstr ":c:data:`PyExc_UnicodeError`" - -#, fuzzy -#~ msgid "PyExc_UnicodeTranslateError (C var)" -#~ msgstr ":c:data:`PyExc_UnicodeTranslateError`" - -#, fuzzy -#~ msgid "PyExc_ValueError (C var)" -#~ msgstr ":c:data:`PyExc_ValueError`" - -#, fuzzy -#~ msgid "PyExc_ZeroDivisionError (C var)" -#~ msgstr ":c:data:`PyExc_ZeroDivisionError`" - -#, fuzzy -#~ msgid "PyExc_EnvironmentError (C var)" -#~ msgstr ":c:data:`PyExc_EnvironmentError`" - -#, fuzzy -#~ msgid "PyExc_IOError (C var)" -#~ msgstr ":c:data:`PyExc_IOError`" - -#, fuzzy -#~ msgid "PyExc_WindowsError (C var)" -#~ msgstr ":c:data:`PyExc_WindowsError`" - -#, fuzzy -#~ msgid "PyExc_Warning (C var)" -#~ msgstr ":c:data:`PyExc_Warning`" - -#, fuzzy -#~ msgid "PyExc_BytesWarning (C var)" -#~ msgstr ":c:data:`PyExc_BytesWarning`" - -#, fuzzy -#~ msgid "PyExc_DeprecationWarning (C var)" -#~ msgstr ":c:data:`PyExc_DeprecationWarning`" - -#, fuzzy -#~ msgid "PyExc_FutureWarning (C var)" -#~ msgstr ":c:data:`PyExc_FutureWarning`" - -#, fuzzy -#~ msgid "PyExc_ImportWarning (C var)" -#~ msgstr ":c:data:`PyExc_ImportWarning`" - -#, fuzzy -#~ msgid "PyExc_PendingDeprecationWarning (C var)" -#~ msgstr ":c:data:`PyExc_PendingDeprecationWarning`" - -#, fuzzy -#~ msgid "PyExc_ResourceWarning (C var)" -#~ msgstr ":c:data:`PyExc_ResourceWarning`" - -#, fuzzy -#~ msgid "PyExc_RuntimeWarning (C var)" -#~ msgstr ":c:data:`PyExc_RuntimeWarning`" - -#, fuzzy -#~ msgid "PyExc_SyntaxWarning (C var)" -#~ msgstr ":c:data:`PyExc_SyntaxWarning`" - -#, fuzzy -#~ msgid "PyExc_UnicodeWarning (C var)" -#~ msgstr ":c:data:`PyExc_UnicodeWarning`" - -#, fuzzy -#~ msgid "PyExc_UserWarning (C var)" -#~ msgstr ":c:data:`PyExc_UserWarning`" - -#~ msgid ":ref:`Availability `: Windows." -#~ msgstr ":ref:`Disponibilité ` : Windows." - -#~ msgid "\\(1)" -#~ msgstr "\\(1)" - -#~ msgid "\\(2)" -#~ msgstr "\\(2)" - -#~ msgid "\\(3)" -#~ msgstr "\\(3)" diff --git a/c-api/extension-modules.po b/c-api/extension-modules.po deleted file mode 100644 index 939a2a6ac1..0000000000 --- a/c-api/extension-modules.po +++ /dev/null @@ -1,423 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/extension-modules.rst:6 -msgid "Defining extension modules" -msgstr "" - -#: c-api/extension-modules.rst:8 -msgid "" -"A C extension for CPython is a shared library (for example, a ``.so`` file " -"on Linux, ``.pyd`` DLL on Windows), which is loadable into the Python " -"process (for example, it is compiled with compatible compiler settings), and " -"which exports an :dfn:`export hook` function (or an old-" -"style :ref:`initialization function `)." -msgstr "" - -#: c-api/extension-modules.rst:14 -msgid "" -"To be importable by default (that is, " -"by :py:class:`importlib.machinery.ExtensionFileLoader`), the shared library " -"must be available on :py:attr:`sys.path`, and must be named after the module " -"name plus an extension listed " -"in :py:attr:`importlib.machinery.EXTENSION_SUFFIXES`." -msgstr "" - -#: c-api/extension-modules.rst:22 -msgid "" -"Building, packaging and distributing extension modules is best done with " -"third-party tools, and is out of scope of this document. One suitable tool " -"is Setuptools, whose documentation can be found at https://" -"setuptools.pypa.io/en/latest/setuptools.html." -msgstr "" - -#: c-api/extension-modules.rst:30 -msgid "Extension export hook" -msgstr "" - -#: c-api/extension-modules.rst:34 -msgid "" -"Support for the :samp:`PyModExport_{}` export hook was added in Python " -"3.15. The older way of defining modules is still available: consult either " -"the :ref:`extension-pyinit` section or earlier versions of this " -"documentation if you plan to support earlier Python versions." -msgstr "" - -#: c-api/extension-modules.rst:39 -msgid "" -"The export hook must be an exported function with the following signature:" -msgstr "" - -#: c-api/extension-modules.rst:43 -msgid "" -"For modules with ASCII-only names, the :ref:`export hook ` must be named :samp:`PyModExport_{}`, with ```` replaced " -"by the module's name." -msgstr "" - -#: c-api/extension-modules.rst:47 -msgid "" -"For non-ASCII module names, the export hook must instead be " -"named :samp:`PyModExportU_{}` (note the ``U``), with ```` " -"encoded using Python's *punycode* encoding with hyphens replaced by " -"underscores. In Python:" -msgstr "" - -#: c-api/extension-modules.rst:60 -msgid "" -"The export hook returns an array of :c:type:`PySlot` entries, terminated by " -"an entry with a slot ID of ``0``. These slots describe how the module should " -"be created and initialized." -msgstr "" - -#: c-api/extension-modules.rst:64 -msgid "" -"This array must remain valid and constant until interpreter shutdown. " -"Typically, it should use ``static`` storage. Prefer using " -"the :c:macro:`Py_mod_create` and :c:macro:`Py_mod_exec` slots for any " -"dynamic behavior." -msgstr "" - -#: c-api/extension-modules.rst:69 -msgid "" -"The export hook may return ``NULL`` with an exception set to signal failure." -msgstr "" - -#: c-api/extension-modules.rst:71 -msgid "" -"It is recommended to define the export hook function using a helper macro:" -msgstr "" - -#: c-api/extension-modules.rst:75 -msgid "Declare an extension module export hook. This macro:" -msgstr "" - -#: c-api/extension-modules.rst:78 -msgid "specifies the :c:expr:`PySlot*` return type," -msgstr "" - -#: c-api/extension-modules.rst:224 -msgid "adds any special linkage declarations required by the platform, and" -msgstr "" - -#: c-api/extension-modules.rst:225 -msgid "for C++, declares the function as ``extern \"C\"``." -msgstr "" - -#: c-api/extension-modules.rst:255 -msgid "For example, a module called ``spam`` would be defined like this::" -msgstr "" - -#: c-api/extension-modules.rst:100 -msgid "" -"The export hook is typically the only non-\\ ``static`` item defined in the " -"module's C source." -msgstr "" - -#: c-api/extension-modules.rst:103 -msgid "" -"The hook should be kept short -- ideally, one line as above. If you do need " -"to use Python C API in this function, it is recommended to call " -"``PyABIInfo_Check(&abi_info, \"modulename\")`` first to raise an exception, " -"rather than crash, in common cases of ABI mismatch." -msgstr "" - -#: c-api/extension-modules.rst:111 -msgid "" -"It is possible to export multiple modules from a single shared library by " -"defining multiple export hooks. However, importing them requires a custom " -"importer or suitably named copies/links of the extension file, because " -"Python's import machinery only finds the function corresponding to the " -"filename. See the `Multiple modules in one library `__ section in :pep:`489` for " -"details." -msgstr "" - -#: c-api/extension-modules.rst:123 -msgid "Multi-phase initialization" -msgstr "" - -#: c-api/extension-modules.rst:125 -msgid "The process of creating an extension module follows several phases:" -msgstr "" - -#: c-api/extension-modules.rst:127 -msgid "" -"Python finds and calls the export hook to get information on how to create " -"the module." -msgstr "" - -#: c-api/extension-modules.rst:129 -msgid "" -"Before any substantial code is executed, Python can determine which " -"capabilities the module supports, and it can adjust the environment or " -"refuse loading an incompatible extension. Slots " -"like :c:data:`Py_mod_abi`, :c:data:`Py_mod_gil` " -"and :c:data:`Py_mod_multiple_interpreters` influence this step." -msgstr "" - -#: c-api/extension-modules.rst:134 -msgid "" -"By default, Python itself then creates the module object -- that is, it does " -"the equivalent of calling :py:meth:`~object.__new__` when creating an " -"object. This step can be overridden using the :c:data:`Py_mod_create` slot." -msgstr "" - -#: c-api/extension-modules.rst:137 -msgid "" -"Python sets initial module attributes like :attr:`~module.__package__` " -"and :attr:`~module.__loader__`, and inserts the module object " -"into :py:attr:`sys.modules`." -msgstr "" - -#: c-api/extension-modules.rst:140 -msgid "" -"Afterwards, the module object is initialized in an extension-specific way -- " -"the equivalent of :py:meth:`~object.__init__` when creating an object, or of " -"executing top-level code in a Python-language module. The behavior is " -"specified using the :c:data:`Py_mod_exec` slot." -msgstr "" - -#: c-api/extension-modules.rst:145 -msgid "" -"This is called *multi-phase initialization* to distinguish it from the " -"legacy (but still supported) :ref:`single-phase initialization `, where an initialization function returns a fully " -"constructed module." -msgstr "" - -#: c-api/extension-modules.rst:151 -msgid "Added support for multi-phase initialization (:pep:`489`)." -msgstr "" - -#: c-api/extension-modules.rst:155 -msgid "Multiple module instances" -msgstr "" - -#: c-api/extension-modules.rst:157 -msgid "" -"By default, extension modules are not singletons. For example, if " -"the :py:attr:`sys.modules` entry is removed and the module is re-imported, a " -"new module object is created and, typically, populated with fresh method and " -"type objects. The old module is subject to normal garbage collection. This " -"mirrors the behavior of pure-Python modules." -msgstr "" - -#: c-api/extension-modules.rst:164 -msgid "" -"Additional module instances may be created in :ref:`sub-interpreters ` or after Python runtime reinitialization " -"(:c:func:`Py_Finalize` and :c:func:`Py_Initialize`). In these cases, sharing " -"Python objects between module instances would likely cause crashes or " -"undefined behavior." -msgstr "" - -#: c-api/extension-modules.rst:171 -msgid "" -"To avoid such issues, each instance of an extension module should be " -"*isolated*: changes to one instance should not implicitly affect the others, " -"and all state owned by the module, including references to Python objects, " -"should be specific to a particular module instance. See :ref:`isolating-" -"extensions-howto` for more details and a practical guide." -msgstr "" - -#: c-api/extension-modules.rst:177 -msgid "" -"A simpler way to avoid these issues is :ref:`raising an error on repeated " -"initialization `." -msgstr "" - -#: c-api/extension-modules.rst:180 -msgid "" -"All modules are expected to support :ref:`sub-interpreters `, or otherwise explicitly signal a lack of support. This is usually " -"achieved by isolation or blocking repeated initialization, as above. A " -"module may also be limited to the main interpreter using " -"the :c:data:`Py_mod_multiple_interpreters` slot." -msgstr "" - -#: c-api/extension-modules.rst:192 -msgid "``PyInit`` function" -msgstr "" - -#: c-api/extension-modules.rst:196 -msgid "" -"This functionality will not get new features, but there are no plans to " -"remove it." -msgstr "" - -#: c-api/extension-modules.rst:199 -msgid "" -"Instead of :c:func:`PyModExport_modulename`, an extension module can define " -"an older-style :dfn:`initialization function` with the signature:" -msgstr "" - -#: c-api/extension-modules.rst:204 -msgid "" -"Its name should be :samp:`PyInit_{}`, with ```` replaced by the " -"name of the module. For non-ASCII module names, use :samp:`PyInitU_{}` " -"instead, with ```` encoded in the same way as for the :ref:`export " -"hook ` (that is, using Punycode with underscores)." -msgstr "" - -#: c-api/extension-modules.rst:211 -msgid "" -"If a module exports both :samp:`PyInit_{}` " -"and :samp:`PyModExport_{}`, the :samp:`PyInit_{}` function is " -"ignored." -msgstr "" - -#: c-api/extension-modules.rst:215 -msgid "" -"Like with :c:macro:`PyMODEXPORT_FUNC`, it is recommended to define the " -"initialization function using a helper macro:" -msgstr "" - -#: c-api/extension-modules.rst:220 -msgid "Declare an extension module initialization function. This macro:" -msgstr "" - -#: c-api/extension-modules.rst:223 -msgid "specifies the :c:expr:`PyObject*` return type," -msgstr "" - -#: c-api/extension-modules.rst:228 -msgid "" -"Normally, the initialization function (``PyInit_modulename``) returns " -"a :c:type:`PyModuleDef` instance with non-" -"``NULL`` :c:member:`~PyModuleDef.m_slots`. This allows Python to " -"use :ref:`multi-phase initialization `." -msgstr "" - -#: c-api/extension-modules.rst:233 -msgid "" -"Before it is returned, the ``PyModuleDef`` instance must be initialized " -"using the following function:" -msgstr "" - -#: c-api/extension-modules.rst:238 -msgid "" -"Ensure a module definition is a properly initialized Python object that " -"correctly reports its type and a reference count." -msgstr "" - -#: c-api/extension-modules.rst:241 -msgid "Return *def* cast to ``PyObject*``, or ``NULL`` if an error occurred." -msgstr "" - -#: c-api/extension-modules.rst:243 -msgid "" -"Calling this function is required before returning a :c:type:`PyModuleDef` " -"from a module initialization function. It should not be used in other " -"contexts." -msgstr "" - -#: c-api/extension-modules.rst:247 -msgid "" -"Note that Python assumes that ``PyModuleDef`` structures are statically " -"allocated. This function may return either a new reference or a borrowed " -"one; this reference must not be released." -msgstr "" - -#: c-api/extension-modules.rst:273 -msgid "Legacy single-phase initialization" -msgstr "" - -#: c-api/extension-modules.rst:277 -msgid "" -"Single-phase initialization is a legacy mechanism to initialize extension " -"modules, with known drawbacks and design flaws. Extension module authors are " -"encouraged to use multi-phase initialization instead." -msgstr "" - -#: c-api/extension-modules.rst:281 -msgid "However, there are no plans to remove support for it." -msgstr "" - -#: c-api/extension-modules.rst:283 -msgid "" -"In single-phase initialization, the old-style :ref:`initialization function " -"` (``PyInit_modulename``) should create, populate and " -"return a module object. This is typically done " -"using :c:func:`PyModule_Create` and functions " -"like :c:func:`PyModule_AddObjectRef`." -msgstr "" - -#: c-api/extension-modules.rst:289 -msgid "" -"Single-phase initialization differs from the :ref:`default ` in the following ways:" -msgstr "" - -#: c-api/extension-modules.rst:292 -msgid "Single-phase modules are, or rather *contain*, “singletons”." -msgstr "" - -#: c-api/extension-modules.rst:294 -msgid "" -"When the module is first initialized, Python saves the contents of the " -"module's ``__dict__`` (that is, typically, the module's functions and types)." -msgstr "" - -#: c-api/extension-modules.rst:298 -msgid "" -"For subsequent imports, Python does not call the initialization function " -"again. Instead, it creates a new module object with a new ``__dict__``, and " -"copies the saved contents to it. For example, given a single-phase module " -"``_testsinglephase`` [#testsinglephase]_ that defines a function ``sum`` and " -"an exception class ``error``:" -msgstr "" - -#: c-api/extension-modules.rst:321 -msgid "" -"The exact behavior should be considered a CPython implementation detail." -msgstr "" - -#: c-api/extension-modules.rst:323 -msgid "" -"To work around the fact that ``PyInit_modulename`` does not take a *spec* " -"argument, some state of the import machinery is saved and applied to the " -"first suitable module created during the ``PyInit_modulename`` call. " -"Specifically, when a sub-module is imported, this mechanism prepends the " -"parent package name to the name of the module." -msgstr "" - -#: c-api/extension-modules.rst:329 -msgid "" -"A single-phase ``PyInit_modulename`` function should create “its” module " -"object as soon as possible, before any other module objects can be created." -msgstr "" - -#: c-api/extension-modules.rst:332 -msgid "Non-ASCII module names (``PyInitU_modulename``) are not supported." -msgstr "" - -#: c-api/extension-modules.rst:334 -msgid "" -"Single-phase modules support module lookup functions " -"like :c:func:`PyState_FindModule`." -msgstr "" - -#: c-api/extension-modules.rst:337 -msgid "The module's :c:member:`PyModuleDef.m_slots` must be NULL." -msgstr "" - -#: c-api/extension-modules.rst:339 -msgid "" -"``_testsinglephase`` is an internal module used in CPython's self-test " -"suite; your installation may or may not include it." -msgstr "" diff --git a/c-api/file.po b/c-api/file.po deleted file mode 100644 index 85de5e2a8e..0000000000 --- a/c-api/file.po +++ /dev/null @@ -1,251 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-12-11 12:00+0100\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" - -#: c-api/file.rst:6 -#, fuzzy -msgid "File objects" -msgstr "Objets fichiers" - -#: c-api/file.rst:10 -#, fuzzy -msgid "" -"These APIs are a minimal emulation of the Python 2 C API for built-in file " -"objects, which used to rely on the buffered I/O (:c: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 C wrappers over these new APIs, and meant mostly for internal " -"error reporting in the interpreter; third-party code is advised to access " -"the :mod:`io` APIs instead." -msgstr "" -"Ces API sont une émulation minimale de l'API C Python 2 pour les objets " -"fichier natifs, qui reposaient sur la gestion des entrées-sorties avec " -"tampon (:c:type:`FILE\\*`) de la bibliothèque standard C. En Python 3, les " -"fichiers et les flux utilisent le nouveau module :mod:`io`, qui définit " -"plusieurs couches au dessus des entrées/sorties bas niveau sans tampon du " -"système d'exploitation. Les fonctions définies ci-dessous, écrites en C, " -"encapsulent ces nouvelles API pour les rendre plus faciles d'utilisation et " -"sont majoritairement pensées pour signaler des erreurs internes dans " -"l'interpréteur ; il est conseillé au code tiers d'utiliser les API " -"de :mod:`io` à la place." - -#: c-api/file.rst:22 -#, fuzzy -msgid "" -"Create a Python file object from the file descriptor of an already opened " -"file *fd*. The arguments *name*, *encoding*, *errors* and *newline* can be " -"``NULL`` to use the defaults; *buffering* can be *-1* to use the default. " -"*name* is ignored and kept for backward compatibility. Return ``NULL`` on " -"failure. For a more comprehensive description of the arguments, please refer " -"to the :func:`io.open` function documentation." -msgstr "" -"Crée un objet fichier Python à partir du descripteur d'un fichier déjà " -"ouvert *fd*. Les arguments *name*, *encoding*, *errors* et *newline* peuvent " -"être *NULL* pour utiliser ceux par défaut ; *buffering* peut être *-1* pour " -"utiliser celui par défaut ; *name* est ignoré et gardé pour la rétro-" -"compatibilité. Renvoie *NULL* en cas d'échec. Pour une description plus " -"détaillée des arguments, merci de vous référer à la documentation de " -"fonction :func:`io.open`." - -#: c-api/file.rst:31 -msgid "" -"Since Python streams have their own buffering layer, mixing them with OS-" -"level file descriptors can produce various issues (such as unexpected " -"ordering of data)." -msgstr "" -"Étant donné que les flux de données Python possèdent leur propre couche de " -"tampon, les mélanger avec des descripteurs de fichiers du niveau du système " -"d'exploitation peut produire des erreurs (comme par exemple un ordre des " -"données inattendu)." - -#: c-api/file.rst:35 -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: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 and returns ``-1`` on failure." -msgstr "" -"Renvoie un descripteur de fichier associé avec *p* comme un :c:type:`int`. " -"Si l'objet est un entier, sa valeur est renvoyée. Sinon, la " -"méthode :meth:`~io.IOBase.fileno` de l'objet est appelée si elle existe; la " -"méthode doit renvoyer un entier, qui est renvoyé en tant que valeur du " -"descripteur. Affecte une exception et renvoie ``-1`` lors d'un échec." - -#: c-api/file.rst:52 -msgid "" -"Equivalent to ``p.readline([n])``, this function reads one line from the " -"object *p*. *p* may be a file object or any object with " -"a :meth:`~io.IOBase.readline` method. If *n* is ``0``, exactly one line is " -"read, regardless of the length of the line. If *n* is greater than ``0``, " -"no more than *n* bytes will be read from the file; a partial line can be " -"returned. In both cases, an empty string is returned if the end of the file " -"is reached immediately. If *n* is less than ``0``, however, one line is " -"read regardless of length, but :exc:`EOFError` is raised if the end of the " -"file is reached immediately." -msgstr "" -"Cette fonction, équivalente à ``p.readline([n])``, lit une ligne de l'objet " -"*p*. *p* peut être un objet fichier ou n'importe quel objet qui possède une " -"méthode :meth:`~io.IOBase.readline`. Si *n* vaut ``0``, une seule ligne est " -"lue, indépendamment de la taille de la ligne. Si *n* est plus grand que " -"``0``, un maximum de *n* octets seront lus en provenance du fichier ; une " -"ligne partielle peut être renvoyée. Dans les deux cas, une chaîne de " -"caractères vide est renvoyée si la fin du fichier est atteinte " -"immédiatement. Cependant, si *n* est plus petit que ``0``, une ligne est lue " -"indépendamment de sa taille, mais :exc:`EOFError` est levée si la fin du " -"fichier est atteinte immédiatement." - -#: c-api/file.rst:65 -msgid "" -"Overrides the normal behavior of :func:`io.open_code` to pass its parameter " -"through the provided handler." -msgstr "" - -#: c-api/file.rst:68 -msgid "The *handler* is a function of type:" -msgstr "" - -#: c-api/file.rst:73 -msgid "" -"Equivalent of :c:expr:`PyObject *(\\*)(PyObject *path, void *userData)`, " -"where *path* is guaranteed to be :c:type:`PyUnicodeObject`." -msgstr "" - -#: c-api/file.rst:77 -msgid "" -"The *userData* pointer is passed into the hook function. Since hook " -"functions may be called from different runtimes, this pointer should not " -"refer directly to Python state." -msgstr "" - -#: c-api/file.rst:81 -msgid "" -"As this hook is intentionally used during import, avoid importing new " -"modules during its execution unless they are known to be frozen or available " -"in ``sys.modules``." -msgstr "" - -#: c-api/file.rst:85 -msgid "" -"Once a hook has been set, it cannot be removed or replaced, and later calls " -"to :c:func:`PyFile_SetOpenCodeHook` will fail. On failure, the function " -"returns -1 and sets an exception if the interpreter has been initialized." -msgstr "" - -#: c-api/file.rst:89 -msgid "This function is safe to call before :c:func:`Py_Initialize`." -msgstr "" - -#: c-api/file.rst:91 -msgid "" -"Raises an :ref:`auditing event ` ``setopencodehook`` with no " -"arguments." -msgstr "" - -#: c-api/file.rst:98 -msgid "" -"Open *path* with the mode ``'rb'``. *path* must be a Python :class:`str` " -"object. The behavior of this function may be overridden " -"by :c:func:`PyFile_SetOpenCodeHook` to allow for some preprocessing of the " -"text." -msgstr "" - -#: c-api/file.rst:103 -msgid "This is analogous to :func:`io.open_code` in Python." -msgstr "" - -#: c-api/file.rst:105 -msgid "" -"On success, this function returns a :term:`strong reference` to a Python " -"file object. On failure, this function returns ``NULL`` with an exception " -"set." -msgstr "" - -#: c-api/file.rst:114 -msgid "" -"Similar to :c:func:`PyFile_OpenCodeObject`, but *path* is a UTF-8 " -"encoded :c:expr:`const char*`." -msgstr "" - -#: c-api/file.rst:124 -#, fuzzy -msgid "" -"Write object *obj* to file object *p*. The only supported flag for *flags* " -"is :c:macro:`Py_PRINT_RAW`; if given, the :func:`str` of the object is " -"written instead of the :func:`repr`." -msgstr "" -"Écrit l'objet *obj* dans l'objet fichier *p*. La seule option gérée pour " -"*flags* est :const:`Py_PRINT_RAW` ; si défini, l'attribut :func:`str` de " -"l'objet est écrit à la place de l'attribut :func:`repr`. Retourne ``0`` en " -"cas de succès ou ``-1`` en cas échec ; l'exception appropriée sera levée." - -#: c-api/file.rst:128 -msgid "If *obj* is ``NULL``, write the string ``\"\"``." -msgstr "" - -#: c-api/file.rst:130 -#, fuzzy -msgid "" -"Return ``0`` on success or ``-1`` on failure; the appropriate exception will " -"be set." -msgstr "" -"Écrit la chaîne de caractères *s* dans l'objet fichier *p*. Retourne ``0`` " -"en cas de succès ou ``-1`` en cas d'échec ; l'exception appropriée sera mise " -"en place." - -#: c-api/file.rst:135 -msgid "" -"Write string *s* to file object *p*. Return ``0`` on success or ``-1`` on " -"failure; the appropriate exception will be set." -msgstr "" -"Écrit la chaîne de caractères *s* dans l'objet fichier *p*. Retourne ``0`` " -"en cas de succès ou ``-1`` en cas d'échec ; l'exception appropriée sera mise " -"en place." - -#: c-api/file.rst:140 -msgid "Soft-deprecated API" -msgstr "" - -#: c-api/file.rst:144 -msgid "" -"These are APIs that were included in Python's C API by mistake. They are " -"documented solely for completeness; use other ``PyFile*`` APIs instead." -msgstr "" - -#: c-api/file.rst:150 -msgid "" -"Use :c:func:`PyFile_FromFd` with defaults (``fd, NULL, \"w\", -1, NULL, " -"NULL, NULL, 0``) instead." -msgstr "" - -#: c-api/file.rst:154 -msgid "" -"Type of file-like objects used internally at Python startup " -"when :py:mod:`io` is not yet available. Use Python :py:func:`open` " -"or :c:func:`PyFile_FromFd` to create file objects instead." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "file" -#~ msgstr "fichier" diff --git a/c-api/float.po b/c-api/float.po deleted file mode 100644 index cd3aa21cc6..0000000000 --- a/c-api/float.po +++ /dev/null @@ -1,365 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-01-14 15:30+0100\n" -"Last-Translator: ANTOINE FOURES \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" - -#: c-api/float.rst:6 -#, fuzzy -msgid "Floating-Point Objects" -msgstr "Objets représentant les nombres à virgule flottante" - -#: c-api/float.rst:13 -#, fuzzy -msgid "" -"This subtype of :c:type:`PyObject` represents a Python floating-point object." -msgstr "" -"Ce sous-type de l'objet :c:type:`PyObject` représente un nombre à virgule " -"flottante en Python." - -#: c-api/float.rst:18 -#, fuzzy -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python floating-point " -"type. This is the same object as :class:`float` in the Python layer." -msgstr "" -"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " -"virgule flottante en Python. C'est le même objet que la " -"classe :class:`float` de la couche Python." - -#: c-api/float.rst:24 -#, fuzzy -msgid "" -"Return true if its argument is a :c:type:`PyFloatObject` or a subtype " -"of :c:type:`PyFloatObject`. This function always succeeds." -msgstr "" -"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject` ou un sous-" -"type de :c:type:`PyFloatObject`." - -#: c-api/float.rst:30 -#, fuzzy -msgid "" -"Return true if its argument is a :c:type:`PyFloatObject`, but not a subtype " -"of :c:type:`PyFloatObject`. This function always succeeds." -msgstr "" -"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject`, mais pas un " -"sous-type de :c:type:`PyFloatObject`." - -#: c-api/float.rst:36 -#, fuzzy -msgid "" -"Create a :c:type:`PyFloatObject` object based on the string value in *str*, " -"or ``NULL`` on failure." -msgstr "" -"Crée un objet :c:type:`PyFloatObject` à partir de la valeur de la chaîne de " -"caractères *str*, ou *NULL* en cas d'échec." - -#: c-api/float.rst:42 -#, fuzzy -msgid "" -"Create a :c:type:`PyFloatObject` object from *v*, or ``NULL`` on failure." -msgstr "" -"Crée un objet :c:type:`PyFloatObject` à partir de *v*, ou *NULL* en cas " -"d'échec." - -#: c-api/float.rst:47 -#, fuzzy -msgid "" -"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:`~object.__float__` method, this method will first be called to " -"convert *pyfloat* into a float. If :meth:`!__float__` is not defined then it " -"falls back to :meth:`~object.__index__`. This method returns ``-1.0`` upon " -"failure, so one should call :c:func:`PyErr_Occurred` to check for errors." -msgstr "" -"Renvoie une représentation du contenu d'un *pyfloat* sous la forme " -"d'un :c:type:`double` en C. Si le *pyfloat* n'est pas un nombre à virgule " -"flottante mais contient une méthode :meth:`__float__`, elle est d'abord " -"appelée pour convertir le *pyfloat* en nombre à virgule flottante. Cette " -"méthode renvoie ``-1.0`` en cas d'échec, il faut " -"appeler :c:func:`PyErr_Occurred` pour vérifier les erreurs." - -#: c-api/float.rst:54 -msgid "Use :meth:`~object.__index__` if available." -msgstr "" - -#: c-api/float.rst:60 -#, fuzzy -msgid "" -"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:type:`double` en C, sans vérifier les erreurs." - -#: c-api/float.rst:66 -msgid "" -"Return a structseq instance which contains information about the precision, " -"minimum and maximum values of a float. It's a thin wrapper around the header " -"file :file:`float.h`." -msgstr "" -"Renvoie une instance *structseq* qui contient les informations sur la " -"précision et les valeurs minimales et maximales pour un nombre à virgule " -"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: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:expr:`double`." -msgstr "" -"Renvoie le nombre à virgule flottante minimal normalisé *DBL_MIN* sous la " -"forme :c:type:`double` en C." - -#: c-api/float.rst:83 -msgid "" -"This macro expands to a constant expression of type :c:expr:`double`, that " -"represents the positive infinity." -msgstr "" - -#: c-api/float.rst:86 -msgid "" -"It is equivalent to the :c:macro:`!INFINITY` macro from the C11 standard " -"```` header." -msgstr "" - -#: c-api/float.rst:94 -msgid "" -"This macro expands to a constant expression of type :c:expr:`double`, that " -"represents a quiet not-a-number (qNaN) value." -msgstr "" - -#: c-api/float.rst:97 -msgid "" -"On most platforms, this is equivalent to the :c:macro:`!NAN` macro from the " -"C11 standard ```` header." -msgstr "" - -#: c-api/float.rst:103 -msgid "Equivalent to :c:macro:`!INFINITY`." -msgstr "" - -#: c-api/float.rst:110 -msgid "" -"The definition (accurate for a :c:expr:`double` type) of the :data:`math.e` " -"constant." -msgstr "" - -#: c-api/float.rst:115 -msgid "High precision (long double) definition of :data:`~math.e` constant." -msgstr "" - -#: c-api/float.rst:122 -msgid "" -"The definition (accurate for a :c:expr:`double` type) of the :data:`math.pi` " -"constant." -msgstr "" - -#: c-api/float.rst:127 -msgid "High precision (long double) definition of :data:`~math.pi` constant." -msgstr "" - -#: c-api/float.rst:134 -msgid "" -"The definition (accurate for a :c:expr:`double` type) of " -"the :data:`math.tau` constant." -msgstr "" - -#: c-api/float.rst:141 -msgid "Return :data:`math.nan` from a function." -msgstr "" - -#: c-api/float.rst:143 -msgid "" -"On most platforms, this is equivalent to ``return PyFloat_FromDouble(NAN)``." -msgstr "" - -#: c-api/float.rst:148 -msgid "" -"Return :data:`math.inf` or :data:`-math.inf ` from a function, " -"depending on the sign of *sign*." -msgstr "" - -#: c-api/float.rst:151 -msgid "On most platforms, this is equivalent to the following::" -msgstr "" - -#: c-api/float.rst:158 -msgid "" -"Return ``1`` if the given floating-point number *X* is finite, that is, it " -"is normal, subnormal or zero, but not infinite or NaN. Return ``0`` " -"otherwise." -msgstr "" - -#: c-api/float.rst:162 -msgid "Use :c:macro:`!isfinite` instead." -msgstr "" - -#: c-api/float.rst:168 -msgid "" -"Return ``1`` if the given floating-point number *X* is positive or negative " -"infinity. Return ``0`` otherwise." -msgstr "" - -#: c-api/float.rst:171 -msgid "Use :c:macro:`!isinf` instead." -msgstr "" - -#: c-api/float.rst:177 -msgid "" -"Return ``1`` if the given floating-point number *X* is a not-a-number (NaN) " -"value. Return ``0`` otherwise." -msgstr "" - -#: c-api/float.rst:180 -msgid "Use :c:macro:`!isnan` instead." -msgstr "" - -#: c-api/float.rst:185 -msgid "Pack and Unpack functions" -msgstr "" - -#: c-api/float.rst:187 -msgid "" -"The pack and unpack functions provide an efficient platform-independent way " -"to store floating-point values as byte strings. The Pack routines produce a " -"bytes string from a C :c:expr:`double`, and the Unpack routines produce a " -"C :c:expr:`double` from such a bytes string. The suffix (2, 4 or 8) " -"specifies the number of bytes in the bytes string:" -msgstr "" - -#: c-api/float.rst:193 -msgid "The 2-byte format is the IEEE 754 binary16 half-precision format." -msgstr "" - -#: c-api/float.rst:194 -msgid "The 4-byte format is the IEEE 754 binary32 single-precision format." -msgstr "" - -#: c-api/float.rst:195 -msgid "The 8-byte format is the IEEE 754 binary64 double-precision format." -msgstr "" - -#: c-api/float.rst:197 -msgid "" -"The NaN type may not be preserved on some platforms while unpacking " -"(signaling NaNs become quiet NaNs), for example on x86 systems in 32-bit " -"mode." -msgstr "" - -#: c-api/float.rst:200 -msgid "" -"It's assumed that the :c:expr:`double` type has the IEEE 754 binary64 double " -"precision format. What happens if it's not true is partly accidental " -"(alas). On non-IEEE platforms with more precision, or larger dynamic range, " -"than IEEE 754 supports, not all values can be packed; on non-IEEE platforms " -"with less precision, or smaller dynamic range, not all values can be " -"unpacked. The packing of special numbers like INFs and NaNs (if such things " -"exist on the platform) may not be handled correctly, and attempting to " -"unpack a bytes string containing an IEEE INF or NaN may raise an exception." -msgstr "" - -#: c-api/float.rst:212 -msgid "Pack functions" -msgstr "" - -#: c-api/float.rst:214 -msgid "" -"The pack routines write 2, 4 or 8 bytes, starting at *p*. *le* is " -"an :c:expr:`int` argument, non-zero if you want the bytes string in little-" -"endian format (exponent last, at ``p+1``, ``p+3``, or ``p+6`` and ``p+7``), " -"zero if you want big-endian format (exponent first, at *p*). Use " -"the :c:macro:`!PY_LITTLE_ENDIAN` constant to select the native endian: it is " -"equal to ``0`` on big endian processor, or ``1`` on little endian processor." -msgstr "" - -#: c-api/float.rst:221 -msgid "" -"Return value: ``0`` if all is OK, ``-1`` if error (and an exception is set, " -"most likely :exc:`OverflowError`)." -msgstr "" - -#: c-api/float.rst:226 -msgid "Pack a C double as the IEEE 754 binary16 half-precision format." -msgstr "" - -#: c-api/float.rst:230 -msgid "Pack a C double as the IEEE 754 binary32 single precision format." -msgstr "" - -#: c-api/float.rst:234 -msgid "Pack a C double as the IEEE 754 binary64 double precision format." -msgstr "" - -#: c-api/float.rst:237 -msgid "This function always succeeds in CPython." -msgstr "" - -#: c-api/float.rst:241 -msgid "Unpack functions" -msgstr "" - -#: c-api/float.rst:243 -msgid "" -"The unpack routines read 2, 4 or 8 bytes, starting at *p*. *le* is " -"an :c:expr:`int` argument, non-zero if the bytes string is in little-endian " -"format (exponent last, at ``p+1``, ``p+3`` or ``p+6`` and ``p+7``), zero if " -"big-endian (exponent first, at *p*). Use the :c:macro:`!PY_LITTLE_ENDIAN` " -"constant to select the native endian: it is equal to ``0`` on big endian " -"processor, or ``1`` on little endian processor." -msgstr "" - -#: c-api/float.rst:250 -msgid "" -"Return value: The unpacked double. On error, this is ``-1.0`` " -"and :c:func:`PyErr_Occurred` is true (and an exception is set, most " -"likely :exc:`OverflowError`)." -msgstr "" - -#: c-api/float.rst:255 -msgid "These functions always succeed in CPython." -msgstr "" - -#: c-api/float.rst:259 -msgid "Unpack the IEEE 754 binary16 half-precision format as a C double." -msgstr "" - -#: c-api/float.rst:263 -msgid "Unpack the IEEE 754 binary32 single precision format as a C double." -msgstr "" - -#: c-api/float.rst:267 -msgid "Unpack the IEEE 754 binary64 double precision format as a C double." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#, fuzzy -#~ msgid "floating-point" -#~ msgstr "Objets représentant les nombres à virgule flottante" - -#~ msgid "" -#~ "Clear the float free list. Return the number of items that could not be " -#~ "freed." -#~ msgstr "" -#~ "Libère la mémoire de la *free list* des nombres à virgule flottante. " -#~ "Renvoie le nombre d'éléments qui n'ont pas pu être libérés." diff --git a/c-api/frame.po b/c-api/frame.po deleted file mode 100644 index 824cf473d4..0000000000 --- a/c-api/frame.po +++ /dev/null @@ -1,295 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-03-19 18:46+0100\n" -"Last-Translator: FULL NAME \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" - -#: c-api/frame.rst:4 -#, fuzzy -msgid "Frame objects" -msgstr "Objets décrivant les *frames*" - -#: c-api/frame.rst:8 -msgid "The C structure of the objects used to describe frame objects." -msgstr "Structure des objets C utilisée pour décrire les objets *frame*." - -#: c-api/frame.rst:10 -msgid "There are no public members in this structure." -msgstr "Il n'y a pas de membres publics dans cette structure." - -#: c-api/frame.rst:12 -msgid "" -"The members of this structure were removed from the public C API. Refer to " -"the :ref:`What's New entry ` for details." -msgstr "" -"Les membres de la structure API publique ont été retirés de l'API publique " -"de C. Visiter :ref:`l'entrée dans la page des nouveautés de Python " -"` pour plus détails." - -#: c-api/frame.rst:17 -msgid "" -"The :c:func:`PyEval_GetFrame` and :c:func:`PyThreadState_GetFrame` functions " -"can be used to get a frame object." -msgstr "" -"Les fonctions :func:`PyEval_GetFrame` et :c:func:`PyThreadState_GetFrame` " -"peuvent être utilisées pour avoir un objet de *frame*." - -#: c-api/frame.rst:20 -msgid "See also :ref:`Reflection `." -msgstr "Voir aussi :ref:`reflection`" - -#: c-api/frame.rst:24 -msgid "" -"The type of frame objects. It is the same object " -"as :py:class:`types.FrameType` in the Python layer." -msgstr "" -"Le type des objets de *frame*. C'est le même objet " -"que :py:class:`types.FrameType` dans la couche de Python." - -#: c-api/frame.rst:29 -msgid "" -"Previously, this type was only available after including ````." -msgstr "" -"Précédemment, ce type était disponible uniquement après l'inclusion de " -"````." - -#: c-api/frame.rst:34 -msgid "" -"Create a new frame object. This function returns a :term:`strong reference` " -"to the new frame object on success, and returns ``NULL`` with an exception " -"set on failure." -msgstr "" - -#: c-api/frame.rst:40 -msgid "Return non-zero if *obj* is a frame object." -msgstr "Renvoie un entier non nul si *obj* est un objet *frame*." - -#: c-api/frame.rst:44 -msgid "" -"Previously, this function was only available after including " -"````." -msgstr "" -"Précédemment, ce type était disponible uniquement après l'inclusion de " -"````." - -#: c-api/frame.rst:49 -msgid "Get the *frame* next outer frame." -msgstr "Renvoie la *frame* encadrant immédiatement à *frame*." - -#: c-api/frame.rst:51 -#, fuzzy -msgid "" -"Return a :term:`strong reference`, or ``NULL`` if *frame* has no outer " -"frame. This raises no exceptions." -msgstr "" -"Renvoie un :term:`strong reference`, ou ``NULL`` si *frame* n'a pas de " -"*frame* encadrante." - -#: c-api/frame.rst:60 -#, fuzzy -msgid "Get the *frame*'s :attr:`~frame.f_builtins` attribute." -msgstr "Obtenir l'attribut ``f_buitins`` de *frame*." - -#: c-api/frame.rst:93 -msgid "Return a :term:`strong reference`. The result cannot be ``NULL``." -msgstr "" -"Renvoie un :term:`strong reference`. Le résultat ne peut être ``NULL``." - -#: c-api/frame.rst:69 -msgid "Get the *frame* code." -msgstr "Obtenir le code *frame*." - -#: c-api/frame.rst:137 -msgid "Return a :term:`strong reference`." -msgstr "Renvoie un :term:`strong reference`." - -#: c-api/frame.rst:73 -msgid "The result (frame code) cannot be ``NULL``." -msgstr "Le résultat (code *frame*) ne peut être ``NULL``." - -#: c-api/frame.rst:80 -msgid "" -"Get the generator, coroutine, or async generator that owns this frame, or " -"``NULL`` if this frame is not owned by a generator. Does not raise an " -"exception, even if the return value is ``NULL``." -msgstr "" -"Obtenir le générateur, coroutine, ou un générateur asynchrone qui maintient " -"cette *frame*, ou ``NULL`` si cette *frame* n'est pas maintenu par un " -"générateur. Il ne lève pas d'exception, même si la valeur renvoyée est " -"``NULL``." - -#: c-api/frame.rst:84 -msgid "Return a :term:`strong reference`, or ``NULL``." -msgstr "Renvoie un :term:`strong reference`, ou ``NULL``." - -#: c-api/frame.rst:91 -#, fuzzy -msgid "Get the *frame*'s :attr:`~frame.f_globals` attribute." -msgstr "Obtenir l'attribut ``f_globals`` de *frame*." - -#: c-api/frame.rst:100 -#, fuzzy -msgid "Get the *frame*'s :attr:`~frame.f_lasti` attribute." -msgstr "Obtenir l'attribut ``f_lasti`` de *frame*." - -#: c-api/frame.rst:102 -msgid "Returns -1 if ``frame.f_lasti`` is ``None``." -msgstr "Renvoie -1 si ``frame.f_lasti`` est ``None``." - -#: c-api/frame.rst:109 -#, fuzzy -msgid "Get the variable *name* of *frame*." -msgstr "Renvoie la *frame* encadrant immédiatement à *frame*." - -#: c-api/frame.rst:111 -#, fuzzy -msgid "Return a :term:`strong reference` to the variable value on success." -msgstr "" -"Renvoie un :term:`strong reference`. Le résultat ne peut être ``NULL``." - -#: c-api/frame.rst:112 -msgid "" -"Raise :exc:`NameError` and return ``NULL`` if the variable does not exist." -msgstr "" - -#: c-api/frame.rst:113 -msgid "Raise an exception and return ``NULL`` on error." -msgstr "" - -#: c-api/frame.rst:115 -msgid "*name* type must be a :class:`str`." -msgstr "" - -#: c-api/frame.rst:122 -msgid "" -"Similar to :c:func:`PyFrame_GetVar`, but the variable name is a C string " -"encoded in UTF-8." -msgstr "" - -#: c-api/frame.rst:130 -msgid "" -"Get the *frame*'s :attr:`~frame.f_locals` attribute. If the frame refers to " -"an :term:`optimized scope`, this returns a write-through proxy object that " -"allows modifying the locals. In all other cases (classes, " -"modules, :func:`exec`, :func:`eval`) it returns the mapping representing the " -"frame locals directly (as described for :func:`locals`)." -msgstr "" - -#: c-api/frame.rst:141 -msgid "" -"As part of :pep:`667`, return an instance " -"of :c:var:`PyFrameLocalsProxy_Type`." -msgstr "" - -#: c-api/frame.rst:147 -msgid "Return the line number that *frame* is currently executing." -msgstr "Renvoie le numéro de ligne que cette *frame* est en train d'exécuter." - -#: c-api/frame.rst:151 -msgid "Frame locals proxies" -msgstr "" - -#: c-api/frame.rst:155 -msgid "" -"The :attr:`~frame.f_locals` attribute on a :ref:`frame object ` is an instance of a \"frame-locals proxy\". The proxy object " -"exposes a write-through view of the underlying locals dictionary for the " -"frame. This ensures that the variables exposed by ``f_locals`` are always up " -"to date with the live local variables in the frame itself." -msgstr "" - -#: c-api/frame.rst:161 -msgid "See :pep:`667` for more information." -msgstr "" - -#: c-api/frame.rst:165 -msgid "The type of frame :func:`locals` proxy objects." -msgstr "" - -#: c-api/frame.rst:169 -#, fuzzy -msgid "Return non-zero if *obj* is a frame :func:`locals` proxy." -msgstr "Renvoie un entier non nul si *obj* est un objet *frame*." - -#: c-api/frame.rst:173 -msgid "Legacy local variable APIs" -msgstr "" - -#: c-api/frame.rst:175 -msgid "" -"These APIs are :term:`soft deprecated`. As of Python 3.13, they do nothing. " -"They exist solely for backwards compatibility." -msgstr "" - -#: c-api/frame.rst:181 -msgid "" -"Prior to Python 3.13, this function would copy the :attr:`~frame.f_locals` " -"attribute of *f* to the internal \"fast\" array of local variables, allowing " -"changes in frame objects to be visible to the interpreter. If *clear* was " -"true, this function would process variables that were unset in the locals " -"dictionary." -msgstr "" - -#: c-api/frame.rst:198 c-api/frame.rst:208 -msgid "This function now does nothing." -msgstr "" - -#: c-api/frame.rst:193 -msgid "" -"Prior to Python 3.13, this function would copy the internal \"fast\" array " -"of local variables (which is used by the interpreter) to " -"the :attr:`~frame.f_locals` attribute of *f*, allowing changes in local " -"variables to be visible to frame objects." -msgstr "" - -#: c-api/frame.rst:204 -msgid "" -"Prior to Python 3.13, this function was similar " -"to :c:func:`PyFrame_FastToLocals`, but would return ``0`` on success, and " -"``-1`` with an exception set on failure." -msgstr "" - -#: c-api/frame.rst:213 -msgid ":pep:`667`" -msgstr "" - -#: c-api/frame.rst:217 -msgid "Internal frames" -msgstr "" - -#: c-api/frame.rst:219 -msgid "Unless using :pep:`523`, you will not need this." -msgstr "" - -#: c-api/frame.rst:223 -msgid "The interpreter's internal frame representation." -msgstr "" - -#: c-api/frame.rst:229 -#, fuzzy -msgid "Return a :term:`strong reference` to the code object for the frame." -msgstr "" -"Renvoie un :term:`strong reference`. Le résultat ne peut être ``NULL``." - -#: c-api/frame.rst:236 -msgid "Return the byte offset into the last executed instruction." -msgstr "" - -#: c-api/frame.rst:243 -msgid "" -"Return the currently executing line number, or -1 if there is no line number." -msgstr "" - -#, fuzzy -#~ msgid "Get the *frame*'s :attr:`~frame.f_locals` attribute (:class:`dict`)." -#~ msgstr "Obtenir l'attribut (:class:`dict`) ``f_locals`` de *frame*." diff --git a/c-api/function.po b/c-api/function.po deleted file mode 100644 index d8cd04b5cf..0000000000 --- a/c-api/function.po +++ /dev/null @@ -1,310 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-02-20 13:11+0100\n" -"Last-Translator: FULL NAME \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" - -#: c-api/function.rst:6 -msgid "Function Objects" -msgstr "Objets fonction" - -#: c-api/function.rst:10 -msgid "There are a few functions specific to Python functions." -msgstr "Certaines fonctions sont spécifiques aux fonctions Python." - -#: c-api/function.rst:15 -msgid "The C structure used for functions." -msgstr "La structure C utilisée pour les fonctions." - -#: c-api/function.rst:22 -msgid "" -"This is an instance of :c:type:`PyTypeObject` and represents the Python " -"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 "" -"Return true if *o* is a function object (has " -"type :c:data:`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 "" -"Return a new function object associated with the code object *code*. " -"*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 -#, fuzzy -msgid "" -"The function's docstring and name are retrieved from the code " -"object. :attr:`~function.__module__` is retrieved from *globals*. The " -"argument defaults, annotations and closure are set to " -"``NULL``. :attr:`~function.__qualname__` is set to the same value as the " -"code object's :attr:`~codeobject.co_qualname` field." -msgstr "" -"La *docstring* et le nom de la fonction sont récupérés à partir de l'objet " -"code. *__module__* est récupéré à partir de *globals*. Les arguments par " -"défaut, les annotations et la fermeture sont mis à ``NULL``. *__qualname__* " -"est mis à la même valeur que celle du champ ``co_qualname`` de l'objet code." - -#: c-api/function.rst:46 -#, fuzzy -msgid "" -"As :c:func:`PyFunction_New`, but also allows setting the function " -"object's :attr:`~function.__qualname__` attribute. *qualname* should be a " -"unicode object or ``NULL``; if ``NULL``, the :attr:`!__qualname__` attribute " -"is set to the same value as the code " -"object's :attr:`~codeobject.co_qualname` field." -msgstr "" -"Comme :c:func:`PyFunction_New`, mais accepte aussi une valeur à utiliser " -"pour l'attribut ``__qualname__`` de l'objet fonction. *qualname* doit être " -"un objet Unicode ou ``NULL``; s'il est ``NULL``, l'attribut ``__qualname__`` " -"de l'objet fonction prend la valeur de l'attribut ``co_qualname`` de l'objet " -"code." - -#: c-api/function.rst:57 -msgid "Return the code object associated with the function object *op*." -msgstr "Renvoie l'objet code associé avec l'objet de la fonction *op*." - -#: c-api/function.rst:62 -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:67 -#, fuzzy -msgid "" -"Return a :term:`borrowed reference` to the :attr:`~function.__module__` " -"attribute of the :ref:`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:71 -#, fuzzy -msgid "" -"This is normally a :class:`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:77 -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:83 -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:125 c-api/function.rst:139 -msgid "Raises :exc:`SystemError` and returns ``-1`` on failure." -msgstr "Lève :exc:`SystemError` et renvoie ``-1`` en cas de d'échec." - -#: c-api/function.rst:91 -#, fuzzy -msgid "Set the vectorcall field of a given function object *func*." -msgstr "Renvoie l'objet code associé avec l'objet de la fonction *op*." - -#: c-api/function.rst:93 -msgid "" -"Warning: extensions using this API must preserve the behavior of the " -"unaltered (default) vectorcall function!" -msgstr "" - -#: c-api/function.rst:101 -#, fuzzy -msgid "" -"Return the keyword-only argument default values of the function object *op*. " -"This can be a dictionary 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:107 -#, fuzzy -msgid "" -"Set the keyword-only argument default values of the function object *op*. " -"*defaults* must be a dictionary of keyword-only arguments or ``Py_None``." -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:110 -msgid "" -"This function returns ``0`` on success, and returns ``-1`` with an exception " -"set on failure." -msgstr "" - -#: c-api/function.rst:116 -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:122 -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:130 -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:136 -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``." - -#: c-api/function.rst:150 -msgid "" -"These functions are similar to their ``PyFunction_Get*`` counterparts, but " -"do not do type checking. Passing anything other than an instance " -"of :c:data:`PyFunction_Type` is undefined behavior." -msgstr "" - -#: c-api/function.rst:157 -msgid "" -"Register *callback* as a function watcher for the current interpreter. " -"Return an ID which may be passed to :c:func:`PyFunction_ClearWatcher`. In " -"case of error (e.g. no more watcher IDs available), return ``-1`` and set an " -"exception." -msgstr "" - -#: c-api/function.rst:167 -msgid "" -"Clear watcher identified by *watcher_id* previously returned " -"from :c:func:`PyFunction_AddWatcher` for the current interpreter. Return " -"``0`` on success, or ``-1`` and set an exception on error (e.g. if the " -"given *watcher_id* was never registered.)" -msgstr "" - -#: c-api/function.rst:177 -msgid "Enumeration of possible function watcher events:" -msgstr "" - -#: c-api/function.rst:179 -msgid "``PyFunction_EVENT_CREATE``" -msgstr "" - -#: c-api/function.rst:180 -msgid "``PyFunction_EVENT_DESTROY``" -msgstr "" - -#: c-api/function.rst:181 -msgid "``PyFunction_EVENT_MODIFY_CODE``" -msgstr "" - -#: c-api/function.rst:182 -msgid "``PyFunction_EVENT_MODIFY_DEFAULTS``" -msgstr "" - -#: c-api/function.rst:183 -msgid "``PyFunction_EVENT_MODIFY_KWDEFAULTS``" -msgstr "" - -#: c-api/function.rst:187 -msgid "``PyFunction_PYFUNC_EVENT_MODIFY_QUALNAME``" -msgstr "" - -#: c-api/function.rst:193 -msgid "Type of a function watcher callback function." -msgstr "" - -#: c-api/function.rst:195 -msgid "" -"If *event* is ``PyFunction_EVENT_CREATE`` or ``PyFunction_EVENT_DESTROY`` " -"then *new_value* will be ``NULL``. Otherwise, *new_value* will hold " -"a :term:`borrowed reference` to the new value that is about to be stored in " -"*func* for the attribute that is being modified." -msgstr "" - -#: c-api/function.rst:200 -msgid "" -"The callback may inspect but must not modify *func*; doing so could have " -"unpredictable effects, including infinite recursion." -msgstr "" - -#: c-api/function.rst:203 -msgid "" -"If *event* is ``PyFunction_EVENT_CREATE``, then the callback is invoked " -"after *func* has been fully initialized. Otherwise, the callback is invoked " -"before the modification to *func* takes place, so the prior state of *func* " -"can be inspected. The runtime is permitted to optimize away the creation of " -"function objects when possible. In such cases no event will be emitted. " -"Although this creates the possibility of an observable difference of runtime " -"behavior depending on optimization decisions, it does not change the " -"semantics of the Python code being executed." -msgstr "" - -#: c-api/function.rst:212 -msgid "" -"If *event* is ``PyFunction_EVENT_DESTROY``, taking a reference in the " -"callback to the about-to-be-destroyed function will resurrect it, preventing " -"it from being freed at this time. When the resurrected object is destroyed " -"later, any watcher callbacks active at that time will be called again." -msgstr "" - -#: c-api/function.rst:217 -msgid "" -"If the callback sets an exception, it must return ``-1``; this exception " -"will be printed as an unraisable exception " -"using :c:func:`PyErr_WriteUnraisable`. Otherwise it should return ``0``." -msgstr "" - -#: c-api/function.rst:221 -msgid "" -"There may already be a pending exception set on entry to the callback. In " -"this case, the callback should return ``0`` with the same exception still " -"set. This means the callback may not call any other API that can set an " -"exception unless it saves and clears the exception state first, and restores " -"it before returning." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "function" -#~ msgstr "fonction" diff --git a/c-api/gcsupport.po b/c-api/gcsupport.po deleted file mode 100644 index b8e0e91b4d..0000000000 --- a/c-api/gcsupport.po +++ /dev/null @@ -1,645 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/gcsupport.rst:6 -msgid "Supporting Cyclic Garbage Collection" -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." -msgstr "" - -#: c-api/gcsupport.rst:15 -msgid "" -"To create a container type, the :c:member:`~PyTypeObject.tp_flags` field of " -"the type object must include the :c:macro:`Py_TPFLAGS_HAVE_GC` and provide " -"an implementation of the :c:member:`~PyTypeObject.tp_traverse` handler. If " -"instances of the type are mutable, a :c:member:`~PyTypeObject.tp_clear` " -"implementation must also be provided." -msgstr "" - -#: c-api/gcsupport.rst:21 -msgid ":c:macro:`Py_TPFLAGS_HAVE_GC`" -msgstr "" - -#: c-api/gcsupport.rst:22 -msgid "" -"Objects with a type with this flag set must conform with the rules " -"documented here. For convenience these objects will be referred to as " -"container objects." -msgstr "" - -#: c-api/gcsupport.rst:26 -msgid "Constructors for container types must conform to two rules:" -msgstr "" - -#: c-api/gcsupport.rst:28 -msgid "" -"The memory for the object must be allocated using :c:macro:`PyObject_GC_New` " -"or :c:macro:`PyObject_GC_NewVar`." -msgstr "" - -#: c-api/gcsupport.rst:31 -msgid "" -"Once all the fields which may contain references to other containers are " -"initialized, it must call :c:func:`PyObject_GC_Track`." -msgstr "" - -#: c-api/gcsupport.rst:34 -msgid "" -"Similarly, the deallocator for the object must conform to a similar pair of " -"rules:" -msgstr "" - -#: c-api/gcsupport.rst:37 -msgid "" -"Before fields which refer to other containers are " -"invalidated, :c:func:`PyObject_GC_UnTrack` must be called." -msgstr "" - -#: c-api/gcsupport.rst:40 -msgid "" -"The object's memory must be deallocated using :c:func:`PyObject_GC_Del`." -msgstr "" - -#: c-api/gcsupport.rst:43 -msgid "" -"If a type adds the Py_TPFLAGS_HAVE_GC, then it *must* implement at least " -"a :c:member:`~PyTypeObject.tp_traverse` handler or explicitly use one from " -"its subclass or subclasses." -msgstr "" - -#: c-api/gcsupport.rst:47 -msgid "" -"When calling :c:func:`PyType_Ready` or some of the APIs that indirectly call " -"it like :c:func:`PyType_FromSpecWithBases` or :c:func:`PyType_FromSpec` the " -"interpreter will automatically populate " -"the :c:member:`~PyTypeObject.tp_flags`, :c:member:`~PyTypeObject.tp_traverse` " -"and :c:member:`~PyTypeObject.tp_clear` fields if the type inherits from a " -"class that implements the garbage collector protocol and the child class " -"does *not* include the :c:macro:`Py_TPFLAGS_HAVE_GC` flag." -msgstr "" - -#: c-api/gcsupport.rst:57 -msgid "" -"Analogous to :c:macro:`PyObject_New` but for container objects with " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag set." -msgstr "" - -#: c-api/gcsupport.rst:84 -msgid "" -"Do not call this directly to allocate memory for an object; call the " -"type's :c:member:`~PyTypeObject.tp_alloc` slot instead." -msgstr "" - -#: c-api/gcsupport.rst:87 -msgid "" -"When populating a type's :c:member:`~PyTypeObject.tp_alloc` " -"slot, :c:func:`PyType_GenericAlloc` is preferred over a custom function that " -"simply calls this macro." -msgstr "" - -#: c-api/gcsupport.rst:91 -msgid "" -"Memory allocated by this macro must be freed with :c:func:`PyObject_GC_Del` " -"(usually called via the object's :c:member:`~PyTypeObject.tp_free` slot)." -msgstr "" - -#: c-api/gcsupport.rst:97 -msgid ":c:func:`PyObject_GC_Del`" -msgstr "" - -#: c-api/gcsupport.rst:74 -msgid ":c:macro:`PyObject_New`" -msgstr "" - -#: c-api/gcsupport.rst:99 c-api/gcsupport.rst:193 -msgid ":c:func:`PyType_GenericAlloc`" -msgstr "" - -#: c-api/gcsupport.rst:100 -msgid ":c:member:`~PyTypeObject.tp_alloc`" -msgstr "" - -#: c-api/gcsupport.rst:81 -msgid "" -"Analogous to :c:macro:`PyObject_NewVar` but for container objects with " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag set." -msgstr "" - -#: c-api/gcsupport.rst:98 -msgid ":c:macro:`PyObject_NewVar`" -msgstr "" - -#: c-api/gcsupport.rst:105 -msgid "" -"Analogous to :c:macro:`PyObject_GC_New` but allocates *extra_size* bytes at " -"the end of the object (at offset :c:member:`~PyTypeObject.tp_basicsize`). " -"The allocated memory is initialized to zeros, except for the :c:type:`Python " -"object header `." -msgstr "" - -#: c-api/gcsupport.rst:111 -msgid "" -"The extra data will be deallocated with the object, but otherwise it is not " -"managed by Python." -msgstr "" - -#: c-api/gcsupport.rst:114 -msgid "" -"Memory allocated by this function must be freed " -"with :c:func:`PyObject_GC_Del` (usually called via the " -"object's :c:member:`~PyTypeObject.tp_free` slot)." -msgstr "" - -#: c-api/gcsupport.rst:119 -msgid "" -"The function is marked as unstable because the final mechanism for reserving " -"extra data after an instance is not yet decided. For allocating a variable " -"number of fields, prefer using :c:type:`PyVarObject` " -"and :c:member:`~PyTypeObject.tp_itemsize` instead." -msgstr "" - -#: c-api/gcsupport.rst:130 -msgid "" -"Resize an object allocated by :c:macro:`PyObject_NewVar`. Returns the " -"resized object of type ``TYPE*`` (refers to any C type) or ``NULL`` on " -"failure." -msgstr "" - -#: c-api/gcsupport.rst:134 -msgid "" -"*op* must be of type :c:expr:`PyVarObject *` and must not be tracked by the " -"collector yet. *newsize* must be of type :c:type:`Py_ssize_t`." -msgstr "" - -#: c-api/gcsupport.rst:141 -msgid "" -"Adds the object *op* to the set of container objects tracked by the " -"collector. The collector can run at unexpected times so objects must be " -"valid while being tracked. This should be called once all the fields " -"followed by the :c:member:`~PyTypeObject.tp_traverse` handler become valid, " -"usually near the end of the constructor." -msgstr "" - -#: c-api/gcsupport.rst:150 -msgid "" -"Returns non-zero if the object implements the garbage collector protocol, " -"otherwise returns 0." -msgstr "" - -#: c-api/gcsupport.rst:153 -msgid "" -"The object cannot be tracked by the garbage collector if this function " -"returns 0." -msgstr "" - -#: c-api/gcsupport.rst:158 -msgid "" -"Returns 1 if the object type of *op* implements the GC protocol and *op* is " -"being currently tracked by the garbage collector and 0 otherwise." -msgstr "" - -#: c-api/gcsupport.rst:161 -msgid "This is analogous to the Python function :func:`gc.is_tracked`." -msgstr "" - -#: c-api/gcsupport.rst:168 -msgid "" -"Returns 1 if the object type of *op* implements the GC protocol and *op* has " -"been already finalized by the garbage collector and 0 otherwise." -msgstr "" - -#: c-api/gcsupport.rst:171 -msgid "This is analogous to the Python function :func:`gc.is_finalized`." -msgstr "" - -#: c-api/gcsupport.rst:178 -msgid "" -"Releases memory allocated to an object using :c:macro:`PyObject_GC_New` " -"or :c:macro:`PyObject_GC_NewVar`." -msgstr "" - -#: c-api/gcsupport.rst:181 -msgid "" -"Do not call this directly to free an object's memory; call the " -"type's :c:member:`~PyTypeObject.tp_free` slot instead." -msgstr "" - -#: c-api/gcsupport.rst:184 -msgid "" -"Do not use this for memory allocated " -"by :c:macro:`PyObject_New`, :c:macro:`PyObject_NewVar`, or related " -"allocation functions; use :c:func:`PyObject_Free` instead." -msgstr "" - -#: c-api/gcsupport.rst:190 -msgid ":c:func:`PyObject_Free` is the non-GC equivalent of this function." -msgstr "" - -#: c-api/gcsupport.rst:191 -msgid ":c:macro:`PyObject_GC_New`" -msgstr "" - -#: c-api/gcsupport.rst:192 -msgid ":c:macro:`PyObject_GC_NewVar`" -msgstr "" - -#: c-api/gcsupport.rst:194 -msgid ":c:member:`~PyTypeObject.tp_free`" -msgstr "" - -#: c-api/gcsupport.rst:199 -msgid "" -"Remove the object *op* from the set of container objects tracked by the " -"collector. Note that :c:func:`PyObject_GC_Track` can be called again on " -"this object to add it back to the set of tracked objects. The deallocator " -"(:c:member:`~PyTypeObject.tp_dealloc` handler) should call this for the " -"object before any of the fields used by " -"the :c:member:`~PyTypeObject.tp_traverse` handler become invalid." -msgstr "" - -#: c-api/gcsupport.rst:208 -msgid "" -"The :c:func:`!_PyObject_GC_TRACK` and :c:func:`!_PyObject_GC_UNTRACK` macros " -"have been removed from the public C API." -msgstr "" - -#: c-api/gcsupport.rst:211 -msgid "" -"The :c:member:`~PyTypeObject.tp_traverse` handler accepts a function " -"parameter of this type:" -msgstr "" - -#: c-api/gcsupport.rst:216 -msgid "" -"Type of the visitor function passed to " -"the :c:member:`~PyTypeObject.tp_traverse` handler. The function should be " -"called with an object to traverse as *object* and the third parameter to " -"the :c:member:`~PyTypeObject.tp_traverse` handler as *arg*. The Python core " -"uses several visitor functions to implement cyclic garbage detection; it's " -"not expected that users will need to write their own visitor functions." -msgstr "" - -#: c-api/gcsupport.rst:223 -msgid "" -"The :c:member:`~PyTypeObject.tp_clear` handler must be of " -"the :c:type:`inquiry` type, or ``NULL`` if the object is immutable." -msgstr "" - -#: c-api/gcsupport.rst:229 -msgid "" -"Drop references that may have created reference cycles. Immutable objects " -"do not have to define this method since they can never directly create " -"reference cycles. Note that the object must still be valid after calling " -"this method (don't just call :c:func:`Py_DECREF` on a reference). The " -"collector will call this method if it detects that this object is involved " -"in a reference cycle." -msgstr "" - -#: c-api/gcsupport.rst:240 -msgid "Traversal" -msgstr "" - -#: c-api/gcsupport.rst:242 -msgid "" -"The :c:member:`~PyTypeObject.tp_traverse` handler must have the following " -"type:" -msgstr "" - -#: c-api/gcsupport.rst:246 -msgid "" -"Traversal function for a garbage-collected object, used by the garbage " -"collector to detect reference cycles. Implementations must call the *visit* " -"function for each object directly contained by *self*, with the parameters " -"to *visit* being the contained object and the *arg* value passed to the " -"handler. The *visit* function must not be called with a ``NULL`` object " -"argument. If *visit* returns a non-zero value, that value should be " -"returned immediately." -msgstr "" - -#: c-api/gcsupport.rst:255 -msgid "" -"A typical :c:member:`!tp_traverse` function calls the :c:func:`Py_VISIT` " -"convenience macro on each of the instance's members that are Python objects " -"that the instance owns. For example, this is a (slightly outdated) traversal " -"function for the :py:class:`threading.local` class::" -msgstr "" - -#: c-api/gcsupport.rst:273 -msgid "" -":c:func:`Py_VISIT` requires the *visit* and *arg* parameters to :c:func:`!" -"local_traverse` to have these specific names; don't name them just anything." -msgstr "" - -#: c-api/gcsupport.rst:277 -msgid "" -"Instances of :ref:`heap-allocated types ` hold a reference to " -"their type. Their traversal function must therefore visit the type::" -msgstr "" - -#: c-api/gcsupport.rst:282 -msgid "" -"Alternately, the type may delegate this responsibility by calling " -"``tp_traverse`` of a heap-allocated superclass (or another heap-allocated " -"type, if applicable). If they do not, the type object may not be garbage-" -"collected." -msgstr "" - -#: c-api/gcsupport.rst:287 -msgid "" -"If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in " -"the :c:member:`~PyTypeObject.tp_flags` field, the traverse function must " -"call :c:func:`PyObject_VisitManagedDict` like this::" -msgstr "" - -#: c-api/gcsupport.rst:296 -msgid "" -"Only the members that the instance *owns* (by having :term:`strong " -"references ` to them) must be visited. For instance, if an " -"object supports weak references via " -"the :c:member:`~PyTypeObject.tp_weaklist` slot, the pointer supporting the " -"linked list (what *tp_weaklist* points to) must **not** be visited as the " -"instance does not directly own the weak references to itself." -msgstr "" - -#: c-api/gcsupport.rst:303 -msgid "The traversal function has a limitation:" -msgstr "" - -#: c-api/gcsupport.rst:307 -msgid "" -"The traversal function must not have any side effects. Implementations may " -"not modify the reference counts of any Python objects nor create or destroy " -"any Python objects, directly or indirectly." -msgstr "" - -#: c-api/gcsupport.rst:311 -msgid "" -"This means that *most* Python C API functions may not be used, since they " -"can raise a new exception, return a new reference to a result object, have " -"internal logic that uses side effects. Also, unless documented otherwise, " -"functions that happen to not have side effects may start having them in " -"future versions, without warning." -msgstr "" - -#: c-api/gcsupport.rst:317 -msgid "" -"For a list of safe functions, see a :ref:`separate section ` below." -msgstr "" - -#: c-api/gcsupport.rst:322 -msgid "" -"The :c:func:`Py_VISIT` call may be skipped for those members that provably " -"cannot participate in reference cycles. In the ``local_traverse`` example " -"above, there is also a ``self->key`` member, but it can only be ``NULL`` or " -"a Python string and therefore cannot be part of a reference cycle." -msgstr "" - -#: c-api/gcsupport.rst:328 -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/gcsupport.rst:334 -msgid "" -"The :c:member:`~PyTypeObject.tp_traverse` function can be called from any " -"thread." -msgstr "" - -#: c-api/gcsupport.rst:339 -msgid "" -"Garbage collection is a \"stop-the-world\" operation: even in :term:`free " -"threading` builds, only one thread state is :term:`attached ` when :c:member:`!tp_traverse` handlers run." -msgstr "" - -#: c-api/gcsupport.rst:346 -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/gcsupport.rst:351 -msgid "" -"To simplify writing :c:member:`~PyTypeObject.tp_traverse` handlers, " -"a :c:func:`Py_VISIT` macro is provided. In order to use this macro, " -"the :c:member:`~PyTypeObject.tp_traverse` implementation must name its " -"arguments exactly *visit* and *arg*:" -msgstr "" - -#: c-api/gcsupport.rst:358 -msgid "" -"If the :c:expr:`PyObject *` *o* is not ``NULL``, call the *visit* callback, " -"with arguments *o* and *arg*. If *visit* returns a non-zero value, then " -"return it." -msgstr "" - -#: c-api/gcsupport.rst:362 -msgid "This corresponds roughly to::" -msgstr "" - -#: c-api/gcsupport.rst:374 -msgid "Traversal-safe functions" -msgstr "" - -#: c-api/gcsupport.rst:376 -msgid "" -"The following functions and macros are safe to use in " -"a :c:member:`~PyTypeObject.tp_traverse` handler:" -msgstr "" - -#: c-api/gcsupport.rst:379 -msgid "the *visit* function passed to ``tp_traverse``" -msgstr "" - -#: c-api/gcsupport.rst:380 -msgid ":c:func:`Py_VISIT`" -msgstr "" - -#: c-api/gcsupport.rst:381 -msgid ":c:func:`Py_SIZE`" -msgstr "" - -#: c-api/gcsupport.rst:382 -msgid "" -":c:func:`Py_TYPE`: if called from a :c:member:`!tp_traverse` " -"handler, :c:func:`!Py_TYPE`'s result will be valid for the duration of the " -"handler call" -msgstr "" - -#: c-api/gcsupport.rst:384 -msgid ":c:func:`PyObject_VisitManagedDict`" -msgstr "" - -#: c-api/gcsupport.rst:385 -msgid ":c:func:`PyObject_TypeCheck`, :c:func:`PyType_IsSubtype`, :c:func:`PyType_HasFeature`" -msgstr "" - -#: c-api/gcsupport.rst:387 -msgid "" -":samp:`Py{}_Check` and :samp:`Py{}_CheckExact` -- for " -"example, :c:func:`PyTuple_Check`" -msgstr "" - -#: c-api/gcsupport.rst:389 -msgid ":ref:`duringgc-functions`" -msgstr "" - -#: c-api/gcsupport.rst:394 -msgid "\"DuringGC\" functions" -msgstr "" - -#: c-api/gcsupport.rst:396 -msgid "" -"The following functions should *only* be used in " -"a :c:member:`~PyTypeObject.tp_traverse` handler; calling them in other " -"contexts may have unintended consequences." -msgstr "" - -#: c-api/gcsupport.rst:400 -msgid "" -"These functions act like their counterparts without the ``_DuringGC`` " -"suffix, but they are guaranteed to not have side effects, they do not set an " -"exception on failure, and they return/set :term:`borrowed references " -"` as detailed in the individual documentation." -msgstr "" - -#: c-api/gcsupport.rst:405 -msgid "" -"Note that these functions may fail (return ``NULL`` or ``-1``), but as they " -"do not set an exception, no error information is available. In some cases, " -"failure is not distinguishable from a successful ``NULL`` result." -msgstr "" - -#: c-api/gcsupport.rst:430 c-api/gcsupport.rst:443 -msgid "See :ref:`duringgc-functions` for common information." -msgstr "" - -#: c-api/gcsupport.rst:421 -msgid ":c:func:`PyObject_GetTypeData`, :c:func:`PyObject_GetItemData`, :c:func:`PyType_GetModuleState`, :c:func:`PyModule_GetState`, :c:func:`PyModule_GetToken`, :c:func:`PyType_GetBaseByToken`" -msgstr "" - -#: c-api/gcsupport.rst:432 -msgid "" -"Sets *\\*result* to a :term:`borrowed reference` rather than a strong one. " -"The reference is valid for the duration of the :c:member:`!tp_traverse` " -"handler call." -msgstr "" - -#: c-api/gcsupport.rst:438 -msgid ":c:func:`PyType_GetBaseByToken`" -msgstr "" - -#: c-api/gcsupport.rst:445 -msgid "" -"These functions return a :term:`borrowed reference`, which is valid for the " -"duration of the :c:member:`!tp_traverse` handler call." -msgstr "" - -#: c-api/gcsupport.rst:452 -msgid ":c:func:`PyType_GetModule`, :c:func:`PyType_GetModuleByToken`" -msgstr "" - -#: c-api/gcsupport.rst:457 -msgid "Controlling the Garbage Collector State" -msgstr "" - -#: c-api/gcsupport.rst:459 -msgid "" -"The C-API provides the following functions for controlling garbage " -"collection runs." -msgstr "" - -#: c-api/gcsupport.rst:464 -msgid "" -"Perform a full garbage collection, if the garbage collector is enabled. " -"(Note that :func:`gc.collect` runs it unconditionally.)" -msgstr "" - -#: c-api/gcsupport.rst:467 -msgid "" -"Returns the number of collected + unreachable objects which cannot be " -"collected. If the garbage collector is disabled or already collecting, " -"returns ``0`` immediately. Errors during garbage collection are passed " -"to :data:`sys.unraisablehook`. This function does not raise exceptions." -msgstr "" - -#: c-api/gcsupport.rst:477 -msgid "" -"Enable the garbage collector: similar to :func:`gc.enable`. Returns the " -"previous state, 0 for disabled and 1 for enabled." -msgstr "" - -#: c-api/gcsupport.rst:485 -msgid "" -"Disable the garbage collector: similar to :func:`gc.disable`. Returns the " -"previous state, 0 for disabled and 1 for enabled." -msgstr "" - -#: c-api/gcsupport.rst:493 -msgid "" -"Query the state of the garbage collector: similar to :func:`gc.isenabled`. " -"Returns the current state, 0 for disabled and 1 for enabled." -msgstr "" - -#: c-api/gcsupport.rst:500 -msgid "Querying Garbage Collector State" -msgstr "" - -#: c-api/gcsupport.rst:502 -msgid "" -"The C-API provides the following interface for querying information about " -"the garbage collector." -msgstr "" - -#: c-api/gcsupport.rst:507 -msgid "" -"Run supplied *callback* on all live GC-capable objects. *arg* is passed " -"through to all invocations of *callback*." -msgstr "" - -#: c-api/gcsupport.rst:511 -msgid "" -"If new objects are (de)allocated by the callback it is undefined if they " -"will be visited." -msgstr "" - -#: c-api/gcsupport.rst:514 -msgid "" -"Garbage collection is disabled during operation. Explicitly running a " -"collection in the callback may lead to undefined behaviour e.g. visiting the " -"same objects multiple times or not at all." -msgstr "" - -#: c-api/gcsupport.rst:522 -msgid "" -"Type of the visitor function to be passed " -"to :c:func:`PyUnstable_GC_VisitObjects`. *arg* is the same as the *arg* " -"passed to ``PyUnstable_GC_VisitObjects``. Return ``1`` to continue " -"iteration, return ``0`` to stop iteration. Other return values are reserved " -"for now so behavior on returning anything else is undefined." -msgstr "" diff --git a/c-api/gen.po b/c-api/gen.po deleted file mode 100644 index 7422d82d60..0000000000 --- a/c-api/gen.po +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-10-04 12:24+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.4\n" - -#: c-api/gen.rst:6 -msgid "Generator Objects" -msgstr "Objets générateur" - -#: c-api/gen.rst:8 -msgid "" -"Generator objects are what Python uses to implement generator iterators. " -"They are normally created by iterating over a function that yields values, " -"rather than explicitly calling :c:func:`PyGen_New` " -"or :c:func:`PyGen_NewWithQualName`." -msgstr "" -"Python utilise des objets générateurs pour implémenter les itérations de " -"générateurs. Ils sont normalement crées en itérant sur une fonction donnant " -"des valeurs via ``yield``, au lieu d'appeler " -"explicitement :c:func:`PyGen_New` ou :c:func:`PyGen_NewWithQualName`." - -#: c-api/gen.rst:15 -msgid "The C structure used for generator objects." -msgstr "La structure C utilisée pour les objets générateurs." - -#: c-api/gen.rst:20 -msgid "The type object corresponding to generator objects." -msgstr "Le type objet correspondant aux objets générateurs." - -#: c-api/gen.rst:25 -#, fuzzy -msgid "" -"Return true if *ob* is a generator object; *ob* must not be ``NULL``. This " -"function always succeeds." -msgstr "" -"Renvoie ``True`` si *ob* est un objet générateur. *ob* ne doit pas être " -"*NULL*." - -#: c-api/gen.rst:31 -#, fuzzy -msgid "" -"Return true if *ob*'s type is :c:type:`PyGen_Type`; *ob* must not be " -"``NULL``. This function always succeeds." -msgstr "" -"Renvoie ``True`` si le type de *ob* est *PyGen_Type*. *ob* ne doit pas être " -"*NULL*." - -#: c-api/gen.rst:37 -#, fuzzy -msgid "" -"Create and return a new generator object based on the *frame* object. A " -"reference to *frame* is stolen by this function. The argument must not be " -"``NULL``." -msgstr "" -"Crée et renvoie un nouvel objet générateur basé sur l'objet *frame*. Une " -"référence à *frame* est volée par cette fonction. L'argument ne doit pas " -"être *NULL*." - -#: c-api/gen.rst:43 -#, fuzzy -msgid "" -"Create and return a new generator object based on the *frame* object, with " -"``__name__`` and ``__qualname__`` set to *name* and *qualname*. A reference " -"to *frame* is stolen by this function. The *frame* argument must not be " -"``NULL``." -msgstr "" -"Crée et renvoie un nouvel objet générateur basé sur l'objet *frame*, avec " -"``__name__`` et ``__qualname__`` valant *name* et *qualname*. Une référence " -"à *frame* est volée par cette fonction. L'argument *frame* ne doit pas être " -"*NULL*." - -#: c-api/gen.rst:51 -msgid "" -"Return a new :term:`strong reference` to the code object wrapped by *gen*. " -"This function always succeeds." -msgstr "" - -#: c-api/gen.rst:56 -#, fuzzy -msgid "Asynchronous Generator Objects" -msgstr "Objets générateur" - -#: c-api/gen.rst:59 -msgid ":pep:`525`" -msgstr "" - -#: c-api/gen.rst:63 -msgid "" -"The type object corresponding to asynchronous generator objects. This is " -"available as :class:`types.AsyncGeneratorType` in the Python layer." -msgstr "" - -#: c-api/gen.rst:70 -#, fuzzy -msgid "" -"Create a new asynchronous generator wrapping *frame*, with ``__name__`` and " -"``__qualname__`` set to *name* and *qualname*. *frame* is stolen by this " -"function and must not be ``NULL``." -msgstr "" -"Crée et renvoie un nouvel objet générateur basé sur l'objet *frame*, avec " -"``__name__`` et ``__qualname__`` valant *name* et *qualname*. Une référence " -"à *frame* est volée par cette fonction. L'argument *frame* ne doit pas être " -"*NULL*." - -#: c-api/gen.rst:74 -msgid "" -"On success, this function returns a :term:`strong reference` to the new " -"asynchronous generator. On failure, this function returns ``NULL`` with an " -"exception set." -msgstr "" - -#: c-api/gen.rst:82 -#, fuzzy -msgid "" -"Return true if *op* is an asynchronous generator object, false otherwise. " -"This function always succeeds." -msgstr "" -"Renvoie ``True`` si *ob* est un objet générateur. *ob* ne doit pas être " -"*NULL*." - -#: c-api/gen.rst:89 -msgid "Deprecated API" -msgstr "" - -#: c-api/gen.rst:93 -msgid "This is an API that was included in Python's C API by mistake." -msgstr "" - -#: c-api/gen.rst:96 -msgid "It is solely here for completeness; do not use this API." -msgstr "" diff --git a/c-api/hash.po b/c-api/hash.po deleted file mode 100644 index ef09dc4bd0..0000000000 --- a/c-api/hash.po +++ /dev/null @@ -1,200 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-10-29 22:25+0100\n" -"Last-Translator: FULL NAME \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" - -#: c-api/hash.rst:4 -msgid "PyHash API" -msgstr "" - -#: c-api/hash.rst:6 -msgid "" -"See also the :c:member:`PyTypeObject.tp_hash` member and :ref:`numeric-hash`." -msgstr "" - -#: c-api/hash.rst:10 -msgid "Hash value type: signed integer." -msgstr "" - -#: c-api/hash.rst:17 -msgid "Hash value type: unsigned integer." -msgstr "" - -#: c-api/hash.rst:24 -msgid "" -"A numerical value indicating the algorithm for hashing " -"of :class:`str`, :class:`bytes`, and :class:`memoryview`." -msgstr "" - -#: c-api/hash.rst:27 -msgid "The algorithm name is exposed by :data:`sys.hash_info.algorithm`." -msgstr "" - -#: c-api/hash.rst:36 -msgid "" -"Numerical values to compare to :c:macro:`Py_HASH_ALGORITHM` to determine " -"which algorithm is used for hashing. The hash algorithm can be configured " -"via the configure :option:`--with-hash-algorithm` option." -msgstr "" - -#: c-api/hash.rst:40 -msgid "Add :c:macro:`!Py_HASH_FNV` and :c:macro:`!Py_HASH_SIPHASH24`." -msgstr "" - -#: c-api/hash.rst:43 -msgid "Add :c:macro:`!Py_HASH_SIPHASH13`." -msgstr "" - -#: c-api/hash.rst:49 -msgid "" -"Buffers of length in range ``[1, Py_HASH_CUTOFF)`` are hashed using DJBX33A " -"instead of the algorithm described by :c:macro:`Py_HASH_ALGORITHM`." -msgstr "" - -#: c-api/hash.rst:52 -msgid "A :c:macro:`!Py_HASH_CUTOFF` of 0 disables the optimization." -msgstr "" - -#: c-api/hash.rst:53 -msgid "" -":c:macro:`!Py_HASH_CUTOFF` must be non-negative and less or equal than 7." -msgstr "" - -#: c-api/hash.rst:55 -msgid "" -"32-bit platforms should use a cutoff smaller than 64-bit platforms because " -"it is easier to create colliding strings. A cutoff of 7 on 64-bit platforms " -"and 5 on 32-bit platforms should provide a decent safety margin." -msgstr "" - -#: c-api/hash.rst:59 -msgid "This corresponds to the :data:`sys.hash_info.cutoff` constant." -msgstr "" - -#: c-api/hash.rst:66 -msgid "" -"The `Mersenne prime `_ ``P = " -"2**n -1``, used for numeric hash scheme." -msgstr "" - -#: c-api/hash.rst:69 -msgid "This corresponds to the :data:`sys.hash_info.modulus` constant." -msgstr "" - -#: c-api/hash.rst:76 -msgid "The exponent ``n`` of ``P`` in :c:macro:`PyHASH_MODULUS`." -msgstr "" - -#: c-api/hash.rst:83 -msgid "Prime multiplier used in string and various other hashes." -msgstr "" - -#: c-api/hash.rst:90 -msgid "The hash value returned for a positive infinity." -msgstr "" - -#: c-api/hash.rst:92 -msgid "This corresponds to the :data:`sys.hash_info.inf` constant." -msgstr "" - -#: c-api/hash.rst:99 -msgid "The multiplier used for the imaginary part of a complex number." -msgstr "" - -#: c-api/hash.rst:101 -msgid "This corresponds to the :data:`sys.hash_info.imag` constant." -msgstr "" - -#: c-api/hash.rst:108 -msgid "Hash function definition used by :c:func:`PyHash_GetFuncDef`." -msgstr "" - -#: c-api/hash.rst:112 -msgid "Hash function." -msgstr "" - -#: c-api/hash.rst:116 -msgid "Hash function name (UTF-8 encoded string)." -msgstr "" - -#: c-api/hash.rst:118 -msgid "This corresponds to the :data:`sys.hash_info.algorithm` constant." -msgstr "" - -#: c-api/hash.rst:122 -msgid "Internal size of the hash value in bits." -msgstr "" - -#: c-api/hash.rst:124 -msgid "This corresponds to the :data:`sys.hash_info.hash_bits` constant." -msgstr "" - -#: c-api/hash.rst:128 -msgid "Size of seed input in bits." -msgstr "" - -#: c-api/hash.rst:130 -msgid "This corresponds to the :data:`sys.hash_info.seed_bits` constant." -msgstr "" - -#: c-api/hash.rst:137 -msgid "Get the hash function definition." -msgstr "" - -#: c-api/hash.rst:140 -msgid ":pep:`456` \"Secure and interchangeable hash algorithm\"." -msgstr "" - -#: c-api/hash.rst:147 -msgid "" -"Hash a pointer value: process the pointer value as an integer (cast it to " -"``uintptr_t`` internally). The pointer is not dereferenced." -msgstr "" - -#: c-api/hash.rst:150 -msgid "The function cannot fail: it cannot return ``-1``." -msgstr "" - -#: c-api/hash.rst:157 -msgid "" -"Compute and return the hash value of a buffer of *len* bytes starting at " -"address *ptr*. The hash is guaranteed to match that " -"of :class:`bytes`, :class:`memoryview`, and other built-in objects that " -"implement the :ref:`buffer protocol `." -msgstr "" - -#: c-api/hash.rst:162 -msgid "" -"Use this function to implement hashing for immutable objects " -"whose :c:member:`~PyTypeObject.tp_richcompare` function compares to another " -"object's buffer." -msgstr "" - -#: c-api/hash.rst:166 -msgid "*len* must be greater than or equal to ``0``." -msgstr "" - -#: c-api/hash.rst:168 -msgid "This function always succeeds." -msgstr "" - -#: c-api/hash.rst:175 -msgid "" -"Generic hashing function that is meant to be put into a type object's " -"``tp_hash`` slot. Its result only depends on the object's identity." -msgstr "" - -#: c-api/hash.rst:180 -msgid "In CPython, it is equivalent to :c:func:`Py_HashPointer`." -msgstr "" diff --git a/c-api/import.po b/c-api/import.po deleted file mode 100644 index 078be57451..0000000000 --- a/c-api/import.po +++ /dev/null @@ -1,470 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/import.rst:6 -msgid "Importing Modules" -msgstr "Importer des modules" - -#: c-api/import.rst:16 -msgid "" -"This is a wrapper around :c:func:`PyImport_Import()` which takes " -"a :c:expr:`const char *` as an argument instead of a :c:expr:`PyObject *`." -msgstr "" - -#: c-api/import.rst:24 -msgid "" -"Import a module. This is best described by referring to the built-in Python " -"function :func:`__import__`." -msgstr "" - -#: c-api/import.rst:43 -msgid "" -"The return value is a new reference to the imported module or top-level " -"package, or ``NULL`` with an exception set on failure. Like " -"for :func:`__import__`, the return value when a submodule of a package was " -"requested is normally the top-level package, unless a non-empty *fromlist* " -"was given." -msgstr "" - -#: c-api/import.rst:33 -msgid "" -"Failing imports remove incomplete module objects, like " -"with :c:func:`PyImport_ImportModule`." -msgstr "" - -#: c-api/import.rst:39 -msgid "" -"Import a module. This is best described by referring to the built-in Python " -"function :func:`__import__`, as the standard :func:`__import__` function " -"calls this function directly." -msgstr "" - -#: c-api/import.rst:53 -msgid "" -"Similar to :c:func:`PyImport_ImportModuleLevelObject`, but the name is a " -"UTF-8 encoded string instead of a Unicode object." -msgstr "" - -#: c-api/import.rst:56 -msgid "Negative values for *level* are no longer accepted." -msgstr "" - -#: c-api/import.rst:61 -msgid "" -"This is a higher-level interface that calls the current \"import hook " -"function\" (with an explicit *level* of 0, meaning absolute import). It " -"invokes the :func:`__import__` function from the ``__builtins__`` of the " -"current globals. This means that the import is done using whatever import " -"hooks are installed in the current environment." -msgstr "" - -#: c-api/import.rst:67 -msgid "This function always uses absolute imports." -msgstr "" - -#: c-api/import.rst:72 -msgid "" -"Reload a module. Return a new reference to the reloaded module, or ``NULL`` " -"with an exception set on failure (the module still exists in this case)." -msgstr "" - -#: c-api/import.rst:78 -msgid "Return the module object corresponding to a module name." -msgstr "" - -#: c-api/import.rst:80 -msgid "" -"The *name* argument may be of the form ``package.module``. First check the " -"modules dictionary if there's one there, and if not, create a new one and " -"insert it in the modules dictionary." -msgstr "" - -#: c-api/import.rst:84 -msgid "" -"Return a :term:`strong reference` to the module on success. Return ``NULL`` " -"with an exception set on failure." -msgstr "" - -#: c-api/import.rst:87 -msgid "The module name *name* is decoded from UTF-8." -msgstr "" - -#: c-api/import.rst:89 -msgid "" -"This function does not load or import the module; if the module wasn't " -"already loaded, you will get an empty module object. " -"Use :c:func:`PyImport_ImportModule` or one of its variants to import a " -"module. Package structures implied by a dotted name for *name* are not " -"created if not already present." -msgstr "" - -#: c-api/import.rst:100 -msgid "" -"Similar to :c:func:`PyImport_AddModuleRef`, but return a :term:`borrowed " -"reference` and *name* is a Python :class:`str` object." -msgstr "" - -#: c-api/import.rst:108 -msgid "" -"Similar to :c:func:`PyImport_AddModuleRef`, but return a :term:`borrowed " -"reference`." -msgstr "" - -#: c-api/import.rst:116 -msgid "" -"Given a module name (possibly of the form ``package.module``) and a code " -"object read from a Python bytecode file or obtained from the built-in " -"function :func:`compile`, load the module. Return a new reference to the " -"module object, or ``NULL`` with an exception set if an error occurred. " -"*name* is removed from :data:`sys.modules` in error cases, even if *name* " -"was already in :data:`sys.modules` on entry " -"to :c:func:`PyImport_ExecCodeModule`. Leaving incompletely initialized " -"modules in :data:`sys.modules` is dangerous, as imports of such modules have " -"no way to know that the module object is an unknown (and probably damaged " -"with respect to the module author's intents) state." -msgstr "" - -#: c-api/import.rst:126 -msgid "" -"The module's :attr:`~module.__spec__` and :attr:`~module.__loader__` will be " -"set, if not set already, with the appropriate values. The spec's loader " -"will be set to the module's :attr:`!__loader__` (if set) and to an instance " -"of :class:`~importlib.machinery.SourceFileLoader` otherwise." -msgstr "" - -#: c-api/import.rst:131 -msgid "" -"The module's :attr:`~module.__file__` attribute will be set to the code " -"object's :attr:`~codeobject.co_filename`." -msgstr "" - -#: c-api/import.rst:134 -msgid "" -"This function will reload the module if it was already imported. " -"See :c:func:`PyImport_ReloadModule` for the intended way to reload a module." -msgstr "" - -#: c-api/import.rst:137 -msgid "" -"If *name* points to a dotted name of the form ``package.module``, any " -"package structures not already created will still not be created." -msgstr "" - -#: c-api/import.rst:140 -msgid "" -"See also :c:func:`PyImport_ExecCodeModuleEx` " -"and :c:func:`PyImport_ExecCodeModuleWithPathnames`." -msgstr "" - -#: c-api/import.rst:143 -msgid "" -"The setting of ``__cached__`` and :attr:`~module.__loader__` is deprecated. " -"See :class:`~importlib.machinery.ModuleSpec` for alternatives." -msgstr "" - -#: c-api/import.rst:148 -msgid "``__cached__`` is no longer set." -msgstr "" - -#: c-api/import.rst:154 -msgid "" -"Like :c:func:`PyImport_ExecCodeModule`, but the :attr:`~module.__file__` " -"attribute of the module object is set to *pathname* if it is non-``NULL``." -msgstr "" - -#: c-api/import.rst:157 -msgid "See also :c:func:`PyImport_ExecCodeModuleWithPathnames`." -msgstr "" - -#: c-api/import.rst:162 -msgid "" -"Like :c:func:`PyImport_ExecCodeModuleEx`, but the path to any compiled file " -"via *cpathname* is used appropriately when non-``NULL``. Of the three " -"functions, this is the preferred one to use." -msgstr "" - -#: c-api/import.rst:168 -msgid "" -"Setting ``__cached__`` is deprecated. " -"See :class:`~importlib.machinery.ModuleSpec` for alternatives." -msgstr "" - -#: c-api/import.rst:172 -msgid "``__cached__`` no longer set." -msgstr "" - -#: c-api/import.rst:178 -msgid "" -"Like :c:func:`PyImport_ExecCodeModuleObject`, but *name*, *pathname* and " -"*cpathname* are UTF-8 encoded strings. Attempts are also made to figure out " -"what the value for *pathname* should be from *cpathname* if the former is " -"set to ``NULL``." -msgstr "" - -#: c-api/import.rst:184 -msgid "" -"Uses :func:`!imp.source_from_cache` in calculating the source path if only " -"the bytecode path is provided." -msgstr "" - -#: c-api/import.rst:187 -msgid "No longer uses the removed :mod:`!imp` module." -msgstr "" - -#: c-api/import.rst:193 -msgid "" -"Return the magic number for Python bytecode files (a.k.a. :file:`.pyc` " -"file). The magic number should be present in the first four bytes of the " -"bytecode file, in little-endian byte order. Returns ``-1`` on error." -msgstr "" - -#: c-api/import.rst:197 -msgid "Return value of ``-1`` upon failure." -msgstr "" - -#: c-api/import.rst:203 -msgid "" -"Return the magic tag string for :pep:`3147` format Python bytecode file " -"names. Keep in mind that the value at ``sys.implementation.cache_tag`` is " -"authoritative and should be used instead of this function." -msgstr "" - -#: c-api/import.rst:211 -msgid "" -"Return the dictionary used for the module administration (a.k.a. " -"``sys.modules``). Note that this is a per-interpreter variable." -msgstr "" - -#: c-api/import.rst:216 -msgid "" -"Return the already imported module with the given name. If the module has " -"not been imported yet then returns ``NULL`` but does not set an error. " -"Returns ``NULL`` and sets an error if the lookup failed." -msgstr "" - -#: c-api/import.rst:224 -msgid "" -"Return a finder object for a :data:`sys.path`/:attr:`!pkg.__path__` item " -"*path*, possibly by fetching it from the :data:`sys.path_importer_cache` " -"dict. If it wasn't yet cached, traverse :data:`sys.path_hooks` until a hook " -"is found that can handle the path item. Return ``None`` if no hook could; " -"this tells our caller that the :term:`path based finder` could not find a " -"finder for this path item. Cache the result " -"in :data:`sys.path_importer_cache`. Return a new reference to the finder " -"object." -msgstr "" - -#: c-api/import.rst:235 -msgid "" -"Load a frozen module named *name*. Return ``1`` for success, ``0`` if the " -"module is not found, and ``-1`` with an exception set if the initialization " -"failed. To access the imported module on a successful load, " -"use :c:func:`PyImport_ImportModule`. (Note the misnomer --- this function " -"would reload the module if it was already imported.)" -msgstr "" - -#: c-api/import.rst:243 -msgid "The ``__file__`` attribute is no longer set on the module." -msgstr "" - -#: c-api/import.rst:249 -msgid "" -"Similar to :c:func:`PyImport_ImportFrozenModuleObject`, but the name is a " -"UTF-8 encoded string instead of a Unicode object." -msgstr "" - -#: c-api/import.rst:257 -msgid "" -"This is the structure type definition for frozen module descriptors, as " -"generated by the :program:`freeze` utility (see :file:`Tools/freeze/` in the " -"Python source distribution). Its definition, found in :file:`Include/" -"import.h`, is::" -msgstr "" - -#: c-api/import.rst:269 -msgid "" -"The new ``is_package`` field indicates whether the module is a package or " -"not. This replaces setting the ``size`` field to a negative value." -msgstr "" - -#: c-api/import.rst:275 -#, fuzzy -msgid "" -"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 " -"frozen modules." -msgstr "" -"Ce pointeur est initialisé de manière à pointer sur un tableau d'entrées " -"de :c:type:`struct _frozen`, dont tous les membres de la dernière valent " -"``NULL`` ou zéro. Quand un module figé est importé, il est cherché dans ce " -"tableau. Du code tiers peut jouer avec pour construire dynamiquement une " -"collection de module figés." - -#: c-api/import.rst:283 -msgid "" -"Add a single module to the existing table of built-in modules. This is a " -"convenience wrapper around :c:func:`PyImport_ExtendInittab`, returning " -"``-1`` if the table could not be extended. The new module can be imported " -"by the name *name*, and uses the function *initfunc* as the initialization " -"function called on the first attempted import. This should be called " -"before :c:func:`Py_Initialize`." -msgstr "" - -#: c-api/import.rst:293 -msgid "" -"Structure describing a single entry in the list of built-in modules. " -"Programs which embed Python may use an array of these structures in " -"conjunction with :c:func:`PyImport_ExtendInittab` to provide additional " -"built-in modules. The structure consists of two members:" -msgstr "" - -#: c-api/import.rst:301 -msgid "The module name, as an ASCII encoded string." -msgstr "" - -#: c-api/import.rst:305 -msgid "Initialization function for a module built into the interpreter." -msgstr "" - -#: c-api/import.rst:310 -msgid "" -"Add a collection of modules to the table of built-in modules. The *newtab* " -"array must end with a sentinel entry which contains ``NULL`` for " -"the :c:member:`~_inittab.name` field; failure to provide the sentinel value " -"can result in a memory fault. Returns ``0`` on success or ``-1`` if " -"insufficient memory could be allocated to extend the internal table. In the " -"event of failure, no modules are added to the internal table. This must be " -"called before :c:func:`Py_Initialize`." -msgstr "" - -#: c-api/import.rst:317 -msgid "" -"If Python is initialized multiple times, :c:func:`PyImport_AppendInittab` " -"or :c:func:`PyImport_ExtendInittab` must be called before each Python " -"initialization." -msgstr "" - -#: c-api/import.rst:324 -msgid "" -"The table of built-in modules used by Python initialization. Do not use this " -"directly; use :c:func:`PyImport_AppendInittab` " -"and :c:func:`PyImport_ExtendInittab` instead." -msgstr "" - -#: c-api/import.rst:331 -msgid "Import the module *mod_name* and get its attribute *attr_name*." -msgstr "" - -#: c-api/import.rst:333 -msgid "Names must be Python :class:`str` objects." -msgstr "" - -#: c-api/import.rst:335 -msgid "" -"Helper function combining :c:func:`PyImport_Import` " -"and :c:func:`PyObject_GetAttr`. For example, it can raise :exc:`ImportError` " -"if the module is not found, and :exc:`AttributeError` if the attribute " -"doesn't exist." -msgstr "" - -#: c-api/import.rst:364 -msgid "" -"Similar to :c:func:`PyImport_ImportModuleAttr`, but names are UTF-8 encoded " -"strings instead of Python :class:`str` objects." -msgstr "" - -#: c-api/import.rst:351 -msgid "Gets the current lazy imports mode." -msgstr "" - -#: c-api/import.rst:357 -msgid "" -"Return a :term:`strong reference` to the current lazy imports filter, or " -"``NULL`` if none exists. This function always succeeds." -msgstr "" - -#: c-api/import.rst:367 -msgid "This function always returns ``0``." -msgstr "" - -#: c-api/import.rst:373 -msgid "" -"Sets the current lazy imports filter. The *filter* should be a callable that " -"will receive ``(importing_module_name, imported_module_name, [fromlist])`` " -"when an import can potentially be lazy. The ``imported_module_name`` value " -"is the resolved module name, so ``lazy from .spam import eggs`` passes " -"``package.spam``. The callable must return ``True`` if the import should be " -"lazy and ``False`` otherwise." -msgstr "" - -#: c-api/import.rst:380 -msgid "Return ``0`` on success and ``-1`` with an exception set otherwise." -msgstr "" - -#: c-api/import.rst:386 -msgid "Enumeration of possible lazy import modes." -msgstr "" - -#: c-api/import.rst:390 -msgid "Respect the ``lazy`` keyword in source code. This is the default mode." -msgstr "" - -#: c-api/import.rst:394 -msgid "Make all imports lazy by default." -msgstr "" - -#: c-api/import.rst:398 -msgid "" -"Disable lazy imports entirely. Even explicit ``lazy`` statements become " -"eager imports." -msgstr "" - -#: c-api/import.rst:405 -msgid "" -"This function is a building block that enables embedders to implement " -"the :py:meth:`~importlib.abc.Loader.create_module` step of custom static " -"extension importers (e.g. of statically-linked extensions)." -msgstr "" - -#: c-api/import.rst:409 -msgid "*spec* must be a :class:`~importlib.machinery.ModuleSpec` object." -msgstr "" - -#: c-api/import.rst:411 -msgid "" -"*initfunc* must be an :ref:`initialization function `, the same as for :c:func:`PyImport_AppendInittab`." -msgstr "" - -#: c-api/import.rst:414 -msgid "" -"On success, create and return a module object. This module will not be " -"initialized; call :c:func:`PyModule_Exec` to initialize it. (Custom " -"importers should do this in " -"their :py:meth:`~importlib.abc.Loader.exec_module` method.)" -msgstr "" - -#: c-api/import.rst:420 -msgid "On error, return NULL with an exception set." -msgstr "" - -#~ msgid "built-in function" -#~ msgstr "fonction native" - -#~ msgid "compile" -#~ msgstr "compiler" diff --git a/c-api/index.po b/c-api/index.po deleted file mode 100644 index 7ccf83a428..0000000000 --- a/c-api/index.po +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-02-15 00:33+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/index.rst:5 -#, fuzzy -msgid "Python/C API reference manual" -msgstr "Manuel de référence de l'API Python/C" - -#: c-api/index.rst:7 -msgid "" -"This manual documents the API used by C and C++ programmers who want to " -"write extension modules or embed Python. It is a companion " -"to :ref:`extending-index`, which describes the general principles of " -"extension writing but does not document the API functions in detail." -msgstr "" -"C'est la documentation de l'API utilisée par les développeurs C et C++ " -"écrivant des modules d'extension ou intégrant Python. Elle va de pair " -"avec :ref:`extending-index`, qui décrit les principes généraux de l'écriture " -"d'extensions, mais ne rentre pas dans les détails de chaque fonction de " -"l'API." diff --git a/c-api/init.po b/c-api/init.po deleted file mode 100644 index 086e4b14c0..0000000000 --- a/c-api/init.po +++ /dev/null @@ -1,209 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-11-29 18:22+0100\n" -"Last-Translator: FULL NAME \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" - -#: c-api/init.rst:4 -msgid "Initialization, finalization, and threads" -msgstr "" - -#: c-api/init.rst:6 -msgid "This page has been split up into the following:" -msgstr "" - -#: c-api/init.rst:8 -msgid ":ref:`initialization`" -msgstr "" - -#: c-api/init.rst:9 -msgid ":ref:`threads`" -msgstr "" - -#: c-api/init.rst:10 -msgid ":ref:`synchronization`" -msgstr "" - -#: c-api/init.rst:11 -msgid ":ref:`thread-local-storage`" -msgstr "" - -#: c-api/init.rst:12 -msgid ":ref:`sub-interpreter-support`" -msgstr "" - -#: c-api/init.rst:13 -msgid ":ref:`profiling`" -msgstr "" - -#, fuzzy -#~ msgid ":c:func:`Py_Initialize`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid ":c:func:`Py_InitializeEx`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid ":c:func:`Py_BytesMain`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid ":c:func:`Py_Main`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid "Utilities:" -#~ msgstr "Utilitaires :" - -#, fuzzy -#~ msgid ":c:func:`PyMem_RawMalloc`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid ":c:func:`PyMem_RawRealloc`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid ":c:func:`PyMem_RawCalloc`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid ":c:func:`PyMutex_Lock`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid ":c:func:`PyMutex_Unlock`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid "" -#~ "Ignore all :envvar:`!PYTHON*` environment variables, " -#~ "e.g. :envvar:`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." -#~ msgstr "" -#~ "Ignore toutes les variables d'environnement :envvar:`PYTHON*` qui " -#~ "pourraient être définies. Par exemple, :envvar:`PYTHONPATH` " -#~ "et :envvar:`PYTHONHOME`." - -#~ msgid "See :pep:`529` for more details." -#~ msgstr "Voir la :pep:`529` pour plus d'informations." - -#~ msgid "Availability" -#~ msgstr "Disponibilité" - -#, fuzzy -#~ msgid "See :pep:`528` for more details." -#~ msgstr "Voir la :pep:`529` pour plus d'informations." - -#~ msgid "" -#~ "Disable the import of the module :mod:`site` and the site-dependent " -#~ "manipulations of :data:`sys.path` that it entails. Also disable these " -#~ "manipulations if :mod:`site` is explicitly imported later " -#~ "(call :func:`site.main` if you want them to be triggered)." -#~ msgstr "" -#~ "Désactive l’importation du module :mod:`site` et les modifications " -#~ "locales de :data:`sys.path` qu’il implique. Désactive aussi ces " -#~ "manipulations si :mod:`site` est importé explicitement plus tard " -#~ "(appelez :func:`site.main` si vous voulez les déclencher)." - -#~ msgid "" -#~ "Don't add the :data:`user site-packages directory ` " -#~ "to :data:`sys.path`." -#~ msgstr "" -#~ "N'ajoute pas le répertoire utilisateur :data:`site-packages " -#~ "` à :data:`sys.path`." - -#~ msgid "" -#~ "Don't display the copyright and version messages even in interactive mode." -#~ msgstr "N'affiche pas le copyright et la version, même en mode interactif." - -#, fuzzy -#~ msgid "High-level API" -#~ msgstr "Bibliothèques de haut-niveau" - -#, fuzzy -#~ msgid ":c:func:`PyEval_ReleaseThread`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid ":c:func:`PyThreadState_Get`" -#~ msgstr ":c:func:`PyMem_RawCalloc`," - -#, fuzzy -#~ msgid "Low-level API" -#~ msgstr "Bibliothèques de bas-niveau" - -#, fuzzy -#~ msgid ":c:data:`PyTrace_CALL`" -#~ msgstr ":const:`PyTrace_CALL`" - -#, fuzzy -#~ msgid ":c:data:`PyTrace_EXCEPTION`" -#~ msgstr ":const:`PyTrace_EXCEPTION`" - -#, fuzzy -#~ msgid ":c:data:`PyTrace_LINE`" -#~ msgstr ":const:`PyTrace_LINE`" - -#, fuzzy -#~ msgid ":c:data:`PyTrace_RETURN`" -#~ msgstr ":const:`PyTrace_RETURN`" - -#, fuzzy -#~ msgid ":c:data:`PyTrace_C_CALL`" -#~ msgstr ":const:`PyTrace_C_CALL`" - -#, fuzzy -#~ msgid ":c:data:`PyTrace_C_EXCEPTION`" -#~ msgstr ":const:`PyTrace_C_EXCEPTION`" - -#, fuzzy -#~ msgid ":c:data:`PyTrace_C_RETURN`" -#~ msgstr ":const:`PyTrace_C_RETURN`" - -#, fuzzy -#~ msgid ":c:data:`PyTrace_OPCODE`" -#~ msgstr ":const:`PyTrace_OPCODE`" - -#~ msgid "Advanced Debugger Support" -#~ msgstr "Support avancé du débogueur" - -#~ msgid "Methods" -#~ msgstr "Méthodes" - -#~ msgid "Synchronization Primitives" -#~ msgstr "Primitives de synchronisation" - -#~ msgid "Example usage::" -#~ msgstr "Exemple d'utilisation ::" - -#~ msgid "module" -#~ msgstr "module" - -#~ msgid "builtins" -#~ msgstr "builtins" - -#~ msgid "__main__" -#~ msgstr "__main__" - -#~ msgid "sys" -#~ msgstr "*sys*" - -#~ msgid "global interpreter lock" -#~ msgstr "verrou global de l'interpréteur" - -#~ msgid "_thread" -#~ msgstr "``_thread``" - -#~ msgid ":ref:`Availability `: Windows." -#~ msgstr ":ref:`Disponibilité ` : Windows." diff --git a/c-api/init_config.po b/c-api/init_config.po deleted file mode 100644 index 19c82af8cb..0000000000 --- a/c-api/init_config.po +++ /dev/null @@ -1,3222 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-09-04 11:42+0200\n" -"Last-Translator: FULL NAME \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" - -#: c-api/init_config.rst:7 -msgid "Python Initialization Configuration" -msgstr "" - -#: c-api/init_config.rst:13 -msgid "PyInitConfig C API" -msgstr "" - -#: c-api/init_config.rst:17 -msgid "Python can be initialized with :c:func:`Py_InitializeFromInitConfig`." -msgstr "" - -#: c-api/init_config.rst:650 -msgid "" -"The :c:func:`Py_RunMain` function can be used to write a customized Python " -"program." -msgstr "" - -#: c-api/init_config.rst:653 -msgid "" -"See also :ref:`Initialization, Finalization, and Threads `." -msgstr "" - -#: c-api/init_config.rst:25 -msgid ":pep:`741` \"Python Configuration C API\"." -msgstr "" - -#: c-api/init_config.rst:660 -#, fuzzy -msgid "Example" -msgstr "Exemple ::" - -#: c-api/init_config.rst:31 -msgid "" -"Example of customized Python always running with the :ref:`Python " -"Development Mode ` enabled; return ``-1`` on error:" -msgstr "" - -#: c-api/init_config.rst:71 -msgid "Create Config" -msgstr "" - -#: c-api/init_config.rst:75 -msgid "Opaque structure to configure the Python initialization." -msgstr "" - -#: c-api/init_config.rst:80 -msgid "" -"Create a new initialization configuration using :ref:`Isolated Configuration " -"` default values." -msgstr "" - -#: c-api/init_config.rst:83 -msgid "It must be freed by :c:func:`PyInitConfig_Free`." -msgstr "" - -#: c-api/init_config.rst:85 -msgid "Return ``NULL`` on memory allocation failure." -msgstr "" - -#: c-api/init_config.rst:90 -msgid "Free memory of the initialization configuration *config*." -msgstr "" - -#: c-api/init_config.rst:92 -msgid "If *config* is ``NULL``, no operation is performed." -msgstr "" - -#: c-api/init_config.rst:96 -msgid "Error Handling" -msgstr "Gestion des erreurs" - -#: c-api/init_config.rst:100 -msgid "Get the *config* error message." -msgstr "" - -#: c-api/init_config.rst:102 -msgid "Set *\\*err_msg* and return ``1`` if an error is set." -msgstr "" - -#: c-api/init_config.rst:103 -msgid "Set *\\*err_msg* to ``NULL`` and return ``0`` otherwise." -msgstr "" - -#: c-api/init_config.rst:105 -msgid "An error message is a UTF-8 encoded string." -msgstr "" - -#: c-api/init_config.rst:107 -msgid "If *config* has an exit code, format the exit code as an error message." -msgstr "" - -#: c-api/init_config.rst:110 -msgid "" -"The error message remains valid until another ``PyInitConfig`` function is " -"called with *config*. The caller doesn't have to free the error message." -msgstr "" - -#: c-api/init_config.rst:117 -msgid "Get the *config* exit code." -msgstr "" - -#: c-api/init_config.rst:119 -msgid "Set *\\*exitcode* and return ``1`` if *config* has an exit code set." -msgstr "" - -#: c-api/init_config.rst:120 -msgid "Return ``0`` if *config* has no exit code set." -msgstr "" - -#: c-api/init_config.rst:122 -msgid "" -"Only the ``Py_InitializeFromInitConfig()`` function can set an exit code if " -"the ``parse_argv`` option is non-zero." -msgstr "" - -#: c-api/init_config.rst:125 -msgid "" -"An exit code can be set when parsing the command line failed (exit code " -"``2``) or when a command line option asks to display the command line help " -"(exit code ``0``)." -msgstr "" - -#: c-api/init_config.rst:131 -msgid "Get Options" -msgstr "" - -#: c-api/init_config.rst:187 c-api/init_config.rst:559 -msgid "" -"The configuration option *name* parameter must be a non-NULL null-terminated " -"UTF-8 encoded string. See :ref:`Configuration Options `." -msgstr "" - -#: c-api/init_config.rst:138 -msgid "Test if the configuration has an option called *name*." -msgstr "" - -#: c-api/init_config.rst:140 -msgid "Return ``1`` if the option exists, or return ``0`` otherwise." -msgstr "" - -#: c-api/init_config.rst:145 -msgid "Get an integer configuration option." -msgstr "" - -#: c-api/init_config.rst:156 -msgid "Set *\\*value*, and return ``0`` on success." -msgstr "" - -#: c-api/init_config.rst:157 c-api/init_config.rst:200 -#: c-api/init_config.rst:218 c-api/init_config.rst:249 -msgid "Set an error in *config* and return ``-1`` on error." -msgstr "" - -#: c-api/init_config.rst:153 -msgid "" -"Get a string configuration option as a null-terminated UTF-8 encoded string." -msgstr "" - -#: c-api/init_config.rst:159 -msgid "" -"*\\*value* can be set to ``NULL`` if the option is an optional string and " -"the option is unset." -msgstr "" - -#: c-api/init_config.rst:162 -msgid "" -"On success, the string must be released with ``free(value)`` if it's not " -"``NULL``." -msgstr "" - -#: c-api/init_config.rst:168 -msgid "" -"Get a string list configuration option as an array of null-terminated UTF-8 " -"encoded strings." -msgstr "" - -#: c-api/init_config.rst:171 -msgid "Set *\\*length* and *\\*value*, and return ``0`` on success." -msgstr "" - -#: c-api/init_config.rst:174 -msgid "" -"On success, the string list must be released with " -"``PyInitConfig_FreeStrList(length, items)``." -msgstr "" - -#: c-api/init_config.rst:180 -msgid "Free memory of a string list created by ``PyInitConfig_GetStrList()``." -msgstr "" - -#: c-api/init_config.rst:185 -msgid "Set Options" -msgstr "" - -#: c-api/init_config.rst:190 -msgid "" -"Some configuration options have side effects on other options. This logic is " -"only implemented when ``Py_InitializeFromInitConfig()`` is called, not by " -"the \"Set\" functions below. For example, setting ``dev_mode`` to ``1`` does " -"not set ``faulthandler`` to ``1``." -msgstr "" - -#: c-api/init_config.rst:197 -msgid "Set an integer configuration option." -msgstr "" - -#: c-api/init_config.rst:208 c-api/init_config.rst:232 -#: c-api/init_config.rst:591 -msgid "Return ``0`` on success." -msgstr "" - -#: c-api/init_config.rst:205 -msgid "" -"Set a string configuration option from a null-terminated UTF-8 encoded " -"string. The string is copied." -msgstr "" - -#: c-api/init_config.rst:214 -msgid "" -"Set a string list configuration option from an array of null-terminated " -"UTF-8 encoded strings. The string list is copied." -msgstr "" - -#: c-api/init_config.rst:222 -msgid "Module" -msgstr "" - -#: c-api/init_config.rst:226 -msgid "Add a built-in extension module to the table of built-in modules." -msgstr "" - -#: c-api/init_config.rst:228 -msgid "" -"The new module can be imported by the name *name*, and uses the function " -"*initfunc* as the initialization function called on the first attempted " -"import." -msgstr "" - -#: c-api/init_config.rst:235 -msgid "" -"If Python is initialized multiple times, ``PyInitConfig_AddModule()`` must " -"be called at each Python initialization." -msgstr "" - -#: c-api/init_config.rst:238 -msgid "Similar to the :c:func:`PyImport_AppendInittab` function." -msgstr "" - -#: c-api/init_config.rst:242 -msgid "Initialize Python" -msgstr "" - -#: c-api/init_config.rst:246 -msgid "Initialize Python from the initialization configuration." -msgstr "" - -#: c-api/init_config.rst:250 -msgid "Set an exit code in *config* and return ``-1`` if Python wants to exit." -msgstr "" - -#: c-api/init_config.rst:253 -msgid "See ``PyInitConfig_GetExitcode()`` for the exit code case." -msgstr "" - -#: c-api/init_config.rst:259 -msgid "Configuration Options" -msgstr "" - -#: c-api/init_config.rst:264 -msgid "Option" -msgstr "Option" - -#: c-api/init_config.rst:265 -msgid "PyConfig/PyPreConfig member" -msgstr "" - -#: c-api/init_config.rst:266 -msgid "Type" -msgstr "Type" - -#: c-api/init_config.rst:267 -msgid "Visibility" -msgstr "Visibilité" - -#: c-api/init_config.rst:268 -msgid "``\"allocator\"``" -msgstr "" - -#: c-api/init_config.rst:269 -msgid ":c:member:`allocator `" -msgstr "" - -#: c-api/init_config.rst:294 c-api/init_config.rst:358 -#: c-api/init_config.rst:378 c-api/init_config.rst:494 -#: c-api/init_config.rst:576 -msgid "``int``" -msgstr "``int``" - -#: c-api/init_config.rst:291 c-api/init_config.rst:303 -#: c-api/init_config.rst:311 c-api/init_config.rst:319 -#: c-api/init_config.rst:331 c-api/init_config.rst:347 -#: c-api/init_config.rst:355 c-api/init_config.rst:363 -#: c-api/init_config.rst:375 c-api/init_config.rst:391 -#: c-api/init_config.rst:399 c-api/init_config.rst:415 -#: c-api/init_config.rst:427 c-api/init_config.rst:451 -#: c-api/init_config.rst:459 c-api/init_config.rst:467 -#: c-api/init_config.rst:475 c-api/init_config.rst:483 -#: c-api/init_config.rst:495 c-api/init_config.rst:507 -#: c-api/init_config.rst:515 c-api/init_config.rst:527 -#: c-api/init_config.rst:543 -msgid "Read-only" -msgstr "Accessible en lecture seule" - -#: c-api/init_config.rst:272 -msgid "``\"argv\"``" -msgstr "" - -#: c-api/init_config.rst:273 -msgid ":c:member:`argv `" -msgstr "" - -#: c-api/init_config.rst:402 c-api/init_config.rst:530 -#: c-api/init_config.rst:578 -msgid "``list[str]``" -msgstr "" - -#: c-api/init_config.rst:279 c-api/init_config.rst:287 -#: c-api/init_config.rst:323 c-api/init_config.rst:343 -#: c-api/init_config.rst:379 c-api/init_config.rst:403 -#: c-api/init_config.rst:419 c-api/init_config.rst:435 -#: c-api/init_config.rst:447 c-api/init_config.rst:499 -#: c-api/init_config.rst:531 c-api/init_config.rst:539 -msgid "Public" -msgstr "" - -#: c-api/init_config.rst:276 -msgid "``\"base_exec_prefix\"``" -msgstr "" - -#: c-api/init_config.rst:277 -msgid ":c:member:`base_exec_prefix `" -msgstr "" - -#: c-api/init_config.rst:282 c-api/init_config.rst:298 -#: c-api/init_config.rst:338 c-api/init_config.rst:350 -#: c-api/init_config.rst:362 c-api/init_config.rst:434 -#: c-api/init_config.rst:442 c-api/init_config.rst:454 -#: c-api/init_config.rst:462 c-api/init_config.rst:486 -#: c-api/init_config.rst:577 -msgid "``str``" -msgstr "``str``" - -#: c-api/init_config.rst:280 -msgid "``\"base_executable\"``" -msgstr "" - -#: c-api/init_config.rst:281 -msgid ":c:member:`base_executable `" -msgstr "" - -#: c-api/init_config.rst:284 -msgid "``\"base_prefix\"``" -msgstr "" - -#: c-api/init_config.rst:285 -msgid ":c:member:`base_prefix `" -msgstr "" - -#: c-api/init_config.rst:288 -msgid "``\"buffered_stdio\"``" -msgstr "" - -#: c-api/init_config.rst:289 -msgid ":c:member:`buffered_stdio `" -msgstr "" - -#: c-api/init_config.rst:302 c-api/init_config.rst:310 -#: c-api/init_config.rst:318 c-api/init_config.rst:330 -#: c-api/init_config.rst:370 c-api/init_config.rst:382 -#: c-api/init_config.rst:390 c-api/init_config.rst:398 -#: c-api/init_config.rst:418 c-api/init_config.rst:426 -#: c-api/init_config.rst:466 c-api/init_config.rst:474 -#: c-api/init_config.rst:498 c-api/init_config.rst:506 -#: c-api/init_config.rst:514 c-api/init_config.rst:526 -#: c-api/init_config.rst:542 c-api/init_config.rst:575 -msgid "``bool``" -msgstr "``bool``" - -#: c-api/init_config.rst:292 -msgid "``\"bytes_warning\"``" -msgstr "" - -#: c-api/init_config.rst:293 -msgid ":c:member:`bytes_warning `" -msgstr "" - -#: c-api/init_config.rst:296 -msgid "``\"check_hash_pycs_mode\"``" -msgstr "" - -#: c-api/init_config.rst:297 -msgid ":c:member:`check_hash_pycs_mode `" -msgstr "" - -#: c-api/init_config.rst:300 -msgid "``\"code_debug_ranges\"``" -msgstr "" - -#: c-api/init_config.rst:301 -msgid ":c:member:`code_debug_ranges `" -msgstr "" - -#: c-api/init_config.rst:304 -msgid "``\"coerce_c_locale\"``" -msgstr "" - -#: c-api/init_config.rst:305 -msgid ":c:member:`coerce_c_locale `" -msgstr "" - -#: c-api/init_config.rst:308 -msgid "``\"coerce_c_locale_warn\"``" -msgstr "" - -#: c-api/init_config.rst:309 -msgid ":c:member:`coerce_c_locale_warn `" -msgstr "" - -#: c-api/init_config.rst:312 -msgid "``\"configure_c_stdio\"``" -msgstr "" - -#: c-api/init_config.rst:313 -msgid ":c:member:`configure_c_stdio `" -msgstr "" - -#: c-api/init_config.rst:316 -msgid "``\"configure_locale\"``" -msgstr "" - -#: c-api/init_config.rst:317 -msgid ":c:member:`configure_locale `" -msgstr "" - -#: c-api/init_config.rst:320 -msgid "``\"cpu_count\"``" -msgstr "" - -#: c-api/init_config.rst:321 -msgid ":c:member:`cpu_count `" -msgstr "" - -#: c-api/init_config.rst:324 -msgid "``\"dev_mode\"``" -msgstr "" - -#: c-api/init_config.rst:325 -msgid ":c:member:`dev_mode `" -msgstr "" - -#: c-api/init_config.rst:328 -msgid "``\"dump_refs\"``" -msgstr "" - -#: c-api/init_config.rst:329 -msgid ":c:member:`dump_refs `" -msgstr "" - -#: c-api/init_config.rst:332 -msgid "``\"dump_refs_file\"``" -msgstr "" - -#: c-api/init_config.rst:333 -msgid ":c:member:`dump_refs_file `" -msgstr "" - -#: c-api/init_config.rst:336 -msgid "``\"exec_prefix\"``" -msgstr "" - -#: c-api/init_config.rst:337 -msgid ":c:member:`exec_prefix `" -msgstr "" - -#: c-api/init_config.rst:340 -msgid "``\"executable\"``" -msgstr "" - -#: c-api/init_config.rst:341 -msgid ":c:member:`executable `" -msgstr "" - -#: c-api/init_config.rst:344 -msgid "``\"faulthandler\"``" -msgstr "" - -#: c-api/init_config.rst:345 -msgid ":c:member:`faulthandler `" -msgstr "" - -#: c-api/init_config.rst:348 -msgid "``\"filesystem_encoding\"``" -msgstr "" - -#: c-api/init_config.rst:349 -msgid ":c:member:`filesystem_encoding `" -msgstr "" - -#: c-api/init_config.rst:352 -msgid "``\"filesystem_errors\"``" -msgstr "" - -#: c-api/init_config.rst:353 -msgid ":c:member:`filesystem_errors `" -msgstr "" - -#: c-api/init_config.rst:356 -msgid "``\"hash_seed\"``" -msgstr "" - -#: c-api/init_config.rst:357 -msgid ":c:member:`hash_seed `" -msgstr "" - -#: c-api/init_config.rst:360 -msgid "``\"home\"``" -msgstr "" - -#: c-api/init_config.rst:361 -msgid ":c:member:`home `" -msgstr "" - -#: c-api/init_config.rst:364 -msgid "``\"import_time\"``" -msgstr "" - -#: c-api/init_config.rst:365 -msgid ":c:member:`import_time `" -msgstr "" - -#: c-api/init_config.rst:368 -msgid "``\"inspect\"``" -msgstr "" - -#: c-api/init_config.rst:369 -msgid ":c:member:`inspect `" -msgstr "" - -#: c-api/init_config.rst:372 -msgid "``\"install_signal_handlers\"``" -msgstr "" - -#: c-api/init_config.rst:373 -msgid ":c:member:`install_signal_handlers `" -msgstr "" - -#: c-api/init_config.rst:376 -msgid "``\"int_max_str_digits\"``" -msgstr "" - -#: c-api/init_config.rst:377 -msgid ":c:member:`int_max_str_digits `" -msgstr "" - -#: c-api/init_config.rst:380 -msgid "``\"interactive\"``" -msgstr "" - -#: c-api/init_config.rst:381 -msgid ":c:member:`interactive `" -msgstr "" - -#: c-api/init_config.rst:384 -msgid "``\"isolated\"``" -msgstr "" - -#: c-api/init_config.rst:385 -msgid ":c:member:`isolated `" -msgstr "" - -#: c-api/init_config.rst:388 -msgid "``\"legacy_windows_fs_encoding\"``" -msgstr "" - -#: c-api/init_config.rst:389 -msgid "" -":c:member:`legacy_windows_fs_encoding " -"`" -msgstr "" - -#: c-api/init_config.rst:392 -msgid "``\"legacy_windows_stdio\"``" -msgstr "" - -#: c-api/init_config.rst:393 -msgid ":c:member:`legacy_windows_stdio `" -msgstr "" - -#: c-api/init_config.rst:396 -msgid "``\"malloc_stats\"``" -msgstr "" - -#: c-api/init_config.rst:397 -msgid ":c:member:`malloc_stats `" -msgstr "" - -#: c-api/init_config.rst:400 -msgid "``\"module_search_paths\"``" -msgstr "" - -#: c-api/init_config.rst:401 -msgid ":c:member:`module_search_paths `" -msgstr "" - -#: c-api/init_config.rst:404 -msgid "``\"optimization_level\"``" -msgstr "" - -#: c-api/init_config.rst:405 -msgid ":c:member:`optimization_level `" -msgstr "" - -#: c-api/init_config.rst:408 -msgid "``\"orig_argv\"``" -msgstr "" - -#: c-api/init_config.rst:409 -msgid ":c:member:`orig_argv `" -msgstr "" - -#: c-api/init_config.rst:412 -msgid "``\"parse_argv\"``" -msgstr "" - -#: c-api/init_config.rst:413 -msgid ":c:member:`parse_argv `" -msgstr "" - -#: c-api/init_config.rst:416 -msgid "``\"parser_debug\"``" -msgstr "" - -#: c-api/init_config.rst:417 -msgid ":c:member:`parser_debug `" -msgstr "" - -#: c-api/init_config.rst:420 -msgid "``\"pathconfig_warnings\"``" -msgstr "" - -#: c-api/init_config.rst:421 -msgid ":c:member:`pathconfig_warnings `" -msgstr "" - -#: c-api/init_config.rst:424 -msgid "``\"perf_profiling\"``" -msgstr "" - -#: c-api/init_config.rst:425 -msgid ":c:member:`perf_profiling `" -msgstr "" - -#: c-api/init_config.rst:428 -msgid "``\"platlibdir\"``" -msgstr "" - -#: c-api/init_config.rst:429 -msgid ":c:member:`platlibdir `" -msgstr "" - -#: c-api/init_config.rst:432 -msgid "``\"prefix\"``" -msgstr "" - -#: c-api/init_config.rst:433 -msgid ":c:member:`prefix `" -msgstr "" - -#: c-api/init_config.rst:436 -msgid "``\"program_name\"``" -msgstr "" - -#: c-api/init_config.rst:437 -msgid ":c:member:`program_name `" -msgstr "" - -#: c-api/init_config.rst:440 -msgid "``\"pycache_prefix\"``" -msgstr "" - -#: c-api/init_config.rst:441 -msgid ":c:member:`pycache_prefix `" -msgstr "" - -#: c-api/init_config.rst:444 -msgid "``\"quiet\"``" -msgstr "" - -#: c-api/init_config.rst:445 -msgid ":c:member:`quiet `" -msgstr "" - -#: c-api/init_config.rst:448 -msgid "``\"run_command\"``" -msgstr "" - -#: c-api/init_config.rst:449 -msgid ":c:member:`run_command `" -msgstr "" - -#: c-api/init_config.rst:452 -msgid "``\"run_filename\"``" -msgstr "" - -#: c-api/init_config.rst:453 -msgid ":c:member:`run_filename `" -msgstr "" - -#: c-api/init_config.rst:456 -msgid "``\"run_module\"``" -msgstr "" - -#: c-api/init_config.rst:457 -msgid ":c:member:`run_module `" -msgstr "" - -#: c-api/init_config.rst:460 -msgid "``\"run_presite\"``" -msgstr "" - -#: c-api/init_config.rst:461 -msgid ":c:member:`run_presite `" -msgstr "" - -#: c-api/init_config.rst:464 -msgid "``\"safe_path\"``" -msgstr "" - -#: c-api/init_config.rst:465 -msgid ":c:member:`safe_path `" -msgstr "" - -#: c-api/init_config.rst:468 -msgid "``\"show_ref_count\"``" -msgstr "" - -#: c-api/init_config.rst:469 -msgid ":c:member:`show_ref_count `" -msgstr "" - -#: c-api/init_config.rst:472 -msgid "``\"site_import\"``" -msgstr "" - -#: c-api/init_config.rst:473 -msgid ":c:member:`site_import `" -msgstr "" - -#: c-api/init_config.rst:476 -msgid "``\"skip_source_first_line\"``" -msgstr "" - -#: c-api/init_config.rst:477 -msgid ":c:member:`skip_source_first_line `" -msgstr "" - -#: c-api/init_config.rst:480 -msgid "``\"stdio_encoding\"``" -msgstr "" - -#: c-api/init_config.rst:481 -msgid ":c:member:`stdio_encoding `" -msgstr "" - -#: c-api/init_config.rst:484 -msgid "``\"stdio_errors\"``" -msgstr "" - -#: c-api/init_config.rst:485 -msgid ":c:member:`stdio_errors `" -msgstr "" - -#: c-api/init_config.rst:488 -msgid "``\"stdlib_dir\"``" -msgstr "" - -#: c-api/init_config.rst:489 -msgid ":c:member:`stdlib_dir `" -msgstr "" - -#: c-api/init_config.rst:492 -msgid "``\"tracemalloc\"``" -msgstr "" - -#: c-api/init_config.rst:493 -msgid ":c:member:`tracemalloc `" -msgstr "" - -#: c-api/init_config.rst:496 -msgid "``\"use_environment\"``" -msgstr "" - -#: c-api/init_config.rst:497 -msgid ":c:member:`use_environment `" -msgstr "" - -#: c-api/init_config.rst:500 -msgid "``\"use_frozen_modules\"``" -msgstr "" - -#: c-api/init_config.rst:501 -msgid ":c:member:`use_frozen_modules `" -msgstr "" - -#: c-api/init_config.rst:504 -msgid "``\"use_hash_seed\"``" -msgstr "" - -#: c-api/init_config.rst:505 -msgid ":c:member:`use_hash_seed `" -msgstr "" - -#: c-api/init_config.rst:508 -msgid "``\"use_system_logger\"``" -msgstr "" - -#: c-api/init_config.rst:509 -msgid ":c:member:`use_system_logger `" -msgstr "" - -#: c-api/init_config.rst:512 -msgid "``\"user_site_directory\"``" -msgstr "" - -#: c-api/init_config.rst:513 -msgid ":c:member:`user_site_directory `" -msgstr "" - -#: c-api/init_config.rst:516 -msgid "``\"utf8_mode\"``" -msgstr "" - -#: c-api/init_config.rst:517 -msgid ":c:member:`utf8_mode `" -msgstr "" - -#: c-api/init_config.rst:520 -msgid "``\"verbose\"``" -msgstr "" - -#: c-api/init_config.rst:521 -msgid ":c:member:`verbose `" -msgstr "" - -#: c-api/init_config.rst:524 -msgid "``\"warn_default_encoding\"``" -msgstr "" - -#: c-api/init_config.rst:525 -msgid ":c:member:`warn_default_encoding `" -msgstr "" - -#: c-api/init_config.rst:528 -msgid "``\"warnoptions\"``" -msgstr "" - -#: c-api/init_config.rst:529 -msgid ":c:member:`warnoptions `" -msgstr "" - -#: c-api/init_config.rst:532 -msgid "``\"write_bytecode\"``" -msgstr "" - -#: c-api/init_config.rst:533 -msgid ":c:member:`write_bytecode `" -msgstr "" - -#: c-api/init_config.rst:536 -msgid "``\"xoptions\"``" -msgstr "" - -#: c-api/init_config.rst:537 -msgid ":c:member:`xoptions `" -msgstr "" - -#: c-api/init_config.rst:579 -msgid "``dict[str, str]``" -msgstr "" - -#: c-api/init_config.rst:540 -msgid "``\"_pystats\"``" -msgstr "" - -#: c-api/init_config.rst:541 -msgid ":c:member:`_pystats `" -msgstr "" - -#: c-api/init_config.rst:545 -msgid "Visibility:" -msgstr "" - -#: c-api/init_config.rst:547 -msgid "" -"Public: Can be retrieved by :c:func:`PyConfig_Get` and set " -"by :c:func:`PyConfig_Set`." -msgstr "" - -#: c-api/init_config.rst:549 -msgid "" -"Read-only: Can be retrieved by :c:func:`PyConfig_Get`, but cannot be set " -"by :c:func:`PyConfig_Set`." -msgstr "" - -#: c-api/init_config.rst:554 -msgid "Runtime Python configuration API" -msgstr "" - -#: c-api/init_config.rst:556 -msgid "" -"At runtime, it's possible to get and set configuration options " -"using :c:func:`PyConfig_Get` and :c:func:`PyConfig_Set` functions." -msgstr "" - -#: c-api/init_config.rst:562 -msgid "" -"Some options are read from the :mod:`sys` attributes. For example, the " -"option ``\"argv\"`` is read from :data:`sys.argv`." -msgstr "" - -#: c-api/init_config.rst:568 -msgid "" -"Get the current runtime value of a configuration option as a Python object." -msgstr "" - -#: c-api/init_config.rst:601 -msgid "Return a new reference on success." -msgstr "" - -#: c-api/init_config.rst:602 -msgid "Set an exception and return ``NULL`` on error." -msgstr "" - -#: c-api/init_config.rst:573 -msgid "The object type depends on the configuration option. It can be:" -msgstr "" - -#: c-api/init_config.rst:604 c-api/init_config.rst:619 -msgid "" -"The caller must have an :term:`attached thread state`. The function cannot " -"be called before Python initialization nor after Python finalization." -msgstr "" - -#: c-api/init_config.rst:589 -msgid "Similar to :c:func:`PyConfig_Get`, but get the value as a C int." -msgstr "" - -#: c-api/init_config.rst:592 -msgid "Set an exception and return ``-1`` on error." -msgstr "" - -#: c-api/init_config.rst:599 -msgid "Get all configuration option names as a ``frozenset``." -msgstr "" - -#: c-api/init_config.rst:612 -msgid "Set the current runtime value of a configuration option." -msgstr "" - -#: c-api/init_config.rst:614 -msgid "Raise a :exc:`ValueError` if there is no option *name*." -msgstr "" - -#: c-api/init_config.rst:615 -msgid "Raise a :exc:`ValueError` if *value* is an invalid value." -msgstr "" - -#: c-api/init_config.rst:616 -msgid "Raise a :exc:`ValueError` if the option is read-only (cannot be set)." -msgstr "" - -#: c-api/init_config.rst:617 -msgid "Raise a :exc:`TypeError` if *value* has not the proper type." -msgstr "" - -#: c-api/init_config.rst:622 -msgid "" -"Raises an :ref:`auditing event ` ``cpython.PyConfig_Set`` with " -"arguments ``name``, ``value``." -msgstr "" - -#: c-api/init_config.rst:630 -msgid "PyConfig C API" -msgstr "" - -#: c-api/init_config.rst:634 -msgid "" -"Python can be initialized with :c:func:`Py_InitializeFromConfig` and " -"the :c:type:`PyConfig` structure. It can be preinitialized " -"with :c:func:`Py_PreInitialize` and the :c:type:`PyPreConfig` structure." -msgstr "" - -#: c-api/init_config.rst:638 -msgid "There are two kinds of configuration:" -msgstr "" - -#: c-api/init_config.rst:640 -msgid "" -"The :ref:`Python Configuration ` can be used to build a " -"customized Python which behaves as the regular Python. For example, " -"environment variables and command line arguments are used to configure " -"Python." -msgstr "" - -#: c-api/init_config.rst:645 -msgid "" -"The :ref:`Isolated Configuration ` can be used to embed " -"Python into an application. It isolates Python from the system. For example, " -"environment variables are ignored, the LC_CTYPE locale is left unchanged and " -"no signal handler is registered." -msgstr "" - -#: c-api/init_config.rst:656 -msgid ":pep:`587` \"Python Initialization Configuration\"." -msgstr "" - -#: c-api/init_config.rst:662 -msgid "Example of customized Python always running in isolated mode::" -msgstr "" - -#: c-api/init_config.rst:699 -msgid "PyWideStringList" -msgstr "" - -#: c-api/init_config.rst:703 -msgid "List of ``wchar_t*`` strings." -msgstr "" - -#: c-api/init_config.rst:705 -msgid "" -"If *length* is non-zero, *items* must be non-``NULL`` and all strings must " -"be non-``NULL``." -msgstr "" - -#: c-api/init_config.rst:710 -#, fuzzy -msgid "Methods:" -msgstr "Méthodes :" - -#: c-api/init_config.rst:714 -msgid "Append *item* to *list*." -msgstr "" - -#: c-api/init_config.rst:727 -msgid "Python must be preinitialized to call this function." -msgstr "" - -#: c-api/init_config.rst:720 -msgid "Insert *item* into *list* at *index*." -msgstr "" - -#: c-api/init_config.rst:722 -msgid "" -"If *index* is greater than or equal to *list* length, append *item* to " -"*list*." -msgstr "" - -#: c-api/init_config.rst:725 -msgid "*index* must be greater than or equal to ``0``." -msgstr "" - -#: c-api/init_config.rst:751 c-api/init_config.rst:1175 -msgid "Structure fields:" -msgstr "" - -#: c-api/init_config.rst:735 -msgid "List length." -msgstr "" - -#: c-api/init_config.rst:739 -msgid "List items." -msgstr "" - -#: c-api/init_config.rst:742 -msgid "PyStatus" -msgstr "" - -#: c-api/init_config.rst:746 -msgid "" -"Structure to store an initialization function status: success, error or exit." -msgstr "" - -#: c-api/init_config.rst:749 -msgid "For an error, it can store the C function name which created the error." -msgstr "" - -#: c-api/init_config.rst:755 -msgid "Exit code. Argument passed to ``exit()``." -msgstr "" - -#: c-api/init_config.rst:759 -msgid "Error message." -msgstr "" - -#: c-api/init_config.rst:763 -msgid "Name of the function which created an error, can be ``NULL``." -msgstr "" - -#: c-api/init_config.rst:767 -msgid "Functions to create a status:" -msgstr "" - -#: c-api/init_config.rst:771 -msgid "Success." -msgstr "" - -#: c-api/init_config.rst:775 -msgid "Initialization error with a message." -msgstr "" - -#: c-api/init_config.rst:777 -msgid "*err_msg* must not be ``NULL``." -msgstr "" - -#: c-api/init_config.rst:781 -msgid "Memory allocation failure (out of memory)." -msgstr "" - -#: c-api/init_config.rst:785 -msgid "Exit Python with the specified exit code." -msgstr "" - -#: c-api/init_config.rst:787 -msgid "Functions to handle a status:" -msgstr "" - -#: c-api/init_config.rst:791 -msgid "" -"Is the status an error or an exit? If true, the exception must be handled; " -"by calling :c:func:`Py_ExitStatusException` for example." -msgstr "" - -#: c-api/init_config.rst:796 -msgid "Is the result an error?" -msgstr "" - -#: c-api/init_config.rst:800 -msgid "Is the result an exit?" -msgstr "" - -#: c-api/init_config.rst:804 -msgid "" -"Call ``exit(exitcode)`` if *status* is an exit. Print the error message and " -"exit with a non-zero exit code if *status* is an error. Must only be called " -"if ``PyStatus_Exception(status)`` is non-zero." -msgstr "" - -#: c-api/init_config.rst:809 -msgid "" -"Internally, Python uses macros which set ``PyStatus.func``, whereas " -"functions to create a status set ``func`` to ``NULL``." -msgstr "" - -#: c-api/init_config.rst:812 -msgid "Example::" -msgstr "Exemple ::" - -#: c-api/init_config.rst:836 -msgid "PyPreConfig" -msgstr "" - -#: c-api/init_config.rst:840 -msgid "Structure used to preinitialize Python." -msgstr "" - -#: c-api/init_config.rst:844 -msgid "Function to initialize a preconfiguration:" -msgstr "" - -#: c-api/init_config.rst:848 -msgid "" -"Initialize the preconfiguration with :ref:`Python Configuration `." -msgstr "" - -#: c-api/init_config.rst:853 -msgid "" -"Initialize the preconfiguration with :ref:`Isolated Configuration `." -msgstr "" - -#: c-api/init_config.rst:862 -msgid "Name of the Python memory allocators:" -msgstr "" - -#: c-api/init_config.rst:864 -msgid "" -"``PYMEM_ALLOCATOR_NOT_SET`` (``0``): don't change memory allocators (use " -"defaults)." -msgstr "" - -#: c-api/init_config.rst:866 -msgid "" -"``PYMEM_ALLOCATOR_DEFAULT`` (``1``): :ref:`default memory allocators " -"`." -msgstr "" - -#: c-api/init_config.rst:868 -msgid "" -"``PYMEM_ALLOCATOR_DEBUG`` (``2``): :ref:`default memory allocators ` with :ref:`debug hooks `." -msgstr "" - -#: c-api/init_config.rst:871 -msgid "``PYMEM_ALLOCATOR_MALLOC`` (``3``): use ``malloc()`` of the C library." -msgstr "" - -#: c-api/init_config.rst:872 -msgid "" -"``PYMEM_ALLOCATOR_MALLOC_DEBUG`` (``4``): force usage of ``malloc()`` " -"with :ref:`debug hooks `." -msgstr "" - -#: c-api/init_config.rst:874 -msgid "" -"``PYMEM_ALLOCATOR_PYMALLOC`` (``5``): :ref:`Python pymalloc memory allocator " -"`." -msgstr "" - -#: c-api/init_config.rst:876 -msgid "" -"``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` (``6``): :ref:`Python pymalloc memory " -"allocator ` with :ref:`debug hooks `." -msgstr "" - -#: c-api/init_config.rst:879 -msgid "" -"``PYMEM_ALLOCATOR_MIMALLOC`` (``6``): use ``mimalloc``, a fast malloc " -"replacement." -msgstr "" - -#: c-api/init_config.rst:881 -msgid "" -"``PYMEM_ALLOCATOR_MIMALLOC_DEBUG`` (``7``): use ``mimalloc``, a fast malloc " -"replacement with :ref:`debug hooks `." -msgstr "" - -#: c-api/init_config.rst:885 -msgid "" -"``PYMEM_ALLOCATOR_PYMALLOC`` and ``PYMEM_ALLOCATOR_PYMALLOC_DEBUG`` are not " -"supported if Python is :option:`configured using --without-pymalloc <--" -"without-pymalloc>`." -msgstr "" - -#: c-api/init_config.rst:889 -msgid "" -"``PYMEM_ALLOCATOR_MIMALLOC`` and ``PYMEM_ALLOCATOR_MIMALLOC_DEBUG`` are not " -"supported if Python is :option:`configured using --without-mimalloc <--" -"without-mimalloc>` or if the underlying atomic support isn't available." -msgstr "" - -#: c-api/init_config.rst:894 -msgid "See :ref:`Memory Management `." -msgstr "" - -#: c-api/init_config.rst:896 -msgid "Default: ``PYMEM_ALLOCATOR_NOT_SET``." -msgstr "" - -#: c-api/init_config.rst:900 -msgid "Set the LC_CTYPE locale to the user preferred locale." -msgstr "" - -#: c-api/init_config.rst:902 -msgid "" -"If equals to ``0``, set :c:member:`~PyPreConfig.coerce_c_locale` " -"and :c:member:`~PyPreConfig.coerce_c_locale_warn` members to ``0``." -msgstr "" - -#: c-api/init_config.rst:916 -msgid "See the :term:`locale encoding`." -msgstr "" - -#: c-api/init_config.rst:962 c-api/init_config.rst:1336 -msgid "Default: ``1`` in Python config, ``0`` in isolated config." -msgstr "" - -#: c-api/init_config.rst:911 -msgid "If equals to ``2``, coerce the C locale." -msgstr "" - -#: c-api/init_config.rst:913 -msgid "" -"If equals to ``1``, read the LC_CTYPE locale to decide if it should be " -"coerced." -msgstr "" - -#: c-api/init_config.rst:924 -msgid "Default: ``-1`` in Python config, ``0`` in isolated config." -msgstr "" - -#: c-api/init_config.rst:922 -msgid "If non-zero, emit a warning if the C locale is coerced." -msgstr "" - -#: c-api/init_config.rst:928 -msgid "" -":ref:`Python Development Mode `: see :c:member:`PyConfig.dev_mode`." -msgstr "" - -#: c-api/init_config.rst:1345 c-api/init_config.rst:1895 -msgid "Default: ``-1`` in Python mode, ``0`` in isolated mode." -msgstr "" - -#: c-api/init_config.rst:935 -msgid "Isolated mode: see :c:member:`PyConfig.isolated`." -msgstr "" - -#: c-api/init_config.rst:1572 -msgid "Default: ``0`` in Python mode, ``1`` in isolated mode." -msgstr "" - -#: c-api/init_config.rst:941 -msgid "If non-zero:" -msgstr "" - -#: c-api/init_config.rst:943 -msgid "Set :c:member:`PyPreConfig.utf8_mode` to ``0``," -msgstr "" - -#: c-api/init_config.rst:944 -msgid "Set :c:member:`PyConfig.filesystem_encoding` to ``\"mbcs\"``," -msgstr "" - -#: c-api/init_config.rst:945 -msgid "Set :c:member:`PyConfig.filesystem_errors` to ``\"replace\"``." -msgstr "" - -#: c-api/init_config.rst:947 -msgid "" -"Initialized from the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " -"variable value." -msgstr "" - -#: c-api/init_config.rst:1586 -msgid "" -"Only available on Windows. ``#ifdef MS_WINDOWS`` macro can be used for " -"Windows specific code." -msgstr "" - -#: c-api/init_config.rst:1279 c-api/init_config.rst:1358 -#: c-api/init_config.rst:1508 c-api/init_config.rst:1589 -#: c-api/init_config.rst:1663 c-api/init_config.rst:1777 -#: c-api/init_config.rst:1860 c-api/init_config.rst:2021 -msgid "Default: ``0``." -msgstr "" - -#: c-api/init_config.rst:957 -msgid "" -"If non-zero, :c:func:`Py_PreInitializeFromArgs` " -"and :c:func:`Py_PreInitializeFromBytesArgs` parse their ``argv`` argument " -"the same way the regular Python parses command line arguments: " -"see :ref:`Command Line Arguments `." -msgstr "" - -#: c-api/init_config.rst:966 -msgid "" -"Use :ref:`environment variables `? " -"See :c:member:`PyConfig.use_environment`." -msgstr "" - -#: c-api/init_config.rst:1936 -msgid "Default: ``1`` in Python config and ``0`` in isolated config." -msgstr "" - -#: c-api/init_config.rst:973 -msgid "If non-zero, enable the :ref:`Python UTF-8 Mode `." -msgstr "" - -#: c-api/init_config.rst:975 -msgid "" -"Set to ``0`` or ``1`` by the :option:`-X utf8 <-X>` command line option and " -"the :envvar:`PYTHONUTF8` environment variable." -msgstr "" - -#: c-api/init_config.rst:1266 c-api/init_config.rst:1848 -#: c-api/init_config.rst:2006 -msgid "Default: ``1``." -msgstr "" - -#: c-api/init_config.rst:984 -msgid "Preinitialize Python with PyPreConfig" -msgstr "" - -#: c-api/init_config.rst:986 -msgid "The preinitialization of Python:" -msgstr "" - -#: c-api/init_config.rst:988 -msgid "Set the Python memory allocators (:c:member:`PyPreConfig.allocator`)" -msgstr "" - -#: c-api/init_config.rst:989 -msgid "Configure the LC_CTYPE locale (:term:`locale encoding`)" -msgstr "" - -#: c-api/init_config.rst:990 -msgid "" -"Set the :ref:`Python UTF-8 Mode ` " -"(:c:member:`PyPreConfig.utf8_mode`)" -msgstr "" - -#: c-api/init_config.rst:993 -msgid "" -"The current preconfiguration (``PyPreConfig`` type) is stored in " -"``_PyRuntime.preconfig``." -msgstr "" - -#: c-api/init_config.rst:996 -msgid "Functions to preinitialize Python:" -msgstr "" - -#: c-api/init_config.rst:1006 c-api/init_config.rst:1015 -msgid "Preinitialize Python from *preconfig* preconfiguration." -msgstr "" - -#: c-api/init_config.rst:1011 c-api/init_config.rst:1020 -msgid "*preconfig* must not be ``NULL``." -msgstr "" - -#: c-api/init_config.rst:1008 -msgid "" -"Parse *argv* command line arguments (bytes strings) " -"if :c:member:`~PyPreConfig.parse_argv` of *preconfig* is non-zero." -msgstr "" - -#: c-api/init_config.rst:1017 -msgid "" -"Parse *argv* command line arguments (wide strings) " -"if :c:member:`~PyPreConfig.parse_argv` of *preconfig* is non-zero." -msgstr "" - -#: c-api/init_config.rst:2044 -msgid "" -"The caller is responsible to handle exceptions (error or exit) " -"using :c:func:`PyStatus_Exception` and :c:func:`Py_ExitStatusException`." -msgstr "" - -#: c-api/init_config.rst:1025 -msgid "" -"For :ref:`Python Configuration ` " -"(:c:func:`PyPreConfig_InitPythonConfig`), if Python is initialized with " -"command line arguments, the command line arguments must also be passed to " -"preinitialize Python, since they have an effect on the pre-configuration " -"like encodings. For example, the :option:`-X utf8 <-X>` command line option " -"enables the :ref:`Python UTF-8 Mode `." -msgstr "" - -#: c-api/init_config.rst:1032 -msgid "" -"``PyMem_SetAllocator()`` can be called after :c:func:`Py_PreInitialize` and " -"before :c:func:`Py_InitializeFromConfig` to install a custom memory " -"allocator. It can be called before :c:func:`Py_PreInitialize` " -"if :c:member:`PyPreConfig.allocator` is set to ``PYMEM_ALLOCATOR_NOT_SET``." -msgstr "" - -#: c-api/init_config.rst:1037 -msgid "" -"Python memory allocation functions like :c:func:`PyMem_RawMalloc` must not " -"be used before the Python preinitialization, whereas calling directly " -"``malloc()`` and ``free()`` is always safe. :c:func:`Py_DecodeLocale` must " -"not be called before the Python preinitialization." -msgstr "" - -#: c-api/init_config.rst:1042 -msgid "" -"Example using the preinitialization to enable the :ref:`Python UTF-8 Mode " -"`::" -msgstr "" - -#: c-api/init_config.rst:1064 -msgid "PyConfig" -msgstr "" - -#: c-api/init_config.rst:1068 -msgid "Structure containing most parameters to configure Python." -msgstr "" - -#: c-api/init_config.rst:1070 -msgid "" -"When done, the :c:func:`PyConfig_Clear` function must be used to release the " -"configuration memory." -msgstr "" - -#: c-api/init_config.rst:1075 -msgid "Structure methods:" -msgstr "" - -#: c-api/init_config.rst:1079 -msgid "" -"Initialize configuration with the :ref:`Python Configuration `." -msgstr "" - -#: c-api/init_config.rst:1084 -msgid "" -"Initialize configuration with the :ref:`Isolated Configuration `." -msgstr "" - -#: c-api/init_config.rst:1089 -msgid "Copy the wide character string *str* into ``*config_str``." -msgstr "" - -#: c-api/init_config.rst:1098 c-api/init_config.rst:1113 -#: c-api/init_config.rst:1136 -msgid ":ref:`Preinitialize Python ` if needed." -msgstr "" - -#: c-api/init_config.rst:1095 -msgid "" -"Decode *str* using :c:func:`Py_DecodeLocale` and set the result into " -"``*config_str``." -msgstr "" - -#: c-api/init_config.rst:1102 -msgid "" -"Set command line arguments (:c:member:`~PyConfig.argv` member of *config*) " -"from the *argv* list of wide character strings." -msgstr "" - -#: c-api/init_config.rst:1109 -msgid "" -"Set command line arguments (:c:member:`~PyConfig.argv` member of *config*) " -"from the *argv* list of bytes strings. Decode bytes " -"using :c:func:`Py_DecodeLocale`." -msgstr "" - -#: c-api/init_config.rst:1117 -msgid "Set the list of wide strings *list* to *length* and *items*." -msgstr "" - -#: c-api/init_config.rst:1123 -msgid "Read all Python configuration." -msgstr "" - -#: c-api/init_config.rst:1125 -msgid "Fields which are already initialized are left unchanged." -msgstr "" - -#: c-api/init_config.rst:1127 -msgid "" -"Fields for :ref:`path configuration ` are no longer " -"calculated or modified when calling this function, as of Python 3.11." -msgstr "" - -#: c-api/init_config.rst:1692 -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 " -"arguments are parsed. Since Python arguments are stripped " -"from :c:member:`PyConfig.argv`, parsing arguments twice would parse the " -"application options as Python options." -msgstr "" - -#: c-api/init_config.rst:1138 -msgid "" -"The :c:member:`PyConfig.argv` arguments are now only parsed " -"once, :c:member:`PyConfig.parse_argv` is set to ``2`` after arguments are " -"parsed, and arguments are only parsed if :c:member:`PyConfig.parse_argv` " -"equals ``1``." -msgstr "" - -#: c-api/init_config.rst:1144 -msgid "" -":c:func:`PyConfig_Read` no longer calculates all paths, and so fields listed " -"under :ref:`Python Path Configuration ` may no longer be " -"updated until :c:func:`Py_InitializeFromConfig` is called." -msgstr "" - -#: c-api/init_config.rst:1152 -msgid "Release configuration memory." -msgstr "" - -#: c-api/init_config.rst:1154 -msgid "" -"Most ``PyConfig`` methods :ref:`preinitialize Python ` if needed. " -"In that case, the Python preinitialization configuration " -"(:c:type:`PyPreConfig`) is based on the :c:type:`PyConfig`. If configuration " -"fields which are in common with :c:type:`PyPreConfig` are tuned, they must " -"be set before calling a :c:type:`PyConfig` method:" -msgstr "" - -#: c-api/init_config.rst:1160 -msgid ":c:member:`PyConfig.dev_mode`" -msgstr "" - -#: c-api/init_config.rst:1161 -msgid ":c:member:`PyConfig.isolated`" -msgstr "" - -#: c-api/init_config.rst:1162 -msgid ":c:member:`PyConfig.parse_argv`" -msgstr "" - -#: c-api/init_config.rst:1163 -msgid ":c:member:`PyConfig.use_environment`" -msgstr "" - -#: c-api/init_config.rst:1165 -msgid "" -"Moreover, if :c:func:`PyConfig_SetArgv` or :c:func:`PyConfig_SetBytesArgv` " -"is used, this method must be called before other methods, since the " -"preinitialization configuration depends on command line arguments " -"(if :c:member:`~PyConfig.parse_argv` is non-zero)." -msgstr "" - -#: c-api/init_config.rst:1170 -msgid "" -"The caller of these methods is responsible to handle exceptions (error or " -"exit) using ``PyStatus_Exception()`` and ``Py_ExitStatusException()``." -msgstr "" - -#: c-api/init_config.rst:1183 -msgid "" -"Set :data:`sys.argv` command line arguments based " -"on :c:member:`~PyConfig.argv`. These parameters are similar to those passed " -"to the program's :c:func:`main` function with the difference that the first " -"entry should refer to the script file to be executed rather than the " -"executable hosting the Python interpreter. If there isn't a script that " -"will be run, the first entry in :c:member:`~PyConfig.argv` can be an empty " -"string." -msgstr "" - -#: c-api/init_config.rst:1191 -msgid "" -"Set :c:member:`~PyConfig.parse_argv` to ``1`` to " -"parse :c:member:`~PyConfig.argv` the same way the regular Python parses " -"Python command line arguments and then to strip Python arguments " -"from :c:member:`~PyConfig.argv`." -msgstr "" - -#: c-api/init_config.rst:1196 -msgid "" -"If :c:member:`~PyConfig.argv` is empty, an empty string is added to ensure " -"that :data:`sys.argv` always exists and is never empty." -msgstr "" - -#: c-api/init_config.rst:1226 c-api/init_config.rst:1250 -#: c-api/init_config.rst:1375 c-api/init_config.rst:1477 -#: c-api/init_config.rst:1734 c-api/init_config.rst:1768 -#: c-api/init_config.rst:1798 c-api/init_config.rst:1820 -#: c-api/init_config.rst:1923 -msgid "Default: ``NULL``." -msgstr "" - -#: c-api/init_config.rst:1201 -msgid "See also the :c:member:`~PyConfig.orig_argv` member." -msgstr "" - -#: c-api/init_config.rst:1205 -msgid "" -"If equals to zero, ``Py_RunMain()`` prepends a potentially unsafe path " -"to :data:`sys.path` at startup:" -msgstr "" - -#: c-api/init_config.rst:1208 -msgid "" -"If :c:member:`argv[0] ` is equal to ``L\"-m\"`` (``python -m " -"module``), prepend the current working directory." -msgstr "" - -#: c-api/init_config.rst:1210 -msgid "" -"If running a script (``python script.py``), prepend the script's directory. " -"If it's a symbolic link, resolve symbolic links." -msgstr "" - -#: c-api/init_config.rst:1212 -msgid "" -"Otherwise (``python -c code`` and ``python``), prepend an empty string, " -"which means the current working directory." -msgstr "" - -#: c-api/init_config.rst:1215 -msgid "" -"Set to ``1`` by the :option:`-P` command line option and " -"the :envvar:`PYTHONSAFEPATH` environment variable." -msgstr "" - -#: c-api/init_config.rst:1218 -msgid "Default: ``0`` in Python config, ``1`` in isolated config." -msgstr "" - -#: c-api/init_config.rst:1224 -msgid ":data:`sys.base_exec_prefix`." -msgstr "" - -#: c-api/init_config.rst:1242 c-api/init_config.rst:1377 -#: c-api/init_config.rst:1650 c-api/init_config.rst:1736 -msgid "Part of the :ref:`Python Path Configuration ` output." -msgstr "" - -#: c-api/init_config.rst:1230 -msgid "See also :c:member:`PyConfig.exec_prefix`." -msgstr "" - -#: c-api/init_config.rst:1234 -msgid "Python base executable: :data:`sys._base_executable`." -msgstr "" - -#: c-api/init_config.rst:1236 -msgid "Set by the :envvar:`__PYVENV_LAUNCHER__` environment variable." -msgstr "" - -#: c-api/init_config.rst:1238 -msgid "Set from :c:member:`PyConfig.executable` if ``NULL``." -msgstr "" - -#: c-api/init_config.rst:1244 -msgid "See also :c:member:`PyConfig.executable`." -msgstr "" - -#: c-api/init_config.rst:1248 -msgid ":data:`sys.base_prefix`." -msgstr "" - -#: c-api/init_config.rst:1254 -msgid "See also :c:member:`PyConfig.prefix`." -msgstr "" - -#: c-api/init_config.rst:1258 -msgid "" -"If equals to ``0`` and :c:member:`~PyConfig.configure_c_stdio` is non-zero, " -"disable buffering on the C streams stdout and stderr." -msgstr "" - -#: c-api/init_config.rst:1261 -msgid "" -"Set to ``0`` by the :option:`-u` command line option and " -"the :envvar:`PYTHONUNBUFFERED` environment variable." -msgstr "" - -#: c-api/init_config.rst:1264 -msgid "stdin is always opened in buffered mode." -msgstr "" - -#: c-api/init_config.rst:1270 -msgid "" -"If equals to ``1``, issue a warning when comparing :class:`bytes` " -"or :class:`bytearray` with :class:`str`, or comparing :class:`bytes` " -"with :class:`int`." -msgstr "" - -#: c-api/init_config.rst:1274 -msgid "" -"If equal or greater to ``2``, raise a :exc:`BytesWarning` exception in these " -"cases." -msgstr "" - -#: c-api/init_config.rst:1277 -msgid "Incremented by the :option:`-b` command line option." -msgstr "" - -#: c-api/init_config.rst:1283 -msgid "" -"The :option:`-b` and :option:`!-bb` options will become no-op in " -"3.17. :c:member:`~PyConfig.bytes_warning` member will be removed in 3.17." -msgstr "" - -#: c-api/init_config.rst:1288 -msgid "" -"If non-zero, emit a :exc:`EncodingWarning` warning " -"when :class:`io.TextIOWrapper` uses its default encoding. See :ref:`io-" -"encoding-warning` for details." -msgstr "" - -#: c-api/init_config.rst:1297 -msgid "" -"If equals to ``0``, disables the inclusion of the end line and column " -"mappings in code objects. Also disables traceback printing carets to " -"specific error locations." -msgstr "" - -#: c-api/init_config.rst:1301 -msgid "" -"Set to ``0`` by the :envvar:`PYTHONNODEBUGRANGES` environment variable and " -"by the :option:`-X no_debug_ranges <-X>` command line option." -msgstr "" - -#: c-api/init_config.rst:1310 -msgid "" -"Control the validation behavior of hash-based ``.pyc`` files: value of " -"the :option:`--check-hash-based-pycs` command line option." -msgstr "" - -#: c-api/init_config.rst:1313 -msgid "Valid values:" -msgstr "" - -#: c-api/init_config.rst:1315 -msgid "" -"``L\"always\"``: Hash the source file for invalidation regardless of value " -"of the 'check_source' flag." -msgstr "" - -#: c-api/init_config.rst:1317 -msgid "``L\"never\"``: Assume that hash-based pycs always are valid." -msgstr "" - -#: c-api/init_config.rst:1318 -msgid "" -"``L\"default\"``: The 'check_source' flag in hash-based pycs determines " -"invalidation." -msgstr "" - -#: c-api/init_config.rst:1321 -msgid "Default: ``L\"default\"``." -msgstr "" - -#: c-api/init_config.rst:1323 -msgid "See also :pep:`552` \"Deterministic pycs\"." -msgstr "" - -#: c-api/init_config.rst:1327 -msgid "If non-zero, configure C standard streams:" -msgstr "" - -#: c-api/init_config.rst:1329 -msgid "" -"On Windows, set the binary mode (``O_BINARY``) on stdin, stdout and stderr." -msgstr "" - -#: c-api/init_config.rst:1331 -msgid "" -"If :c:member:`~PyConfig.buffered_stdio` equals zero, disable buffering of " -"stdin, stdout and stderr streams." -msgstr "" - -#: c-api/init_config.rst:1333 -msgid "" -"If :c:member:`~PyConfig.interactive` is non-zero, enable stream buffering on " -"stdin and stdout (only stdout on Windows)." -msgstr "" - -#: c-api/init_config.rst:1340 -msgid "If non-zero, enable the :ref:`Python Development Mode `." -msgstr "" - -#: c-api/init_config.rst:1342 -msgid "" -"Set to ``1`` by the :option:`-X dev <-X>` option and " -"the :envvar:`PYTHONDEVMODE` environment variable." -msgstr "" - -#: c-api/init_config.rst:1349 -msgid "Dump Python references?" -msgstr "" - -#: c-api/init_config.rst:1351 -msgid "If non-zero, dump all objects which are still alive at exit." -msgstr "" - -#: c-api/init_config.rst:1353 -msgid "Set to ``1`` by the :envvar:`PYTHONDUMPREFS` environment variable." -msgstr "" - -#: c-api/init_config.rst:1355 -msgid "" -"Needs a special build of Python with the ``Py_TRACE_REFS`` macro defined: " -"see the :option:`configure --with-trace-refs option <--with-trace-refs>`." -msgstr "" - -#: c-api/init_config.rst:1362 -msgid "Filename where to dump Python references." -msgstr "" - -#: c-api/init_config.rst:1364 -msgid "Set by the :envvar:`PYTHONDUMPREFSFILE` environment variable." -msgstr "" - -#: c-api/init_config.rst:1372 -msgid "" -"The site-specific directory prefix where the platform-dependent Python files " -"are installed: :data:`sys.exec_prefix`." -msgstr "" - -#: c-api/init_config.rst:1379 -msgid "See also :c:member:`PyConfig.base_exec_prefix`." -msgstr "" - -#: c-api/init_config.rst:1383 -msgid "" -"The absolute path of the executable binary for the Python " -"interpreter: :data:`sys.executable`." -msgstr "" - -#: c-api/init_config.rst:1390 -msgid "See also :c:member:`PyConfig.base_executable`." -msgstr "" - -#: c-api/init_config.rst:1394 -msgid "Enable faulthandler?" -msgstr "" - -#: c-api/init_config.rst:1396 -msgid "If non-zero, call :func:`faulthandler.enable` at startup." -msgstr "" - -#: c-api/init_config.rst:1398 -msgid "" -"Set to ``1`` by :option:`-X faulthandler <-X>` and " -"the :envvar:`PYTHONFAULTHANDLER` environment variable." -msgstr "" - -#: c-api/init_config.rst:1405 -msgid "" -":term:`Filesystem encoding `: :func:`sys.getfilesystemencoding`." -msgstr "" - -#: c-api/init_config.rst:1408 -msgid "On macOS, Android and VxWorks: use ``\"utf-8\"`` by default." -msgstr "" - -#: c-api/init_config.rst:1410 -msgid "" -"On Windows: use ``\"utf-8\"`` by default, or ``\"mbcs\"`` " -"if :c:member:`~PyPreConfig.legacy_windows_fs_encoding` " -"of :c:type:`PyPreConfig` is non-zero." -msgstr "" - -#: c-api/init_config.rst:1414 -msgid "Default encoding on other platforms:" -msgstr "" - -#: c-api/init_config.rst:1416 -msgid "``\"utf-8\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero." -msgstr "" - -#: c-api/init_config.rst:1417 -msgid "" -"``\"ascii\"`` if Python detects that ``nl_langinfo(CODESET)`` announces the " -"ASCII encoding, whereas the ``mbstowcs()`` function decodes from a different " -"encoding (usually Latin1)." -msgstr "" - -#: c-api/init_config.rst:1420 -msgid "``\"utf-8\"`` if ``nl_langinfo(CODESET)`` returns an empty string." -msgstr "" - -#: c-api/init_config.rst:1421 -msgid "" -"Otherwise, use the :term:`locale encoding`: ``nl_langinfo(CODESET)`` result." -msgstr "" - -#: c-api/init_config.rst:1424 -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:1427 -msgid "See also the :c:member:`~PyConfig.filesystem_errors` member." -msgstr "" - -#: c-api/init_config.rst:1431 -msgid "" -":term:`Filesystem error handler `: :func:`sys.getfilesystemencodeerrors`." -msgstr "" - -#: c-api/init_config.rst:1434 -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:1438 -msgid "On other platforms: use ``\"surrogateescape\"`` by default." -msgstr "" - -#: c-api/init_config.rst:1440 -msgid "Supported error handlers:" -msgstr "" - -#: c-api/init_config.rst:1442 -msgid "``\"strict\"``" -msgstr "" - -#: c-api/init_config.rst:1443 -msgid "``\"surrogateescape\"``" -msgstr "" - -#: c-api/init_config.rst:1444 -msgid "``\"surrogatepass\"`` (only supported with the UTF-8 encoding)" -msgstr "" - -#: c-api/init_config.rst:1446 -msgid "See also the :c:member:`~PyConfig.filesystem_encoding` member." -msgstr "" - -#: c-api/init_config.rst:1450 -msgid "If non-zero, use frozen modules." -msgstr "" - -#: c-api/init_config.rst:1452 -msgid "Set by the :envvar:`PYTHON_FROZEN_MODULES` environment variable." -msgstr "" - -#: c-api/init_config.rst:1454 -msgid "" -"Default: ``1`` in a release build, or ``0`` in a :ref:`debug build `." -msgstr "" - -#: c-api/init_config.rst:1460 -msgid "Randomized hash function seed." -msgstr "" - -#: c-api/init_config.rst:1462 -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:1465 -msgid "Set by the :envvar:`PYTHONHASHSEED` environment variable." -msgstr "" - -#: c-api/init_config.rst:1467 -msgid "" -"Default *use_hash_seed* value: ``-1`` in Python mode, ``0`` in isolated mode." -msgstr "" - -#: c-api/init_config.rst:1472 -msgid "" -"Set the default Python \"home\" directory, that is, the location of the " -"standard Python libraries (see :envvar:`PYTHONHOME`)." -msgstr "" - -#: c-api/init_config.rst:1475 -msgid "Set by the :envvar:`PYTHONHOME` environment variable." -msgstr "" - -#: c-api/init_config.rst:1615 c-api/init_config.rst:1724 -#: c-api/init_config.rst:1755 -msgid "Part of the :ref:`Python Path Configuration ` input." -msgstr "" - -#: c-api/init_config.rst:1483 -msgid "" -"If ``1``, profile import time. If ``2``, include additional output that " -"indicates when an imported module has already been loaded." -msgstr "" - -#: c-api/init_config.rst:1487 -msgid "" -"Set by the :option:`-X importtime <-X>` option and " -"the :envvar:`PYTHONPROFILEIMPORTTIME` environment variable." -msgstr "" - -#: c-api/init_config.rst:1494 -msgid "Added support for ``import_time = 2``" -msgstr "" - -#: c-api/init_config.rst:1498 -msgid "Enter interactive mode after executing a script or a command." -msgstr "" - -#: c-api/init_config.rst:1500 -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:1505 -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:1512 -msgid "Install Python signal handlers?" -msgstr "" - -#: c-api/init_config.rst:1698 c-api/init_config.rst:1958 -msgid "Default: ``1`` in Python mode, ``0`` in isolated mode." -msgstr "" - -#: c-api/init_config.rst:1518 -msgid "If greater than ``0``, enable the interactive mode (REPL)." -msgstr "" - -#: c-api/init_config.rst:1520 -msgid "Incremented by the :option:`-i` command line option." -msgstr "" - -#: c-api/init_config.rst:1526 -msgid "" -"Configures the :ref:`integer string conversion length limitation " -"`. An initial value of ``-1`` means the value will be " -"taken from the command line or environment or otherwise default to 4300 " -"(:data:`sys.int_info.default_max_str_digits`). A value of ``0`` disables " -"the limitation. Values greater than zero but less than 640 " -"(:data:`sys.int_info.str_digits_check_threshold`) are unsupported and will " -"produce an error." -msgstr "" - -#: c-api/init_config.rst:1534 -msgid "" -"Configured by the :option:`-X int_max_str_digits <-X>` command line flag or " -"the :envvar:`PYTHONINTMAXSTRDIGITS` environment variable." -msgstr "" - -#: c-api/init_config.rst:1537 -msgid "" -"Default: ``-1`` in Python mode. 4300 " -"(:data:`sys.int_info.default_max_str_digits`) in isolated mode." -msgstr "" - -#: c-api/init_config.rst:1544 -msgid "" -"If the value of :c:member:`~PyConfig.cpu_count` is not ``-1`` then it will " -"override the return values " -"of :func:`os.cpu_count`, :func:`os.process_cpu_count`, " -"and :func:`multiprocessing.cpu_count`." -msgstr "" - -#: c-api/init_config.rst:1548 -msgid "" -"Configured by the :samp:`-X cpu_count={n|default}` command line flag or " -"the :envvar:`PYTHON_CPU_COUNT` environment variable." -msgstr "" - -#: c-api/init_config.rst:1912 -msgid "Default: ``-1``." -msgstr "" - -#: c-api/init_config.rst:1557 -msgid "If greater than ``0``, enable isolated mode:" -msgstr "" - -#: c-api/init_config.rst:1559 -msgid "" -"Set :c:member:`~PyConfig.safe_path` to ``1``: don't prepend a potentially " -"unsafe path to :data:`sys.path` at Python startup, such as the current " -"directory, the script's directory or an empty string." -msgstr "" - -#: c-api/init_config.rst:1563 -msgid "" -"Set :c:member:`~PyConfig.use_environment` to ``0``: ignore ``PYTHON`` " -"environment variables." -msgstr "" - -#: c-api/init_config.rst:1565 -msgid "" -"Set :c:member:`~PyConfig.user_site_directory` to ``0``: don't add the user " -"site directory to :data:`sys.path`." -msgstr "" - -#: c-api/init_config.rst:1567 -msgid "" -"Python REPL doesn't import :mod:`readline` nor enable default readline " -"configuration on interactive prompts." -msgstr "" - -#: c-api/init_config.rst:1570 -msgid "Set to ``1`` by the :option:`-I` command line option." -msgstr "" - -#: c-api/init_config.rst:1574 -msgid "" -"See also the :ref:`Isolated Configuration ` " -"and :c:member:`PyPreConfig.isolated`." -msgstr "" - -#: c-api/init_config.rst:1579 -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:1583 -msgid "" -"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " -"is set to a non-empty string." -msgstr "" - -#: c-api/init_config.rst:1591 -msgid "See also the :pep:`528` (Change Windows console encoding to UTF-8)." -msgstr "" - -#: c-api/init_config.rst:1595 -msgid "" -"If non-zero, dump statistics on :ref:`Python pymalloc memory allocator " -"` at exit." -msgstr "" - -#: c-api/init_config.rst:1598 -msgid "Set to ``1`` by the :envvar:`PYTHONMALLOCSTATS` environment variable." -msgstr "" - -#: c-api/init_config.rst:1600 -msgid "" -"The option is ignored if Python is :option:`configured using the --without-" -"pymalloc option <--without-pymalloc>`." -msgstr "" - -#: c-api/init_config.rst:1607 -msgid "Platform library directory name: :data:`sys.platlibdir`." -msgstr "" - -#: c-api/init_config.rst:1609 -msgid "Set by the :envvar:`PYTHONPLATLIBDIR` environment variable." -msgstr "" - -#: c-api/init_config.rst:1611 -msgid "" -"Default: value of the ``PLATLIBDIR`` macro which is set by " -"the :option:`configure --with-platlibdir option <--with-platlibdir>` " -"(default: ``\"lib\"``, or ``\"DLLs\"`` on Windows)." -msgstr "" - -#: c-api/init_config.rst:1619 -msgid "" -"This macro is now used on Windows to locate the standard library extension " -"modules, typically under ``DLLs``. However, for compatibility, note that " -"this value is ignored for any non-standard layouts, including in-tree builds " -"and virtual environments." -msgstr "" - -#: c-api/init_config.rst:1628 -msgid "" -"Module search paths (:data:`sys.path`) as a string separated by ``DELIM`` " -"(:data:`os.pathsep`)." -msgstr "" - -#: c-api/init_config.rst:1631 -msgid "Set by the :envvar:`PYTHONPATH` environment variable." -msgstr "" - -#: c-api/init_config.rst:1640 -msgid "Module search paths: :data:`sys.path`." -msgstr "" - -#: c-api/init_config.rst:1642 -msgid "" -"If :c:member:`~PyConfig.module_search_paths_set` is equal to " -"``0``, :c:func:`Py_InitializeFromConfig` will " -"replace :c:member:`~PyConfig.module_search_paths` and " -"sets :c:member:`~PyConfig.module_search_paths_set` to ``1``." -msgstr "" - -#: c-api/init_config.rst:1647 -msgid "" -"Default: empty list (``module_search_paths``) and ``0`` " -"(``module_search_paths_set``)." -msgstr "" - -#: c-api/init_config.rst:1654 -msgid "Compilation optimization level:" -msgstr "" - -#: c-api/init_config.rst:1656 -msgid "``0``: Peephole optimizer, set ``__debug__`` to ``True``." -msgstr "" - -#: c-api/init_config.rst:1657 -msgid "``1``: Level 0, remove assertions, set ``__debug__`` to ``False``." -msgstr "" - -#: c-api/init_config.rst:1658 -msgid "``2``: Level 1, strip docstrings." -msgstr "" - -#: c-api/init_config.rst:1660 -msgid "" -"Incremented by the :option:`-O` command line option. Set to " -"the :envvar:`PYTHONOPTIMIZE` environment variable value." -msgstr "" - -#: c-api/init_config.rst:1667 -msgid "" -"The list of the original command line arguments passed to the Python " -"executable: :data:`sys.orig_argv`." -msgstr "" - -#: c-api/init_config.rst:1670 -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` copies :c:member:`~PyConfig.argv` " -"into :c:member:`~PyConfig.orig_argv` before " -"modifying :c:member:`~PyConfig.argv` (if :c:member:`~PyConfig.parse_argv` is " -"non-zero)." -msgstr "" - -#: c-api/init_config.rst:1677 -msgid "" -"See also the :c:member:`~PyConfig.argv` member and " -"the :c:func:`Py_GetArgcArgv` function." -msgstr "" - -#: c-api/init_config.rst:1993 c-api/init_config.rst:2012 -msgid "Default: empty list." -msgstr "" - -#: c-api/init_config.rst:1686 -msgid "Parse command line arguments?" -msgstr "" - -#: c-api/init_config.rst:1688 -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:1700 -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:1706 -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:1709 -msgid "" -"Incremented by the :option:`-d` command line option. Set to " -"the :envvar:`PYTHONDEBUG` environment variable value." -msgstr "" - -#: c-api/init_config.rst:1817 -msgid "" -"Needs a :ref:`debug build of Python ` (the ``Py_DEBUG`` macro " -"must be defined)." -msgstr "" - -#: c-api/init_config.rst:1719 -msgid "" -"If non-zero, calculation of path configuration is allowed to log warnings " -"into ``stderr``. If equals to ``0``, suppress these warnings." -msgstr "" - -#: c-api/init_config.rst:1726 -msgid "Now also applies on Windows." -msgstr "" - -#: c-api/init_config.rst:1731 -msgid "" -"The site-specific directory prefix where the platform independent Python " -"files are installed: :data:`sys.prefix`." -msgstr "" - -#: c-api/init_config.rst:1738 -msgid "See also :c:member:`PyConfig.base_prefix`." -msgstr "" - -#: c-api/init_config.rst:1742 -msgid "" -"Program name used to initialize :c:member:`~PyConfig.executable` and in " -"early error messages during Python initialization." -msgstr "" - -#: c-api/init_config.rst:1745 -msgid "On macOS, use :envvar:`PYTHONEXECUTABLE` environment variable if set." -msgstr "" - -#: c-api/init_config.rst:1746 -msgid "" -"If the ``WITH_NEXT_FRAMEWORK`` macro is defined, " -"use :envvar:`__PYVENV_LAUNCHER__` environment variable if set." -msgstr "" - -#: c-api/init_config.rst:1748 -msgid "" -"Use ``argv[0]`` of :c:member:`~PyConfig.argv` if available and non-empty." -msgstr "" - -#: c-api/init_config.rst:1750 -msgid "" -"Otherwise, use ``L\"python\"`` on Windows, or ``L\"python3\"`` on other " -"platforms." -msgstr "" - -#: c-api/init_config.rst:1759 -msgid "" -"Directory where cached ``.pyc`` files are " -"written: :data:`sys.pycache_prefix`." -msgstr "" - -#: c-api/init_config.rst:1762 -msgid "" -"Set by the :option:`-X pycache_prefix=PATH <-X>` command line option and " -"the :envvar:`PYTHONPYCACHEPREFIX` environment variable. The command-line " -"option takes precedence." -msgstr "" - -#: c-api/init_config.rst:1766 -msgid "If ``NULL``, :data:`sys.pycache_prefix` is set to ``None``." -msgstr "" - -#: c-api/init_config.rst:1772 -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:1775 -msgid "Incremented by the :option:`-q` command line option." -msgstr "" - -#: c-api/init_config.rst:1781 -msgid "Value of the :option:`-c` command line option." -msgstr "" - -#: c-api/init_config.rst:1804 -msgid "Used by :c:func:`Py_RunMain`." -msgstr "" - -#: c-api/init_config.rst:1789 -msgid "" -"Filename passed on the command line: trailing command line argument " -"without :option:`-c` or :option:`-m`. It is used by the :c:func:`Py_RunMain` " -"function." -msgstr "" - -#: c-api/init_config.rst:1793 -msgid "" -"For example, it is set to ``script.py`` by the ``python3 script.py arg`` " -"command line." -msgstr "" - -#: c-api/init_config.rst:1796 -msgid "See also the :c:member:`PyConfig.skip_source_first_line` option." -msgstr "" - -#: c-api/init_config.rst:1802 -msgid "Value of the :option:`-m` command line option." -msgstr "" - -#: c-api/init_config.rst:1810 -msgid "" -"``module`` or ``module:func`` entry point that should be executed before " -"the :mod:`site` module is imported." -msgstr "" - -#: c-api/init_config.rst:1813 -msgid "" -"Set by the :option:`-X presite=module:func <-X>` command-line option and " -"the :envvar:`PYTHON_PRESITE` environment variable. The command-line option " -"takes precedence." -msgstr "" - -#: c-api/init_config.rst:1824 -msgid "" -"Show total reference count at exit (excluding :term:`immortal` objects)?" -msgstr "" - -#: c-api/init_config.rst:1826 -msgid "Set to ``1`` by :option:`-X showrefcount <-X>` command line option." -msgstr "" - -#: c-api/init_config.rst:1828 -msgid "" -"Needs a :ref:`debug build of Python ` (the ``Py_REF_DEBUG`` " -"macro must be defined)." -msgstr "" - -#: c-api/init_config.rst:1835 -msgid "Import the :mod:`site` module at startup?" -msgstr "" - -#: c-api/init_config.rst:1837 -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:1840 -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:1843 -msgid "Set to ``0`` by the :option:`-S` command line option." -msgstr "" - -#: c-api/init_config.rst:1845 -msgid "" -":data:`sys.flags.no_site ` is set to the inverted value " -"of :c:member:`~PyConfig.site_import`." -msgstr "" - -#: c-api/init_config.rst:1852 -msgid "" -"If non-zero, skip the first line of the :c:member:`PyConfig.run_filename` " -"source." -msgstr "" - -#: c-api/init_config.rst:1855 -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:1858 -msgid "Set to ``1`` by the :option:`-x` command line option." -msgstr "" - -#: c-api/init_config.rst:1865 -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)." -msgstr "" - -#: c-api/init_config.rst:1869 -msgid "" -"Use the :envvar:`PYTHONIOENCODING` environment variable if it is non-empty." -msgstr "" - -#: c-api/init_config.rst:1872 -msgid "Default encoding:" -msgstr "" - -#: c-api/init_config.rst:1874 -msgid "``\"UTF-8\"`` if :c:member:`PyPreConfig.utf8_mode` is non-zero." -msgstr "" - -#: c-api/init_config.rst:1875 -msgid "Otherwise, use the :term:`locale encoding`." -msgstr "" - -#: c-api/init_config.rst:1877 -msgid "Default error handler:" -msgstr "" - -#: c-api/init_config.rst:1879 -msgid "On Windows: use ``\"surrogateescape\"``." -msgstr "" - -#: c-api/init_config.rst:1880 -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:1882 -msgid "``\"strict\"`` otherwise." -msgstr "" - -#: c-api/init_config.rst:1884 -msgid "See also :c:member:`PyConfig.legacy_windows_stdio`." -msgstr "" - -#: c-api/init_config.rst:1888 -msgid "Enable tracemalloc?" -msgstr "" - -#: c-api/init_config.rst:1890 -msgid "If non-zero, call :func:`tracemalloc.start` at startup." -msgstr "" - -#: c-api/init_config.rst:1892 -msgid "" -"Set by :option:`-X tracemalloc=N <-X>` command line option and by " -"the :envvar:`PYTHONTRACEMALLOC` environment variable." -msgstr "" - -#: c-api/init_config.rst:1899 -msgid "Enable the Linux ``perf`` profiler support?" -msgstr "" - -#: c-api/init_config.rst:1901 -msgid "If equals to ``1``, enable support for the Linux ``perf`` profiler." -msgstr "" - -#: c-api/init_config.rst:1903 -msgid "" -"If equals to ``2``, enable support for the Linux ``perf`` profiler with " -"DWARF JIT support." -msgstr "" - -#: c-api/init_config.rst:1906 -msgid "" -"Set to ``1`` by :option:`-X perf <-X>` command-line option and " -"the :envvar:`PYTHONPERFSUPPORT` environment variable." -msgstr "" - -#: c-api/init_config.rst:1909 -msgid "" -"Set to ``2`` by the :option:`-X perf_jit <-X>` command-line option and " -"the :envvar:`PYTHON_PERF_JIT_SUPPORT` environment variable." -msgstr "" - -#: c-api/init_config.rst:1915 -msgid "See :ref:`perf_profiling` for more information." -msgstr "" - -#: c-api/init_config.rst:1921 -msgid "Directory of the Python standard library." -msgstr "" - -#: c-api/init_config.rst:1929 -msgid "Use :ref:`environment variables `?" -msgstr "" - -#: c-api/init_config.rst:1931 -msgid "" -"If equals to zero, ignore the :ref:`environment variables `." -msgstr "" - -#: c-api/init_config.rst:1934 -msgid "Set to ``0`` by the :option:`-E` environment variable." -msgstr "" - -#: c-api/init_config.rst:1940 -msgid "" -"If non-zero, ``stdout`` and ``stderr`` will be redirected to the system log." -msgstr "" - -#: c-api/init_config.rst:1943 -msgid "Only available on macOS 10.12 and later, and on iOS." -msgstr "" - -#: c-api/init_config.rst:1945 -msgid "" -"Default: ``0`` (don't use the system log) on macOS; ``1`` on iOS (use the " -"system log)." -msgstr "" - -#: c-api/init_config.rst:1952 -msgid "If non-zero, add the user site directory to :data:`sys.path`." -msgstr "" - -#: c-api/init_config.rst:1954 -msgid "Set to ``0`` by the :option:`-s` and :option:`-I` command line options." -msgstr "" - -#: c-api/init_config.rst:1956 -msgid "Set to ``0`` by the :envvar:`PYTHONNOUSERSITE` environment variable." -msgstr "" - -#: c-api/init_config.rst:1962 -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:1966 -msgid "" -"If greater than 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:1970 -msgid "Incremented by the :option:`-v` command line option." -msgstr "" - -#: c-api/init_config.rst:1972 -msgid "Set by the :envvar:`PYTHONVERBOSE` environment variable value." -msgstr "" - -#: c-api/init_config.rst:1978 -msgid "" -"Options of the :mod:`warnings` module to build warnings filters, lowest to " -"highest priority: :data:`sys.warnoptions`." -msgstr "" - -#: c-api/init_config.rst:1981 -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:1986 -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:1989 -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:1997 -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:2000 -msgid "" -"Set to ``0`` by the :option:`-B` command line option and " -"the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable." -msgstr "" - -#: c-api/init_config.rst:2003 -msgid "" -":data:`sys.dont_write_bytecode` is initialized to the inverted value " -"of :c:member:`~PyConfig.write_bytecode`." -msgstr "" - -#: c-api/init_config.rst:2010 -msgid "Values of the :option:`-X` command line options: :data:`sys._xoptions`." -msgstr "" - -#: c-api/init_config.rst:2016 -msgid "If non-zero, write performance statistics at Python exit." -msgstr "" - -#: c-api/init_config.rst:2018 -msgid "" -"Need a special build with the ``Py_STATS`` macro: see :option:`--enable-" -"pystats`." -msgstr "" - -#: c-api/init_config.rst:2023 -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 " -"line arguments `, and Python arguments are stripped " -"from :c:member:`~PyConfig.argv`." -msgstr "" - -#: c-api/init_config.rst:2028 -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:2033 -msgid "The ``show_alloc_count`` field has been removed." -msgstr "" - -#: c-api/init_config.rst:2039 -msgid "Initialization with PyConfig" -msgstr "" - -#: c-api/init_config.rst:2041 -msgid "" -"Initializing the interpreter from a populated configuration struct is " -"handled by calling :c:func:`Py_InitializeFromConfig`." -msgstr "" - -#: c-api/init_config.rst:2047 -msgid "" -"If :c:func:`PyImport_FrozenModules`, :c:func:`PyImport_AppendInittab` " -"or :c:func:`PyImport_ExtendInittab` are used, they must be set or called " -"after Python preinitialization and before the Python initialization. If " -"Python is initialized multiple times, :c:func:`PyImport_AppendInittab` " -"or :c:func:`PyImport_ExtendInittab` must be called before each Python " -"initialization." -msgstr "" - -#: c-api/init_config.rst:2054 -msgid "" -"The current configuration (``PyConfig`` type) is stored in " -"``PyInterpreterState.config``." -msgstr "" - -#: c-api/init_config.rst:2057 -msgid "Example setting the program name::" -msgstr "" - -#: c-api/init_config.rst:2085 -msgid "" -"More complete example modifying the default configuration, read the " -"configuration, and then override some parameters. Note that since 3.11, many " -"parameters are not calculated until initialization, and so values cannot be " -"read from the configuration structure. Any values set before initialize is " -"called will be left unchanged by initialization::" -msgstr "" - -#: c-api/init_config.rst:2148 -msgid "Isolated Configuration" -msgstr "" - -#: c-api/init_config.rst:2150 -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:2155 -msgid "" -"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:2160 -msgid "" -"Configuration files are still used with this configuration to determine " -"paths that are unspecified. Ensure :c:member:`PyConfig.home` is specified to " -"avoid computing the default path configuration." -msgstr "" - -#: c-api/init_config.rst:2168 -msgid "Python Configuration" -msgstr "" - -#: c-api/init_config.rst:2170 -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:2174 -msgid "" -"Environments variables and command line arguments are used to configure " -"Python, whereas global configuration variables are ignored." -msgstr "" - -#: c-api/init_config.rst:2177 -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:2186 -msgid "Python Path Configuration" -msgstr "" - -#: c-api/init_config.rst:2188 -msgid ":c:type:`PyConfig` contains multiple fields for the path configuration:" -msgstr "" - -#: c-api/init_config.rst:2190 -msgid "Path configuration inputs:" -msgstr "" - -#: c-api/init_config.rst:2192 -msgid ":c:member:`PyConfig.home`" -msgstr "" - -#: c-api/init_config.rst:2193 -msgid ":c:member:`PyConfig.platlibdir`" -msgstr "" - -#: c-api/init_config.rst:2194 -msgid ":c:member:`PyConfig.pathconfig_warnings`" -msgstr "" - -#: c-api/init_config.rst:2195 -msgid ":c:member:`PyConfig.program_name`" -msgstr "" - -#: c-api/init_config.rst:2196 -msgid ":c:member:`PyConfig.pythonpath_env`" -msgstr "" - -#: c-api/init_config.rst:2197 -msgid "current working directory: to get absolute paths" -msgstr "" - -#: c-api/init_config.rst:2198 -msgid "" -"``PATH`` environment variable to get the program full path " -"(from :c:member:`PyConfig.program_name`)" -msgstr "" - -#: c-api/init_config.rst:2200 -msgid "``__PYVENV_LAUNCHER__`` environment variable" -msgstr "" - -#: c-api/init_config.rst:2201 -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)." -msgstr "" - -#: c-api/init_config.rst:2205 -msgid "Path configuration output fields:" -msgstr "" - -#: c-api/init_config.rst:2207 -msgid ":c:member:`PyConfig.base_exec_prefix`" -msgstr "" - -#: c-api/init_config.rst:2208 -msgid ":c:member:`PyConfig.base_executable`" -msgstr "" - -#: c-api/init_config.rst:2209 -msgid ":c:member:`PyConfig.base_prefix`" -msgstr "" - -#: c-api/init_config.rst:2210 -msgid ":c:member:`PyConfig.exec_prefix`" -msgstr "" - -#: c-api/init_config.rst:2211 -msgid ":c:member:`PyConfig.executable`" -msgstr "" - -#: c-api/init_config.rst:2212 -msgid ":c:member:`PyConfig.module_search_paths_set`, :c:member:`PyConfig.module_search_paths`" -msgstr "" - -#: c-api/init_config.rst:2214 -msgid ":c:member:`PyConfig.prefix`" -msgstr "" - -#: c-api/init_config.rst:2216 -msgid "" -"If at least one \"output field\" is not set, Python calculates the path " -"configuration to fill unset fields. " -"If :c:member:`~PyConfig.module_search_paths_set` is equal to " -"``0``, :c:member:`~PyConfig.module_search_paths` is overridden " -"and :c:member:`~PyConfig.module_search_paths_set` is set to ``1``." -msgstr "" - -#: c-api/init_config.rst:2222 -msgid "" -"It is possible to completely ignore the function calculating the default " -"path configuration by setting explicitly all path configuration output " -"fields listed above. A string is considered as set even if it is non-empty. " -"``module_search_paths`` is considered as set if ``module_search_paths_set`` " -"is set to ``1``. In this case, ``module_search_paths`` will be used without " -"modification." -msgstr "" - -#: c-api/init_config.rst:2229 -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:2232 -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:2236 -msgid ":c:func:`Py_RunMain` and :c:func:`Py_Main` modify :data:`sys.path`:" -msgstr "" - -#: c-api/init_config.rst:2238 -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:2241 -msgid "If :c:member:`~PyConfig.isolated` is zero:" -msgstr "" - -#: c-api/init_config.rst:2243 -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:2245 -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:2247 -msgid "Otherwise, prepend an empty string to :data:`sys.path`." -msgstr "" - -#: c-api/init_config.rst:2249 -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.user_site_directory` is non-zero and the user's site-" -"package directory exists, the :mod:`site` module appends the user's site-" -"package directory to :data:`sys.path`." -msgstr "" - -#: c-api/init_config.rst:2255 -msgid "The following configuration files are used by the path configuration:" -msgstr "" - -#: c-api/init_config.rst:2257 -msgid "``pyvenv.cfg``" -msgstr "" - -#: c-api/init_config.rst:2258 -msgid "``._pth`` file (ex: ``python._pth``)" -msgstr "" - -#: c-api/init_config.rst:2259 -msgid "``pybuilddir.txt`` (Unix only)" -msgstr "" - -#: c-api/init_config.rst:2261 -msgid "If a ``._pth`` file is present:" -msgstr "" - -#: c-api/init_config.rst:2263 -msgid "Set :c:member:`~PyConfig.isolated` to ``1``." -msgstr "" - -#: c-api/init_config.rst:2264 -msgid "Set :c:member:`~PyConfig.use_environment` to ``0``." -msgstr "" - -#: c-api/init_config.rst:2265 -msgid "Set :c:member:`~PyConfig.site_import` to ``0``." -msgstr "" - -#: c-api/init_config.rst:2266 -msgid "Set :c:member:`~PyConfig.user_site_directory` to ``0`` (since 3.15)." -msgstr "" - -#: c-api/init_config.rst:2267 -msgid "Set :c:member:`~PyConfig.safe_path` to ``1``." -msgstr "" - -#: c-api/init_config.rst:2269 -msgid "" -"If :c:member:`~PyConfig.home` is not set and a ``pyvenv.cfg`` file is " -"present in the same directory as :c:member:`~PyConfig.executable`, or its " -"parent, :c:member:`~PyConfig.prefix` and :c:member:`~PyConfig.exec_prefix` " -"are set that location. When this happens, :c:member:`~PyConfig.base_prefix` " -"and :c:member:`~PyConfig.base_exec_prefix` still keep their value, pointing " -"to the base installation. See :ref:`sys-path-init-virtual-environments` for " -"more information." -msgstr "" - -#: c-api/init_config.rst:2277 -msgid "" -"The ``__PYVENV_LAUNCHER__`` environment variable is used to " -"set :c:member:`PyConfig.base_executable`." -msgstr "" - -#: c-api/init_config.rst:2282 -msgid "" -":c:member:`~PyConfig.prefix`, and :c:member:`~PyConfig.exec_prefix`, are now " -"set to the ``pyvenv.cfg`` directory. This was previously done " -"by :mod:`site`, therefore affected by :option:`-S`." -msgstr "" - -#: c-api/init_config.rst:2289 -msgid "" -":c:member:`~PyConfig.user_site_directory` is now set to ``0`` when a " -"``._pth`` file is present." -msgstr "" - -#: c-api/init_config.rst:2294 -msgid "Py_GetArgcArgv()" -msgstr "" - -#: c-api/init_config.rst:2298 -msgid "Get the original command line arguments, before Python modified them." -msgstr "" - -#: c-api/init_config.rst:2300 -msgid "See also :c:member:`PyConfig.orig_argv` member." -msgstr "" - -#: c-api/init_config.rst:2304 -msgid "Multi-Phase Initialization Private Provisional API" -msgstr "" - -#: c-api/init_config.rst:2306 -msgid "" -"This section is a private provisional API introducing multi-phase " -"initialization, the core feature of :pep:`432`:" -msgstr "" - -#: c-api/init_config.rst:2309 -msgid "\"Core\" initialization phase, \"bare minimum Python\":" -msgstr "" - -#: c-api/init_config.rst:2311 -msgid "Builtin types;" -msgstr "" - -#: c-api/init_config.rst:2312 -msgid "Builtin exceptions;" -msgstr "" - -#: c-api/init_config.rst:2313 -msgid "Builtin and frozen modules;" -msgstr "" - -#: c-api/init_config.rst:2314 -msgid "" -"The :mod:`sys` module is only partially initialized (ex: :data:`sys.path` " -"doesn't exist yet)." -msgstr "" - -#: c-api/init_config.rst:2317 -msgid "\"Main\" initialization phase, Python is fully initialized:" -msgstr "" - -#: c-api/init_config.rst:2319 -msgid "Install and configure :mod:`importlib`;" -msgstr "" - -#: c-api/init_config.rst:2320 -msgid "Apply the :ref:`Path Configuration `;" -msgstr "" - -#: c-api/init_config.rst:2321 -msgid "Install signal handlers;" -msgstr "" - -#: c-api/init_config.rst:2322 -msgid "" -"Finish :mod:`sys` module initialization (ex: create :data:`sys.stdout` " -"and :data:`sys.path`);" -msgstr "" - -#: c-api/init_config.rst:2324 -msgid "" -"Enable optional features like :mod:`faulthandler` and :mod:`tracemalloc`;" -msgstr "" - -#: c-api/init_config.rst:2325 -msgid "Import the :mod:`site` module;" -msgstr "" - -#: c-api/init_config.rst:2326 -msgid "etc." -msgstr "" - -#: c-api/init_config.rst:2328 -msgid "Private provisional API:" -msgstr "" - -#: c-api/init_config.rst:2332 -msgid "" -"If set to ``0``, :c:func:`Py_InitializeFromConfig` stops at the \"Core\" " -"initialization phase." -msgstr "" - -#: c-api/init_config.rst:2337 -msgid "" -"Move to the \"Main\" initialization phase, finish the Python initialization." -msgstr "" - -#: c-api/init_config.rst:2339 -msgid "" -"No module is imported during the \"Core\" phase and the ``importlib`` module " -"is not configured: the :ref:`Path Configuration ` is only " -"applied during the \"Main\" phase. It may allow to customize Python in " -"Python to override or tune the :ref:`Path Configuration `, " -"maybe install a custom :data:`sys.meta_path` importer or an import hook, etc." -msgstr "" - -#: c-api/init_config.rst:2345 -msgid "" -"It may become possible to calculate 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:2349 -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 " -"private and provisional: the API can be modified or even be removed anytime " -"until a proper public API is designed." -msgstr "" - -#: c-api/init_config.rst:2354 -msgid "" -"Example running Python code between \"Core\" and \"Main\" initialization " -"phases::" -msgstr "" - -#, fuzzy -#~ msgid "Functions:" -#~ msgstr "Fonctions :" - -#, fuzzy -#~ msgid "Interactive mode." -#~ msgstr "Mode interactif" diff --git a/c-api/interp-lifecycle.po b/c-api/interp-lifecycle.po deleted file mode 100644 index 54a95e3a3b..0000000000 --- a/c-api/interp-lifecycle.po +++ /dev/null @@ -1,1208 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/interp-lifecycle.rst:6 -msgid "Interpreter initialization and finalization" -msgstr "" - -#: c-api/interp-lifecycle.rst:8 -msgid "" -"See :ref:`Python Initialization Configuration ` for details on " -"how to configure the interpreter prior to initialization." -msgstr "" - -#: c-api/interp-lifecycle.rst:14 -msgid "Before Python initialization" -msgstr "" - -#: c-api/interp-lifecycle.rst:16 -msgid "" -"In an application embedding Python, the :c:func:`Py_Initialize` function " -"must be called before using any other Python/C API functions; with the " -"exception of a few functions and the :ref:`global configuration variables " -"`." -msgstr "" - -#: c-api/interp-lifecycle.rst:21 -msgid "" -"The following functions can be safely called before Python is initialized:" -msgstr "" - -#: c-api/interp-lifecycle.rst:23 -msgid "Functions that initialize the interpreter:" -msgstr "" - -#: c-api/interp-lifecycle.rst:25 -msgid ":c:func:`Py_Initialize`" -msgstr "" - -#: c-api/interp-lifecycle.rst:26 -msgid ":c:func:`Py_InitializeEx`" -msgstr "" - -#: c-api/interp-lifecycle.rst:27 -msgid ":c:func:`Py_InitializeFromConfig`" -msgstr "" - -#: c-api/interp-lifecycle.rst:28 -msgid ":c:func:`Py_BytesMain`" -msgstr "" - -#: c-api/interp-lifecycle.rst:29 -msgid ":c:func:`Py_Main`" -msgstr "" - -#: c-api/interp-lifecycle.rst:30 -msgid "the runtime pre-initialization functions covered in :ref:`init-config`" -msgstr "" - -#: c-api/interp-lifecycle.rst:32 -msgid "Configuration functions:" -msgstr "" - -#: c-api/interp-lifecycle.rst:34 -msgid ":c:func:`PyImport_AppendInittab`" -msgstr "" - -#: c-api/interp-lifecycle.rst:35 -msgid ":c:func:`PyImport_ExtendInittab`" -msgstr "" - -#: c-api/interp-lifecycle.rst:36 -msgid ":c:func:`!PyInitFrozenExtensions`" -msgstr "" - -#: c-api/interp-lifecycle.rst:37 -msgid ":c:func:`PyMem_SetAllocator`" -msgstr "" - -#: c-api/interp-lifecycle.rst:38 -msgid ":c:func:`PyMem_SetupDebugHooks`" -msgstr "" - -#: c-api/interp-lifecycle.rst:39 -msgid ":c:func:`PyObject_SetArenaAllocator`" -msgstr "" - -#: c-api/interp-lifecycle.rst:40 -msgid ":c:func:`Py_SetProgramName`" -msgstr "" - -#: c-api/interp-lifecycle.rst:41 -msgid ":c:func:`Py_SetPythonHome`" -msgstr "" - -#: c-api/interp-lifecycle.rst:42 -msgid "the configuration functions covered in :ref:`init-config`" -msgstr "" - -#: c-api/interp-lifecycle.rst:44 -msgid "Informative functions:" -msgstr "" - -#: c-api/interp-lifecycle.rst:54 -msgid ":c:func:`Py_IsInitialized`" -msgstr "" - -#: c-api/interp-lifecycle.rst:47 -msgid ":c:func:`PyMem_GetAllocator`" -msgstr "" - -#: c-api/interp-lifecycle.rst:48 -msgid ":c:func:`PyObject_GetArenaAllocator`" -msgstr "" - -#: c-api/interp-lifecycle.rst:49 -msgid ":c:func:`Py_GetBuildInfo`" -msgstr "" - -#: c-api/interp-lifecycle.rst:50 -msgid ":c:func:`Py_GetCompiler`" -msgstr "" - -#: c-api/interp-lifecycle.rst:51 -msgid ":c:func:`Py_GetCopyright`" -msgstr "" - -#: c-api/interp-lifecycle.rst:52 -msgid ":c:func:`Py_GetPlatform`" -msgstr "" - -#: c-api/interp-lifecycle.rst:53 -msgid ":c:func:`Py_GetVersion`" -msgstr "" - -#: c-api/interp-lifecycle.rst:56 -msgid "Utilities:" -msgstr "" - -#: c-api/interp-lifecycle.rst:58 -msgid ":c:func:`Py_DecodeLocale`" -msgstr "" - -#: c-api/interp-lifecycle.rst:59 -msgid "" -"the status reporting and utility functions covered in :ref:`init-config`" -msgstr "" - -#: c-api/interp-lifecycle.rst:61 -msgid "Memory allocators:" -msgstr "" - -#: c-api/interp-lifecycle.rst:63 -msgid ":c:func:`PyMem_RawMalloc`" -msgstr "" - -#: c-api/interp-lifecycle.rst:64 -msgid ":c:func:`PyMem_RawRealloc`" -msgstr "" - -#: c-api/interp-lifecycle.rst:65 -msgid ":c:func:`PyMem_RawCalloc`" -msgstr "" - -#: c-api/interp-lifecycle.rst:66 -msgid ":c:func:`PyMem_RawFree`" -msgstr "" - -#: c-api/interp-lifecycle.rst:68 -msgid "Synchronization:" -msgstr "" - -#: c-api/interp-lifecycle.rst:70 -msgid ":c:func:`PyMutex_Lock`" -msgstr "" - -#: c-api/interp-lifecycle.rst:71 -msgid ":c:func:`PyMutex_Unlock`" -msgstr "" - -#: c-api/interp-lifecycle.rst:75 -msgid "" -"Despite their apparent similarity to some of the functions listed above, the " -"following functions **should not be called** before the interpreter has been " -"initialized: :c:func:`Py_EncodeLocale`, :c:func:`PyEval_InitThreads`, " -"and :c:func:`Py_RunMain`." -msgstr "" - -#: c-api/interp-lifecycle.rst:84 -msgid "Global configuration variables" -msgstr "" - -#: c-api/interp-lifecycle.rst:86 -msgid "" -"Python has variables for the global configuration to control different " -"features and options. By default, these flags are controlled " -"by :ref:`command line options `." -msgstr "" - -#: c-api/interp-lifecycle.rst:90 -msgid "" -"When a flag is set by an option, the value of the flag is the number of " -"times that the option was set. For example, ``-b`` " -"sets :c:data:`Py_BytesWarningFlag` to 1 and ``-bb`` " -"sets :c:data:`Py_BytesWarningFlag` to 2." -msgstr "" - -#: c-api/interp-lifecycle.rst:97 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.bytes_warning` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:101 -msgid "" -"Issue a warning when comparing :class:`bytes` or :class:`bytearray` " -"with :class:`str` or :class:`bytes` with :class:`int`. Issue an error if " -"greater or equal to ``2``." -msgstr "" - -#: c-api/interp-lifecycle.rst:105 -msgid "Set by the :option:`-b` option." -msgstr "" - -#: c-api/interp-lifecycle.rst:112 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.parser_debug` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:116 -msgid "" -"Turn on parser debugging output (for expert only, depending on compilation " -"options)." -msgstr "" - -#: c-api/interp-lifecycle.rst:119 -msgid "" -"Set by the :option:`-d` option and the :envvar:`PYTHONDEBUG` environment " -"variable." -msgstr "" - -#: c-api/interp-lifecycle.rst:127 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.write_bytecode` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:131 -msgid "" -"If set to non-zero, Python won't try to write ``.pyc`` files on the import " -"of source modules." -msgstr "" - -#: c-api/interp-lifecycle.rst:134 -msgid "" -"Set by the :option:`-B` option and the :envvar:`PYTHONDONTWRITEBYTECODE` " -"environment variable." -msgstr "" - -#: c-api/interp-lifecycle.rst:142 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.pathconfig_warnings` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:146 -msgid "Private flag used by ``_freeze_module`` and ``frozenmain`` programs." -msgstr "" - -#: c-api/interp-lifecycle.rst:153 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.hash_seed` " -"and :c:member:`PyConfig.use_hash_seed` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:158 -msgid "" -"Set to ``1`` if the :envvar:`PYTHONHASHSEED` environment variable is set to " -"a non-empty string." -msgstr "" - -#: c-api/interp-lifecycle.rst:161 -msgid "" -"If the flag is non-zero, read the :envvar:`PYTHONHASHSEED` environment " -"variable to initialize the secret hash seed." -msgstr "" - -#: c-api/interp-lifecycle.rst:169 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.use_environment` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:173 -msgid "" -"Ignore all :envvar:`!PYTHON*` environment variables, " -"e.g. :envvar:`PYTHONPATH` and :envvar:`PYTHONHOME`, that might be set." -msgstr "" - -#: c-api/interp-lifecycle.rst:176 -msgid "Set by the :option:`-E` and :option:`-I` options." -msgstr "" - -#: c-api/interp-lifecycle.rst:183 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.inspect` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:187 -msgid "" -"When a script is passed as first argument or the :option:`-c` option is " -"used, enter interactive mode after executing the script or the command, even " -"when :data:`sys.stdin` does not appear to be a terminal." -msgstr "" - -#: c-api/interp-lifecycle.rst:191 -msgid "" -"Set by the :option:`-i` option and the :envvar:`PYTHONINSPECT` environment " -"variable." -msgstr "" - -#: c-api/interp-lifecycle.rst:199 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.interactive` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:203 -msgid "Set by the :option:`-i` option." -msgstr "" - -#: c-api/interp-lifecycle.rst:210 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.isolated` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:214 -msgid "" -"Run Python in isolated mode. In isolated mode :data:`sys.path` contains " -"neither the script's directory nor the user's site-packages directory." -msgstr "" - -#: c-api/interp-lifecycle.rst:217 -msgid "Set by the :option:`-I` option." -msgstr "" - -#: c-api/interp-lifecycle.rst:226 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyPreConfig.legacy_windows_fs_encoding` should be used " -"instead, see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:230 -msgid "" -"If the flag is non-zero, use the ``mbcs`` encoding with ``replace`` error " -"handler, instead of the UTF-8 encoding with ``surrogatepass`` error handler, " -"for the :term:`filesystem encoding and error handler`." -msgstr "" - -#: c-api/interp-lifecycle.rst:234 -msgid "" -"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` environment " -"variable is set to a non-empty string." -msgstr "" - -#: c-api/interp-lifecycle.rst:237 -msgid "See :pep:`529` for more details." -msgstr "" - -#: c-api/interp-lifecycle.rst:258 -msgid "Availability" -msgstr "" - -#: c-api/interp-lifecycle.rst:246 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.legacy_windows_stdio` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:250 -msgid "" -"If the flag is non-zero, use :class:`io.FileIO` instead of :class:`!" -"io._WindowsConsoleIO` for :mod:`sys` standard streams." -msgstr "" - -#: c-api/interp-lifecycle.rst:253 -msgid "" -"Set to ``1`` if the :envvar:`PYTHONLEGACYWINDOWSSTDIO` environment variable " -"is set to a non-empty string." -msgstr "" - -#: c-api/interp-lifecycle.rst:256 -msgid "See :pep:`528` for more details." -msgstr "" - -#: c-api/interp-lifecycle.rst:265 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.site_import` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:269 -msgid "" -"Disable the import of the module :mod:`site` and the site-dependent " -"manipulations of :data:`sys.path` that it entails. Also disable these " -"manipulations if :mod:`site` is explicitly imported later " -"(call :func:`site.main` if you want them to be triggered)." -msgstr "" - -#: c-api/interp-lifecycle.rst:274 -msgid "Set by the :option:`-S` option." -msgstr "" - -#: c-api/interp-lifecycle.rst:281 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.user_site_directory` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:285 -msgid "" -"Don't add the :data:`user site-packages directory ` " -"to :data:`sys.path`." -msgstr "" - -#: c-api/interp-lifecycle.rst:288 -msgid "" -"Set by the :option:`-s` and :option:`-I` options, and " -"the :envvar:`PYTHONNOUSERSITE` environment variable." -msgstr "" - -#: c-api/interp-lifecycle.rst:296 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.optimization_level` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:300 -msgid "" -"Set by the :option:`-O` option and the :envvar:`PYTHONOPTIMIZE` environment " -"variable." -msgstr "" - -#: c-api/interp-lifecycle.rst:308 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.quiet` should be used instead, see :ref:`Python " -"Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:312 -msgid "" -"Don't display the copyright and version messages even in interactive mode." -msgstr "" - -#: c-api/interp-lifecycle.rst:314 -msgid "Set by the :option:`-q` option." -msgstr "" - -#: c-api/interp-lifecycle.rst:323 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.buffered_stdio` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:327 -msgid "Force the stdout and stderr streams to be unbuffered." -msgstr "" - -#: c-api/interp-lifecycle.rst:329 -msgid "" -"Set by the :option:`-u` option and the :envvar:`PYTHONUNBUFFERED` " -"environment variable." -msgstr "" - -#: c-api/interp-lifecycle.rst:337 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.verbose` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:341 -msgid "" -"Print a message each time a module is initialized, showing the place " -"(filename or built-in module) from which it is loaded. If greater or equal " -"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/interp-lifecycle.rst:346 -msgid "" -"Set by the :option:`-v` option and the :envvar:`PYTHONVERBOSE` environment " -"variable." -msgstr "" - -#: c-api/interp-lifecycle.rst:353 -msgid "Initializing and finalizing the interpreter" -msgstr "" - -#: c-api/interp-lifecycle.rst:367 -msgid "" -"Initialize the Python interpreter. In an application embedding Python, this " -"should be called before using any other Python/C API functions; " -"see :ref:`Before Python Initialization ` for the few " -"exceptions." -msgstr "" - -#: c-api/interp-lifecycle.rst:371 -msgid "" -"This initializes the table of loaded modules (``sys.modules``), and creates " -"the fundamental modules :mod:`builtins`, :mod:`__main__` and :mod:`sys`. It " -"also initializes the module search path (``sys.path``). It does not set " -"``sys.argv``; use the :ref:`Python Initialization Configuration ` API for that. This is a no-op when called for a second time " -"(without calling :c:func:`Py_FinalizeEx` first). There is no return value; " -"it is a fatal error if the initialization fails." -msgstr "" - -#: c-api/interp-lifecycle.rst:393 -msgid "" -"Use :c:func:`Py_InitializeFromConfig` to customize the :ref:`Python " -"Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:383 -msgid "" -"On Windows, changes the console mode from ``O_TEXT`` to ``O_BINARY``, which " -"will also affect non-Python uses of the console using the C Runtime." -msgstr "" - -#: c-api/interp-lifecycle.rst:389 -msgid "" -"This function works like :c:func:`Py_Initialize` if *initsigs* is ``1``. If " -"*initsigs* is ``0``, it skips initialization registration of signal " -"handlers, which may be useful when CPython is embedded as part of a larger " -"application." -msgstr "" - -#: c-api/interp-lifecycle.rst:399 -msgid "" -"Initialize Python from *config* configuration, as described in :ref:`init-" -"from-config`." -msgstr "" - -#: c-api/interp-lifecycle.rst:402 -msgid "" -"See the :ref:`init-config` section for details on pre-initializing the " -"interpreter, populating the runtime configuration structure, and querying " -"the returned status structure." -msgstr "" - -#: c-api/interp-lifecycle.rst:409 -msgid "" -"Return true (nonzero) when the Python interpreter has been initialized, " -"false (zero) if not. After :c:func:`Py_FinalizeEx` is called, this returns " -"false until :c:func:`Py_Initialize` is called again." -msgstr "" - -#: c-api/interp-lifecycle.rst:413 -msgid "" -"This function no longer returns true until initialization has fully " -"completed, including import of the :mod:`site` module. Previously it could " -"return true while :c:func:`Py_Initialize` was still running." -msgstr "" - -#: c-api/interp-lifecycle.rst:421 -msgid "" -"Return true (non-zero) if the main Python interpreter is :term:`shutting " -"down `. Return false (zero) otherwise." -msgstr "" - -#: c-api/interp-lifecycle.rst:429 -msgid "" -"Undo all initializations made by :c:func:`Py_Initialize` and subsequent use " -"of Python/C API functions, and destroy all sub-interpreters " -"(see :c:func:`Py_NewInterpreter` below) that were created and not yet " -"destroyed since the last call to :c:func:`Py_Initialize`. This is a no-op " -"when called for a second time (without calling :c:func:`Py_Initialize` again " -"first)." -msgstr "" - -#: c-api/interp-lifecycle.rst:435 -msgid "" -"Since this is the reverse of :c:func:`Py_Initialize`, it should be called in " -"the same thread with the same interpreter active. That means the main " -"thread and the main interpreter. This should never be called " -"while :c:func:`Py_RunMain` is running." -msgstr "" - -#: c-api/interp-lifecycle.rst:440 -msgid "" -"Normally the return value is ``0``. If there were errors during finalization " -"(flushing buffered data), ``-1`` is returned." -msgstr "" - -#: c-api/interp-lifecycle.rst:444 -msgid "" -"Note that Python will do a best effort at freeing all memory allocated by " -"the Python interpreter. Therefore, any C-Extension should make sure to " -"correctly clean up all of the previously allocated PyObjects before using " -"them in subsequent calls to :c:func:`Py_Initialize`. Otherwise it could " -"introduce vulnerabilities and incorrect behavior." -msgstr "" - -#: c-api/interp-lifecycle.rst:450 -msgid "" -"This function is provided for a number of reasons. An embedding application " -"might want to restart Python without having to restart the application " -"itself. An application that has loaded the Python interpreter from a " -"dynamically loadable library (or DLL) might want to free all memory " -"allocated by Python before unloading the DLL. During a hunt for memory leaks " -"in an application a developer might want to free all memory allocated by " -"Python before exiting from the application." -msgstr "" - -#: c-api/interp-lifecycle.rst:458 -msgid "" -"**Bugs and caveats:** The destruction of modules and objects in modules is " -"done in random order; this may cause destructors (:meth:`~object.__del__` " -"methods) to fail when they depend on other objects (even functions) or " -"modules. Dynamically loaded extension modules loaded by Python are not " -"unloaded. Small amounts of memory allocated by the Python interpreter may " -"not be freed (if you find a leak, please report it). Memory tied up in " -"circular references between objects is not freed. Interned strings will all " -"be deallocated regardless of their reference count. Some memory allocated by " -"extension modules may not be freed. Some extensions may not work properly " -"if their initialization routine is called more than once; this can happen if " -"an application calls :c:func:`Py_Initialize` and :c:func:`Py_FinalizeEx` " -"more than once. :c:func:`Py_FinalizeEx` must not be called recursively from " -"within itself. Therefore, it must not be called by any code that may be run " -"as part of the interpreter shutdown process, such as :py:mod:`atexit` " -"handlers, object finalizers, or any code that may be run while flushing the " -"stdout and stderr files." -msgstr "" - -#: c-api/interp-lifecycle.rst:474 -msgid "" -"Raises an :ref:`auditing event ` " -"``cpython._PySys_ClearAuditHooks`` with no arguments." -msgstr "" - -#: c-api/interp-lifecycle.rst:481 -msgid "" -"This is a backwards-compatible version of :c:func:`Py_FinalizeEx` that " -"disregards the return value." -msgstr "" - -#: c-api/interp-lifecycle.rst:487 -msgid "" -"Similar to :c:func:`Py_Main` but *argv* is an array of bytes strings, " -"allowing the calling application to delegate the text decoding step to the " -"CPython runtime." -msgstr "" - -#: c-api/interp-lifecycle.rst:496 -msgid "" -"The main program for the standard interpreter, encapsulating a full " -"initialization/finalization cycle, as well as additional behaviour to " -"implement reading configurations settings from the environment and command " -"line, and then executing ``__main__`` in accordance with :ref:`using-on-" -"cmdline`." -msgstr "" - -#: c-api/interp-lifecycle.rst:502 -msgid "" -"This is made available for programs which wish to support the full CPython " -"command line interface, rather than just embedding a Python runtime in a " -"larger application." -msgstr "" - -#: c-api/interp-lifecycle.rst:506 -msgid "" -"The *argc* and *argv* parameters are similar to those which are passed to a " -"C program's :c:func:`main` function, except that the *argv* entries are " -"first converted to ``wchar_t`` using :c:func:`Py_DecodeLocale`. It is also " -"important to note that the argument list entries may be modified to point to " -"strings other than those passed in (however, the contents of the strings " -"pointed to by the argument list are not modified)." -msgstr "" - -#: c-api/interp-lifecycle.rst:513 -msgid "" -"The return value is ``2`` if the argument list does not represent a valid " -"Python command line, and otherwise the same as :c:func:`Py_RunMain`." -msgstr "" - -#: c-api/interp-lifecycle.rst:516 -msgid "" -"In terms of the CPython runtime configuration APIs documented in " -"the :ref:`runtime configuration ` section (and without " -"accounting for error handling), ``Py_Main`` is approximately equivalent to::" -msgstr "" - -#: c-api/interp-lifecycle.rst:528 -msgid "" -"In normal usage, an embedding application will call this function *instead* " -"of calling :c:func:`Py_Initialize`, :c:func:`Py_InitializeEx` " -"or :c:func:`Py_InitializeFromConfig` directly, and all settings will be " -"applied as described elsewhere in this documentation. If this function is " -"instead called *after* a preceding runtime initialization API call, then " -"exactly which environmental and command line configuration settings will be " -"updated is version dependent (as it depends on which settings correctly " -"support being modified after they have already been set once when the " -"runtime was first initialized)." -msgstr "" - -#: c-api/interp-lifecycle.rst:541 -msgid "Executes the main module in a fully configured CPython runtime." -msgstr "" - -#: c-api/interp-lifecycle.rst:543 -msgid "" -"Executes 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. If none of these values are set, runs the interactive Python " -"prompt (REPL) using the ``__main__`` module's global namespace." -msgstr "" - -#: c-api/interp-lifecycle.rst:549 -msgid "" -"If :c:member:`PyConfig.inspect` is not set (the default), the return value " -"will be ``0`` if the interpreter exits normally (that is, without raising an " -"exception), the exit status of an unhandled :exc:`SystemExit`, or ``1`` for " -"any other unhandled exception." -msgstr "" - -#: c-api/interp-lifecycle.rst:554 -msgid "" -"If :c:member:`PyConfig.inspect` is set (such as when the :option:`-i` option " -"is used), rather than returning when the interpreter exits, execution will " -"instead resume in an interactive Python prompt (REPL) using the ``__main__`` " -"module's global namespace. If the interpreter exited with an exception, it " -"is immediately raised in the REPL session. The function return value is then " -"determined by the way the *REPL session* terminates: ``0``, ``1``, or the " -"status of a :exc:`SystemExit`, as specified above." -msgstr "" - -#: c-api/interp-lifecycle.rst:562 -msgid "" -"This function always finalizes the Python interpreter before it returns." -msgstr "" - -#: c-api/interp-lifecycle.rst:564 -msgid "" -"See :ref:`Python Configuration ` for an example of a " -"customized Python that always runs in isolated mode " -"using :c:func:`Py_RunMain`." -msgstr "" - -#: c-api/interp-lifecycle.rst:570 -msgid "" -"Register an :mod:`atexit` callback for the target interpreter *interp*. This " -"is similar to :c:func:`Py_AtExit`, but takes an explicit interpreter and " -"data pointer for the callback." -msgstr "" - -#: c-api/interp-lifecycle.rst:574 -msgid "There must be an :term:`attached thread state` for *interp*." -msgstr "" - -#: c-api/interp-lifecycle.rst:582 -msgid "Cautions regarding interpreter finalization" -msgstr "" - -#: c-api/interp-lifecycle.rst:584 -msgid "" -"In the late stage of :term:`interpreter shutdown`, after attempting to wait " -"for non-daemon threads to exit (though this can be interrupted " -"by :class:`KeyboardInterrupt`) and running the :mod:`atexit` functions, the " -"runtime is marked as finalizing, meaning that :c:func:`Py_IsFinalizing` " -"and :func:`sys.is_finalizing` return true. At this point, only the " -"finalization thread (the thread that initiated finalization; this is " -"typically the main thread) is allowed to :term:`attach ` a thread state." -msgstr "" - -#: c-api/interp-lifecycle.rst:592 -msgid "" -"Other threads that attempt to attach during finalization, either explicitly " -"(such as via :c:func:`PyThreadState_Ensure` " -"or :c:macro:`Py_END_ALLOW_THREADS`) or implicitly (such as in-between " -"bytecode instructions), will enter a **permanently blocked state**. " -"Generally, this is harmless, but this can result in deadlocks. For example, " -"a thread may be permanently blocked while holding a lock, meaning that the " -"finalization thread can never acquire that lock." -msgstr "" - -#: c-api/interp-lifecycle.rst:600 -msgid "" -"Prior to CPython 3.13, the thread would exit instead of hanging, which led " -"to other issues (see the warning note at :c:func:`PyThread_exit_thread`)." -msgstr "" - -#: c-api/interp-lifecycle.rst:604 -msgid "" -"Gross? Yes. Starting in Python 3.15, there are a number of C APIs that make " -"it possible to avoid these issues by temporarily preventing finalization:" -msgstr "" - -#: c-api/interp-lifecycle.rst:611 -msgid "" -":pep:`788` explains the design, motivation and rationale for these APIs." -msgstr "" - -#: c-api/interp-lifecycle.rst:616 -msgid "An opaque interpreter guard structure." -msgstr "" - -#: c-api/interp-lifecycle.rst:618 -msgid "" -"By holding an interpreter guard, the caller can ensure that the interpreter " -"will not finalize until the guard is closed " -"(through :c:func:`PyInterpreterGuard_Close`)." -msgstr "" - -#: c-api/interp-lifecycle.rst:622 -msgid "" -"When a guard is held, a thread attempting to finalize the interpreter will " -"block until the guard is closed before starting finalization. After " -"finalization has started, threads are forever unable to acquire guards for " -"that interpreter. This means that if you forget to close an interpreter " -"guard, the process will **permanently hang** during finalization!" -msgstr "" - -#: c-api/interp-lifecycle.rst:629 -msgid "" -"Holding a guard for an interpreter is similar to holding a :term:`strong " -"reference` to a Python object, except finalization does not happen " -"automatically after all guards are released: it requires an " -"explicit :c:func:`Py_EndInterpreter` call." -msgstr "" - -#: c-api/interp-lifecycle.rst:639 -msgid "" -"Create a finalization guard for the current interpreter. This will prevent " -"finalization until the guard is closed." -msgstr "" - -#: c-api/interp-lifecycle.rst:642 -msgid "For example:" -msgstr "" - -#: c-api/interp-lifecycle.rst:662 -msgid "" -"On success, this function returns a guard for the current interpreter; on " -"failure, it returns ``NULL`` with an exception set." -msgstr "" - -#: c-api/interp-lifecycle.rst:665 -msgid "" -"This function will fail only if the current interpreter has already started " -"finalizing, or if the process is out of memory." -msgstr "" - -#: c-api/interp-lifecycle.rst:668 -msgid "" -"The guard pointer returned by this function must be eventually closed " -"with :c:func:`PyInterpreterGuard_Close`; failing to do so will result in the " -"Python process infinitely hanging." -msgstr "" - -#: c-api/interp-lifecycle.rst:739 -msgid "The caller must hold an :term:`attached thread state`." -msgstr "" - -#: c-api/interp-lifecycle.rst:679 -msgid "Create a finalization guard for an interpreter through a view." -msgstr "" - -#: c-api/interp-lifecycle.rst:681 -msgid "" -"On success, this function returns a guard to the interpreter represented by " -"*view*. The view is still valid after calling this function. The guard must " -"eventually be closed with :c:func:`PyInterpreterGuard_Close`." -msgstr "" - -#: c-api/interp-lifecycle.rst:686 -msgid "" -"If the interpreter no longer exists, is already finalizing, or out of " -"memory, then this function returns ``NULL`` without setting an exception." -msgstr "" - -#: c-api/interp-lifecycle.rst:775 -msgid "The caller does not need to hold an :term:`attached thread state`." -msgstr "" - -#: c-api/interp-lifecycle.rst:696 -msgid "" -"Close an interpreter guard, allowing the interpreter to start finalization " -"if no other guards remain. If an interpreter guard is never closed, the " -"interpreter will infinitely wait when trying to enter finalization!" -msgstr "" - -#: c-api/interp-lifecycle.rst:701 -msgid "" -"After an interpreter guard is closed, it may not be used " -"in :c:func:`PyThreadState_Ensure`. Doing so will result in undefined " -"behavior." -msgstr "" - -#: c-api/interp-lifecycle.rst:752 -msgid "" -"This function cannot fail, and the caller doesn't need to hold " -"an :term:`attached thread state`." -msgstr "" - -#: c-api/interp-lifecycle.rst:714 -msgid "Interpreter views" -msgstr "" - -#: c-api/interp-lifecycle.rst:716 -msgid "" -"In some cases, it may be necessary to access an interpreter that may have " -"been deleted. This can be done using interpreter views." -msgstr "" - -#: c-api/interp-lifecycle.rst:721 -msgid "An opaque view of an interpreter." -msgstr "" - -#: c-api/interp-lifecycle.rst:723 -msgid "" -"This is a thread-safe way to access an interpreter that may have be " -"finalizing or already destroyed." -msgstr "" - -#: c-api/interp-lifecycle.rst:731 -msgid "Create a view to the current interpreter." -msgstr "" - -#: c-api/interp-lifecycle.rst:733 -msgid "" -"This function is generally meant to be used " -"alongside :c:func:`PyInterpreterGuard_FromView` " -"or :c:func:`PyThreadState_EnsureFromView`." -msgstr "" - -#: c-api/interp-lifecycle.rst:736 -msgid "" -"On success, this function returns a view to the current interpreter; on " -"failure, it returns ``NULL`` with an exception set." -msgstr "" - -#: c-api/interp-lifecycle.rst:746 -msgid "Close an interpreter view." -msgstr "" - -#: c-api/interp-lifecycle.rst:748 -msgid "" -"If an interpreter view is never closed, the view's memory will never be " -"freed, but there are no other consequences. (In contrast, forgetting to " -"close a guard will infinitely hang the main thread during finalization.)" -msgstr "" - -#: c-api/interp-lifecycle.rst:760 -msgid "" -"Create a view for the main interpreter (the first and default interpreter in " -"a Python process; see :c:func:`PyInterpreterState_Main`)." -msgstr "" - -#: c-api/interp-lifecycle.rst:764 -msgid "" -"On success, this function returns a view to the main interpreter; on " -"failure, it returns ``NULL`` without an exception set. Failure indicates " -"that the process is out of memory." -msgstr "" - -#: c-api/interp-lifecycle.rst:768 -msgid "" -"Use this function when an interpreter pointer or view cannot be supplied by " -"the caller, such as when a native threading library does not provide a " -"``void *arg`` parameter that could carry a :c:type:`PyInterpreterGuard` " -"or :c:type:`PyInterpreterView`. In code that supports subinterpreters, " -"prefer :c:func:`PyInterpreterView_FromCurrent` so the guard tracks the " -"calling interpreter rather than the main one." -msgstr "" - -#: c-api/interp-lifecycle.rst:781 -msgid "Process-wide parameters" -msgstr "" - -#: c-api/interp-lifecycle.rst:789 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.program_name` should be used instead, " -"see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:793 -msgid "" -"This function should be called before :c:func:`Py_Initialize` is called for " -"the first time, if it is called at all. It tells the interpreter the value " -"of the ``argv[0]`` argument to the :c:func:`main` function of the program " -"(converted to wide characters). This is used by some other functions below " -"to find the Python run-time libraries relative to the interpreter " -"executable. The default value is ``'python'``. The argument should point " -"to a zero-terminated wide character string in static storage whose contents " -"will not change for the duration of the program's execution. No code in the " -"Python interpreter will change the contents of this storage." -msgstr "" - -#: c-api/interp-lifecycle.rst:912 c-api/interp-lifecycle.rst:971 -msgid "" -"Use :c:func:`Py_DecodeLocale` to decode a bytes string to get " -"a :c:expr:`wchar_t*` string." -msgstr "" - -#: c-api/interp-lifecycle.rst:812 -msgid "" -"Return the version of this Python interpreter. This is a string that looks " -"something like ::" -msgstr "" - -#: c-api/interp-lifecycle.rst:819 -msgid "" -"The first word (up to the first space character) is the current Python " -"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/interp-lifecycle.rst:824 -msgid "See also the :c:var:`Py_Version` constant." -msgstr "" - -#: c-api/interp-lifecycle.rst:831 -msgid "" -"Return the platform identifier for the current platform. On Unix, this is " -"formed from the \"official\" name of the operating system, converted to " -"lower case, followed by the major revision number; e.g., for Solaris 2.x, " -"which is also known as SunOS 5.x, the value is ``'sunos5'``. On macOS, it " -"is ``'darwin'``. On Windows, it is ``'win'``. The returned string points " -"into static storage; the caller should not modify its value. The value is " -"available to Python code as ``sys.platform``." -msgstr "" - -#: c-api/interp-lifecycle.rst:842 -msgid "" -"Return the official copyright string for the current Python version, for " -"example" -msgstr "" - -#: c-api/interp-lifecycle.rst:844 -msgid "``'Copyright 1991-1995 Stichting Mathematisch Centrum, Amsterdam'``" -msgstr "" - -#: c-api/interp-lifecycle.rst:848 -msgid "" -"The returned string points into static storage; the caller should not modify " -"its value. The value is available to Python code as ``sys.copyright``." -msgstr "" - -#: c-api/interp-lifecycle.rst:854 -msgid "" -"Return an indication of the compiler used to build the current Python " -"version, in square brackets, for example::" -msgstr "" - -#: c-api/interp-lifecycle.rst:875 -msgid "" -"The returned string points into static storage; the caller should not modify " -"its value. The value is available to Python code as part of the variable " -"``sys.version``." -msgstr "" - -#: c-api/interp-lifecycle.rst:868 -msgid "" -"Return information about the sequence number and build date and time of the " -"current Python interpreter instance, for example ::" -msgstr "" - -#: c-api/interp-lifecycle.rst:887 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.argv`, :c:member:`PyConfig.parse_argv` " -"and :c:member:`PyConfig.safe_path` should be used instead, see :ref:`Python " -"Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:892 -msgid "" -"Set :data:`sys.argv` based on *argc* and *argv*. These parameters are " -"similar to those passed to the program's :c:func:`main` function with the " -"difference that the first entry should refer to the script file to be " -"executed rather than the executable hosting the Python interpreter. If " -"there isn't a script that will be run, the first entry in *argv* can be an " -"empty string. If this function fails to initialize :data:`sys.argv`, a " -"fatal condition is signalled using :c:func:`Py_FatalError`." -msgstr "" - -#: c-api/interp-lifecycle.rst:900 -msgid "" -"If *updatepath* is zero, this is all the function does. If *updatepath* is " -"non-zero, the function also modifies :data:`sys.path` according to the " -"following algorithm:" -msgstr "" - -#: c-api/interp-lifecycle.rst:904 -msgid "" -"If the name of an existing script is passed in ``argv[0]``, the absolute " -"path of the directory where the script is located is prepended " -"to :data:`sys.path`." -msgstr "" - -#: c-api/interp-lifecycle.rst:907 -msgid "" -"Otherwise (that is, if *argc* is ``0`` or ``argv[0]`` doesn't point to an " -"existing file name), an empty string is prepended to :data:`sys.path`, which " -"is the same as prepending the current working directory (``\".\"``)." -msgstr "" - -#: c-api/interp-lifecycle.rst:948 -msgid "" -"See also :c:member:`PyConfig.orig_argv` and :c:member:`PyConfig.argv` " -"members of the :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:919 -msgid "" -"It is recommended that applications embedding the Python interpreter for " -"purposes other than executing a single script pass ``0`` as *updatepath*, " -"and update :data:`sys.path` themselves if desired. See :cve:`2008-5983`." -msgstr "" - -#: c-api/interp-lifecycle.rst:924 -msgid "" -"On versions before 3.1.3, you can achieve the same effect by manually " -"popping the first :data:`sys.path` element after having " -"called :c:func:`PySys_SetArgv`, for example using::" -msgstr "" - -#: c-api/interp-lifecycle.rst:937 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.argv` and :c:member:`PyConfig.parse_argv` should " -"be used instead, see :ref:`Python Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:941 -msgid "" -"This function works like :c:func:`PySys_SetArgvEx` with *updatepath* set to " -"``1`` unless the :program:`python` interpreter was started with " -"the :option:`-I`." -msgstr "" - -#: c-api/interp-lifecycle.rst:951 -msgid "The *updatepath* value depends on :option:`-I`." -msgstr "" - -#: c-api/interp-lifecycle.rst:958 -msgid "" -"This API is kept for backward compatibility: " -"setting :c:member:`PyConfig.home` should be used instead, see :ref:`Python " -"Initialization Configuration `." -msgstr "" - -#: c-api/interp-lifecycle.rst:962 -msgid "" -"Set the default \"home\" directory, that is, the location of the standard " -"Python libraries. See :envvar:`PYTHONHOME` for the meaning of the argument " -"string." -msgstr "" - -#: c-api/interp-lifecycle.rst:966 -msgid "" -"The argument should point to a zero-terminated character string in static " -"storage whose contents will not change for the duration of the program's " -"execution. No code in the Python interpreter will change the contents of " -"this storage." -msgstr "" diff --git a/c-api/intro.po b/c-api/intro.po deleted file mode 100644 index b34e223109..0000000000 --- a/c-api/intro.po +++ /dev/null @@ -1,1362 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/intro.rst:8 -msgid "Introduction" -msgstr "Introduction" - -#: c-api/intro.rst:10 -msgid "" -"The Application Programmer's Interface to Python gives C and C++ programmers " -"access to the Python interpreter at a variety of levels. The API is equally " -"usable from C++, but for brevity it is generally referred to as the Python/C " -"API. There are two fundamentally different reasons for using the Python/C " -"API. The first reason is to write *extension modules* for specific purposes; " -"these are C modules that extend the Python interpreter. This is probably " -"the most common use. The second reason is to use Python as a component in a " -"larger application; this technique is generally referred to " -"as :dfn:`embedding` Python in an application." -msgstr "" - -#: c-api/intro.rst:20 -msgid "" -"Writing an extension module is a relatively well-understood process, where a " -"\"cookbook\" approach works well. There are several tools that automate the " -"process to some extent. While people have embedded Python in other " -"applications since its early existence, the process of embedding Python is " -"less straightforward than writing an extension." -msgstr "" - -#: c-api/intro.rst:26 -msgid "" -"Many API functions are useful independent of whether you're embedding or " -"extending Python; moreover, most applications that embed Python will need " -"to provide a custom extension as well, so it's probably a good idea to " -"become familiar with writing an extension before attempting to embed Python " -"in a real application." -msgstr "" - -#: c-api/intro.rst:34 -msgid "Language version compatibility" -msgstr "" - -#: c-api/intro.rst:36 -msgid "Python's C API is compatible with C11 and C++11 versions of C and C++." -msgstr "" - -#: c-api/intro.rst:38 -msgid "" -"This is a lower limit: the C API does not require features from later C/C++ " -"versions. You do *not* need to enable your compiler's \"c11 mode\"." -msgstr "" - -#: c-api/intro.rst:44 -msgid "Coding standards" -msgstr "" - -#: c-api/intro.rst:46 -msgid "" -"If you're writing C code for inclusion in CPython, you **must** follow the " -"guidelines and standards defined in :PEP:`7`. These guidelines apply " -"regardless of the version of Python you are contributing to. Following " -"these conventions is not necessary for your own third party extension " -"modules, unless you eventually expect to contribute them to Python." -msgstr "" - -#: c-api/intro.rst:56 -msgid "Include Files" -msgstr "" - -#: c-api/intro.rst:58 -msgid "" -"All function, type and macro definitions needed to use the Python/C API are " -"included in your code by the following line::" -msgstr "" - -#: c-api/intro.rst:64 -msgid "" -"This implies inclusion of the following standard headers: ````, " -"````, ````, ````, ```` and " -"```` (if available)." -msgstr "" - -#: c-api/intro.rst:145 -msgid "" -"Since Python may define some pre-processor definitions which affect the " -"standard headers on some systems, you *must* include :file:`Python.h` before " -"any standard headers are included." -msgstr "" -"Python pouvant définir certaines définitions pré-processeur qui affectent " -"les têtes standard sur certains systèmes, vous *devez* " -"inclure :file:`Python.h` avant les en-têtes standards." - -#: c-api/intro.rst:74 -#, fuzzy -msgid "" -"It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including " -"``Python.h``. See :ref:`arg-parsing` for a description of this macro." -msgstr "" -"Il est recommandé de toujours définir ``PY_SSIZE_T_CLEAN`` avant d'inclure " -"``Python.h``. Lisez :ref:`parsetuple` pour avoir une description de cette " -"macro." - -#: c-api/intro.rst:77 -msgid "" -"All user visible names defined by Python.h (except those defined by the " -"included standard headers) have one of the prefixes ``Py`` or ``_Py``. " -"Names beginning with ``_Py`` are for internal use by the Python " -"implementation and should not be used by extension writers. Structure member " -"names do not have a reserved prefix." -msgstr "" - -#: c-api/intro.rst:84 -msgid "" -"User code should never define names that begin with ``Py`` or ``_Py``. This " -"confuses the reader, and jeopardizes the portability of the user code to " -"future Python versions, which may define additional names beginning with one " -"of these prefixes." -msgstr "" - -#: c-api/intro.rst:89 -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 :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 "" - -#: c-api/intro.rst:98 -msgid "" -"To include the headers, place both directories (if different) on your " -"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 :option:`prefix <--prefix>` include the platform specific headers " -"from :option:`exec_prefix <--exec-prefix>`." -msgstr "" - -#: c-api/intro.rst:105 -msgid "" -"C++ users should note that although the API is defined entirely using C, the " -"header files properly declare the entry points to be ``extern \"C\"``. As a " -"result, there is no need to do anything special to use the API from C++." -msgstr "" - -#: c-api/intro.rst:113 -msgid "System includes" -msgstr "" - -#: c-api/intro.rst:115 -msgid "" -":file:`Python.h` includes several standard header files. C extensions should " -"include the standard headers that they use, and should not rely on these " -"implicit includes. The implicit includes are:" -msgstr "" - -#: c-api/intro.rst:120 -msgid "````" -msgstr "" - -#: c-api/intro.rst:121 -msgid "```` (on Windows)" -msgstr "" - -#: c-api/intro.rst:122 -msgid "````" -msgstr "" - -#: c-api/intro.rst:123 -msgid "````" -msgstr "" - -#: c-api/intro.rst:124 -msgid "````" -msgstr "" - -#: c-api/intro.rst:125 -msgid "````" -msgstr "" - -#: c-api/intro.rst:126 -msgid "````" -msgstr "" - -#: c-api/intro.rst:127 -msgid "````" -msgstr "" - -#: c-api/intro.rst:128 -msgid "```` (if present)" -msgstr "" - -#: c-api/intro.rst:130 -msgid "" -"The following are included for backwards compatibility, unless " -"using :ref:`Limited API ` 3.13 or newer:" -msgstr "" - -#: c-api/intro.rst:133 -msgid "````" -msgstr "" - -#: c-api/intro.rst:134 -msgid "```` (on POSIX)" -msgstr "" - -#: c-api/intro.rst:136 -msgid "" -"The following are included for backwards compatibility, unless " -"using :ref:`Limited API ` 3.11 or newer:" -msgstr "" - -#: c-api/intro.rst:139 -msgid "````" -msgstr "" - -#: c-api/intro.rst:140 -msgid "````" -msgstr "" - -#: c-api/intro.rst:141 -msgid "````" -msgstr "" - -#: c-api/intro.rst:151 -msgid "Useful macros" -msgstr "" - -#: c-api/intro.rst:153 -msgid "" -"Several useful macros are defined in the Python header files. Many are " -"defined closer to where they are useful (for " -"example, :c:macro:`Py_RETURN_NONE`, :c:macro:`PyMODINIT_FUNC`). Others of a " -"more general utility are defined here. This is not necessarily a complete " -"listing." -msgstr "" - -#: c-api/intro.rst:161 -msgid "" -"If this macro is defined, then the current system is able to start threads." -msgstr "" - -#: c-api/intro.rst:163 -msgid "" -"Currently, all systems supported by CPython (per :pep:`11`), with the " -"exception of some WebAssembly platforms, support starting threads." -msgstr "" - -#: c-api/intro.rst:170 -msgid "" -"Like :samp:`getenv({s})`, but returns ``NULL`` if :option:`-E` was passed on " -"the command line (see :c:member:`PyConfig.use_environment`)." -msgstr "" - -#: c-api/intro.rst:175 -msgid "Docstring macros" -msgstr "" - -#: c-api/intro.rst:179 -msgid "" -"Creates a variable with name *name* that can be used in docstrings. If " -"Python is built without docstrings (:option:`--without-doc-strings`), the " -"value will be an empty string." -msgstr "" - -#: c-api/intro.rst:200 c-api/intro.rst:468 -msgid "Example::" -msgstr "Exemple ::" - -#: c-api/intro.rst:193 -msgid "Expands to :samp:`PyDoc_VAR({name}) = PyDoc_STR({str})`." -msgstr "" - -#: c-api/intro.rst:197 -msgid "" -"Expands to the given input string, or an empty string if docstrings are " -"disabled (:option:`--without-doc-strings`)." -msgstr "" - -#: c-api/intro.rst:210 -msgid "" -"Declares a static character array variable with the given *name*. Expands " -"to :samp:`static const char {name}[]`" -msgstr "" - -#: c-api/intro.rst:354 c-api/intro.rst:365 -#, fuzzy -msgid "For example::" -msgstr "Exemple ::" - -#: c-api/intro.rst:221 -msgid "General utility macros" -msgstr "" - -#: c-api/intro.rst:223 -msgid "The following macros are for common tasks not specific to Python." -msgstr "" - -#: c-api/intro.rst:227 -msgid "" -"Use this for unused arguments in a function definition to silence compiler " -"warnings. Example: ``int func(int a, int Py_UNUSED(b)) { return a; }``." -msgstr "" - -#: c-api/intro.rst:234 -msgid "" -"Use a GCC attribute *name*, hiding it from compilers that don't support GCC " -"attributes (such as MSVC)." -msgstr "" - -#: c-api/intro.rst:237 -msgid "" -"This expands to :samp:`__attribute__(({name)})` on a GCC compiler, and " -"expands to nothing on compilers that don't support GCC attributes." -msgstr "" - -#: c-api/intro.rst:242 -msgid "Numeric utilities" -msgstr "" - -#: c-api/intro.rst:246 -#, fuzzy -msgid "Return the absolute value of ``x``." -msgstr "Renvoie la valeur absolue de *x*." - -#: c-api/intro.rst:248 -msgid "" -"The argument may be evaluated more than once. Consequently, do not pass an " -"expression with side-effects directly to this macro." -msgstr "" - -#: c-api/intro.rst:252 -msgid "" -"If the result cannot be represented (for example, if ``x`` has :c:macro:`!" -"INT_MIN` value for :c:expr:`int` type), the behavior is undefined." -msgstr "" - -#: c-api/intro.rst:256 -msgid "Corresponds roughly to :samp:`(({x}) < 0 ? -({x}) : ({x}))`" -msgstr "" - -#: c-api/intro.rst:263 -msgid "Return the larger or smaller of the arguments, respectively." -msgstr "" - -#: c-api/intro.rst:265 -msgid "" -"Any arguments may be evaluated more than once. Consequently, do not pass an " -"expression with side-effects directly to this macro." -msgstr "" - -#: c-api/intro.rst:269 -msgid "" -":c:macro:`!Py_MAX` corresponds roughly to :samp:`((({x}) > ({y})) ? ({x}) : " -"({y}))`." -msgstr "" - -#: c-api/intro.rst:276 -msgid "" -"Similar to :samp:`{integer} >> {positions}`, but forces sign extension, as " -"the C standard does not define whether a right-shift of a signed integer " -"will perform sign extension or a zero-fill." -msgstr "" - -#: c-api/intro.rst:280 -msgid "" -"*integer* should be any signed integer type. *positions* is the number of " -"positions to shift to the right." -msgstr "" - -#: c-api/intro.rst:283 -msgid "" -"Both *integer* and *positions* can be evaluated more than once; " -"consequently, avoid directly passing a function call or some other operation " -"with side-effects to this macro. Instead, store the result as a variable and " -"then pass it." -msgstr "" - -#: c-api/intro.rst:288 -msgid "" -"*type* is unused and only kept for backwards compatibility. Historically, " -"*type* was used to cast *integer*." -msgstr "" - -#: c-api/intro.rst:293 -msgid "" -"This macro is now valid for all signed integer types, not just those for " -"which ``unsigned type`` is legal. As a result, *type* is no longer used." -msgstr "" - -#: c-api/intro.rst:299 -msgid "" -"Argument must be a character or an integer in the range [-128, 127] or [0, " -"255]. This macro returns ``c`` cast to an ``unsigned char``." -msgstr "" - -#: c-api/intro.rst:304 -msgid "Assertion utilities" -msgstr "" - -#: c-api/intro.rst:308 -msgid "" -"Use this when you have a code path that cannot be reached by design. For " -"example, in the ``default:`` clause in a ``switch`` statement for which all " -"possible values are covered in ``case`` statements. Use this in places " -"where you might be tempted to put an ``assert(0)`` or ``abort()`` call." -msgstr "" - -#: c-api/intro.rst:313 -msgid "" -"In release mode, the macro helps the compiler to optimize the code, and " -"avoids a warning about unreachable code. For example, the macro is " -"implemented with ``__builtin_unreachable()`` on GCC in release mode." -msgstr "" - -#: c-api/intro.rst:317 -msgid "" -"In debug mode, and on unsupported compilers, the macro expands to a call " -"to :c:func:`Py_FatalError`." -msgstr "" - -#: c-api/intro.rst:320 -msgid "" -"A use for ``Py_UNREACHABLE()`` is following a call to a function that never " -"returns but that is not declared ``_Noreturn``." -msgstr "" - -#: c-api/intro.rst:323 -msgid "" -"If a code path is very unlikely code but can be reached under exceptional " -"case, this macro must not be used. For example, under low memory condition " -"or if a system call returns a value out of the expected range. In this " -"case, it's better to report the error to the caller. If the error cannot be " -"reported to caller, :c:func:`Py_FatalError` can be used." -msgstr "" - -#: c-api/intro.rst:333 -msgid "" -"Cast *value* to type *smaller* from type *larger*, validating that no " -"information was lost." -msgstr "" - -#: c-api/intro.rst:336 -msgid "" -"On release builds of Python, this is roughly equivalent " -"to :samp:`(({smaller}) {value})` (in C++, :samp:`static_cast<{smaller}" -">({value})` will be used instead)." -msgstr "" - -#: c-api/intro.rst:340 -msgid "" -"On debug builds (implying that :c:macro:`Py_DEBUG` is defined), this asserts " -"that no information was lost with the cast from *larger* to *smaller*." -msgstr "" - -#: c-api/intro.rst:343 -msgid "" -"*value*, *larger*, and *smaller* may all be evaluated more than once in the " -"expression; consequently, do not pass an expression with side-effects " -"directly to this macro." -msgstr "" - -#: c-api/intro.rst:349 -msgid "" -"Asserts a compile-time condition *cond*, as a statement. The build will fail " -"if the condition is false or cannot be evaluated at compile time." -msgstr "" - -#: c-api/intro.rst:352 -msgid "Corresponds roughly to :samp:`static_assert({cond})` on C23 and above." -msgstr "" - -#: c-api/intro.rst:362 -msgid "" -"Asserts a compile-time condition *cond*, as an expression that evaluates to " -"``0``. The build will fail if the condition is false or cannot be evaluated " -"at compile time." -msgstr "" - -#: c-api/intro.rst:374 -msgid "Type size utilities" -msgstr "" - -#: c-api/intro.rst:378 -msgid "Compute the length of a statically allocated C array at compile time." -msgstr "" - -#: c-api/intro.rst:380 -msgid "" -"The *array* argument must be a C array with a size known at compile time. " -"Passing an array with an unknown size, such as a heap-allocated array, will " -"result in a compilation error on some compilers, or otherwise produce " -"incorrect results." -msgstr "" - -#: c-api/intro.rst:385 -msgid "This is roughly equivalent to::" -msgstr "" - -#: c-api/intro.rst:391 -msgid "Return the size of a structure (*type*) *member* in bytes." -msgstr "" - -#: c-api/intro.rst:393 -msgid "Corresponds roughly to :samp:`sizeof((({type} *)NULL)->{member})`." -msgstr "" - -#: c-api/intro.rst:399 -msgid "Macro definition utilities" -msgstr "" - -#: c-api/intro.rst:403 -msgid "" -"This is equivalent to :samp:`{X}`, which is useful for token-pasting in " -"macros, as macro expansions in *X* are forcefully evaluated by the " -"preprocessor." -msgstr "" - -#: c-api/intro.rst:409 -msgid "" -"Convert ``x`` to a C string. For example, ``Py_STRINGIFY(123)`` returns " -"``\"123\"``." -msgstr "" - -#: c-api/intro.rst:416 -msgid "Declaration utilities" -msgstr "" - -#: c-api/intro.rst:418 -msgid "" -"The following macros can be used in declarations. They are most useful for " -"defining the C API itself, and have limited use for extension authors. Most " -"of them expand to compiler-specific spellings of common extensions to the C " -"language." -msgstr "" - -#: c-api/intro.rst:426 -msgid "" -"Ask the compiler to always inline a static inline function. The compiler can " -"ignore it and decide to not inline the function." -msgstr "" - -#: c-api/intro.rst:429 -msgid "" -"Corresponds to ``always_inline`` attribute in GCC and ``__forceinline`` in " -"MSVC." -msgstr "" - -#: c-api/intro.rst:432 -msgid "" -"It can be used to inline performance critical static inline functions when " -"building Python in debug mode with function inlining disabled. For example, " -"MSC disables function inlining when building in debug mode." -msgstr "" - -#: c-api/intro.rst:436 -msgid "" -"Marking blindly a static inline function with Py_ALWAYS_INLINE can result in " -"worse performances (due to increased code size for example). The compiler is " -"usually smarter than the developer for the cost/benefit analysis." -msgstr "" - -#: c-api/intro.rst:440 -msgid "" -"If Python is :ref:`built in debug mode ` (if " -"the :c:macro:`Py_DEBUG` macro is defined), the :c:macro:`Py_ALWAYS_INLINE` " -"macro does nothing." -msgstr "" - -#: c-api/intro.rst:443 -msgid "It must be specified before the function return type. Usage::" -msgstr "" - -#: c-api/intro.rst:451 -msgid "" -"Disable inlining on a function. For example, it reduces the C stack " -"consumption: useful on LTO+PGO builds which heavily inline code " -"(see :issue:`33720`)." -msgstr "" - -#: c-api/intro.rst:455 -msgid "" -"Corresponds to the ``noinline`` attribute/specification on GCC and MSVC." -msgstr "" - -#: c-api/intro.rst:457 -msgid "Usage::" -msgstr "Utilisation ::" - -#: c-api/intro.rst:465 -msgid "" -"Use this to declare APIs that were deprecated in a specific CPython version. " -"The macro must be placed before the symbol name." -msgstr "" - -#: c-api/intro.rst:472 -msgid "MSVC support was added." -msgstr "" - -#: c-api/intro.rst:477 -msgid "" -"Declare a function returning the specified *type* using a fast-calling " -"qualifier for functions that are local to the current file. Semantically, " -"this is equivalent to :samp:`static {type}`." -msgstr "" - -#: c-api/intro.rst:483 -msgid "" -"Equivalent to :c:macro:`Py_LOCAL` but additionally requests the function be " -"inlined." -msgstr "" - -#: c-api/intro.rst:488 -msgid "" -"Macro used to declare a symbol as local to the shared library (hidden). On " -"supported platforms, it ensures the symbol is not exported." -msgstr "" - -#: c-api/intro.rst:491 -msgid "" -"On compatible versions of GCC/Clang, it expands to " -"``__attribute__((visibility(\"hidden\")))``." -msgstr "" - -#: c-api/intro.rst:496 -msgid "" -"Macro used to declare a symbol (function or data) as exported. On Windows, " -"this expands to ``__declspec(dllexport)``. On compatible versions of GCC/" -"Clang, it expands to ``__attribute__((visibility(\"default\")))``. This " -"macro is for defining the C API itself; extension modules should not use it." -msgstr "" - -#: c-api/intro.rst:505 -msgid "" -"Macro used to declare a symbol as imported. On Windows, this expands to " -"``__declspec(dllimport)``. This macro is for defining the C API itself; " -"extension modules should not use it." -msgstr "" - -#: c-api/intro.rst:512 -msgid "" -"Macro used by CPython to declare a function as part of the C API. Its " -"expansion depends on the platform and build configuration. This macro is " -"intended for defining CPython's C API itself; extension modules should not " -"use it for their own symbols." -msgstr "" - -#: c-api/intro.rst:520 -msgid "" -"Macro used by CPython to declare a public global variable as part of the C " -"API. Its expansion depends on the platform and build configuration. This " -"macro is intended for defining CPython's C API itself; extension modules " -"should not use it for their own symbols." -msgstr "" - -#: c-api/intro.rst:527 -msgid "Outdated macros" -msgstr "" - -#: c-api/intro.rst:529 -msgid "" -"The following :term:`soft deprecated` macros have been used to features that " -"have been standardized in C11 (or previous standards)." -msgstr "" - -#: c-api/intro.rst:534 -msgid "" -"On some GCC-like compilers, specify alignment to *num* bytes. This does " -"nothing on other compilers." -msgstr "" - -#: c-api/intro.rst:537 -msgid "Use the standard ``alignas`` specifier rather than this macro." -msgstr "" - -#: c-api/intro.rst:543 -msgid "" -"The :c:func:`printf` formatting modifier for :c:type:`size_t`. Use ``\"z\"`` " -"directly instead." -msgstr "" - -#: c-api/intro.rst:551 -msgid "" -"Use *number* as a ``long long`` or ``unsigned long long`` integer literal, " -"respectively." -msgstr "" - -#: c-api/intro.rst:554 -msgid "" -"Expands to *number* followed by ``LL`` or ``LLU``, respectively, but will " -"expand to some compiler-specific suffixes on some older compilers." -msgstr "" - -#: c-api/intro.rst:557 -msgid "Consider using the C99 standard suffixes ``LL`` and ``LLU`` directly." -msgstr "" - -#: c-api/intro.rst:567 -msgid "" -"Aliases for the types :c:type:`!long long`, :c:type:`!int32_t`, :c:type:`!" -"uint32_t`. :c:type:`!int64_t` and :c:type:`!uint64_t`, respectively. " -"Historically, these types needed compiler-specific extensions." -msgstr "" - -#: c-api/intro.rst:579 -msgid "" -"Aliases for the values :c:macro:`!LLONG_MIN`, :c:macro:`!" -"LLONG_MAX`, :c:macro:`!ULLONG_MAX`, and :c:macro:`!SIZE_MAX`, respectively. " -"Use these standard names instead." -msgstr "" - -#: c-api/intro.rst:583 -msgid "" -"The required header, ````, :ref:`is included ` in ``Python.h``." -msgstr "" - -#: c-api/intro.rst:590 -msgid "This is an alias to :c:func:`!memcpy`." -msgstr "" - -#: c-api/intro.rst:592 -msgid "Use :c:func:`!memcpy` directly instead." -msgstr "" - -#: c-api/intro.rst:597 -msgid "" -"Size of the :c:type:`!wchar_t` type. Use ``sizeof(wchar_t)`` or " -"``WCHAR_WIDTH/8`` instead." -msgstr "" - -#: c-api/intro.rst:600 -msgid "" -"The required header for the latter, ````, :ref:`is included ` in ``Python.h``." -msgstr "" - -#: c-api/intro.rst:607 -msgid "" -"Defined if ``wchar_t`` can hold a Unicode character (UCS-4). Use " -"``sizeof(wchar_t) >= 4`` instead" -msgstr "" - -#: c-api/intro.rst:614 -msgid "This is an alias to the C99-standard ``va_copy`` function." -msgstr "" - -#: c-api/intro.rst:616 -msgid "" -"Historically, this would use a compiler-specific method to copy a " -"``va_list``." -msgstr "" - -#: c-api/intro.rst:618 -msgid "This is now an alias to ``va_copy``." -msgstr "" - -#: c-api/intro.rst:627 -msgid "Objects, Types and Reference Counts" -msgstr "" - -#: c-api/intro.rst:631 -msgid "" -"Most Python/C API functions have one or more arguments as well as a return " -"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: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." -msgstr "" - -#: c-api/intro.rst:642 -msgid "" -"All Python objects (even Python integers) have a :dfn:`type` and " -"a :dfn:`reference count`. An object's type determines what kind of object " -"it is (e.g., an integer, a list, or a user-defined function; there are many " -"more as explained in :ref:`types`). For each of the well-known types there " -"is a macro to check whether an object is of that type; for instance, " -"``PyList_Check(a)`` is true if (and only if) the object pointed to by *a* is " -"a Python list." -msgstr "" - -#: c-api/intro.rst:653 -msgid "Reference Counts" -msgstr "Compteurs de références" - -#: c-api/intro.rst:655 -msgid "" -"The reference count is important because today's computers have a finite " -"(and often severely limited) memory size; it counts how many different " -"places there are that have a :term:`strong reference` to an object. Such a " -"place could be another object, or a global (or static) C variable, or a " -"local variable in some C function. When the last :term:`strong reference` to " -"an object is released (i.e. its reference count becomes zero), the object is " -"deallocated. If it contains references to other objects, those references " -"are released. Those other objects may be deallocated in turn, if there are " -"no more references to them, and so on. (There's an obvious problem with " -"objects that reference each other here; for now, the solution is \"don't do " -"that.\")" -msgstr "" - -#: c-api/intro.rst:672 -msgid "" -"Reference counts are always manipulated explicitly. The normal way is to " -"use the macro :c:func:`Py_INCREF` to take a new reference to an object (i.e. " -"increment its reference count by one), and :c:func:`Py_DECREF` to release " -"that reference (i.e. decrement the reference count by one). " -"The :c:func:`Py_DECREF` macro is considerably more complex than the incref " -"one, since it must check whether the reference count becomes zero and then " -"cause the object's deallocator to be called. The deallocator is a function " -"pointer contained in the object's type structure. The type-specific " -"deallocator takes care of releasing references for other objects contained " -"in the object if this is a compound object type, such as a list, as well as " -"performing any additional finalization that's needed. There's no chance " -"that the reference count can overflow; at least as many bits are used to " -"hold the reference count as there are distinct memory locations in virtual " -"memory (assuming ``sizeof(Py_ssize_t) >= sizeof(void*)``). Thus, the " -"reference count increment is a simple operation." -msgstr "" - -#: c-api/intro.rst:688 -msgid "" -"It is not necessary to hold a :term:`strong reference` (i.e. increment the " -"reference count) for every local variable that contains a pointer to an " -"object. In theory, the object's reference count goes up by one when the " -"variable is made to point to it and it goes down by one when the variable " -"goes out of scope. However, these two cancel each other out, so at the end " -"the reference count hasn't changed. The only real reason to use the " -"reference count is to prevent the object from being deallocated as long as " -"our variable is pointing to it. If we know that there is at least one " -"other reference to the object that lives at least as long as our variable, " -"there is no need to take a new :term:`strong reference` (i.e. increment the " -"reference count) temporarily. An important situation where this arises is in " -"objects that are passed as arguments to C functions in an extension module " -"that are called from Python; the call mechanism guarantees to hold a " -"reference to every argument for the duration of the call." -msgstr "" - -#: c-api/intro.rst:704 -msgid "" -"However, a common pitfall is to extract an object from a list and hold on to " -"it for a while without taking a new reference. Some other operation might " -"conceivably remove the object from the list, releasing that reference, and " -"possibly deallocating it. The real danger is that innocent-looking " -"operations may invoke arbitrary Python code which could do this; there is a " -"code path which allows control to flow back to the user from " -"a :c:func:`Py_DECREF`, so almost any operation is potentially dangerous." -msgstr "" - -#: c-api/intro.rst:712 -msgid "" -"A safe approach is to always use the generic operations (functions whose " -"name begins with ``PyObject_``, ``PyNumber_``, ``PySequence_`` or " -"``PyMapping_``). These operations always create a new :term:`strong " -"reference` (i.e. increment the reference count) of the object they return. " -"This leaves the caller with the responsibility to call :c:func:`Py_DECREF` " -"when they are done with the result; this soon becomes second nature." -msgstr "" - -#: c-api/intro.rst:723 -msgid "Reference Count Details" -msgstr "" - -#: c-api/intro.rst:725 -msgid "" -"The reference count behavior of functions in the Python/C API is best " -"explained in terms of *ownership of references*. Ownership pertains to " -"references, never to objects (objects are not owned: they are always " -"shared). \"Owning a reference\" means being responsible for calling " -"Py_DECREF on it when the reference is no longer needed. Ownership can also " -"be transferred, meaning that the code that receives ownership of the " -"reference then becomes responsible for eventually releasing it by " -"calling :c:func:`Py_DECREF` or :c:func:`Py_XDECREF` when it's no longer " -"needed---or passing on this responsibility (usually to its caller). When a " -"function passes ownership of a reference on to its caller, the caller is " -"said to receive a *new* reference. When no ownership is transferred, the " -"caller is said to *borrow* the reference. Nothing needs to be done for " -"a :term:`borrowed reference`." -msgstr "" - -#: c-api/intro.rst:738 -msgid "" -"Conversely, when a calling function passes in a reference to an object, " -"there are two possibilities: the function *steals* a reference to the " -"object, or it does not. *Stealing a reference* means that when you pass a " -"reference to a function, that function assumes that it now owns that " -"reference, and you are not responsible for it any longer." -msgstr "" - -#: c-api/intro.rst:748 -msgid "" -"Few functions steal references; the two notable exceptions " -"are :c:func:`PyList_SetItem` and :c:func:`PyTuple_SetItem`, which steal a " -"reference to the item (but not to the tuple or list into which the item is " -"put!). These functions were designed to steal a reference because of a " -"common idiom for populating a tuple or list with newly created objects; for " -"example, the code to create the tuple ``(1, 2, \"three\")`` could look like " -"this (forgetting about error handling for the moment; a better way to code " -"this is shown below)::" -msgstr "" - -#: c-api/intro.rst:763 -msgid "" -"Here, :c:func:`PyLong_FromLong` returns a new reference which is immediately " -"stolen by :c:func:`PyTuple_SetItem`. When you want to keep using an object " -"although the reference to it will be stolen, use :c:func:`Py_INCREF` to grab " -"another reference before calling the reference-stealing function." -msgstr "" - -#: c-api/intro.rst:768 -msgid "" -"Incidentally, :c:func:`PyTuple_SetItem` is the *only* way to set tuple " -"items; :c:func:`PySequence_SetItem` and :c:func:`PyObject_SetItem` refuse to " -"do this since tuples are an immutable data type. You should only " -"use :c:func:`PyTuple_SetItem` for tuples that you are creating yourself." -msgstr "" - -#: c-api/intro.rst:773 -msgid "" -"Equivalent code for populating a list can be written " -"using :c:func:`PyList_New` and :c:func:`PyList_SetItem`." -msgstr "" - -#: c-api/intro.rst:776 -msgid "" -"However, in practice, you will rarely use these ways of creating and " -"populating a tuple or list. There's a generic " -"function, :c:func:`Py_BuildValue`, that can create most common objects from " -"C values, directed by a :dfn:`format string`. For example, the above two " -"blocks of code could be replaced by the following (which also takes care of " -"the error checking)::" -msgstr "" - -#: c-api/intro.rst:787 -msgid "" -"It is much more common to use :c:func:`PyObject_SetItem` and friends with " -"items whose references you are only borrowing, like arguments that were " -"passed in to the function you are writing. In that case, their behaviour " -"regarding references is much saner, since you don't have to take a new " -"reference just so you can give that reference away (\"have it be stolen\"). " -"For example, this function sets all items of a list (actually, any mutable " -"sequence) to a given item::" -msgstr "" - -#: c-api/intro.rst:817 -msgid "" -"The situation is slightly different for function return values. While " -"passing a reference to most functions does not change your ownership " -"responsibilities for that reference, many functions that return a reference " -"to an object give you ownership of the reference. The reason is simple: in " -"many cases, the returned object is created on the fly, and the reference " -"you get is the only reference to the object. Therefore, the generic " -"functions that return object references, like :c:func:`PyObject_GetItem` " -"and :c:func:`PySequence_GetItem`, always return a new reference (the caller " -"becomes the owner of the reference)." -msgstr "" - -#: c-api/intro.rst:826 -msgid "" -"It is important to realize that whether you own a reference returned by a " -"function depends on which function you call only --- *the plumage* (the type " -"of the object passed as an argument to the function) *doesn't enter into it!" -"* Thus, if you extract an item from a list using :c:func:`PyList_GetItem`, " -"you don't own the reference --- but if you obtain the same item from the " -"same list using :c:func:`PySequence_GetItem` (which happens to take exactly " -"the same arguments), you do own a reference to the returned object." -msgstr "" - -#: c-api/intro.rst:838 -msgid "" -"Here is an example of how you could write a function that computes the sum " -"of the items in a list of integers; once using :c:func:`PyList_GetItem`, " -"and once using :c:func:`PySequence_GetItem`. ::" -msgstr "" - -#: c-api/intro.rst:902 -msgid "Types" -msgstr "" - -#: c-api/intro.rst:904 -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: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:914 -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:923 -msgid "Exceptions" -msgstr "Exceptions" - -#: c-api/intro.rst:925 -msgid "" -"The Python programmer only needs to deal with exceptions if specific error " -"handling is required; unhandled exceptions are automatically propagated to " -"the caller, then to the caller's caller, and so on, until they reach the top-" -"level interpreter, where they are reported to the user accompanied by a " -"stack traceback." -msgstr "" - -#: c-api/intro.rst:933 -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 " -"is made otherwise in a function's documentation. In general, when a " -"function encounters an error, it sets an exception, discards any object " -"references that it owns, and returns an error indicator. If not documented " -"otherwise, this indicator is either ``NULL`` or ``-1``, depending on the " -"function's return type. A few functions return a Boolean true/false result, " -"with false indicating an error. Very few functions return no explicit error " -"indicator or have an ambiguous return value, and require explicit testing " -"for errors with :c:func:`PyErr_Occurred`. These exceptions are always " -"explicitly documented." -msgstr "" - -#: c-api/intro.rst:948 -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 " -"of two states: an exception has occurred, or not. The " -"function :c:func:`PyErr_Occurred` can be used to check for this: it returns " -"a borrowed reference to the exception type object when an exception has " -"occurred, and ``NULL`` otherwise. There are a number of functions to set " -"the exception state: :c:func:`PyErr_SetString` is the most common (though " -"not the most general) function to set the exception state, " -"and :c:func:`PyErr_Clear` clears the exception state." -msgstr "" - -#: c-api/intro.rst:958 -msgid "" -"The full exception state consists of three objects (all of which can be " -"``NULL``): the exception type, the corresponding exception value, and the " -"traceback. These have the same meanings as the Python result of " -"``sys.exc_info()``; however, they are not the same: the Python objects " -"represent the last exception being handled by a " -"Python :keyword:`try` ... :keyword:`except` statement, while the C level " -"exception state only exists while an exception is being passed on between C " -"functions until it reaches the Python bytecode interpreter's main loop, " -"which takes care of transferring it to ``sys.exc_info()`` and friends." -msgstr "" - -#: c-api/intro.rst:970 -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.exc_info`, which returns the per-thread exception state " -"for Python code. Also, the semantics of both ways to access the exception " -"state have changed so that a function which catches an exception will save " -"and restore its thread's exception state so as to preserve the exception " -"state of its caller. This prevents common bugs in exception handling code " -"caused by an innocent-looking function overwriting the exception being " -"handled; it also reduces the often unwanted lifetime extension for objects " -"that are referenced by the stack frames in the traceback." -msgstr "" - -#: c-api/intro.rst:981 -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 " -"if so, pass the exception state on to its caller. It should discard any " -"object references that it owns, and return an error indicator, but it " -"should *not* set another exception --- that would overwrite the exception " -"that was just raised, and lose important information about the exact cause " -"of the error." -msgstr "" - -#: c-api/intro.rst:990 -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 " -"doesn't need to clean up any owned references when it detects an error. The " -"following example function shows some error cleanup. First, to remind you " -"why you like Python, we show the equivalent Python code::" -msgstr "" - -#: c-api/intro.rst:1005 -msgid "Here is the corresponding C code, in all its glory::" -msgstr "" - -#: c-api/intro.rst:1057 -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:`PyErr_Clear` to handle specific exceptions, and the use " -"of :c:func:`Py_XDECREF` to dispose of owned references that may be ``NULL`` " -"(note the ``'X'`` in the name; :c:func:`Py_DECREF` would crash when " -"confronted with a ``NULL`` reference). It is important that the variables " -"used to hold owned references are initialized to ``NULL`` for this to work; " -"likewise, the proposed return value is initialized to ``-1`` (failure) and " -"only set to success after the final call made is successful." -msgstr "" - -#: c-api/intro.rst:1071 -msgid "Embedding Python" -msgstr "Embarquer Python" - -#: c-api/intro.rst:1073 -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 " -"possibly the finalization, of the Python interpreter. Most functionality of " -"the interpreter can only be used after the interpreter has been initialized." -msgstr "" - -#: c-api/intro.rst:1086 -msgid "" -"The basic initialization function is :c:func:`Py_Initialize`. This " -"initializes the table of loaded modules, and creates the fundamental " -"modules :mod:`builtins`, :mod:`__main__`, and :mod:`sys`. It also " -"initializes the module search path (``sys.path``)." -msgstr "" - -#: c-api/intro.rst:1091 -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 later, setting :c:member:`PyConfig.argv` " -"and :c:member:`PyConfig.parse_argv` must be set: see :ref:`Python " -"Initialization Configuration `." -msgstr "" - -#: c-api/intro.rst:1096 -msgid "" -"On most systems (in particular, on Unix and Windows, although the details " -"are slightly different), :c:func:`Py_Initialize` calculates the module " -"search path based upon its best guess for the location of the standard " -"Python interpreter executable, assuming that the Python library is found in " -"a fixed location relative to the Python interpreter executable. In " -"particular, it looks for a directory named :file:`lib/python{X.Y}` relative " -"to the parent directory where the executable named :file:`python` is found " -"on the shell command search path (the environment variable :envvar:`PATH`)." -msgstr "" - -#: c-api/intro.rst:1105 -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/" -"python{X.Y}`. (In fact, this particular path is also the \"fallback\" " -"location, used when no executable file named :file:`python` is found " -"along :envvar:`PATH`.) The user can override this behavior by setting the " -"environment variable :envvar:`PYTHONHOME`, or insert additional directories " -"in front of the standard path by setting :envvar:`PYTHONPATH`." -msgstr "" - -#: c-api/intro.rst:1113 -msgid "" -"The embedding application can steer the search by " -"setting :c:member:`PyConfig.program_name` *before* " -"calling :c:func:`Py_InitializeFromConfig`. Note that :envvar:`PYTHONHOME` " -"still overrides this and :envvar:`PYTHONPATH` is still inserted in front of " -"the standard path." -msgstr "" - -#: c-api/intro.rst:1121 -msgid "" -"Sometimes, it is desirable to \"uninitialize\" Python. For instance, the " -"application may want to start over (make another call " -"to :c:func:`Py_Initialize`) or the application is simply done with its use " -"of Python and wants to free memory allocated by Python. This can be " -"accomplished by calling :c:func:`Py_FinalizeEx`. The " -"function :c:func:`Py_IsInitialized` returns true if Python is currently in " -"the initialized state. More information about these functions is given in a " -"later chapter. Notice that :c:func:`Py_FinalizeEx` does *not* free all " -"memory allocated by the Python interpreter, e.g. memory allocated by " -"extension modules currently cannot be released." -msgstr "" - -#: c-api/intro.rst:1135 -msgid "Debugging Builds" -msgstr "" - -#: c-api/intro.rst:1137 -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:1141 -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 " -"section." -msgstr "" - -#: c-api/intro.rst:1149 -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:1152 -msgid "" -"On Unix, :c:macro:`!Py_DEBUG` can be enabled by adding :option:`--with-" -"pydebug` to the :file:`./configure` command. This will also disable compiler " -"optimization." -msgstr "" - -#: c-api/intro.rst:1155 -msgid "" -"On Windows, selecting a debug build (e.g., by passing the :option:`-d` " -"option to :file:`PCbuild/build.bat`) automatically enables :c:macro:`!" -"Py_DEBUG`. Additionally, the presence of the not-Python-specific :c:macro:`!" -"_DEBUG` macro, when defined by the compiler, will also implicitly " -"enable :c:macro:`!Py_DEBUG`." -msgstr "" - -#: c-api/intro.rst:1160 -msgid "" -"In addition to the reference count debugging described below, extra checks " -"are performed. See :ref:`Python Debug Build ` for more details." -msgstr "" - -#: c-api/intro.rst:1163 -msgid "" -"Defining :c:macro:`Py_TRACE_REFS` enables reference tracing (see " -"the :option:`configure --with-trace-refs option <--with-trace-refs>`). When " -"defined, a circular doubly linked list of active objects is maintained by " -"adding two extra fields to every :c:type:`PyObject`. Total allocations are " -"tracked as well. Upon exit, all existing references are printed. (In " -"interactive mode this happens after every statement run by the interpreter.)" -msgstr "" - -#: c-api/intro.rst:1170 -msgid "" -"Please refer to :file:`Misc/SpecialBuilds.txt` in the Python source " -"distribution for more detailed information." -msgstr "" - -#: c-api/intro.rst:1177 -msgid "Recommended third party tools" -msgstr "Les outils tiers recommandés" - -#: c-api/intro.rst:1179 -msgid "" -"The following third party tools offer both simpler and more sophisticated " -"approaches to creating C, C++ and Rust extensions for Python:" -msgstr "" - -#: c-api/intro.rst:1182 -msgid "`Cython `_" -msgstr "" - -#: c-api/intro.rst:1183 -msgid "`cffi `_" -msgstr "" - -#: c-api/intro.rst:1184 -msgid "`HPy `_" -msgstr "" - -#: c-api/intro.rst:1185 -msgid "`nanobind `_ (C++)" -msgstr "" - -#: c-api/intro.rst:1186 -msgid "`Numba `_" -msgstr "" - -#: c-api/intro.rst:1187 -msgid "`pybind11 `_ (C++)" -msgstr "" - -#: c-api/intro.rst:1188 -msgid "`PyO3 `_ (Rust)" -msgstr "" - -#: c-api/intro.rst:1189 -msgid "`SWIG `_" -msgstr "" - -#: c-api/intro.rst:1191 -msgid "" -"Using tools such as these can help avoid writing code that is tightly bound " -"to a particular version of CPython, avoid reference counting errors, and " -"focus more on your own code than on using the CPython API. In general, new " -"versions of Python can be supported by updating the tool, and your code will " -"often use newer and more efficient APIs automatically. Some tools also " -"support compiling for other implementations of Python from a single set of " -"sources." -msgstr "" - -#: c-api/intro.rst:1198 -msgid "" -"These projects are not supported by the same people who maintain Python, and " -"issues need to be raised with the projects directly. Remember to check that " -"the project is still maintained and supported, as the list above may become " -"outdated." -msgstr "" - -#: c-api/intro.rst:1205 -msgid "" -"`Python Packaging User Guide: Binary Extensions `_" -msgstr "" -"`Guide d'utilisation de l'empaquetage Python : Extensions binaires `_" - -#: c-api/intro.rst:1206 -msgid "" -"The Python Packaging User Guide not only covers several available tools that " -"simplify the creation of binary extensions, but also discusses the various " -"reasons why creating an extension module may be desirable in the first place." -msgstr "" -"Le guide d'utilisation de l'empaquetage Python ne couvre pas uniquement " -"quelques outils disponibles qui simplifient la création d'extensions " -"binaires, mais aborde aussi les différentes raisons pour lesquelles créer un " -"module d'extension peut être souhaitable d'entrée." - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "type" -#~ msgstr "type" - -#~ msgid "module" -#~ msgstr "module" - -#~ msgid "builtins" -#~ msgstr "builtins" - -#~ msgid "__main__" -#~ msgstr "__main__" - -#~ msgid "sys" -#~ msgstr "*sys*" diff --git a/c-api/iter.po b/c-api/iter.po deleted file mode 100644 index 2dc924aa0c..0000000000 --- a/c-api/iter.po +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-02-15 00:33+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/iter.rst:6 -msgid "Iterator Protocol" -msgstr "Protocole d'itération" - -#: c-api/iter.rst:8 -msgid "There are two functions specifically for working with iterators." -msgstr "Il existe deux fonctions dédiées à l'interaction avec les itérateurs." - -#: c-api/iter.rst:12 -#, fuzzy -msgid "" -"Return non-zero if the object *o* can be safely passed " -"to :c:func:`PyIter_NextItem` and ``0`` otherwise. This function always " -"succeeds." -msgstr "Renvoie vrai si l'objet *o* supporte le protocole d'itération." - -#: c-api/iter.rst:18 -#, fuzzy -msgid "" -"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:25 -msgid "" -"Return ``1`` and set *item* to a :term:`strong reference` of the next value " -"of the iterator *iter* on success. Return ``0`` and set *item* to ``NULL`` " -"if there are no remaining values. Return ``-1``, set *item* to ``NULL`` and " -"set an exception on error." -msgstr "" - -#: c-api/iter.rst:34 -msgid "" -"This is an older version of :c:func:`!PyIter_NextItem`, which is retained " -"for backwards compatibility. Prefer :c:func:`PyIter_NextItem`." -msgstr "" - -#: c-api/iter.rst:38 -#, fuzzy -msgid "" -"Return the next value from the iterator *o*. The object must be an iterator " -"according to :c:func:`PyIter_Check` (it is up to the caller to check this). " -"If there are no remaining values, returns ``NULL`` with no exception set. If " -"an error occurs while retrieving the item, returns ``NULL`` and passes along " -"the exception." -msgstr "" -"Renvoie la valeur suivante d'une itération de *o*. L'objet doit être un " -"itérateur (c'est à l'appelant de faire cette vérification). Renvoie *NULL* " -"s'il n'y a plus de valeurs, sans déclarer d'exception. Renvoie *NULL* en " -"déclarant une exception si une erreur survient lors de la récupération d'un " -"élément." - -#: c-api/iter.rst:46 -msgid "" -"The enum value used to represent different results of :c:func:`PyIter_Send`." -msgstr "" - -#: c-api/iter.rst:53 -msgid "Sends the *arg* value into the iterator *iter*. Returns:" -msgstr "" - -#: c-api/iter.rst:55 -msgid "" -"``PYGEN_RETURN`` if iterator returns. Return value is returned via *presult*." -msgstr "" - -#: c-api/iter.rst:56 -msgid "" -"``PYGEN_NEXT`` if iterator yields. Yielded value is returned via *presult*." -msgstr "" - -#: c-api/iter.rst:57 -msgid "" -"``PYGEN_ERROR`` if iterator has raised an exception. *presult* is set to " -"``NULL``." -msgstr "" - -#~ msgid "" -#~ "To write a loop which iterates over an iterator, the C code should look " -#~ "something like this::" -#~ msgstr "" -#~ "Pour écrire une boucle itérant un itérateur, le code C devrait ressembler " -#~ "à ::" diff --git a/c-api/iterator.po b/c-api/iterator.po deleted file mode 100644 index 839b932ca7..0000000000 --- a/c-api/iterator.po +++ /dev/null @@ -1,165 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-03-26 17:16+0100\n" -"Last-Translator: ANTOINE FOURES \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" - -#: c-api/iterator.rst:6 -msgid "Iterator Objects" -msgstr "Itérateurs" - -#: c-api/iterator.rst:8 -#, fuzzy -msgid "" -"Python provides two general-purpose iterator objects. The first, a sequence " -"iterator, works with an arbitrary sequence supporting " -"the :meth:`~object.__getitem__` method. The second works with a callable " -"object and a sentinel value, calling the callable for each item in the " -"sequence, and ending the iteration when the sentinel value is returned." -msgstr "" -"Python fournit deux itérateurs d'usage générique. Le premier est un " -"itérateur de séquence, il fonctionne avec n'importe quelle séquence " -"implémentant la méthode :meth:`__getitem__`. Le second fonctionne avec un " -"objet appelable et une valeur sentinelle, l'appelable permet d'obtenir " -"chaque élément de la séquence, et l'itération se termine lorsque la " -"sentinelle est atteinte." - -#: c-api/iterator.rst:17 -msgid "" -"Type object for iterator objects returned by :c:func:`PySeqIter_New` and the " -"one-argument form of the :func:`iter` built-in function for built-in " -"sequence types." -msgstr "" -"Type des itérateurs renvoyés par les fonctions :c:func:`PySeqIter_New` et la " -"forme à un argument de la fonction native :func:`iter` pour les séquences " -"natives." - -#: c-api/iterator.rst:24 -#, fuzzy -msgid "" -"Return true if the type of *op* is :c:data:`PySeqIter_Type`. This function " -"always succeeds." -msgstr "Renvoie vrai si *op* est de type :c:data:`PySeqIter_Type`." - -#: c-api/iterator.rst:30 -msgid "" -"Return an iterator that works with a general sequence object, *seq*. The " -"iteration ends when the sequence raises :exc:`IndexError` for the " -"subscripting operation." -msgstr "" -"Renvoie un itérateur sur la séquence *seq*. L'itération prend fin lorsque la " -"séquence lève :exc:`IndexError` lors d'une tentative d'accès." - -#: c-api/iterator.rst:37 -msgid "" -"Type object for iterator objects returned by :c:func:`PyCallIter_New` and " -"the two-argument form of the :func:`iter` built-in function." -msgstr "" -"Type de l'itérateur renvoyé par les fonctions :c:func:`PyCallIter_New` " -"et :func:`iter` à deux arguments." - -#: c-api/iterator.rst:43 -#, fuzzy -msgid "" -"Return true if the type of *op* is :c:data:`PyCallIter_Type`. This function " -"always succeeds." -msgstr "Renvoie vrai si *op* est de type :c:data:`PyCallIter_Type`." - -#: c-api/iterator.rst:49 -msgid "" -"Return a new iterator. The first parameter, *callable*, can be any Python " -"callable object that can be called with no parameters; each call to it " -"should return the next item in the iteration. When *callable* returns a " -"value equal to *sentinel*, the iteration will be terminated." -msgstr "" -"Renvoie un nouvel itérateur. Le premier paramètre, *callable*, peut être " -"n'importe quel objet Python appelable sans aucun paramètre ; chaque appel " -"doit renvoyer l'élément suivant de l'itération. Lorsque *callable* renvoie " -"une valeur égale à *sentinel*, l'itération prend fin." - -#: c-api/iterator.rst:56 -#, fuzzy -msgid "Range Objects" -msgstr "Itérateurs" - -#: c-api/iterator.rst:60 -msgid "The type object for :class:`range` objects." -msgstr "" - -#: c-api/iterator.rst:65 -#, fuzzy -msgid "" -"Return true if the object *o* is an instance of a :class:`range` object. " -"This function always succeeds." -msgstr "Renvoie vrai si *op* est de type :c:data:`PySeqIter_Type`." - -#: c-api/iterator.rst:70 -msgid "Builtin Iterator Types" -msgstr "" - -#: c-api/iterator.rst:72 -msgid "" -"These are built-in iteration types that are included in Python's C API, but " -"provide no additional functions. They are here for completeness." -msgstr "" - -#: c-api/iterator.rst:80 -msgid "C type" -msgstr "" - -#: c-api/iterator.rst:81 -msgid "Python type" -msgstr "" - -#: c-api/iterator.rst:83 -msgid ":py:class:`enumerate`" -msgstr "" - -#: c-api/iterator.rst:85 -msgid ":py:class:`filter`" -msgstr "" - -#: c-api/iterator.rst:87 -msgid ":py:class:`map`" -msgstr "" - -#: c-api/iterator.rst:89 -msgid ":py:class:`reversed`" -msgstr "" - -#: c-api/iterator.rst:91 -msgid ":py:class:`zip`" -msgstr "" - -#: c-api/iterator.rst:95 -#, fuzzy -msgid "Other Iterator Objects" -msgstr "Itérateurs" - -#: c-api/iterator.rst:113 -msgid "Type objects for iterators of various built-in objects." -msgstr "" - -#: c-api/iterator.rst:115 -msgid "" -"Do not create instances of these directly; prefer " -"calling :c:func:`PyObject_GetIter` instead." -msgstr "" - -#: c-api/iterator.rst:118 -msgid "" -"Note that there is no guarantee that a given built-in type uses a given " -"iterator type. For example, iterating over :class:`range` will use one of " -"two iterator types depending on the size of the range. Other types may start " -"using a similar scheme in the future, without warning." -msgstr "" diff --git a/c-api/lifecycle.po b/c-api/lifecycle.po deleted file mode 100644 index 67b4967eb6..0000000000 --- a/c-api/lifecycle.po +++ /dev/null @@ -1,363 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/lifecycle.rst:6 -msgid "Object Life Cycle" -msgstr "" - -#: c-api/lifecycle.rst:8 -msgid "" -"This section explains how a type's slots relate to each other throughout the " -"life of an object. It is not intended to be a complete canonical reference " -"for the slots; instead, refer to the slot-specific documentation " -"in :ref:`type-structs` for details about a particular slot." -msgstr "" - -#: c-api/lifecycle.rst:15 -msgid "Life Events" -msgstr "" - -#: c-api/lifecycle.rst:17 -msgid "" -"The figure below illustrates the order of events that can occur throughout " -"an object's life. An arrow from *A* to *B* indicates that event *B* can " -"occur after event *A* has occurred, with the arrow's label indicating the " -"condition that must be true for *B* to occur after *A*." -msgstr "" - -#: c-api/lifecycle.rst:62 -msgid "Diagram showing events in an object's life. Explained in detail below." -msgstr "" - -#: c-api/lifecycle.rst:70 -msgid "Explanation:" -msgstr "" - -#: c-api/lifecycle.rst:72 -msgid "When a new object is constructed by calling its type:" -msgstr "" - -#: c-api/lifecycle.rst:74 -msgid ":c:member:`~PyTypeObject.tp_new` is called to create a new object." -msgstr "" - -#: c-api/lifecycle.rst:75 -msgid "" -":c:member:`~PyTypeObject.tp_alloc` is directly called " -"by :c:member:`~PyTypeObject.tp_new` to allocate the memory for the new " -"object." -msgstr "" - -#: c-api/lifecycle.rst:78 -msgid "" -":c:member:`~PyTypeObject.tp_init` initializes the newly created " -"object. :c:member:`!tp_init` can be called again to re-initialize an object, " -"if desired. The :c:member:`!tp_init` call can also be skipped entirely, for " -"example by Python code calling :py:meth:`~object.__new__`." -msgstr "" - -#: c-api/lifecycle.rst:83 -msgid "After :c:member:`!tp_init` completes, the object is ready to use." -msgstr "" - -#: c-api/lifecycle.rst:84 -msgid "Some time after the last reference to an object is removed:" -msgstr "" - -#: c-api/lifecycle.rst:86 -msgid "" -"If an object is not marked as *finalized*, it might be finalized by marking " -"it as *finalized* and calling its :c:member:`~PyTypeObject.tp_finalize` " -"function. Python does *not* finalize an object when the last reference to " -"it is deleted; use :c:func:`PyObject_CallFinalizerFromDealloc` to ensure " -"that :c:member:`~PyTypeObject.tp_finalize` is always called." -msgstr "" - -#: c-api/lifecycle.rst:92 -msgid "" -"If the object is marked as finalized, :c:member:`~PyTypeObject.tp_clear` " -"might be called by the garbage collector to clear references held by the " -"object. It is *not* called when the object's reference count reaches zero." -msgstr "" - -#: c-api/lifecycle.rst:96 -msgid "" -":c:member:`~PyTypeObject.tp_dealloc` is called to destroy the object. To " -"avoid code duplication, :c:member:`~PyTypeObject.tp_dealloc` typically calls " -"into :c:member:`~PyTypeObject.tp_clear` to free up the object's references." -msgstr "" - -#: c-api/lifecycle.rst:100 -msgid "" -"When :c:member:`~PyTypeObject.tp_dealloc` finishes object destruction, it " -"directly calls :c:member:`~PyTypeObject.tp_free` (usually set " -"to :c:func:`PyObject_Free` or :c:func:`PyObject_GC_Del` automatically as " -"appropriate for the type) to deallocate the memory." -msgstr "" - -#: c-api/lifecycle.rst:105 -msgid "" -"The :c:member:`~PyTypeObject.tp_finalize` function is permitted to add a " -"reference to the object if desired. If it does, the object is " -"*resurrected*, preventing its pending destruction. (Only :c:member:`!" -"tp_finalize` is allowed to resurrect an " -"object; :c:member:`~PyTypeObject.tp_clear` " -"and :c:member:`~PyTypeObject.tp_dealloc` cannot without calling " -"into :c:member:`!tp_finalize`.) Resurrecting an object may or may not cause " -"the object's *finalized* mark to be removed. Currently, Python does not " -"remove the *finalized* mark from a resurrected object if it supports garbage " -"collection (i.e., the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set) but does " -"remove the mark if the object does not support garbage collection; either or " -"both of these behaviors may change in the future." -msgstr "" - -#: c-api/lifecycle.rst:118 -msgid "" -":c:member:`~PyTypeObject.tp_dealloc` can optionally " -"call :c:member:`~PyTypeObject.tp_finalize` " -"via :c:func:`PyObject_CallFinalizerFromDealloc` if it wishes to reuse that " -"code to help with object destruction. This is recommended because it " -"guarantees that :c:member:`!tp_finalize` is always called before " -"destruction. See the :c:member:`~PyTypeObject.tp_dealloc` documentation for " -"example code." -msgstr "" - -#: c-api/lifecycle.rst:125 -msgid "" -"If the object is a member of a :term:`cyclic isolate` and " -"either :c:member:`~PyTypeObject.tp_clear` fails to break the reference cycle " -"or the cyclic isolate is not detected (perhaps :func:`gc.disable` was " -"called, or the :c:macro:`Py_TPFLAGS_HAVE_GC` flag was erroneously omitted in " -"one of the involved types), the objects remain indefinitely uncollectable " -"(they \"leak\"). See :data:`gc.garbage`." -msgstr "" - -#: c-api/lifecycle.rst:132 -msgid "" -"If the object is marked as supporting garbage collection " -"(the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set " -"in :c:member:`~PyTypeObject.tp_flags`), the following events are also " -"possible:" -msgstr "" - -#: c-api/lifecycle.rst:136 -msgid "" -"The garbage collector occasionally " -"calls :c:member:`~PyTypeObject.tp_traverse` to identify :term:`cyclic " -"isolates `." -msgstr "" - -#: c-api/lifecycle.rst:139 -msgid "" -"When the garbage collector discovers a :term:`cyclic isolate`, it finalizes " -"one of the objects in the group by marking it as *finalized* and calling " -"its :c:member:`~PyTypeObject.tp_finalize` function, if it has one. This " -"repeats until the cyclic isolate doesn't exist or all of the objects have " -"been finalized." -msgstr "" - -#: c-api/lifecycle.rst:144 -msgid "" -":c:member:`~PyTypeObject.tp_finalize` is permitted to resurrect the object " -"by adding a reference from outside the :term:`cyclic isolate`. The new " -"reference causes the group of objects to no longer form a cyclic isolate " -"(the reference cycle may still exist, but if it does the objects are no " -"longer isolated)." -msgstr "" - -#: c-api/lifecycle.rst:149 -msgid "" -"When the garbage collector discovers a :term:`cyclic isolate` and all of the " -"objects in the group have already been marked as *finalized*, the garbage " -"collector clears one or more of the uncleared objects in the group (possibly " -"concurrently) by calling each's :c:member:`~PyTypeObject.tp_clear` " -"function. This repeats as long as the cyclic isolate still exists and not " -"all of the objects have been cleared." -msgstr "" - -#: c-api/lifecycle.rst:158 -msgid "Cyclic Isolate Destruction" -msgstr "" - -#: c-api/lifecycle.rst:160 -msgid "" -"Listed below are the stages of life of a hypothetical :term:`cyclic isolate` " -"that continues to exist after each member object is finalized or cleared. " -"It is a memory leak if a cyclic isolate progresses through all of these " -"stages; it should vanish once all objects are cleared, if not sooner. A " -"cyclic isolate can vanish either because the reference cycle is broken or " -"because the objects are no longer isolated due to finalizer resurrection " -"(see :c:member:`~PyTypeObject.tp_finalize`)." -msgstr "" - -#: c-api/lifecycle.rst:168 -msgid "" -"**Reachable** (not yet a cyclic isolate): All objects are in their normal, " -"reachable state. A reference cycle could exist, but an external reference " -"means the objects are not yet isolated." -msgstr "" - -#: c-api/lifecycle.rst:171 -msgid "" -"**Unreachable but consistent:** The final reference from outside the cyclic " -"group of objects has been removed, causing the objects to become isolated " -"(thus a cyclic isolate is born). None of the group's objects have been " -"finalized or cleared yet. The cyclic isolate remains at this stage until " -"some future run of the garbage collector (not necessarily the next run " -"because the next run might not scan every object)." -msgstr "" - -#: c-api/lifecycle.rst:177 -msgid "" -"**Mix of finalized and not finalized:** Objects in a cyclic isolate are " -"finalized one at a time, which means that there is a period of time when the " -"cyclic isolate is composed of a mix of finalized and non-finalized objects. " -"Finalization order is unspecified, so it can appear random. A finalized " -"object must behave in a sane manner when non-finalized objects interact with " -"it, and a non-finalized object must be able to tolerate the finalization of " -"an arbitrary subset of its referents." -msgstr "" - -#: c-api/lifecycle.rst:184 -msgid "" -"**All finalized:** All objects in a cyclic isolate are finalized before any " -"of them are cleared." -msgstr "" - -#: c-api/lifecycle.rst:186 -msgid "" -"**Mix of finalized and cleared:** The objects can be cleared serially or " -"concurrently (but with the :term:`GIL` held); either way, some will finish " -"before others. A finalized object must be able to tolerate the clearing of " -"a subset of its referents. :pep:`442` calls this stage \"cyclic trash\"." -msgstr "" - -#: c-api/lifecycle.rst:190 -msgid "" -"**Leaked:** If a cyclic isolate still exists after all objects in the group " -"have been finalized and cleared, then the objects remain indefinitely " -"uncollectable (see :data:`gc.garbage`). It is a bug if a cyclic isolate " -"reaches this stage---it means the :c:member:`~PyTypeObject.tp_clear` methods " -"of the participating objects have failed to break the reference cycle as " -"required." -msgstr "" - -#: c-api/lifecycle.rst:197 -msgid "" -"If :c:member:`~PyTypeObject.tp_clear` did not exist, then Python would have " -"no way to safely break a reference cycle. Simply destroying an object in a " -"cyclic isolate would result in a dangling pointer, triggering undefined " -"behavior when an object referencing the destroyed object is itself " -"destroyed. The clearing step makes object destruction a two-phase process: " -"first :c:member:`~PyTypeObject.tp_clear` is called to partially destroy the " -"objects enough to detangle them from each other, " -"then :c:member:`~PyTypeObject.tp_dealloc` is called to complete the " -"destruction." -msgstr "" - -#: c-api/lifecycle.rst:206 -msgid "" -"Unlike clearing, finalization is not a phase of destruction. A finalized " -"object must still behave properly by continuing to fulfill its design " -"contracts. An object's finalizer is allowed to execute arbitrary Python " -"code, and is even allowed to prevent the impending destruction by adding a " -"reference. The finalizer is only related to destruction by call order---if " -"it runs, it runs before destruction, which starts " -"with :c:member:`~PyTypeObject.tp_clear` (if called) and concludes " -"with :c:member:`~PyTypeObject.tp_dealloc`." -msgstr "" - -#: c-api/lifecycle.rst:214 -msgid "" -"The finalization step is not necessary to safely reclaim the objects in a " -"cyclic isolate, but its existence makes it easier to design types that " -"behave in a sane manner when objects are cleared. Clearing an object might " -"necessarily leave it in a broken, partially destroyed state---it might be " -"unsafe to call any of the cleared object's methods or access any of its " -"attributes. With finalization, only finalized objects can possibly interact " -"with cleared objects; non-finalized objects are guaranteed to interact with " -"only non-cleared (but potentially finalized) objects." -msgstr "" - -#: c-api/lifecycle.rst:223 -msgid "To summarize the possible interactions:" -msgstr "" - -#: c-api/lifecycle.rst:225 -msgid "" -"A non-finalized object might have references to or from non-finalized and " -"finalized objects, but not to or from cleared objects." -msgstr "" - -#: c-api/lifecycle.rst:227 -msgid "" -"A finalized object might have references to or from non-finalized, " -"finalized, and cleared objects." -msgstr "" - -#: c-api/lifecycle.rst:229 -msgid "" -"A cleared object might have references to or from finalized and cleared " -"objects, but not to or from non-finalized objects." -msgstr "" - -#: c-api/lifecycle.rst:232 -msgid "" -"Without any reference cycles, an object can be simply destroyed once its " -"last reference is deleted; the finalization and clearing steps are not " -"necessary to safely reclaim unused objects. However, it can be useful to " -"automatically call :c:member:`~PyTypeObject.tp_finalize` " -"and :c:member:`~PyTypeObject.tp_clear` before destruction anyway because " -"type design is simplified when all objects always experience the same series " -"of events regardless of whether they participated in a cyclic isolate. " -"Python currently only calls :c:member:`~PyTypeObject.tp_finalize` " -"and :c:member:`~PyTypeObject.tp_clear` as needed to destroy a cyclic " -"isolate; this may change in a future version." -msgstr "" - -#: c-api/lifecycle.rst:244 -msgid "Functions" -msgstr "Fonctions" - -#: c-api/lifecycle.rst:246 -msgid "To allocate and free memory, see :ref:`allocating-objects`." -msgstr "" - -#: c-api/lifecycle.rst:251 -msgid "" -"Finalizes the object as described in :c:member:`~PyTypeObject.tp_finalize`. " -"Call this function (or :c:func:`PyObject_CallFinalizerFromDealloc`) instead " -"of calling :c:member:`~PyTypeObject.tp_finalize` directly because this " -"function may deduplicate multiple calls to :c:member:`!tp_finalize`. " -"Currently, calls are only deduplicated if the type supports garbage " -"collection (i.e., the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set); this may " -"change in the future." -msgstr "" - -#: c-api/lifecycle.rst:264 -msgid "" -"Same as :c:func:`PyObject_CallFinalizer` but meant to be called at the " -"beginning of the object's destructor (:c:member:`~PyTypeObject.tp_dealloc`). " -"There must not be any references to the object. If the object's finalizer " -"resurrects the object, this function returns -1; no further destruction " -"should happen. Otherwise, this function returns 0 and destruction can " -"continue normally." -msgstr "" - -#: c-api/lifecycle.rst:275 -msgid ":c:member:`~PyTypeObject.tp_dealloc` for example code." -msgstr "" diff --git a/c-api/list.po b/c-api/list.po deleted file mode 100644 index 57a678ac73..0000000000 --- a/c-api/list.po +++ /dev/null @@ -1,251 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/list.rst:6 -msgid "List Objects" -msgstr "" - -#: c-api/list.rst:13 -#, fuzzy -msgid "This subtype of :c:type:`PyObject` represents a Python list object." -msgstr "" -"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." - -#: c-api/list.rst:18 -#, fuzzy -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python list type. " -"This is the same object as :class:`list` in the Python layer." -msgstr "" -"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " -"virgule flottante en Python. C'est le même objet que la " -"classe :class:`float` de la couche Python." - -#: c-api/list.rst:24 -msgid "" -"Return true if *p* is a list object or an instance of a subtype of the list " -"type. This function always succeeds." -msgstr "" - -#: c-api/list.rst:30 -msgid "" -"Return true if *p* is a list object, but not an instance of a subtype of the " -"list type. This function always succeeds." -msgstr "" - -#: c-api/list.rst:36 -msgid "Return a new list of length *len* on success, or ``NULL`` on failure." -msgstr "" - -#: c-api/list.rst:40 -msgid "" -"If *len* is greater than zero, the returned list object's items are set to " -"``NULL``. Thus you cannot use abstract API functions such " -"as :c:func:`PySequence_SetItem` or expose the object to Python code before " -"setting all items to a real object with :c:func:`PyList_SetItem` " -"or :c:func:`PyList_SET_ITEM()`. The following APIs are safe APIs before the " -"list is fully initialized: :c:func:`PyList_SetItem()` " -"and :c:func:`PyList_SET_ITEM()`." -msgstr "" - -#: c-api/list.rst:53 -msgid "" -"Return the length of the list object in *list*; this is equivalent to " -"``len(list)`` on a list object." -msgstr "" - -#: c-api/list.rst:59 -msgid "Similar to :c:func:`PyList_Size`, but without error checking." -msgstr "" - -#: c-api/list.rst:64 -msgid "" -"Return the object at position *index* in the list pointed to by *list*. The " -"position must be non-negative; indexing from the end of the list is not " -"supported. If *index* is out of bounds (:code:`<0 or >=len(list)`), return " -"``NULL`` and set an :exc:`IndexError` exception." -msgstr "" - -#: c-api/list.rst:74 -msgid "" -"Like :c:func:`PyList_GetItemRef`, but returns a :term:`borrowed reference` " -"instead of a :term:`strong reference`." -msgstr "" - -#: c-api/list.rst:91 -msgid "" -"In the :term:`free-threaded build`, the returned :term:`borrowed reference` " -"may become invalid if another thread modifies the list concurrently. " -"Prefer :c:func:`PyList_GetItemRef`, which returns a :term:`strong reference`." -msgstr "" - -#: c-api/list.rst:87 -msgid "Similar to :c:func:`PyList_GetItem`, but without error checking." -msgstr "" - -#: c-api/list.rst:99 -msgid "" -"Set the item at index *index* in list to *item*. Return ``0`` on success. " -"If *index* is out of bounds, return ``-1`` and set an :exc:`IndexError` " -"exception." -msgstr "" - -#: c-api/list.rst:105 -msgid "" -"This function \"steals\" a reference to *item* and discards a reference to " -"an item already in the list at the affected position." -msgstr "" - -#: c-api/list.rst:111 -msgid "" -"Macro form of :c:func:`PyList_SetItem` without error checking. This is " -"normally only used to fill in new lists where there is no previous content." -msgstr "" - -#: c-api/list.rst:114 -msgid "" -"Bounds checking is performed as an assertion if Python is built " -"in :ref:`debug mode ` or :option:`with assertions <--with-" -"assertions>`." -msgstr "" - -#: c-api/list.rst:120 -msgid "" -"This macro \"steals\" a reference to *item*, and, " -"unlike :c:func:`PyList_SetItem`, does *not* discard a reference to any item " -"that is being replaced; any reference in *list* at position *i* will be " -"leaked." -msgstr "" - -#: c-api/list.rst:127 -msgid "" -"In the :term:`free-threaded build`, this macro has no internal " -"synchronization. It is normally only used to fill in new lists where no " -"other thread has a reference to the list. If the list may be shared, " -"use :c:func:`PyList_SetItem` instead, which uses a :term:`per-object lock`." -msgstr "" - -#: c-api/list.rst:136 -msgid "" -"Insert the item *item* into list *list* in front of index *index*. Return " -"``0`` if successful; return ``-1`` and set an exception if unsuccessful. " -"Analogous to ``list.insert(index, item)``." -msgstr "" - -#: c-api/list.rst:143 -msgid "" -"Append the object *item* at the end of list *list*. Return ``0`` if " -"successful; return ``-1`` and set an exception if unsuccessful. Analogous " -"to ``list.append(item)``." -msgstr "" - -#: c-api/list.rst:150 -msgid "" -"Return a list of the objects in *list* containing the objects *between* " -"*low* and *high*. Return ``NULL`` and set an exception if unsuccessful. " -"Analogous to ``list[low:high]``. Indexing from the end of the list is not " -"supported." -msgstr "" - -#: c-api/list.rst:157 -msgid "" -"Set the slice of *list* between *low* and *high* to the contents of " -"*itemlist*. Analogous to ``list[low:high] = itemlist``. The *itemlist* may " -"be ``NULL``, indicating the assignment of an empty list (slice deletion). " -"Return ``0`` on success, ``-1`` on failure. Indexing from the end of the " -"list is not supported." -msgstr "" - -#: c-api/list.rst:165 -msgid "" -"In the :term:`free-threaded build`, when *itemlist* is a :class:`list`, both " -"*list* and *itemlist* are locked for the duration of the operation. For " -"other iterables (or ``NULL``), only *list* is locked." -msgstr "" - -#: c-api/list.rst:172 -msgid "" -"Extend *list* with the contents of *iterable*. This is the same as " -"``PyList_SetSlice(list, PY_SSIZE_T_MAX, PY_SSIZE_T_MAX, iterable)`` and " -"analogous to ``list.extend(iterable)`` or ``list += iterable``." -msgstr "" - -#: c-api/list.rst:176 -msgid "" -"Raise an exception and return ``-1`` if *list* is not a :class:`list` " -"object. Return 0 on success." -msgstr "" - -#: c-api/list.rst:183 -msgid "" -"In the :term:`free-threaded build`, when *iterable* is " -"a :class:`list`, :class:`set`, :class:`dict`, or dict view, both *list* and " -"*iterable* (or its underlying dict) are locked for the duration of the " -"operation. For other iterables, only *list* is locked; *iterable* may be " -"concurrently modified by another thread." -msgstr "" - -#: c-api/list.rst:192 -msgid "" -"Remove all items from *list*. This is the same as ``PyList_SetSlice(list, " -"0, PY_SSIZE_T_MAX, NULL)`` and analogous to ``list.clear()`` or ``del " -"list[:]``." -msgstr "" - -#: c-api/list.rst:196 -msgid "" -"Raise an exception and return ``-1`` if *list* is not a :class:`list` " -"object. Return 0 on success." -msgstr "" - -#: c-api/list.rst:204 -msgid "" -"Sort the items of *list* in place. Return ``0`` on success, ``-1`` on " -"failure. This is equivalent to ``list.sort()``." -msgstr "" - -#: c-api/list.rst:209 -msgid "" -"In the :term:`free-threaded build`, element comparison " -"via :meth:`~object.__lt__` can execute arbitrary Python code, during which " -"the :term:`per-object lock` may be temporarily released. For built-in types " -"(:class:`str`, :class:`int`, :class:`float`), the lock is not released " -"during comparison." -msgstr "" - -#: c-api/list.rst:218 -msgid "" -"Reverse the items of *list* in place. Return ``0`` on success, ``-1`` on " -"failure. This is the equivalent of ``list.reverse()``." -msgstr "" - -#: c-api/list.rst:226 -msgid "" -"Return a new tuple object containing the contents of *list*; equivalent to " -"``tuple(list)``." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "list" -#~ msgstr "liste" - -#~ msgid "built-in function" -#~ msgstr "fonction native" - -#~ msgid "tuple" -#~ msgstr "*n*-uplet" diff --git a/c-api/long.po b/c-api/long.po deleted file mode 100644 index 100fac7ef4..0000000000 --- a/c-api/long.po +++ /dev/null @@ -1,999 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/long.rst:6 -msgid "Integer Objects" -msgstr "Objets *Integer*" - -#: c-api/long.rst:11 -msgid "" -"All integers are implemented as \"long\" integer objects of arbitrary size." -msgstr "" - -#: c-api/long.rst:13 -msgid "" -"On error, most ``PyLong_As*`` APIs return ``(return type)-1`` which cannot " -"be distinguished from a number. Use :c:func:`PyErr_Occurred` to " -"disambiguate." -msgstr "" - -#: c-api/long.rst:18 -#, fuzzy -msgid "This subtype of :c:type:`PyObject` represents a Python integer object." -msgstr "" -"Ce sous-type de :c:type:`PyObject` représente un objet ``bytearray`` Python." - -#: c-api/long.rst:23 -#, fuzzy -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python integer type. " -"This is the same object as :class:`int` in the Python layer." -msgstr "" -"Cette instance de l'objet :c:type:`PyTypeObject` représente le type nombre à " -"virgule flottante en Python. C'est le même objet que la " -"classe :class:`float` de la couche Python." - -#: c-api/long.rst:29 -#, fuzzy -msgid "" -"Return true if its argument is a :c:type:`PyLongObject` or a subtype " -"of :c:type:`PyLongObject`. This function always succeeds." -msgstr "" -"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject` ou un sous-" -"type de :c:type:`PyFloatObject`." - -#: c-api/long.rst:35 -#, fuzzy -msgid "" -"Return true if its argument is a :c:type:`PyLongObject`, but not a subtype " -"of :c:type:`PyLongObject`. This function always succeeds." -msgstr "" -"Renvoie vrai si l'argument est de type :c:type:`PyFloatObject`, mais pas un " -"sous-type de :c:type:`PyFloatObject`." - -#: c-api/long.rst:41 -msgid "" -"Return a new :c:type:`PyLongObject` object from *v*, or ``NULL`` on failure." -msgstr "" - -#: c-api/long.rst:45 -msgid "" -"CPython keeps an array of integer objects for all integers between ``-5`` " -"and ``1024``. When you create an int in that range you actually just get " -"back a reference to the existing object." -msgstr "" - -#: c-api/long.rst:52 -msgid "" -"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long`, " -"or ``NULL`` on failure." -msgstr "" - -#: c-api/long.rst:58 -msgid "" -"Return a new :c:type:`PyLongObject` object from a C :c:type:`Py_ssize_t`, or " -"``NULL`` on failure." -msgstr "" - -#: c-api/long.rst:64 -msgid "" -"Return a new :c:type:`PyLongObject` object from a C :c:type:`size_t`, or " -"``NULL`` on failure." -msgstr "" - -#: c-api/long.rst:70 -msgid "" -"Return a new :c:type:`PyLongObject` object from a C :c:expr:`long long`, or " -"``NULL`` on failure." -msgstr "" - -#: c-api/long.rst:76 -msgid "" -"Return a new :c:type:`PyLongObject` object from a C :c:expr:`unsigned long " -"long`, or ``NULL`` on failure." -msgstr "" - -#: c-api/long.rst:83 -msgid "" -"Return a new :c:type:`PyLongObject` object from a signed C :c:expr:`int32_t` " -"or :c:expr:`int64_t`, or ``NULL`` with an exception set on failure." -msgstr "" - -#: c-api/long.rst:93 -msgid "" -"Return a new :c:type:`PyLongObject` object from an unsigned " -"C :c:expr:`uint32_t` or :c:expr:`uint64_t`, or ``NULL`` with an exception " -"set on failure." -msgstr "" - -#: c-api/long.rst:102 -msgid "" -"Return a new :c:type:`PyLongObject` object from the integer part of *v*, or " -"``NULL`` on failure." -msgstr "" - -#: c-api/long.rst:108 -msgid "" -"Return a new :c:type:`PyLongObject` based on the string value in *str*, " -"which is interpreted according to the radix in *base*, or ``NULL`` on " -"failure. If *pend* is non-``NULL``, *\\*pend* will point to the end of " -"*str* on success or to the first character that could not be processed on " -"error. If *base* is ``0``, *str* is interpreted using the :ref:`integers` " -"definition; in this case, leading zeros in a non-zero decimal number raises " -"a :exc:`ValueError`. If *base* is not ``0``, it must be between ``2`` and " -"``36``, inclusive. Leading and trailing whitespace and single underscores " -"after a base specifier and between digits are ignored. If there are no " -"digits or *str* is not NULL-terminated following the digits and trailing " -"whitespace, :exc:`ValueError` will be raised." -msgstr "" - -#: c-api/long.rst:119 -msgid "" -":c:func:`PyLong_AsNativeBytes()` and :c:func:`PyLong_FromNativeBytes()` " -"functions can be used to convert a :c:type:`PyLongObject` to/from an array " -"of bytes in base ``256``." -msgstr "" - -#: c-api/long.rst:126 -msgid "" -"Convert a sequence of Unicode digits in the string *u* to a Python integer " -"value." -msgstr "" - -#: c-api/long.rst:134 -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:140 -msgid "" -"Create a Python integer from the value contained in the first *n_bytes* of " -"*buffer*, interpreted as a two's-complement signed number." -msgstr "" - -#: c-api/long.rst:143 -msgid "" -"*flags* are as for :c:func:`PyLong_AsNativeBytes`. Passing ``-1`` will " -"select the native endian that CPython was compiled with and assume that the " -"most-significant bit is a sign bit. Passing " -"``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` will produce the same result as " -"calling :c:func:`PyLong_FromUnsignedNativeBytes`. Other flags are ignored." -msgstr "" - -#: c-api/long.rst:154 -msgid "" -"Create a Python integer from the value contained in the first *n_bytes* of " -"*buffer*, interpreted as an unsigned number." -msgstr "" - -#: c-api/long.rst:157 -msgid "" -"*flags* are as for :c:func:`PyLong_AsNativeBytes`. Passing ``-1`` will " -"select the native endian that CPython was compiled with and assume that the " -"most-significant bit is not a sign bit. Flags other than endian are ignored." -msgstr "" - -#: c-api/long.rst:166 -msgid "Macro for creating a Python integer from a process identifier." -msgstr "" - -#: c-api/long.rst:168 -msgid "" -"This can be defined as an alias to :c:func:`PyLong_FromLong` " -"or :c:func:`PyLong_FromLongLong`, depending on the size of the system's PID " -"type." -msgstr "" - -#: c-api/long.rst:215 -msgid "" -"Return a C :c:expr:`long` representation of *obj*. If *obj* is not an " -"instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` " -"method (if present) to convert it to a :c:type:`PyLongObject`." -msgstr "" - -#: c-api/long.rst:185 -msgid "" -"Raise :exc:`OverflowError` if the value of *obj* is out of range for " -"a :c:expr:`long`." -msgstr "" - -#: c-api/long.rst:224 c-api/long.rst:265 c-api/long.rst:288 -msgid "Returns ``-1`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." -msgstr "" - -#: c-api/long.rst:226 c-api/long.rst:269 c-api/long.rst:373 -msgid "Use :meth:`~object.__index__` if available." -msgstr "" - -#: c-api/long.rst:229 c-api/long.rst:272 c-api/long.rst:376 -msgid "This function will no longer use :meth:`~object.__int__`." -msgstr "" - -#: c-api/long.rst:200 -msgid "" -"Exactly equivalent to the preferred ``PyLong_AsLong``. In particular, it can " -"fail with :exc:`OverflowError` or another exception." -msgstr "" - -#: c-api/long.rst:207 -msgid "" -"Similar to :c:func:`PyLong_AsLong`, but store the result in a " -"C :c:expr:`int` instead of a C :c:expr:`long`." -msgstr "" - -#: c-api/long.rst:219 -msgid "" -"If the value of *obj* is greater than :c:macro:`LONG_MAX` or less " -"than :c:macro:`LONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, " -"respectively, and return ``-1``; otherwise, set *\\*overflow* to ``0``. If " -"any other exception occurs set *\\*overflow* to ``0`` and return ``-1`` as " -"usual." -msgstr "" - -#: c-api/long.rst:256 -msgid "" -"Return a C :c:expr:`long long` representation of *obj*. If *obj* is not an " -"instance of :c:type:`PyLongObject`, first call its :meth:`~object.__index__` " -"method (if present) to convert it to a :c:type:`PyLongObject`." -msgstr "" - -#: c-api/long.rst:242 -msgid "" -"Raise :exc:`OverflowError` if the value of *obj* is out of range for " -"a :c:expr:`long long`." -msgstr "" - -#: c-api/long.rst:260 -msgid "" -"If the value of *obj* is greater than :c:macro:`LLONG_MAX` or less " -"than :c:macro:`LLONG_MIN`, set *\\*overflow* to ``1`` or ``-1``, " -"respectively, and return ``-1``; otherwise, set *\\*overflow* to ``0``. If " -"any other exception occurs set *\\*overflow* to ``0`` and return ``-1`` as " -"usual." -msgstr "" - -#: c-api/long.rst:282 -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:285 -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:297 -msgid "" -"Return a C :c:expr:`unsigned long` representation of *pylong*. *pylong* " -"must be an instance of :c:type:`PyLongObject`." -msgstr "" - -#: c-api/long.rst:300 -msgid "" -"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " -"a :c:expr:`unsigned long`." -msgstr "" - -#: c-api/long.rst:303 -msgid "" -"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " -"disambiguate." -msgstr "" - -#: c-api/long.rst:313 -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:316 -msgid "" -"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " -"a :c:type:`size_t`." -msgstr "" - -#: c-api/long.rst:319 -msgid "" -"Returns ``(size_t)-1`` on error. Use :c:func:`PyErr_Occurred` to " -"disambiguate." -msgstr "" - -#: c-api/long.rst:328 -msgid "" -"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:331 -msgid "" -"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " -"an :c:expr:`unsigned long long`." -msgstr "" - -#: c-api/long.rst:334 -msgid "" -"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` to " -"disambiguate." -msgstr "" - -#: c-api/long.rst:337 -msgid "" -"A negative *pylong* now raises :exc:`OverflowError`, not :exc:`TypeError`." -msgstr "" - -#: c-api/long.rst:343 -msgid "" -"Return a C :c:expr:`unsigned long` representation of *obj*. If *obj* is not " -"an instance of :c:type:`PyLongObject`, first call " -"its :meth:`~object.__index__` method (if present) to convert it to " -"a :c:type:`PyLongObject`." -msgstr "" - -#: c-api/long.rst:347 -msgid "" -"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:350 -msgid "" -"Returns ``(unsigned long)-1`` on error. Use :c:func:`PyErr_Occurred` to " -"disambiguate." -msgstr "" - -#: c-api/long.rst:362 -msgid "" -"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:`~object.__index__` method (if present) to convert it to " -"a :c:type:`PyLongObject`." -msgstr "" - -#: c-api/long.rst:367 -msgid "" -"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:370 -msgid "" -"Returns ``(unsigned long long)-1`` on error. Use :c:func:`PyErr_Occurred` " -"to disambiguate." -msgstr "" - -#: c-api/long.rst:383 -msgid "" -"Set *\\*value* to a signed C :c:expr:`int32_t` or :c:expr:`int64_t` " -"representation of *obj*." -msgstr "" - -#: c-api/long.rst:406 -msgid "" -"If *obj* is not an instance of :c:type:`PyLongObject`, first call " -"its :meth:`~object.__index__` method (if present) to convert it to " -"a :c:type:`PyLongObject`." -msgstr "" - -#: c-api/long.rst:411 -msgid "If the *obj* value is out of range, raise an :exc:`OverflowError`." -msgstr "" - -#: c-api/long.rst:413 -msgid "" -"Set *\\*value* and return ``0`` on success. Set an exception and return " -"``-1`` on error." -msgstr "" - -#: c-api/long.rst:416 -msgid "*value* must not be ``NULL``." -msgstr "" - -#: c-api/long.rst:403 -msgid "" -"Set *\\*value* to an unsigned C :c:expr:`uint32_t` or :c:expr:`uint64_t` " -"representation of *obj*." -msgstr "" - -#: c-api/long.rst:410 -msgid "If *obj* is negative, raise a :exc:`ValueError`." -msgstr "" - -#: c-api/long.rst:423 -msgid "" -"Return a C :c:expr:`double` representation of *pylong*. *pylong* must be an " -"instance of :c:type:`PyLongObject`." -msgstr "" - -#: c-api/long.rst:426 -msgid "" -"Raise :exc:`OverflowError` if the value of *pylong* is out of range for " -"a :c:expr:`double`." -msgstr "" - -#: c-api/long.rst:429 -msgid "" -"Returns ``-1.0`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." -msgstr "" - -#: c-api/long.rst:434 -msgid "" -"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:expr:`void` pointer for values created " -"with :c:func:`PyLong_FromVoidPtr`." -msgstr "" - -#: c-api/long.rst:439 -msgid "" -"Returns ``NULL`` on error. Use :c:func:`PyErr_Occurred` to disambiguate." -msgstr "" - -#: c-api/long.rst:444 -msgid "" -"Copy the Python integer value *pylong* to a native *buffer* of size " -"*n_bytes*. The *flags* can be set to ``-1`` to behave similarly to a C cast, " -"or to values documented below to control the behavior." -msgstr "" - -#: c-api/long.rst:448 -msgid "" -"Returns ``-1`` with an exception raised on error. This may happen if " -"*pylong* cannot be interpreted as an integer, or if *pylong* was negative " -"and the ``Py_ASNATIVEBYTES_REJECT_NEGATIVE`` flag was set." -msgstr "" - -#: c-api/long.rst:452 -msgid "" -"Otherwise, returns the number of bytes required to store the value. If this " -"is equal to or less than *n_bytes*, the entire value was copied. All " -"*n_bytes* of the buffer are written: remaining bytes filled by copies of the " -"sign bit." -msgstr "" - -#: c-api/long.rst:457 -msgid "" -"If the returned value is greater than *n_bytes*, the value was truncated: as " -"many of the lowest bits of the value as could fit are written, and the " -"higher bits are ignored. This matches the typical behavior of a C-style " -"downcast." -msgstr "" - -#: c-api/long.rst:464 -msgid "" -"Overflow is not considered an error. If the returned value is larger than " -"*n_bytes*, most significant bits were discarded." -msgstr "" - -#: c-api/long.rst:467 -msgid "``0`` will never be returned." -msgstr "" - -#: c-api/long.rst:469 -msgid "Values are always copied as two's-complement." -msgstr "" - -#: c-api/long.rst:471 -msgid "Usage example::" -msgstr "" - -#: c-api/long.rst:487 -msgid "" -"Passing zero to *n_bytes* will return the size of a buffer that would be " -"large enough to hold the value. This may be larger than technically " -"necessary, but not unreasonably so. If *n_bytes=0*, *buffer* may be ``NULL``." -msgstr "" - -#: c-api/long.rst:494 -msgid "" -"Passing *n_bytes=0* to this function is not an accurate way to determine the " -"bit length of the value." -msgstr "" - -#: c-api/long.rst:497 -msgid "" -"To get at the entire Python value of an unknown size, the function can be " -"called twice: first to determine the buffer size, then to fill it::" -msgstr "" - -#: c-api/long.rst:528 -msgid "" -"*flags* is either ``-1`` (``Py_ASNATIVEBYTES_DEFAULTS``) to select defaults " -"that behave most like a C cast, or a combination of the other flags in the " -"table below. Note that ``-1`` cannot be combined with other flags." -msgstr "" - -#: c-api/long.rst:533 -msgid "" -"Currently, ``-1`` corresponds to ``Py_ASNATIVEBYTES_NATIVE_ENDIAN | " -"Py_ASNATIVEBYTES_UNSIGNED_BUFFER``." -msgstr "" - -#: c-api/long.rst:539 -msgid "Flag" -msgstr "Option" - -#: c-api/long.rst:539 -msgid "Value" -msgstr "Valeur" - -#: c-api/long.rst:541 -msgid "``-1``" -msgstr "" - -#: c-api/long.rst:542 -msgid "``0``" -msgstr "``0``" - -#: c-api/long.rst:543 -msgid "``1``" -msgstr "``1``" - -#: c-api/long.rst:544 -msgid "``3``" -msgstr "``3``" - -#: c-api/long.rst:545 -msgid "``4``" -msgstr "``4``" - -#: c-api/long.rst:546 -msgid "``8``" -msgstr "``8``" - -#: c-api/long.rst:547 -msgid "``16``" -msgstr "" - -#: c-api/long.rst:550 -msgid "" -"Specifying ``Py_ASNATIVEBYTES_NATIVE_ENDIAN`` will override any other endian " -"flags. Passing ``2`` is reserved." -msgstr "" - -#: c-api/long.rst:553 -msgid "" -"By default, sufficient buffer will be requested to include a sign bit. For " -"example, when converting 128 with *n_bytes=1*, the function will return 2 " -"(or more) in order to store a zero sign bit." -msgstr "" - -#: c-api/long.rst:557 -msgid "" -"If ``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` is specified, a zero sign bit will " -"be omitted from size calculations. This allows, for example, 128 to fit in a " -"single-byte buffer. If the destination buffer is later treated as signed, a " -"positive input value may become negative. Note that the flag does not affect " -"handling of negative values: for those, space for a sign bit is always " -"requested." -msgstr "" - -#: c-api/long.rst:564 -msgid "" -"Specifying ``Py_ASNATIVEBYTES_REJECT_NEGATIVE`` causes an exception to be " -"set if *pylong* is negative. Without this flag, negative values will be " -"copied provided there is enough space for at least one sign bit, regardless " -"of whether ``Py_ASNATIVEBYTES_UNSIGNED_BUFFER`` was specified." -msgstr "" - -#: c-api/long.rst:569 -msgid "" -"If ``Py_ASNATIVEBYTES_ALLOW_INDEX`` is specified and a non-integer value is " -"passed, its :meth:`~object.__index__` method will be called first. This may " -"result in Python code executing and other threads being allowed to run, " -"which could cause changes to other objects or values in use. When *flags* is " -"``-1``, this option is not set, and non-integer values will " -"raise :exc:`TypeError`." -msgstr "" - -#: c-api/long.rst:578 -msgid "" -"With the default *flags* (``-1``, or *UNSIGNED_BUFFER* without " -"*REJECT_NEGATIVE*), multiple Python integers can map to a single value " -"without overflow. For example, both ``255`` and ``-1`` fit a single-byte " -"buffer and set all its bits. This matches typical C cast behavior." -msgstr "" - -#: c-api/long.rst:589 -msgid "Macro for converting a Python integer into a process identifier." -msgstr "" - -#: c-api/long.rst:591 -msgid "" -"This can be defined as an alias " -"to :c:func:`PyLong_AsLong`, :c:func:`PyLong_FromLongLong`, " -"or :c:func:`PyLong_AsInt`, depending on the size of the system's PID type." -msgstr "" - -#: c-api/long.rst:600 -msgid "Get the sign of the integer object *obj*." -msgstr "" - -#: c-api/long.rst:602 -msgid "" -"On success, set *\\*sign* to the integer sign (0, -1 or +1 for zero, " -"negative or positive integer, respectively) and return 0." -msgstr "" - -#: c-api/long.rst:605 -msgid "" -"On failure, return -1 with an exception set. This function always succeeds " -"if *obj* is a :c:type:`PyLongObject` or its subtype." -msgstr "" - -#: c-api/long.rst:613 -msgid "Check if the integer object *obj* is positive (``obj > 0``)." -msgstr "" - -#: c-api/long.rst:615 -msgid "" -"If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " -"``1`` when it's positive and ``0`` otherwise. Else set an exception and " -"return ``-1``." -msgstr "" - -#: c-api/long.rst:624 -msgid "Check if the integer object *obj* is negative (``obj < 0``)." -msgstr "" - -#: c-api/long.rst:626 -msgid "" -"If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " -"``1`` when it's negative and ``0`` otherwise. Else set an exception and " -"return ``-1``." -msgstr "" - -#: c-api/long.rst:635 -msgid "Check if the integer object *obj* is zero." -msgstr "" - -#: c-api/long.rst:637 -msgid "" -"If *obj* is an instance of :c:type:`PyLongObject` or its subtype, return " -"``1`` when it's zero and ``0`` otherwise. Else set an exception and return " -"``-1``." -msgstr "" - -#: c-api/long.rst:646 -msgid "" -"On success, return a read only :term:`named tuple`, that holds information " -"about Python's internal representation of integers. See :data:`sys.int_info` " -"for description of individual fields." -msgstr "" - -#: c-api/long.rst:650 -msgid "On failure, return ``NULL`` with an exception set." -msgstr "" - -#: c-api/long.rst:657 -msgid "Return 1 if *op* is compact, 0 otherwise." -msgstr "" - -#: c-api/long.rst:659 -msgid "" -"This function makes it possible for performance-critical code to implement a " -"“fast path” for small integers. For compact values " -"use :c:func:`PyUnstable_Long_CompactValue`; for others fall back to " -"a :c:func:`PyLong_As* ` function " -"or :c:func:`PyLong_AsNativeBytes`." -msgstr "" - -#: c-api/long.rst:665 -msgid "The speedup is expected to be negligible for most users." -msgstr "" - -#: c-api/long.rst:667 -msgid "" -"Exactly what values are considered compact is an implementation detail and " -"is subject to change." -msgstr "" - -#: c-api/long.rst:675 -msgid "" -"If *op* is compact, as determined by :c:func:`PyUnstable_Long_IsCompact`, " -"return its value." -msgstr "" - -#: c-api/long.rst:678 -msgid "Otherwise, the return value is undefined." -msgstr "" - -#: c-api/long.rst:684 -msgid "Export API" -msgstr "" - -#: c-api/long.rst:690 -msgid "" -"Layout of an array of \"digits\" (\"limbs\" in the GMP terminology), used to " -"represent absolute value for arbitrary precision integers." -msgstr "" - -#: c-api/long.rst:693 -msgid "" -"Use :c:func:`PyLong_GetNativeLayout` to get the native layout of " -"Python :class:`int` objects, used internally for integers with \"big " -"enough\" absolute value." -msgstr "" - -#: c-api/long.rst:697 -msgid "" -"See also :data:`sys.int_info` which exposes similar information in Python." -msgstr "" - -#: c-api/long.rst:701 -msgid "" -"Bits per digit. For example, a 15 bit digit means that bits 0-14 contain " -"meaningful information." -msgstr "" - -#: c-api/long.rst:706 -msgid "" -"Digit size in bytes. For example, a 15 bit digit will require at least 2 " -"bytes." -msgstr "" - -#: c-api/long.rst:711 -msgid "Digits order:" -msgstr "" - -#: c-api/long.rst:713 -msgid "``1`` for most significant digit first" -msgstr "" - -#: c-api/long.rst:714 -msgid "``-1`` for least significant digit first" -msgstr "" - -#: c-api/long.rst:718 -msgid "Digit endianness:" -msgstr "" - -#: c-api/long.rst:720 -msgid "``1`` for most significant byte first (big endian)" -msgstr "" - -#: c-api/long.rst:721 -msgid "``-1`` for least significant byte first (little endian)" -msgstr "" - -#: c-api/long.rst:726 -msgid "Get the native layout of Python :class:`int` objects." -msgstr "" - -#: c-api/long.rst:728 -msgid "See the :c:type:`PyLongLayout` structure." -msgstr "" - -#: c-api/long.rst:730 -msgid "" -"The function must not be called before Python initialization nor after " -"Python finalization. The returned layout is valid until Python is finalized. " -"The layout is the same for all Python sub-interpreters in a process, and so " -"it can be cached." -msgstr "" - -#: c-api/long.rst:738 -msgid "Export of a Python :class:`int` object." -msgstr "" - -#: c-api/long.rst:740 -msgid "There are two cases:" -msgstr "" - -#: c-api/long.rst:742 -msgid "" -"If :c:member:`digits` is ``NULL``, only use the :c:member:`value` member." -msgstr "" - -#: c-api/long.rst:743 -msgid "" -"If :c:member:`digits` is not ``NULL``, " -"use :c:member:`negative`, :c:member:`ndigits` and :c:member:`digits` members." -msgstr "" - -#: c-api/long.rst:748 -msgid "" -"The native integer value of the exported :class:`int` object. Only valid " -"if :c:member:`digits` is ``NULL``." -msgstr "" - -#: c-api/long.rst:753 -msgid "" -"``1`` if the number is negative, ``0`` otherwise. Only valid " -"if :c:member:`digits` is not ``NULL``." -msgstr "" - -#: c-api/long.rst:758 -msgid "" -"Number of digits in :c:member:`digits` array. Only valid " -"if :c:member:`digits` is not ``NULL``." -msgstr "" - -#: c-api/long.rst:763 -msgid "Read-only array of unsigned digits. Can be ``NULL``." -msgstr "" - -#: c-api/long.rst:768 -msgid "Export a Python :class:`int` object." -msgstr "" - -#: c-api/long.rst:770 -msgid "" -"*export_long* must point to a :c:type:`PyLongExport` structure allocated by " -"the caller. It must not be ``NULL``." -msgstr "" - -#: c-api/long.rst:773 -msgid "" -"On success, fill in *\\*export_long* and return ``0``. On error, set an " -"exception and return ``-1``." -msgstr "" - -#: c-api/long.rst:776 -msgid "" -":c:func:`PyLong_FreeExport` must be called when the export is no longer " -"needed." -msgstr "" - -#: c-api/long.rst:780 -msgid "" -"This function always succeeds if *obj* is a Python :class:`int` object or a " -"subclass." -msgstr "" - -#: c-api/long.rst:786 -msgid "Release the export *export_long* created by :c:func:`PyLong_Export`." -msgstr "" - -#: c-api/long.rst:789 -msgid "" -"Calling :c:func:`PyLong_FreeExport` is optional if *export_long->digits* is " -"``NULL``." -msgstr "" - -#: c-api/long.rst:794 -msgid "PyLongWriter API" -msgstr "" - -#: c-api/long.rst:796 -msgid "The :c:type:`PyLongWriter` API can be used to import an integer." -msgstr "" - -#: c-api/long.rst:802 -msgid "A Python :class:`int` writer instance." -msgstr "" - -#: c-api/long.rst:804 -msgid "" -"The instance must be destroyed by :c:func:`PyLongWriter_Finish` " -"or :c:func:`PyLongWriter_Discard`." -msgstr "" - -#: c-api/long.rst:810 -msgid "Create a :c:type:`PyLongWriter`." -msgstr "" - -#: c-api/long.rst:812 -msgid "" -"On success, allocate *\\*digits* and return a writer. On error, set an " -"exception and return ``NULL``." -msgstr "" - -#: c-api/long.rst:815 -msgid "*negative* is ``1`` if the number is negative, or ``0`` otherwise." -msgstr "" - -#: c-api/long.rst:817 -msgid "" -"*ndigits* is the number of digits in the *digits* array. It must be greater " -"than 0." -msgstr "" - -#: c-api/long.rst:820 -msgid "*digits* must not be NULL." -msgstr "" - -#: c-api/long.rst:822 -msgid "" -"After a successful call to this function, the caller should fill in the " -"array of digits *digits* and then call :c:func:`PyLongWriter_Finish` to get " -"a Python :class:`int`. The layout of *digits* is described " -"by :c:func:`PyLong_GetNativeLayout`." -msgstr "" - -#: c-api/long.rst:827 -msgid "" -"Digits must be in the range [``0``; ``(1 << bits_per_digit) - 1``] (where " -"the :c:type:`~PyLongLayout.bits_per_digit` is the number of bits per digit). " -"Any unused most significant digits must be set to ``0``." -msgstr "" - -#: c-api/long.rst:832 -msgid "" -"Alternately, call :c:func:`PyLongWriter_Discard` to destroy the writer " -"instance without creating an :class:`~int` object." -msgstr "" - -#: c-api/long.rst:838 -msgid "" -"Finish a :c:type:`PyLongWriter` created by :c:func:`PyLongWriter_Create`." -msgstr "" - -#: c-api/long.rst:840 -msgid "" -"On success, return a Python :class:`int` object. On error, set an exception " -"and return ``NULL``." -msgstr "" - -#: c-api/long.rst:843 -msgid "" -"The function takes care of normalizing the digits and converts the object to " -"a compact integer if needed." -msgstr "" - -#: c-api/long.rst:855 -msgid "The writer instance and the *digits* array are invalid after the call." -msgstr "" - -#: c-api/long.rst:851 -msgid "" -"Discard a :c:type:`PyLongWriter` created by :c:func:`PyLongWriter_Create`." -msgstr "" - -#: c-api/long.rst:853 -msgid "If *writer* is ``NULL``, no operation is performed." -msgstr "" - -#: c-api/long.rst:859 -msgid "Deprecated API" -msgstr "" - -#: c-api/long.rst:861 -msgid "" -"These macros are :term:`soft deprecated`. They describe parameters of the " -"internal representation of :c:type:`PyLongObject` instances." -msgstr "" - -#: c-api/long.rst:864 -msgid "" -"Use :c:func:`PyLong_GetNativeLayout` instead, along " -"with :c:func:`PyLong_Export` to read integer data or :c:type:`PyLongWriter` " -"to write it. These currently use the same layout, but are designed to " -"continue working correctly even if CPython's internal integer representation " -"changes." -msgstr "" - -#: c-api/long.rst:872 -msgid "" -"This is equivalent to :c:member:`~PyLongLayout.bits_per_digit` in the output " -"of :c:func:`PyLong_GetNativeLayout`." -msgstr "" - -#: c-api/long.rst:878 -msgid "This is currently equivalent to :c:expr:`1 << PyLong_SHIFT`." -msgstr "" - -#: c-api/long.rst:883 -msgid "This is currently equivalent to :c:expr:`(1 << PyLong_SHIFT) - 1`" -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "integer" -#~ msgstr "*int* (entier)" diff --git a/c-api/mapping.po b/c-api/mapping.po deleted file mode 100644 index d923ada9fb..0000000000 --- a/c-api/mapping.po +++ /dev/null @@ -1,231 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-01-28 14:58+0100\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.2\n" - -#: c-api/mapping.rst:6 -msgid "Mapping Protocol" -msgstr "Protocole de correspondance" - -#: c-api/mapping.rst:8 -msgid "" -"See also :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` " -"and :c:func:`PyObject_DelItem`." -msgstr "" -"Voir aussi :c:func:`PyObject_GetItem`, :c:func:`PyObject_SetItem` " -"et :c:func:`PyObject_DelItem`." - -# - " in general case it is impossible to determine what the type of keys it -# supports." -# → pas correct en VO ! -# - "This function always succeeds." équivaut-il à "jamais d'erreur" ? -#: c-api/mapping.rst:14 -#, fuzzy -msgid "" -"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:`~object.__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 " -"les classes Python avec une méthode :meth:`__getitem__` puisque, dans le cas " -"général, il est impossible de déterminer quel type de clef est pris en " -"charge. Cette fonction ne provoque jamais d'erreur." - -#: c-api/mapping.rst:25 -msgid "" -"Returns the number of keys in object *o* on success, and ``-1`` on failure. " -"This is equivalent to the Python expression ``len(o)``." -msgstr "" -"Renvoie le nombre de clefs dans l'objet *o* et ``-1`` en cas d'échec. C'est " -"l'équivalent de l'expression Python ``len(o)``." - -#: c-api/mapping.rst:31 -msgid "" -"This is the same as :c:func:`PyObject_GetItem`, but *key* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/mapping.rst:38 -msgid "" -"Variant of :c:func:`PyObject_GetItem` which doesn't raise :exc:`KeyError` if " -"the key is not found." -msgstr "" - -#: c-api/mapping.rst:41 -msgid "" -"If the key is found, return ``1`` and set *\\*result* to a new :term:`strong " -"reference` to the corresponding value. If the key is not found, return ``0`` " -"and set *\\*result* to ``NULL``; the :exc:`KeyError` is silenced. If an " -"error other than :exc:`KeyError` is raised, return ``-1`` and set " -"*\\*result* to ``NULL``." -msgstr "" - -#: c-api/mapping.rst:53 -msgid "" -"This is the same as :c:func:`PyMapping_GetOptionalItem`, but *key* is " -"specified as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/mapping.rst:62 -msgid "" -"This is the same as :c:func:`PyObject_SetItem`, but *key* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/mapping.rst:69 -msgid "This is an alias of :c:func:`PyObject_DelItem`." -msgstr "" - -#: c-api/mapping.rst:74 -msgid "" -"This is the same as :c:func:`PyObject_DelItem`, but *key* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/mapping.rst:81 -#, fuzzy -msgid "" -"Return ``1`` if the mapping object has the key *key* and ``0`` otherwise. " -"This is equivalent to the Python expression ``key in o``. On failure, return " -"``-1``." -msgstr "" -"Renvoie ``1`` si l'objet de correspondance possède une clef *key* et ``0`` " -"sinon. C'est l'équivalent de l'expression Python ``key in o``. Cette " -"fonction ne provoque jamais d'erreur." - -#: c-api/mapping.rst:90 -msgid "" -"This is the same as :c:func:`PyMapping_HasKeyWithError`, but *key* is " -"specified as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/mapping.rst:99 -msgid "" -"Return ``1`` if the mapping object has the key *key* and ``0`` otherwise. " -"This is equivalent to the Python expression ``key in o``. This function " -"always succeeds." -msgstr "" -"Renvoie ``1`` si l'objet de correspondance possède une clef *key* et ``0`` " -"sinon. C'est l'équivalent de l'expression Python ``key in o``. Cette " -"fonction ne provoque jamais d'erreur." - -#: c-api/mapping.rst:105 -#, fuzzy -msgid "" -"Exceptions which occur when this calls the :meth:`~object.__getitem__` " -"method are silently ignored. For proper error handling, " -"use :c:func:`PyMapping_HasKeyWithError`, :c:func:`PyMapping_GetOptionalItem` " -"or :c:func:`PyObject_GetItem()` instead." -msgstr "" -"Notez que les exceptions qui surviennent pendant l'appel de la " -"méthode :meth:`__getitem__` seront supprimées. Pour obtenir le rapport " -"d'erreur, utilisez plutôt :c:func:`PyObject_GetItem()`." - -#: c-api/mapping.rst:113 -msgid "" -"This is the same as :c:func:`PyMapping_HasKey`, but *key* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/mapping.rst:119 -#, fuzzy -msgid "" -"Exceptions that occur when this calls the :meth:`~object.__getitem__` method " -"or while creating the temporary :class:`str` object are silently ignored. " -"For proper error handling, " -"use :c:func:`PyMapping_HasKeyStringWithError`, :c:func:`PyMapping_GetOptionalItemString` " -"or :c:func:`PyMapping_GetItemString` instead." -msgstr "" -"Notez que les exceptions qui surviennent en créant une chaîne de caractères " -"temporaire pendant l'appel de la méthode :meth:`__getitem__` seront " -"supprimées. Pour obtenir le rapport d'erreur, utilisez " -"plutôt :c:func:`PyMapping_GetItemString()`." - -#: c-api/mapping.rst:129 -msgid "" -"On success, return a list of the keys in object *o*. On failure, return " -"``NULL``." -msgstr "" -"Renvoie la liste des clefs dans l'objet *o*. En cas d'échec, renvoie *NULL*." - -#: c-api/mapping.rst:141 c-api/mapping.rst:150 -msgid "Previously, the function returned a list or a tuple." -msgstr "Auparavant, la fonction renvoyait une liste ou un *n*-uplet." - -#: c-api/mapping.rst:138 -msgid "" -"On success, return a list of the values in object *o*. On failure, return " -"``NULL``." -msgstr "" -"Renvoie la liste des valeurs dans l'objet *o*. En cas d'échec, renvoie " -"*NULL*." - -#: c-api/mapping.rst:147 -msgid "" -"On success, return a list of the items in object *o*, where each item is a " -"tuple containing a key-value pair. On failure, return ``NULL``." -msgstr "" -"Renvoie la liste des éléments dans l'objet *o*, où chaque élément est un n-" -"uplet contenant une paire clef-valeur. En cas d'échec, renvoie *NULL*." - -#~ msgid "built-in function" -#~ msgstr "fonction native" - -#~ msgid "" -#~ "Return element of *o* corresponding to the string *key* or ``NULL`` on " -#~ "failure. This is the equivalent of the Python expression ``o[key]``. See " -#~ "also :c:func:`PyObject_GetItem`." -#~ msgstr "" -#~ "Renvoie les éléments de *o* qui correspondent à la chaîne *key* ou *NULL* " -#~ "en cas d'échec. C'est l'équivalent de l'expression Python ``o[key]``. " -#~ "Voir aussi :c:func:`PyObject_GetItem`." - -#~ msgid "" -#~ "Map the string *key* to the value *v* in object *o*. Returns ``-1`` on " -#~ "failure. This is the equivalent of the Python statement ``o[key] = v``. " -#~ "See also :c:func:`PyObject_SetItem`. This function *does not* steal a " -#~ "reference to *v*." -#~ msgstr "" -#~ "Fait correspondre la chaîne *key* à la valeur *v* dans l'objet *o*. " -#~ "Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " -#~ "``o[key] = v``. Voir aussi :c:func:`PyObject_SetItem`. Cette fonction *ne " -#~ "vole pas* de référence à *v*." - -#~ msgid "" -#~ "Remove the mapping for the object *key* from the object *o*. Return " -#~ "``-1`` on failure. This is equivalent to the Python statement ``del " -#~ "o[key]``. This is an alias of :c:func:`PyObject_DelItem`." -#~ msgstr "" -#~ "Supprime la correspondance associée à l'objet *key* dans l'objet *o*. " -#~ "Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " -#~ "``del o[key]``. C'est un alias pour :c:func:`PyObject_DelItem`." - -#~ msgid "" -#~ "Remove the mapping for the string *key* from the object *o*. Return " -#~ "``-1`` on failure. This is equivalent to the Python statement ``del " -#~ "o[key]``." -#~ msgstr "" -#~ "Supprime la correspondance associée à la chaîne *key* dans l'objet *o*. " -#~ "Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " -#~ "``del o[key]``." diff --git a/c-api/marshal.po b/c-api/marshal.po deleted file mode 100644 index 2569a040ec..0000000000 --- a/c-api/marshal.po +++ /dev/null @@ -1,120 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/marshal.rst:6 -msgid "Data marshalling support" -msgstr "" - -#: c-api/marshal.rst:8 -msgid "" -"These routines allow C code to work with serialized objects using the same " -"data format as the :mod:`marshal` module. There are functions to write data " -"into the serialization format, and additional functions that can be used to " -"read the data back. Files used to store marshalled data must be opened in " -"binary mode." -msgstr "" - -#: c-api/marshal.rst:14 -msgid "Numeric values are stored with the least significant byte first." -msgstr "" - -#: c-api/marshal.rst:16 -msgid "" -"The module supports several versions of the data format; see " -"the :py:mod:`Python module documentation ` for details." -msgstr "" - -#: c-api/marshal.rst:21 -msgid "The current format version. See :py:data:`marshal.version`." -msgstr "" - -#: c-api/marshal.rst:25 -msgid "" -"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:expr:`long` type. *version* indicates the file format." -msgstr "" - -#: c-api/marshal.rst:37 -msgid "" -"This function can fail, in which case it sets the error indicator. " -"Use :c:func:`PyErr_Occurred` to check for that." -msgstr "" - -#: c-api/marshal.rst:34 -msgid "" -"Marshal a Python object, *value*, to *file*. *version* indicates the file " -"format." -msgstr "" - -#: c-api/marshal.rst:42 -msgid "" -"Return a bytes object containing the marshalled representation of *value*. " -"*version* indicates the file format." -msgstr "" - -#: c-api/marshal.rst:46 -msgid "The following functions allow marshalled values to be read back in." -msgstr "" - -#: c-api/marshal.rst:51 -msgid "" -"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:expr:`long`." -msgstr "" - -#: c-api/marshal.rst:65 -msgid "" -"On error, sets the appropriate exception (:exc:`EOFError`) and returns " -"``-1``." -msgstr "" - -#: c-api/marshal.rst:61 -msgid "" -"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:expr:`short`." -msgstr "" - -#: c-api/marshal.rst:71 -msgid "" -"Return a Python object from the data stream in a :c:expr:`FILE*` opened for " -"reading." -msgstr "" - -#: c-api/marshal.rst:88 c-api/marshal.rst:97 -msgid "" -"On error, sets the appropriate exception (:exc:`EOFError`, :exc:`ValueError` " -"or :exc:`TypeError`) and returns ``NULL``." -msgstr "" - -#: c-api/marshal.rst:80 -msgid "" -"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 " -"operate from data in memory rather than reading a byte at a time from the " -"file. Only use this variant if you are certain that you won't be reading " -"anything else from the file." -msgstr "" - -#: c-api/marshal.rst:94 -msgid "" -"Return a Python object from the data stream in a byte buffer containing " -"*len* bytes pointed to by *data*." -msgstr "" diff --git a/c-api/memory.po b/c-api/memory.po deleted file mode 100644 index dde4029d26..0000000000 --- a/c-api/memory.po +++ /dev/null @@ -1,1223 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/memory.rst:8 -msgid "Memory Management" -msgstr "" - -#: c-api/memory.rst:13 -msgid "Overview" -msgstr "Aperçu" - -#: c-api/memory.rst:15 -msgid "" -"Memory management in Python involves a private heap containing all Python " -"objects and data structures. The management of this private heap is ensured " -"internally by the *Python memory manager*. The Python memory manager has " -"different components which deal with various dynamic storage management " -"aspects, like sharing, segmentation, preallocation or caching." -msgstr "" - -#: c-api/memory.rst:21 -msgid "" -"At the lowest level, a raw memory allocator ensures that there is enough " -"room in the private heap for storing all Python-related data by interacting " -"with the memory manager of the operating system. On top of the raw memory " -"allocator, several object-specific allocators operate on the same heap and " -"implement distinct memory management policies adapted to the peculiarities " -"of every object type. For example, integer objects are managed differently " -"within the heap than strings, tuples or dictionaries because integers imply " -"different storage requirements and speed/space tradeoffs. The Python memory " -"manager thus delegates some of the work to the object-specific allocators, " -"but ensures that the latter operate within the bounds of the private heap." -msgstr "" - -#: c-api/memory.rst:32 -msgid "" -"It is important to understand that the management of the Python heap is " -"performed by the interpreter itself and that the user has no control over " -"it, even if they regularly manipulate object pointers to memory blocks " -"inside that heap. The allocation of heap space for Python objects and other " -"internal buffers is performed on demand by the Python memory manager through " -"the Python/C API functions listed in this document." -msgstr "" - -#: c-api/memory.rst:45 -msgid "" -"To avoid memory corruption, extension writers should never try to operate on " -"Python objects with the functions exported by the C " -"library: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` " -"and :c:func:`free`. This will result in mixed calls between the C " -"allocator and the Python memory manager with fatal consequences, because " -"they implement different algorithms and operate on different heaps. " -"However, one may safely allocate and release memory blocks with the C " -"library allocator for individual purposes, as shown in the following " -"example::" -msgstr "" - -#: c-api/memory.rst:64 -msgid "" -"In this example, the memory request for the I/O buffer is handled by the C " -"library allocator. The Python memory manager is involved only in the " -"allocation of the bytes object returned as a result." -msgstr "" - -#: c-api/memory.rst:68 -msgid "" -"In most situations, however, it is recommended to allocate memory from the " -"Python heap specifically because the latter is under control of the Python " -"memory manager. For example, this is required when the interpreter is " -"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 " -"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 " -"appropriate actions, like garbage collection, memory compaction or other " -"preventive procedures. Note that by using the C library allocator as shown " -"in the previous example, the allocated memory for the I/O buffer escapes " -"completely the Python memory manager." -msgstr "" - -#: c-api/memory.rst:84 -msgid "" -"The :envvar:`PYTHONMALLOC` environment variable can be used to configure the " -"memory allocators used by Python." -msgstr "" - -#: c-api/memory.rst:87 -msgid "" -"The :envvar:`PYTHONMALLOCSTATS` environment variable can be used to print " -"statistics of the :ref:`pymalloc memory allocator ` every time a " -"new pymalloc object arena is created, and on shutdown." -msgstr "" - -#: c-api/memory.rst:92 -msgid "Allocator Domains" -msgstr "" - -#: c-api/memory.rst:96 -msgid "" -"All allocating functions belong to one of three different \"domains\" (see " -"also :c:type:`PyMemAllocatorDomain`). These domains represent different " -"allocation strategies and are optimized for different purposes. The specific " -"details on how every domain allocates memory or what internal functions each " -"domain calls is considered an implementation detail, but for debugging " -"purposes a simplified table can be found at :ref:`default-memory-" -"allocators`. The APIs used to allocate and free a block of memory must be " -"from the same domain. For example, :c:func:`PyMem_Free` must be used to free " -"memory allocated using :c:func:`PyMem_Malloc`." -msgstr "" - -#: c-api/memory.rst:105 -msgid "The three allocation domains are:" -msgstr "" - -#: c-api/memory.rst:107 -msgid "" -"Raw domain: intended for allocating memory for general-purpose memory " -"buffers where the allocation *must* go to the system allocator or where the " -"allocator can operate without an :term:`attached thread state`. The memory " -"is requested directly from the system. See :ref:`Raw Memory Interface `." -msgstr "" - -#: c-api/memory.rst:112 -msgid "" -"\"Mem\" domain: intended for allocating memory for Python buffers and " -"general-purpose memory buffers where the allocation must be performed with " -"an :term:`attached thread state`. The memory is taken from the Python " -"private heap. See :ref:`Memory Interface `." -msgstr "" - -#: c-api/memory.rst:117 -msgid "" -"Object domain: intended for allocating memory for Python objects. The memory " -"is taken from the Python private heap. See :ref:`Object allocators " -"`." -msgstr "" - -#: c-api/memory.rst:122 -msgid "" -"The :term:`free-threaded ` build requires that only Python " -"objects are allocated using the \"object\" domain and that all Python " -"objects are allocated using that domain. This differs from the prior Python " -"versions, where this was only a best practice and not a hard requirement." -msgstr "" - -#: c-api/memory.rst:126 -msgid "" -"For example, buffers (non-Python objects) should be allocated " -"using :c:func:`PyMem_Malloc`, :c:func:`PyMem_RawMalloc`, " -"or :c:func:`malloc`, but not :c:func:`PyObject_Malloc`." -msgstr "" - -#: c-api/memory.rst:129 -msgid "See :ref:`Memory Allocation APIs `." -msgstr "" - -#: c-api/memory.rst:135 -msgid "Raw Memory Interface" -msgstr "" - -#: c-api/memory.rst:137 -msgid "" -"The following function sets are wrappers to the system allocator. These " -"functions are thread-safe, so a :term:`thread state` does not need to " -"be :term:`attached `." -msgstr "" - -#: c-api/memory.rst:141 -msgid "" -"The :ref:`default raw memory allocator ` uses the " -"following functions: :c:func:`malloc`, :c:func:`calloc`, :c:func:`realloc` " -"and :c:func:`!free`; call ``malloc(1)`` (or ``calloc(1, 1)``) when " -"requesting zero bytes." -msgstr "" - -#: c-api/memory.rst:228 c-api/memory.rst:361 -msgid "" -"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:153 -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:238 c-api/memory.rst:371 -msgid "" -"Allocates *nelem* elements each whose size in bytes is *elsize* and returns " -"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:164 -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:251 c-api/memory.rst:384 -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:176 -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:180 -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:184 -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:190 -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:func:`PyMem_RawCalloc`. Otherwise, or if ``PyMem_RawFree(p)`` has " -"been called before, undefined behavior occurs." -msgstr "" - -#: c-api/memory.rst:272 c-api/memory.rst:405 -msgid "If *p* is ``NULL``, no operation is performed." -msgstr "" - -#: c-api/memory.rst:201 -msgid "Memory Interface" -msgstr "" - -#: c-api/memory.rst:340 -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:207 -msgid "" -"In the GIL-enabled build (default build) the :ref:`default memory allocator " -"` uses the :ref:`pymalloc memory allocator " -"`, whereas in the :term:`free-threaded build`, the default is " -"the :ref:`mimalloc memory allocator ` instead." -msgstr "" - -#: c-api/memory.rst:357 -msgid "" -"There must be an :term:`attached thread state` when using these functions." -msgstr "" - -#: c-api/memory.rst:219 -msgid "" -"The default allocator is now pymalloc instead of system :c:func:`malloc`." -msgstr "" - -#: c-api/memory.rst:223 -msgid "" -"In the :term:`free-threaded ` build, the default allocator " -"is now :ref:`mimalloc `." -msgstr "" - -#: c-api/memory.rst:231 -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:242 -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:254 -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:258 -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:261 -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:267 -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:`PyMem_Calloc`. Otherwise, or if ``PyMem_Free(p)`` has been " -"called before, undefined behavior occurs." -msgstr "" - -#: c-api/memory.rst:274 -msgid "" -"The following type-oriented macros are provided for convenience. Note that " -"*TYPE* refers to any C type." -msgstr "" - -#: c-api/memory.rst:280 -msgid "" -"Same as :c:func:`PyMem_Malloc`, but allocates ``(n * sizeof(TYPE))`` bytes " -"of memory. Returns a pointer cast to ``TYPE*``. The memory will not have " -"been initialized in any way." -msgstr "" - -#: c-api/memory.rst:287 -msgid "" -"Same as :c:func:`PyMem_Realloc`, but the memory block is resized to ``(n * " -"sizeof(TYPE))`` bytes. Returns a pointer cast to ``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:292 -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:298 -msgid "Same as :c:func:`PyMem_Free`." -msgstr "" - -#: c-api/memory.rst:302 -msgid "Deprecated aliases" -msgstr "" - -#: c-api/memory.rst:304 -msgid "" -"These are :term:`soft deprecated` aliases to existing functions and macros. " -"They exist solely for backwards compatibility." -msgstr "" - -#: c-api/memory.rst:311 -msgid "Deprecated alias" -msgstr "" - -#: c-api/memory.rst:312 -msgid "Corresponding function or macro" -msgstr "" - -#: c-api/memory.rst:314 -#, fuzzy -msgid ":c:func:`PyMem_Malloc`" -msgstr ":c:func:`PyMem_Calloc`," - -#: c-api/memory.rst:316 -#, fuzzy -msgid ":c:macro:`PyMem_New`" -msgstr ":c:func:`PyMem_Calloc`," - -#: c-api/memory.rst:507 -#, fuzzy -msgid ":c:func:`PyMem_Realloc`" -msgstr ":c:func:`PyMem_Calloc`," - -#: c-api/memory.rst:320 -#, fuzzy -msgid ":c:macro:`PyMem_Resize`" -msgstr ":c:func:`PyMem_Calloc`," - -#: c-api/memory.rst:324 c-api/memory.rst:509 -msgid ":c:func:`PyMem_Free`" -msgstr "" - -#: c-api/memory.rst:328 -msgid "" -"The macros are now aliases of the corresponding functions and macros. " -"Previously, their behavior was the same, but their use did not necessarily " -"preserve binary compatibility across Python versions." -msgstr "" - -#: c-api/memory.rst:338 -msgid "Object allocators" -msgstr "" - -#: c-api/memory.rst:345 -msgid "" -"There is no guarantee that the memory returned by these allocators can be " -"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:350 -msgid "" -"The :ref:`default object allocator ` uses " -"the :ref:`pymalloc memory allocator `. In the :term:`free-" -"threaded ` build, the default is the :ref:`mimalloc memory " -"allocator ` instead." -msgstr "" - -#: c-api/memory.rst:364 -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:375 -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:387 -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:391 -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:394 -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:400 -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:func:`PyObject_Calloc`. Otherwise, or if ``PyObject_Free(p)`` has " -"been called before, undefined behavior occurs." -msgstr "" - -#: c-api/memory.rst:407 -msgid "" -"Do not call this directly to free an object's memory; call the " -"type's :c:member:`~PyTypeObject.tp_free` slot instead." -msgstr "" - -#: c-api/memory.rst:410 -msgid "" -"Do not use this for memory allocated by :c:macro:`PyObject_GC_New` " -"or :c:macro:`PyObject_GC_NewVar`; use :c:func:`PyObject_GC_Del` instead." -msgstr "" - -#: c-api/memory.rst:415 -msgid "" -":c:func:`PyObject_GC_Del` is the equivalent of this function for memory " -"allocated by types that support garbage collection." -msgstr "" - -#: c-api/memory.rst:515 -msgid ":c:func:`PyObject_Malloc`" -msgstr "" - -#: c-api/memory.rst:516 -msgid ":c:func:`PyObject_Realloc`" -msgstr "" - -#: c-api/memory.rst:517 -msgid ":c:func:`PyObject_Calloc`" -msgstr "" - -#: c-api/memory.rst:420 -msgid ":c:macro:`PyObject_New`" -msgstr "" - -#: c-api/memory.rst:421 -msgid ":c:macro:`PyObject_NewVar`" -msgstr "" - -#: c-api/memory.rst:422 -#, fuzzy -msgid ":c:func:`PyType_GenericAlloc`" -msgstr ":c:func:`PyMem_Calloc`," - -#: c-api/memory.rst:423 -msgid ":c:member:`~PyTypeObject.tp_free`" -msgstr "" - -#: c-api/memory.rst:429 -msgid "Default Memory Allocators" -msgstr "" - -#: c-api/memory.rst:431 -msgid "Default memory allocators:" -msgstr "" - -#: c-api/memory.rst:434 -msgid "Configuration" -msgstr "Configuration" - -#: c-api/memory.rst:434 -msgid "Name" -msgstr "Nom" - -#: c-api/memory.rst:434 -msgid "PyMem_RawMalloc" -msgstr "" - -#: c-api/memory.rst:434 -msgid "PyMem_Malloc" -msgstr "" - -#: c-api/memory.rst:434 -msgid "PyObject_Malloc" -msgstr "" - -#: c-api/memory.rst:436 -msgid "Release build" -msgstr "" - -#: c-api/memory.rst:436 -msgid "``\"pymalloc\"``" -msgstr "" - -#: c-api/memory.rst:438 -msgid "``malloc``" -msgstr "" - -#: c-api/memory.rst:436 -msgid "``pymalloc``" -msgstr "" - -#: c-api/memory.rst:437 -msgid "Debug build" -msgstr "" - -#: c-api/memory.rst:437 -msgid "``\"pymalloc_debug\"``" -msgstr "" - -#: c-api/memory.rst:439 -msgid "``malloc`` + debug" -msgstr "" - -#: c-api/memory.rst:437 -msgid "``pymalloc`` + debug" -msgstr "" - -#: c-api/memory.rst:438 -msgid "Release build, without pymalloc" -msgstr "" - -#: c-api/memory.rst:438 -msgid "``\"malloc\"``" -msgstr "" - -#: c-api/memory.rst:439 -msgid "Debug build, without pymalloc" -msgstr "" - -#: c-api/memory.rst:439 -msgid "``\"malloc_debug\"``" -msgstr "" - -#: c-api/memory.rst:440 -msgid "Free-threaded build" -msgstr "" - -#: c-api/memory.rst:440 -msgid "``\"mimalloc\"``" -msgstr "" - -#: c-api/memory.rst:440 -msgid "``mimalloc``" -msgstr "" - -#: c-api/memory.rst:441 -msgid "Free-threaded debug build" -msgstr "" - -#: c-api/memory.rst:441 -msgid "``\"mimalloc_debug\"``" -msgstr "" - -#: c-api/memory.rst:441 -msgid "``mimalloc`` + debug" -msgstr "" - -#: c-api/memory.rst:444 -msgid "Legend:" -msgstr "" - -#: c-api/memory.rst:446 -msgid "Name: value for :envvar:`PYTHONMALLOC` environment variable." -msgstr "" - -#: c-api/memory.rst:447 -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:449 -msgid "``pymalloc``: :ref:`pymalloc memory allocator `." -msgstr "" - -#: c-api/memory.rst:450 -msgid "``mimalloc``: :ref:`mimalloc memory allocator `." -msgstr "" - -#: c-api/memory.rst:451 -msgid "" -"\"+ debug\": with :ref:`debug hooks on the Python memory allocators `." -msgstr "" - -#: c-api/memory.rst:453 -msgid "\"Debug build\": :ref:`Python build in debug mode `." -msgstr "" - -#: c-api/memory.rst:458 -msgid "Customize Memory Allocators" -msgstr "" - -#: c-api/memory.rst:464 -msgid "" -"Structure used to describe a memory block allocator. The structure has the " -"following fields:" -msgstr "" - -#: c-api/memory.rst:723 -msgid "Field" -msgstr "Champ" - -#: c-api/memory.rst:723 -msgid "Meaning" -msgstr "Signification" - -#: c-api/memory.rst:725 -msgid "``void *ctx``" -msgstr "``void *ctx``" - -#: c-api/memory.rst:725 -msgid "user context passed as first argument" -msgstr "" - -#: c-api/memory.rst:472 -msgid "``void* malloc(void *ctx, size_t size)``" -msgstr "``void* malloc(void *ctx, size_t size)``" - -#: c-api/memory.rst:472 -msgid "allocate a memory block" -msgstr "" - -#: c-api/memory.rst:474 -msgid "``void* calloc(void *ctx, size_t nelem, size_t elsize)``" -msgstr "" - -#: c-api/memory.rst:474 -msgid "allocate a memory block initialized with zeros" -msgstr "" - -#: c-api/memory.rst:477 -msgid "``void* realloc(void *ctx, void *ptr, size_t new_size)``" -msgstr "" - -#: c-api/memory.rst:477 -msgid "allocate or resize a memory block" -msgstr "" - -#: c-api/memory.rst:479 -msgid "``void free(void *ctx, void *ptr)``" -msgstr "``void free(void *ctx, void *ptr)``" - -#: c-api/memory.rst:479 -msgid "free a memory block" -msgstr "" - -#: c-api/memory.rst:482 -msgid "" -"The :c:type:`!PyMemAllocator` structure was renamed " -"to :c:type:`PyMemAllocatorEx` and a new ``calloc`` field was added." -msgstr "" - -#: c-api/memory.rst:489 -msgid "Enum used to identify an allocator domain. Domains:" -msgstr "" - -#: c-api/memory.rst:504 c-api/memory.rst:513 -#, fuzzy -msgid "Functions:" -msgstr "Fonctions :" - -#: c-api/memory.rst:497 -#, fuzzy -msgid ":c:func:`PyMem_RawMalloc`" -msgstr ":c:func:`PyMem_RawCalloc`," - -#: c-api/memory.rst:498 -#, fuzzy -msgid ":c:func:`PyMem_RawRealloc`" -msgstr ":c:func:`PyMem_RawCalloc`," - -#: c-api/memory.rst:499 -#, fuzzy -msgid ":c:func:`PyMem_RawCalloc`" -msgstr ":c:func:`PyMem_RawCalloc`," - -#: c-api/memory.rst:500 -msgid ":c:func:`PyMem_RawFree`" -msgstr "" - -#: c-api/memory.rst:506 -#, fuzzy -msgid ":c:func:`PyMem_Malloc`," -msgstr ":c:func:`PyMem_Calloc`," - -#: c-api/memory.rst:508 -#, fuzzy -msgid ":c:func:`PyMem_Calloc`" -msgstr ":c:func:`PyMem_Calloc`," - -#: c-api/memory.rst:518 -msgid ":c:func:`PyObject_Free`" -msgstr "" - -#: c-api/memory.rst:522 -msgid "Get the memory block allocator of the specified domain." -msgstr "" - -#: c-api/memory.rst:527 -msgid "Set the memory block allocator of the specified domain." -msgstr "" - -#: c-api/memory.rst:529 -msgid "" -"The new allocator must return a distinct non-``NULL`` pointer when " -"requesting zero bytes." -msgstr "" - -#: c-api/memory.rst:532 -msgid "" -"For the :c:macro:`PYMEM_DOMAIN_RAW` domain, the allocator must be thread-" -"safe: a :term:`thread state` is not :term:`attached ` " -"when the allocator is called." -msgstr "" - -#: c-api/memory.rst:536 -msgid "" -"For the remaining domains, the allocator must also be thread-safe: the " -"allocator may be called in different interpreters that do not share " -"a :term:`GIL`." -msgstr "" - -#: c-api/memory.rst:540 -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:544 -msgid "" -"See also :c:member:`PyPreConfig.allocator` and :ref:`Preinitialize Python " -"with PyPreConfig `." -msgstr "" - -#: c-api/memory.rst:549 -msgid ":c:func:`PyMem_SetAllocator` does have the following contract:" -msgstr "" - -#: c-api/memory.rst:551 -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 an :term:`attached thread state`). " -"See :ref:`the section on allocator domains ` for more " -"information." -msgstr "" - -#: c-api/memory.rst:559 -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:564 -msgid "All allocators must be thread-safe." -msgstr "" - -#: c-api/memory.rst:570 -msgid "" -"Setup :ref:`debug hooks in the Python memory allocators ` " -"to detect memory errors." -msgstr "" - -#: c-api/memory.rst:577 -msgid "Debug hooks on the Python memory allocators" -msgstr "" - -#: c-api/memory.rst:579 -msgid "" -"When :ref:`Python is built in debug mode `, " -"the :c:func:`PyMem_SetupDebugHooks` function is called at the :ref:`Python " -"preinitialization ` to setup debug hooks on Python memory " -"allocators to detect memory errors." -msgstr "" - -#: c-api/memory.rst:584 -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:587 -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:590 -msgid "" -"These debug hooks fill dynamically allocated memory blocks with special, " -"recognizable bit patterns. Newly allocated memory is filled with the byte " -"``0xCD`` (``PYMEM_CLEANBYTE``), freed memory is filled with the byte " -"``0xDD`` (``PYMEM_DEADBYTE``). Memory blocks are surrounded by \"forbidden " -"bytes\" filled with the byte ``0xFD`` (``PYMEM_FORBIDDENBYTE``). Strings of " -"these bytes are unlikely to be valid addresses, floats, or ASCII strings." -msgstr "" - -#: c-api/memory.rst:597 -msgid "Runtime checks:" -msgstr "" - -#: c-api/memory.rst:599 -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:601 -msgid "Detect write before the start of the buffer (buffer underflow)." -msgstr "" - -#: c-api/memory.rst:602 -msgid "Detect write after the end of the buffer (buffer overflow)." -msgstr "" - -#: c-api/memory.rst:603 -msgid "" -"Check that there is an :term:`attached thread state` when allocator " -"functions of :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) " -"and :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) domains are " -"called." -msgstr "" - -#: c-api/memory.rst:608 -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 " -"displayed if :mod:`tracemalloc` is tracing Python memory allocations and the " -"memory block was traced." -msgstr "" - -#: c-api/memory.rst:613 -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):" -msgstr "" - -#: c-api/memory.rst:619 -msgid "``p[-2*S:-S]``" -msgstr "" - -#: c-api/memory.rst:620 -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:622 -msgid "``p[-S]``" -msgstr "" - -#: c-api/memory.rst:623 -msgid "API identifier (ASCII character):" -msgstr "" - -#: c-api/memory.rst:625 -msgid "``'r'`` for :c:macro:`PYMEM_DOMAIN_RAW`." -msgstr "" - -#: c-api/memory.rst:626 -msgid "``'m'`` for :c:macro:`PYMEM_DOMAIN_MEM`." -msgstr "" - -#: c-api/memory.rst:627 -msgid "``'o'`` for :c:macro:`PYMEM_DOMAIN_OBJ`." -msgstr "" - -#: c-api/memory.rst:629 -msgid "``p[-S+1:0]``" -msgstr "" - -#: c-api/memory.rst:630 -msgid "Copies of PYMEM_FORBIDDENBYTE. Used to catch under- writes and reads." -msgstr "" - -#: c-api/memory.rst:632 -msgid "``p[0:N]``" -msgstr "" - -#: c-api/memory.rst:633 -msgid "" -"The requested memory, filled with copies of PYMEM_CLEANBYTE, used to catch " -"reference to uninitialized memory. When a realloc-like function is called " -"requesting a larger memory block, the new excess bytes are also filled with " -"PYMEM_CLEANBYTE. When a free-like function is called, these are overwritten " -"with PYMEM_DEADBYTE, to catch reference to freed memory. When a realloc- " -"like function is called requesting a smaller memory block, the excess old " -"bytes are also filled with PYMEM_DEADBYTE." -msgstr "" - -#: c-api/memory.rst:641 -msgid "``p[N:N+S]``" -msgstr "" - -#: c-api/memory.rst:642 -msgid "Copies of PYMEM_FORBIDDENBYTE. Used to catch over- writes and reads." -msgstr "" - -#: c-api/memory.rst:644 -msgid "``p[N+S:N+2*S]``" -msgstr "" - -#: c-api/memory.rst:645 -msgid "" -"Only used if the ``PYMEM_DEBUG_SERIALNO`` macro is defined (not defined by " -"default)." -msgstr "" - -#: c-api/memory.rst:648 -msgid "" -"A serial number, incremented by 1 on each call to a malloc-like or realloc-" -"like function. Big-endian :c:type:`size_t`. If \"bad memory\" is detected " -"later, the serial number gives an excellent way to set a breakpoint on the " -"next run, to capture the instant at which this block was passed out. The " -"static function bumpserialno() in obmalloc.c is the only place the serial " -"number is incremented, and exists so you can set such a breakpoint easily." -msgstr "" - -#: c-api/memory.rst:655 -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, " -"diagnostic output is written to stderr, and the program is aborted via " -"Py_FatalError(). The other main failure mode is provoking a memory error " -"when a program reads up one of the special bit patterns and tries to use it " -"as an address. If you get in a debugger then and look at the object, you're " -"likely to see that it's entirely filled with PYMEM_DEADBYTE (meaning freed " -"memory is getting used) or PYMEM_CLEANBYTE (meaning uninitialized memory is " -"getting used)." -msgstr "" - -#: c-api/memory.rst:664 -msgid "" -"The :c:func:`PyMem_SetupDebugHooks` function now also works on Python " -"compiled in release mode. On error, the debug hooks now " -"use :mod:`tracemalloc` to get the traceback where a memory block was " -"allocated. The debug hooks now also check if there is an :term:`attached " -"thread state` when functions of :c:macro:`PYMEM_DOMAIN_OBJ` " -"and :c:macro:`PYMEM_DOMAIN_MEM` domains are called." -msgstr "" - -#: c-api/memory.rst:672 -msgid "" -"Byte patterns ``0xCB`` (``PYMEM_CLEANBYTE``), ``0xDB`` (``PYMEM_DEADBYTE``) " -"and ``0xFB`` (``PYMEM_FORBIDDENBYTE``) have been replaced with ``0xCD``, " -"``0xDD`` and ``0xFD`` to use the same values than Windows CRT debug " -"``malloc()`` and ``free()``." -msgstr "" - -#: c-api/memory.rst:682 -msgid "The pymalloc allocator" -msgstr "" - -#: c-api/memory.rst:684 -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 " -"\"arenas\" with a fixed size of either 256 KiB on 32-bit platforms or 1 MiB " -"on 64-bit platforms. When Python is configured with :option:`--with-pymalloc-" -"hugepages`, the arena size on 64-bit platforms is increased to 2 MiB to " -"match the huge page size, and arena allocation will attempt to use huge " -"pages (``MAP_HUGETLB`` on Linux, ``MEM_LARGE_PAGES`` on Windows) with " -"automatic fallback to regular pages. It falls back " -"to :c:func:`PyMem_RawMalloc` and :c:func:`PyMem_RawRealloc` for allocations " -"larger than 512 bytes." -msgstr "" - -#: c-api/memory.rst:694 -msgid "" -"*pymalloc* is the :ref:`default allocator ` of " -"the :c:macro:`PYMEM_DOMAIN_MEM` (ex: :c:func:`PyMem_Malloc`) " -"and :c:macro:`PYMEM_DOMAIN_OBJ` (ex: :c:func:`PyObject_Malloc`) domains." -msgstr "" - -#: c-api/memory.rst:698 -msgid "The arena allocator uses the following functions:" -msgstr "" - -#: c-api/memory.rst:700 -msgid ":c:func:`!VirtualAlloc` and :c:func:`!VirtualFree` on Windows," -msgstr "" - -#: c-api/memory.rst:701 -msgid ":c:func:`!mmap` and :c:func:`!munmap` if available," -msgstr "" - -#: c-api/memory.rst:702 -msgid ":c:func:`malloc` and :c:func:`free` otherwise." -msgstr "" - -#: c-api/memory.rst:704 -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:708 -msgid "" -"Typically, it makes sense to disable the pymalloc allocator when building " -"Python with AddressSanitizer (:option:`--with-address-sanitizer`) which " -"helps uncover low level bugs within the C code." -msgstr "" - -#: c-api/memory.rst:713 -msgid "Customize pymalloc Arena Allocator" -msgstr "" - -#: c-api/memory.rst:719 -msgid "" -"Structure used to describe an arena allocator. The structure has three " -"fields:" -msgstr "" - -#: c-api/memory.rst:727 -msgid "``void* alloc(void *ctx, size_t size)``" -msgstr "``void* alloc(void *ctx, size_t size)``" - -#: c-api/memory.rst:727 -msgid "allocate an arena of size bytes" -msgstr "" - -#: c-api/memory.rst:729 -#, fuzzy -msgid "``void free(void *ctx, void *ptr, size_t size)``" -msgstr "``void free(void *ctx, void *ptr)``" - -#: c-api/memory.rst:729 -msgid "free an arena" -msgstr "" - -#: c-api/memory.rst:734 -msgid "Get the arena allocator." -msgstr "" - -#: c-api/memory.rst:738 -msgid "Set the arena allocator." -msgstr "" - -#: c-api/memory.rst:743 -msgid "The mimalloc allocator" -msgstr "" - -#: c-api/memory.rst:747 -msgid "" -"Python supports the `mimalloc `__ " -"allocator when the underlying platform support is available. mimalloc is a " -"general purpose allocator with excellent performance characteristics, " -"initially developed by Daan Leijen for the runtime systems of the Koka and " -"Lean languages." -msgstr "" - -#: c-api/memory.rst:753 -msgid "" -"Unlike :ref:`pymalloc `, which is optimized for small objects (512 " -"bytes or fewer), mimalloc handles allocations of any size." -msgstr "" - -#: c-api/memory.rst:756 -msgid "" -"In the :term:`free-threaded ` build, mimalloc is the default " -"and **required** allocator for the :c:macro:`PYMEM_DOMAIN_MEM` " -"and :c:macro:`PYMEM_DOMAIN_OBJ` domains. It cannot be disabled in free-" -"threaded builds. The free-threaded build uses per-thread mimalloc heaps, " -"which allows allocation and deallocation to proceed without locking in most " -"cases." -msgstr "" - -#: c-api/memory.rst:762 -msgid "" -"In the default (non-free-threaded) build, mimalloc is available but not the " -"default allocator. It can be selected at runtime " -"using :envvar:`PYTHONMALLOC`\\ ``=mimalloc`` (or ``mimalloc_debug`` to " -"include :ref:`debug hooks `). It can be disabled at " -"build time using the :option:`--without-mimalloc` configure option, but this " -"option cannot be combined with :option:`--disable-gil`." -msgstr "" - -#: c-api/memory.rst:770 -msgid "tracemalloc C API" -msgstr "" - -#: c-api/memory.rst:776 -msgid "Track an allocated memory block in the :mod:`tracemalloc` module." -msgstr "" - -#: c-api/memory.rst:778 -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:781 -msgid "If memory block is already tracked, update the existing trace." -msgstr "" - -#: c-api/memory.rst:785 -msgid "" -"Untrack an allocated memory block in the :mod:`tracemalloc` module. Do " -"nothing if the block was not tracked." -msgstr "" - -#: c-api/memory.rst:788 -msgid "Return ``-2`` if tracemalloc is disabled, otherwise return ``0``." -msgstr "" - -#: c-api/memory.rst:794 -msgid "Examples" -msgstr "Exemples" - -#: c-api/memory.rst:796 -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:809 -msgid "The same code using the type-oriented function set::" -msgstr "" - -#: c-api/memory.rst:821 -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 " -"memory API family for a given memory block, so that the risk of mixing " -"different allocators is reduced to a minimum. The following code sequence " -"contains two errors, one of which is labeled as *fatal* because it mixes two " -"different allocators operating on different heaps. ::" -msgstr "" - -#: c-api/memory.rst:836 -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:macro:`PyObject_New`, :c:macro:`PyObject_NewVar` " -"and :c:func:`PyObject_Free`." -msgstr "" - -#: c-api/memory.rst:840 -msgid "" -"These will be explained in the next chapter on defining and implementing new " -"object types in C." -msgstr "" - -#~ msgid "``void free(void *ctx, size_t size, void *ptr)``" -#~ msgstr "``void free(void *ctx, size_t size, void *ptr)``" diff --git a/c-api/memoryview.po b/c-api/memoryview.po deleted file mode 100644 index 6c5e840048..0000000000 --- a/c-api/memoryview.po +++ /dev/null @@ -1,132 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2020-09-30 11:10+0200\n" -"Last-Translator: Andy Kwok \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" - -#: c-api/memoryview.rst:9 -msgid "MemoryView objects" -msgstr "Objets de type MemoryView" - -#: c-api/memoryview.rst:11 -msgid "" -"A :class:`memoryview` object exposes the C level :ref:`buffer interface " -"` as a Python object which can then be passed around like any " -"other object." -msgstr "" -"Un objet Python :class:`memoryview` expose le :ref:`protocole tampon " -"` du C. Cet objet peut ensuite être passé comme n'importe " -"quel objet." - -#: c-api/memoryview.rst:18 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python memoryview " -"type. This is the same object as :class:`memoryview` in the Python layer." -msgstr "" - -#: c-api/memoryview.rst:24 -msgid "" -"Create a memoryview object from an object that provides the buffer " -"interface. If *obj* supports writable buffer exports, the memoryview object " -"will be read/write, otherwise it may be either read-only or read/write at " -"the discretion of the exporter." -msgstr "" -"Crée un objet *memoryview* à partir d'un objet implémentant le protocole " -"tampon. Si *obj* permet d'exporter des tampons modifiables, l'objet " -"*memoryview* crée acceptera la lecture et écriture, sinon l'objet crée est " -"soit en lecture seule ou lecture/écriture, à la discrétion de l'*exporteur*." - -#: c-api/memoryview.rst:32 -msgid "Flag to request a readonly buffer." -msgstr "" - -#: c-api/memoryview.rst:37 -msgid "Flag to request a writable buffer." -msgstr "" - -#: c-api/memoryview.rst:42 -msgid "" -"Create a memoryview object using *mem* as the underlying buffer. *flags* can " -"be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." -msgstr "" -"Crée un objet *memoryview* utilisant *mem* comme un tampon sous-jacent. " -"*flags* peut être :c:macro:`PyBUF_READ` ou :c:macro:`PyBUF_WRITE`." - -#: c-api/memoryview.rst:49 -msgid "" -"Create a memoryview object wrapping the given buffer structure *view*. For " -"simple byte buffers, :c:func:`PyMemoryView_FromMemory` is the preferred " -"function." -msgstr "" -"Crée un objet *memoryview* à partir de la structure tampon *view*. Pour de " -"simples tampons d'octets, :c:func:`PyMemoryView_FromMemory` est préférée." - -#: c-api/memoryview.rst:55 -msgid "" -"Create a memoryview object to a :term:`contiguous` chunk of memory (in " -"either 'C' or 'F'ortran *order*) from an object that defines the buffer " -"interface. If memory is contiguous, the memoryview object points to the " -"original memory. Otherwise, a copy is made and the memoryview points to a " -"new bytes object." -msgstr "" -"Crée un objet *memoryview* vers un segment de mémoire :term:`contiguous` " -"(organisé comme en ``'C'`` ou comme en ``'F'`` pour Fortran) à partir d'un " -"objet qui expose le protocole tampon. Si la mémoire est contiguë, l'objet " -"*memoryview* pointe vers la mémoire d'origine. Sinon une copie est faite et " -"la *memoryview* pointe vers un nouvel objet *bytes*." - -#: c-api/memoryview.rst:61 -#, fuzzy -msgid "" -"*buffertype* can be one of :c:macro:`PyBUF_READ` or :c:macro:`PyBUF_WRITE`." -msgstr "" -"Crée un objet *memoryview* utilisant *mem* comme un tampon sous-jacent. " -"*flags* peut être :c:macro:`PyBUF_READ` ou :c:macro:`PyBUF_WRITE`." - -#: c-api/memoryview.rst:66 -#, fuzzy -msgid "" -"Return true if the object *obj* is a memoryview object. It is not currently " -"allowed to create subclasses of :class:`memoryview`. This function always " -"succeeds." -msgstr "" -"Renvoie vrai si l'objet *obj* est un objet *memoryview*. Il n'est pas permis " -"de créer une sous-classe de :class:`memoryview`." - -#: c-api/memoryview.rst:73 -msgid "" -"Return a pointer to the memoryview's private copy of the exporter's buffer. " -"*mview* **must** be a memoryview instance; this macro doesn't check its " -"type, you must do it yourself or you will risk crashes." -msgstr "" -"Retourne un pointeur vers la copie privée du tampon de l'*exporteur* de " -"*memoryview*. *mview* **doit** être une instance de *memoryview*; cette " -"macro ne vérifie pas le type, vous devez le faire vous-même sinon vous " -"pourriez subir un crash." - -#: c-api/memoryview.rst:79 -msgid "" -"Return either a pointer to the exporting object that the memoryview is based " -"on or ``NULL`` if the memoryview has been created by one of the " -"functions :c:func:`PyMemoryView_FromMemory` " -"or :c:func:`PyMemoryView_FromBuffer`. *mview* **must** be a memoryview " -"instance." -msgstr "" -"Renvoie soit un pointeur vers l'objet exporté sur lequel est basé la " -"*memoryview* ou ``NULL`` si la *memoryview* a été crée " -"par :c:func:`PyMemoryView_FromMemory` ou :c:func:`PyMemoryView_FromBuffer`. " -"*mview* **doit** être une instance de *memoryview*." - -#~ msgid "object" -#~ msgstr "objet" diff --git a/c-api/method.po b/c-api/method.po deleted file mode 100644 index f045a427a2..0000000000 --- a/c-api/method.po +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/method.rst:6 -msgid "Instance Method Objects" -msgstr "" - -#: c-api/method.rst:10 -msgid "" -"An instance method is a wrapper for a :c:type:`PyCFunction` and the new way " -"to bind a :c:type:`PyCFunction` to a class object. It replaces the former " -"call ``PyMethod_New(func, NULL, class)``." -msgstr "" - -#: c-api/method.rst:17 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python instance " -"method type. It is not exposed to Python programs." -msgstr "" - -#: c-api/method.rst:23 -msgid "" -"Return true if *o* is an instance method object (has " -"type :c:data:`PyInstanceMethod_Type`). The parameter must not be ``NULL``. " -"This function always succeeds." -msgstr "" - -#: c-api/method.rst:30 -msgid "" -"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 "" - -#: c-api/method.rst:37 -msgid "Return the function object associated with the instance method *im*." -msgstr "" - -#: c-api/method.rst:42 -msgid "" -"Macro version of :c:func:`PyInstanceMethod_Function` which avoids error " -"checking." -msgstr "" - -#: c-api/method.rst:48 -msgid "Method Objects" -msgstr "Objets méthode" - -#: c-api/method.rst:52 -msgid "" -"Methods are bound function objects. Methods are always bound to an instance " -"of a user-defined class. Unbound methods (methods bound to a class object) " -"are no longer available." -msgstr "" - -#: c-api/method.rst:61 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python method type. " -"This is exposed to Python programs as ``types.MethodType``." -msgstr "" - -#: c-api/method.rst:67 -msgid "" -"Return true if *o* is a method object (has type :c:data:`PyMethod_Type`). " -"The parameter must not be ``NULL``. This function always succeeds." -msgstr "" - -#: c-api/method.rst:73 -msgid "" -"Return a new method object, with *func* being any callable object and *self* " -"the instance the method should be bound. *func* is the function that will be " -"called when the method is called. *self* must not be ``NULL``." -msgstr "" - -#: c-api/method.rst:80 -msgid "Return the function object associated with the method *meth*." -msgstr "" - -#: c-api/method.rst:85 -msgid "" -"Macro version of :c:func:`PyMethod_Function` which avoids error checking." -msgstr "" - -#: c-api/method.rst:90 -msgid "Return the instance associated with the method *meth*." -msgstr "" - -#: c-api/method.rst:95 -msgid "Macro version of :c:func:`PyMethod_Self` which avoids error checking." -msgstr "" - -#, fuzzy -#~ msgid "object" -#~ msgstr "Objets méthode" - -#~ msgid "method" -#~ msgstr "méthode" diff --git a/c-api/module.po b/c-api/module.po deleted file mode 100644 index 2305d9b957..0000000000 --- a/c-api/module.po +++ /dev/null @@ -1,1274 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/module.rst:6 -msgid "Module Objects" -msgstr "" - -#: c-api/module.rst:14 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python module type. " -"This is exposed to Python programs as :py:class:`types.ModuleType`." -msgstr "" - -#: c-api/module.rst:20 -msgid "" -"Return true if *p* is a module object, or a subtype of a module object. This " -"function always succeeds." -msgstr "" - -#: c-api/module.rst:26 -msgid "" -"Return true if *p* is a module object, but not a subtype " -"of :c:data:`PyModule_Type`. This function always succeeds." -msgstr "" - -#: c-api/module.rst:39 -msgid "" -"Return a new module object with :attr:`module.__name__` set to *name*. The " -"module's :attr:`!" -"__name__`, :attr:`~module.__doc__`, :attr:`~module.__package__` " -"and :attr:`~module.__loader__` attributes are filled in (all but :attr:`!" -"__name__` are set to ``None``). The caller is responsible for setting " -"a :attr:`~module.__file__` attribute." -msgstr "" - -#: c-api/module.rst:819 c-api/module.rst:850 -msgid "Return ``NULL`` with an exception set on error." -msgstr "" - -#: c-api/module.rst:49 -msgid "" -":attr:`~module.__package__` and :attr:`~module.__loader__` are now set to " -"``None``." -msgstr "" - -#: c-api/module.rst:56 -msgid "" -"Similar to :c:func:`PyModule_NewObject`, but the name is a UTF-8 encoded " -"string instead of a Unicode object." -msgstr "" - -#: c-api/module.rst:64 -msgid "" -"Return the dictionary object that implements *module*'s namespace; this " -"object is the same as the :attr:`~object.__dict__` attribute of the module " -"object. If *module* is not a module object (or a subtype of a module " -"object), :exc:`SystemError` is raised and ``NULL`` is returned." -msgstr "" - -#: c-api/module.rst:69 -msgid "" -"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:73 -msgid "" -"The returned reference is borrowed from the module; it is valid until the " -"module is destroyed." -msgstr "" - -#: c-api/module.rst:83 -msgid "" -"Return *module*'s :attr:`~module.__name__` value. If the module does not " -"provide one, or if it is not a string, :exc:`SystemError` is raised and " -"``NULL`` is returned." -msgstr "" - -#: c-api/module.rst:92 -msgid "" -"Similar to :c:func:`PyModule_GetNameObject` but return the name encoded to " -"``'utf-8'``." -msgstr "" - -#: c-api/module.rst:95 -msgid "" -"The returned buffer is only valid until the module is renamed or destroyed. " -"Note that Python code may rename a module by setting " -"its :py:attr:`~module.__name__` attribute." -msgstr "" - -#: c-api/module.rst:101 -msgid "" -"Return a pointer to the :c:type:`PyModuleDef` struct from which the module " -"was created, or ``NULL`` if the module wasn't created from a definition." -msgstr "" - -#: c-api/module.rst:104 -msgid "" -"On error, return ``NULL`` with an exception set. " -"Use :c:func:`PyErr_Occurred` to tell this case apart from a " -"missing :c:type:`!PyModuleDef`." -msgstr "" - -#: c-api/module.rst:115 -msgid "" -"Return the name of the file from which *module* was loaded using " -"*module*'s :attr:`~module.__file__` attribute. If this is not defined, or " -"if it is not a string, raise :exc:`SystemError` and return ``NULL``; " -"otherwise return a reference to a Unicode object." -msgstr "" - -#: c-api/module.rst:125 -msgid "" -"Similar to :c:func:`PyModule_GetFilenameObject` but return the filename " -"encoded to 'utf-8'." -msgstr "" - -#: c-api/module.rst:128 -msgid "" -"The returned buffer is only valid until the " -"module's :py:attr:`~module.__file__` attribute is reassigned or the module " -"is destroyed." -msgstr "" - -#: c-api/module.rst:131 -msgid "" -":c:func:`PyModule_GetFilename` raises :exc:`UnicodeEncodeError` on " -"unencodable filenames, use :c:func:`PyModule_GetFilenameObject` instead." -msgstr "" - -#: c-api/module.rst:140 -msgid "Module definition" -msgstr "" - -#: c-api/module.rst:142 -msgid "" -"Modules created using the C API are typically defined using an array " -"of :c:type:`PySlot` structs, which provides a \"description\" of how a " -"module should be created. See :ref:`capi-slots` for more information on " -"slots in general." -msgstr "" - -#: c-api/module.rst:149 -msgid "" -"Previously, a :c:type:`PyModuleDef` struct was necessary to define modules. " -"The older way of defining modules is still available: consult either " -"the :ref:`pymoduledef` section or earlier versions of this documentation if " -"you plan to support earlier Python versions." -msgstr "" - -#: c-api/module.rst:154 -msgid "" -"The slots array is usually used to define an extension module's “main” " -"module object (see :ref:`extension-modules` for details). It can also be " -"used to :ref:`create extension modules dynamically `." -msgstr "" - -#: c-api/module.rst:159 -msgid "" -"Unless specified otherwise, the same slot ID may not be repeated in an array " -"of slots." -msgstr "" - -#: c-api/module.rst:164 -msgid "Metadata slots" -msgstr "" - -#: c-api/module.rst:168 -msgid "" -":c:member:`Slot ID ` for the name of the new module, as a NUL-" -"terminated UTF8-encoded ``const char *``." -msgstr "" - -#: c-api/module.rst:171 -msgid "" -"Note that modules are typically created using " -"a :py:class:`~importlib.machinery.ModuleSpec`, and when they are, the name " -"from the spec will be used instead of :c:data:`!Py_mod_name`. However, it is " -"still recommended to include this slot for introspection and debugging " -"purposes." -msgstr "" - -#: c-api/module.rst:179 -msgid "" -"Use :c:member:`PyModuleDef.m_name` instead to support previous versions." -msgstr "" - -#: c-api/module.rst:183 -msgid "" -":c:type:`Slot ID ` for the docstring of the new module, as a " -"NUL-terminated UTF8-encoded ``const char *``." -msgstr "" - -#: c-api/module.rst:186 -msgid "Usually it is set to a variable created with :c:macro:`PyDoc_STRVAR`." -msgstr "" - -#: c-api/module.rst:190 -msgid "Use :c:member:`PyModuleDef.m_doc` instead to support previous versions." -msgstr "" - -#: c-api/module.rst:194 -msgid "Feature slots" -msgstr "" - -#: c-api/module.rst:198 -msgid "" -":c:member:`Slot ID ` whose value points to " -"a :c:struct:`PyABIInfo` structure describing the ABI that the extension is " -"using." -msgstr "" - -#: c-api/module.rst:202 -msgid "" -"A suitable :c:struct:`!PyABIInfo` variable can be defined using " -"the :c:macro:`PyABIInfo_VAR` macro, as in:" -msgstr "" - -#: c-api/module.rst:214 -msgid "" -"When creating a module, Python checks the value of this slot " -"using :c:func:`PyABIInfo_Check`." -msgstr "" - -#: c-api/module.rst:217 -msgid "" -"This slot is required, except for modules created " -"from :c:struct:`PyModuleDef`." -msgstr "" - -#: c-api/module.rst:254 -msgid ":c:member:`Slot ID ` whose value is one of:" -msgstr "" - -#: c-api/module.rst:230 -msgid "The module does not support being imported in subinterpreters." -msgstr "" - -#: c-api/module.rst:234 -msgid "" -"The module supports being imported in subinterpreters, but only when they " -"share the main interpreter's GIL. (See :ref:`isolating-extensions-howto`.)" -msgstr "" - -#: c-api/module.rst:240 -msgid "" -"The module supports being imported in subinterpreters, even when they have " -"their own GIL. (See :ref:`isolating-extensions-howto`.)" -msgstr "" - -#: c-api/module.rst:244 -msgid "" -"This slot determines whether or not importing this module in a " -"subinterpreter will fail." -msgstr "" - -#: c-api/module.rst:247 -msgid "" -"If ``Py_mod_multiple_interpreters`` is not specified, the import machinery " -"defaults to ``Py_MOD_MULTIPLE_INTERPRETERS_SUPPORTED``." -msgstr "" - -#: c-api/module.rst:260 -msgid "" -"The module depends on the presence of the global interpreter lock (GIL), and " -"may access global state without synchronization." -msgstr "" - -#: c-api/module.rst:265 -msgid "The module is safe to run without an active GIL." -msgstr "" - -#: c-api/module.rst:267 -msgid "" -"This slot is ignored by Python builds not configured with :option:`--disable-" -"gil`. Otherwise, it determines whether or not importing this module will " -"cause the GIL to be automatically enabled. See :ref:`whatsnew313-free-" -"threaded-cpython` for more detail." -msgstr "" - -#: c-api/module.rst:272 -msgid "" -"If ``Py_mod_gil`` is not specified, the import machinery defaults to " -"``Py_MOD_GIL_USED``." -msgstr "" - -#: c-api/module.rst:279 -msgid "Creation and initialization slots" -msgstr "" - -#: c-api/module.rst:283 -msgid "" -":c:member:`Slot ID ` for a function that creates the module " -"object itself. The function must have the signature:" -msgstr "" - -#: c-api/module.rst:291 -msgid "The function will be called with:" -msgstr "" - -#: c-api/module.rst:293 -msgid "" -"*spec*: a ``ModuleSpec``-like object, meaning that any attributes defined " -"for :py:class:`importlib.machinery.ModuleSpec` have matching semantics. " -"However, any of the attributes may be missing." -msgstr "" - -#: c-api/module.rst:296 -msgid "" -"*def*: ``NULL``, or the module definition if the module is created from one." -msgstr "" - -#: c-api/module.rst:298 -msgid "" -"The function should return a new module object, or set an error and return " -"``NULL``." -msgstr "" - -#: c-api/module.rst:301 -msgid "" -"This function should be kept minimal. In particular, it should not call " -"arbitrary Python code, as trying to import the same module again may result " -"in an infinite loop." -msgstr "" - -#: c-api/module.rst:305 -msgid "" -"If ``Py_mod_create`` is not specified, the import machinery will create a " -"normal module object using :c:func:`PyModule_New`. The name is taken from " -"*spec*, not the definition, to allow extension modules to dynamically adjust " -"to their place in the module hierarchy and be imported under different names " -"through symlinks, all while sharing a single module definition." -msgstr "" - -#: c-api/module.rst:311 -msgid "" -"There is no requirement for the returned object to be an instance " -"of :c:type:`PyModule_Type`. However, some slots may only be used " -"with :c:type:`!PyModule_Type` instances; in particular:" -msgstr "" - -#: c-api/module.rst:316 -msgid ":c:macro:`Py_mod_exec`," -msgstr "" - -#: c-api/module.rst:317 -msgid "" -":ref:`module state slots ` (``Py_mod_state_*``)," -msgstr "" - -#: c-api/module.rst:318 -msgid ":c:macro:`Py_mod_token`." -msgstr "" - -#: c-api/module.rst:324 -msgid "" -"The *slots* argument may be a ``ModuleSpec``-like object, rather than a " -"true :py:class:`~importlib.machinery.ModuleSpec` instance. Note that " -"previous versions of CPython did not enforce this." -msgstr "" - -#: c-api/module.rst:328 -msgid "" -"The *def* argument may now be ``NULL``, since modules are not necessarily " -"made from definitions." -msgstr "" - -#: c-api/module.rst:333 -msgid "" -":c:member:`Slot ID ` for a function that will :dfn:`execute`, " -"or initialize, the module. This function does the equivalent to executing " -"the code of a Python module: typically, it adds classes and constants to the " -"module. The signature of the function is:" -msgstr "" - -#: c-api/module.rst:343 -msgid "" -"See the :ref:`capi-module-support-functions` section for some useful " -"functions to call." -msgstr "" - -#: c-api/module.rst:346 -msgid "" -"For backwards compatibility, the :c:type:`PyModuleDef.m_slots` array may " -"contain multiple :c:macro:`!Py_mod_exec` slots; these are processed in the " -"order they appear in the array. Elsewhere (that is, in arguments " -"to :c:func:`PyModule_FromSlotsAndSpec` and in return values " -"of :samp:`PyModExport_{}`), repeating the slot is not allowed." -msgstr "" - -#: c-api/module.rst:357 -msgid "" -"Repeated ``Py_mod_exec`` slots are disallowed, except " -"in :c:type:`PyModuleDef.m_slots`." -msgstr "" - -#: c-api/module.rst:362 -msgid "" -":c:member:`Slot ID ` for a table of module-level functions, as " -"an array of :c:type:`PyMethodDef` values suitable as the *functions* " -"argument to :c:func:`PyModule_AddFunctions`." -msgstr "" - -#: c-api/module.rst:366 -msgid "" -"Like other slot IDs, a slots array may only contain one :c:macro:`!" -"Py_mod_methods` entry. To add functions from multiple :c:type:`PyMethodDef` " -"arrays, call :c:func:`PyModule_AddFunctions` in the :c:macro:`Py_mod_exec` " -"function." -msgstr "" - -#: c-api/module.rst:371 -msgid "" -"The table must be statically allocated (or otherwise guaranteed to outlive " -"the module object)." -msgstr "" - -#: c-api/module.rst:376 -msgid "" -"Use :c:member:`PyModuleDef.m_methods` instead to support previous versions." -msgstr "" - -#: c-api/module.rst:381 -msgid "Module state" -msgstr "" - -#: c-api/module.rst:383 -msgid "" -"Extension modules can have *module state* -- a piece of memory that is " -"allocated on module creation, and freed when the module object is " -"deallocated. The module state is specified using :ref:`dedicated slots `." -msgstr "" - -#: c-api/module.rst:388 -msgid "" -"A typical use of module state is storing an exception type -- or indeed " -"*any* type object defined by the module --" -msgstr "" - -#: c-api/module.rst:391 -msgid "" -"Unlike the module's Python attributes, Python code cannot replace or delete " -"data stored in module state." -msgstr "" - -#: c-api/module.rst:394 -msgid "" -"Keeping per-module information in attributes and module state, rather than " -"in static globals, makes module objects *isolated* and safer for use in " -"multiple sub-interpreters. It also helps Python do an orderly clean-up when " -"it shuts down." -msgstr "" - -#: c-api/module.rst:399 -msgid "" -"Extensions that keep references to Python objects as part of module state " -"must implement :c:macro:`Py_mod_state_traverse` " -"and :c:macro:`Py_mod_state_clear` functions to avoid reference leaks." -msgstr "" - -#: c-api/module.rst:403 -msgid "To retrieve the state from a given module, use the following functions:" -msgstr "" - -#: c-api/module.rst:407 -msgid "" -"Return the \"state\" of the module, that is, a pointer to the block of " -"memory allocated at module creation time, or ``NULL``. " -"See :c:macro:`Py_mod_state_size`." -msgstr "" - -#: c-api/module.rst:411 -msgid "" -"On error, return ``NULL`` with an exception set. " -"Use :c:func:`PyErr_Occurred` to tell this case apart from missing module " -"state." -msgstr "" - -#: c-api/module.rst:418 -msgid "" -"Set *\\*result* to the size of *module*'s state, as specified " -"using :c:macro:`Py_mod_state_size` (or :c:member:`PyModuleDef.m_size`), and " -"return 0." -msgstr "" - -#: c-api/module.rst:422 -msgid "On error, set *\\*result* to -1, and return -1 with an exception set." -msgstr "" - -#: c-api/module.rst:431 -msgid "Slots for defining module state" -msgstr "" - -#: c-api/module.rst:433 -msgid "" -"The following :c:member:`slot IDs ` are available for " -"defining the module state." -msgstr "" - -#: c-api/module.rst:438 -msgid "" -":c:member:`Slot ID ` for the size of the module state, in " -"bytes." -msgstr "" - -#: c-api/module.rst:441 -msgid "" -"Setting the value to a non-negative value means that the module can be re-" -"initialized and specifies the additional amount of memory it requires for " -"its state." -msgstr "" - -#: c-api/module.rst:445 -msgid "See :PEP:`3121` for more details." -msgstr "" - -#: c-api/module.rst:447 -msgid "" -"Use :c:func:`PyModule_GetStateSize` to retrieve the size of a given module." -msgstr "" - -#: c-api/module.rst:474 -msgid "" -"Use :c:member:`PyModuleDef.m_size` instead to support previous versions." -msgstr "" - -#: c-api/module.rst:455 -msgid "" -":c:member:`Slot ID ` for a traversal function to call during " -"GC traversal of the module object." -msgstr "" - -#: c-api/module.rst:458 -msgid "" -"The signature of the function, and meanings of the arguments, is similar as " -"for :c:member:`PyTypeObject.tp_traverse`:" -msgstr "" - -#: c-api/module.rst:487 c-api/module.rst:515 -msgid "" -"This function is not called if the module state was requested but is not " -"allocated yet. This is the case immediately after the module is created and " -"before the module is executed (:c:data:`Py_mod_exec` function). More " -"precisely, this function is not called if the state size " -"(:c:data:`Py_mod_state_size`) is greater than 0 and the module state (as " -"returned by :c:func:`PyModule_GetState`) is ``NULL``." -msgstr "" - -#: c-api/module.rst:478 -msgid "" -":c:member:`Slot ID ` for a clear function to call during GC " -"clearing of the module object." -msgstr "" - -#: c-api/module.rst:509 -msgid "The signature of the function is:" -msgstr "" - -#: c-api/module.rst:494 -msgid "" -"Like :c:member:`PyTypeObject.tp_clear`, this function is not *always* called " -"before a module is deallocated. For example, when reference counting is " -"enough to determine that an object is no longer used, the cyclic garbage " -"collector is not involved and the :c:macro:`Py_mod_state_free` function is " -"called directly." -msgstr "" - -#: c-api/module.rst:502 -msgid "" -"Use :c:member:`PyModuleDef.m_clear` instead to support previous versions." -msgstr "" - -#: c-api/module.rst:506 -msgid "" -":c:member:`Slot ID ` for a function to call during " -"deallocation of the module object." -msgstr "" - -#: c-api/module.rst:524 -msgid "" -"Use :c:member:`PyModuleDef.m_free` instead to support previous versions." -msgstr "" - -#: c-api/module.rst:530 -msgid "Module token" -msgstr "" - -#: c-api/module.rst:532 -msgid "" -"Each module may have an associated *token*: a pointer-sized value intended " -"to identify of the module state's memory layout. This means that if you have " -"a module object, but you are not sure if it “belongs” to your extension, you " -"can check using code like this:" -msgstr "" - -#: c-api/module.rst:553 -msgid "" -"A module's token -- and the *your_token* value to use in the above code -- " -"is:" -msgstr "" - -#: c-api/module.rst:555 -msgid "" -"For modules created with :c:type:`PyModuleDef`: the address of " -"that :c:type:`PyModuleDef`;" -msgstr "" - -#: c-api/module.rst:557 -msgid "" -"For modules defined with the :c:macro:`Py_mod_token` slot: the value of that " -"slot;" -msgstr "" - -#: c-api/module.rst:559 -msgid "" -"For modules created from an ``PyModExport_*`` :ref:`export hook `: the slots array that the export hook returned (unless " -"overridden with :c:macro:`Py_mod_token`)." -msgstr "" - -#: c-api/module.rst:565 -msgid ":c:member:`Slot ID ` for the module token." -msgstr "" - -#: c-api/module.rst:567 -msgid "" -"If you use this slot to set the module token (rather than rely on the " -"default), you must ensure that:" -msgstr "" - -#: c-api/module.rst:570 -msgid "" -"The pointer outlives the class, so it's not reused for something else while " -"the class exists." -msgstr "" - -#: c-api/module.rst:572 -msgid "" -"It \"belongs\" to the extension module where the class lives, so it will not " -"clash with other extensions." -msgstr "" - -#: c-api/module.rst:574 -msgid "" -"If the token points to a :c:type:`PyModuleDef` struct, the module should " -"behave as if it was created from that :c:type:`PyModuleDef`. In particular, " -"the module state must have matching layout and semantics." -msgstr "" - -#: c-api/module.rst:578 -msgid "" -"Modules created from :c:type:`PyModuleDef` always use the address of " -"the :c:type:`PyModuleDef` as the token. This means that :c:macro:`!" -"Py_mod_token` cannot be used in :c:member:`PyModuleDef.m_slots`." -msgstr "" - -#: c-api/module.rst:587 -msgid "Set *\\*result* to the module token for *module* and return 0." -msgstr "" - -#: c-api/module.rst:589 -msgid "On error, set *\\*result* to NULL, and return -1 with an exception set." -msgstr "" - -#: c-api/module.rst:593 -msgid "See also :c:func:`PyType_GetModuleByToken`." -msgstr "" - -#: c-api/module.rst:599 -msgid "Creating extension modules dynamically" -msgstr "" - -#: c-api/module.rst:601 -msgid "" -"The following functions may be used to create an extension module " -"dynamically, rather than from an extension's :ref:`export hook `." -msgstr "" - -#: c-api/module.rst:606 -msgid "" -"Create a new module object, given an array of :ref:`slots " -"` and the :py:class:`~importlib.machinery.ModuleSpec` " -"*spec*." -msgstr "" - -#: c-api/module.rst:609 -msgid "" -"The *slots* argument must point to an array of :c:type:`PySlot` structures, " -"terminated by an entry with slot ID of 0 (typically written " -"as :c:macro:`PySlot_END`). The array must include a :c:data:`Py_mod_abi` " -"entry." -msgstr "" - -#: c-api/module.rst:614 -msgid "" -"The *spec* argument may be any ``ModuleSpec``-like object, as described " -"in :c:macro:`Py_mod_create` documentation. Currently, the *spec* must have a " -"``name`` attribute." -msgstr "" - -#: c-api/module.rst:618 -msgid "" -"On success, return the new module. On error, return ``NULL`` with an " -"exception set." -msgstr "" - -#: c-api/module.rst:621 -msgid "" -"Note that this does not process the module's execution slot " -"(:c:data:`Py_mod_exec`). Both :c:func:`!PyModule_FromSlotsAndSpec` " -"and :c:func:`PyModule_Exec` must be called to fully initialize a module. " -"(See also :ref:`multi-phase-initialization`.)" -msgstr "" - -#: c-api/module.rst:631 -msgid "Execute the :c:data:`Py_mod_exec` slot(s) of *module*." -msgstr "" - -#: c-api/module.rst:633 -msgid "On success, return 0. On error, return -1 with an exception set." -msgstr "" - -#: c-api/module.rst:636 -msgid "" -"For clarity: If *module* has no slots, for example if it uses :ref:`legacy " -"single-phase initialization `, this function " -"does nothing and returns 0." -msgstr "" - -#: c-api/module.rst:647 -msgid "Module definition struct" -msgstr "" - -#: c-api/module.rst:649 -msgid "" -"Traditionally, extension modules were defined using a *module definition* as " -"the “description\" of how a module should be created. Rather than using an " -"array of :ref:`slots ` directly, the definition has " -"dedicated members for most common functionality, and allows additional slots " -"as an extension mechanism." -msgstr "" - -#: c-api/module.rst:655 -msgid "" -"This way of defining modules is still available and there are no plans to " -"remove it." -msgstr "" - -#: c-api/module.rst:660 -msgid "" -"The module definition struct, which holds information needed to create a " -"module object." -msgstr "" - -#: c-api/module.rst:663 -msgid "" -"This structure must be statically allocated (or be otherwise guaranteed to " -"be valid while any modules created from it exist). Usually, there is only " -"one variable of this type for each extension module defined this way." -msgstr "" - -#: c-api/module.rst:668 -msgid "" -"The struct, including all members, is part of the :ref:`Stable ABI ` for non-free-threaded builds (``abi3``). In the Stable ABI for free-" -"threaded builds (``abi3t``), this struct is opaque, and unusable in " -"practice; see :ref:`pymoduledef_slot` for a replacement." -msgstr "" - -#: c-api/module.rst:676 -msgid "Always initialize this member to :c:macro:`PyModuleDef_HEAD_INIT`:" -msgstr "" - -#: c-api/module.rst:682 -msgid "The type of :c:member:`!PyModuleDef.m_base`." -msgstr "" - -#: c-api/module.rst:684 -msgid "" -"The struct is part of the :ref:`Stable ABI ` for non-free-" -"threaded builds (``abi3``). In the Stable ABI for Free-Threaded Builds " -"(``abi3t``), this struct is opaque, and unusable in practice." -msgstr "" - -#: c-api/module.rst:691 -msgid "The required initial value for :c:member:`!PyModuleDef.m_base`." -msgstr "" - -#: c-api/module.rst:695 -msgid "Corresponds to the :c:macro:`Py_mod_name` slot." -msgstr "" - -#: c-api/module.rst:699 -msgid "" -"These members correspond to the :c:macro:`Py_mod_doc` slot. Setting this to " -"NULL is equivalent to omitting the slot." -msgstr "" - -#: c-api/module.rst:704 -msgid "" -"Corresponds to the :c:macro:`Py_mod_state_size` slot. Setting this to zero " -"is equivalent to omitting the slot." -msgstr "" - -#: c-api/module.rst:707 -msgid "" -"When using :ref:`legacy single-phase initialization ` or when creating modules dynamically " -"using :c:func:`PyModule_Create` or :c:func:`PyModule_Create2`, :c:member:`!" -"m_size` may be set to -1. This indicates that the module does not support " -"sub-interpreters, because it has global state." -msgstr "" - -#: c-api/module.rst:715 -msgid "" -"Corresponds to the :c:macro:`Py_mod_methods` slot. Setting this to NULL is " -"equivalent to omitting the slot." -msgstr "" - -#: c-api/module.rst:720 -msgid "" -"An array of additional slots, terminated by a ``{0, NULL}`` entry. Note that " -"the entries use the older :c:type:`PyModuleDef_Slot` structure, rather " -"than :c:type:`PySlot`." -msgstr "" - -#: c-api/module.rst:724 -msgid "" -"If the array contains slots corresponding to :c:type:`PyModuleDef` members, " -"the values must match. For example, if you use :c:macro:`Py_mod_name` " -"in :c:member:`!m_slots`, :c:member:`PyModuleDef.m_name` must be set to the " -"same pointer (not just an equal string)." -msgstr "" - -#: c-api/module.rst:732 -msgid "" -"Prior to version 3.5, this member was always set to ``NULL``, and was " -"defined as:" -msgstr "" - -#: c-api/module.rst:741 -msgid "Older structure defining additional slots of a module." -msgstr "" - -#: c-api/module.rst:743 -msgid "" -"Note that a :c:type:`!PyModuleDef_Slot` array may be included in a :c:type:`!" -"PySlot` array using :c:macro:`Py_mod_slots`, and vice versa " -"using :c:macro:`Py_slot_subslots`." -msgstr "" - -#: c-api/module.rst:747 -msgid "" -"Each :c:type:`!PyModuleDef_Slot` structure ``modslot`` is interpreted as the " -"following :c:type:`PySlot` structure::" -msgstr "" - -#: c-api/module.rst:756 -msgid "" -"where ``sub_static`` is ``PySlot_STATIC`` if the slot requires the flag " -"(such as for :c:macro:`Py_mod_methods`), or if this flag is present on the " -"\"parent\" :c:macro:`!Py_mod_slots` slot (if any)." -msgstr "" - -#: c-api/module.rst:762 -msgid "Corresponds to :c:member:`PySlot.sl_id`." -msgstr "" - -#: c-api/module.rst:766 -msgid "Corresponds to :c:member:`PySlot.sl_ptr`." -msgstr "" - -#: c-api/module.rst:774 -msgid "" -"These members correspond to " -"the :c:macro:`Py_mod_state_traverse`, :c:macro:`Py_mod_state_clear`, " -"and :c:macro:`Py_mod_state_free` slots, respectively." -msgstr "" - -#: c-api/module.rst:778 -msgid "" -"Setting these members to NULL is equivalent to omitting the corresponding " -"slots." -msgstr "" - -#: c-api/module.rst:783 -msgid "" -":c:member:`m_traverse`, :c:member:`m_clear` and :c:member:`m_free` functions " -"are no longer called before the module state is allocated." -msgstr "" - -#: c-api/module.rst:789 -msgid "The type of ``PyModuleDef`` objects." -msgstr "" - -#: c-api/module.rst:794 -msgid "" -":c:member:`Slot ID ` that works " -"like :c:macro:`Py_slot_subslots`, except it specifies an array " -"of :c:type:`PyModuleDef_Slot` structures." -msgstr "" - -#: c-api/module.rst:802 -msgid "" -"The following API can be used to create modules from a :c:type:`!" -"PyModuleDef` struct:" -msgstr "" - -#: c-api/module.rst:807 -msgid "" -"Create a new module object, given the definition in *def*. This is a macro " -"that calls :c:func:`PyModule_Create2` with *module_api_version* set " -"to :c:macro:`PYTHON_API_VERSION`, or to :c:macro:`PYTHON_ABI_VERSION` if " -"using the :ref:`limited API `." -msgstr "" - -#: c-api/module.rst:815 -msgid "" -"Create a new module object, given the definition in *def*, 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:821 -msgid "" -"This function does not support slots. The :c:member:`~PyModuleDef.m_slots` " -"member of *def* must be ``NULL``." -msgstr "" - -#: c-api/module.rst:827 -msgid "" -"Most uses of this function should be using :c:func:`PyModule_Create` " -"instead; only use this if you are sure you need it." -msgstr "" - -#: c-api/module.rst:832 -msgid "" -"This macro calls :c:func:`PyModule_FromDefAndSpec2` with " -"*module_api_version* set to :c:macro:`PYTHON_API_VERSION`, or " -"to :c:macro:`PYTHON_ABI_VERSION` if using the :ref:`limited API `." -msgstr "" - -#: c-api/module.rst:865 -msgid "Prefer :c:func:`PyModule_FromSlotsAndSpec` in new code." -msgstr "" - -#: c-api/module.rst:845 -msgid "" -"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:852 -msgid "" -"Note that this does not process execution slots (:c:data:`Py_mod_exec`). " -"Both ``PyModule_FromDefAndSpec`` and ``PyModule_ExecDef`` must be called to " -"fully initialize a module." -msgstr "" - -#: c-api/module.rst:858 -msgid "" -"Most uses of this function should be using :c:func:`PyModule_FromDefAndSpec` " -"instead; only use this if you are sure you need it." -msgstr "" - -#: c-api/module.rst:869 -msgid "Process any execution slots (:c:data:`Py_mod_exec`) given in *def*." -msgstr "" - -#: c-api/module.rst:875 -msgid "" -"To run a module's own execution slots, prefer :c:func:`PyModule_Exec`, which " -"works on modules that were not created from a :c:type:`PyModuleDef` " -"structure." -msgstr "" - -#: c-api/module.rst:882 -msgid "" -"The C API version, as an integer (``1013``) and string (``\"1013\"``), " -"respectively. Defined for backwards compatibility." -msgstr "" - -#: c-api/module.rst:893 -msgid "" -"Currently, this constant is not updated in new Python versions, and is not " -"useful for versioning. This may change in the future." -msgstr "" - -#: c-api/module.rst:891 -msgid "" -"Defined as ``3`` and ``\"3\"``, respectively, for backwards compatibility." -msgstr "" - -#: c-api/module.rst:900 -msgid "Support functions" -msgstr "" - -#: c-api/module.rst:902 -msgid "" -"The following functions are provided to help initialize a module object. " -"They are intended for a module's execution slot (:c:data:`Py_mod_exec`), the " -"initialization function for legacy :ref:`single-phase initialization `, or code that creates modules dynamically." -msgstr "" - -#: c-api/module.rst:909 -msgid "" -"Add an object to *module* as *name*. This is a convenience function which " -"can be used from the module's initialization function." -msgstr "" - -#: c-api/module.rst:912 -msgid "" -"On success, return ``0``. On error, raise an exception and return ``-1``." -msgstr "" - -#: c-api/module.rst:965 c-api/module.rst:992 -msgid "Example usage::" -msgstr "Exemple d'utilisation ::" - -#: c-api/module.rst:928 -msgid "" -"To be convenient, the function accepts ``NULL`` *value* with an exception " -"set. In this case, return ``-1`` and just leave the raised exception " -"unchanged." -msgstr "" - -#: c-api/module.rst:932 -msgid "" -"The example can also be written without checking explicitly if *obj* is " -"``NULL``::" -msgstr "" - -#: c-api/module.rst:944 -msgid "" -"Note that ``Py_XDECREF()`` should be used instead of ``Py_DECREF()`` in this " -"case, since *obj* can be ``NULL``." -msgstr "" - -#: c-api/module.rst:947 -msgid "" -"The number of different *name* strings passed to this function should be " -"kept small, usually by only using statically allocated strings as *name*. " -"For names that aren't known at compile time, prefer " -"calling :c:func:`PyUnicode_FromString` and :c:func:`PyObject_SetAttr` " -"directly. For more details, see :c:func:`PyUnicode_InternFromString`, which " -"may be used internally to create a key object." -msgstr "" - -#: c-api/module.rst:960 -msgid "" -"Similar to :c:func:`PyModule_AddObjectRef`, but \"steals\" a reference to " -"*value*. It can be called with a result of function that returns a new " -"reference without bothering to check its result or even saving it to a " -"variable." -msgstr "" - -#: c-api/module.rst:976 -msgid "" -"Similar to :c:func:`PyModule_AddObjectRef`, but steals a reference to " -"*value* on success (if it returns ``0``)." -msgstr "" - -#: c-api/module.rst:979 -msgid "" -"The new :c:func:`PyModule_Add` or :c:func:`PyModule_AddObjectRef` functions " -"are recommended, since it is easy to introduce reference leaks by misusing " -"the :c:func:`PyModule_AddObject` function." -msgstr "" - -#: c-api/module.rst:986 -msgid "" -"Unlike other functions that steal references, ``PyModule_AddObject()`` only " -"releases the reference to *value* **on success**." -msgstr "" - -#: c-api/module.rst:989 -msgid "" -"This means that its return value must be checked, and calling code " -"must :c:func:`Py_XDECREF` *value* manually on error." -msgstr "" - -#: c-api/module.rst:1010 -msgid "" -"Add an integer constant to *module* as *name*. This convenience function " -"can be used from the module's initialization function. Return ``-1`` with an " -"exception set on error, ``0`` on success." -msgstr "" - -#: c-api/module.rst:1014 -msgid "" -"This is a convenience function that calls :c:func:`PyLong_FromLong` " -"and :c:func:`PyModule_AddObjectRef`; see their documentation for details." -msgstr "" - -#: c-api/module.rst:1020 -msgid "" -"Add a string constant to *module* as *name*. This convenience function can " -"be used from the module's initialization function. The string *value* must " -"be ``NULL``-terminated. Return ``-1`` with an exception set on error, ``0`` " -"on success." -msgstr "" - -#: c-api/module.rst:1025 -msgid "" -"This is a convenience function that " -"calls :c:func:`PyUnicode_InternFromString` " -"and :c:func:`PyModule_AddObjectRef`; see their documentation for details." -msgstr "" - -#: c-api/module.rst:1032 -msgid "" -"Add an int constant to *module*. The name and the value are taken from " -"*macro*. For example ``PyModule_AddIntMacro(module, AF_INET)`` adds the int " -"constant *AF_INET* with the value of *AF_INET* to *module*. Return ``-1`` " -"with an exception set on error, ``0`` on success." -msgstr "" - -#: c-api/module.rst:1040 -msgid "Add a string constant to *module*." -msgstr "" - -#: c-api/module.rst:1044 -msgid "" -"Add a type object to *module*. The type object is finalized by calling " -"internally :c:func:`PyType_Ready`. The name of the type object is taken from " -"the last component of :c:member:`~PyTypeObject.tp_name` after dot. Return " -"``-1`` with an exception set on error, ``0`` on success." -msgstr "" - -#: c-api/module.rst:1054 -msgid "" -"Add the functions from the ``NULL`` terminated *functions* array to " -"*module*. Refer to the :c:type:`PyMethodDef` documentation for details on " -"individual entries (due to the lack of a shared module namespace, module " -"level \"functions\" implemented in C typically receive the module as their " -"first parameter, making them similar to instance methods on Python classes)." -msgstr "" - -#: c-api/module.rst:1060 -msgid "" -"This function is called automatically when creating a module from " -"``PyModuleDef`` (such as when using :ref:`multi-phase-initialization`, " -"``PyModule_Create``, or ``PyModule_FromDefAndSpec``). Some module authors " -"may prefer defining functions in multiple :c:type:`PyMethodDef` arrays; in " -"that case they should call this function directly." -msgstr "" - -#: c-api/module.rst:1067 -msgid "" -"The *functions* array must be statically allocated (or otherwise guaranteed " -"to outlive the module object)." -msgstr "" - -#: c-api/module.rst:1074 -msgid "" -"Set the docstring for *module* to *docstring*. This function is called " -"automatically when creating a module from ``PyModuleDef`` (such as when " -"using :ref:`multi-phase-initialization`, ``PyModule_Create``, or " -"``PyModule_FromDefAndSpec``)." -msgstr "" - -#: c-api/module.rst:1079 -msgid "Return ``0`` on success. Return ``-1`` with an exception set on error." -msgstr "" - -#: c-api/module.rst:1086 -msgid "" -"Indicate that *module* does or does not support running without the global " -"interpreter lock (GIL), using one of the values from :c:macro:`Py_mod_gil`. " -"It must be called during *module*'s initialization function when " -"using :ref:`single-phase-initialization`. If this function is not called " -"during module initialization, the import machinery assumes the module does " -"not support running without the GIL. This function is only available in " -"Python builds configured with :option:`--disable-gil`. Return ``-1`` with an " -"exception set on error, ``0`` on success." -msgstr "" - -#: c-api/module.rst:1100 -msgid "Module lookup (single-phase initialization)" -msgstr "" - -#: c-api/module.rst:1102 -msgid "" -"The legacy :ref:`single-phase initialization ` " -"initialization scheme creates singleton modules that can be looked up in the " -"context of the current interpreter. This allows the module object to be " -"retrieved later with only a reference to the module definition." -msgstr "" - -#: c-api/module.rst:1107 -msgid "" -"These functions will not work on modules created using multi-phase " -"initialization, since multiple such modules can be created from a single " -"definition." -msgstr "" - -#: c-api/module.rst:1112 -msgid "" -"Returns the module object that was created from *def* for the current " -"interpreter. This method requires that the module object has been attached " -"to the interpreter state with :c:func:`PyState_AddModule` beforehand. In " -"case the corresponding module object is not found or has not been attached " -"to the interpreter state yet, it returns ``NULL``." -msgstr "" - -#: c-api/module.rst:1119 -msgid "" -"Attaches the module object passed to the function to the interpreter state. " -"This allows the module object to be accessible " -"via :c:func:`PyState_FindModule`." -msgstr "" - -#: c-api/module.rst:1122 -msgid "Only effective on modules created using single-phase initialization." -msgstr "" - -#: c-api/module.rst:1124 -msgid "" -"Python calls ``PyState_AddModule`` automatically after importing a module " -"that uses :ref:`single-phase initialization `, " -"so it is unnecessary (but harmless) to call it from module initialization " -"code. An explicit call is needed only if the module's own init code " -"subsequently calls ``PyState_FindModule``. The function is mainly intended " -"for implementing alternative import mechanisms (either by calling it " -"directly, or by referring to its implementation for details of the required " -"state updates)." -msgstr "" - -#: c-api/module.rst:1133 -msgid "" -"If a module was attached previously using the same *def*, it is replaced by " -"the new *module*." -msgstr "" - -#: c-api/module.rst:1147 -msgid "The caller must have an :term:`attached thread state`." -msgstr "" - -#: c-api/module.rst:1138 -msgid "Return ``-1`` with an exception set on error, ``0`` on success." -msgstr "" - -#: c-api/module.rst:1144 -msgid "" -"Removes the module object created from *def* from the interpreter state. " -"Return ``-1`` with an exception set on error, ``0`` on success." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "module" -#~ msgstr "module" diff --git a/c-api/monitoring.po b/c-api/monitoring.po deleted file mode 100644 index f937d9df06..0000000000 --- a/c-api/monitoring.po +++ /dev/null @@ -1,297 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/monitoring.rst:6 -msgid "Monitoring C API" -msgstr "" - -#: c-api/monitoring.rst:8 -msgid "Added in version 3.13." -msgstr "" - -#: c-api/monitoring.rst:10 -msgid "" -"An extension may need to interact with the event monitoring system. " -"Subscribing to events and registering callbacks can be done via the Python " -"API exposed in :mod:`sys.monitoring`." -msgstr "" - -#: c-api/monitoring.rst:15 -msgid "Generating Execution Events" -msgstr "" - -#: c-api/monitoring.rst:17 -msgid "" -"The functions below make it possible for an extension to fire monitoring " -"events as it emulates the execution of Python code. Each of these functions " -"accepts a ``PyMonitoringState`` struct which contains concise information " -"about the activation state of events, as well as the event arguments, which " -"include a ``PyObject*`` representing the code object, the instruction offset " -"and sometimes additional, event-specific arguments " -"(see :mod:`sys.monitoring` for details about the signatures of the different " -"event callbacks). The ``codelike`` argument should be an instance " -"of :class:`types.CodeType` or of a type that emulates it." -msgstr "" - -#: c-api/monitoring.rst:27 -msgid "" -"The VM disables tracing when firing an event, so there is no need for user " -"code to do that." -msgstr "" - -#: c-api/monitoring.rst:30 -msgid "" -"Monitoring functions should not be called with an exception set, except " -"those listed below as working with the current exception." -msgstr "" - -#: c-api/monitoring.rst:35 -msgid "" -"Representation of the state of an event type. It is allocated by the user " -"while its contents are maintained by the monitoring API functions described " -"below." -msgstr "" - -#: c-api/monitoring.rst:39 -msgid "" -"All of the functions below return 0 on success and -1 (with an exception " -"set) on error." -msgstr "" - -#: c-api/monitoring.rst:41 -msgid "See :mod:`sys.monitoring` for descriptions of the events." -msgstr "" - -#: c-api/monitoring.rst:45 -msgid "Fire a ``PY_START`` event." -msgstr "" - -#: c-api/monitoring.rst:50 -msgid "Fire a ``PY_RESUME`` event." -msgstr "" - -#: c-api/monitoring.rst:55 -msgid "Fire a ``PY_RETURN`` event." -msgstr "" - -#: c-api/monitoring.rst:60 -msgid "Fire a ``PY_YIELD`` event." -msgstr "" - -#: c-api/monitoring.rst:65 -msgid "Fire a ``CALL`` event." -msgstr "" - -#: c-api/monitoring.rst:70 -msgid "Fire a ``LINE`` event." -msgstr "" - -#: c-api/monitoring.rst:75 -msgid "Fire a ``JUMP`` event." -msgstr "" - -#: c-api/monitoring.rst:80 -msgid "Fire a ``BRANCH_LEFT`` event." -msgstr "" - -#: c-api/monitoring.rst:85 -msgid "Fire a ``BRANCH_RIGHT`` event." -msgstr "" - -#: c-api/monitoring.rst:90 -msgid "Fire a ``C_RETURN`` event." -msgstr "" - -#: c-api/monitoring.rst:95 -msgid "" -"Fire a ``PY_THROW`` event with the current exception (as returned " -"by :c:func:`PyErr_GetRaisedException`)." -msgstr "" - -#: c-api/monitoring.rst:101 -msgid "" -"Fire a ``RAISE`` event with the current exception (as returned " -"by :c:func:`PyErr_GetRaisedException`)." -msgstr "" - -#: c-api/monitoring.rst:107 -msgid "" -"Fire a ``C_RAISE`` event with the current exception (as returned " -"by :c:func:`PyErr_GetRaisedException`)." -msgstr "" - -#: c-api/monitoring.rst:113 -msgid "" -"Fire a ``RERAISE`` event with the current exception (as returned " -"by :c:func:`PyErr_GetRaisedException`)." -msgstr "" - -#: c-api/monitoring.rst:119 -msgid "" -"Fire an ``EXCEPTION_HANDLED`` event with the current exception (as returned " -"by :c:func:`PyErr_GetRaisedException`)." -msgstr "" - -#: c-api/monitoring.rst:125 -msgid "" -"Fire a ``PY_UNWIND`` event with the current exception (as returned " -"by :c:func:`PyErr_GetRaisedException`)." -msgstr "" - -#: c-api/monitoring.rst:131 -msgid "" -"Fire a ``STOP_ITERATION`` event. If ``value`` is an instance " -"of :exc:`StopIteration`, it is used. Otherwise, a new :exc:`StopIteration` " -"instance is created with ``value`` as its argument." -msgstr "" - -#: c-api/monitoring.rst:136 -msgid "Managing the Monitoring State" -msgstr "" - -#: c-api/monitoring.rst:138 -msgid "" -"Monitoring states can be managed with the help of monitoring scopes. A scope " -"would typically correspond to a Python function." -msgstr "" - -#: c-api/monitoring.rst:143 -msgid "" -"Enter a monitored scope. ``event_types`` is an array of the event IDs for " -"events that may be fired from the scope. For example, the ID of a " -"``PY_START`` event is the value ``PY_MONITORING_EVENT_PY_START``, which is " -"numerically equal to the base-2 logarithm of " -"``sys.monitoring.events.PY_START``. ``state_array`` is an array with a " -"monitoring state entry for each event in ``event_types``, it is allocated by " -"the user but populated by :c:func:`!PyMonitoring_EnterScope` with " -"information about the activation state of the event. The size of " -"``event_types`` (and hence also of ``state_array``) is given in ``length``." -msgstr "" - -#: c-api/monitoring.rst:153 -msgid "" -"The ``version`` argument is a pointer to a value which should be allocated " -"by the user together with ``state_array`` and initialized to 0, and then set " -"only by :c:func:`!PyMonitoring_EnterScope` itself. It allows this function " -"to determine whether event states have changed since the previous call, and " -"to return quickly if they have not." -msgstr "" - -#: c-api/monitoring.rst:159 -msgid "" -"The scopes referred to here are lexical scopes: a function, class or " -"method. :c:func:`!PyMonitoring_EnterScope` should be called whenever the " -"lexical scope is entered. Scopes can be reentered, reusing the same " -"*state_array* and *version*, in situations like when emulating a recursive " -"Python function. When a code-like's execution is paused, such as when " -"emulating a generator, the scope needs to be exited and re-entered." -msgstr "" - -#: c-api/monitoring.rst:166 -msgid "The macros for *event_types* are:" -msgstr "" - -#: c-api/monitoring.rst:174 -msgid "Macro" -msgstr "" - -#: c-api/monitoring.rst:174 -msgid "Event" -msgstr "Événement" - -#: c-api/monitoring.rst:176 -msgid ":monitoring-event:`BRANCH_LEFT`" -msgstr "" - -#: c-api/monitoring.rst:177 -msgid ":monitoring-event:`BRANCH_RIGHT`" -msgstr "" - -#: c-api/monitoring.rst:178 -msgid ":monitoring-event:`CALL`" -msgstr "" - -#: c-api/monitoring.rst:179 -msgid ":monitoring-event:`C_RAISE`" -msgstr "" - -#: c-api/monitoring.rst:180 -msgid ":monitoring-event:`C_RETURN`" -msgstr "" - -#: c-api/monitoring.rst:181 -msgid ":monitoring-event:`EXCEPTION_HANDLED`" -msgstr "" - -#: c-api/monitoring.rst:182 -msgid ":monitoring-event:`INSTRUCTION`" -msgstr "" - -#: c-api/monitoring.rst:183 -msgid ":monitoring-event:`JUMP`" -msgstr "" - -#: c-api/monitoring.rst:184 -msgid ":monitoring-event:`LINE`" -msgstr "" - -#: c-api/monitoring.rst:185 -msgid ":monitoring-event:`PY_RESUME`" -msgstr "" - -#: c-api/monitoring.rst:186 -msgid ":monitoring-event:`PY_RETURN`" -msgstr "" - -#: c-api/monitoring.rst:187 -msgid ":monitoring-event:`PY_START`" -msgstr "" - -#: c-api/monitoring.rst:188 -msgid ":monitoring-event:`PY_THROW`" -msgstr "" - -#: c-api/monitoring.rst:189 -msgid ":monitoring-event:`PY_UNWIND`" -msgstr "" - -#: c-api/monitoring.rst:190 -msgid ":monitoring-event:`PY_YIELD`" -msgstr "" - -#: c-api/monitoring.rst:191 -msgid ":monitoring-event:`RAISE`" -msgstr "" - -#: c-api/monitoring.rst:192 -msgid ":monitoring-event:`RERAISE`" -msgstr "" - -#: c-api/monitoring.rst:193 -msgid ":monitoring-event:`STOP_ITERATION`" -msgstr "" - -#: c-api/monitoring.rst:198 -msgid "" -"Exit the last scope that was entered with :c:func:`!PyMonitoring_EnterScope`." -msgstr "" - -#: c-api/monitoring.rst:203 -msgid "" -"Return true if the event corresponding to the event ID *ev* is a :ref:`local " -"event `." -msgstr "" diff --git a/c-api/none.po b/c-api/none.po deleted file mode 100644 index 4ab6b05d6f..0000000000 --- a/c-api/none.po +++ /dev/null @@ -1,64 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2017-11-05 11:18+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/none.rst:6 -msgid "The ``None`` Object" -msgstr "L'objet ``None``" - -#: c-api/none.rst:10 -#, fuzzy -msgid "" -"Note that the :c:type:`PyTypeObject` for ``None`` is not directly exposed in " -"the Python/C API. Since ``None`` is a singleton, testing for object " -"identity (using ``==`` in C) is sufficient. There is no :c:func:`!" -"PyNone_Check` function for the same reason." -msgstr "" -"Notez que le :c:type:`PyTypeObject` de ``None`` n'est pas directement exposé " -"via l'API Python/C. Puisque ``None`` est un singleton, tester son identité " -"(en utilisant ``==`` en C) est suffisant. Il n'existe pas de " -"fonction :c:func:`PyNone_Check` pour la même raison." - -#: c-api/none.rst:18 -#, fuzzy -msgid "" -"The Python ``None`` object, denoting lack of value. This object has no " -"methods and is :term:`immortal`." -msgstr "" -"L'objet Python ``None``, exprimant l'absence de valeur. Cet objet n'a " -"aucune méthode. Il doit être traité exactement comme les autres objets en " -"terme de comptage de références." - -#: c-api/none.rst:21 -msgid ":c:data:`Py_None` is :term:`immortal`." -msgstr "" - -#: c-api/none.rst:26 -msgid "Return :c:data:`Py_None` from a function." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "None" -#~ msgstr "None" - -#~ msgid "" -#~ "Properly handle returning :c:data:`Py_None` from within a C function " -#~ "(that is, increment the reference count of ``None`` and return it.)" -#~ msgstr "" -#~ "Renvoie, de la bonne manière, :c:data:`Py_None` depuis une fonction C " -#~ "(c'est à dire en incrémentant les références à ``None`` avant de le " -#~ "donner)." diff --git a/c-api/number.po b/c-api/number.po deleted file mode 100644 index 8146a235c5..0000000000 --- a/c-api/number.po +++ /dev/null @@ -1,309 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/number.rst:6 -msgid "Number Protocol" -msgstr "" - -#: c-api/number.rst:11 -msgid "" -"Returns ``1`` if the object *o* provides numeric protocols, and false " -"otherwise. This function always succeeds." -msgstr "" - -#: c-api/number.rst:14 -msgid "Returns ``1`` if *o* is an index integer." -msgstr "" - -#: c-api/number.rst:20 -msgid "" -"Returns the result of adding *o1* and *o2*, or ``NULL`` on failure. This is " -"the equivalent of the Python expression ``o1 + o2``." -msgstr "" - -#: c-api/number.rst:26 -msgid "" -"Returns the result of subtracting *o2* from *o1*, or ``NULL`` on failure. " -"This is the equivalent of the Python expression ``o1 - o2``." -msgstr "" - -#: c-api/number.rst:32 -msgid "" -"Returns the result of multiplying *o1* and *o2*, or ``NULL`` on failure. " -"This is the equivalent of the Python expression ``o1 * o2``." -msgstr "" - -#: c-api/number.rst:38 -msgid "" -"Returns the result of matrix multiplication on *o1* and *o2*, or ``NULL`` on " -"failure. This is the equivalent of the Python expression ``o1 @ o2``." -msgstr "" - -#: c-api/number.rst:46 -msgid "" -"Return the floor of *o1* divided by *o2*, or ``NULL`` on failure. This is " -"the equivalent of the Python expression ``o1 // o2``." -msgstr "" - -#: c-api/number.rst:52 -msgid "" -"Return a reasonable approximation for the mathematical value of *o1* divided " -"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. This is the equivalent of the Python " -"expression ``o1 / o2``." -msgstr "" - -#: c-api/number.rst:61 -msgid "" -"Returns the remainder of dividing *o1* by *o2*, or ``NULL`` on failure. " -"This is the equivalent of the Python expression ``o1 % o2``." -msgstr "" - -#: c-api/number.rst:69 -msgid "" -"See the built-in function :func:`divmod`. Returns ``NULL`` on failure. This " -"is the equivalent of the Python expression ``divmod(o1, o2)``." -msgstr "" - -#: c-api/number.rst:77 -msgid "" -"See the built-in function :func:`pow`. Returns ``NULL`` on failure. This is " -"the equivalent of the Python expression ``pow(o1, o2, o3)``, where *o3* is " -"optional. If *o3* is to be ignored, pass :c:data:`Py_None` in its place " -"(passing ``NULL`` for *o3* would cause an illegal memory access)." -msgstr "" - -#: c-api/number.rst:85 -msgid "" -"Returns the negation of *o* on success, or ``NULL`` on failure. This is the " -"equivalent of the Python expression ``-o``." -msgstr "" - -#: c-api/number.rst:91 -msgid "" -"Returns *o* on success, or ``NULL`` on failure. This is the equivalent of " -"the Python expression ``+o``." -msgstr "" - -#: c-api/number.rst:99 -msgid "" -"Returns the absolute value of *o*, or ``NULL`` on failure. This is the " -"equivalent of the Python expression ``abs(o)``." -msgstr "" - -#: c-api/number.rst:105 -msgid "" -"Returns the bitwise negation of *o* on success, or ``NULL`` on failure. " -"This is the equivalent of the Python expression ``~o``." -msgstr "" - -#: c-api/number.rst:111 -msgid "" -"Returns the result of left shifting *o1* by *o2* on success, or ``NULL`` on " -"failure. This is the equivalent of the Python expression ``o1 << o2``." -msgstr "" - -#: c-api/number.rst:117 -msgid "" -"Returns the result of right shifting *o1* by *o2* on success, or ``NULL`` on " -"failure. This is the equivalent of the Python expression ``o1 >> o2``." -msgstr "" - -#: c-api/number.rst:123 -msgid "" -"Returns the \"bitwise and\" of *o1* and *o2* on success and ``NULL`` on " -"failure. This is the equivalent of the Python expression ``o1 & o2``." -msgstr "" - -#: c-api/number.rst:129 -msgid "" -"Returns the \"bitwise exclusive or\" of *o1* by *o2* on success, or ``NULL`` " -"on failure. This is the equivalent of the Python expression ``o1 ^ o2``." -msgstr "" - -#: c-api/number.rst:135 -msgid "" -"Returns the \"bitwise or\" of *o1* and *o2* on success, or ``NULL`` on " -"failure. This is the equivalent of the Python expression ``o1 | o2``." -msgstr "" - -#: c-api/number.rst:141 -msgid "" -"Returns the result of adding *o1* and *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:148 -msgid "" -"Returns the result of subtracting *o2* from *o1*, 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:155 -msgid "" -"Returns the result of multiplying *o1* and *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:162 -msgid "" -"Returns the result of matrix multiplication on *o1* and *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:171 -msgid "" -"Returns the mathematical floor 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:178 -msgid "" -"Return a reasonable approximation for the mathematical value of *o1* divided " -"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. 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: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: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 " -"of the Python statement ``o1 **= o2`` when o3 is :c:data:`Py_None`, or an in-" -"place variant of ``pow(o1, o2, o3)`` otherwise. If *o3* is to be ignored, " -"pass :c:data:`Py_None` in its place (passing ``NULL`` for *o3* would cause " -"an illegal memory access)." -msgstr "" - -#: 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: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: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: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: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: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: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: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:260 -msgid "" -"The result always has exact type :class:`int`. Previously, the result could " -"have been an instance of a subclass of ``int``." -msgstr "" -"Le résultat a toujours le type :class:`int`. Précédemment, le résultat " -"aurait pu être une instance d'une sous-classe de ``int``." - -#: 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 " -"string is prefixed with a base marker of ``'0b'``, ``'0o'``, or ``'0x'``, " -"respectively. If *n* is not a Python int, it is converted " -"with :c:func:`PyNumber_Index` first." -msgstr "" - -#: c-api/number.rst:276 -msgid "" -"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:279 -msgid "" -"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: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." -msgstr "" - -#~ msgid "built-in function" -#~ msgstr "fonction native" - -#~ msgid "int" -#~ msgstr "*int*" - -#~ msgid "float" -#~ msgstr "*float* (nombre à virgule flottante)" diff --git a/c-api/object.po b/c-api/object.po deleted file mode 100644 index 51d4dbccb5..0000000000 --- a/c-api/object.po +++ /dev/null @@ -1,1220 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-08-16 22:56+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2\n" - -#: c-api/object.rst:6 -msgid "Object Protocol" -msgstr "Protocole Objet" - -#: c-api/object.rst:11 -msgid "Get a :term:`strong reference` to a constant." -msgstr "" - -#: c-api/object.rst:13 -#, fuzzy -msgid "Set an exception and return ``NULL`` if *constant_id* is invalid." -msgstr "" -"Renvoie le résultat de l'appel en cas de succès, ou lève une exception et " -"renvoie *NULL* en cas d'échec." - -#: c-api/object.rst:15 -msgid "*constant_id* must be one of these constant identifiers:" -msgstr "" - -#: c-api/object.rst:20 -msgid "Constant Identifier" -msgstr "" - -#: c-api/object.rst:20 -msgid "Value" -msgstr "Valeur" - -#: c-api/object.rst:20 -msgid "Returned object" -msgstr "" - -#: c-api/object.rst:27 -msgid "``0``" -msgstr "``0``" - -#: c-api/object.rst:22 -msgid ":py:data:`None`" -msgstr "" - -#: c-api/object.rst:28 -msgid "``1``" -msgstr "``1``" - -#: c-api/object.rst:23 -msgid ":py:data:`False`" -msgstr "" - -#: c-api/object.rst:24 -msgid "``2``" -msgstr "``2``" - -#: c-api/object.rst:24 -msgid ":py:data:`True`" -msgstr "" - -#: c-api/object.rst:25 -msgid "``3``" -msgstr "``3``" - -#: c-api/object.rst:25 -msgid ":py:data:`Ellipsis`" -msgstr "" - -#: c-api/object.rst:26 -msgid "``4``" -msgstr "``4``" - -#: c-api/object.rst:26 -msgid ":py:data:`NotImplemented`" -msgstr "" - -#: c-api/object.rst:27 -msgid "``5``" -msgstr "``5``" - -#: c-api/object.rst:28 -msgid "``6``" -msgstr "``6``" - -#: c-api/object.rst:29 -msgid "``7``" -msgstr "``7``" - -#: c-api/object.rst:29 -msgid "``''``" -msgstr "" - -#: c-api/object.rst:30 -msgid "``8``" -msgstr "``8``" - -#: c-api/object.rst:30 -msgid "``b''``" -msgstr "" - -#: c-api/object.rst:31 -msgid "``9``" -msgstr "``9``" - -#: c-api/object.rst:31 -msgid "``()``" -msgstr "" - -#: c-api/object.rst:34 -msgid "" -"Numeric values are only given for projects which cannot use the constant " -"identifiers." -msgstr "" - -#: c-api/object.rst:42 -msgid "In CPython, all of these constants are :term:`immortal`." -msgstr "" - -#: c-api/object.rst:47 -msgid "" -"Similar to :c:func:`Py_GetConstant`, but return a :term:`borrowed reference`." -msgstr "" - -#: c-api/object.rst:50 -msgid "" -"This function is primarily intended for backwards compatibility: " -"using :c:func:`Py_GetConstant` is recommended for new code." -msgstr "" - -#: c-api/object.rst:53 -msgid "" -"The reference is borrowed from the interpreter, and is valid until the " -"interpreter finalization." -msgstr "" - -#: c-api/object.rst:61 -msgid "" -"The ``NotImplemented`` singleton, used to signal that an operation is not " -"implemented for the given type combination." -msgstr "" -"Le singleton ``NotImplemented``, utilisé pour signaler qu'une opération " -"n'est pas implémentée pour la combinaison de types en question." - -#: c-api/object.rst:67 -#, fuzzy -msgid "" -"Properly handle returning :c:data:`Py_NotImplemented` from within a C " -"function (that is, create a new :term:`strong reference` " -"to :const:`NotImplemented` and return it)." -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)." - -#: c-api/object.rst:74 -msgid "" -"Flag to be used with multiple functions that print the object " -"(like :c:func:`PyObject_Print` and :c:func:`PyFile_WriteObject`). If passed, " -"these functions use the :func:`str` of the object instead of " -"the :func:`repr`." -msgstr "" - -#: c-api/object.rst:82 -#, fuzzy -msgid "" -"Print an object *o*, on file *fp*. Returns ``-1`` on error. The flags " -"argument is used to enable certain printing options. The only option " -"currently supported is :c:macro:`Py_PRINT_RAW`; if given, the :func:`str` of " -"the object is written instead of the :func:`repr`." -msgstr "" -"Écrit un objet *o*, dans le fichier *fp*. Renvoie ``-1`` en cas d'erreur. " -"L'argument *flags* est utilisé pour permettre certaines options de rendu. La " -"seule option actuellement gérée est :const:`Py_PRINT_RAW` ; si cet argument " -"est fourni, le :func:`str` de l'objet est utilisé pour le rendu à la place " -"de :func:`repr`." - -#: c-api/object.rst:90 -msgid "" -"Dump an object *op* to ``stderr``. This should only be used for debugging." -msgstr "" - -#: c-api/object.rst:92 -msgid "" -"The output is intended to try dumping objects even after memory corruption:" -msgstr "" - -#: c-api/object.rst:94 -msgid "" -"Information is written starting with fields that are the least likely to " -"crash when accessed." -msgstr "" - -#: c-api/object.rst:96 -msgid "" -"This function can be called without an :term:`attached thread state`, but " -"it's not recommended to do so: it can cause deadlocks." -msgstr "" - -#: c-api/object.rst:98 -msgid "" -"An object that does not belong to the current interpreter may be dumped, but " -"this may also cause crashes or unintended behavior." -msgstr "" - -#: c-api/object.rst:100 -msgid "" -"Implement a heuristic to detect if the object memory has been freed. Don't " -"display the object contents in this case, only its memory address." -msgstr "" - -#: c-api/object.rst:102 -msgid "The output format may change at any time." -msgstr "" - -#: c-api/object.rst:104 -msgid "Example of output:" -msgstr "" - -#: c-api/object.rst:119 -#, fuzzy -msgid "" -"Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. " -"This is equivalent to the Python expression ``hasattr(o, attr_name)``. On " -"failure, return ``-1``." -msgstr "" -"Renvoie ``1`` si *o* a l'attribut *attr_name*, et ``0`` sinon. Ceci est " -"équivalent à l'expression Python ``hasattr(o, attr_name)``. Cette fonction " -"réussit toujours." - -#: c-api/object.rst:128 -msgid "" -"This is the same as :c:func:`PyObject_HasAttrWithError`, but *attr_name* is " -"specified as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/object.rst:137 -#, fuzzy -msgid "" -"Returns ``1`` if *o* has the attribute *attr_name*, and ``0`` otherwise. " -"This function always succeeds." -msgstr "" -"Renvoie ``1`` si *o* a l'attribut *attr_name*, et ``0`` sinon. Ceci est " -"équivalent à l'expression Python ``hasattr(o, attr_name)``. Cette fonction " -"réussit toujours." - -#: c-api/object.rst:142 -#, fuzzy -msgid "" -"Exceptions that occur when this calls :meth:`~object.__getattr__` " -"and :meth:`~object.__getattribute__` methods aren't propagated, but instead " -"given to :func:`sys.unraisablehook`. For proper error handling, " -"use :c:func:`PyObject_HasAttrWithError`, :c:func:`PyObject_GetOptionalAttr` " -"or :c:func:`PyObject_GetAttr` instead." -msgstr "" -"Notez que les exceptions qui surviennent pendant l'appel de la " -"méthode :meth:`__getitem__` seront supprimées. Pour obtenir le rapport " -"d'erreur, utilisez plutôt :c:func:`PyObject_GetItem()`." - -#: c-api/object.rst:151 -msgid "" -"This is the same as :c:func:`PyObject_HasAttr`, but *attr_name* is specified " -"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/object.rst:157 -#, fuzzy -msgid "" -"Exceptions that occur when this calls :meth:`~object.__getattr__` " -"and :meth:`~object.__getattribute__` methods or while creating the " -"temporary :class:`str` object are silently ignored. For proper error " -"handling, " -"use :c:func:`PyObject_HasAttrStringWithError`, :c:func:`PyObject_GetOptionalAttrString` " -"or :c:func:`PyObject_GetAttrString` instead." -msgstr "" -"Notez que les exceptions qui surviennent pendant l'appel de la " -"méthode :meth:`__getitem__` seront supprimées. Pour obtenir le rapport " -"d'erreur, utilisez plutôt :c:func:`PyObject_GetItem()`." - -#: c-api/object.rst:167 -#, fuzzy -msgid "" -"Retrieve an attribute named *attr_name* from object *o*. Returns the " -"attribute value on success, or ``NULL`` on failure. This is the equivalent " -"of the Python expression ``o.attr_name``." -msgstr "" -"Récupère l'attribut nommé *attr_name* de l'objet *o*. Renvoie la valeur de " -"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:171 -msgid "" -"If the missing attribute should not be treated as a failure, you can " -"use :c:func:`PyObject_GetOptionalAttr` instead." -msgstr "" - -#: c-api/object.rst:177 -msgid "" -"This is the same as :c:func:`PyObject_GetAttr`, but *attr_name* is specified " -"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/object.rst:181 -msgid "" -"If the missing attribute should not be treated as a failure, you can " -"use :c:func:`PyObject_GetOptionalAttrString` instead." -msgstr "" - -#: c-api/object.rst:187 -msgid "" -"Variant of :c:func:`PyObject_GetAttr` which doesn't " -"raise :exc:`AttributeError` if the attribute is not found." -msgstr "" - -#: c-api/object.rst:190 -msgid "" -"If the attribute is found, return ``1`` and set *\\*result* to a " -"new :term:`strong reference` to the attribute. If the attribute is not " -"found, return ``0`` and set *\\*result* to ``NULL``; " -"the :exc:`AttributeError` is silenced. If an error other " -"than :exc:`AttributeError` is raised, return ``-1`` and set *\\*result* to " -"``NULL``." -msgstr "" - -#: c-api/object.rst:202 -msgid "" -"This is the same as :c:func:`PyObject_GetOptionalAttr`, but *attr_name* is " -"specified as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/object.rst:210 -msgid "" -"Generic attribute getter function that is meant to be put into a type " -"object's ``tp_getattro`` slot. It looks for a descriptor in the dictionary " -"of classes in the object's MRO as well as an attribute in the " -"object's :attr:`~object.__dict__` (if present). As outlined " -"in :ref:`descriptors`, data descriptors take preference over instance " -"attributes, while non-data descriptors don't. Otherwise, " -"an :exc:`AttributeError` is raised." -msgstr "" -"Accesseur d'attribut générique destiné à être mis dans le *slot* " -"``tp_getattro`` d'un objet type. Recherche un descripteur dans le " -"dictionnaire de classes du MRO de l'objet ainsi qu'un attribut dans " -"le :attr:`~object.__dict__` de l'objet (si présent). Comme défini " -"dans :ref:`descriptors`, les descripteurs de données sont prioritaires sur " -"les attributs d'instance, contrairement aux autres descripteurs. Sinon, " -"une :exc:`AttributeError` est levée." - -#: c-api/object.rst:220 -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 " -"success. This is the equivalent of the Python statement ``o.attr_name = v``." -msgstr "" -"Définit la valeur de l'attribut nommé *attr_name*, pour l'objet *o*, à la " -"valeur *v*. Lève une exception et renvoie ``-1`` en cas d'échec ; renvoie " -"``0`` en cas de succès. Ceci est équivalent à l'instruction Python " -"``o.attr_name = v``." - -#: c-api/object.rst:225 -#, fuzzy -msgid "" -"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:246 -msgid "" -"The function must not be called with a ``NULL`` *v* and an exception set. " -"This case can arise from forgetting ``NULL`` checks and would delete the " -"attribute." -msgstr "" - -#: c-api/object.rst:258 -msgid "Must not be called with NULL value if an exception is set." -msgstr "" - -#: c-api/object.rst:239 -msgid "" -"This is the same as :c:func:`PyObject_SetAttr`, but *attr_name* is specified " -"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/object.rst:243 -#, fuzzy -msgid "" -"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:250 -msgid "" -"The number of different attribute names passed to this function should be " -"kept small, usually by using a statically allocated string as *attr_name*. " -"For attribute names that aren't known at compile time, prefer " -"calling :c:func:`PyUnicode_FromString` and :c:func:`PyObject_SetAttr` " -"directly. For more details, see :c:func:`PyUnicode_InternFromString`, which " -"may be used internally to create a key object." -msgstr "" - -#: c-api/object.rst:264 -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 " -"data descriptor in the dictionary of classes in the object's MRO, and if " -"found it takes preference over setting or deleting the attribute in the " -"instance dictionary. Otherwise, the attribute is set or deleted in the " -"object's :attr:`~object.__dict__` (if present). On success, ``0`` is " -"returned, otherwise an :exc:`AttributeError` is raised and ``-1`` is " -"returned." -msgstr "" -"Accesseur et suppresseur générique d'attributs qui est fait pour être mis " -"dans le :c:member:`~PyTypeObject.tp_setattro` d'un objet type. Il cherche un " -"descripteur de données dans le dictionnaire de classes dans le MRO de " -"l'objet et, si ce descripteur est trouvé, c'est lui qui est utilisé de " -"préférence pour la suppression et la définition de l'attribut dans le " -"dictionnaire d'instance. Sinon, l'attribut est défini ou supprimé dans " -"le :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:276 -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``." -msgstr "" -"Supprime l'attribut nommé *attr_name*, pour l'objet *o*. Renvoie ``-1`` en " -"cas d'échec. Ceci est l'équivalent de l'expression Python ``del " -"o.attr_name``." - -#: c-api/object.rst:282 -msgid "" -"This is the same as :c:func:`PyObject_DelAttr`, but *attr_name* is specified " -"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/object.rst:286 -msgid "" -"The number of different attribute names passed to this function should be " -"kept small, usually by using a statically allocated string as *attr_name*. " -"For attribute names that aren't known at compile time, prefer " -"calling :c:func:`PyUnicode_FromString` and :c:func:`PyObject_DelAttr` " -"directly. For more details, see :c:func:`PyUnicode_InternFromString`, which " -"may be used internally to create a key object for lookup." -msgstr "" - -#: c-api/object.rst:297 -msgid "" -"A generic implementation for the getter of a ``__dict__`` descriptor. It " -"creates the dictionary if necessary." -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:300 -msgid "" -"This function may also be called to get the :py:attr:`~object.__dict__` of " -"the object *o*. Pass ``NULL`` for *context* when calling it. Since this " -"function may need to allocate memory for the dictionary, it may be more " -"efficient to call :c:func:`PyObject_GetAttr` when accessing an attribute on " -"the object." -msgstr "" - -#: c-api/object.rst:306 -msgid "On failure, returns ``NULL`` with an exception set." -msgstr "" - -#: c-api/object.rst:313 -msgid "" -"A generic implementation for the setter of a ``__dict__`` descriptor. This " -"implementation does not allow the dictionary to be deleted." -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:321 -msgid "" -"Return a pointer to :py:attr:`~object.__dict__` of the object *obj*. If " -"there is no ``__dict__``, return ``NULL`` without setting an exception." -msgstr "" - -#: c-api/object.rst:324 -msgid "" -"This function may need to allocate memory for the dictionary, so it may be " -"more efficient to call :c:func:`PyObject_GetAttr` when accessing an " -"attribute on the object." -msgstr "" - -#: c-api/object.rst:331 -#, fuzzy -msgid "" -"Compare the values of *o1* and *o2* using the operation specified by *opid*, " -"which must be one " -"of :c:macro:`Py_LT`, :c:macro:`Py_LE`, :c:macro:`Py_EQ`, :c:macro:`Py_NE`, :c:macro:`Py_GT`, " -"or :c:macro:`Py_GE`, corresponding to ``<``, ``<=``, ``==``, ``!=``, ``>``, " -"or ``>=`` respectively. This is the equivalent of the Python expression ``o1 " -"op o2``, where ``op`` is the operator corresponding to *opid*. Returns the " -"value of the comparison on success, or ``NULL`` on failure." -msgstr "" -"Compare les valeurs de *o1* et *o2* en utilisant l'opération spécifiée par " -"*opid*, qui doit " -"être :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:`Py_NE`, :const:`Py_GT`, " -"ou :const:`Py_GE`, correspondant à ``<``, ``<=``, ``==``, ``!=``, ``>``, ou " -"``>=`` respectivement. Ceci est l'équivalent de l'expression Python ``o1 op " -"o2``, où ``op`` est l'opérateur correspondant à *opid*. Renvoie la valeur de " -"la comparaison en cas de succès, ou *NULL* en cas d'échec." - -#: c-api/object.rst:341 -msgid "" -"Compare the values of *o1* and *o2* using the operation specified by *opid*, " -"like :c:func:`PyObject_RichCompare`, but returns ``-1`` on error, ``0`` if " -"the result is false, ``1`` otherwise." -msgstr "" - -#: c-api/object.rst:346 -#, fuzzy -msgid "" -"If *o1* and *o2* are the same object, :c:func:`PyObject_RichCompareBool` " -"will always return ``1`` for :c:macro:`Py_EQ` and ``0`` for :c:macro:`Py_NE`." -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:351 -#, 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:354 -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:362 -#, fuzzy -msgid "" -"Compute a string representation of object *o*. Returns the string " -"representation on success, ``NULL`` on failure. This is the equivalent of " -"the Python expression ``repr(o)``. Called by the :func:`repr` built-in " -"function." -msgstr "" -"Calcule une représentation en chaîne de caractères de l'objet *o*. Renvoie " -"la représentation en chaîne de caractères en cas de succès, *NULL* en cas " -"d'échec. Ceci est l'équivalent de l'expression Python ``repr(o)``. Appelé " -"par la fonction native :func:`repr`." - -#: c-api/object.rst:382 c-api/object.rst:394 -msgid "If argument is ``NULL``, return the string ``''``." -msgstr "" - -#: c-api/object.rst:396 -msgid "" -"This function now includes a debug assertion to help ensure that it does not " -"silently discard an active exception." -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:376 -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:`PyObject_Repr` with ``\\x``, ``\\u`` or ``\\U`` escapes. This " -"generates a string similar to that returned by :c:func:`PyObject_Repr` in " -"Python 2. Called by the :func:`ascii` built-in function." -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 " -"renvoyée par :c:func:`PyObject_Repr` en Python 2. Appelée par la fonction " -"native :func:`ascii`." - -#: c-api/object.rst:389 -#, fuzzy -msgid "" -"Compute a string representation of object *o*. Returns the string " -"representation on success, ``NULL`` on failure. This is the equivalent of " -"the Python expression ``str(o)``. Called by the :func:`str` built-in " -"function and, therefore, by the :func:`print` function." -msgstr "" -"Calcule une représentation en chaîne de caractères de l'objet *o*. Renvoie " -"la représentation en chaîne de caractères en cas de succès, *NULL* en cas " -"d'échec. Ceci est l'équivalent de l'expression Python ``str(o)``. Appelée " -"par la fonction native :func:`str`, et, par conséquent, par la " -"fonction :func:`print`." - -#: c-api/object.rst:405 -#, fuzzy -msgid "" -"Compute a bytes representation of object *o*. ``NULL`` is returned on " -"failure and a bytes object on success. This is equivalent to the Python " -"expression ``bytes(o)``, when *o* is not an integer. Unlike ``bytes(o)``, a " -"TypeError is raised when *o* is an integer instead of a zero-initialized " -"bytes object." -msgstr "" -"Calcule une représentation en octets de l'objet *o*. *NULL* est renvoyé en " -"cas d'échec, un objet séquence d'octets est renvoyé en cas de succès. Ceci " -"est l'équivalent de l'expression Python ``bytes(o)``, quand *o* n'est pas un " -"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:411 -msgid "" -"If argument is ``NULL``, return the :class:`bytes` object ``b''``." -msgstr "" - -#: c-api/object.rst:416 -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``." -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:438 -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``, " -"otherwise it will be ``0``." -msgstr "" -"Si *cls* est un *n*-uplet, la vérification est menée sur chaque entrée de " -"*cls*. Le résultat sera ``1`` quand au moins une des vérifications renvoie " -"``1``, sinon ce sera ``0``." - -#: c-api/object.rst:423 -#, fuzzy -msgid "" -"If *cls* has a :meth:`~type.__subclasscheck__` method, it will be called to " -"determine the subclass status as described in :pep:`3119`. Otherwise, " -"*derived* is a subclass of *cls* if it is a direct or indirect subclass, " -"i.e. contained in :attr:`cls.__mro__ `." -msgstr "" -"Si *cls* a une méthode :meth:`~class.__subclasscheck__`, elle est appelée " -"pour déterminer le statut de la sous-classe comme décrit dans :pep:`3119`. " -"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:428 -#, fuzzy -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 " -"a :attr:`~type.__bases__` attribute (which must be a tuple of base classes)." -msgstr "" -"Normalement seulement les classes objets, c'est-à-dire les instances " -"de :class:`type` ou d'une classe dérivée, sont considérées classes. " -"Cependant, 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:435 -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." -msgstr "" -"Renvoie ``1`` si *inst* est une instance de la classe *cls* ou une sous-" -"classe de *cls*, ou ``0`` sinon. En cas d'erreur, renvoie ``-1`` et " -"initialise une exception." - -#: c-api/object.rst:442 -#, fuzzy -msgid "" -"If *cls* has a :meth:`~type.__instancecheck__` method, it will be called to " -"determine the subclass status as described in :pep:`3119`. Otherwise, " -"*inst* is an instance of *cls* if its class is a subclass of *cls*." -msgstr "" -"Si *cls* a une méthode :meth:`~class.__subclasscheck__`, elle sera appelée " -"pour déterminer le statut de la sous-classe comme décrit dans :pep:`3119`. " -"Sinon, *inst* est une instance *cls* si sa classe est une sous-classe de " -"*cls*." - -#: c-api/object.rst:446 -#, fuzzy -msgid "" -"An instance *inst* can override what is considered its class by having " -"a :attr:`~object.__class__` attribute." -msgstr "" -"Une instance *inst* peut surcharger ce qui est considéré comme sa classe en " -"ayant un attribut :attr:`__class__`." - -#: c-api/object.rst:449 -#, fuzzy -msgid "" -"An object *cls* can override if it is considered a class, and what its base " -"classes are, by having a :attr:`~type.__bases__` attribute (which must be a " -"tuple of base classes)." -msgstr "" -"Un objet *cls* peut surcharger s'il est considéré comme une classe, et ce " -"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:458 -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:461 -msgid "" -"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:468 -msgid "" -"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:476 -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:483 -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:492 -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 creates a new :term:`strong reference` to the return value. There's " -"really 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 a new :term:`strong reference` is needed." -msgstr "" - -#: c-api/object.rst:504 -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:513 -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, " -"``-1`` is returned. This is the equivalent to the Python expression " -"``len(o)``." -msgstr "" - -#: c-api/object.rst:520 -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 " -"finally return the default value. On error return ``-1``. This is the " -"equivalent to the Python expression ``operator.length_hint(o, " -"defaultvalue)``." -msgstr "" - -#: c-api/object.rst:530 -#, fuzzy -msgid "" -"Return element of *o* corresponding to the object *key* or ``NULL`` on " -"failure. This is the equivalent of the Python expression ``o[key]``." -msgstr "" -"Récupère un attribut nommé *attr_name* de l'objet *o*. Renvoie la valeur de " -"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:536 -#, fuzzy -msgid "" -"Map the object *key* to the value *v*. Raise an exception and return ``-1`` " -"on failure; return ``0`` on success. This is the equivalent of the Python " -"statement ``o[key] = v``. This function *does not* steal a reference to *v*." -msgstr "" -"Définit la valeur de l'attribut nommé *attr_name*, pour l'objet *o*, à la " -"valeur *v*. Lève une exception et renvoie ``-1`` en cas d'échec ; renvoie " -"``0`` en cas de succès. Ceci est équivalent à l'instruction Python " -"``o.attr_name = v``." - -#: c-api/object.rst:544 -#, fuzzy -msgid "" -"Remove the mapping for the object *key* from the object *o*. Return ``-1`` " -"on failure. This is equivalent to the Python statement ``del o[key]``." -msgstr "" -"Supprime la correspondance associée à la chaîne *key* dans l'objet *o*. " -"Renvoie ``-1`` en cas d'échec. C'est l'équivalent de la commande Python " -"``del o[key]``." - -#: c-api/object.rst:550 -msgid "" -"This is the same as :c:func:`PyObject_DelItem`, but *key* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/object.rst:557 -msgid "" -"This is equivalent to the Python expression ``dir(o)``, returning a " -"(possibly empty) list of strings appropriate for the object argument, or " -"``NULL`` if there was an error. If the argument is ``NULL``, this is like " -"the Python ``dir()``, returning the names of the current locals; in this " -"case, if no execution frame is active then ``NULL`` is returned " -"but :c:func:`PyErr_Occurred` will return false." -msgstr "" - -#: c-api/object.rst:566 -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 " -"already an iterator. Raises :exc:`TypeError` and returns ``NULL`` if the " -"object cannot be iterated." -msgstr "" - -#: c-api/object.rst:574 -msgid "" -"This is equivalent to the Python ``__iter__(self): return self`` method. It " -"is intended for :term:`iterator` types, to be used in " -"the :c:member:`PyTypeObject.tp_iter` slot." -msgstr "" - -#: c-api/object.rst:580 -msgid "" -"This is the equivalent to the Python expression ``aiter(o)``. Takes " -"an :class:`AsyncIterable` object and returns an :class:`AsyncIterator` for " -"it. This is typically a new iterator but if the argument is " -"an :class:`AsyncIterator`, this returns itself. Raises :exc:`TypeError` and " -"returns ``NULL`` if the object cannot be iterated." -msgstr "" - -#: c-api/object.rst:590 -msgid "Get a pointer to subclass-specific data reserved for *cls*." -msgstr "" - -#: c-api/object.rst:592 -msgid "" -"The object *o* must be an instance of *cls*, and *cls* must have been " -"created using negative :c:member:`PyType_Spec.basicsize`. Python does not " -"check this." -msgstr "" - -#: c-api/object.rst:596 -#, fuzzy -msgid "On error, set an exception and return ``NULL``." -msgstr "" -"Renvoie le résultat de l'appel en cas de succès, ou lève une exception et " -"renvoie *NULL* en cas d'échec." - -#: c-api/object.rst:602 -msgid "" -"Return the size of the instance memory space reserved for *cls*, i.e. the " -"size of the memory :c:func:`PyObject_GetTypeData` returns." -msgstr "" - -#: c-api/object.rst:605 -msgid "" -"This may be larger than requested using :c:member:`-PyType_Spec.basicsize " -"`; it is safe to use this larger size (e.g. " -"with :c:func:`!memset`)." -msgstr "" - -#: c-api/object.rst:608 -msgid "" -"The type *cls* **must** have been created using " -"negative :c:member:`PyType_Spec.basicsize`. Python does not check this." -msgstr "" - -#: c-api/object.rst:612 -msgid "On error, set an exception and return a negative value." -msgstr "" - -#: c-api/object.rst:618 -msgid "" -"Get a pointer to per-item data for a class " -"with :c:macro:`Py_TPFLAGS_ITEMS_AT_END`." -msgstr "" - -#: c-api/object.rst:621 -msgid "" -"On error, set an exception and return ``NULL``. :py:exc:`TypeError` is " -"raised if *o* does not have :c:macro:`Py_TPFLAGS_ITEMS_AT_END` set." -msgstr "" - -#: c-api/object.rst:629 -msgid "Visit the managed dictionary of *obj*." -msgstr "" - -#: c-api/object.rst:631 -msgid "" -"This function must only be called in a traverse function of the type which " -"has the :c:macro:`Py_TPFLAGS_MANAGED_DICT` flag set." -msgstr "" - -#: c-api/object.rst:638 -msgid "Clear the managed dictionary of *obj*." -msgstr "" - -#: c-api/object.rst:640 -msgid "" -"This function must only be called in a clear function of the type which has " -"the :c:macro:`Py_TPFLAGS_MANAGED_DICT` flag set." -msgstr "" - -#: c-api/object.rst:647 -msgid "" -"Enable `deferred reference counting `_ on *obj*, if supported by the runtime. In " -"the :term:`free-threaded ` build, this allows the " -"interpreter to avoid reference count adjustments to *obj*, which may improve " -"multi-threaded performance. The tradeoff is that *obj* will only be " -"deallocated by the tracing garbage collector, and not when the interpreter " -"no longer has any references to it." -msgstr "" - -#: c-api/object.rst:654 -msgid "" -"This function returns ``1`` if deferred reference counting is enabled on " -"*obj*, and ``0`` if deferred reference counting is not supported or if the " -"hint was ignored by the interpreter, such as when deferred reference " -"counting is already enabled on *obj*. This function is thread-safe, and " -"cannot fail." -msgstr "" - -#: c-api/object.rst:659 -msgid "" -"This function does nothing on builds with the :term:`GIL` enabled, which do " -"not support deferred reference counting. This also does nothing if *obj* is " -"not an object tracked by the garbage collector (see :func:`gc.is_tracked` " -"and :c:func:`PyObject_GC_IsTracked`)." -msgstr "" - -#: c-api/object.rst:664 -msgid "" -"This function is intended to be used soon after *obj* is created, by the " -"code that creates it, such as in the " -"object's :c:member:`~PyTypeObject.tp_new` slot." -msgstr "" - -#: c-api/object.rst:672 -msgid "" -"Check if *obj* is a unique temporary object. Returns ``1`` if *obj* is known " -"to be a unique temporary object, and ``0`` otherwise. This function cannot " -"fail, but the check is conservative, and may return ``0`` in some cases even " -"if *obj* is a unique temporary object." -msgstr "" - -#: c-api/object.rst:678 -msgid "" -"If an object is a unique temporary, it is guaranteed that the current code " -"has the only reference to the object. For arguments to C functions, this " -"should be used instead of checking if the reference count is ``1``. Starting " -"with Python 3.14, the interpreter internally avoids some reference count " -"modifications when loading objects onto the operands stack " -"by :term:`borrowing ` references when possible, which " -"means that a reference count of ``1`` by itself does not guarantee that a " -"function argument uniquely referenced." -msgstr "" - -#: c-api/object.rst:687 -msgid "" -"In the example below, ``my_func`` is called with a unique temporary object " -"as its argument::" -msgstr "" - -#: c-api/object.rst:692 -msgid "" -"In the example below, ``my_func`` is **not** called with a unique temporary " -"object as its argument, even if its refcount is ``1``::" -msgstr "" - -#: c-api/object.rst:698 -msgid "See also the function :c:func:`Py_REFCNT`." -msgstr "" - -#: c-api/object.rst:704 -msgid "" -"This function returns non-zero if *obj* is :term:`immortal`, and zero " -"otherwise. This function cannot fail." -msgstr "" - -#: c-api/object.rst:709 -msgid "" -"Objects that are immortal in one CPython version are not guaranteed to be " -"immortal in another." -msgstr "" - -#: c-api/object.rst:716 -msgid "" -"Increments the reference count of *obj* if it is not zero. Returns ``1`` if " -"the object's reference count was successfully incremented. Otherwise, this " -"function returns ``0``." -msgstr "" - -#: c-api/object.rst:720 -msgid "" -":c:func:`PyUnstable_EnableTryIncRef` must have been called earlier on *obj* " -"or this function may spuriously return ``0`` in the :term:`free-threaded " -"build`." -msgstr "" - -#: c-api/object.rst:724 -msgid "" -"This function is logically equivalent to the following C code, except that " -"it behaves atomically in the :term:`free-threaded build`::" -msgstr "" - -#: c-api/object.rst:733 -msgid "" -"This is intended as a building block for managing weak references without " -"the overhead of a Python :ref:`weak reference object `." -msgstr "" - -#: c-api/object.rst:736 -msgid "" -"Typically, correct use of this function requires support from *obj*'s " -"deallocator (:c:member:`~PyTypeObject.tp_dealloc`). For example, the " -"following sketch could be adapted to implement a \"weakmap\" that works like " -"a :py:class:`~weakref.WeakValueDictionary` for a specific type:" -msgstr "" - -#: c-api/object.rst:790 -msgid "" -"Enables subsequent uses of :c:func:`PyUnstable_TryIncRef` on *obj*. The " -"caller must hold a :term:`strong reference` to *obj* when calling this." -msgstr "" - -#: c-api/object.rst:797 -msgid "Determine if *op* only has one reference." -msgstr "" - -#: c-api/object.rst:799 -msgid "" -"On GIL-enabled builds, this function is equivalent to :c:expr:`Py_REFCNT(op) " -"== 1`." -msgstr "" - -#: c-api/object.rst:802 -msgid "" -"On a :term:`free-threaded build`, this checks if *op*'s :term:`reference " -"count` is equal to one and additionally checks if *op* is only used by this " -"thread. :c:expr:`Py_REFCNT(op) == 1` is **not** thread-safe on free-threaded " -"builds; prefer this function." -msgstr "" - -#: c-api/object.rst:807 -msgid "" -"The caller must hold an :term:`attached thread state`, despite the fact that " -"this function doesn't call into the Python interpreter. This function cannot " -"fail." -msgstr "" - -#: c-api/object.rst:815 -msgid "" -"Marks the object *op* :term:`immortal`. The argument should be uniquely " -"referenced by the calling thread. This is intended to be used for reducing " -"reference counting contention in the :term:`free-threaded build` for objects " -"which are shared across threads." -msgstr "" - -#: c-api/object.rst:819 -msgid "" -"This is a one-way process: objects can only be made immortal; they cannot be " -"made mortal once again. Immortal objects do not participate in reference " -"counting and will never be garbage collected. If the object is GC-tracked, " -"it is untracked." -msgstr "" - -#: c-api/object.rst:823 -msgid "" -"This function is intended to be used soon after *op* is created, by the code " -"that creates it, such as in the object's :c:member:`~PyTypeObject.tp_new` " -"slot. Returns 1 if the object was made immortal and returns 0 if it was not. " -"This function cannot fail." -msgstr "" - -#~ msgid "built-in function" -#~ msgstr "fonction native" - -#~ msgid "repr" -#~ msgstr "repr" - -#~ msgid "ascii" -#~ msgstr "*ascii*" - -#~ msgid "string" -#~ msgstr "*string*" - -#~ msgid "bytes" -#~ msgstr "*bytes* (séquence d'octets)" - -#~ msgid "type" -#~ msgstr "type" - -#, fuzzy -#~ msgid "" -#~ "Retrieve an attribute named *attr_name* from object *o*. Returns the " -#~ "attribute value on success, or ``NULL`` on failure. This is the " -#~ "equivalent of the Python expression ``o.attr_name``." -#~ msgstr "" -#~ "Récupère un attribut nommé *attr_name* de l'objet *o*. Renvoie la valeur " -#~ "de l'attribut en cas de succès, ou *NULL* en cas d'échec. Ceci est " -#~ "équivalent à l'expression Python ``o.attr_name``." - -#, fuzzy -#~ msgid "" -#~ "Compare the values of *o1* and *o2* using the operation specified by " -#~ "*opid*, which must be one " -#~ "of :c:macro:`Py_LT`, :c:macro:`Py_LE`, :c:macro:`Py_EQ`, :c:macro:`Py_NE`, :c:macro:`Py_GT`, " -#~ "or :c:macro:`Py_GE`, corresponding to ``<``, ``<=``, ``==``, ``!=``, " -#~ "``>``, or ``>=`` respectively. Returns ``-1`` on error, ``0`` if the " -#~ "result is false, ``1`` otherwise. This is the equivalent of the Python " -#~ "expression ``o1 op o2``, where ``op`` is the operator corresponding to " -#~ "*opid*." -#~ msgstr "" -#~ "Compare les valeurs de *o1* et *o2* en utilisant l'opération spécifiée " -#~ "par *opid*, qui doit " -#~ "être :const:`Py_LT`, :const:`Py_LE`, :const:`Py_EQ`, :const:`Py_NE`, :const:`Py_GT`, " -#~ "ou :const:`Py_GE`, correspondant à ``<``, ``<=``, ``==``, ``!=``, ``>``, " -#~ "ou ``>=`` respectivement. Renvoie ``-1`` en cas d'erreur, ``0`` si le " -#~ "résultat est faux, et ``1`` sinon. Ceci est l'équivalent de l'expression " -#~ "Python ``o1 op o2``, où ``op`` est l'opérateur correspondant à *opid*." - -#~ msgid "" -#~ "Determine if the object *o* is callable. Return ``1`` if the object is " -#~ "callable and ``0`` otherwise. This function always succeeds." -#~ msgstr "" -#~ "Détermine si l'objet *o* est appelable. Renvoie ``1`` si c'est le cas, et " -#~ "``0`` sinon. Cette fonction réussit toujours." - -#~ msgid "" -#~ "Call a callable Python object *callable*, with arguments given by the " -#~ "tuple *args*, and named arguments given by the dictionary *kwargs*." -#~ msgstr "" -#~ "Appelle un objet Python appelable *callable*, avec des arguments donnés " -#~ "par le *n*-uplet *args*, et des arguments nommés donnés par le " -#~ "dictionnaire *kwargs*." - -#, fuzzy -#~ 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 "" -#~ "*args* ne doit pas être égal à *NULL*, utilisez un *n*-uplet vide si " -#~ "aucun argument n'est nécessaire. Si aucun argument nommé n'est " -#~ "nécessaire, *kwargs* peut être égal à *NULL*." - -#~ msgid "" -#~ "This is the equivalent of the Python expression: ``callable(*args, " -#~ "**kwargs)``." -#~ msgstr "" -#~ "Ceci est l'équivalent de l'expression Python : ``callable(*args, " -#~ "**kwargs)``." - -#, fuzzy -#~ 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 "" -#~ "Appelle un objet Python appelable *callable*, avec des arguments donnés " -#~ "par le *n*-uplet *args*. Si aucun argument n'est nécessaire, alors *args* " -#~ "peut être égal à *NULL*." - -#, fuzzy -#~ 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` " -#~ "style format string. The format can be ``NULL``, indicating that no " -#~ "arguments are provided." -#~ msgstr "" -#~ "Appelle un objet Python appelable, avec un nombre variable d'arguments C. " -#~ "Les arguments C sont décrits par une chaîne de caractères de format de " -#~ "type :c:func:`Py_BuildValue`. Le format peut être *NULL*, indiquant " -#~ "qu'aucun argument n'est donné." - -#, fuzzy -#~ msgid "" -#~ "Call a callable Python object *callable*, with a variable number " -#~ "of :c:type:`PyObject\\*` arguments. The arguments are provided as a " -#~ "variable number of parameters followed by ``NULL``." -#~ msgstr "" -#~ "Appelle un objet Python appelable, avec un nombre variable d'arguments C. " -#~ "Les arguments C sont décrits par une chaîne de caractères de format de " -#~ "type :c:func:`Py_BuildValue`. Le format peut être *NULL*, indiquant " -#~ "qu'aucun argument n'est donné." - -#, fuzzy -#~ msgid "" -#~ "This is the equivalent of the Python expression: ``callable(arg1, " -#~ "arg2, ...)``." -#~ msgstr "" -#~ "Ceci est l'équivalent de l'expression Python : ``callable(*args, " -#~ "**kwargs)``." diff --git a/c-api/objimpl.po b/c-api/objimpl.po deleted file mode 100644 index 9f91703c6d..0000000000 --- a/c-api/objimpl.po +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -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: 2017-10-18 09:23+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/objimpl.rst:7 -msgid "Object Implementation Support" -msgstr "Implémentation d'objets" - -#: c-api/objimpl.rst:9 -msgid "" -"This chapter describes the functions, types, and macros used when defining " -"new object types." -msgstr "" -"Ce chapitre décrit les fonctions, types, et macros utilisées pour définir de " -"nouveaux types d'objets." diff --git a/c-api/perfmaps.po b/c-api/perfmaps.po deleted file mode 100644 index 9ae79d12ca..0000000000 --- a/c-api/perfmaps.po +++ /dev/null @@ -1,151 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-10-29 22:25+0100\n" -"Last-Translator: FULL NAME \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" - -#: c-api/perfmaps.rst:6 -msgid "Support for Perf Maps" -msgstr "" - -#: c-api/perfmaps.rst:8 -msgid "" -"On supported platforms (Linux and macOS), the runtime can take advantage of " -"*perf map files* to make Python functions visible to an external profiling " -"tool (such as `perf `_ or " -"`samply `_). A running process may " -"create a file in the ``/tmp`` directory, which contains entries that can map " -"a section of executable code to a name. This interface is described in the " -"`documentation of the Linux Perf tool `_." -msgstr "" - -#: c-api/perfmaps.rst:17 -msgid "" -"In Python, these helper APIs can be used by libraries and features that rely " -"on generating machine code on the fly." -msgstr "" - -#: c-api/perfmaps.rst:20 -msgid "" -"Note that holding an :term:`attached thread state` is not required for these " -"APIs." -msgstr "" - -#: c-api/perfmaps.rst:24 -msgid "" -"Open the ``/tmp/perf-$pid.map`` file, unless it's already opened, and create " -"a lock to ensure thread-safe writes to the file (provided the writes are " -"done through :c:func:`PyUnstable_WritePerfMapEntry`). Normally, there's no " -"need to call this explicitly; just " -"use :c:func:`PyUnstable_WritePerfMapEntry` and it will initialize the state " -"on first call." -msgstr "" - -#: c-api/perfmaps.rst:30 -msgid "" -"Returns ``0`` on success, ``-1`` on failure to create/open the perf map " -"file, or ``-2`` on failure to create a lock. Check ``errno`` for more " -"information about the cause of a failure." -msgstr "" - -#: c-api/perfmaps.rst:36 -msgid "" -"Write one single entry to the ``/tmp/perf-$pid.map`` file. This function is " -"thread safe. Here is what an example entry looks like::" -msgstr "" - -#: c-api/perfmaps.rst:42 -msgid "" -"Will call :c:func:`PyUnstable_PerfMapState_Init` before writing the entry, " -"if the perf map file is not already opened. Returns ``0`` on success, or the " -"same error codes as :c:func:`PyUnstable_PerfMapState_Init` on failure." -msgstr "" - -#: c-api/perfmaps.rst:48 -msgid "" -"Close the perf map file opened by :c:func:`PyUnstable_PerfMapState_Init`. " -"This is called by the runtime itself during interpreter shut-down. In " -"general, there shouldn't be a reason to explicitly call this, except to " -"handle specific scenarios such as forking." -msgstr "" - -#: c-api/perfmaps.rst:55 -msgid "" -"Open the ``/tmp/perf-$pid.map`` file and append the content of " -"*parent_filename* to it." -msgstr "" - -#: c-api/perfmaps.rst:58 -msgid "" -"This function is available on all platforms but only generates output on " -"platforms that support perf maps (currently only Linux). On other platforms, " -"it does nothing." -msgstr "" - -#: c-api/perfmaps.rst:65 -msgid "Compile the given code object using the current perf trampoline." -msgstr "" - -#: c-api/perfmaps.rst:67 -msgid "" -"The \"current\" trampoline is the one set by the runtime or the most " -"recent :c:func:`PyUnstable_PerfTrampoline_SetPersistAfterFork` call." -msgstr "" - -#: c-api/perfmaps.rst:70 -msgid "" -"If no trampoline is set, falls back to normal compilation (no perf map " -"entry)." -msgstr "" - -#: c-api/perfmaps.rst:0 -msgid "Parameters" -msgstr "" - -#: c-api/perfmaps.rst:72 -msgid "The code object to compile." -msgstr "" - -#: c-api/perfmaps.rst:0 -msgid "Returns" -msgstr "" - -#: c-api/perfmaps.rst:89 -msgid "0 on success, -1 on failure." -msgstr "" - -#: c-api/perfmaps.rst:79 -msgid "Set whether the perf trampoline should persist after a fork." -msgstr "" - -#: c-api/perfmaps.rst:81 -msgid "" -"If ``enable`` is true (non-zero): perf map file remains open/valid post-" -"fork. Child process inherits all existing perf map entries." -msgstr "" - -#: c-api/perfmaps.rst:83 -msgid "" -"If ``enable`` is false (zero): perf map closes post-fork. Child process gets " -"empty perf map." -msgstr "" - -#: c-api/perfmaps.rst:86 -msgid "Default: false (clears on fork)." -msgstr "" - -#: c-api/perfmaps.rst:88 -msgid "1 to enable, 0 to disable." -msgstr "" diff --git a/c-api/picklebuffer.po b/c-api/picklebuffer.po deleted file mode 100644 index f6f9efc713..0000000000 --- a/c-api/picklebuffer.po +++ /dev/null @@ -1,94 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/picklebuffer.rst:9 -msgid "Pickle buffer objects" -msgstr "" - -#: c-api/picklebuffer.rst:13 -msgid "" -"A :class:`pickle.PickleBuffer` object wraps a :ref:`buffer-providing object " -"` for out-of-band data transfer with the :mod:`pickle` module." -msgstr "" - -#: c-api/picklebuffer.rst:19 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python pickle buffer " -"type. This is the same object as :class:`pickle.PickleBuffer` in the Python " -"layer." -msgstr "" - -#: c-api/picklebuffer.rst:25 -msgid "" -"Return true if *op* is a pickle buffer instance. This function always " -"succeeds." -msgstr "" - -#: c-api/picklebuffer.rst:31 -msgid "Create a pickle buffer from the object *obj*." -msgstr "" - -#: c-api/picklebuffer.rst:33 -msgid "" -"This function will fail if *obj* doesn't support the :ref:`buffer protocol " -"`." -msgstr "" - -#: c-api/picklebuffer.rst:35 -msgid "" -"On success, return a new pickle buffer instance. On failure, set an " -"exception and return ``NULL``." -msgstr "" - -#: c-api/picklebuffer.rst:38 -msgid "Analogous to calling :class:`pickle.PickleBuffer` with *obj* in Python." -msgstr "" - -#: c-api/picklebuffer.rst:43 -msgid "" -"Get a pointer to the underlying :c:type:`Py_buffer` that the pickle buffer " -"wraps." -msgstr "" - -#: c-api/picklebuffer.rst:45 -msgid "" -"The returned pointer is valid as long as *picklebuf* is alive and has not " -"been released. The caller must not modify or free the " -"returned :c:type:`Py_buffer`. If the pickle buffer has been released, " -"raise :exc:`ValueError`." -msgstr "" - -#: c-api/picklebuffer.rst:49 -msgid "" -"On success, return a pointer to the buffer view. On failure, set an " -"exception and return ``NULL``." -msgstr "" - -#: c-api/picklebuffer.rst:55 -msgid "Release the underlying buffer held by the pickle buffer." -msgstr "" - -#: c-api/picklebuffer.rst:57 -msgid "" -"Return ``0`` on success. On failure, set an exception and return ``-1``." -msgstr "" - -#: c-api/picklebuffer.rst:59 -msgid "Analogous to calling :meth:`pickle.PickleBuffer.release` in Python." -msgstr "" diff --git a/c-api/profiling.po b/c-api/profiling.po deleted file mode 100644 index f691e037f0..0000000000 --- a/c-api/profiling.po +++ /dev/null @@ -1,304 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/profiling.rst:6 -msgid "Profiling and tracing" -msgstr "" - -#: c-api/profiling.rst:8 -msgid "" -"The Python interpreter provides some low-level support for attaching " -"profiling and execution tracing facilities. These are used for profiling, " -"debugging, and coverage analysis tools." -msgstr "" - -#: c-api/profiling.rst:12 -msgid "" -"This C interface allows the profiling or tracing code to avoid the overhead " -"of calling through Python-level callable objects, making a direct C function " -"call instead. The essential attributes of the facility have not changed; " -"the interface allows trace functions to be installed per-thread, and the " -"basic events reported to the trace function are the same as had been " -"reported to the Python-level trace functions in previous versions." -msgstr "" - -#: c-api/profiling.rst:22 -msgid "" -"The type of the trace function registered using :c:func:`PyEval_SetProfile` " -"and :c:func:`PyEval_SetTrace`. The first parameter is the object passed to " -"the registration function as *obj*, *frame* is the frame object to which the " -"event pertains, *what* is one of the " -"constants :c:data:`PyTrace_CALL`, :c:data:`PyTrace_EXCEPTION`, :c:data:`PyTrace_LINE`, :c:data:`PyTrace_RETURN`, :c:data:`PyTrace_C_CALL`, :c:data:`PyTrace_C_EXCEPTION`, :c:data:`PyTrace_C_RETURN`, " -"or :c:data:`PyTrace_OPCODE`, and *arg* depends on the value of *what*:" -msgstr "" - -#: c-api/profiling.rst:31 -msgid "Value of *what*" -msgstr "" - -#: c-api/profiling.rst:31 -msgid "Meaning of *arg*" -msgstr "" - -#: c-api/profiling.rst:33 -msgid ":c:data:`PyTrace_CALL`" -msgstr "" - -#: c-api/profiling.rst:38 c-api/profiling.rst:49 -msgid "Always :c:data:`Py_None`." -msgstr "" - -#: c-api/profiling.rst:35 -msgid ":c:data:`PyTrace_EXCEPTION`" -msgstr "" - -#: c-api/profiling.rst:35 -msgid "Exception information as returned by :func:`sys.exc_info`." -msgstr "" - -#: c-api/profiling.rst:38 -msgid ":c:data:`PyTrace_LINE`" -msgstr "" - -#: c-api/profiling.rst:40 -msgid ":c:data:`PyTrace_RETURN`" -msgstr "" - -#: c-api/profiling.rst:40 -msgid "" -"Value being returned to the caller, or ``NULL`` if caused by an exception." -msgstr "" - -#: c-api/profiling.rst:43 -msgid ":c:data:`PyTrace_C_CALL`" -msgstr "" - -#: c-api/profiling.rst:45 c-api/profiling.rst:47 -msgid "Function object being called." -msgstr "" - -#: c-api/profiling.rst:45 -msgid ":c:data:`PyTrace_C_EXCEPTION`" -msgstr "" - -#: c-api/profiling.rst:47 -msgid ":c:data:`PyTrace_C_RETURN`" -msgstr "" - -#: c-api/profiling.rst:49 -msgid ":c:data:`PyTrace_OPCODE`" -msgstr "" - -#: c-api/profiling.rst:54 -msgid "" -"The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " -"a new call to a function or method is being reported, or a new entry into a " -"generator. Note that the creation of the iterator for a generator function " -"is not reported as there is no control transfer to the Python bytecode in " -"the corresponding frame." -msgstr "" - -#: c-api/profiling.rst:63 -msgid "" -"The value of the *what* parameter to a :c:type:`Py_tracefunc` function when " -"an exception has been raised. The callback function is called with this " -"value for *what* when after any bytecode is processed after which the " -"exception becomes set within the frame being executed. The effect of this " -"is that as exception propagation causes the Python stack to unwind, the " -"callback is called upon return to each frame as the exception propagates. " -"Only trace functions receive these events; they are not needed by the " -"profiler." -msgstr "" - -#: c-api/profiling.rst:74 -msgid "" -"The value passed as the *what* parameter to a :c:type:`Py_tracefunc` " -"function (but not a profiling function) when a line-number event is being " -"reported. It may be disabled for a frame by " -"setting :attr:`~frame.f_trace_lines` to *0* on that frame." -msgstr "" - -#: c-api/profiling.rst:82 -msgid "" -"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " -"a call is about to return." -msgstr "" - -#: c-api/profiling.rst:88 -msgid "" -"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " -"a C function is about to be called." -msgstr "" - -#: c-api/profiling.rst:94 -msgid "" -"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " -"a C function has raised an exception." -msgstr "" - -#: c-api/profiling.rst:100 -msgid "" -"The value for the *what* parameter to :c:type:`Py_tracefunc` functions when " -"a C function has returned." -msgstr "" - -#: c-api/profiling.rst:106 -msgid "" -"The value for the *what* parameter to :c:type:`Py_tracefunc` functions (but " -"not profiling functions) when a new opcode is about to be executed. This " -"event is not emitted by default: it must be explicitly requested by " -"setting :attr:`~frame.f_trace_opcodes` to *1* on the frame." -msgstr "" - -#: c-api/profiling.rst:114 -msgid "" -"Set the profiler function to *func*. The *obj* parameter is passed to the " -"function as its first parameter, and may be any Python object, or ``NULL``. " -"If the profile function needs to maintain state, using a different value for " -"*obj* for each thread provides a convenient and thread-safe place to store " -"it. The profile function is called for all monitored events " -"except :c:data:`PyTrace_LINE` :c:data:`PyTrace_OPCODE` " -"and :c:data:`PyTrace_EXCEPTION`." -msgstr "" - -#: c-api/profiling.rst:121 -msgid "See also the :func:`sys.setprofile` function." -msgstr "" - -#: c-api/profiling.rst:131 c-api/profiling.rst:158 -msgid "The caller must have an :term:`attached thread state`." -msgstr "" - -#: c-api/profiling.rst:128 -msgid "" -"Like :c:func:`PyEval_SetProfile` but sets the profile function in all " -"running threads belonging to the current interpreter instead of the setting " -"it only on the current thread." -msgstr "" - -#: c-api/profiling.rst:133 -msgid "" -"As :c:func:`PyEval_SetProfile`, this function ignores any exceptions raised " -"while setting the profile functions in all threads." -msgstr "" - -#: c-api/profiling.rst:141 -msgid "" -"Set the tracing function to *func*. This is similar " -"to :c:func:`PyEval_SetProfile`, except the tracing function does receive " -"line-number events and per-opcode events, but does not receive any event " -"related to C function objects being called. Any trace function registered " -"using :c:func:`PyEval_SetTrace` will not " -"receive :c:data:`PyTrace_C_CALL`, :c:data:`PyTrace_C_EXCEPTION` " -"or :c:data:`PyTrace_C_RETURN` as a value for the *what* parameter." -msgstr "" - -#: c-api/profiling.rst:148 -msgid "See also the :func:`sys.settrace` function." -msgstr "" - -#: c-api/profiling.rst:155 -msgid "" -"Like :c:func:`PyEval_SetTrace` but sets the tracing function in all running " -"threads belonging to the current interpreter instead of the setting it only " -"on the current thread." -msgstr "" - -#: c-api/profiling.rst:160 -msgid "" -"As :c:func:`PyEval_SetTrace`, this function ignores any exceptions raised " -"while setting the trace functions in all threads." -msgstr "" - -#: c-api/profiling.rst:167 -msgid "Reference tracing" -msgstr "" - -#: c-api/profiling.rst:174 -msgid "" -"The type of the trace function registered " -"using :c:func:`PyRefTracer_SetTracer`. The first parameter is a Python " -"object that has been just created (when **event** is set " -"to :c:data:`PyRefTracer_CREATE`) or about to be destroyed (when **event** is " -"set to :c:data:`PyRefTracer_DESTROY`). The **data** argument is the opaque " -"pointer that was provided when :c:func:`PyRefTracer_SetTracer` was called." -msgstr "" - -#: c-api/profiling.rst:180 -msgid "" -"If a new tracing function is registered replacing the current one, a call to " -"the trace function will be made with the object set to **NULL** and " -"**event** set to :c:data:`PyRefTracer_TRACKER_REMOVED`. This will happen " -"just before the new function is registered." -msgstr "" - -#: c-api/profiling.rst:190 -msgid "" -"The value for the *event* parameter to :c:type:`PyRefTracer` functions when " -"a Python object has been created." -msgstr "" - -#: c-api/profiling.rst:196 -msgid "" -"The value for the *event* parameter to :c:type:`PyRefTracer` functions when " -"a Python object has been destroyed." -msgstr "" - -#: c-api/profiling.rst:202 -msgid "" -"The value for the *event* parameter to :c:type:`PyRefTracer` functions when " -"the current tracer is about to be replaced by a new one." -msgstr "" - -#: c-api/profiling.rst:210 -msgid "" -"Register a reference tracer function. The function will be called when a new " -"Python object has been created or when an object is going to be destroyed. " -"If **data** is provided it must be an opaque pointer that will be provided " -"when the tracer function is called. Return ``0`` on success. Set an " -"exception and return ``-1`` on error." -msgstr "" - -#: c-api/profiling.rst:216 -msgid "" -"Note that tracer functions **must not** create Python objects inside or " -"otherwise the call will be re-entrant. The tracer also **must not** clear " -"any existing exception or set an exception. A :term:`thread state` will be " -"active every time the tracer function is called." -msgstr "" - -#: c-api/profiling.rst:237 -msgid "" -"There must be an :term:`attached thread state` when calling this function." -msgstr "" - -#: c-api/profiling.rst:223 -msgid "" -"If another tracer function was already registered, the old function will be " -"called with **event** set to :c:data:`PyRefTracer_TRACKER_REMOVED` just " -"before the new function is registered." -msgstr "" - -#: c-api/profiling.rst:232 -msgid "" -"Get the registered reference tracer function and the value of the opaque " -"data pointer that was registered when :c:func:`PyRefTracer_SetTracer` was " -"called. If no tracer was registered this function will return NULL and will " -"set the **data** pointer to NULL." -msgstr "" diff --git a/c-api/refcounting.po b/c-api/refcounting.po deleted file mode 100644 index 68b3c8b6e5..0000000000 --- a/c-api/refcounting.po +++ /dev/null @@ -1,368 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-03-05 22:34+0100\n" -"Last-Translator: Rémi Lapeyre \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 3.2.1\n" - -#: c-api/refcounting.rst:8 -msgid "Reference Counting" -msgstr "" - -#: c-api/refcounting.rst:10 -#, fuzzy -msgid "" -"The functions and 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 -#, fuzzy -msgid "Get the reference count of the Python object *o*." -msgstr "Incrémente le compteur de références de l'objet *o*." - -#: c-api/refcounting.rst:18 -msgid "" -"Note that the returned value may not actually reflect how many references to " -"the object are actually held. For example, some objects " -"are :term:`immortal` and have a very high refcount that does not reflect the " -"actual number of references. Consequently, do not rely on the returned " -"value to be accurate, other than a value of 0 or 1." -msgstr "" - -#: c-api/refcounting.rst:24 -msgid "" -"Use the :c:func:`Py_SET_REFCNT()` function to set an object reference count." -msgstr "" - -#: c-api/refcounting.rst:28 -msgid "" -"On :term:`free-threaded builds ` of Python, returning 1 " -"isn't sufficient to determine if it's safe to treat *o* as having no access " -"by other threads. Use :c:func:`PyUnstable_Object_IsUniquelyReferenced` for " -"that instead." -msgstr "" - -#: c-api/refcounting.rst:33 -msgid "" -"See also the " -"function :c:func:`PyUnstable_Object_IsUniqueReferencedTemporary()`." -msgstr "" - -#: c-api/refcounting.rst:35 -msgid ":c:func:`Py_REFCNT()` is changed to the inline static function." -msgstr "" - -#: c-api/refcounting.rst:38 -msgid "The parameter type is no longer :c:expr:`const PyObject*`." -msgstr "" - -#: c-api/refcounting.rst:44 -#, fuzzy -msgid "Set the object *o* reference counter to *refcnt*." -msgstr "Incrémente le compteur de références de l'objet *o*." - -#: c-api/refcounting.rst:46 -msgid "" -"On :ref:`Python build with Free Threading `, if " -"*refcnt* is larger than ``UINT32_MAX``, the object is made :term:`immortal`." -msgstr "" - -#: c-api/refcounting.rst:62 c-api/refcounting.rst:128 -msgid "This function has no effect on :term:`immortal` objects." -msgstr "" - -#: c-api/refcounting.rst:77 c-api/refcounting.rst:156 -msgid "Immortal objects are not modified." -msgstr "" - -#: c-api/refcounting.rst:59 -msgid "" -"Indicate taking a new :term:`strong reference` to object *o*, indicating it " -"is in use and should not be destroyed." -msgstr "" - -#: c-api/refcounting.rst:64 -msgid "" -"This function is usually used to convert a :term:`borrowed reference` to " -"a :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:68 -msgid "When done using the object, release is by calling :c:func:`Py_DECREF`." -msgstr "" - -#: c-api/refcounting.rst:70 -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:73 -msgid "" -"Do not expect this function to actually modify *o* in any way. For at " -"least :pep:`some objects <0683>`, this function has no effect." -msgstr "" - -#: c-api/refcounting.rst:83 -#, fuzzy -msgid "" -"Similar to :c:func:`Py_INCREF`, but the object *o* can be ``NULL``, in which " -"case this has no effect." -msgstr "Semblable à :c:func:`Py_NewRef` mais l'objet *o* peut être ``NULL``." - -#: c-api/refcounting.rst:86 -msgid "See also :c:func:`Py_XNewRef`." -msgstr "Voir aussi :c:func:`Py_XNewRef`." - -#: c-api/refcounting.rst:91 -#, fuzzy -msgid "" -"Create a new :term:`strong reference` to an object: call :c:func:`Py_INCREF` " -"on *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:94 -#, fuzzy -msgid "" -"When the :term:`strong reference` is no longer needed, :c:func:`Py_DECREF` " -"should be called on it to release the reference." -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:97 -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:100 -msgid "For example::" -msgstr "Par exemple ::" - -#: c-api/refcounting.rst:105 -msgid "can be written as::" -msgstr "peut s'écrire ::" - -#: c-api/refcounting.rst:109 -msgid "See also :c:func:`Py_INCREF`." -msgstr "Voir aussi :c:func:`Py_INCREF`." - -#: c-api/refcounting.rst:116 -msgid "Similar to :c:func:`Py_NewRef`, but the object *o* can be NULL." -msgstr "Semblable à :c:func:`Py_NewRef` mais l'objet *o* peut être ``NULL``." - -#: c-api/refcounting.rst:118 -msgid "If the object *o* is ``NULL``, the function just returns ``NULL``." -msgstr "Cette fonction renvoie ``NULL`` si l'objet *o* est ``NULL``." - -#: c-api/refcounting.rst:125 -#, fuzzy -msgid "" -"Release a :term:`strong reference` to object *o*, indicating the reference " -"is no longer used." -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:130 -#, fuzzy -msgid "" -"Once the last :term:`strong reference` is released (i.e. the object's " -"reference count reaches 0), 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:135 -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:138 -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:141 -msgid "" -"Do not expect this function to actually modify *o* in any way. For at " -"least :pep:`some objects <683>`, this function has no effect." -msgstr "" - -#: c-api/refcounting.rst:147 -#, fuzzy -msgid "" -"The deallocation function can cause arbitrary Python code to be invoked " -"(e.g. when a class instance with a :meth:`~object.__del__` method is " -"deallocated). While exceptions in such code are not propagated, the " -"executed code has free access to all Python global variables. This means " -"that any object that is reachable from a global variable should be in a " -"consistent state before :c:func:`Py_DECREF` is invoked. For example, code " -"to delete an object from a list should copy a reference to the deleted " -"object in a temporary variable, 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:162 -#, fuzzy -msgid "" -"Similar to :c:func:`Py_DECREF`, but the object *o* can be ``NULL``, in which " -"case this has no effect. The same warning from :c:func:`Py_DECREF` applies " -"here as well." -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:169 -#, fuzzy -msgid "" -"Release a :term:`strong reference` for object *o*. The object may be " -"``NULL``, in which case the macro has no effect; otherwise the effect is the " -"same as for :c:func:`Py_DECREF`, except that the argument is also set to " -"``NULL``. The warning for :c:func:`Py_DECREF` does not apply with respect " -"to the object passed because the macro carefully uses a temporary variable " -"and sets the argument to ``NULL`` before releasing the reference." -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:177 -#, fuzzy -msgid "" -"It is a good idea to use this macro whenever releasing a reference to 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:180 -msgid "" -"The macro argument is now only evaluated once. If the argument has side " -"effects, these are no longer duplicated." -msgstr "" - -#: c-api/refcounting.rst:187 -#, fuzzy -msgid "" -"Indicate taking a new :term:`strong reference` to 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:194 -#, fuzzy -msgid "" -"Release a :term:`strong reference` to 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:201 -msgid "" -"Macro safely releasing a :term:`strong reference` to object *dst* and " -"setting *dst* to *src*." -msgstr "" - -#: c-api/refcounting.rst:204 -msgid "As in case of :c:func:`Py_CLEAR`, \"the obvious\" code can be deadly::" -msgstr "" - -#: c-api/refcounting.rst:209 -msgid "The safe way is::" -msgstr "" - -#: c-api/refcounting.rst:213 -msgid "" -"That arranges to set *dst* to *src* *before* releasing the reference to the " -"old value of *dst*, so that any code triggered as a side-effect of *dst* " -"getting torn down no longer believes *dst* points to a valid object." -msgstr "" - -#: c-api/refcounting.rst:232 -msgid "" -"The macro arguments are now only evaluated once. If an argument has side " -"effects, these are no longer duplicated." -msgstr "" - -#: c-api/refcounting.rst:227 -msgid "" -"Variant of :c:macro:`Py_SETREF` macro that uses :c:func:`Py_XDECREF` instead " -"of :c:func:`Py_DECREF`." -msgstr "" - -#~ msgid "Increment the reference count for object *o*." -#~ msgstr "Incrémente le compteur de références de l'objet *o*." - -#~ 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``." - -#~ msgid "Decrement the reference count for object *o*." -#~ msgstr "Décrémente le compteur de références de l'objet *o*." - -#~ 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 deleted file mode 100644 index 23770a0f5b..0000000000 --- a/c-api/reflection.po +++ /dev/null @@ -1,152 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2019-02-26 12:01+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/reflection.rst:6 -msgid "Reflection" -msgstr "Réflexion" - -#: c-api/reflection.rst:12 -msgid "Use :c:func:`PyEval_GetFrameBuiltins` instead." -msgstr "" - -#: c-api/reflection.rst:66 -msgid "" -"Return a dictionary of the builtins in the current execution frame, or the " -"interpreter of the thread state if no frame is currently executing." -msgstr "" -"Renvoie un dictionnaire des fonctions natives de la *frame* en cours " -"d'exécution, ou si aucune *frame* n'est exécutée, les fonctions natives du " -"*thread* indiqué par le *thread state*." - -#: c-api/reflection.rst:22 -msgid "" -"Use either :c:func:`PyEval_GetFrameLocals` to obtain the same behaviour as " -"calling :func:`locals` in Python code, or else " -"call :c:func:`PyFrame_GetLocals` on the result of :c:func:`PyEval_GetFrame` " -"to access the :attr:`~frame.f_locals` attribute of the currently executing " -"frame." -msgstr "" - -#: c-api/reflection.rst:27 -#, fuzzy -msgid "" -"Return a mapping providing access to the local variables in the current " -"execution frame, or ``NULL`` if no frame is currently executing." -msgstr "" -"Renvoie un dictionnaire des variables locales de la *frame* en cours " -"d'exécution, ou *NULL* si aucune *frame* n'est en cours d'exécution." - -#: c-api/reflection.rst:30 -msgid "" -"Refer to :func:`locals` for details of the mapping returned at different " -"scopes." -msgstr "" - -#: c-api/reflection.rst:32 -msgid "" -"As this function returns a :term:`borrowed reference`, the dictionary " -"returned for :term:`optimized scopes ` is cached on the " -"frame object and will remain alive as long as the frame object does. " -"Unlike :c:func:`PyEval_GetFrameLocals` and :func:`locals`, subsequent calls " -"to this function in the same frame will update the contents of the cached " -"dictionary to reflect changes in the state of the local variables rather " -"than returning a new snapshot." -msgstr "" - -#: c-api/reflection.rst:39 -msgid "" -"As part of :pep:`667`, :c:func:`PyFrame_GetLocals`, :func:`locals`, " -"and :attr:`FrameType.f_locals ` no longer make use of the " -"shared cache dictionary. Refer to the :ref:`What's New entry ` for additional details." -msgstr "" - -#: c-api/reflection.rst:50 -msgid "Use :c:func:`PyEval_GetFrameGlobals` instead." -msgstr "" - -#: c-api/reflection.rst:52 -#, fuzzy -msgid "" -"Return a dictionary of the global variables in the current execution frame, " -"or ``NULL`` if no frame is currently executing." -msgstr "" -"Renvoie un dictionnaire des variables globales de la *frame* en cours " -"d'exécution ou *NULL* si aucune *frame* n'est en cours d'exécution." - -#: c-api/reflection.rst:58 -#, fuzzy -msgid "" -"Return the :term:`attached thread state`'s frame, which is ``NULL`` if no " -"frame is currently executing." -msgstr "" -"Renvoie la *frame* actuelle selon le *thread state*, qui est *NULL* si " -"aucune *frame* n'est en cours d'exécution." - -#: c-api/reflection.rst:61 -msgid "See also :c:func:`PyThreadState_GetFrame`." -msgstr "" - -#: c-api/reflection.rst:74 -#, fuzzy -msgid "" -"Return a dictionary of the local variables in the current execution frame, " -"or ``NULL`` if no frame is currently executing. Equivalent to " -"calling :func:`locals` in Python code." -msgstr "" -"Renvoie un dictionnaire des variables locales de la *frame* en cours " -"d'exécution, ou *NULL* si aucune *frame* n'est en cours d'exécution." - -#: c-api/reflection.rst:78 -msgid "" -"To access :attr:`~frame.f_locals` on the current frame without making an " -"independent snapshot in :term:`optimized scopes `, " -"call :c:func:`PyFrame_GetLocals` on the result of :c:func:`PyEval_GetFrame`." -msgstr "" - -#: c-api/reflection.rst:87 -#, fuzzy -msgid "" -"Return a dictionary of the global variables in the current execution frame, " -"or ``NULL`` if no frame is currently executing. Equivalent to " -"calling :func:`globals` in Python code." -msgstr "" -"Renvoie un dictionnaire des variables globales de la *frame* en cours " -"d'exécution ou *NULL* si aucune *frame* n'est en cours d'exécution." - -#: c-api/reflection.rst:96 -msgid "" -"Return the name of *func* if it is a function, class or instance object, " -"else the name of *func*\\s type." -msgstr "" -"Renvoie le nom de *func* s'il s'agit d'une fonction, d'une classe ou d'un " -"objet d'instance, sinon le nom du type de *func*" - -#: c-api/reflection.rst:102 -msgid "" -"Return a description string, depending on the type of *func*. Return values " -"include \"()\" for functions and methods, \" constructor\", \" instance\", " -"and \" object\". Concatenated with the result " -"of :c:func:`PyEval_GetFuncName`, the result will be a description of *func*." -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 " -"résultat sera une description de *func*" - -#~ msgid "Return the line number that *frame* is currently executing." -#~ msgstr "Renvoie le numéro de ligne que *frame* est en train d'exécuter" diff --git a/c-api/sentinel.po b/c-api/sentinel.po deleted file mode 100644 index 91e53cb3b7..0000000000 --- a/c-api/sentinel.po +++ /dev/null @@ -1,61 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/sentinel.rst:6 -msgid "Sentinel objects" -msgstr "" - -#: c-api/sentinel.rst:10 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the " -"Python :class:`sentinel` type. This is the same object as :class:`sentinel`." -msgstr "" - -#: c-api/sentinel.rst:17 -msgid "" -"Return true if *o* is a :class:`sentinel` object or a subtype. " -"The :class:`sentinel` type does not currently allow subclasses, so this " -"check is exact. Future Python versions may choose to allow subtyping. This " -"function always succeeds." -msgstr "" - -#: c-api/sentinel.rst:27 -msgid "" -"Return true if *o* is a :class:`sentinel` object, but not a subtype. " -"The :class:`sentinel` type does not currently allow subclasses. Future " -"Python versions may choose to allow subtyping. This function always succeeds." -msgstr "" - -#: c-api/sentinel.rst:36 -msgid "" -"Return a new :class:`sentinel` object with :attr:`~sentinel.__name__` set to " -"*name* and :attr:`~sentinel.__module__` set to *module_name*. *name* must " -"not be ``NULL``. If *module_name* is ``NULL``, :attr:`~sentinel.__module__` " -"is set to ``None``. If *repr* is ``NULL``, ``repr()`` " -"returns :attr:`~sentinel.__name__`. Return ``NULL`` with an exception set on " -"failure." -msgstr "" - -#: c-api/sentinel.rst:42 -msgid "" -"For pickling to work, *module_name* must be the name of an importable " -"module, and the sentinel must be accessible from that module under a path " -"matching *name*. Pickle treats *name* as a global variable name in " -"*module_name* (see :meth:`object.__reduce__`)." -msgstr "" diff --git a/c-api/sequence.po b/c-api/sequence.po deleted file mode 100644 index 5b0c24f06e..0000000000 --- a/c-api/sequence.po +++ /dev/null @@ -1,215 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/sequence.rst:6 -msgid "Sequence Protocol" -msgstr "" - -#: c-api/sequence.rst:11 -msgid "" -"Return ``1`` if the object provides the sequence protocol, and ``0`` " -"otherwise. Note that it returns ``1`` for Python classes with " -"a :meth:`~object.__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 -#, fuzzy -msgid "" -"Returns the number of objects in sequence *o* on success, and ``-1`` on " -"failure. This is equivalent to the Python expression ``len(o)``." -msgstr "" -"Renvoie le nombre de clefs dans l'objet *o* et ``-1`` en cas d'échec. C'est " -"l'équivalent de l'expression Python ``len(o)``." - -#: c-api/sequence.rst:29 -msgid "" -"Return the concatenation of *o1* and *o2* on success, and ``NULL`` on " -"failure. This is the equivalent of the Python expression ``o1 + o2``." -msgstr "" - -#: c-api/sequence.rst:35 -msgid "" -"Return the result of repeating sequence object *o* *count* times, or " -"``NULL`` on failure. This is the equivalent of the Python expression ``o * " -"count``." -msgstr "" - -#: c-api/sequence.rst:41 -msgid "" -"Return the concatenation 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 expression ``o1 += o2``." -msgstr "" - -#: c-api/sequence.rst:48 -msgid "" -"Return the result of repeating sequence object *o* *count* times, or " -"``NULL`` on failure. The operation is done *in-place* when *o* supports " -"it. This is the equivalent of the Python expression ``o *= count``." -msgstr "" - -#: c-api/sequence.rst:55 -msgid "" -"Return the *i*\\ th element of *o*, or ``NULL`` on failure. This is the " -"equivalent of the Python expression ``o[i]``." -msgstr "" - -#: c-api/sequence.rst:61 -msgid "" -"Return the slice of sequence object *o* between *i1* and *i2*, or ``NULL`` " -"on failure. This is the equivalent of the Python expression ``o[i1:i2]``." -msgstr "" - -#: c-api/sequence.rst:67 -msgid "" -"Assign object *v* to the *i*\\ th element of *o*. Raise an exception and " -"return ``-1`` on failure; return ``0`` on success. This is the equivalent " -"of the Python statement ``o[i] = v``. This function *does not* steal a " -"reference to *v*." -msgstr "" - -#: c-api/sequence.rst:72 -msgid "" -"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 -msgid "" -"Delete the *i*\\ th element of object *o*. Returns ``-1`` on failure. This " -"is the equivalent of the Python statement ``del o[i]``." -msgstr "" - -#: c-api/sequence.rst:84 -msgid "" -"Assign the sequence object *v* to the slice in sequence object *o* from *i1* " -"to *i2*. This is the equivalent of the Python statement ``o[i1:i2] = v``." -msgstr "" - -#: c-api/sequence.rst:90 -msgid "" -"Delete the slice in sequence object *o* from *i1* to *i2*. Returns ``-1`` " -"on failure. This is the equivalent of the Python statement ``del o[i1:i2]``." -msgstr "" - -#: c-api/sequence.rst:96 -msgid "" -"Return the number of occurrences of *value* in *o*, that is, return the " -"number of keys for which ``o[key] == value``. On failure, return ``-1``. " -"This is equivalent to the Python expression ``o.count(value)``." -msgstr "" - -#: c-api/sequence.rst:103 -msgid "" -"Determine if *o* contains *value*. If an item in *o* is equal to *value*, " -"return ``1``, otherwise return ``0``. On error, return ``-1``. This is " -"equivalent to the Python expression ``value in o``." -msgstr "" - -#: c-api/sequence.rst:110 -msgid "Alias for :c:func:`PySequence_Contains`." -msgstr "" - -#: c-api/sequence.rst:112 -msgid "The function should no longer be used to write new code." -msgstr "" - -#: c-api/sequence.rst:118 -msgid "" -"Return the first index *i* for which ``o[i] == value``. On error, return " -"``-1``. This is equivalent to the Python expression ``o.index(value)``." -msgstr "" - -#: c-api/sequence.rst:124 -msgid "" -"Return a list object with the same contents as the sequence or iterable *o*, " -"or ``NULL`` on failure. The returned list is guaranteed to be new. This is " -"equivalent to the Python expression ``list(o)``." -msgstr "" - -#: c-api/sequence.rst:133 -msgid "" -"Return a tuple object with the same contents as the sequence or iterable " -"*o*, or ``NULL`` on failure. If *o* is a tuple, a new reference will be " -"returned, otherwise a tuple will be constructed with the appropriate " -"contents. This is equivalent to the Python expression ``tuple(o)``." -msgstr "" - -#: c-api/sequence.rst:141 -msgid "" -"Return the sequence or iterable *o* as an object usable by the other " -"``PySequence_Fast*`` family of functions. If the object is not a sequence or " -"iterable, raises :exc:`TypeError` with *m* as the message text. Returns " -"``NULL`` on failure." -msgstr "" - -#: c-api/sequence.rst:146 -msgid "" -"The ``PySequence_Fast*`` functions are thus named because they assume *o* is " -"a :c:type:`PyTupleObject` or a :c:type:`PyListObject` and access the data " -"fields of *o* directly." -msgstr "" - -#: c-api/sequence.rst:150 -msgid "" -"As a CPython implementation detail, if *o* is already a sequence or list, it " -"will be returned." -msgstr "" - -#: c-api/sequence.rst:156 -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 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 "" - -#: c-api/sequence.rst:165 -msgid "" -"Return the *i*\\ th element of *o*, assuming that *o* was returned " -"by :c:func:`PySequence_Fast`, *o* is not ``NULL``, and that *i* is within " -"bounds." -msgstr "" - -#: c-api/sequence.rst:171 -msgid "" -"Return the underlying array of PyObject pointers. Assumes that *o* was " -"returned by :c:func:`PySequence_Fast` and *o* is not ``NULL``." -msgstr "" - -#: c-api/sequence.rst:174 -msgid "" -"Note, if a list gets resized, the reallocation may relocate the items array. " -"So, only use the underlying array pointer in contexts where the sequence " -"cannot change." -msgstr "" - -#: c-api/sequence.rst:181 -msgid "" -"Return the *i*\\ th element of *o* or ``NULL`` on failure. Faster form " -"of :c:func:`PySequence_GetItem` but without checking " -"that :c:func:`PySequence_Check` on *o* is true and without adjustment for " -"negative indices." -msgstr "" - -#~ msgid "built-in function" -#~ msgstr "fonction native" - -#~ msgid "tuple" -#~ msgstr "*n*-uplet" diff --git a/c-api/set.po b/c-api/set.po deleted file mode 100644 index c1bf0c7c5a..0000000000 --- a/c-api/set.po +++ /dev/null @@ -1,240 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/set.rst:6 -msgid "Set Objects" -msgstr "" - -#: c-api/set.rst:12 -msgid "" -"This section details the public API for :class:`set` and :class:`frozenset` " -"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 "" - -#: c-api/set.rst:26 -msgid "" -"This subtype of :c:type:`PyObject` is used to hold the internal data for " -"both :class:`set` and :class:`frozenset` objects. It is like " -"a :c:type:`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 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:37 -#, fuzzy -msgid "" -"This is an instance of :c:type:`PyTypeObject` representing the " -"Python :class:`set` type." -msgstr "" -"C'est une instance de :c:type:`PyTypeObject` représentant le type " -"Python :class:`code`." - -#: c-api/set.rst:43 -#, fuzzy -msgid "" -"This is an instance of :c:type:`PyTypeObject` representing the " -"Python :class:`frozenset` type." -msgstr "" -"C'est une instance de :c:type:`PyTypeObject` représentant le type " -"Python :class:`code`." - -#: c-api/set.rst:46 -msgid "" -"The following type check macros work on pointers to any Python object. " -"Likewise, the constructor functions work with any iterable Python object." -msgstr "" - -#: c-api/set.rst:52 -msgid "" -"Return true if *p* is a :class:`set` object or an instance of a subtype. " -"This function always succeeds." -msgstr "" - -#: c-api/set.rst:57 -msgid "" -"Return true if *p* is a :class:`frozenset` object or an instance of a " -"subtype. This function always succeeds." -msgstr "" - -#: c-api/set.rst:62 -msgid "" -"Return true if *p* is a :class:`set` object, a :class:`frozenset` object, or " -"an instance of a subtype. This function always succeeds." -msgstr "" - -#: c-api/set.rst:67 -msgid "" -"Return true if *p* is a :class:`set` object but not an instance of a " -"subtype. This function always succeeds." -msgstr "" - -#: c-api/set.rst:74 -msgid "" -"Return true if *p* is a :class:`set` object or a :class:`frozenset` object " -"but not an instance of a subtype. This function always succeeds." -msgstr "" - -#: c-api/set.rst:80 -msgid "" -"Return true if *p* is a :class:`frozenset` object but not an instance of a " -"subtype. This function always succeeds." -msgstr "" - -#: c-api/set.rst:86 -msgid "" -"Return a new :class:`set` containing objects returned by the *iterable*. " -"The *iterable* may be ``NULL`` to create a new empty set. Return the new " -"set on success or ``NULL`` on failure. Raise :exc:`TypeError` if *iterable* " -"is not actually iterable. The constructor is also useful for copying a set " -"(``c=set(s)``)." -msgstr "" - -#: c-api/set.rst:107 -msgid "" -"The operation is atomic on :term:`free threading ` when " -"*iterable* is a :class:`set`, :class:`frozenset`, :class:`dict` " -"or :class:`frozendict`." -msgstr "" - -#: c-api/set.rst:100 -msgid "" -"Return a new :class:`frozenset` containing objects returned by the " -"*iterable*. The *iterable* may be ``NULL`` to create a new empty frozenset. " -"Return the new set on success or ``NULL`` on failure. " -"Raise :exc:`TypeError` if *iterable* is not actually iterable." -msgstr "" - -#: c-api/set.rst:111 -msgid "" -"The following functions and macros are available for instances " -"of :class:`set` or :class:`frozenset` or instances of their subtypes." -msgstr "" - -#: c-api/set.rst:119 -msgid "" -"Return the length of a :class:`set` or :class:`frozenset` object. Equivalent " -"to ``len(anyset)``. Raises a :exc:`SystemError` if *anyset* is not " -"a :class:`set`, :class:`frozenset`, or an instance of a subtype." -msgstr "" - -#: c-api/set.rst:126 -msgid "Macro form of :c:func:`PySet_Size` without error checking." -msgstr "" - -#: c-api/set.rst:131 -msgid "" -"Return ``1`` if found, ``0`` if not found, and ``-1`` if an error is " -"encountered. Unlike the Python :meth:`~object.__contains__` method, this " -"function does not automatically convert unhashable sets into temporary " -"frozensets. Raise a :exc:`TypeError` if the *key* is unhashable. " -"Raise :exc:`SystemError` if *anyset* is not " -"a :class:`set`, :class:`frozenset`, or an instance of a subtype." -msgstr "" - -#: c-api/set.rst:174 -msgid "" -"The operation is atomic on :term:`free threading ` when " -"*key* is :class:`str`, :class:`int`, :class:`float`, :class:`bool` " -"or :class:`bytes`." -msgstr "" - -#: c-api/set.rst:144 -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 " -"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 " -"grow. Raise a :exc:`SystemError` if *set* is not an instance " -"of :class:`set` or its subtype." -msgstr "" - -#: c-api/set.rst:159 -msgid "" -"The following functions are available for instances of :class:`set` or its " -"subtypes but not for instances of :class:`frozenset` or its subtypes." -msgstr "" - -#: c-api/set.rst:165 -msgid "" -"Return ``1`` if found and removed, ``0`` if not found (no action taken), and " -"``-1`` if an error is encountered. Does not raise :exc:`KeyError` for " -"missing keys. Raise a :exc:`TypeError` if the *key* is unhashable. Unlike " -"the Python :meth:`~set.discard` method, this function does not automatically " -"convert unhashable sets into temporary frozensets. Raise :exc:`SystemError` " -"if *set* is not an instance of :class:`set` or its subtype." -msgstr "" - -#: c-api/set.rst:180 -msgid "" -"Return a new reference to an arbitrary object in the *set*, and removes the " -"object from the *set*. Return ``NULL`` on failure. Raise :exc:`KeyError` " -"if the set is empty. Raise a :exc:`SystemError` if *set* is not an instance " -"of :class:`set` or its subtype." -msgstr "" - -#: c-api/set.rst:188 -msgid "" -"Empty an existing set of all elements. Return ``0`` on success. Return " -"``-1`` and raise :exc:`SystemError` if *set* is not an instance " -"of :class:`set` or its subtype." -msgstr "" - -#: c-api/set.rst:194 -msgid "" -"In the :term:`free-threaded build`, the set is emptied before its entries " -"are cleared, so other threads will observe an empty set rather than " -"intermediate states." -msgstr "" - -#: c-api/set.rst:200 -msgid "Deprecated API" -msgstr "" - -#: c-api/set.rst:204 -msgid "" -"A constant representing the size of an internal preallocated table " -"inside :c:type:`PySetObject` instances." -msgstr "" - -#: c-api/set.rst:207 -msgid "" -"This is documented solely for completeness, as there are no guarantees that " -"a given version of CPython uses preallocated tables with a fixed size. In " -"code that does not deal with unstable set internals, :c:macro:`!" -"PySet_MINSIZE` can be replaced with a small constant like ``8``." -msgstr "" - -#: c-api/set.rst:213 -msgid "If looking for the size of a set, use :c:func:`PySet_Size` instead." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "set" -#~ msgstr "ensemble" - -#~ msgid "built-in function" -#~ msgstr "fonction native" diff --git a/c-api/slice.po b/c-api/slice.po deleted file mode 100644 index 06546b1a88..0000000000 --- a/c-api/slice.po +++ /dev/null @@ -1,155 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/slice.rst:6 -#, fuzzy -msgid "Slice Objects" -msgstr "Objets tranches" - -#: c-api/slice.rst:11 -msgid "" -"The type object for slice objects. This is the same as :class:`slice` in " -"the Python layer." -msgstr "" - -#: c-api/slice.rst:17 -msgid "" -"Return true if *ob* is a slice object; *ob* must not be ``NULL``. This " -"function always succeeds." -msgstr "" - -#: c-api/slice.rst:23 -msgid "" -"Return a new slice object with the given values. The *start*, *stop*, and " -"*step* parameters are used as the values of the slice object attributes of " -"the same names. Any of the values may be ``NULL``, in which case the " -"``None`` will be used for the corresponding attribute." -msgstr "" - -#: c-api/slice.rst:28 -msgid "" -"Return ``NULL`` with an exception set if the new object could not be " -"allocated." -msgstr "" - -#: c-api/slice.rst:34 -msgid "" -"Retrieve the start, stop and step indices from the slice object *slice*, " -"assuming a sequence of length *length*. Treats indices greater than *length* " -"as errors." -msgstr "" - -#: c-api/slice.rst:38 -msgid "" -"Returns ``0`` on success and ``-1`` on error with no exception set (unless " -"one of the indices was not ``None`` and failed to be converted to an " -"integer, in which case ``-1`` is returned with an exception set)." -msgstr "" - -#: c-api/slice.rst:42 -msgid "You probably do not want to use this function." -msgstr "" - -#: c-api/slice.rst:75 -msgid "" -"The parameter type for the *slice* parameter was ``PySliceObject*`` before." -msgstr "" - -#: c-api/slice.rst:51 -msgid "" -"Usable replacement for :c:func:`PySlice_GetIndices`. Retrieve the start, " -"stop, and step indices from the slice object *slice* assuming a sequence of " -"length *length*, and store the length of the slice in *slicelength*. Out of " -"bounds indices are clipped in a manner consistent with the handling of " -"normal slices." -msgstr "" - -#: c-api/slice.rst:57 -msgid "Return ``0`` on success and ``-1`` on error with an exception set." -msgstr "" - -#: c-api/slice.rst:60 -msgid "" -"This function is considered not safe for resizable sequences. Its invocation " -"should be replaced by a combination of :c:func:`PySlice_Unpack` " -"and :c:func:`PySlice_AdjustIndices` where ::" -msgstr "" - -#: c-api/slice.rst:68 -msgid "is replaced by ::" -msgstr "" - -#: c-api/slice.rst:79 -msgid "" -"If ``Py_LIMITED_API`` is not set or set to the value between ``0x03050400`` " -"and ``0x03060000`` (not including) or ``0x03060100`` or higher :c:func:`!" -"PySlice_GetIndicesEx` is implemented as a macro using :c:func:`!" -"PySlice_Unpack` and :c:func:`!PySlice_AdjustIndices`. Arguments *start*, " -"*stop* and *step* are evaluated more than once." -msgstr "" - -#: c-api/slice.rst:86 -msgid "" -"If ``Py_LIMITED_API`` is set to the value less than ``0x03050400`` or " -"between ``0x03060000`` and ``0x03060100`` (not including) :c:func:`!" -"PySlice_GetIndicesEx` is a deprecated function." -msgstr "" - -#: c-api/slice.rst:94 -msgid "" -"Extract the start, stop and step data members from a slice object as C " -"integers. Silently reduce values larger than ``PY_SSIZE_T_MAX`` to " -"``PY_SSIZE_T_MAX``, silently boost the start and stop values less than " -"``PY_SSIZE_T_MIN`` to ``PY_SSIZE_T_MIN``, and silently boost the step values " -"less than ``-PY_SSIZE_T_MAX`` to ``-PY_SSIZE_T_MAX``." -msgstr "" - -#: c-api/slice.rst:100 -msgid "Return ``-1`` with an exception set on error, ``0`` on success." -msgstr "" - -#: c-api/slice.rst:107 -msgid "" -"Adjust start/end slice indices assuming a sequence of the specified length. " -"Out of bounds indices are clipped in a manner consistent with the handling " -"of normal slices." -msgstr "" - -#: c-api/slice.rst:111 -msgid "" -"Return the length of the slice. Always successful. Doesn't call Python " -"code." -msgstr "" - -#: c-api/slice.rst:118 -msgid "Ellipsis Object" -msgstr "" - -#: c-api/slice.rst:123 -msgid "" -"The type of Python :const:`Ellipsis` object. Same " -"as :class:`types.EllipsisType` in the Python layer." -msgstr "" - -#: c-api/slice.rst:129 -msgid "" -"The Python ``Ellipsis`` object. This object has no methods. " -"Like :c:data:`Py_None`, it is an :term:`immortal` singleton object." -msgstr "" - -#: c-api/slice.rst:132 -msgid ":c:data:`Py_Ellipsis` is immortal." -msgstr "" diff --git a/c-api/slots.po b/c-api/slots.po deleted file mode 100644 index c0a9658e4a..0000000000 --- a/c-api/slots.po +++ /dev/null @@ -1,251 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/slots.rst:6 -msgid "Definition slots" -msgstr "" - -#: c-api/slots.rst:8 -msgid "" -"To define :ref:`module objects ` and :ref:`classes ` using the C API, you may use an array of *slots* -- " -"essentially, key-value pairs that describe features of the object to create. " -"This decouples the data from the structures used at runtime, allowing " -"CPython -- and other Python C API implementations -- to update the " -"structures without breaking backwards compatibility." -msgstr "" - -#: c-api/slots.rst:16 -msgid "" -"This section documents slots in general. For object-specific behavior and " -"slot values, see documentation for functions that apply slots:" -msgstr "" - -#: c-api/slots.rst:20 -msgid ":c:func:`PyType_FromSlots` for types;" -msgstr "" - -#: c-api/slots.rst:21 -msgid "" -":c:func:`PyModule_FromSlotsAndSpec` and :ref:`extension-export-hook` for " -"modules." -msgstr "" - -#: c-api/slots.rst:24 -msgid "" -"When slots are passed to a function that applies them, the function will not " -"modify the slot array, nor any data it points to (recursively). After the " -"function is done, the caller is allowed to modify or deallocate the array " -"and any data it points to (recursively), except data explicitly marked " -"with :c:macro:`PySlot_STATIC`." -msgstr "" - -#: c-api/slots.rst:30 -msgid "" -"Except when documented otherwise, multiple slots with the same ID " -"(:c:member:`~PySlot.sl_id`) may not occur in a single slots array." -msgstr "" - -#: c-api/slots.rst:35 -msgid "" -"Slot arrays generalize an earlier way of defining objects: " -"using :c:type:`PyType_Spec` with :c:type:`PyType_Slot` for types, " -"and :c:type:`PyModuleDef` with :c:type:`PyModuleDef_Slot` for modules. The " -"earlier API is :term:`soft deprecated`; there are no plans to remove it." -msgstr "" - -#: c-api/slots.rst:40 -msgid "Entries of the slots array use the following structure:" -msgstr "" - -#: c-api/slots.rst:44 -msgid "An entry in a slots array. Defined as:" -msgstr "" - -#: c-api/slots.rst:63 -msgid "A slot ID, chosen from:" -msgstr "" - -#: c-api/slots.rst:65 -msgid "``Py_slot_*`` values documented in :ref:`pyslot-common-ids` below;" -msgstr "" - -#: c-api/slots.rst:66 -msgid "" -"``Py_mod_*`` values for modules, as documented in :ref:`c_module_slots`;" -msgstr "" - -#: c-api/slots.rst:67 -msgid "Values for types, as documented in :ref:`pyslot_type_slot_ids`." -msgstr "" - -#: c-api/slots.rst:69 -msgid "" -"A :c:member:`!sl_id` of zero (:c:macro:`Py_slot_end`) marks the end of a " -"slots array." -msgstr "" - -#: c-api/slots.rst:78 -msgid "" -"The data for the slot. These members are part of an anonymous union; the " -"member to use depends on which data type is required by the slot ID: data " -"pointer, function pointer, size, signed or unsigned integer, respectively." -msgstr "" - -#: c-api/slots.rst:84 -msgid "" -"Except when documented otherwise for a specific slot ID, pointers (that " -"is :c:member:`!sl_ptr` and :c:member:`!sl_func`) may not be NULL." -msgstr "" - -#: c-api/slots.rst:89 -msgid "Zero or more of the following flags, OR-ed together:" -msgstr "" - -#: c-api/slots.rst:95 -msgid "" -"All data the slot points to is statically allocated and constant. Thus, the " -"interpreter does not need to copy the information." -msgstr "" - -#: c-api/slots.rst:98 -msgid "This flag is implied for function pointers." -msgstr "" - -#: c-api/slots.rst:100 -msgid "" -"The flag applies even to data the slot points to “indirectly”, except for " -"slots nested via :c:macro:`Py_slot_subslots` which may have their " -"own :c:macro:`!PySlot_STATIC` flags. For example, if applied to " -"a :c:macro:`Py_tp_members` slot that points to an array " -"of :c:type:`PyMemberDef` structures, then the entire array, as well as the " -"name and doc strings in its elements, must be static and constant." -msgstr "" - -#: c-api/slots.rst:110 -msgid "" -"The data is stored in ``sl_ptr``; CPython will cast it to the appropriate " -"type." -msgstr "" - -#: c-api/slots.rst:113 -msgid "" -"This flag can simplify porting from the older :c:type:`PyType_Slot` " -"and :c:type:`PyModuleDef_Slot` structures." -msgstr "" - -#: c-api/slots.rst:118 -msgid "" -"If the slot ID is unknown, the interpreter should ignore the slot, rather " -"than fail." -msgstr "" - -#: c-api/slots.rst:121 -msgid "" -"For example, if Python 3.16 adds a new feature with a new slot ID,attr the " -"corresponding slot may be marked :c:macro:`!PySlot_OPTIONAL` so that Python " -"3.15 ignores it." -msgstr "" - -#: c-api/slots.rst:125 -msgid "" -"Note that the \"optionality\" only applies to unknown slot IDs. This flag " -"does not make Python skip invalid values of known slots." -msgstr "" - -#: c-api/slots.rst:132 -msgid "Convenience macros" -msgstr "" - -#: c-api/slots.rst:141 -msgid "" -"Convenience macros to define :c:type:`!PySlot` structures " -"with :c:member:`~PySlot.sl_id` and a particular union member set." -msgstr "" - -#: c-api/slots.rst:144 -msgid "" -":c:macro:`!PySlot_STATIC_DATA` sets the :c:macro:`PySlot_STATIC` flag; " -"others set no flags." -msgstr "" - -#: c-api/slots.rst:147 -msgid "" -"Note that these macros use *designated initializers*, a C language feature " -"that C++ added in the 2020 version of the standard. If your code needs to be " -"compatible with C++11 or older, use :c:macro:`PySlot_PTR` instead." -msgstr "" - -#: c-api/slots.rst:178 c-api/slots.rst:192 -msgid "Defined as::" -msgstr "" - -#: c-api/slots.rst:176 -msgid "Convenience macro to mark the end of a :c:type:`!PySlot` array." -msgstr "" - -#: c-api/slots.rst:187 -msgid "" -"Convenience macros for use in C++11-compatible code. This version of C++ " -"does not allow setting arbitrary union members in literals; instead, these " -"macros set the :c:macro:`PySlot_INTPTR` flag and cast the value to " -"``(void*)``." -msgstr "" - -#: c-api/slots.rst:205 -msgid "Common slot IDs" -msgstr "" - -#: c-api/slots.rst:207 -msgid "The following slot IDs may be used in both type and module definitions." -msgstr "" - -#: c-api/slots.rst:211 -msgid "Marks the end of a slots array. Defined as zero." -msgstr "" - -#: c-api/slots.rst:218 -msgid "Nested slots array." -msgstr "" - -#: c-api/slots.rst:220 -msgid "" -"The value (:c:member:`~PySlot.sl_ptr`) should point to an array " -"of :c:type:`PySlot` structures. The slots in the array (up to but not " -"including the zero-ID terminator) will be treated as if they were inserted " -"if the current slot array, at the point :c:macro:`!Py_slot_subslots` appears." -msgstr "" - -#: c-api/slots.rst:226 -msgid "" -"Slot nesting depth is limited to 5 levels. This restriction may be lifted in " -"the future." -msgstr "" - -#: c-api/slots.rst:233 -msgid "" -"Reserved; will always be treated as an unknown slot ID. Defined as " -"``UINT16_MAX`` (``0xFFFF``)." -msgstr "" - -#: c-api/slots.rst:236 -msgid "" -"When used with the :c:macro:`PySlot_OPTIONAL` flag, defines a slot with no " -"effect. Without the flag, processing a slot with this ID will fail." -msgstr "" diff --git a/c-api/stable.po b/c-api/stable.po deleted file mode 100644 index 96886e6ac0..0000000000 --- a/c-api/stable.po +++ /dev/null @@ -1,791 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-03-05 22:38+0100\n" -"Last-Translator: Rémi Lapeyre \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 3.2.1\n" - -#: c-api/stable.rst:7 -#, fuzzy -msgid "C API and ABI Stability" -msgstr "Stabilité de l’API C" - -#: c-api/stable.rst:9 -#, fuzzy -msgid "" -"Unless documented otherwise, Python's C API is covered by the Backwards " -"Compatibility Policy, :pep:`387`. Most changes to it are source-compatible " -"(typically by only adding new API). Changing existing API or removing API is " -"only done after a deprecation period or to fix serious issues." -msgstr "" -"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 -#, fuzzy -msgid "" -"CPython's Application Binary Interface (ABI) is forward- and backwards-" -"compatible across a minor release (if these are compiled the same way; " -"see :ref:`stable-abi-platform` below). So, code compiled for Python 3.10.0 " -"will work on 3.10.8 and vice versa, but will need to be compiled separately " -"for 3.9.x and 3.11.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 "There are two tiers of C API with different stability expectations:" -msgstr "" - -#: c-api/stable.rst:23 -msgid "" -":ref:`Unstable API `, may change in minor versions without a " -"deprecation period. It is marked by the ``PyUnstable`` prefix in names." -msgstr "" - -#: c-api/stable.rst:25 -msgid "" -":ref:`Limited API `, is compatible across several minor " -"releases. When :c:macro:`Py_LIMITED_API` is defined, only this subset is " -"exposed from ``Python.h``." -msgstr "" - -#: c-api/stable.rst:29 -msgid "These are discussed in more detail below." -msgstr "" - -#: c-api/stable.rst:31 -#, fuzzy -msgid "" -"Names prefixed by an underscore, such as ``_Py_InternalState``, are private " -"API that can change without notice even in patch releases. If you need to " -"use this API, consider reaching out to `CPython developers `_ to discuss adding public API for " -"your use case." -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:40 -msgid "Unstable C API" -msgstr "" - -#: c-api/stable.rst:44 -msgid "" -"Any API named with the ``PyUnstable`` prefix exposes CPython implementation " -"details, and may change in every minor release (e.g. from 3.9 to 3.10) " -"without any deprecation warnings. However, it will not change in a bugfix " -"release (e.g. from 3.10.0 to 3.10.1)." -msgstr "" - -#: c-api/stable.rst:49 -msgid "" -"It is generally intended for specialized, low-level tools like debuggers." -msgstr "" - -#: c-api/stable.rst:51 -msgid "" -"Projects that use this API are expected to follow CPython development and " -"spend extra effort adjusting to changes." -msgstr "" - -#: c-api/stable.rst:58 -#, fuzzy -msgid "Stable Application Binary Interfaces" -msgstr "ABI stable" - -#: c-api/stable.rst:60 -msgid "" -"Python's :dfn:`Stable ABI` allows extensions to be compatible with multiple " -"versions of Python, without recompilation." -msgstr "" - -#: c-api/stable.rst:65 -#, fuzzy -msgid "" -"For simplicity, this document talks about *extensions*, but Stable ABI works " -"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:68 -msgid "There are two Stable ABIs:" -msgstr "" - -#: c-api/stable.rst:70 -msgid "" -"``abi3``, introduced in Python 3.2, is compatible with **non**-:term:`free-" -"threaded ` builds of CPython." -msgstr "" - -#: c-api/stable.rst:73 -msgid "" -"``abi3t``, introduced in Python 3.15, is compatible with :term:`free-" -"threaded ` builds of CPython. It has stricter API " -"limitations than ``abi3``." -msgstr "" - -#: c-api/stable.rst:79 -msgid "``abi3t`` was added in :pep:`803`" -msgstr "" - -#: c-api/stable.rst:81 -msgid "" -"It is possible for an extension to be compiled for *both* ``abi3`` and " -"``abi3t`` at the same time; the result will be compatible with both free-" -"threaded and non-free-threaded builds of Python. Currently, this has no " -"downsides compared to compiling for ``abi3t`` only." -msgstr "" - -#: c-api/stable.rst:86 -msgid "" -"Each Stable ABI is versioned using the first two numbers of the Python " -"version. For example, Stable ABI 3.14 corresponds to Python 3.14. An " -"extension compiled for Stable ABI 3.x is ABI-compatible with Python 3.x and " -"above." -msgstr "" - -#: c-api/stable.rst:91 -msgid "" -"Extensions that target a stable ABI must only use a limited subset of the C " -"API. This subset is known as the :dfn:`Limited API`; its contents " -"are :ref:`listed below `." -msgstr "" - -#: c-api/stable.rst:95 -#, fuzzy -msgid "" -"On Windows, extensions that use a Stable ABI should be linked against " -"``python3.dll`` rather than a version-specific library such as " -"``python39.dll``. This library only exposes the relevant symbols." -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:100 -msgid "" -"On some platforms, Python will look for and load shared library files named " -"with the ``abi3`` or ``abi3t`` tag (for example, " -"``mymodule.abi3.so``). :term:`Free-threaded ` " -"interpreters only recognize the ``abi3t`` tag, while non-free-threaded ones " -"will prefer ``abi3`` but fall back to ``abi3t``. Thus, extensions compatible " -"with both ABIs should use the ``abi3t`` tag." -msgstr "" - -#: c-api/stable.rst:107 -msgid "" -"Python does not necessarily check that extensions it loads have compatible " -"ABI. Extension authors are encouraged to add a check using " -"the :c:macro:`Py_mod_abi` slot or the :c:func:`PyABIInfo_Check` function, " -"but the user (or their packaging tool) is ultimately responsible for " -"ensuring that, for example, extensions built for Stable ABI 3.10 are not " -"installed for lower versions of Python." -msgstr "" - -#: c-api/stable.rst:115 -#, fuzzy -msgid "" -"All functions in Stable ABI are present as functions in Python's shared " -"library, not solely as macros. This makes them usable in languages that " -"don't use the C preprocessor, including Python's :py:mod:`ctypes`." -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:124 -msgid "Compiling for Stable ABI" -msgstr "" - -#: c-api/stable.rst:128 -msgid "" -"Build tools (such as, for example, meson-python, scikit-build-core, or " -"Setuptools) often have a mechanism for setting macros and synchronizing them " -"with extension filenames and other metadata. Prefer using such a mechanism, " -"if it exists, over defining the macros manually." -msgstr "" - -#: c-api/stable.rst:134 -msgid "" -"The rest of this section is mainly relevant for tool authors, and for people " -"who compile extensions manually." -msgstr "" - -#: c-api/stable.rst:137 -msgid "`list of recommended tools`_ in the Python Packaging User Guide" -msgstr "" - -#: c-api/stable.rst:141 -msgid "" -"To compile for a Stable ABI, define one or both of the following macros to " -"the lowest Python version your extension should support, " -"in :c:macro:`Py_PACK_VERSION` format. Typically, you should choose a " -"specific value rather than the version of the Python headers you are " -"compiling against." -msgstr "" - -#: c-api/stable.rst:147 -msgid "" -"The macros must be defined before including ``Python.h``. " -"Since :c:macro:`Py_PACK_VERSION` is not available at this point, you will " -"need to use the numeric value directly. For reference, the values for a few " -"recent Python versions are:" -msgstr "" - -#: c-api/stable.rst:154 -msgid "" -"When one of the macros is defined, ``Python.h`` will only expose API that is " -"compatible with the given Stable ABI -- that is, the :ref:`Limited API " -"` plus some definitions that need to be visible to the " -"compiler but should not be used directly. When both are defined, " -"``Python.h`` will only expose API compatible with both Stable ABIs." -msgstr "" - -#: c-api/stable.rst:163 -msgid "" -"Target ``abi3``, that is, non-:term:`free-threaded builds ` of CPython. See :ref:`above ` for common information." -msgstr "" - -#: c-api/stable.rst:169 -msgid "" -"Target ``abi3t``, that is, :term:`free-threaded builds ` of CPython. See :ref:`above ` for common information." -msgstr "" - -#: c-api/stable.rst:175 -msgid "" -"Both macros specify a target ABI; the different naming style is due to " -"backwards compatibility." -msgstr "" - -#: c-api/stable.rst:178 -msgid "Historical note" -msgstr "" - -#: c-api/stable.rst:180 -#, fuzzy -msgid "" -"You can also define ``Py_LIMITED_API`` as ``3``. This works the same as " -"``0x03020000`` (Python 3.2, the version that introduced Stable ABI)." -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:183 -msgid "" -"When both are defined, ``Python.h`` may, or may not, redefine :c:macro:`!" -"Py_LIMITED_API` to match :c:macro:`!Py_TARGET_ABI3T`." -msgstr "" - -#: c-api/stable.rst:186 -msgid "" -"On a :term:`free-threaded build` -- that is, when :c:macro:`Py_GIL_DISABLED` " -"is defined -- :c:macro:`!Py_TARGET_ABI3T` defaults to the value " -"of :c:macro:`!Py_LIMITED_API`. This means that there are two ways to build " -"for both ``abi3`` and ``abi3t``:" -msgstr "" - -#: c-api/stable.rst:191 -msgid "" -"define both :c:macro:`!Py_LIMITED_API` and :c:macro:`!Py_TARGET_ABI3T`, or" -msgstr "" - -#: c-api/stable.rst:192 -msgid "define only :c:macro:`!Py_LIMITED_API` and:" -msgstr "" - -#: c-api/stable.rst:194 -msgid "on Windows, define :c:macro:`!Py_GIL_DISABLED`;" -msgstr "" - -#: c-api/stable.rst:195 -msgid "on other systems, use the headers of free-threaded build of Python." -msgstr "" - -#: c-api/stable.rst:201 -#, fuzzy -msgid "Stable ABI Scope and Performance" -msgstr "Porté de l’API restreinte et performance" - -#: c-api/stable.rst:203 -#, fuzzy -msgid "" -"The goal for Stable ABI is to allow everything that is possible with the " -"full C API, but possibly with a performance penalty. Generally, " -"compatibility with Stable ABI will require some changes to an extension's " -"source code." -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:208 -#, fuzzy -msgid "" -"For example, while :c:func:`PyList_GetItem` is available, its \"unsafe\" " -"macro 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:213 -#, fuzzy -msgid "" -"For another example, when *not* compiling for Stable ABI, some C API " -"functions are inlined or replaced by macros. Compiling for Stable ABI " -"disables this inlining, 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:218 -msgid "" -"By leaving out the :c:macro:`!Py_LIMITED_API` or :c:macro:`!Py_TARGET_ABI3T` " -"definition, it is possible to compile Stable-ABI-compatible source for a " -"version-specific ABI. A potentially faster version-specific extension can " -"then be distributed alongside a version compiled for Stable ABI -- a slower " -"but more compatible fallback." -msgstr "" - -#: c-api/stable.rst:229 -#, fuzzy -msgid "Stable ABI Caveats" -msgstr "ABI stable" - -#: c-api/stable.rst:231 -msgid "" -"Note that compiling for Stable ABI is *not* a complete guarantee that code " -"will be compatible with the expected Python versions. Stable ABI prevents " -"*ABI* issues, like linker errors due to missing symbols or data corruption " -"due to changes in structure layouts or function signatures. However, other " -"changes in Python can change the *behavior* of extensions." -msgstr "" - -#: c-api/stable.rst:238 -#, fuzzy -msgid "" -"One issue that the :c:macro:`Py_TARGET_ABI3T` and :c:macro:`Py_LIMITED_API` " -"macros do not guard against is calling a function with arguments that are " -"invalid in a lower Python version. For example, consider a function that " -"starts accepting ``NULL`` for an argument. In Python 3.9, ``NULL`` now " -"selects a default behavior, but in Python 3.8, 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:246 -#, fuzzy -msgid "" -"For these reasons, we recommend testing an extension with *all* minor Python " -"versions it supports." -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:249 -msgid "" -"We also recommend reviewing documentation of all used API to check if it is " -"explicitly part of the Limited API. Even with ``Py_LIMITED_API`` defined, a " -"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:254 -#, fuzzy -msgid "" -"Also note that while compiling with ``Py_LIMITED_API`` 3.8 means that the " -"extension should *load* on Python 3.12, and *compile* with Python 3.12, the " -"same source will not necessarily compile with ``Py_LIMITED_API`` set to " -"3.12. In general, parts of the Limited API may be deprecated and removed, " -"provided that 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:265 -msgid "Platform Considerations" -msgstr "Considérations relatives aux plateformes" - -#: c-api/stable.rst:267 -#, fuzzy -msgid "" -"ABI stability depends not only on Python, but also on the compiler used, " -"lower-level libraries and compiler options. For the purposes of " -"the :ref:`Stable ABIs `, 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:272 -#, fuzzy -msgid "" -"It is the responsibility of each particular distributor of Python to ensure " -"that all Python versions on a particular platform are built in a way that " -"does not break the Stable ABIs, or the version-specific ABIs. 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:280 -msgid "ABI Checking" -msgstr "" - -#: c-api/stable.rst:284 -msgid "Python includes a rudimentary check for ABI compatibility." -msgstr "" - -#: c-api/stable.rst:286 -msgid "" -"This check is not comprehensive. It only guards against common cases of " -"incompatible modules being installed for the wrong interpreter. It also does " -"not take :ref:`platform incompatibilities ` into " -"account. It can only be done after an extension is successfully loaded." -msgstr "" - -#: c-api/stable.rst:293 -msgid "" -"Despite these limitations, it is recommended that extension modules use this " -"mechanism, so that detectable incompatibilities raise exceptions rather than " -"crash." -msgstr "" - -#: c-api/stable.rst:297 -msgid "" -"Most modules can use this check via the :c:data:`Py_mod_abi` slot and " -"the :c:macro:`PyABIInfo_VAR` macro, for example like this:" -msgstr "" - -#: c-api/stable.rst:310 -msgid "The full API is described below for advanced use cases." -msgstr "" - -#: c-api/stable.rst:314 -msgid "" -"Verify that the given *info* is compatible with the currently running " -"interpreter." -msgstr "" - -#: c-api/stable.rst:317 -msgid "Return 0 on success. On failure, raise an exception and return -1." -msgstr "" - -#: c-api/stable.rst:319 -msgid "" -"If the ABI is incompatible, the raised exception will " -"be :py:exc:`ImportError`." -msgstr "" - -#: c-api/stable.rst:321 -msgid "" -"The *module_name* argument can be ``NULL``, or point to a NUL-terminated " -"UTF-8-encoded string used for error messages." -msgstr "" - -#: c-api/stable.rst:324 -msgid "" -"Note that if *info* describes the ABI that the current code uses (as defined " -"by :c:macro:`PyABIInfo_VAR`, for example), using any other Python C API may " -"lead to crashes. In particular, it is not safe to examine the raised " -"exception." -msgstr "" - -#: c-api/stable.rst:333 -msgid "" -"Define a static :c:struct:`PyABIInfo` variable with the given *NAME* that " -"describes the ABI that the current code will use. This macro expands to:" -msgstr "" - -#: c-api/stable.rst:352 -msgid "The major version of :c:struct:`PyABIInfo`. Can be set to:" -msgstr "" - -#: c-api/stable.rst:354 -msgid "``0`` to skip all checking, or" -msgstr "" - -#: c-api/stable.rst:355 -msgid "``1`` to specify this version of :c:struct:`!PyABIInfo`." -msgstr "" - -#: c-api/stable.rst:359 -msgid "" -"The minor version of :c:struct:`PyABIInfo`. Must be set to ``0``; larger " -"values are reserved for backwards-compatible future versions of :c:struct:`!" -"PyABIInfo`." -msgstr "" - -#: c-api/stable.rst:367 -msgid "This field is usually set to the following macro:" -msgstr "" - -#: c-api/stable.rst:371 -msgid "" -"Default flags, based on current values of macros such " -"as :c:macro:`Py_LIMITED_API` and :c:macro:`Py_GIL_DISABLED`." -msgstr "" - -#: c-api/stable.rst:374 -msgid "" -"Alternately, the field can be set to the following flags, combined by " -"bitwise OR. Unused bits must be set to zero." -msgstr "" - -#: c-api/stable.rst:378 -msgid "ABI variant -- one of:" -msgstr "" - -#: c-api/stable.rst:382 -msgid "Specifies that Stable ABI is used." -msgstr "" - -#: c-api/stable.rst:386 -msgid "" -"Specifies ABI specific to a particular build of CPython. Internal use only." -msgstr "" - -#: c-api/stable.rst:389 -msgid "Free-threading compatibility -- one of:" -msgstr "" - -#: c-api/stable.rst:393 -msgid "" -"Specifies ABI compatible with :term:`free-threaded builds ` of CPython. (That is, ones compiled with :option:`--disable-gil`; " -"with ``t`` in :py:data:`sys.abiflags`)" -msgstr "" - -#: c-api/stable.rst:400 -msgid "" -"Specifies ABI compatible with non-free-threaded builds of CPython (ones " -"compiled *without* :option:`--disable-gil`)." -msgstr "" - -#: c-api/stable.rst:405 -msgid "" -"Specifies ABI compatible with both free-threaded and non-free-threaded " -"builds of CPython, that is, both ``abi3`` and ``abi3t``." -msgstr "" - -#: c-api/stable.rst:411 -msgid "" -"The version of the Python headers used to build the code, in the format used " -"by :c:macro:`PY_VERSION_HEX`." -msgstr "" - -#: c-api/stable.rst:414 -msgid "" -"This can be set to ``0`` to skip any checks related to this field. This " -"option is meant mainly for projects that do not use the CPython headers " -"directly, and do not emulate a specific version of them." -msgstr "" - -#: c-api/stable.rst:420 -msgid "The ABI version." -msgstr "" - -#: c-api/stable.rst:422 -msgid "" -"For Stable ABI, this field should be the value of :c:macro:`Py_LIMITED_API` " -"or :c:macro:`Py_TARGET_ABI3T`. If both are defined, use the smaller value. " -"(If :c:macro:`Py_LIMITED_API` is ``3``; use :c:expr:`Py_PACK_VERSION(3, 2)` " -"instead of ``3``.)" -msgstr "" - -#: c-api/stable.rst:428 -msgid "Otherwise, it should be set to :c:macro:`PY_VERSION_HEX`." -msgstr "" - -#: c-api/stable.rst:430 -msgid "It can also be set to ``0`` to skip any checks related to this field." -msgstr "" - -#: c-api/stable.rst:436 -msgid "" -"The value that should be used for this field, based on current values of " -"macros such as :c:macro:`Py_LIMITED_API`, :c:macro:`PY_VERSION_HEX` " -"and :c:macro:`Py_GIL_DISABLED`." -msgstr "" - -#: c-api/stable.rst:447 -msgid "Contents of Limited API" -msgstr "Contenu de l’API restreinte" - -#: c-api/stable.rst:449 -#, fuzzy -msgid "" -"This is the definitive list of :ref:`Limited API ` for Python " -"|version|:" -msgstr "Pour le moment l’API restreinte inclut les éléments suivants :" - -#, fuzzy -#~ msgid "Limited C API" -#~ msgstr "Inconvénients de l’API restreinte" - -#, fuzzy -#~ msgid "" -#~ "Python 3.2 introduced the *Limited API*, a subset of Python's C API. " -#~ "Extensions that only use the Limited API can be compiled once and be " -#~ "loaded on 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 `." - -#~ 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." - -#, fuzzy -#~ msgid "" -#~ "Define ``Py_LIMITED_API`` to the value of :c:macro:`PY_VERSION_HEX` " -#~ "corresponding to the lowest Python version your extension supports. The " -#~ "extension will be ABI-compatible with all Python 3 releases from 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." - -#~ msgid "" -#~ "Rather than using the ``PY_VERSION_HEX`` macro directly, hardcode a " -#~ "minimum 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." - -#, fuzzy -#~ msgid "" -#~ "The Stable ABI contains symbols exposed in the :ref:`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." - -#~ msgid "" -#~ "On some platforms, Python will look for and load shared library files " -#~ "named with the ``abi3`` tag (e.g. ``mymodule.abi3.so``). It does not " -#~ "check if such extensions conform to a Stable ABI. The user (or their " -#~ "packaging tools) need 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." - -#~ msgid "" -#~ "By leaving out the ``Py_LIMITED_API`` definition, it is possible to " -#~ "compile a Limited API extension with a version-specific ABI. This can " -#~ "improve performance for that Python version, but will limit " -#~ "compatibility. Compiling with ``Py_LIMITED_API`` will then yield an " -#~ "extension that can be distributed 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." - -#~ msgid "Limited API Caveats" -#~ msgstr "Inconvénients de l’API restreinte" - -#, fuzzy -#~ msgid "" -#~ "Note that compiling with ``Py_LIMITED_API`` is *not* a complete guarantee " -#~ "that code conforms to the :ref:`Limited API ` or " -#~ "the :ref:`Stable ABI `. ``Py_LIMITED_API`` 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." - -#~ 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." diff --git a/c-api/structures.po b/c-api/structures.po deleted file mode 100644 index 27829a13f5..0000000000 --- a/c-api/structures.po +++ /dev/null @@ -1,1122 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/structures.rst:6 -msgid "Common Object Structures" -msgstr "" - -#: c-api/structures.rst:8 -msgid "" -"There are a large number of structures which are used in the definition of " -"object types for Python. This section describes these structures and how " -"they are used." -msgstr "" - -#: c-api/structures.rst:14 -msgid "Base object types and macros" -msgstr "" - -#: c-api/structures.rst:16 -msgid "" -"All Python objects ultimately share a small number of fields at the " -"beginning of the object's representation in memory. These are represented " -"by the :c:type:`PyObject` and :c:type:`PyVarObject` types, which are " -"defined, in turn, by the expansions of some macros also used, whether " -"directly or indirectly, in the definition of all other Python objects. " -"Additional macros can be found under :ref:`reference counting " -"`." -msgstr "" - -#: c-api/structures.rst:26 -msgid "" -"All object types are extensions of this type. This is a type which contains " -"the information Python needs to treat a pointer to an object as an object. " -"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:expr:`PyObject*`." -msgstr "" - -#: c-api/structures.rst:33 -msgid "" -"The members must not be accessed directly; instead use macros such " -"as :c:macro:`Py_REFCNT` and :c:macro:`Py_TYPE`." -msgstr "" - -#: c-api/structures.rst:36 -msgid "" -"In the :ref:`Stable ABI ` for Free-Threaded Builds (``abi3t``), " -"this struct is opaque; its size and layout may change between Python " -"versions. In Stable ABI for non-free-threaded builds (``abi3``), " -"the :c:member:`!ob_refcnt` and :c:member:`!ob_type` fields are available, " -"but using them directly is discouraged." -msgstr "" - -#: c-api/structures.rst:45 -msgid "" -"The object's reference count, as returned by :c:macro:`Py_REFCNT`. Do not " -"use this field directly; instead use functions and macros such as :c:macro:`!" -"Py_REFCNT`, :c:func:`Py_INCREF` and :c:func:`Py_DecRef`." -msgstr "" - -#: c-api/structures.rst:49 -msgid "" -"The field type may be different from ``Py_ssize_t``, depending on build " -"configuration and platform." -msgstr "" - -#: c-api/structures.rst:54 -msgid "" -"The object's type. Do not use this field directly; use :c:macro:`Py_TYPE` " -"and :c:func:`Py_SET_TYPE` instead." -msgstr "" - -#: c-api/structures.rst:60 -msgid "" -"A :ref:`per-object lock `, present only in the :term:`free-" -"threaded ` build (when :c:macro:`Py_GIL_DISABLED` is " -"defined)." -msgstr "" - -#: c-api/structures.rst:63 -msgid "" -"This field is **reserved for use by the critical section API** " -"(:c:macro:`Py_BEGIN_CRITICAL_SECTION` / :c:macro:`Py_END_CRITICAL_SECTION`). " -"Do **not** lock it directly with ``PyMutex_Lock``; doing so can cause " -"deadlocks. If you need your own lock, add a separate :c:type:`PyMutex` " -"field to your object struct." -msgstr "" - -#: c-api/structures.rst:74 -msgid "" -"An extension of :c:type:`PyObject` that adds " -"the :c:member:`~PyVarObject.ob_size` field. This is intended for objects " -"that have some notion of *length*." -msgstr "" - -#: c-api/structures.rst:78 -msgid "" -"As with :c:type:`!PyObject`, the members must not be accessed directly; " -"instead use macros such as :c:macro:`Py_SIZE`, :c:macro:`Py_REFCNT` " -"and :c:macro:`Py_TYPE`." -msgstr "" - -#: c-api/structures.rst:82 -msgid "" -"In the :ref:`Stable ABI ` for Free-Threaded Builds (``abi3t``), " -"this struct is opaque; its size and layout may change between Python " -"versions. In Stable ABI for non-free-threaded builds (``abi3``), " -"the :c:member:`!ob_base` and :c:member:`!ob_size` fields are available, but " -"using them directly is discouraged." -msgstr "" - -#: c-api/structures.rst:91 -msgid "" -"Common object header. Typically, this field is not accessed directly; " -"instead :c:type:`!PyVarObject` can be cast to :c:type:`PyObject`." -msgstr "" - -#: c-api/structures.rst:97 -msgid "" -"A size field, whose contents should be considered an object's internal " -"implementation detail." -msgstr "" - -#: c-api/structures.rst:100 -msgid "Do not use this field directly; use :c:macro:`Py_SIZE` instead." -msgstr "" - -#: c-api/structures.rst:102 -msgid "" -"Object creation functions such as :c:func:`PyObject_NewVar` will generally " -"set this field to the requested size (number of items). After creation, " -"arbitrary values can be stored in :c:member:`!ob_size` " -"using :c:macro:`Py_SET_SIZE`." -msgstr "" - -#: c-api/structures.rst:107 -msgid "" -"To get an object's publicly exposed length, as returned by the Python " -"function :py:func:`len`, use :c:func:`PyObject_Length` instead." -msgstr "" - -#: c-api/structures.rst:114 -msgid "" -"This is a macro used when declaring new types which represent objects " -"without a varying length. The PyObject_HEAD macro expands to::" -msgstr "" - -#: c-api/structures.rst:119 -msgid "See documentation of :c:type:`PyObject` above." -msgstr "" - -#: c-api/structures.rst:124 -msgid "" -"This is a macro used when declaring new types which represent objects with a " -"length that varies from instance to instance. The PyObject_VAR_HEAD macro " -"expands to::" -msgstr "" - -#: c-api/structures.rst:130 -msgid "See documentation of :c:type:`PyVarObject` above." -msgstr "" - -#: c-api/structures.rst:135 -msgid "" -"The base class of all other objects, the same as :class:`object` in Python." -msgstr "" - -#: c-api/structures.rst:140 -msgid "" -"Test if the *x* object is the *y* object, the same as ``x is y`` in Python." -msgstr "" - -#: c-api/structures.rst:147 -msgid "" -"Test if an object is the ``None`` singleton, the same as ``x is None`` in " -"Python." -msgstr "" - -#: c-api/structures.rst:155 -msgid "" -"Test if an object is the ``True`` singleton, the same as ``x is True`` in " -"Python." -msgstr "" - -#: c-api/structures.rst:163 -msgid "" -"Test if an object is the ``False`` singleton, the same as ``x is False`` in " -"Python." -msgstr "" - -#: c-api/structures.rst:171 -msgid "Get the type of the Python object *o*." -msgstr "" - -#: c-api/structures.rst:173 -msgid "" -"The returned reference is :term:`borrowed ` from *o*. Do " -"not release it with :c:func:`Py_DECREF` or similar." -msgstr "" - -#: c-api/structures.rst:176 -msgid "" -":c:func:`Py_TYPE()` is changed to an inline static function. The parameter " -"type is no longer :c:expr:`const PyObject*`." -msgstr "" - -#: c-api/structures.rst:183 -msgid "" -"Return non-zero if the object *o* type is *type*. Return zero otherwise. " -"Equivalent to: ``Py_TYPE(o) == type``." -msgstr "" - -#: c-api/structures.rst:191 -msgid "" -"Set the type of object *o* to *type*, without any checking or reference " -"counting." -msgstr "" - -#: c-api/structures.rst:194 -msgid "" -"This is a very low-level operation. Consider instead setting the Python " -"attribute :attr:`~object.__class__` using :c:func:`PyObject_SetAttrString` " -"or similar." -msgstr "" - -#: c-api/structures.rst:198 -msgid "" -"Note that assigning an incompatible type can lead to undefined behavior." -msgstr "" - -#: c-api/structures.rst:200 -msgid "" -"If *type* is a :ref:`heap type `, the caller must create a new " -"reference to it. Similarly, if the old type of *o* is a heap type, the " -"caller must release a reference to that type." -msgstr "" - -#: c-api/structures.rst:210 -msgid "Get the :c:member:`~PyVarObject.ob_size` field of *o*." -msgstr "" - -#: c-api/structures.rst:212 -msgid "" -":c:func:`Py_SIZE()` is changed to an inline static function. The parameter " -"type is no longer :c:expr:`const PyVarObject*`." -msgstr "" - -#: c-api/structures.rst:219 -msgid "Set the :c:member:`~PyVarObject.ob_size` field of *o* to *size*." -msgstr "" - -#: c-api/structures.rst:226 -msgid "" -"This is a macro which expands to initialization values for a " -"new :c:type:`PyObject` type. This macro expands to::" -msgstr "" - -#: c-api/structures.rst:235 -msgid "" -"This is a macro which expands to initialization values for a " -"new :c:type:`PyVarObject` type, including " -"the :c:member:`~PyVarObject.ob_size` field. This macro expands to::" -msgstr "" - -#: c-api/structures.rst:244 -msgid "Implementing functions and methods" -msgstr "" - -#: c-api/structures.rst:248 -msgid "" -"Type of the functions used to implement most Python callables in C. " -"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 " -"reference." -msgstr "" - -#: c-api/structures.rst:255 -msgid "The function signature is::" -msgstr "" - -#: c-api/structures.rst:262 -msgid "" -"Type of the functions used to implement Python callables in C with " -"signature :ref:`METH_VARARGS | METH_KEYWORDS `. " -"The function signature is::" -msgstr "" - -#: c-api/structures.rst:273 -msgid "" -"Type of the functions used to implement Python callables in C with " -"signature :c:macro:`METH_FASTCALL`. The function signature is::" -msgstr "" - -#: c-api/structures.rst:283 -msgid "" -"Type of the functions used to implement Python callables in C with " -"signature :ref:`METH_FASTCALL | METH_KEYWORDS `. The function signature is::" -msgstr "" - -#: c-api/structures.rst:294 -msgid "" -"Type of the functions used to implement Python callables in C with " -"signature :ref:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS `. The function signature is::" -msgstr "" - -#: c-api/structures.rst:309 -msgid "" -"Structure used to describe a method of an extension type. This structure " -"has four fields:" -msgstr "" - -#: c-api/structures.rst:314 -msgid "Name of the method." -msgstr "" - -#: c-api/structures.rst:316 -msgid "A ``NULL`` *ml_name* marks the end of a :c:type:`!PyMethodDef` array." -msgstr "" - -#: c-api/structures.rst:320 -msgid "Pointer to the C implementation." -msgstr "" - -#: c-api/structures.rst:324 -msgid "Flags bits indicating how the call should be constructed." -msgstr "" - -#: c-api/structures.rst:328 -msgid "Points to the contents of the docstring." -msgstr "" - -#: c-api/structures.rst:330 -msgid "" -"The :c:member:`~PyMethodDef.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:expr:`PyObject*`, it is common that the method " -"implementation uses the specific C type of the *self* object." -msgstr "" - -#: c-api/structures.rst:338 -msgid "" -"The :c:member:`~PyMethodDef.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:343 -msgid "There are these calling conventions:" -msgstr "" - -#: c-api/structures.rst:347 -msgid "" -"This is the typical calling convention, where the methods have the " -"type :c: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:357 -msgid "" -"Can only be used in certain combinations with other " -"flags: :ref:`METH_VARARGS | METH_KEYWORDS `, :ref:`METH_FASTCALL | METH_KEYWORDS ` and :ref:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS " -"`." -msgstr "" - -#: c-api/structures.rst:365 -msgid ":c:expr:`METH_VARARGS | METH_KEYWORDS`" -msgstr "" - -#: c-api/structures.rst:366 -msgid "" -"Methods with these flags must be of type :c:type:`PyCFunctionWithKeywords`. " -"The function expects three parameters: *self*, *args*, *kwargs* where " -"*kwargs* is a dictionary of all the keyword arguments or possibly ``NULL`` " -"if there are no keyword arguments. The parameters are typically processed " -"using :c:func:`PyArg_ParseTupleAndKeywords`." -msgstr "" - -#: c-api/structures.rst:375 -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: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:385 -msgid "``METH_FASTCALL`` is now part of the :ref:`stable ABI `." -msgstr "" - -#: c-api/structures.rst:390 -msgid ":c:expr:`METH_FASTCALL | METH_KEYWORDS`" -msgstr "" - -#: c-api/structures.rst:391 -msgid "" -"Extension of :c:macro:`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: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:406 -msgid "" -"Can only be used in the combination with other flags: :ref:`METH_METHOD | " -"METH_FASTCALL | METH_KEYWORDS `." -msgstr "" - -#: c-api/structures.rst:412 -msgid ":c:expr:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS`" -msgstr "" - -#: c-api/structures.rst:413 -msgid "" -"Extension of :ref:`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:418 -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:427 -msgid "" -"Methods without parameters don't need to check whether arguments are given " -"if they are listed with the :c:macro:`METH_NOARGS` flag. They need to be of " -"type :c:type:`PyCFunction`. The first parameter is typically named *self* " -"and will hold a reference to the module or object instance. In all cases " -"the second parameter will be ``NULL``." -msgstr "" - -#: c-api/structures.rst:433 -msgid "" -"The function must have 2 parameters. Since the second parameter is " -"unused, :c:macro:`Py_UNUSED` can be used to prevent a compiler warning." -msgstr "" - -#: c-api/structures.rst:439 -msgid "" -"Methods with a single object argument can be listed with " -"the :c:macro:`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:expr:`PyObject*` parameter representing the " -"single argument." -msgstr "" - -#: c-api/structures.rst:445 -msgid "" -"These two constants are not used to indicate the calling convention but the " -"binding when used with methods of classes. These may not be used for " -"functions defined for modules. At most one of these flags may be set for " -"any given method." -msgstr "" - -#: c-api/structures.rst:455 -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:465 -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:469 -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:475 -msgid "" -"The method will be loaded in place of existing definitions. Without " -"*METH_COEXIST*, the default is to skip repeated definitions. Since slot " -"wrappers are loaded before the method table, the existence of a " -"*sq_contains* slot, for example, would generate a wrapped method " -"named :meth:`~object.__contains__` and preclude the loading of a " -"corresponding PyCFunction with the same name. With the flag defined, the " -"PyCFunction will be loaded in place of the wrapper object and will co-exist " -"with the slot. This is helpful because calls to PyCFunctions are optimized " -"more than wrapper object calls." -msgstr "" - -#: c-api/structures.rst:488 -msgid "" -"The type object corresponding to Python C method objects. This is available " -"as :class:`types.BuiltinMethodType` in the Python layer." -msgstr "" - -#: c-api/structures.rst:494 -msgid "" -"Return true if *op* is an instance of the :c:type:`PyCMethod_Type` type or a " -"subtype of it. This function always succeeds." -msgstr "" - -#: c-api/structures.rst:500 -msgid "" -"This is the same as :c:func:`PyCMethod_Check`, but does not account for " -"subtypes." -msgstr "" - -#: c-api/structures.rst:506 -msgid "" -"Turn *ml* into a Python :term:`callable` object. The caller must ensure that " -"*ml* outlives the :term:`callable`. Typically, *ml* is defined as a static " -"variable." -msgstr "" - -#: c-api/structures.rst:510 -msgid "" -"The *self* parameter will be passed as the *self* argument to the C function " -"in ``ml->ml_meth`` when invoked. *self* can be ``NULL``." -msgstr "" - -#: c-api/structures.rst:514 -msgid "" -"The :term:`callable` object's ``__module__`` attribute can be set from the " -"given *module* argument. *module* should be a Python string, which will be " -"used as name of the module the function is defined in. If unavailable, it " -"can be set to :const:`None` or ``NULL``." -msgstr "" - -#: c-api/structures.rst:520 -msgid ":attr:`function.__module__`" -msgstr "" - -#: c-api/structures.rst:522 -msgid "" -"The *cls* parameter will be passed as the *defining_class* argument to the C " -"function. Must be set if :c:macro:`METH_METHOD` is set on ``ml->ml_flags``." -msgstr "" - -#: c-api/structures.rst:531 -msgid "" -"The type object corresponding to Python C function objects. This is " -"available as :class:`types.BuiltinFunctionType` in the Python layer." -msgstr "" - -#: c-api/structures.rst:537 -msgid "" -"Return true if *op* is an instance of the :c:type:`PyCFunction_Type` type or " -"a subtype of it. This function always succeeds." -msgstr "" - -#: c-api/structures.rst:543 -msgid "" -"This is the same as :c:func:`PyCFunction_Check`, but does not account for " -"subtypes." -msgstr "" - -#: c-api/structures.rst:549 -msgid "Equivalent to ``PyCMethod_New(ml, self, module, NULL)``." -msgstr "" - -#: c-api/structures.rst:554 -msgid "Equivalent to ``PyCMethod_New(ml, self, NULL, NULL)``." -msgstr "" - -#: c-api/structures.rst:559 -msgid "" -"Get the function's flags on *func* as they were passed " -"to :c:member:`~PyMethodDef.ml_flags`." -msgstr "" - -#: c-api/structures.rst:580 c-api/structures.rst:600 -msgid "" -"If *func* is not a C function object, this fails with an exception. *func* " -"must not be ``NULL``." -msgstr "" - -#: c-api/structures.rst:565 -msgid "" -"This function returns the function's flags on success, and ``-1`` with an " -"exception set on failure." -msgstr "" - -#: c-api/structures.rst:571 -msgid "" -"This is the same as :c:func:`PyCFunction_GetFlags`, but without error or " -"type checking." -msgstr "" - -#: c-api/structures.rst:577 -msgid "" -"Get the function pointer on *func* as it was passed " -"to :c:member:`~PyMethodDef.ml_meth`." -msgstr "" - -#: c-api/structures.rst:583 -msgid "" -"This function returns the function pointer on success, and ``NULL`` with an " -"exception set on failure." -msgstr "" - -#: c-api/structures.rst:589 -msgid "" -"This is the same as :c:func:`PyCFunction_GetFunction`, but without error or " -"type checking." -msgstr "" - -#: c-api/structures.rst:595 -msgid "" -"Get the \"self\" object on *func*. This is the object that would be passed " -"to the first argument of a :c:type:`PyCFunction`. For C function objects " -"created through a :c:type:`PyMethodDef` on a :c:type:`PyModuleDef`, this is " -"the resulting module object." -msgstr "" - -#: c-api/structures.rst:603 -msgid "" -"This function returns a :term:`borrowed reference` to the \"self\" object on " -"success, and ``NULL`` with an exception set on failure." -msgstr "" - -#: c-api/structures.rst:609 -msgid "" -"This is the same as :c:func:`PyCFunction_GetSelf`, but without error or type " -"checking." -msgstr "" - -#: c-api/structures.rst:614 -msgid "Accessing attributes of extension types" -msgstr "" - -#: c-api/structures.rst:618 -msgid "" -"Structure which describes an attribute of a type which corresponds to a C " -"struct member. When defining a class, put a NULL-terminated array of these " -"structures in the :c:member:`~PyTypeObject.tp_members` slot." -msgstr "" - -#: c-api/structures.rst:623 -msgid "Its fields are, in order:" -msgstr "" - -#: c-api/structures.rst:627 -msgid "" -"Name of the member. A NULL value marks the end of a ``PyMemberDef[]`` array." -msgstr "" - -#: c-api/structures.rst:630 -msgid "The string should be static, no copy is made of it." -msgstr "" - -#: c-api/structures.rst:634 -msgid "" -"The type of the member in the C struct. See :ref:`PyMemberDef-types` for the " -"possible values." -msgstr "" - -#: c-api/structures.rst:639 -msgid "" -"The offset in bytes that the member is located on the type’s object struct." -msgstr "" - -#: c-api/structures.rst:643 -msgid "" -"Zero or more of the :ref:`PyMemberDef-flags`, combined using bitwise OR." -msgstr "" - -#: c-api/structures.rst:647 -msgid "" -"The docstring, or NULL. The string should be static, no copy is made of it. " -"Typically, it is defined using :c:macro:`PyDoc_STR`." -msgstr "" - -#: c-api/structures.rst:651 -msgid "" -"By default (when :c:member:`~PyMemberDef.flags` is ``0``), members allow " -"both read and write access. Use the :c:macro:`Py_READONLY` flag for read-" -"only access. Certain types, like :c:macro:`Py_T_STRING`, " -"imply :c:macro:`Py_READONLY`. Only :c:macro:`Py_T_OBJECT_EX` (and " -"legacy :c:macro:`T_OBJECT`) members can be deleted." -msgstr "" - -#: c-api/structures.rst:660 -msgid "" -"For heap-allocated types (created using :c:func:`PyType_FromSpec` or " -"similar), ``PyMemberDef`` may contain a definition for the special member " -"``\"__vectorcalloffset__\"``, corresponding " -"to :c:member:`~PyTypeObject.tp_vectorcall_offset` in type objects. This " -"member must be defined with ``Py_T_PYSSIZET``, and either ``Py_READONLY`` or " -"``Py_READONLY | Py_RELATIVE_OFFSET``. For example::" -msgstr "" - -#: c-api/structures.rst:673 -msgid "(You may need to ``#include `` for :c:func:`!offsetof`.)" -msgstr "" - -#: c-api/structures.rst:675 -msgid "" -"The legacy offsets :c:member:`~PyTypeObject.tp_dictoffset` " -"and :c:member:`~PyTypeObject.tp_weaklistoffset` can be defined similarly " -"using ``\"__dictoffset__\"`` and ``\"__weaklistoffset__\"`` members, but " -"extensions are strongly encouraged to use :c:macro:`Py_TPFLAGS_MANAGED_DICT` " -"and :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` instead." -msgstr "" - -#: c-api/structures.rst:683 -msgid "" -"``PyMemberDef`` is always available. Previously, it required including " -"``\"structmember.h\"``." -msgstr "" - -#: c-api/structures.rst:688 -msgid "" -":c:macro:`Py_RELATIVE_OFFSET` is now allowed for " -"``\"__vectorcalloffset__\"``, ``\"__dictoffset__\"`` and " -"``\"__weaklistoffset__\"``." -msgstr "" - -#: c-api/structures.rst:694 -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:700 -msgid "" -"``PyMember_GetOne`` is always available. Previously, it required including " -"``\"structmember.h\"``." -msgstr "" - -#: c-api/structures.rst:705 -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:711 -msgid "" -"``PyMember_SetOne`` is always available. Previously, it required including " -"``\"structmember.h\"``." -msgstr "" - -#: c-api/structures.rst:717 -msgid "Member flags" -msgstr "" - -#: c-api/structures.rst:719 -msgid "The following flags can be used with :c:member:`PyMemberDef.flags`:" -msgstr "" - -#: c-api/structures.rst:723 -msgid "Not writable." -msgstr "" - -#: c-api/structures.rst:727 -msgid "" -"Emit an ``object.__getattr__`` :ref:`audit event ` before " -"reading." -msgstr "" - -#: c-api/structures.rst:732 -msgid "" -"Indicates that the :c:member:`~PyMemberDef.offset` of this ``PyMemberDef`` " -"entry indicates an offset from the subclass-specific data, rather than from " -"``PyObject``." -msgstr "" - -#: c-api/structures.rst:736 -msgid "" -"Can only be used as part of the :c:data:`Py_tp_members` :c:type:`slot " -"` when creating a class using " -"negative :c:member:`~PyType_Spec.basicsize`. It is mandatory in that case. " -"When setting :c:member:`~PyTypeObject.tp_members` from the slot during class " -"creation, Python clears the flag and sets :c:member:`PyMemberDef.offset` to " -"the offset from the ``PyObject`` struct." -msgstr "" - -#: c-api/structures.rst:751 -msgid "" -"The :c:macro:`!RESTRICTED`, :c:macro:`!READ_RESTRICTED` and :c:macro:`!" -"WRITE_RESTRICTED` macros available with ``#include \"structmember.h\"`` are " -"deprecated. :c:macro:`!READ_RESTRICTED` and :c:macro:`!RESTRICTED` are " -"equivalent to :c:macro:`Py_AUDIT_READ`; :c:macro:`!WRITE_RESTRICTED` does " -"nothing." -msgstr "" - -#: c-api/structures.rst:762 -msgid "" -"The :c:macro:`!READONLY` macro was renamed to :c:macro:`Py_READONLY`. " -"The :c:macro:`!PY_AUDIT_READ` macro was renamed with the ``Py_`` prefix. The " -"new names are now always available. Previously, these required ``#include " -"\"structmember.h\"``. The header is still available and it provides the old " -"names." -msgstr "" - -#: c-api/structures.rst:771 -msgid "Member types" -msgstr "" - -#: c-api/structures.rst:773 -msgid "" -":c:member:`PyMemberDef.type` can be one of the following macros " -"corresponding to various C types. When the member is accessed in Python, it " -"will be converted to the equivalent Python type. When it is set from Python, " -"it will be converted back to the C type. If that is not possible, an " -"exception such as :exc:`TypeError` or :exc:`ValueError` is raised." -msgstr "" - -#: c-api/structures.rst:781 -msgid "" -"Unless marked (D), attributes defined this way cannot be deleted using " -"e.g. :keyword:`del` or :py:func:`delattr`." -msgstr "" - -#: c-api/structures.rst:785 -msgid "Macro name" -msgstr "" - -#: c-api/structures.rst:785 -msgid "C type" -msgstr "Type C" - -#: c-api/structures.rst:785 -msgid "Python type" -msgstr "Type Python" - -#: c-api/structures.rst:787 -msgid ":c:expr:`char`" -msgstr "" - -#: c-api/structures.rst:788 c-api/structures.rst:790 c-api/structures.rst:792 -#: c-api/structures.rst:794 c-api/structures.rst:796 c-api/structures.rst:797 -msgid ":py:class:`int`" -msgstr "" - -#: c-api/structures.rst:788 -msgid ":c:expr:`short`" -msgstr "" - -#: c-api/structures.rst:789 -msgid ":c:expr:`int`" -msgstr "" - -#: c-api/structures.rst:790 -msgid ":c:expr:`long`" -msgstr "" - -#: c-api/structures.rst:791 -msgid ":c:expr:`long long`" -msgstr "" - -#: c-api/structures.rst:792 -#, fuzzy -msgid ":c:expr:`unsigned char`" -msgstr "``unsigned char``" - -#: c-api/structures.rst:793 -#, fuzzy -msgid ":c:expr:`unsigned int`" -msgstr "``unsigned int``" - -#: c-api/structures.rst:794 -#, fuzzy -msgid ":c:expr:`unsigned short`" -msgstr "``unsigned short``" - -#: c-api/structures.rst:795 -#, fuzzy -msgid ":c:expr:`unsigned long`" -msgstr "``unsigned long``" - -#: c-api/structures.rst:796 -#, fuzzy -msgid ":c:expr:`unsigned long long`" -msgstr "``unsigned long long``" - -#: c-api/structures.rst:797 -msgid ":c:expr:`Py_ssize_t`" -msgstr "" - -#: c-api/structures.rst:798 -msgid ":c:expr:`float`" -msgstr "" - -#: c-api/structures.rst:799 -msgid ":py:class:`float`" -msgstr "" - -#: c-api/structures.rst:799 -msgid ":c:expr:`double`" -msgstr "" - -#: c-api/structures.rst:800 -msgid ":c:expr:`char` (written as 0 or 1)" -msgstr "" - -#: c-api/structures.rst:800 -msgid ":py:class:`bool`" -msgstr "" - -#: c-api/structures.rst:802 -msgid ":c:expr:`const char *` (*)" -msgstr "" - -#: c-api/structures.rst:803 -msgid ":py:class:`str` (RO)" -msgstr "" - -#: c-api/structures.rst:803 -msgid ":c:expr:`const char[]` (*)" -msgstr "" - -#: c-api/structures.rst:804 -msgid ":c:expr:`char` (0-127)" -msgstr "" - -#: c-api/structures.rst:804 -msgid ":py:class:`str` (**)" -msgstr "" - -#: c-api/structures.rst:805 -#, fuzzy -msgid ":c:expr:`PyObject *`" -msgstr "PyObject \\*" - -#: c-api/structures.rst:805 -msgid ":py:class:`object` (D)" -msgstr "" - -#: c-api/structures.rst:808 -msgid "" -"(*): Zero-terminated, UTF8-encoded C string. With :c:macro:`!Py_T_STRING` " -"the C representation is a pointer; with :c:macro:`!Py_T_STRING_INPLACE` the " -"string is stored directly in the structure." -msgstr "" - -#: c-api/structures.rst:813 -msgid "(**): String of length 1. Only ASCII is accepted." -msgstr "" - -#: c-api/structures.rst:815 -msgid "(RO): Implies :c:macro:`Py_READONLY`." -msgstr "" - -#: c-api/structures.rst:817 -msgid "" -"(D): Can be deleted, in which case the pointer is set to ``NULL``. Reading a " -"``NULL`` pointer raises :py:exc:`AttributeError`." -msgstr "" - -#: c-api/structures.rst:843 -msgid "" -"In previous versions, the macros were only available with ``#include " -"\"structmember.h\"`` and were named without the ``Py_`` prefix (e.g. as " -"``T_INT``). The header is still available and contains the old names, along " -"with the following deprecated types:" -msgstr "" - -#: c-api/structures.rst:851 -msgid "" -"Like ``Py_T_OBJECT_EX``, but ``NULL`` is converted to ``None``. This results " -"in surprising behavior in Python: deleting the attribute effectively sets it " -"to ``None``." -msgstr "" - -#: c-api/structures.rst:857 -msgid "Always ``None``. Must be used with :c:macro:`Py_READONLY`." -msgstr "" - -#: c-api/structures.rst:860 -msgid "Defining Getters and Setters" -msgstr "" - -#: c-api/structures.rst:864 -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:869 -msgid "attribute name" -msgstr "" - -#: c-api/structures.rst:873 -msgid "C function to get the attribute." -msgstr "" - -#: c-api/structures.rst:877 -msgid "" -"Optional C function to set or delete the attribute. If ``NULL``, the " -"attribute is read-only." -msgstr "" - -#: c-api/structures.rst:882 -msgid "optional docstring" -msgstr "" - -#: c-api/structures.rst:886 -msgid "" -"Optional user data pointer, providing additional data for getter and setter." -msgstr "" - -#: c-api/structures.rst:890 -msgid "" -"The ``get`` function takes one :c:expr:`PyObject*` parameter (the instance) " -"and a user data pointer (the associated ``closure``):" -msgstr "" - -#: c-api/structures.rst:893 -msgid "" -"It should return a new reference on success or ``NULL`` with a set exception " -"on failure." -msgstr "" - -#: c-api/structures.rst:898 -msgid "" -"``set`` functions take two :c:expr:`PyObject*` parameters (the instance and " -"the value to be set) and a user data pointer (the associated ``closure``):" -msgstr "" - -#: c-api/structures.rst:901 -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 "" - -#, fuzzy -#~ msgid "PyObject ob_base;" -#~ msgstr "PyObject \\*" - -#~ msgid "built-in function" -#~ msgstr "fonction native" - -#~ msgid "classmethod" -#~ msgstr "méthode de classe" - -#~ msgid "staticmethod" -#~ msgstr "méthode statique" - -#~ msgid "Field" -#~ msgstr "Champ" - -#~ msgid "C Type" -#~ msgstr "Type C" - -#~ msgid "Meaning" -#~ msgstr "Signification" - -#~ msgid ":attr:`name`" -#~ msgstr ":attr:`name`" - -#~ msgid ":attr:`!type`" -#~ msgstr ":attr:`!type`" - -#~ msgid "int" -#~ msgstr "*int*" - -#~ msgid ":attr:`offset`" -#~ msgstr ":attr:`offset`" - -#~ msgid ":attr:`flags`" -#~ msgstr ":attr:`flags`" - -#~ msgid ":attr:`doc`" -#~ msgstr ":attr:`doc`" - -#~ msgid "float" -#~ msgstr "*float*" - -#~ msgid "double" -#~ msgstr "double" - -#~ msgid "char" -#~ msgstr "char" - -#~ 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/subinterpreters.po b/c-api/subinterpreters.po deleted file mode 100644 index b87cdb96a6..0000000000 --- a/c-api/subinterpreters.po +++ /dev/null @@ -1,554 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/subinterpreters.rst:6 -msgid "Multiple interpreters in a Python process" -msgstr "" - -#: c-api/subinterpreters.rst:8 -msgid "" -"While in most uses, you will only embed a single Python interpreter, there " -"are cases where you need to create several independent interpreters in the " -"same process and perhaps even in the same thread. Sub-interpreters allow you " -"to do that." -msgstr "" - -#: c-api/subinterpreters.rst:13 -msgid "" -"The \"main\" interpreter is the first one created when the runtime " -"initializes. It is usually the only Python interpreter in a process. Unlike " -"sub-interpreters, the main interpreter has unique process-global " -"responsibilities like signal handling. It is also responsible for execution " -"during runtime initialization and is usually the active interpreter during " -"runtime finalization. The :c:func:`PyInterpreterState_Main` function " -"returns a pointer to its state." -msgstr "" - -#: c-api/subinterpreters.rst:20 -msgid "" -"You can switch between sub-interpreters using " -"the :c:func:`PyThreadState_Swap` function. You can create and destroy them " -"using the following functions:" -msgstr "" - -#: c-api/subinterpreters.rst:26 -msgid "" -"Structure containing most parameters to configure a sub-interpreter. Its " -"values are used only in :c:func:`Py_NewInterpreterFromConfig` and never " -"modified by the runtime." -msgstr "" - -#: c-api/subinterpreters.rst:32 -msgid "Structure fields:" -msgstr "" - -#: c-api/subinterpreters.rst:36 -msgid "" -"If this is ``0`` then the sub-interpreter will use its own \"object\" " -"allocator state. Otherwise it will use (share) the main interpreter's." -msgstr "" - -#: c-api/subinterpreters.rst:40 -msgid "" -"If this is ``0`` " -"then :c:member:`~PyInterpreterConfig.check_multi_interp_extensions` must be " -"``1`` (non-zero). If this is ``1`` then :c:member:`~PyInterpreterConfig.gil` " -"must not be :c:macro:`PyInterpreterConfig_OWN_GIL`." -msgstr "" - -#: c-api/subinterpreters.rst:48 -msgid "" -"If this is ``0`` then the runtime will not support forking the process in " -"any thread where the sub-interpreter is currently active. Otherwise fork is " -"unrestricted." -msgstr "" - -#: c-api/subinterpreters.rst:52 -msgid "" -"Note that the :mod:`subprocess` module still works when fork is disallowed." -msgstr "" - -#: c-api/subinterpreters.rst:57 -msgid "" -"If this is ``0`` then the runtime will not support replacing the current " -"process via exec (e.g. :func:`os.execv`) in any thread where the sub-" -"interpreter is currently active. Otherwise exec is unrestricted." -msgstr "" - -#: c-api/subinterpreters.rst:62 -msgid "" -"Note that the :mod:`subprocess` module still works when exec is disallowed." -msgstr "" - -#: c-api/subinterpreters.rst:67 -msgid "" -"If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " -"create threads. Otherwise threads are allowed." -msgstr "" - -#: c-api/subinterpreters.rst:73 -msgid "" -"If this is ``0`` then the sub-interpreter's :mod:`threading` module won't " -"create daemon threads. Otherwise daemon threads are allowed (as long " -"as :c:member:`~PyInterpreterConfig.allow_threads` is non-zero)." -msgstr "" - -#: c-api/subinterpreters.rst:80 -msgid "" -"If this is ``0`` then all extension modules may be imported, including " -"legacy (single-phase init) modules, in any thread where the sub-interpreter " -"is currently active. Otherwise only multi-phase init extension modules " -"(see :pep:`489`) may be imported. (Also " -"see :c:macro:`Py_mod_multiple_interpreters`.)" -msgstr "" - -#: c-api/subinterpreters.rst:87 -msgid "" -"This must be ``1`` (non-zero) " -"if :c:member:`~PyInterpreterConfig.use_main_obmalloc` is ``0``." -msgstr "" - -#: c-api/subinterpreters.rst:92 -msgid "" -"This determines the operation of the GIL for the sub-interpreter. It may be " -"one of the following:" -msgstr "" - -#: c-api/subinterpreters.rst:99 -msgid "Use the default selection (:c:macro:`PyInterpreterConfig_SHARED_GIL`)." -msgstr "" - -#: c-api/subinterpreters.rst:103 -msgid "Use (share) the main interpreter's GIL." -msgstr "" - -#: c-api/subinterpreters.rst:107 -msgid "Use the sub-interpreter's own GIL." -msgstr "" - -#: c-api/subinterpreters.rst:109 -msgid "" -"If this is :c:macro:`PyInterpreterConfig_OWN_GIL` " -"then :c:member:`PyInterpreterConfig.use_main_obmalloc` must be ``0``." -msgstr "" - -#: c-api/subinterpreters.rst:123 -msgid "" -"Create a new sub-interpreter. This is an (almost) totally separate " -"environment for the execution of Python code. In particular, the new " -"interpreter has separate, independent versions of all imported modules, " -"including the fundamental modules :mod:`builtins`, :mod:`__main__` " -"and :mod:`sys`. The table of loaded modules (``sys.modules``) and the " -"module search path (``sys.path``) are also separate. The new environment " -"has no ``sys.argv`` variable. It has new standard I/O stream file objects " -"``sys.stdin``, ``sys.stdout`` and ``sys.stderr`` (however these refer to the " -"same underlying file descriptors)." -msgstr "" - -#: c-api/subinterpreters.rst:133 -msgid "" -"The given *config* controls the options with which the interpreter is " -"initialized." -msgstr "" - -#: c-api/subinterpreters.rst:136 -msgid "" -"Upon success, *tstate_p* will be set to the first :term:`thread state` " -"created in the new sub-interpreter. This thread state is :term:`attached " -"`. Note that no actual thread is created; see the " -"discussion of thread states below. If creation of the new interpreter is " -"unsuccessful, *tstate_p* is set to ``NULL``; no exception is set since the " -"exception state is stored in the :term:`attached thread state`, which might " -"not exist." -msgstr "" - -#: c-api/subinterpreters.rst:145 -msgid "" -"Like all other Python/C API functions, an :term:`attached thread state` must " -"be present before calling this function, but it might be detached upon " -"returning. On success, the returned thread state will be :term:`attached " -"`. If the sub-interpreter is created with its " -"own :term:`GIL` then the :term:`attached thread state` of the calling " -"interpreter will be detached. When the function returns, the new " -"interpreter's :term:`thread state` will be :term:`attached ` to the current thread and the previous interpreter's :term:`attached " -"thread state` will remain detached." -msgstr "" - -#: c-api/subinterpreters.rst:156 -msgid "" -"Sub-interpreters are most effective when isolated from each other, with " -"certain functionality restricted::" -msgstr "" - -#: c-api/subinterpreters.rst:174 -msgid "" -"Note that the config is used only briefly and does not get modified. During " -"initialization the config's values are converted into " -"various :c:type:`PyInterpreterState` values. A read-only copy of the config " -"may be stored internally on the :c:type:`PyInterpreterState`." -msgstr "" - -#: c-api/subinterpreters.rst:183 -msgid "Extension modules are shared between (sub-)interpreters as follows:" -msgstr "" - -#: c-api/subinterpreters.rst:185 -msgid "" -"For modules using multi-phase initialization, " -"e.g. :c:func:`PyModule_FromDefAndSpec`, a separate module object is created " -"and initialized for each interpreter. Only C-level static and global " -"variables are shared between these module objects." -msgstr "" - -#: c-api/subinterpreters.rst:191 -msgid "" -"For modules using legacy :ref:`single-phase initialization `, e.g. :c:func:`PyModule_Create`, the first time a " -"particular extension is imported, it is initialized normally, and a " -"(shallow) copy of its module's dictionary is squirreled away. When the same " -"extension is imported by another (sub-)interpreter, a new module is " -"initialized and filled with the contents of this copy; the extension's " -"``init`` function is not called. Objects in the module's dictionary thus end " -"up shared across (sub-)interpreters, which might cause unwanted behavior " -"(see `Bugs and caveats`_ below)." -msgstr "" - -#: c-api/subinterpreters.rst:203 -msgid "" -"Note that this is different from what happens when an extension is imported " -"after the interpreter has been completely re-initialized by " -"calling :c:func:`Py_FinalizeEx` and :c:func:`Py_Initialize`; in that case, " -"the extension's ``initmodule`` function *is* called again. As with multi-" -"phase initialization, this means that only C-level static and global " -"variables are shared between these modules." -msgstr "" - -#: c-api/subinterpreters.rst:223 -msgid "" -"Create a new sub-interpreter. This is essentially just a wrapper " -"around :c:func:`Py_NewInterpreterFromConfig` with a config that preserves " -"the existing behavior. The result is an unisolated sub-interpreter that " -"shares the main interpreter's GIL, allows fork/exec, allows daemon threads, " -"and allows single-phase init modules." -msgstr "" - -#: c-api/subinterpreters.rst:235 -msgid "" -"Destroy the (sub-)interpreter represented by the given :term:`thread state`. " -"The given thread state must be :term:`attached `. " -"When the call returns, there will be no :term:`attached thread state`. All " -"thread states associated with this interpreter are destroyed." -msgstr "" - -#: c-api/subinterpreters.rst:240 -msgid "" -":c:func:`Py_FinalizeEx` will destroy all sub-interpreters that haven't been " -"explicitly destroyed at that point." -msgstr "" - -#: c-api/subinterpreters.rst:247 -msgid "A per-interpreter GIL" -msgstr "" - -#: c-api/subinterpreters.rst:251 -msgid "" -"Using :c:func:`Py_NewInterpreterFromConfig` you can create a sub-interpreter " -"that is completely isolated from other interpreters, including having its " -"own GIL. The most important benefit of this isolation is that such an " -"interpreter can execute Python code without being blocked by other " -"interpreters or blocking any others. Thus a single Python process can truly " -"take advantage of multiple CPU cores when running Python code. The " -"isolation also encourages a different approach to concurrency than that of " -"just using threads. (See :pep:`554` and :pep:`684`.)" -msgstr "" - -#: c-api/subinterpreters.rst:261 -msgid "" -"Using an isolated interpreter requires vigilance in preserving that " -"isolation. That especially means not sharing any objects or mutable state " -"without guarantees about thread-safety. Even objects that are otherwise " -"immutable (e.g. ``None``, ``(1, 5)``) can't normally be shared because of " -"the refcount. One simple but less-efficient approach around this is to use " -"a global lock around all use of some state (or object). Alternately, " -"effectively immutable objects (like integers or strings) can be made safe in " -"spite of their refcounts by making them :term:`immortal`. In fact, this has " -"been done for the builtin singletons, small integers, and a number of other " -"builtin objects." -msgstr "" - -#: c-api/subinterpreters.rst:272 -msgid "" -"If you preserve isolation then you will have access to proper multi-core " -"computing without the complications that come with free-threading. Failure " -"to preserve isolation will expose you to the full consequences of free-" -"threading, including races and hard-to-debug crashes." -msgstr "" - -#: c-api/subinterpreters.rst:277 -msgid "" -"Aside from that, one of the main challenges of using multiple isolated " -"interpreters is how to communicate between them safely (not break isolation) " -"and efficiently. The runtime and stdlib do not provide any standard " -"approach to this yet. A future stdlib module would help mitigate the effort " -"of preserving isolation and expose effective tools for communicating (and " -"sharing) data between interpreters." -msgstr "" - -#: c-api/subinterpreters.rst:286 -msgid "Bugs and caveats" -msgstr "" - -#: c-api/subinterpreters.rst:288 -msgid "" -"Because sub-interpreters (and the main interpreter) are part of the same " -"process, the insulation between them isn't perfect --- for example, using " -"low-level file operations like :func:`os.close` they can (accidentally or " -"maliciously) affect each other's open files. Because of the way extensions " -"are shared between (sub-)interpreters, some extensions may not work " -"properly; this is especially likely when using single-phase initialization " -"or (static) global variables. It is possible to insert objects created in " -"one sub-interpreter into a namespace of another (sub-)interpreter; this " -"should be avoided if possible." -msgstr "" - -#: c-api/subinterpreters.rst:298 -msgid "" -"Special care should be taken to avoid sharing user-defined functions, " -"methods, instances or classes between sub-interpreters, since import " -"operations executed by such objects may affect the wrong (sub-)interpreter's " -"dictionary of loaded modules. It is equally important to avoid sharing " -"objects from which the above are reachable." -msgstr "" - -#: c-api/subinterpreters.rst:304 -msgid "" -"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 created threads will probably be broken when using sub-interpreters." -msgstr "" - -#: c-api/subinterpreters.rst:315 -msgid "High-level APIs" -msgstr "" - -#: c-api/subinterpreters.rst:319 -msgid "" -"This data structure represents the state shared by a number of cooperating " -"threads. Threads belonging to the same interpreter share their module " -"administration and a few other internal items. There are no public members " -"in this structure." -msgstr "" - -#: c-api/subinterpreters.rst:324 -msgid "" -"Threads belonging to different interpreters initially share nothing, except " -"process state like available memory, open file descriptors and such. The " -"global interpreter lock is also shared by all threads, regardless of to " -"which interpreter they belong." -msgstr "" - -#: c-api/subinterpreters.rst:331 -msgid "" -":pep:`684` introduced the possibility of a :ref:`per-interpreter GIL `. See :c:func:`Py_NewInterpreterFromConfig`." -msgstr "" - -#: c-api/subinterpreters.rst:338 -msgid "Get the current interpreter." -msgstr "" - -#: c-api/subinterpreters.rst:340 -msgid "" -"Issue a fatal error if there is no :term:`attached thread state`. It cannot " -"return NULL." -msgstr "" - -#: c-api/subinterpreters.rst:348 -msgid "" -"Return the interpreter's unique ID. If there was any error in doing so then " -"``-1`` is returned and an error is set." -msgstr "" - -#: c-api/subinterpreters.rst:351 -msgid "The caller must have an :term:`attached thread state`." -msgstr "" - -#: c-api/subinterpreters.rst:358 -msgid "" -"Return a dictionary in which interpreter-specific data may be stored. If " -"this function returns ``NULL`` then no exception has been raised and the " -"caller should assume no interpreter-specific dict is available." -msgstr "" - -#: c-api/subinterpreters.rst:362 -msgid "" -"This is not a replacement for :c:func:`PyModule_GetState()`, which " -"extensions should use to store interpreter-specific state information." -msgstr "" - -#: c-api/subinterpreters.rst:365 -msgid "" -"The returned dictionary is borrowed from the interpreter and is valid until " -"interpreter shutdown." -msgstr "" - -#: c-api/subinterpreters.rst:373 -msgid "Type of a frame evaluation function." -msgstr "" - -#: c-api/subinterpreters.rst:375 -msgid "" -"The *throwflag* parameter is used by the ``throw()`` method of generators: " -"if non-zero, handle the current exception." -msgstr "" - -#: c-api/subinterpreters.rst:378 -msgid "The function now takes a *tstate* parameter." -msgstr "" - -#: c-api/subinterpreters.rst:381 -msgid "" -"The *frame* parameter changed from ``PyFrameObject*`` to " -"``_PyInterpreterFrame*``." -msgstr "" - -#: c-api/subinterpreters.rst:387 -msgid "Get the frame evaluation function." -msgstr "" - -#: c-api/subinterpreters.rst:398 -msgid "See the :pep:`523` \"Adding a frame evaluation API to CPython\"." -msgstr "" - -#: c-api/subinterpreters.rst:396 -msgid "Set the frame evaluation function." -msgstr "" - -#: c-api/subinterpreters.rst:404 -msgid "" -"Enables or disables specialization why a custom frame evaluator is in place." -msgstr "" - -#: c-api/subinterpreters.rst:406 -msgid "" -"If *allow_specialization* is non-zero, the adaptive specializer will " -"continue to specialize bytecodes even though a custom eval frame function is " -"set. When *allow_specialization* is zero, setting a custom eval frame " -"disables specialization. The standard interpreter loop will continue to " -"deopt while a frame evaluation API is in place - the frame evaluation " -"function needs to handle the specialized opcodes to take advantage of this." -msgstr "" - -#: c-api/subinterpreters.rst:417 -msgid "" -"Return non-zero if adaptive specialization is enabled for the interpreter. " -"Specialization is enabled when no custom eval frame function is set, or when " -"one is set with *allow_specialization* enabled." -msgstr "" - -#: c-api/subinterpreters.rst:425 -msgid "Low-level APIs" -msgstr "" - -#: c-api/subinterpreters.rst:427 -msgid "" -"All of the following functions must be called after :c:func:`Py_Initialize`." -msgstr "" - -#: c-api/subinterpreters.rst:429 -msgid "" -":c:func:`Py_Initialize()` now initializes the :term:`GIL` and sets " -"an :term:`attached thread state`." -msgstr "" - -#: c-api/subinterpreters.rst:436 -msgid "" -"Create a new interpreter state object. An :term:`attached thread state` is " -"not needed, but may optionally exist if it is necessary to serialize calls " -"to this function." -msgstr "" - -#: c-api/subinterpreters.rst:440 -msgid "" -"Raises an :ref:`auditing event ` " -"``cpython.PyInterpreterState_New`` with no arguments." -msgstr "" - -#: c-api/subinterpreters.rst:445 -msgid "" -"Reset all information in an interpreter state object. There must be " -"an :term:`attached thread state` for the interpreter." -msgstr "" - -#: c-api/subinterpreters.rst:448 -msgid "" -"Raises an :ref:`auditing event ` " -"``cpython.PyInterpreterState_Clear`` with no arguments." -msgstr "" - -#: c-api/subinterpreters.rst:453 -msgid "" -"Destroy an interpreter state object. There **should not** be " -"an :term:`attached thread state` for the target interpreter. The interpreter " -"state must have been reset with a previous call " -"to :c:func:`PyInterpreterState_Clear`." -msgstr "" - -#: c-api/subinterpreters.rst:461 -msgid "Advanced debugger support" -msgstr "" - -#: c-api/subinterpreters.rst:463 -msgid "" -"These functions are only intended to be used by advanced debugging tools." -msgstr "" - -#: c-api/subinterpreters.rst:468 -msgid "" -"Return the interpreter state object at the head of the list of all such " -"objects." -msgstr "" - -#: c-api/subinterpreters.rst:473 -msgid "Return the main interpreter state object." -msgstr "" - -#: c-api/subinterpreters.rst:478 -msgid "" -"Return the next interpreter state object after *interp* from the list of all " -"such objects." -msgstr "" - -#: c-api/subinterpreters.rst:484 -msgid "" -"Return the pointer to the first :c:type:`PyThreadState` object in the list " -"of threads associated with the interpreter *interp*." -msgstr "" - -#: c-api/subinterpreters.rst:490 -msgid "" -"Return the next thread state object after *tstate* from the list of all such " -"objects belonging to the same :c:type:`PyInterpreterState` object." -msgstr "" diff --git a/c-api/synchronization.po b/c-api/synchronization.po deleted file mode 100644 index e47ff55bac..0000000000 --- a/c-api/synchronization.po +++ /dev/null @@ -1,344 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/synchronization.rst:6 -msgid "Synchronization primitives" -msgstr "" - -#: c-api/synchronization.rst:8 -msgid "The C-API provides a basic mutual exclusion lock." -msgstr "" - -#: c-api/synchronization.rst:12 -msgid "" -"A mutual exclusion lock. The :c:type:`!PyMutex` should be initialized to " -"zero to represent the unlocked state. For example::" -msgstr "" - -#: c-api/synchronization.rst:17 -msgid "" -"Instances of :c:type:`!PyMutex` should not be copied or moved. Both the " -"contents and address of a :c:type:`!PyMutex` are meaningful, and it must " -"remain at a fixed, writable location in memory." -msgstr "" - -#: c-api/synchronization.rst:23 -msgid "" -"A :c:type:`!PyMutex` currently occupies one byte, but the size should be " -"considered unstable. The size may change in future Python releases without " -"a deprecation period." -msgstr "" - -#: c-api/synchronization.rst:31 -msgid "" -"Lock mutex *m*. If another thread has already locked it, the calling thread " -"will block until the mutex is unlocked. While blocked, the thread will " -"temporarily detach the :term:`thread state ` if one " -"exists." -msgstr "" - -#: c-api/synchronization.rst:39 -msgid "" -"Unlock mutex *m*. The mutex must be locked --- otherwise, the function will " -"issue a fatal error." -msgstr "" - -#: c-api/synchronization.rst:46 -msgid "Returns non-zero if the mutex *m* is currently locked, zero otherwise." -msgstr "" - -#: c-api/synchronization.rst:50 -msgid "" -"This function is intended for use in assertions and debugging only and " -"should not be used to make concurrency control decisions, as the lock state " -"may change immediately after the check." -msgstr "" - -#: c-api/synchronization.rst:59 -msgid "Python critical section API" -msgstr "" - -#: c-api/synchronization.rst:61 -msgid "" -"The critical section API provides a deadlock avoidance layer on top of per-" -"object locks for :term:`free-threaded ` CPython. They are " -"intended to replace reliance on the :term:`global interpreter lock`, and are " -"no-ops in versions of Python with the global interpreter lock." -msgstr "" - -#: c-api/synchronization.rst:66 -msgid "" -"Critical sections are intended to be used for custom types implemented in C-" -"API extensions. They should generally not be used with built-in types " -"like :class:`list` and :class:`dict` because their public C-APIs already use " -"critical sections internally, with the notable exception " -"of :c:func:`PyDict_Next`, which requires critical section to be acquired " -"externally." -msgstr "" - -#: c-api/synchronization.rst:73 -msgid "" -"Critical sections avoid deadlocks by implicitly suspending active critical " -"sections, hence, they do not provide exclusive access such as provided by " -"traditional locks like :c:type:`PyMutex`. When a critical section is " -"started, the per-object lock for the object is acquired. If the code " -"executed inside the critical section calls C-API functions then it can " -"suspend the critical section thereby releasing the per-object lock, so other " -"threads can acquire the per-object lock for the same object." -msgstr "" - -#: c-api/synchronization.rst:81 -msgid "" -"Variants that accept :c:type:`PyMutex` pointers rather than Python objects " -"are also available. Use these variants to start a critical section in a " -"situation where there is no :c:type:`PyObject` -- for example, when working " -"with a C type that does not extend or wrap :c:type:`PyObject` but still " -"needs to call into the C API in a manner that might lead to deadlocks." -msgstr "" - -#: c-api/synchronization.rst:89 -msgid "" -"Operations that need to lock two objects at once must " -"use :c:macro:`Py_BEGIN_CRITICAL_SECTION2`. You *cannot* use nested critical " -"sections to lock more than one object at once, because the inner critical " -"section may suspend the outer critical sections. This API does not provide " -"a way to lock more than two objects at once." -msgstr "" - -#: c-api/synchronization.rst:95 -msgid "Example usage::" -msgstr "" - -#: c-api/synchronization.rst:106 -msgid "" -"In the above example, :c:macro:`Py_SETREF` calls :c:macro:`Py_DECREF`, which " -"can call arbitrary code through an object's deallocation function. The " -"critical section API avoids potential deadlocks due to reentrancy and lock " -"ordering by allowing the runtime to temporarily suspend the critical section " -"if the code triggered by the finalizer blocks and " -"calls :c:func:`PyEval_SaveThread`." -msgstr "" - -#: c-api/synchronization.rst:116 -msgid "" -"Acquires the per-object lock for the object *op* and begins a critical " -"section." -msgstr "" - -#: c-api/synchronization.rst:151 c-api/synchronization.rst:199 -msgid "" -"In the free-threaded build, and when building for the :ref:`Stable ABI " -"`, this macro expands to::" -msgstr "" - -#: c-api/synchronization.rst:173 -msgid "In the default build, this macro expands to ``{``." -msgstr "" - -#: c-api/synchronization.rst:132 -msgid "Locks the mutex *m* and begins a critical section." -msgstr "" - -#: c-api/synchronization.rst:167 -msgid "In the free-threaded build, this macro expands to::" -msgstr "" - -#: c-api/synchronization.rst:140 -msgid "" -"Note that unlike :c:macro:`Py_BEGIN_CRITICAL_SECTION`, there is no cast for " -"the argument of the macro - it must be a :c:type:`PyMutex` pointer." -msgstr "" - -#: c-api/synchronization.rst:191 -msgid "On the default build, this macro expands to ``{``." -msgstr "" - -#: c-api/synchronization.rst:149 -msgid "Ends the critical section and releases the per-object lock." -msgstr "" - -#: c-api/synchronization.rst:205 -msgid "In the default build, this macro expands to ``}``." -msgstr "" - -#: c-api/synchronization.rst:163 -msgid "" -"Acquires the per-object locks for the objects *a* and *b* and begins a " -"critical section. The locks are acquired in a consistent order (lowest " -"address first) to avoid lock ordering deadlocks." -msgstr "" - -#: c-api/synchronization.rst:179 -msgid "Locks the mutexes *m1* and *m2* and begins a critical section." -msgstr "" - -#: c-api/synchronization.rst:188 -msgid "" -"Note that unlike :c:macro:`Py_BEGIN_CRITICAL_SECTION2`, there is no cast for " -"the arguments of the macro - they must be :c:type:`PyMutex` pointers." -msgstr "" - -#: c-api/synchronization.rst:197 -msgid "Ends the critical section and releases the per-object locks." -msgstr "" - -#: c-api/synchronization.rst:210 -msgid "Low-level critical section API" -msgstr "" - -#: c-api/synchronization.rst:212 -msgid "" -"The following functions and structs are exposed for cases where C macros are " -"not available." -msgstr "" - -#: c-api/synchronization.rst:243 -msgid "" -"To be used only as in the macro expansions listed :ref:`earlier in this " -"section `." -msgstr "" - -#: c-api/synchronization.rst:246 -msgid "" -"In non-:term:`free-threaded ` builds of CPython, these " -"functions do nothing." -msgstr "" - -#: c-api/synchronization.rst:231 -msgid "" -"To be used only as in the macro expansions listed :ref:`earlier in this " -"section `. Note that the contents of the structures " -"are private and their meaning may change in future Python versions." -msgstr "" - -#: c-api/synchronization.rst:253 -msgid "Legacy locking APIs" -msgstr "" - -#: c-api/synchronization.rst:255 -msgid "" -"These APIs are obsolete since Python 3.13 with the introduction " -"of :c:type:`PyMutex`." -msgstr "" - -#: c-api/synchronization.rst:258 -msgid "These APIs are now a simple wrapper around ``PyMutex``." -msgstr "" - -#: c-api/synchronization.rst:264 -msgid "A pointer to a mutual exclusion lock." -msgstr "" - -#: c-api/synchronization.rst:269 -msgid "The result of acquiring a lock with a timeout." -msgstr "" - -#: c-api/synchronization.rst:275 -msgid "Failed to acquire the lock." -msgstr "" - -#: c-api/synchronization.rst:279 -msgid "The lock was successfully acquired." -msgstr "" - -#: c-api/synchronization.rst:283 -msgid "The lock was interrupted by a signal." -msgstr "" - -#: c-api/synchronization.rst:288 -msgid "Allocate a new lock." -msgstr "" - -#: c-api/synchronization.rst:290 -msgid "" -"On success, this function returns a lock; on failure, this function returns " -"``0`` without an exception set." -msgstr "" - -#: c-api/synchronization.rst:305 c-api/synchronization.rst:343 -#: c-api/synchronization.rst:351 -msgid "The caller does not need to hold an :term:`attached thread state`." -msgstr "" - -#: c-api/synchronization.rst:295 -msgid "" -"This function now always uses :c:type:`PyMutex`. In prior versions, this " -"would use a lock provided by the operating system." -msgstr "" - -#: c-api/synchronization.rst:302 -msgid "" -"Destroy *lock*. The lock should not be held by any thread when calling this." -msgstr "" - -#: c-api/synchronization.rst:310 -msgid "Acquire *lock* with a timeout." -msgstr "" - -#: c-api/synchronization.rst:312 -msgid "" -"This will wait for *microseconds* microseconds to acquire the lock. If the " -"timeout expires, this function returns :c:enumerator:`PY_LOCK_FAILURE`. If " -"*microseconds* is ``-1``, this will wait indefinitely until the lock has " -"been released." -msgstr "" - -#: c-api/synchronization.rst:317 -msgid "" -"If *intr_flag* is ``1``, acquiring the lock may be interrupted by a signal, " -"in which case this function returns :c:enumerator:`PY_LOCK_INTR`. Upon " -"interruption, it's generally expected that the caller makes a call " -"to :c:func:`Py_MakePendingCalls` to propagate an exception to Python code." -msgstr "" - -#: c-api/synchronization.rst:322 -msgid "" -"If the lock is successfully acquired, this function " -"returns :c:enumerator:`PY_LOCK_ACQUIRED`." -msgstr "" - -#: c-api/synchronization.rst:330 -msgid "Acquire *lock*." -msgstr "" - -#: c-api/synchronization.rst:332 -msgid "" -"If *waitflag* is ``1`` and another thread currently holds the lock, this " -"function will wait until the lock can be acquired and will always return " -"``1``." -msgstr "" - -#: c-api/synchronization.rst:336 -msgid "" -"If *waitflag* is ``0`` and another thread holds the lock, this function will " -"not wait and instead return ``0``. If the lock is not held by any other " -"thread, then this function will acquire it and return ``1``." -msgstr "" - -#: c-api/synchronization.rst:340 -msgid "" -"Unlike :c:func:`PyThread_acquire_lock_timed`, acquiring the lock cannot be " -"interrupted by a signal." -msgstr "" - -#: c-api/synchronization.rst:348 -msgid "" -"Release *lock*. If *lock* is not held, then this function issues a fatal " -"error." -msgstr "" diff --git a/c-api/sys.po b/c-api/sys.po deleted file mode 100644 index d4a5834503..0000000000 --- a/c-api/sys.po +++ /dev/null @@ -1,613 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/sys.rst:6 -msgid "Operating System Utilities" -msgstr "" - -#: c-api/sys.rst:11 -msgid "" -"Return the file system representation for *path*. If the object is " -"a :class:`str` or :class:`bytes` object, then a new :term:`strong reference` " -"is returned. If the object implements the :class:`os.PathLike` interface, " -"then :meth:`~os.PathLike.__fspath__` is returned as long as it is " -"a :class:`str` or :class:`bytes` object. Otherwise :exc:`TypeError` is " -"raised and ``NULL`` is returned." -msgstr "" - -#: c-api/sys.rst:24 -msgid "" -"Return true (nonzero) if the standard I/O file *fp* with name *filename* is " -"deemed interactive. This is the case for files for which " -"``isatty(fileno(fp))`` is true. If the :c:member:`PyConfig.interactive` is " -"non-zero, this function also returns true if the *filename* pointer is " -"``NULL`` or if the name is equal to one of the strings ``''`` or " -"``'???'``." -msgstr "" - -#: c-api/sys.rst:30 -msgid "This function must not be called before Python is initialized." -msgstr "" - -#: c-api/sys.rst:35 -msgid "" -"Function to prepare some internal state before a process fork. This should " -"be called before calling :c:func:`fork` or any similar function that clones " -"the current process. Only available on systems where :c:func:`fork` is " -"defined." -msgstr "" - -#: c-api/sys.rst:41 -msgid "" -"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " -"` (of the :ref:`\"main\" interpreter `). The same is true for ``PyOS_BeforeFork()``." -msgstr "" - -#: c-api/sys.rst:51 -msgid "" -"Function to update some internal state after a process fork. This should be " -"called from the parent process after calling :c:func:`fork` or any similar " -"function that clones the current process, regardless of whether process " -"cloning was successful. Only available on systems where :c:func:`fork` is " -"defined." -msgstr "" - -#: c-api/sys.rst:58 -msgid "" -"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " -"` (of the :ref:`\"main\" interpreter `). The same is true for ``PyOS_AfterFork_Parent()``." -msgstr "" - -#: c-api/sys.rst:68 -msgid "" -"Function to update internal interpreter state after a process fork. This " -"must be called from the child process after calling :c:func:`fork`, or any " -"similar function that clones the current process, if there is any chance the " -"process will call back into the Python interpreter. Only available on " -"systems where :c:func:`fork` is defined." -msgstr "" - -#: c-api/sys.rst:75 -msgid "" -"The C :c:func:`fork` call should only be made from the :ref:`\"main\" thread " -"` (of the :ref:`\"main\" interpreter `). The same is true for ``PyOS_AfterFork_Child()``." -msgstr "" - -#: c-api/sys.rst:83 -msgid "" -":func:`os.register_at_fork` allows registering custom Python functions to be " -"called by :c:func:`PyOS_BeforeFork()`, :c:func:`PyOS_AfterFork_Parent` " -"and :c:func:`PyOS_AfterFork_Child`." -msgstr "" - -#: c-api/sys.rst:90 -msgid "" -"Function to update some internal state after a process fork; this should be " -"called in the new process if the Python interpreter will continue to be " -"used. If a new executable is loaded into the new process, this function does " -"not need to be called." -msgstr "" - -#: c-api/sys.rst:95 -msgid "This function is superseded by :c:func:`PyOS_AfterFork_Child()`." -msgstr "" - -#: c-api/sys.rst:103 -msgid "" -"Return true when the interpreter runs out of stack space. This is a " -"reliable check, but is only available when :c:macro:`!USE_STACKCHECK` is " -"defined (currently on certain versions of Windows using the Microsoft Visual " -"C++ compiler). :c:macro:`!USE_STACKCHECK` will be defined automatically; you " -"should never change the definition in your own code." -msgstr "" - -#: c-api/sys.rst:115 -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!" -msgstr "" - -#: c-api/sys.rst:122 -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!" -msgstr "" - -#: c-api/sys.rst:129 -msgid "Check if a :c:macro:`!SIGINT` signal has been received." -msgstr "" - -#: c-api/sys.rst:131 -msgid "" -"Returns ``1`` if a :c:macro:`!SIGINT` has occurred and clears the signal " -"flag, or ``0`` otherwise." -msgstr "" - -#: c-api/sys.rst:134 -msgid "" -"In most cases, you should prefer :c:func:`PyErr_CheckSignals` over this " -"function. :c:func:`!PyErr_CheckSignals` invokes the appropriate signal " -"handlers for all pending signals, allowing Python code to handle the signal " -"properly. This function only detects :c:macro:`!SIGINT` and does not invoke " -"any Python signal handlers." -msgstr "" - -#: c-api/sys.rst:140 -msgid "" -"This function is async-signal-safe and this function cannot fail. The caller " -"must hold an :term:`attached thread state`." -msgstr "" - -#: c-api/sys.rst:147 -msgid "" -"This function should not be called directly: use the :c:type:`PyConfig` API " -"with the :c:func:`PyConfig_SetBytesString` function which ensures " -"that :ref:`Python is preinitialized `." -msgstr "" - -#: c-api/sys.rst:218 -msgid "" -"This function must not be called before :ref:`Python is preinitialized ` and so that the LC_CTYPE locale is properly configured: see " -"the :c:func:`Py_PreInitialize` function." -msgstr "" - -#: c-api/sys.rst:155 -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 " -"character, the bytes are escaped using the surrogateescape error handler " -"instead of decoding them." -msgstr "" - -#: c-api/sys.rst:162 -msgid "" -"Return a pointer to a newly allocated wide character string, " -"use :c:func:`PyMem_RawFree` to free the memory. If size is not ``NULL``, " -"write the number of wide characters excluding the null character into " -"``*size``" -msgstr "" - -#: c-api/sys.rst:166 -msgid "" -"Return ``NULL`` on decoding error or memory allocation error. If *size* is " -"not ``NULL``, ``*size`` is set to ``(size_t)-1`` on memory error or set to " -"``(size_t)-2`` on decoding error." -msgstr "" - -#: c-api/sys.rst:210 -msgid "" -"The :term:`filesystem encoding and error handler` are selected " -"by :c:func:`PyConfig_Read`: see :c:member:`~PyConfig.filesystem_encoding` " -"and :c:member:`~PyConfig.filesystem_errors` members of :c:type:`PyConfig`." -msgstr "" - -#: c-api/sys.rst:174 -msgid "" -"Decoding errors should never happen, unless there is a bug in the C library." -msgstr "" - -#: c-api/sys.rst:177 -msgid "" -"Use the :c:func:`Py_EncodeLocale` function to encode the character string " -"back to a byte string." -msgstr "" - -#: c-api/sys.rst:182 -msgid "" -"The :c:func:`PyUnicode_DecodeFSDefaultAndSize` " -"and :c:func:`PyUnicode_DecodeLocaleAndSize` functions." -msgstr "" - -#: c-api/sys.rst:229 -msgid "" -"The function now uses the UTF-8 encoding in the :ref:`Python UTF-8 Mode " -"`." -msgstr "" - -#: c-api/sys.rst:191 -msgid "" -"The function now uses the UTF-8 encoding on Windows " -"if :c:member:`PyPreConfig.legacy_windows_fs_encoding` is zero;" -msgstr "" - -#: c-api/sys.rst:198 -msgid "" -"Encode a wide character string to the :term:`filesystem encoding and error " -"handler`. If the error handler is :ref:`surrogateescape error handler " -"`, surrogate characters in the range U+DC80..U+DCFF are " -"converted to bytes 0x80..0xFF." -msgstr "" - -#: c-api/sys.rst:203 -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." -msgstr "" - -#: c-api/sys.rst:207 -msgid "" -"If error_pos is not ``NULL``, ``*error_pos`` is set to ``(size_t)-1`` on " -"success, or set to the index of the invalid character on encoding error." -msgstr "" - -#: c-api/sys.rst:214 -msgid "" -"Use the :c:func:`Py_DecodeLocale` function to decode the bytes string back " -"to a wide character string." -msgstr "" - -#: c-api/sys.rst:224 -msgid "" -"The :c:func:`PyUnicode_EncodeFSDefault` and :c:func:`PyUnicode_EncodeLocale` " -"functions." -msgstr "" - -#: c-api/sys.rst:233 -msgid "" -"The function now uses the UTF-8 encoding on Windows " -"if :c:member:`PyPreConfig.legacy_windows_fs_encoding` is zero." -msgstr "" - -#: c-api/sys.rst:239 -msgid "" -"Similar to :c:func:`!fopen`, but *path* is a Python object and an exception " -"is set on error." -msgstr "" - -#: c-api/sys.rst:242 -msgid "" -"*path* must be a :class:`str` object, a :class:`bytes` object, or " -"a :term:`path-like object`." -msgstr "" - -#: c-api/sys.rst:245 -msgid "" -"On success, return the new file pointer. On error, set an exception and " -"return ``NULL``." -msgstr "" - -#: c-api/sys.rst:248 -msgid "" -"The file must be closed by :c:func:`Py_fclose` rather than calling " -"directly :c:func:`!fclose`." -msgstr "" - -#: c-api/sys.rst:251 -msgid "The file descriptor is created non-inheritable (:pep:`446`)." -msgstr "" - -#: c-api/sys.rst:253 -msgid "The caller must have an :term:`attached thread state`." -msgstr "" - -#: c-api/sys.rst:260 -msgid "Close a file that was opened by :c:func:`Py_fopen`." -msgstr "" - -#: c-api/sys.rst:262 -msgid "" -"On success, return ``0``. On error, return ``EOF`` and ``errno`` is set to " -"indicate the error. In either case, any further access (including another " -"call to :c:func:`Py_fclose`) to the stream results in undefined behavior." -msgstr "" - -#: c-api/sys.rst:273 -msgid "System Functions" -msgstr "" - -#: c-api/sys.rst:275 -msgid "" -"These are utility functions that make functionality from the :mod:`sys` " -"module accessible to C code. They all work with the current interpreter " -"thread's :mod:`sys` module's dict, which is contained in the internal thread " -"state structure." -msgstr "" - -#: c-api/sys.rst:281 -msgid "" -"Get the attribute *name* of the :mod:`sys` module. Return a :term:`strong " -"reference`. Raise :exc:`RuntimeError` and return ``NULL`` if it does not " -"exist or if the :mod:`sys` module cannot be found." -msgstr "" - -#: c-api/sys.rst:286 -msgid "" -"If the non-existing object should not be treated as a failure, you can " -"use :c:func:`PySys_GetOptionalAttr` instead." -msgstr "" - -#: c-api/sys.rst:293 -msgid "" -"This is the same as :c:func:`PySys_GetAttr`, but *name* is specified as " -"a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/sys.rst:297 -msgid "" -"If the non-existing object should not be treated as a failure, you can " -"use :c:func:`PySys_GetOptionalAttrString` instead." -msgstr "" - -#: c-api/sys.rst:304 -msgid "" -"Variant of :c:func:`PySys_GetAttr` which doesn't raise exception if the " -"object does not exist." -msgstr "" - -#: c-api/sys.rst:307 -msgid "" -"Set *\\*result* to a new :term:`strong reference` to the object and return " -"``1`` if the object exists." -msgstr "" - -#: c-api/sys.rst:309 -msgid "" -"Set *\\*result* to ``NULL`` and return ``0`` without setting an exception if " -"the object does not exist." -msgstr "" - -#: c-api/sys.rst:311 -msgid "" -"Set an exception, set *\\*result* to ``NULL``, and return ``-1``, if an " -"error occurred." -msgstr "" - -#: c-api/sys.rst:318 -msgid "" -"This is the same as :c:func:`PySys_GetOptionalAttr`, but *name* is specified " -"as a :c:expr:`const char*` UTF-8 encoded bytes string, rather than " -"a :c:expr:`PyObject*`." -msgstr "" - -#: c-api/sys.rst:326 -msgid "" -"Similar to :c:func:`PySys_GetAttrString`, but return a :term:`borrowed " -"reference` and return ``NULL`` *without* setting exception on failure." -msgstr "" - -#: c-api/sys.rst:329 -msgid "Preserves exception that was set before the call." -msgstr "" - -#: c-api/sys.rst:333 -msgid "" -"Set *name* in the :mod:`sys` module to *v* unless *v* is ``NULL``, in which " -"case *name* is deleted from the sys module. Returns ``0`` on success, ``-1`` " -"on error." -msgstr "" - -#: c-api/sys.rst:339 -msgid "" -"Write the output string described by *format* to :data:`sys.stdout`. No " -"exceptions are raised, even if truncation occurs (see below)." -msgstr "" - -#: c-api/sys.rst:342 -msgid "" -"*format* should limit the total size of the formatted output string to 1000 " -"bytes or less -- after 1000 bytes, the output string is truncated. In " -"particular, this means that no unrestricted \"%s\" formats should occur; " -"these should be limited using \"%.s\" where is a decimal number " -"calculated so that plus the maximum size of other formatted text does " -"not exceed 1000 bytes. Also watch out for \"%f\", which can print hundreds " -"of digits for very large numbers." -msgstr "" - -#: c-api/sys.rst:350 -msgid "" -"If a problem occurs, or :data:`sys.stdout` is unset, the formatted message " -"is written to the real (C level) *stdout*." -msgstr "" - -#: c-api/sys.rst:355 -msgid "" -"As :c:func:`PySys_WriteStdout`, but write to :data:`sys.stderr` or *stderr* " -"instead." -msgstr "" - -#: c-api/sys.rst:360 -msgid "" -"Function similar to PySys_WriteStdout() but format the message " -"using :c:func:`PyUnicode_FromFormatV` and don't truncate the message to an " -"arbitrary length." -msgstr "" - -#: c-api/sys.rst:368 -msgid "" -"As :c:func:`PySys_FormatStdout`, but write to :data:`sys.stderr` or *stderr* " -"instead." -msgstr "" - -#: c-api/sys.rst:375 -msgid "" -"Return the current dictionary of :option:`-X` options, similarly " -"to :data:`sys._xoptions`. On error, ``NULL`` is returned and an exception " -"is set." -msgstr "" - -#: c-api/sys.rst:384 -msgid "" -"Raise an auditing event with any active hooks. Return zero for success and " -"non-zero with an exception set on failure." -msgstr "" - -#: c-api/sys.rst:387 -msgid "The *event* string argument must not be *NULL*." -msgstr "" - -#: c-api/sys.rst:389 -msgid "" -"If any hooks have been added, *format* and other arguments will be used to " -"construct a tuple to pass. Apart from ``N``, the same format characters as " -"used in :c:func:`Py_BuildValue` are available. If the built value is not a " -"tuple, it will be added into a single-element tuple." -msgstr "" - -#: c-api/sys.rst:394 -msgid "" -"The ``N`` format option must not be used. It consumes a reference, but since " -"there is no way to know whether arguments to this function will be consumed, " -"using it may cause reference leaks." -msgstr "" - -#: c-api/sys.rst:398 -msgid "" -"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:401 -msgid ":func:`sys.audit` performs the same function from Python code." -msgstr "" - -#: c-api/sys.rst:403 -msgid "See also :c:func:`PySys_AuditTuple`." -msgstr "" - -#: c-api/sys.rst:409 -msgid "" -"Require :c:type:`Py_ssize_t` for ``#`` format characters. Previously, an " -"unavoidable deprecation warning was raised." -msgstr "" - -#: c-api/sys.rst:415 -msgid "" -"Similar to :c:func:`PySys_Audit`, but pass arguments as a Python object. " -"*args* must be a :class:`tuple`. To pass no arguments, *args* can be *NULL*." -msgstr "" - -#: c-api/sys.rst:423 -msgid "" -"Append the callable *hook* to the list of active auditing hooks. Return zero " -"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 "" - -#: c-api/sys.rst:429 -msgid "" -"The *userData* pointer is passed into the hook function. Since hook " -"functions may be called from different runtimes, this pointer should not " -"refer directly to Python state." -msgstr "" - -#: c-api/sys.rst:433 -msgid "" -"This function is safe to call before :c:func:`Py_Initialize`. When called " -"after runtime initialization, existing audit hooks are notified and may " -"silently abort the operation by raising an error subclassed " -"from :class:`Exception` (other errors will not be silenced)." -msgstr "" - -#: c-api/sys.rst:438 -msgid "" -"The hook function is always called with an :term:`attached thread state` by " -"the Python interpreter that raised the event." -msgstr "" - -#: c-api/sys.rst:441 -msgid "" -"See :pep:`578` for a detailed description of auditing. Functions in the " -"runtime and standard library that raise events are listed in the :ref:`audit " -"events table `. Details are in each function's documentation." -msgstr "" - -#: c-api/sys.rst:448 -msgid "" -"If the interpreter is initialized, this function raises an auditing event " -"``sys.addaudithook`` with no arguments. If any existing hooks raise an " -"exception derived from :class:`Exception`, the new hook will not be added " -"and the exception is cleared. As a result, callers cannot assume that their " -"hook has been added unless they control all existing hooks." -msgstr "" - -#: c-api/sys.rst:457 -msgid "" -"The type of the hook function. *event* is the C string event argument passed " -"to :c:func:`PySys_Audit` or :c:func:`PySys_AuditTuple`. *args* is guaranteed " -"to be a :c:type:`PyTupleObject`. *userData* is the argument passed to " -"PySys_AddAuditHook()." -msgstr "" - -#: c-api/sys.rst:469 -msgid "Process Control" -msgstr "" - -#: c-api/sys.rst:476 -msgid "" -"Print a fatal error message and kill the process. No cleanup is performed. " -"This function should only be invoked when a condition is detected that would " -"make it dangerous to continue using the Python interpreter; e.g., when the " -"object administration appears to be corrupted. On Unix, the standard C " -"library function :c:func:`!abort` is called which will attempt to produce " -"a :file:`core` file." -msgstr "" - -#: c-api/sys.rst:483 -msgid "" -"The ``Py_FatalError()`` function is replaced with a macro which logs " -"automatically the name of the current function, unless the " -"``Py_LIMITED_API`` macro is defined." -msgstr "" - -#: c-api/sys.rst:487 -msgid "Log the function name automatically." -msgstr "" - -#: c-api/sys.rst:497 -msgid "" -"Exit the current process. This calls :c:func:`Py_FinalizeEx` and then calls " -"the standard C library function ``exit(status)``. " -"If :c:func:`Py_FinalizeEx` indicates an error, the exit status is set to 120." -msgstr "" - -#: c-api/sys.rst:501 -msgid "Errors from finalization no longer ignored." -msgstr "" - -#: c-api/sys.rst:511 -msgid "" -"Register a cleanup function to be called by :c:func:`Py_FinalizeEx`. The " -"cleanup function will be called with no arguments and should return no " -"value. At most 32 cleanup functions can be registered. When the " -"registration is successful, :c:func:`Py_AtExit` returns ``0``; on failure, " -"it returns ``-1``. The cleanup function registered last is called first. " -"Each cleanup function will be called at most once. Since Python's internal " -"finalization will have completed before the cleanup function, no Python APIs " -"should be called by *func*." -msgstr "" - -#: c-api/sys.rst:521 -msgid ":c:func:`PyUnstable_AtExit` for passing a ``void *data`` argument." -msgstr "" - -#~ msgid "" -#~ "Raises an :ref:`auditing event ` ``sys.addaudithook`` with no " -#~ "arguments." -#~ msgstr "" -#~ "Déclenche un :ref:`événement d'audit ` ``sys.addaudithook`` " -#~ "sans arguments." diff --git a/c-api/threads.po b/c-api/threads.po deleted file mode 100644 index 3ec9486510..0000000000 --- a/c-api/threads.po +++ /dev/null @@ -1,1185 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/threads.rst:6 -msgid "Thread states and the global interpreter lock" -msgstr "" - -#: c-api/threads.rst:13 -msgid "" -"Unless on a :term:`free-threaded build` of :term:`CPython`, the Python " -"interpreter is generally not thread-safe. In order to support multi-" -"threaded Python programs, there's a global lock, called the :term:`global " -"interpreter lock` or :term:`GIL`, that must be held by a thread before " -"accessing Python objects. Without the lock, even the simplest operations " -"could cause problems in a multi-threaded program: for example, when two " -"threads simultaneously increment the reference count of the same object, the " -"reference count could end up being incremented only once instead of twice." -msgstr "" - -#: c-api/threads.rst:22 -msgid "" -"As such, only a thread that holds the GIL may operate on Python objects or " -"invoke Python's C API." -msgstr "" - -#: c-api/threads.rst:27 -msgid "" -"In order to emulate concurrency, the interpreter regularly tries to switch " -"threads between bytecode instructions (see :func:`sys.setswitchinterval`). " -"This is why locks are also necessary for thread-safety in pure-Python code." -msgstr "" - -#: c-api/threads.rst:31 -msgid "" -"Additionally, the global interpreter lock is released around blocking I/O " -"operations, such as reading or writing to a file. From the C API, this is " -"done by :ref:`detaching the thread state `." -msgstr "" - -#: c-api/threads.rst:39 -msgid "" -"The Python interpreter keeps some thread-local information inside a data " -"structure called :c:type:`PyThreadState`, known as a :term:`thread state`. " -"Each thread has a thread-local pointer to a :c:type:`PyThreadState`; a " -"thread state referenced by this pointer is considered to be :term:`attached " -"`." -msgstr "" - -#: c-api/threads.rst:44 -msgid "" -"A thread can only have one :term:`attached thread state` at a time. An " -"attached thread state is typically analogous with holding the GIL, except on " -"free-threaded builds. On builds with the GIL enabled, attaching a thread " -"state will block until the GIL can be acquired. However, even on builds with " -"the GIL disabled, it is still required to have an attached thread state, as " -"the interpreter needs to keep track of which threads may access Python " -"objects." -msgstr "" - -#: c-api/threads.rst:53 -msgid "" -"Even on the free-threaded build, attaching a thread state may block, as the " -"GIL can be re-enabled or threads might be temporarily suspended (such as " -"during a garbage collection)." -msgstr "" - -#: c-api/threads.rst:57 -msgid "" -"Generally, there will always be an attached thread state when using Python's " -"C API, including during embedding and when implementing methods, so it's " -"uncommon to need to set up a thread state on your own. Only in some specific " -"cases, such as in a :c:macro:`Py_BEGIN_ALLOW_THREADS` block or in a fresh " -"thread, will the thread not have an attached thread state. If uncertain, " -"check if :c:func:`PyThreadState_GetUnchecked` returns ``NULL``." -msgstr "" - -#: c-api/threads.rst:64 -msgid "" -"If it turns out that you do need to create a thread state, it is recommended " -"to use :c:func:`PyThreadState_Ensure` " -"or :c:func:`PyThreadState_EnsureFromView`, which will manage the thread " -"state for you." -msgstr "" - -#: c-api/threads.rst:72 -msgid "Detaching the thread state from extension code" -msgstr "" - -#: c-api/threads.rst:74 -msgid "" -"Most extension code manipulating the :term:`thread state` has the following " -"simple structure::" -msgstr "" - -#: c-api/threads.rst:81 -msgid "This is so common that a pair of macros exists to simplify it::" -msgstr "" - -#: c-api/threads.rst:91 -msgid "" -"The :c:macro:`Py_BEGIN_ALLOW_THREADS` macro opens a new block and declares a " -"hidden local variable; the :c:macro:`Py_END_ALLOW_THREADS` macro closes the " -"block." -msgstr "" - -#: c-api/threads.rst:95 -msgid "The block above expands to the following code::" -msgstr "" - -#: c-api/threads.rst:107 -msgid "Here is how these functions work:" -msgstr "" - -#: c-api/threads.rst:109 -msgid "" -"The attached thread state implies that the GIL is held for the interpreter. " -"To detach it, :c:func:`PyEval_SaveThread` is called and the result is stored " -"in a local variable." -msgstr "" - -#: c-api/threads.rst:113 -msgid "" -"By detaching the thread state, the GIL is released, which allows other " -"threads to attach to the interpreter and execute while the current thread " -"performs blocking I/O. When the I/O operation is complete, the old thread " -"state is reattached by calling :c:func:`PyEval_RestoreThread`, which will " -"wait until the GIL can be acquired." -msgstr "" - -#: c-api/threads.rst:120 -msgid "" -"Performing blocking I/O is the most common use case for detaching the thread " -"state, but it is also useful to call it over long-running native code that " -"doesn't need access to Python objects or Python's C API. For example, the " -"standard :mod:`zlib` and :mod:`hashlib` modules detach the :term:`thread " -"state ` when compressing or hashing data." -msgstr "" - -#: c-api/threads.rst:127 -msgid "" -"On a :term:`free-threaded build`, the :term:`GIL` is usually out of the " -"question, but **detaching the thread state is still required**, because the " -"interpreter periodically needs to block all threads to get a consistent view " -"of Python objects without the risk of race conditions. For example, CPython " -"currently suspends all threads for a short period of time while running the " -"garbage collector." -msgstr "" - -#: c-api/threads.rst:136 -msgid "" -"Detaching the thread state can lead to unexpected behavior during " -"interpreter finalization. See :ref:`cautions-regarding-runtime-finalization` " -"for more details." -msgstr "" - -#: c-api/threads.rst:142 -msgid "APIs" -msgstr "" - -#: c-api/threads.rst:144 -msgid "" -"The following macros are normally used without a trailing semicolon; look " -"for example usage in the Python source distribution." -msgstr "" - -#: c-api/threads.rst:149 -msgid "" -"These macros are still necessary on the :term:`free-threaded build` to " -"prevent deadlocks." -msgstr "" - -#: c-api/threads.rst:154 -msgid "" -"This macro expands to ``{ PyThreadState *_save; _save = " -"PyEval_SaveThread();``. Note that it contains an opening brace; it must be " -"matched with a following :c:macro:`Py_END_ALLOW_THREADS` macro. See above " -"for further discussion of this macro." -msgstr "" - -#: c-api/threads.rst:162 -msgid "" -"This macro expands to ``PyEval_RestoreThread(_save); }``. Note that it " -"contains a closing brace; it must be matched with an " -"earlier :c:macro:`Py_BEGIN_ALLOW_THREADS` macro. See above for further " -"discussion of this macro." -msgstr "" - -#: c-api/threads.rst:170 -msgid "" -"This macro expands to ``PyEval_RestoreThread(_save);``: it is equivalent " -"to :c:macro:`Py_END_ALLOW_THREADS` without the closing brace." -msgstr "" - -#: c-api/threads.rst:176 -msgid "" -"This macro expands to ``_save = PyEval_SaveThread();``: it is equivalent " -"to :c:macro:`Py_BEGIN_ALLOW_THREADS` without the opening brace and variable " -"declaration." -msgstr "" - -#: c-api/threads.rst:186 -msgid "Using the C API from foreign threads" -msgstr "" - -#: c-api/threads.rst:188 -msgid "" -"When threads are created using the dedicated Python APIs (such as " -"the :mod:`threading` module), a thread state is automatically associated " -"with them, However, when a thread is created from native code (for example, " -"by a third-party library with its own thread management), it doesn't hold an " -"attached thread state." -msgstr "" - -#: c-api/threads.rst:194 -msgid "" -"If you need to call Python code from these threads (often this will be part " -"of a callback API provided by the aforementioned third-party library), you " -"must first register these threads with the interpreter by creating a new " -"thread state and attaching it." -msgstr "" - -#: c-api/threads.rst:199 -msgid "" -"The easiest way to do this is through :c:func:`PyThreadState_Ensure` " -"or :c:func:`PyThreadState_EnsureFromView`." -msgstr "" - -#: c-api/threads.rst:203 -msgid "" -"These functions require an argument pointing to the desired interpreter; " -"such a pointer can be acquired via a call " -"to :c:func:`PyInterpreterGuard_FromCurrent` (for ``PyThreadState_Ensure``) " -"or :c:func:`PyInterpreterView_FromCurrent` (for " -"``PyThreadState_EnsureFromView``) from the function that creates the thread. " -"If no pointer is available (such as when the given native thread library " -"doesn't provide a data argument), :c:func:`PyInterpreterView_FromMain` can " -"be used to get a view for the main interpreter, but note that this will make " -"the code incompatible with subinterpreters." -msgstr "" - -#: c-api/threads.rst:214 -msgid "For example::" -msgstr "" - -#: c-api/threads.rst:237 -msgid "" -"Keep in mind that calling ``PyThreadState_Ensure`` might not always create a " -"new thread state, and calling ``PyThreadState_Release`` might not always " -"detach it. These functions may reuse an existing attached thread state, or " -"may re-attach a thread state that was previously attached for the current " -"thread." -msgstr "" - -#: c-api/threads.rst:243 -msgid ":pep:`788`" -msgstr "" - -#: c-api/threads.rst:248 -msgid "Attaching/detaching thread states" -msgstr "" - -#: c-api/threads.rst:252 -msgid "" -"Ensure that the thread has an attached thread state for the interpreter " -"protected by *guard*, and thus can safely invoke that interpreter." -msgstr "" - -#: c-api/threads.rst:256 -msgid "" -"It is OK to call this function if the thread already has an attached thread " -"state, as long as there is a subsequent call " -"to :c:func:`PyThreadState_Release` that matches this one (meaning that " -"\"nested\" calls to this function are permitted)." -msgstr "" - -#: c-api/threads.rst:261 -msgid "" -"The function's effect (if any) will be reversed by the matching call " -"to :c:func:`PyThreadState_Release`." -msgstr "" - -#: c-api/threads.rst:264 -msgid "" -"On error, this function returns ``NULL`` *without* an exception set. Do not " -"call :c:func:`!PyThreadState_Release` in this case." -msgstr "" - -#: c-api/threads.rst:267 -msgid "" -"On success, this function returns a pointer value that must be passed to the " -"matching call to :c:func:`!PyThreadState_Release`." -msgstr "" - -#: c-api/threads.rst:270 -msgid "" -"The conditions in which this function creates a new :term:`thread state` are " -"considered unstable and implementation-dependent. If you need to control the " -"exact lifetime of a thread state, consider " -"using :c:func:`PyThreadState_New`. However, do not avoid this function " -"solely on the basis that the lifetime of the thread state may be " -"inconsistent across versions; changes to this function will be done with " -"caution and in a backwards-compatible manner. In particular, the saving of " -"thread-local variables and similar state will be retained across Python " -"versions." -msgstr "" - -#: c-api/threads.rst:281 -msgid "" -"The exact behavior of whether this function creates a new thread state is " -"described below, but be aware that this may change in the future." -msgstr "" - -#: c-api/threads.rst:284 -msgid "" -"First, this function checks if an attached thread state is present. If there " -"is, this function then checks if the interpreter of that thread state " -"matches the interpreter guarded by *guard*. If that is the case, this " -"function simply marks the thread state as being used by a " -"``PyThreadState_Ensure`` call and returns." -msgstr "" - -#: c-api/threads.rst:290 -msgid "" -"If there is no attached thread state, then this function checks if any " -"thread state has been used by the current OS thread. (This is returned " -"by :c:func:`PyGILState_GetThisThreadState`.) If there was, then this " -"function checks if that thread state's interpreter matches *guard*. If it " -"does, it is re-attached and marked as used." -msgstr "" - -#: c-api/threads.rst:296 -msgid "" -"Otherwise, if both of the above cases fail, a new thread state is created " -"for *guard*. It is then attached and marked as owned by " -"``PyThreadState_Ensure``." -msgstr "" - -#: c-api/threads.rst:304 -msgid "Get an attached thread state for the interpreter referenced by *view*." -msgstr "" - -#: c-api/threads.rst:306 -msgid "" -"The behavior and return value are the same as " -"for :c:func:`PyThreadState_Ensure`; additionally, if the function succeeds, " -"the interpreter referenced by *view* will be implicitly guarded. The guard " -"will be released upon the corresponding :c:func:`PyThreadState_Release` call." -msgstr "" - -#: c-api/threads.rst:316 -msgid "" -"Undo a :c:func:`PyThreadState_Ensure` " -"or :c:func:`PyThreadState_EnsureFromView` call." -msgstr "" - -#: c-api/threads.rst:319 -msgid "" -"This must be called exactly once for each successful *Ensure* call, with " -"*token* set to that call's return value." -msgstr "" - -#: c-api/threads.rst:322 -msgid "" -"The state that was attached before the corresponding *Ensure* call (if any) " -"will be attached when :c:func:`PyThreadState_Release` returns." -msgstr "" - -#: c-api/threads.rst:325 -msgid "" -"The exact behavior of whether this function deletes a thread state is " -"considered unstable and implementation-dependent." -msgstr "" - -#: c-api/threads.rst:330 -msgid "" -"Currently, this function will decrement an internal counter on the attached " -"thread state. If this counter ever reaches below zero, this function emits a " -"fatal error (via :c:func:`Py_FatalError`)." -msgstr "" - -#: c-api/threads.rst:334 -msgid "" -"If the attached thread state is owned by ``PyThreadState_Ensure``, then the " -"attached thread state will be deallocated and deleted upon the internal " -"counter reaching zero. Otherwise, nothing happens when the counter reaches " -"zero." -msgstr "" - -#: c-api/threads.rst:342 -msgid "" -"An opaque token retrieved from a :c:func:`PyThreadState_Ensure` call and " -"passed to a corresponding :c:func:`PyThreadState_Release` call." -msgstr "" - -#: c-api/threads.rst:350 -msgid "GIL-state APIs" -msgstr "" - -#: c-api/threads.rst:352 -msgid "" -"The following APIs are generally not compatible with subinterpreters and " -"will hang the process during interpreter finalization (see :ref:`cautions-" -"regarding-runtime-finalization`). As such, these APIs were :term:`soft " -"deprecated` in Python 3.15 in favor of the :ref:`new APIs `." -msgstr "" - -#: c-api/threads.rst:361 -msgid "" -"The type of the value returned by :c:func:`PyGILState_Ensure` and passed " -"to :c:func:`PyGILState_Release`." -msgstr "" - -#: c-api/threads.rst:366 -msgid "The GIL was already held when :c:func:`PyGILState_Ensure` was called." -msgstr "" - -#: c-api/threads.rst:370 -msgid "The GIL was not held when :c:func:`PyGILState_Ensure` was called." -msgstr "" - -#: c-api/threads.rst:375 -msgid "" -"Ensure that the current thread is ready to call the Python C API regardless " -"of the current state of Python, or of the :term:`attached thread state`. " -"This may be called as many times as desired by a thread as long as each call " -"is matched with a call to :c:func:`PyGILState_Release`. In general, other " -"thread-related APIs may be used between :c:func:`PyGILState_Ensure` " -"and :c:func:`PyGILState_Release` calls as long as the thread state is " -"restored to its previous state before the Release(). For example, normal " -"usage of the :c:macro:`Py_BEGIN_ALLOW_THREADS` " -"and :c:macro:`Py_END_ALLOW_THREADS` macros is acceptable." -msgstr "" - -#: c-api/threads.rst:385 -msgid "" -"The return value is an opaque \"handle\" to the :term:`attached thread " -"state` when :c:func:`PyGILState_Ensure` was called, and must be passed " -"to :c:func:`PyGILState_Release` to ensure Python is left in the same state. " -"Even though recursive calls are allowed, these handles *cannot* be shared - " -"each unique call to :c:func:`PyGILState_Ensure` must save the handle for its " -"call to :c:func:`PyGILState_Release`." -msgstr "" - -#: c-api/threads.rst:392 -msgid "" -"When the function returns, there will be an :term:`attached thread state` " -"and the thread will be able to call arbitrary Python code." -msgstr "" - -#: c-api/threads.rst:395 -msgid "" -"This function has no way to return an error. As such, errors are either " -"fatal (that is, they send ``SIGABRT`` and crash the process; " -"see :c:func:`Py_FatalError`), or the thread will be permanently blocked " -"(such as during interpreter finalization)." -msgstr "" - -#: c-api/threads.rst:401 -msgid "" -"Calling this function when the interpreter is finalizing will infinitely " -"hang the thread, which may cause deadlocks. :ref:`cautions-regarding-runtime-" -"finalization` for more details." -msgstr "" - -#: c-api/threads.rst:405 -msgid "" -"In addition, this function generally does not work with subinterpreters when " -"used from foreign threads, because this function has no way of knowing which " -"interpreter created the thread (and as such, will implicitly pick the main " -"interpreter)." -msgstr "" - -#: c-api/threads.rst:570 c-api/threads.rst:764 -msgid "" -"Hangs the current thread, rather than terminating it, if called while the " -"interpreter is finalizing." -msgstr "" - -#: c-api/threads.rst:414 -msgid "" -"Use :c:func:`PyThreadState_Ensure` or :c:func:`PyThreadState_EnsureFromView` " -"instead." -msgstr "" - -#: c-api/threads.rst:421 -msgid "" -"Release any resources previously acquired. After this call, Python's state " -"will be the same as it was prior to the " -"corresponding :c:func:`PyGILState_Ensure` call (but generally this state " -"will be unknown to the caller, hence the use of the GIL-state API)." -msgstr "" - -#: c-api/threads.rst:426 -msgid "" -"Every call to :c:func:`PyGILState_Ensure` must be matched by a call " -"to :c:func:`PyGILState_Release` on the same thread." -msgstr "" - -#: c-api/threads.rst:429 -msgid "Use :c:func:`PyThreadState_Release` instead." -msgstr "" - -#: c-api/threads.rst:435 -msgid "" -"Get the :term:`thread state` that was most recently :term:`attached " -"` for this thread. (If the most recent thread state " -"has been deleted, this returns ``NULL``.)" -msgstr "" - -#: c-api/threads.rst:439 -msgid "If the caller has an attached thread state, it is returned." -msgstr "" - -#: c-api/threads.rst:441 -msgid "" -"In other terms, this function returns the thread state that will be used " -"by :c:func:`PyGILState_Ensure`. If this returns ``NULL``, then " -"``PyGILState_Ensure`` will create a new thread state." -msgstr "" - -#: c-api/threads.rst:445 -msgid "This function cannot fail." -msgstr "" - -#: c-api/threads.rst:447 -msgid "" -"Use :c:func:`PyThreadState_Get` or :c:func:`PyThreadState_GetUnchecked` " -"instead." -msgstr "" - -#: c-api/threads.rst:454 -msgid "" -"Return ``1`` if the current thread has an :term:`attached thread state` that " -"matches the thread state returned " -"by :c:func:`PyGILState_GetThisThreadState`. If the caller has no attached " -"thread state or it otherwise doesn't match, then this returns ``0``." -msgstr "" - -#: c-api/threads.rst:459 -msgid "" -"If the current Python process has ever created a subinterpreter, this " -"function will *always* return ``1``." -msgstr "" - -#: c-api/threads.rst:462 -msgid "This is mainly a helper/diagnostic function." -msgstr "" - -#: c-api/threads.rst:466 -msgid "Use ``PyThreadState_GetUnchecked() != NULL`` instead." -msgstr "" - -#: c-api/threads.rst:473 -msgid "Cautions about fork()" -msgstr "" - -#: c-api/threads.rst:475 -msgid "" -"Another important thing to note about threads is their behaviour in the face " -"of the C :c:func:`fork` call. On most systems with :c:func:`fork`, after a " -"process forks only the thread that issued the fork will exist. This has a " -"concrete impact both on how locks must be handled and on all stored state in " -"CPython's runtime." -msgstr "" - -#: c-api/threads.rst:481 -msgid "" -"The fact that only the \"current\" thread remains means any locks held by " -"other threads will never be released. Python solves this for :func:`os.fork` " -"by acquiring the locks it uses internally before the fork, and releasing " -"them afterwards. In addition, it resets any :ref:`lock-objects` in the " -"child. When extending or embedding Python, there is no way to inform Python " -"of additional (non-Python) locks that need to be acquired before or reset " -"after a fork. OS facilities such as :c:func:`!pthread_atfork` would need to " -"be used to accomplish the same thing. Additionally, when extending or " -"embedding Python, calling :c:func:`fork` directly rather than " -"through :func:`os.fork` (and returning to or calling into Python) may result " -"in a deadlock by one of Python's internal locks being held by a thread that " -"is defunct after the fork. :c:func:`PyOS_AfterFork_Child` tries to reset the " -"necessary locks, but is not always able to." -msgstr "" - -#: c-api/threads.rst:496 -msgid "" -"The fact that all other threads go away also means that CPython's runtime " -"state there must be cleaned up properly, which :func:`os.fork` does. This " -"means finalizing all other :c:type:`PyThreadState` objects belonging to the " -"current interpreter and all other :c:type:`PyInterpreterState` objects. Due " -"to this and the special nature of the :ref:`\"main\" interpreter `, :c:func:`fork` should only be called in that " -"interpreter's \"main\" thread, where the CPython global runtime was " -"originally initialized. The only exception is if :c:func:`exec` will be " -"called immediately after." -msgstr "" - -#: c-api/threads.rst:509 -msgid "High-level APIs" -msgstr "" - -#: c-api/threads.rst:511 -msgid "" -"These are the most commonly used types and functions when writing multi-" -"threaded C extensions." -msgstr "" - -#: c-api/threads.rst:517 -msgid "" -"This data structure represents the state of a single thread. The only " -"public data member is:" -msgstr "" - -#: c-api/threads.rst:522 -msgid "This thread's interpreter state." -msgstr "" - -#: c-api/threads.rst:533 -msgid "Deprecated function which does nothing." -msgstr "" - -#: c-api/threads.rst:535 -msgid "" -"In Python 3.6 and older, this function created the GIL if it didn't exist." -msgstr "" - -#: c-api/threads.rst:537 -msgid "The function now does nothing." -msgstr "" - -#: c-api/threads.rst:540 -msgid "" -"This function is now called by :c:func:`Py_Initialize()`, so you don't have " -"to call it yourself anymore." -msgstr "" - -#: c-api/threads.rst:544 -msgid "" -"This function cannot be called before :c:func:`Py_Initialize()` anymore." -msgstr "" - -#: c-api/threads.rst:554 -msgid "" -"Detach the :term:`attached thread state` and return it. The thread will have " -"no :term:`thread state` upon returning." -msgstr "" - -#: c-api/threads.rst:560 -msgid "" -"Set the :term:`attached thread state` to *tstate*. The passed :term:`thread " -"state` **should not** be :term:`attached `, otherwise " -"deadlock ensues. *tstate* will be attached upon returning." -msgstr "" - -#: c-api/threads.rst:754 -msgid "" -"Calling this function from a thread when the runtime is finalizing will hang " -"the thread until the program exits, even if the thread was not created by " -"Python. Refer to :ref:`cautions-regarding-runtime-finalization` for more " -"details." -msgstr "" - -#: c-api/threads.rst:576 -msgid "" -"Return the :term:`attached thread state`. If the thread has no attached " -"thread state, (such as when inside of :c:macro:`Py_BEGIN_ALLOW_THREADS` " -"block), then this issues a fatal error (so that the caller needn't check for " -"``NULL``)." -msgstr "" - -#: c-api/threads.rst:581 -msgid "See also :c:func:`PyThreadState_GetUnchecked`." -msgstr "" - -#: c-api/threads.rst:585 -msgid "" -"Similar to :c:func:`PyThreadState_Get`, but don't kill the process with a " -"fatal error if it is NULL. The caller is responsible to check if the result " -"is NULL." -msgstr "" - -#: c-api/threads.rst:589 -msgid "" -"In Python 3.5 to 3.12, the function was private and known as " -"``_PyThreadState_UncheckedGet()``." -msgstr "" - -#: c-api/threads.rst:596 -msgid "" -"Set the :term:`attached thread state` to *tstate*, and return " -"the :term:`thread state` that was attached prior to calling." -msgstr "" - -#: c-api/threads.rst:599 -msgid "" -"This function is safe to call without an :term:`attached thread state`; it " -"will simply return ``NULL`` indicating that there was no prior thread state." -msgstr "" - -#: c-api/threads.rst:603 -msgid ":c:func:`PyEval_ReleaseThread`" -msgstr "" - -#: c-api/threads.rst:606 -msgid "" -"Similar to :c:func:`PyGILState_Ensure`, this function will hang the thread " -"if the runtime is finalizing." -msgstr "" - -#: c-api/threads.rst:611 -msgid "Low-level APIs" -msgstr "" - -#: c-api/threads.rst:615 -msgid "" -"Create a new thread state object belonging to the given interpreter object. " -"An :term:`attached thread state` is not needed." -msgstr "" - -#: c-api/threads.rst:620 -msgid "" -"Reset all information in a :term:`thread state` object. *tstate* must " -"be :term:`attached `" -msgstr "" - -#: c-api/threads.rst:623 -msgid "" -"This function now calls the :c:member:`!PyThreadState.on_delete` callback. " -"Previously, that happened in :c:func:`PyThreadState_Delete`." -msgstr "" - -#: c-api/threads.rst:627 -msgid "The :c:member:`!PyThreadState.on_delete` callback was removed." -msgstr "" - -#: c-api/threads.rst:633 -msgid "" -"Destroy a :term:`thread state` object. *tstate* should not " -"be :term:`attached ` to any thread. *tstate* must " -"have been reset with a previous call to :c:func:`PyThreadState_Clear`." -msgstr "" - -#: c-api/threads.rst:641 -msgid "" -"Detach the :term:`attached thread state` (which must have been reset with a " -"previous call to :c:func:`PyThreadState_Clear`) and then destroy it." -msgstr "" - -#: c-api/threads.rst:644 -msgid "" -"No :term:`thread state` will be :term:`attached ` " -"upon returning." -msgstr "" - -#: c-api/threads.rst:649 -msgid "Get the current frame of the Python thread state *tstate*." -msgstr "" - -#: c-api/threads.rst:651 -msgid "" -"Return a :term:`strong reference`. Return ``NULL`` if no frame is currently " -"executing." -msgstr "" - -#: c-api/threads.rst:654 -msgid "See also :c:func:`PyEval_GetFrame`." -msgstr "" - -#: c-api/threads.rst:665 c-api/threads.rst:674 -msgid "" -"*tstate* must not be ``NULL``, and must be :term:`attached `." -msgstr "" - -#: c-api/threads.rst:663 -msgid "" -"Get the unique :term:`thread state` identifier of the Python thread state " -"*tstate*." -msgstr "" - -#: c-api/threads.rst:672 -msgid "Get the interpreter of the Python thread state *tstate*." -msgstr "" - -#: c-api/threads.rst:681 -msgid "Suspend tracing and profiling in the Python thread state *tstate*." -msgstr "" - -#: c-api/threads.rst:683 -msgid "Resume them using the :c:func:`PyThreadState_LeaveTracing` function." -msgstr "" - -#: c-api/threads.rst:690 -msgid "" -"Resume tracing and profiling in the Python thread state *tstate* suspended " -"by the :c:func:`PyThreadState_EnterTracing` function." -msgstr "" - -#: c-api/threads.rst:693 -msgid "" -"See also :c:func:`PyEval_SetTrace` and :c:func:`PyEval_SetProfile` functions." -msgstr "" - -#: c-api/threads.rst:701 -msgid "" -"Set the stack protection start address and stack protection size of a Python " -"thread state." -msgstr "" - -#: c-api/threads.rst:704 -msgid "" -"On success, return ``0``. On failure, set an exception and return ``-1``." -msgstr "" - -#: c-api/threads.rst:707 -msgid "" -"CPython implements :ref:`recursion control ` for C code by " -"raising :py:exc:`RecursionError` when it notices that the machine execution " -"stack is close to overflow. See for example " -"the :c:func:`Py_EnterRecursiveCall` function. For this, it needs to know the " -"location of the current thread's stack, which it normally gets from the " -"operating system. When the stack is changed, for example using context " -"switching techniques like the Boost library's ``boost::context``, you must " -"call :c:func:`~PyUnstable_ThreadState_SetStackProtection` to inform CPython " -"of the change." -msgstr "" - -#: c-api/threads.rst:716 -msgid "" -"Call :c:func:`~PyUnstable_ThreadState_SetStackProtection` either before or " -"after changing the stack. Do not call any other Python C API between the " -"call and the stack change." -msgstr "" - -#: c-api/threads.rst:721 -msgid "" -"See :c:func:`PyUnstable_ThreadState_ResetStackProtection` for undoing this " -"operation." -msgstr "" - -#: c-api/threads.rst:728 -msgid "" -"Reset the stack protection start address and stack protection size of a " -"Python thread state to the operating system defaults." -msgstr "" - -#: c-api/threads.rst:731 -msgid "" -"See :c:func:`PyUnstable_ThreadState_SetStackProtection` for an explanation." -msgstr "" - -#: c-api/threads.rst:738 -msgid "" -"Return a dictionary in which extensions can store thread-specific state " -"information. Each extension should use a unique key to use to store state " -"in the dictionary. It is okay to call this function when no :term:`thread " -"state` is :term:`attached `. If this function returns " -"``NULL``, no exception has been raised and the caller should assume no " -"thread state is attached." -msgstr "" - -#: c-api/threads.rst:748 -msgid "" -":term:`Attach ` *tstate* to the current thread, which " -"must not be ``NULL`` or already :term:`attached `." -msgstr "" - -#: c-api/threads.rst:751 -msgid "" -"The calling thread must not already have an :term:`attached thread state`." -msgstr "" - -#: c-api/threads.rst:759 -msgid "" -"Updated to be consistent " -"with :c:func:`PyEval_RestoreThread`, :c:func:`Py_END_ALLOW_THREADS`, " -"and :c:func:`PyGILState_Ensure`, and terminate the current thread if called " -"while the interpreter is finalizing." -msgstr "" - -#: c-api/threads.rst:768 -msgid "" -":c:func:`PyEval_RestoreThread` is a higher-level function which is always " -"available (even when threads have not been initialized)." -msgstr "" - -#: c-api/threads.rst:774 -msgid "" -"Detach the :term:`attached thread state`. The *tstate* argument, which must " -"not be ``NULL``, is only used to check that it represents " -"the :term:`attached thread state` --- if it isn't, a fatal error is reported." -msgstr "" - -#: c-api/threads.rst:779 -msgid "" -":c:func:`PyEval_SaveThread` is a higher-level function which is always " -"available (even when threads have not been initialized)." -msgstr "" - -#: c-api/threads.rst:784 -msgid "Asynchronous notifications" -msgstr "" - -#: c-api/threads.rst:786 -msgid "" -"A mechanism is provided to make asynchronous notifications to the main " -"interpreter thread. These notifications take the form of a function pointer " -"and a void pointer argument." -msgstr "" - -#: c-api/threads.rst:793 -msgid "" -"Schedule a function to be called from the main interpreter thread. On " -"success, ``0`` is returned and *func* is queued for being called in the main " -"thread. On failure, ``-1`` is returned without setting any exception." -msgstr "" - -#: c-api/threads.rst:797 -msgid "" -"When successfully queued, *func* will be *eventually* called from the main " -"interpreter thread with the argument *arg*. It will be called " -"asynchronously with respect to normally running Python code, but with both " -"these conditions met:" -msgstr "" - -#: c-api/threads.rst:802 -msgid "on a :term:`bytecode` boundary;" -msgstr "" - -#: c-api/threads.rst:803 -msgid "" -"with the main thread holding an :term:`attached thread state` (*func* can " -"therefore use the full C API)." -msgstr "" - -#: c-api/threads.rst:806 -msgid "" -"*func* must return ``0`` on success, or ``-1`` on failure with an exception " -"set. *func* won't be interrupted to perform another asynchronous " -"notification recursively, but it can still be interrupted to switch threads " -"if the :term:`thread state ` is detached." -msgstr "" - -#: c-api/threads.rst:811 -msgid "" -"This function doesn't need an :term:`attached thread state`. However, to " -"call this function in a subinterpreter, the caller must have " -"an :term:`attached thread state`. Otherwise, the function *func* can be " -"scheduled to be called from the wrong interpreter." -msgstr "" - -#: c-api/threads.rst:816 -msgid "" -"This is a low-level function, only useful for very special cases. There is " -"no guarantee that *func* will be called as quick as possible. If the main " -"thread is busy executing a system call, *func* won't be called before the " -"system call returns. This function is generally **not** suitable for " -"calling Python code from arbitrary C threads. Instead, " -"use :c:func:`PyThreadState_EnsureFromView`." -msgstr "" - -#: c-api/threads.rst:825 -msgid "" -"If this function is called in a subinterpreter, the function *func* is now " -"scheduled to be called from the subinterpreter, rather than being called " -"from the main interpreter. Each subinterpreter now has its own list of " -"scheduled calls." -msgstr "" - -#: c-api/threads.rst:831 -msgid "" -"This function now always schedules *func* to be run in the main interpreter." -msgstr "" - -#: c-api/threads.rst:838 -msgid "" -"Execute all pending calls. This is usually executed automatically by the " -"interpreter." -msgstr "" - -#: c-api/threads.rst:841 -msgid "" -"This function returns ``0`` on success, and returns ``-1`` with an exception " -"set on failure." -msgstr "" - -#: c-api/threads.rst:844 -msgid "" -"If this is not called in the main thread of the main interpreter, this " -"function does nothing and returns ``0``. The caller must hold " -"an :term:`attached thread state`." -msgstr "" - -#: c-api/threads.rst:850 -msgid "This function only runs pending calls in the main interpreter." -msgstr "" - -#: c-api/threads.rst:856 -msgid "" -"Schedule an exception to be raised asynchronously in a thread. If the thread " -"has a previously scheduled exception, it is overwritten." -msgstr "" - -#: c-api/threads.rst:859 -msgid "" -"The *id* argument is the thread id of the target thread, as returned " -"by :c:func:`PyThread_get_thread_ident`. *exc* is the class of the exception " -"to be raised, or ``NULL`` to clear the pending exception (if any)." -msgstr "" - -#: c-api/threads.rst:864 -msgid "" -"Return the number of affected thread states. This is normally ``1`` if *id* " -"is found, even when no change was made (the given *exc* was already pending, " -"or *exc* is ``NULL`` but no exception is pending). If the thread id isn't " -"found, return ``0``. This raises no exceptions." -msgstr "" - -#: c-api/threads.rst:870 -msgid "" -"To prevent naive misuse, you must write your own C extension to call this. " -"This function must be called with an :term:`attached thread state`. This " -"function does not steal any references to *exc*. This function does not " -"necessarily interrupt system calls such as :py:func:`~time.sleep`." -msgstr "" - -#: c-api/threads.rst:876 -msgid "" -"The type of the *id* parameter changed from :c:expr:`long` " -"to :c:expr:`unsigned long`." -msgstr "" - -#: c-api/threads.rst:882 -msgid "Operating system thread APIs" -msgstr "" - -#: c-api/threads.rst:886 -msgid "Sentinel value for an invalid thread ID." -msgstr "" - -#: c-api/threads.rst:888 -msgid "This is currently equivalent to ``(unsigned long)-1``." -msgstr "" - -#: c-api/threads.rst:893 -msgid "" -"Start function *func* in a new thread with argument *arg*. The resulting " -"thread is not intended to be joined." -msgstr "" - -#: c-api/threads.rst:896 -msgid "*func* must not be ``NULL``, but *arg* may be ``NULL``." -msgstr "" - -#: c-api/threads.rst:898 -msgid "" -"On success, this function returns the identifier of the new thread; on " -"failure, this returns :c:macro:`PYTHREAD_INVALID_THREAD_ID`." -msgstr "" - -#: c-api/threads.rst:986 c-api/threads.rst:994 -msgid "The caller does not need to hold an :term:`attached thread state`." -msgstr "" - -#: c-api/threads.rst:906 -msgid "Return the identifier of the current thread, which will never be zero." -msgstr "" - -#: c-api/threads.rst:941 -msgid "" -"This function cannot fail, and the caller does not need to hold " -"an :term:`attached thread state`." -msgstr "" - -#: c-api/threads.rst:912 -msgid "" -":py:func:`threading.get_ident` and :py:attr:`threading.Thread.ident` expose " -"this identifier to Python." -msgstr "" - -#: c-api/threads.rst:918 -msgid "" -"Get general information about the current thread in the form of " -"a :ref:`struct sequence ` object. This information " -"is accessible as :py:attr:`sys.thread_info` in Python." -msgstr "" - -#: c-api/threads.rst:922 -msgid "" -"On success, this returns a new :term:`strong reference` to the thread " -"information; on failure, this returns ``NULL`` with an exception set." -msgstr "" - -#: c-api/threads.rst:925 -msgid "The caller must hold an :term:`attached thread state`." -msgstr "" - -#: c-api/threads.rst:930 -msgid "This macro is defined when the system supports native thread IDs." -msgstr "" - -#: c-api/threads.rst:935 -msgid "" -"Get the native identifier of the current thread as it was assigned by the " -"operating system's kernel, which will never be less than zero." -msgstr "" - -#: c-api/threads.rst:938 -msgid "" -"This function is only available when :c:macro:`PY_HAVE_THREAD_NATIVE_ID` is " -"defined." -msgstr "" - -#: c-api/threads.rst:945 -msgid ":py:func:`threading.get_native_id`" -msgstr "" - -#: c-api/threads.rst:950 -msgid "" -"Terminate the current thread. This function is generally considered unsafe " -"and should be avoided. It is kept solely for backwards compatibility." -msgstr "" - -#: c-api/threads.rst:953 -msgid "" -"This function is only safe to call if all functions in the full call stack " -"are written to safely allow it." -msgstr "" - -#: c-api/threads.rst:958 -msgid "" -"If the current system uses POSIX threads (also known as \"pthreads\"), this " -"calls :manpage:`pthread_exit(3)`, which attempts to unwind the stack and " -"call C++ destructors on some libc implementations. However, if a " -"``noexcept`` function is reached, it may terminate the process. Other " -"systems, such as macOS, do unwinding." -msgstr "" - -#: c-api/threads.rst:964 -msgid "" -"On Windows, this function calls ``_endthreadex()``, which kills the thread " -"without calling C++ destructors." -msgstr "" - -#: c-api/threads.rst:967 -msgid "In any case, there is a risk of corruption on the thread's stack." -msgstr "" - -#: c-api/threads.rst:974 -msgid "" -"Initialize ``PyThread*`` APIs. Python executes this function automatically, " -"so there's little need to call it from an extension module." -msgstr "" - -#: c-api/threads.rst:980 -msgid "Set the stack size of the current thread to *size* bytes." -msgstr "" - -#: c-api/threads.rst:982 -msgid "" -"This function returns ``0`` on success, ``-1`` if *size* is invalid, or " -"``-2`` if the system does not support changing the stack size. This function " -"does not set exceptions." -msgstr "" - -#: c-api/threads.rst:991 -msgid "" -"Return the stack size of the current thread in bytes, or ``0`` if the " -"system's default stack size is in use." -msgstr "" diff --git a/c-api/time.po b/c-api/time.po deleted file mode 100644 index 20912569b5..0000000000 --- a/c-api/time.po +++ /dev/null @@ -1,166 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/time.rst:6 -msgid "PyTime C API" -msgstr "" - -#: c-api/time.rst:10 -msgid "" -"The clock C API provides access to system clocks. It is similar to the " -"Python :mod:`time` module." -msgstr "" - -#: c-api/time.rst:13 -msgid "" -"For C API related to the :mod:`datetime` module, see :ref:`datetimeobjects`." -msgstr "" - -#: c-api/time.rst:17 -msgid "Types" -msgstr "" - -#: c-api/time.rst:21 -msgid "" -"A timestamp or duration in nanoseconds, represented as a signed 64-bit " -"integer." -msgstr "" - -#: c-api/time.rst:24 -msgid "" -"The reference point for timestamps depends on the clock used. For " -"example, :c:func:`PyTime_Time` returns timestamps relative to the UNIX epoch." -msgstr "" - -#: c-api/time.rst:27 -msgid "" -"The supported range is around [-292.3 years; +292.3 years]. Using the Unix " -"epoch (January 1st, 1970) as reference, the supported date range is around " -"[1677-09-21; 2262-04-11]. The exact limits are exposed as constants:" -msgstr "" - -#: c-api/time.rst:34 -msgid "Minimum value of :c:type:`PyTime_t`." -msgstr "" - -#: c-api/time.rst:38 -msgid "Maximum value of :c:type:`PyTime_t`." -msgstr "" - -#: c-api/time.rst:42 -msgid "Clock Functions" -msgstr "" - -#: c-api/time.rst:44 -msgid "" -"The following functions take a pointer to a :c:expr:`PyTime_t` that they set " -"to the value of a particular clock. Details of each clock are given in the " -"documentation of the corresponding Python function." -msgstr "" - -#: c-api/time.rst:49 -msgid "" -"The functions return ``0`` on success, or ``-1`` (with an exception set) on " -"failure." -msgstr "" - -#: c-api/time.rst:52 -msgid "" -"On integer overflow, they set the :c:data:`PyExc_OverflowError` exception " -"and set ``*result`` to the value clamped to the ``[PyTime_MIN; PyTime_MAX]`` " -"range. (On current systems, integer overflows are likely caused by " -"misconfigured system time.)" -msgstr "" - -#: c-api/time.rst:58 -msgid "" -"As any other C API (unless otherwise specified), the functions must be " -"called with an :term:`attached thread state`." -msgstr "" - -#: c-api/time.rst:63 -msgid "" -"Read the monotonic clock. See :func:`time.monotonic` for important details " -"on this clock." -msgstr "" - -#: c-api/time.rst:68 -msgid "" -"Read the performance counter. See :func:`time.perf_counter` for important " -"details on this clock." -msgstr "" - -#: c-api/time.rst:73 -msgid "" -"Read the “wall clock” time. See :func:`time.time` for details important on " -"this clock." -msgstr "" - -#: c-api/time.rst:78 -msgid "Raw Clock Functions" -msgstr "" - -#: c-api/time.rst:80 -msgid "" -"Similar to clock functions, but don't set an exception on error and don't " -"require the caller to have an :term:`attached thread state`." -msgstr "" - -#: c-api/time.rst:83 -msgid "On success, the functions return ``0``." -msgstr "" - -#: c-api/time.rst:85 -msgid "" -"On failure, they set ``*result`` to ``0`` and return ``-1``, *without* " -"setting an exception. To get the cause of the error, :term:`attach ` a :term:`thread state`, and call the regular (non-``Raw``) " -"function. Note that the regular function may succeed after the ``Raw`` one " -"failed." -msgstr "" - -#: c-api/time.rst:92 -msgid "" -"Similar to :c:func:`PyTime_Monotonic`, but don't set an exception on error " -"and don't require an :term:`attached thread state`." -msgstr "" - -#: c-api/time.rst:97 -msgid "" -"Similar to :c:func:`PyTime_PerfCounter`, but don't set an exception on error " -"and don't require an :term:`attached thread state`." -msgstr "" - -#: c-api/time.rst:102 -msgid "" -"Similar to :c:func:`PyTime_Time`, but don't set an exception on error and " -"don't require an :term:`attached thread state`." -msgstr "" - -#: c-api/time.rst:107 -msgid "Conversion functions" -msgstr "" - -#: c-api/time.rst:111 -msgid "Convert a timestamp to a number of seconds as a C :c:expr:`double`." -msgstr "" - -#: c-api/time.rst:113 -msgid "" -"The function cannot fail, but note that :c:expr:`double` has limited " -"accuracy for large values." -msgstr "" diff --git a/c-api/tls.po b/c-api/tls.po deleted file mode 100644 index 552707c362..0000000000 --- a/c-api/tls.po +++ /dev/null @@ -1,192 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/tls.rst:6 -msgid "Thread-local storage support" -msgstr "" - -#: c-api/tls.rst:8 -msgid "" -"The Python interpreter provides low-level support for thread-local storage " -"(TLS) which wraps the underlying native TLS implementation to support the " -"Python-level thread-local storage API (:class:`threading.local`). The " -"CPython C level APIs are similar to those offered by pthreads and Windows: " -"use a thread key and functions to associate a :c:expr:`void*` value per " -"thread." -msgstr "" - -#: c-api/tls.rst:15 -msgid "" -"A :term:`thread state` does *not* need to be :term:`attached ` when calling these functions; they supply their own locking." -msgstr "" - -#: c-api/tls.rst:18 -msgid "" -"Note that :file:`Python.h` does not include the declaration of the TLS APIs, " -"you need to include :file:`pythread.h` to use thread-local storage." -msgstr "" - -#: c-api/tls.rst:22 -msgid "" -"None of these API functions handle memory management on behalf of " -"the :c: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 "" - -#: c-api/tls.rst:30 -msgid "Thread-specific storage API" -msgstr "" - -#: c-api/tls.rst:32 -msgid "" -"The thread-specific storage (TSS) API was 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:expr:`int` to represent thread keys." -msgstr "" - -#: c-api/tls.rst:38 -msgid "\"A New C-API for Thread-Local Storage in CPython\" (:pep:`539`)" -msgstr "" - -#: c-api/tls.rst:43 -msgid "" -"This data structure represents the state of a thread key, the definition of " -"which may depend on the underlying TLS implementation, and it has an " -"internal field representing the key's initialization state. There are no " -"public members in this structure." -msgstr "" - -#: c-api/tls.rst:48 -msgid "" -"When :ref:`Py_LIMITED_API ` is not defined, static allocation of " -"this type by :c:macro:`Py_tss_NEEDS_INIT` is allowed." -msgstr "" - -#: c-api/tls.rst:54 -msgid "" -"This macro expands to the initializer for :c:type:`Py_tss_t` variables. Note " -"that this macro won't be defined with :ref:`Py_LIMITED_API `." -msgstr "" - -#: c-api/tls.rst:59 -msgid "Dynamic allocation" -msgstr "" - -#: c-api/tls.rst:61 -msgid "" -"Dynamic allocation of the :c:type:`Py_tss_t`, required in extension modules " -"built with :ref:`Py_LIMITED_API `, where static allocation of this " -"type is not possible due to its implementation being opaque at build time." -msgstr "" - -#: c-api/tls.rst:68 -msgid "" -"Return a value which is the same state as a value initialized " -"with :c:macro:`Py_tss_NEEDS_INIT`, or ``NULL`` in the case of dynamic " -"allocation failure." -msgstr "" - -#: c-api/tls.rst:75 -msgid "" -"Free the given *key* allocated by :c:func:`PyThread_tss_alloc`, after first " -"calling :c:func:`PyThread_tss_delete` to ensure any associated thread locals " -"have been unassigned. This is a no-op if the *key* argument is ``NULL``." -msgstr "" - -#: c-api/tls.rst:81 -msgid "" -"A freed key becomes a dangling pointer. You should reset the key to ``NULL``." -msgstr "" - -#: c-api/tls.rst:86 -msgid "Methods" -msgstr "" - -#: c-api/tls.rst:88 -msgid "" -"The parameter *key* of these functions must not be ``NULL``. Moreover, the " -"behaviors of :c:func:`PyThread_tss_set` and :c:func:`PyThread_tss_get` are " -"undefined if the given :c:type:`Py_tss_t` has not been initialized " -"by :c:func:`PyThread_tss_create`." -msgstr "" - -#: c-api/tls.rst:96 -msgid "" -"Return a non-zero value if the given :c:type:`Py_tss_t` has been initialized " -"by :c:func:`PyThread_tss_create`." -msgstr "" - -#: c-api/tls.rst:102 -msgid "" -"Return a zero value on successful initialization of a TSS key. The behavior " -"is undefined if the value pointed to by the *key* argument is not " -"initialized by :c:macro:`Py_tss_NEEDS_INIT`. This function can be called " -"repeatedly on the same key -- calling it on an already initialized key is a " -"no-op and immediately returns success." -msgstr "" - -#: c-api/tls.rst:111 -msgid "" -"Destroy a TSS key to forget the values associated with the key across all " -"threads, and change the key's initialization state to uninitialized. A " -"destroyed key is able to be initialized again " -"by :c:func:`PyThread_tss_create`. This function can be called repeatedly on " -"the same key -- calling it on an already destroyed key is a no-op." -msgstr "" - -#: c-api/tls.rst:120 -msgid "" -"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:expr:`void*` value." -msgstr "" - -#: c-api/tls.rst:127 -msgid "" -"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 "" - -#: c-api/tls.rst:135 -msgid "Legacy APIs" -msgstr "" - -#: c-api/tls.rst:137 -msgid "" -"This API is superseded by the :ref:`thread-specific storage (TSS) API " -"`." -msgstr "" - -#: c-api/tls.rst:142 -msgid "" -"This version of the API does not support platforms where the native TLS key " -"is defined in a way that cannot be safely cast to ``int``. On such " -"platforms, :c:func:`PyThread_create_key` will return immediately with a " -"failure status, and the other TLS functions will all be no-ops on such " -"platforms." -msgstr "" - -#: c-api/tls.rst:147 -msgid "" -"Due to the compatibility problem noted above, this version of the API should " -"not be used in new code." -msgstr "" diff --git a/c-api/tuple.po b/c-api/tuple.po deleted file mode 100644 index aecd7c5ee2..0000000000 --- a/c-api/tuple.po +++ /dev/null @@ -1,377 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-23 16:10+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: c-api/tuple.rst:6 -msgid "Tuple Objects" -msgstr "*n*-uplets" - -#: c-api/tuple.rst:13 -msgid "This subtype of :c:type:`PyObject` represents a Python tuple object." -msgstr "" -"Ce sous-type de :c:type:`PyObject` représente un objet Python ``tuple``." - -#: c-api/tuple.rst:18 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python tuple type; it " -"is the same object as :class:`tuple` in the Python layer." -msgstr "" -"Cette instance de :c:type:`PyTypeObject` représente le type Python " -"``tuple``, c'est le même que l’objet Python :class:`tuple`." - -#: c-api/tuple.rst:24 -msgid "" -"Return true if *p* is a tuple object or an instance of a subtype of the " -"tuple type. This function always succeeds." -msgstr "" -"Renvoie vrai si *p* est un ``tuple`` ou un instance d’un de ses sous-type. " -"Cette fonction n’échoue jamais." - -#: c-api/tuple.rst:30 -msgid "" -"Return true if *p* is a tuple object, but not an instance of a subtype of " -"the tuple type. This function always succeeds." -msgstr "" -"Renvoie vrai uniquement si *p* est un ``tuple``, mais pas une instance d’un " -"des sous-types. Cette fonction n’échoue jamais." - -#: c-api/tuple.rst:36 -msgid "" -"Return a new tuple object of size *len*, or ``NULL`` with an exception set " -"on failure." -msgstr "" - -#: c-api/tuple.rst:42 -msgid "" -"Create a tuple of *size* items and copy references from *array* to the new " -"tuple." -msgstr "" - -#: c-api/tuple.rst:45 -msgid "*array* can be NULL if *size* is ``0``." -msgstr "" - -#: c-api/tuple.rst:47 -msgid "" -"On success, return a new reference. On error, set an exception and return " -"``NULL``." -msgstr "" - -#: c-api/tuple.rst:55 -msgid "" -"Return a new tuple object of size *n*, or ``NULL`` with an exception set on " -"failure. The tuple values are initialized to the subsequent *n* C arguments " -"pointing to Python objects. ``PyTuple_Pack(2, a, b)`` is equivalent to " -"``Py_BuildValue(\"(OO)\", a, b)``." -msgstr "" - -#: c-api/tuple.rst:63 -msgid "" -"Take a pointer to a tuple object, and return the size of that tuple. On " -"error, return ``-1`` with an exception set." -msgstr "" - -#: c-api/tuple.rst:69 -msgid "Like :c:func:`PyTuple_Size`, but without error checking." -msgstr "" - -#: c-api/tuple.rst:74 -msgid "" -"Return the object at position *pos* in the tuple pointed to by *p*. If " -"*pos* is negative or out of bounds, return ``NULL`` and set " -"an :exc:`IndexError` exception." -msgstr "" -"Renvoie l’objet à la position *pos* dans le *n*-uplet *p*. Si *pos* est " -"négatif ou hors limites, ``NULL`` est renvoyé et " -"l’exception :exc:`IndexError` est levée." - -#: c-api/tuple.rst:77 -msgid "" -"The returned reference is borrowed from the tuple *p* (that is: it is only " -"valid as long as you hold a reference to *p*). To get a :term:`strong " -"reference`, use :c:func:`Py_NewRef(PyTuple_GetItem(...)) ` " -"or :c:func:`PySequence_GetItem`." -msgstr "" - -#: c-api/tuple.rst:86 -msgid "Like :c:func:`PyTuple_GetItem`, but does no checking of its arguments." -msgstr "" -"Similaire à la fonction :c:func:`PyTuple_GetItem`, mais ne contrôle pas les " -"arguments." - -#: c-api/tuple.rst:91 -msgid "" -"Return the slice of the tuple pointed to by *p* between *low* and *high*, or " -"``NULL`` with an exception set on failure." -msgstr "" - -#: c-api/tuple.rst:94 -msgid "" -"This is the equivalent of the Python expression ``p[low:high]``. Indexing " -"from the end of the tuple is not supported." -msgstr "" - -#: c-api/tuple.rst:100 -#, fuzzy -msgid "" -"Insert a reference to object *o* at position *pos* of the tuple pointed to " -"by *p*. Return ``0`` on success. If *pos* is out of bounds, return ``-1`` " -"and set an :exc:`IndexError` exception. This function should only be used to " -"fill in brand new tuples; using it on an existing tuple is thread-unsafe." -msgstr "" -"Insère une référence à l’objet *o* à la position *pos* du *n*-uplet pointé " -"par *p*. Renvoie ``0`` si l’opération réussit. Si *pos* est hors limite, " -"l’exception :exc:`IndexError` est levée et la fonction renvoie ``-1``." - -#: c-api/tuple.rst:107 -msgid "" -"This function \"steals\" a reference to *o* and discards a reference to an " -"item already in the tuple at the affected position." -msgstr "" -"Cette fonction « s’accapare » une référence à l’objet *o* et dé-référence " -"l’objet présent dans le *n*-uplet à cette position." - -#: c-api/tuple.rst:113 -#, fuzzy -msgid "" -"Like :c:func:`PyTuple_SetItem`, but does no error checking, and should " -"*only* be used to fill in brand new tuples, using it on an existing tuple is " -"thread-unsafe." -msgstr "" -"Semblable à la fonction :c:func:`PyTuple_SetItem`, mais ne contrôle pas les " -"erreurs et *ne doit être utilisée que* pour remplir un *n*-uplet " -"nouvellement créé." - -#: c-api/tuple.rst:243 c-api/tuple.rst:261 -msgid "" -"Bounds checking is performed as an assertion if Python is built " -"in :ref:`debug mode ` or :option:`with assertions <--with-" -"assertions>`." -msgstr "" - -#: c-api/tuple.rst:121 -msgid "" -"This function \"steals\" a reference to *o*, and, " -"unlike :c:func:`PyTuple_SetItem`, does *not* discard a reference to any item " -"that is being replaced; any reference in the tuple at position *pos* will be " -"leaked." -msgstr "" -"Cette fonction «  s’accapare » une référence à l’objet *o* et, contrairement " -"à :c:func:`PyTuple_SetItem`, ne dé-référence **pas** l’élément remplacé : la " -"référence à l’objet présent dans le *n*-uplet à la position *pos* est perdue." - -#: c-api/tuple.rst:128 -msgid "" -"This macro should *only* be used on tuples that are newly created. Using " -"this macro on a tuple that is already in use (or in other words, has a " -"refcount > 1) could lead to undefined behavior." -msgstr "" - -#: c-api/tuple.rst:135 -msgid "" -"Can be used to resize a tuple. *newsize* will be the new length of the " -"tuple. Because tuples are *supposed* to be immutable, this should only be " -"used if there is only one reference to the object. Do *not* use this if the " -"tuple may already be known to some other part of the code. The tuple will " -"always grow or shrink at the end. Think of this as destroying the old tuple " -"and creating a new one, only more efficiently. Returns ``0`` on success. " -"Client code should never assume that the resulting value of ``*p`` will be " -"the same as before calling this function. If the object referenced by ``*p`` " -"is replaced, the original ``*p`` is destroyed. On failure, returns ``-1`` " -"and sets ``*p`` to ``NULL``, and raises :exc:`MemoryError` " -"or :exc:`SystemError`." -msgstr "" -"Permet de redimensionner un *n*-uplet. *newsize* est la nouvelle taille de " -"ce *n*-uplet. Comme les *n*-uplets sont *supposés* être immuables cette " -"fonction doit être utilisée uniquement s’il n’existe qu’une référence vers " -"cet objet. *N’utilisez pas* cette fonction s’il est possible que le *n*-" -"uplet soit connu d’une autre partie du code. Le *n*-uplet sera toujours " -"agrandi ou réduit à partir de la fin. Cette fonction est plus performante " -"que de détruire le ``tuple`` puis d’en créer un nouveau. Renvoie ``0`` si " -"l’opération réussit. Le code ne devrait jamais supposer que la valeur de " -"``*p`` sera la même après l’appel à cette fonction. Si l’objet référencé par " -"``*p`` doit être remplacé, alors il est d’abord détruit. En cas d’erreur " -"cette fonction renvoie ``-1`` , stocke ``NULL`` dans ``*p`` et lève " -"soit :exc:`MemoryError` soit :exc:`SystemError`." - -#: c-api/tuple.rst:150 -msgid "Struct Sequence Objects" -msgstr "Objets structure-séquence" - -#: c-api/tuple.rst:152 -#, fuzzy -msgid "" -"A struct sequence object is a :term:`named tuple`, that is, a sequence whose " -"items can also be accessed through attributes. It is similar " -"to :func:`collections.namedtuple`, but provides a slightly different " -"interface." -msgstr "" -"Les objets *structure-séquence* sont l’équivalent C des " -"objets :func:`~collections.namedtuple`, c’est-à-dire une liste d’objets dont " -"les éléments peuvent être désignés par des attributs. Pour créer un objet " -"structure-séquence vous devez d’abord définir son type." - -#: c-api/tuple.rst:157 -msgid "" -"To create a struct sequence, you first have to create a specific struct " -"sequence type." -msgstr "" - -#: c-api/tuple.rst:162 -msgid "" -"Create a new struct sequence type from the data in *desc*, described below. " -"Instances of the resulting type can be created " -"with :c:func:`PyStructSequence_New`." -msgstr "" -"Crée un nouveau type d’objet *structure-séquence* à partir des données dans " -"*desc*, décrit ci-dessous. Le type ainsi créé peut être instancié en " -"appelant :c:func:`PyStructSequence_New`." - -#: c-api/tuple.rst:234 -msgid "Return ``NULL`` with an exception set on failure." -msgstr "" - -#: c-api/tuple.rst:170 -msgid "Initializes a struct sequence type *type* from *desc* in place." -msgstr "" -"Initialise un type de structure-séquence à partir de *desc*, sur place." - -#: c-api/tuple.rst:175 -msgid "" -"Like :c:func:`PyStructSequence_InitType`, but returns ``0`` on success and " -"``-1`` with an exception set on failure." -msgstr "" - -#: c-api/tuple.rst:183 -msgid "Contains the meta information of a struct sequence type to create." -msgstr "Contient les méta-données d’un type structure-séquence à créer." - -#: c-api/tuple.rst:187 -msgid "" -"Fully qualified name of the type; null-terminated UTF-8 encoded. The name " -"must contain the module name." -msgstr "" - -#: c-api/tuple.rst:192 -msgid "Pointer to docstring for the type or ``NULL`` to omit." -msgstr "" - -#: c-api/tuple.rst:196 -msgid "Pointer to ``NULL``-terminated array with field names of the new type." -msgstr "" - -#: c-api/tuple.rst:200 -msgid "Number of fields visible to the Python side (if used as tuple)." -msgstr "" - -#: c-api/tuple.rst:205 -msgid "" -"Describes a field of a struct sequence. As a struct sequence is modeled as a " -"tuple, all fields are typed as :c:expr:`PyObject*`. The index in " -"the :c:member:`~PyStructSequence_Desc.fields` array of " -"the :c:type:`PyStructSequence_Desc` determines which field of the struct " -"sequence is described." -msgstr "" - -#: c-api/tuple.rst:213 -msgid "" -"Name for the field or ``NULL`` to end the list of named fields, set " -"to :c:data:`PyStructSequence_UnnamedField` to leave unnamed." -msgstr "" - -#: c-api/tuple.rst:218 -msgid "Field docstring or ``NULL`` to omit." -msgstr "" - -#: c-api/tuple.rst:223 -msgid "Special value for a field name to leave it unnamed." -msgstr "Une valeur sentinelle pour indiquer qu’un champ n’est pas nommé." - -#: c-api/tuple.rst:225 -msgid "The type was changed from ``char *``." -msgstr "Le type était ``char *``." - -#: c-api/tuple.rst:231 -msgid "" -"Creates an instance of *type*, which must have been created " -"with :c:func:`PyStructSequence_NewType`." -msgstr "" -"Crée une instance de *type*, qui doit avoir été créé " -"via :c:func:`PyStructSequence_NewType`." - -#: c-api/tuple.rst:239 -msgid "" -"Return the object at position *pos* in the struct sequence pointed to by " -"*p*. The returned reference is borrowed from the struct sequence *p* (that " -"is: it is only valid as long as you hold a reference to *p*)." -msgstr "" - -#: c-api/tuple.rst:249 -msgid "Alias to :c:func:`PyStructSequence_GetItem`." -msgstr "" - -#: c-api/tuple.rst:251 -msgid "Now implemented as an alias to :c:func:`PyStructSequence_GetItem`." -msgstr "" - -#: c-api/tuple.rst:257 -msgid "" -"Sets the field at index *pos* of the struct sequence *p* to value *o*. " -"Like :c:func:`PyTuple_SET_ITEM`, this should only be used to fill in brand " -"new instances." -msgstr "" -"Insère un l’objet *o* dans la structure-séquence *p* à la position *pos*. " -"Pour les mêmes raisons que :c:func:`PyTuple_SET_ITEM`, cette fonction ne " -"doit être utilisée que pour des objets nouvellement créés." - -#: c-api/tuple.rst:266 -msgid "This function \"steals\" a reference to *o*." -msgstr "Cette fonction « s’accapare » une référence à *o*." - -#: c-api/tuple.rst:271 -msgid "Alias to :c:func:`PyStructSequence_SetItem`." -msgstr "" - -#: c-api/tuple.rst:273 -msgid "Now implemented as an alias to :c:func:`PyStructSequence_SetItem`." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "tuple" -#~ msgstr "*n*-uplet" - -#~ msgid "Field" -#~ msgstr "Champ" - -#~ msgid "C Type" -#~ msgstr "Type C" - -#~ msgid "Meaning" -#~ msgstr "Signification" - -#~ msgid "``name``" -#~ msgstr "``name``" - -#~ msgid "``PyStructSequence_Field *``" -#~ msgstr "``PyStructSequence_Field *``" - -#~ msgid "``n_in_sequence``" -#~ msgstr "``n_in_sequence``" - -#~ msgid "``int``" -#~ msgstr "``int``" diff --git a/c-api/type.po b/c-api/type.po deleted file mode 100644 index ed5b2d23f2..0000000000 --- a/c-api/type.po +++ /dev/null @@ -1,1154 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-02-15 00:33+0100\n" -"Last-Translator: FULL NAME \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" - -#: c-api/type.rst:6 -msgid "Type Objects" -msgstr "Objets type" - -#: c-api/type.rst:13 -msgid "The C structure of the objects used to describe built-in types." -msgstr "" - -#: c-api/type.rst:18 -msgid "" -"This is the type object for type objects; it is the same object " -"as :class:`type` in the Python layer." -msgstr "" - -#: c-api/type.rst:24 -msgid "" -"Return non-zero if the object *o* is a type object, including instances of " -"types derived from the standard type object. Return 0 in all other cases. " -"This function always succeeds." -msgstr "" - -#: c-api/type.rst:31 -msgid "" -"Return non-zero if the object *o* is a type object, but not a subtype of the " -"standard type object. Return 0 in all other cases. This function always " -"succeeds." -msgstr "" - -#: c-api/type.rst:38 -msgid "Clear the internal lookup cache. Return the current version tag." -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 " -"flag bits are guaranteed to be stable across Python releases, but access " -"to :c:member:`~PyTypeObject.tp_flags` itself is not part of " -"the :ref:`limited API `." -msgstr "" - -#: c-api/type.rst:49 -msgid "The return type is now ``unsigned long`` rather than ``long``." -msgstr "" - -#: c-api/type.rst:55 -msgid "" -"Return the type object's internal namespace, which is otherwise only exposed " -"via a read-only proxy (:attr:`cls.__dict__ `). This is a " -"replacement for accessing :c:member:`~PyTypeObject.tp_dict` directly. The " -"returned dictionary must be treated as read-only." -msgstr "" - -#: c-api/type.rst:61 -msgid "" -"This function is meant for specific embedding and language-binding cases, " -"where direct access to the dict is necessary and indirect access (e.g. via " -"the proxy or :c:func:`PyObject_GetAttr`) isn't adequate." -msgstr "" - -#: c-api/type.rst:65 -msgid "" -"Extension modules should continue to use ``tp_dict``, directly or " -"indirectly, when setting up their own types." -msgstr "" - -#: c-api/type.rst:73 -msgid "" -"Invalidate the internal lookup cache for the type and all of its subtypes. " -"This function must be called after any manual modification of the attributes " -"or base classes of the type." -msgstr "" - -#: c-api/type.rst:80 -msgid "" -"Register *callback* as a type watcher. Return a non-negative integer ID " -"which must be passed to future calls to :c:func:`PyType_Watch`. In case of " -"error (e.g. no more watcher IDs available), return ``-1`` and set an " -"exception." -msgstr "" - -#: c-api/type.rst:85 -msgid "" -"In free-threaded builds, :c:func:`PyType_AddWatcher` is not thread-safe, so " -"it must be called at start up (before spawning the first thread)." -msgstr "" - -#: c-api/type.rst:93 -msgid "" -"Clear watcher identified by *watcher_id* (previously returned " -"from :c:func:`PyType_AddWatcher`). Return ``0`` on success, ``-1`` on error " -"(e.g. if *watcher_id* was never registered.)" -msgstr "" - -#: c-api/type.rst:97 -msgid "" -"An extension should never call ``PyType_ClearWatcher`` with a *watcher_id* " -"that was not returned to it by a previous call " -"to :c:func:`PyType_AddWatcher`." -msgstr "" - -#: c-api/type.rst:106 -msgid "" -"Mark *type* as watched. The callback granted *watcher_id* " -"by :c:func:`PyType_AddWatcher` will be called " -"whenever :c:func:`PyType_Modified` reports a change to *type*. (The callback " -"may be called only once for a series of consecutive modifications to *type*, " -"if :c:func:`!_PyType_Lookup` is not called on *type* between the " -"modifications; this is an implementation detail and subject to change.)" -msgstr "" - -#: c-api/type.rst:113 -msgid "The callback is also invoked when a watched heap type is deallocated." -msgstr "" - -#: c-api/type.rst:115 -msgid "" -"An extension should never call ``PyType_Watch`` with a *watcher_id* that was " -"not returned to it by a previous call to :c:func:`PyType_AddWatcher`." -msgstr "" - -#: c-api/type.rst:120 -msgid "" -"The callback is now also invoked when a watched heap type is deallocated." -msgstr "" - -#: c-api/type.rst:126 -msgid "" -"Mark *type* as not watched. This undoes a previous call " -"to :c:func:`PyType_Watch`. *type* must not be ``NULL``." -msgstr "" - -#: c-api/type.rst:129 -msgid "" -"An extension should never call this function with a *watcher_id* that was " -"not returned to it by a previous call to :c:func:`PyType_AddWatcher`." -msgstr "" - -#: c-api/type.rst:132 -msgid "" -"On success, this function returns ``0``. On failure, this function returns " -"``-1`` with an exception set." -msgstr "" - -#: c-api/type.rst:140 -msgid "Type of a type-watcher callback function." -msgstr "" - -#: c-api/type.rst:142 -msgid "" -"The callback must not modify *type* or cause :c:func:`PyType_Modified` to be " -"called on *type* or any type in its MRO; violating this rule could cause " -"infinite recursion." -msgstr "" - -#: c-api/type.rst:146 -msgid "" -"The callback may be called during type deallocation. In this case, the type " -"object is temporarily resurrected (its reference count is at least 1) and " -"all its attributes are still valid. However, the callback should not store " -"new strong references to the type, as this would resurrect the object and " -"prevent its deallocation." -msgstr "" - -#: c-api/type.rst:154 -msgid "" -"The callback may now be called during deallocation of a watched heap type." -msgstr "" - -#: c-api/type.rst:160 -msgid "" -"Return non-zero if the type object *o* sets the feature *feature*. Type " -"features are denoted by single bit flags." -msgstr "" - -#: c-api/type.rst:166 -msgid "" -"Return non-zero if the type object *type* sets the subclass flag *flag*. " -"Subclass flags are denoted by :c:macro:`Py_TPFLAGS_*_SUBCLASS " -"`. This function is used by many ``_Check`` " -"functions for common types." -msgstr "" - -#: c-api/type.rst:172 -msgid "" -":c:func:`PyObject_TypeCheck`, which is used as a slower alternative in " -"``_Check`` functions for types that don't come with subclass flags." -msgstr "" - -#: c-api/type.rst:178 -msgid "" -"Return true if the type object includes support for the cycle detector; this " -"tests the type flag :c:macro:`Py_TPFLAGS_HAVE_GC`." -msgstr "" - -#: c-api/type.rst:184 -msgid "Return true if *a* is a subtype of *b*." -msgstr "" - -#: c-api/type.rst:186 -msgid "" -"This function only checks for actual subtypes, which means " -"that :meth:`~type.__subclasscheck__` is not called on *b*. " -"Call :c:func:`PyObject_IsSubclass` to do the same check " -"that :func:`issubclass` would do." -msgstr "" - -#: c-api/type.rst:194 -msgid "" -"Generic handler for the :c:member:`~PyTypeObject.tp_alloc` slot of a type " -"object. Uses Python's default memory allocation mechanism to allocate " -"memory for a new instance, zeros the memory, then initializes the memory as " -"if by calling :c:func:`PyObject_Init` or :c:func:`PyObject_InitVar`." -msgstr "" - -#: c-api/type.rst:199 -msgid "" -"Do not call this directly to allocate memory for an object; call the " -"type's :c:member:`~PyTypeObject.tp_alloc` slot instead." -msgstr "" - -#: c-api/type.rst:202 -msgid "" -"For types that support garbage collection (i.e., " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set), this function behaves " -"like :c:macro:`PyObject_GC_New` or :c:macro:`PyObject_GC_NewVar` (except the " -"memory is guaranteed to be zeroed before initialization), and should be " -"paired with :c:func:`PyObject_GC_Del` in :c:member:`~PyTypeObject.tp_free`. " -"Otherwise, it behaves like :c:macro:`PyObject_New` " -"or :c:macro:`PyObject_NewVar` (except the memory is guaranteed to be zeroed " -"before initialization) and should be paired with :c:func:`PyObject_Free` " -"in :c:member:`~PyTypeObject.tp_free`." -msgstr "" - -#: c-api/type.rst:215 -msgid "" -"Generic handler for the :c:member:`~PyTypeObject.tp_new` slot of a type " -"object. Creates a new instance using the " -"type's :c:member:`~PyTypeObject.tp_alloc` slot and returns the resulting " -"object." -msgstr "" - -#: c-api/type.rst:222 -msgid "" -"Finalize a type object. This should be called on all type objects to finish " -"their initialization. This function is responsible for adding inherited " -"slots from a type's base class. Return ``0`` on success, or return ``-1`` " -"and sets an exception on error." -msgstr "" - -#: c-api/type.rst:228 -msgid "" -"If some of the base classes implements the GC protocol and the provided type " -"does not include the :c:macro:`Py_TPFLAGS_HAVE_GC` in its flags, then the GC " -"protocol will be automatically implemented from its parents. On the " -"contrary, if the type being created does " -"include :c:macro:`Py_TPFLAGS_HAVE_GC` in its flags then it **must** " -"implement the GC protocol itself by at least implementing " -"the :c:member:`~PyTypeObject.tp_traverse` handle." -msgstr "" - -#: c-api/type.rst:239 -msgid "" -"Return the type's name. Equivalent to getting the " -"type's :attr:`~type.__name__` attribute." -msgstr "" - -#: c-api/type.rst:247 -msgid "" -"Return the type's qualified name. Equivalent to getting the " -"type's :attr:`~type.__qualname__` attribute." -msgstr "" - -#: c-api/type.rst:254 -msgid "" -"Return the type's fully qualified name. Equivalent to ``f\"{type.__module__}." -"{type.__qualname__}\"``, or :attr:`type.__qualname__` " -"if :attr:`type.__module__` is not a string or is equal to ``\"builtins\"``." -msgstr "" - -#: c-api/type.rst:263 -msgid "" -"Return the type's module name. Equivalent to getting " -"the :attr:`type.__module__` attribute." -msgstr "" - -#: c-api/type.rst:271 -msgid "" -"Return the function pointer stored in the given slot. If the result is " -"``NULL``, this indicates that either the slot is ``NULL``, or that the " -"function was called with invalid parameters. Callers will typically cast the " -"result pointer into the appropriate function type." -msgstr "" - -#: c-api/type.rst:277 -msgid "" -"See :c:member:`PyType_Slot.slot` for possible values of the *slot* argument." -msgstr "" - -#: c-api/type.rst:281 -msgid "" -":c:func:`PyType_GetSlot` can now accept all types. Previously, it was " -"limited to :ref:`heap types `." -msgstr "" - -#: c-api/type.rst:288 -msgid "" -"Return the module object associated with the given type when the type was " -"created using :c:func:`PyType_FromModuleAndSpec`." -msgstr "" - -#: c-api/type.rst:355 -msgid "" -"The returned reference is :term:`borrowed ` from *type*, " -"and will be valid as long as you hold a reference to *type*. Do not release " -"it with :c:func:`Py_DECREF` or similar." -msgstr "" - -#: c-api/type.rst:316 -msgid "" -"If no module is associated with the given type, sets :py:class:`TypeError` " -"and returns ``NULL``." -msgstr "" - -#: c-api/type.rst:298 -msgid "" -"This function is usually used to get the module in which a method is " -"defined. Note that in such a method, ``PyType_GetModule(Py_TYPE(self))`` may " -"not return the intended result. ``Py_TYPE(self)`` may be a *subclass* of the " -"intended class, and subclasses are not necessarily defined in the same " -"module as their superclass. See :c:type:`PyCMethod` to get the class that " -"defines the method. See :c:func:`PyType_GetModuleByToken` for cases " -"when :c:type:`!PyCMethod` cannot be used." -msgstr "" - -#: c-api/type.rst:312 -msgid "" -"Return the state of the module object associated with the given type. This " -"is a shortcut for calling :c:func:`PyModule_GetState()` on the result " -"of :c:func:`PyType_GetModule`." -msgstr "" - -#: c-api/type.rst:319 -msgid "" -"If the *type* has an associated module but its state is ``NULL``, returns " -"``NULL`` without setting an exception." -msgstr "" - -#: c-api/type.rst:327 -msgid "" -"Find the first superclass whose module has the given :ref:`module token `, and return that module." -msgstr "" - -#: c-api/type.rst:330 -msgid "" -"If no module is found, raises a :py:class:`TypeError` and returns ``NULL``." -msgstr "" - -#: c-api/type.rst:332 -msgid "" -"This function is intended to be used together " -"with :c:func:`PyModule_GetState()` to get module state from slot methods " -"(such as :c:member:`~PyTypeObject.tp_init` " -"or :c:member:`~PyNumberMethods.nb_add`) and other places where a method's " -"defining class cannot be passed using the :c:type:`PyCMethod` calling " -"convention." -msgstr "" - -#: c-api/type.rst:343 -msgid "" -"Find the first superclass whose module was created from the " -"given :c:type:`PyModuleDef` *def*, or whose :ref:`module token ` is equal to *def*, and return that module." -msgstr "" - -#: c-api/type.rst:347 -msgid "" -"Note that modules created from a :c:type:`PyModuleDef` always have their " -"token set to the :c:type:`PyModuleDef`'s address. In other words, this " -"function is equivalent to :c:func:`PyType_GetModuleByToken`, except that it:" -msgstr "" - -#: c-api/type.rst:352 -msgid "returns a borrowed reference, and" -msgstr "" - -#: c-api/type.rst:353 -msgid "" -"has a non-``void*`` argument type (which is a cosmetic difference in C)." -msgstr "" - -#: c-api/type.rst:364 -msgid "" -"Find the first superclass in *type*'s :term:`method resolution order` " -"whose :c:macro:`Py_tp_token` token is equal to *tp_token*." -msgstr "" - -#: c-api/type.rst:367 -msgid "" -"If found, set *\\*result* to a new :term:`strong reference` to it and return " -"``1``." -msgstr "" - -#: c-api/type.rst:369 -msgid "If not found, set *\\*result* to ``NULL`` and return ``0``." -msgstr "" - -#: c-api/type.rst:370 -msgid "" -"On error, set *\\*result* to ``NULL`` and return ``-1`` with an exception " -"set." -msgstr "" - -#: c-api/type.rst:373 -msgid "" -"The *result* argument may be ``NULL``, in which case *\\*result* is not set. " -"Use this if you need only the return value." -msgstr "" - -#: c-api/type.rst:376 -msgid "The *tp_token* argument may not be ``NULL``." -msgstr "" - -#: c-api/type.rst:383 -msgid "Attempt to assign a version tag to the given type." -msgstr "" - -#: c-api/type.rst:385 -msgid "" -"Returns 1 if the type already had a valid version tag or a new one was " -"assigned, or 0 if a new tag could not be assigned." -msgstr "" - -#: c-api/type.rst:393 -msgid "" -"Return true if instances of *type* support creating weak references, false " -"otherwise. This function always succeeds. *type* must not be ``NULL``." -msgstr "" - -#: c-api/type.rst:397 -msgid ":ref:`weakrefobjects`" -msgstr "" - -#: c-api/type.rst:398 -msgid ":py:mod:`weakref`" -msgstr "" - -#: c-api/type.rst:404 -msgid "Creating Heap-Allocated Types" -msgstr "" - -#: c-api/type.rst:406 -msgid "" -"The following function is used to create :ref:`heap types `:" -msgstr "" - -#: c-api/type.rst:410 -msgid "" -"Create and return a :ref:`heap type ` from a :c:type:`!PySlot` " -"array. See :ref:`capi-slots` for general information on slots, " -"and :ref:`pyslot_type_slot_ids` for slots specific to type creation." -msgstr "" - -#: c-api/type.rst:788 -msgid "This function calls :c:func:`PyType_Ready` on the new type." -msgstr "" - -#: c-api/type.rst:417 -msgid "" -"Note that this function does *not* fully match the behavior of " -"calling :py:class:`type() ` or using the :keyword:`class` statement. " -"With user-provided base types or metaclasses, prefer :ref:`calling ` :py:class:`type` (or the metaclass) over ``PyType_From*`` functions. " -"Specifically:" -msgstr "" - -#: c-api/type.rst:424 -msgid "" -":py:meth:`~object.__new__` is not called on the new class (and it must be " -"set to ``type.__new__``)." -msgstr "" - -#: c-api/type.rst:426 -msgid ":py:meth:`~object.__init__` is not called on the new class." -msgstr "" - -#: c-api/type.rst:427 -msgid ":py:meth:`~object.__init_subclass__` is not called on any bases." -msgstr "" - -#: c-api/type.rst:428 -msgid ":py:meth:`~object.__set_name__` is not called on new descriptors." -msgstr "" - -#: c-api/type.rst:430 -msgid "" -"Slots are typically defined as a global static constant arrays. However, " -"sometimes slot values are not statically known at compile time. For example, " -"slots like :c:data:`Py_tp_bases`, :c:data:`Py_tp_metaclass` " -"and :c:data:`Py_tp_module` require live Python objects. In this case, it is " -"recommended to put such slots on the stack, and " -"use :c:macro:`Py_slot_subslots` to refer to an array of static slots. For " -"example::" -msgstr "" - -#: c-api/type.rst:454 -msgid "" -"Heap types created without the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag may " -"be modified, for example by setting attributes on them, as with classes " -"defined in Python code. Sometimes, such modifications are necessary to fully " -"initialize a type, but you may wish to prevent users from changing the type " -"after the initialization is done:" -msgstr "" - -#: c-api/type.rst:463 -msgid "" -"Make a type immutable: set the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag." -msgstr "" - -#: c-api/type.rst:465 -msgid "All base classes of *type* must be immutable." -msgstr "" - -#: c-api/type.rst:467 -msgid "On success, return ``0``. On error, set an exception and return ``-1``." -msgstr "" - -#: c-api/type.rst:470 -msgid "" -"The type must not be used before it's made immutable. For example, type " -"instances must not be created before the type is made immutable." -msgstr "" - -#: c-api/type.rst:479 -msgid "Type slot IDs" -msgstr "" - -#: c-api/type.rst:481 -msgid "" -"Most type slot IDs are named like the field names of the " -"structures :c:type:`PyTypeObject`, :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, :c:type:`PyMappingMethods` " -"and :c:type:`PyAsyncMethods` with an added ``Py_`` prefix. For example, use:" -msgstr "" - -#: c-api/type.rst:487 -msgid ":c:data:`Py_tp_dealloc` to set :c:member:`PyTypeObject.tp_dealloc`" -msgstr "" - -#: c-api/type.rst:488 -msgid ":c:data:`Py_nb_add` to set :c:member:`PyNumberMethods.nb_add`" -msgstr "" - -#: c-api/type.rst:489 -msgid ":c:data:`Py_sq_length` to set :c:member:`PySequenceMethods.sq_length`" -msgstr "" - -#: c-api/type.rst:491 -msgid "" -"The following slots need additional considerations when specified as slots:" -msgstr "" - -#: c-api/type.rst:493 -msgid ":c:data:`Py_tp_name`" -msgstr "" - -#: c-api/type.rst:494 -msgid ":c:data:`Py_tp_basicsize` and :c:data:`Py_tp_extra_basicsize`" -msgstr "" - -#: c-api/type.rst:495 -msgid ":c:data:`Py_tp_itemsize`" -msgstr "" - -#: c-api/type.rst:496 -msgid ":c:data:`Py_tp_flags`" -msgstr "" - -#: c-api/type.rst:498 -msgid "" -"Additional slots do not directly correspond to a :c:type:`!PyTypeObject` " -"struct field:" -msgstr "" - -#: c-api/type.rst:501 -msgid ":c:data:`Py_tp_token`" -msgstr "" - -#: c-api/type.rst:502 -msgid ":c:data:`Py_tp_metaclass`" -msgstr "" - -#: c-api/type.rst:503 -msgid ":c:data:`Py_tp_module`" -msgstr "" - -#: c-api/type.rst:505 -msgid "" -"The following “offset” fields cannot be set using :c:type:`PyType_Slot`:" -msgstr "" - -#: c-api/type.rst:507 -msgid "" -":c:member:`~PyTypeObject.tp_weaklistoffset` " -"(use :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` instead if possible)" -msgstr "" - -#: c-api/type.rst:509 -msgid "" -":c:member:`~PyTypeObject.tp_dictoffset` " -"(use :c:macro:`Py_TPFLAGS_MANAGED_DICT` instead if possible)" -msgstr "" - -#: c-api/type.rst:511 -msgid "" -":c:member:`~PyTypeObject.tp_vectorcall_offset` (use " -"``\"__vectorcalloffset__\"`` in :ref:`PyMemberDef `)" -msgstr "" - -#: c-api/type.rst:514 -msgid "" -"If it is not possible to switch to a ``MANAGED`` flag (for example, for " -"vectorcall or to support Python older than 3.12), specify the offset " -"in :c:data:`Py_tp_members`. See :ref:`PyMemberDef documentation ` for details." -msgstr "" - -#: c-api/type.rst:520 -msgid "" -"The following internal fields cannot be set at all when creating a heap type:" -msgstr "" - -#: c-api/type.rst:523 -msgid "" -":c:member:`~PyTypeObject.tp_dict`, :c:member:`~PyTypeObject.tp_mro`, :c:member:`~PyTypeObject.tp_cache`, :c:member:`~PyTypeObject.tp_subclasses`, " -"and :c:member:`~PyTypeObject.tp_weaklist`." -msgstr "" - -#: c-api/type.rst:529 -msgid "" -"The :c:data:`Py_tp_base` slot is equivalent to :c:data:`Py_tp_bases`; both " -"may be set either to a type or a tuple of types. If both are specified, the " -"value of :c:data:`Py_tp_bases` is used." -msgstr "" - -#: c-api/type.rst:534 -msgid "Slot values may not be ``NULL``, except for the following:" -msgstr "" - -#: c-api/type.rst:536 -msgid ":c:data:`Py_tp_doc`" -msgstr "" - -#: c-api/type.rst:537 -msgid "" -":c:data:`Py_tp_token` (for clarity, prefer :c:data:`Py_TP_USE_SPEC` rather " -"than ``NULL``)" -msgstr "" - -#: c-api/type.rst:540 -msgid "Slots in :c:type:`PyBufferProcs` may be set in the unlimited API." -msgstr "" - -#: c-api/type.rst:543 -msgid "" -":c:member:`~PyBufferProcs.bf_getbuffer` " -"and :c:member:`~PyBufferProcs.bf_releasebuffer` are now available under " -"the :ref:`limited API `." -msgstr "" - -#: c-api/type.rst:548 -msgid "" -"The field :c:member:`~PyTypeObject.tp_vectorcall` can now be set " -"using :c:data:`Py_tp_vectorcall`. See the field's documentation for details." -msgstr "" - -#: c-api/type.rst:553 -msgid "" -"The :c:data:`Py_tp_bases` slot may be set to a single type object, making it " -"equivalent to the :c:data:`Py_tp_base` slot. Previously, a tuple of types " -"was required." -msgstr "" - -#: c-api/type.rst:558 -msgid "" -"The following slots correspond to fields in the underlying type structure, " -"but need extra remarks for use as slots:" -msgstr "" - -#: c-api/type.rst:563 -msgid "" -":c:member:`Slot ID ` for the name of the type, used to " -"set :c:member:`PyTypeObject.tp_name`." -msgstr "" - -#: c-api/type.rst:566 -msgid "This slot (or :c:func:`PyType_Spec.name`) is required to create a type." -msgstr "" - -#: c-api/type.rst:568 -msgid "" -"This may not be used in :c:member:`PyType_Spec.slots`. " -"Use :c:func:`PyType_Spec.name` instead." -msgstr "" - -#: c-api/type.rst:573 -msgid "" -"CPython processes slots in order. It is recommended to put ``Py_tp_name`` at " -"the beginning of the slots array, so that if processing of a later slots " -"fails, error messages can include the name." -msgstr "" - -#: c-api/type.rst:582 -msgid "" -":c:member:`Slot ID ` for the size of the instance in bytes. It " -"is used to set :c:member:`PyTypeObject.tp_basicsize`." -msgstr "" - -#: c-api/type.rst:632 -msgid "The value must be positive." -msgstr "" - -#: c-api/type.rst:587 -msgid "" -"This may not be used in :c:member:`PyType_Spec.slots`. " -"Use :c:func:`PyType_Spec.basicsize` instead." -msgstr "" - -#: c-api/type.rst:590 -msgid "" -"This slot may not be used with :c:func:`PyType_GetSlot`. " -"Use :c:member:`PyTypeObject.tp_basicsize` instead if needed, but be aware " -"that a type's size is often considered an implementation detail." -msgstr "" - -#: c-api/type.rst:598 -msgid "" -":c:member:`Slot ID ` for type data size in bytes, that is, how " -"much space instances of the class need *in addition* to space needed for " -"superclasses." -msgstr "" - -#: c-api/type.rst:602 -msgid "" -"The value is used, together with the size of superclasses, to " -"set :c:member:`PyTypeObject.tp_basicsize`. Python will insert padding as " -"needed to meet :c:member:`!tp_basicsize`'s alignment requirements." -msgstr "" - -#: c-api/type.rst:607 -msgid "" -"Use :c:func:`PyObject_GetTypeData` to get a pointer to subclass-specific " -"memory reserved this way." -msgstr "" - -#: c-api/type.rst:610 -msgid "" -"The value must be positive. To specify that instances need no additional " -"size (that is, size should be inherited), omit the :c:macro:`!" -"Py_tp_extra_basicsize` slot rather than set it to zero." -msgstr "" - -#: c-api/type.rst:615 -msgid "" -"Specifying both :c:macro:`Py_tp_basicsize` and :c:macro:`!" -"Py_tp_extra_basicsize` is an error." -msgstr "" - -#: c-api/type.rst:665 -msgid "" -"This may not be used in :c:member:`PyType_Spec.slots`. Use " -"negative :c:func:`PyType_Spec.basicsize` instead." -msgstr "" - -#: c-api/type.rst:653 -msgid "This slot may not be used with :c:func:`PyType_GetSlot`." -msgstr "" - -#: c-api/type.rst:627 -msgid "" -":c:member:`Slot ID ` for the size of one element of a variable-" -"size type, in bytes. Used to set :c:member:`PyTypeObject.tp_itemsize`. " -"See :c:member:`!tp_itemsize` documentation for caveats." -msgstr "" - -#: c-api/type.rst:634 -msgid "" -"If this slot is missing, :c:member:`~PyTypeObject.tp_itemsize` is inherited. " -"Extending arbitrary variable-sized classes is dangerous, since some types " -"use a fixed offset for variable-sized memory, which can then overlap fixed-" -"sized memory used by a subclass. To help prevent mistakes, inheriting " -"``itemsize`` is only possible in the following situations:" -msgstr "" - -#: c-api/type.rst:641 -msgid "" -"The base is not variable-sized (its :c:member:`~PyTypeObject.tp_itemsize`)." -msgstr "" - -#: c-api/type.rst:643 -msgid "" -"The requested :c:member:`PyType_Spec.basicsize` is positive, suggesting that " -"the memory layout of the base class is known." -msgstr "" - -#: c-api/type.rst:645 -msgid "" -"The requested :c:member:`PyType_Spec.basicsize` is zero, suggesting that the " -"subclass does not access the instance's memory directly." -msgstr "" - -#: c-api/type.rst:648 -msgid "With the :c:macro:`Py_TPFLAGS_ITEMS_AT_END` flag." -msgstr "" - -#: c-api/type.rst:650 -msgid "" -"This may not be used in :c:member:`PyType_Spec.slots`. " -"Use :c:func:`PyType_Spec.itemsize` instead." -msgstr "" - -#: c-api/type.rst:659 -msgid "" -":c:member:`Slot ID ` for type flags, used to " -"set :c:member:`PyTypeObject.tp_flags`." -msgstr "" - -#: c-api/type.rst:662 -msgid "" -"The ``Py_TPFLAGS_HEAPTYPE`` flag is not " -"set, :c:func:`PyType_FromSpecWithBases` sets it automatically." -msgstr "" - -#: c-api/type.rst:668 -msgid "" -"This slot may not be used with :c:func:`PyType_GetSlot`. " -"Use :c:func:`PyType_GetFlags` instead." -msgstr "" - -#: c-api/type.rst:673 -msgid "" -"The following slots do not correspond to public fields in the underlying " -"structures:" -msgstr "" - -#: c-api/type.rst:678 -msgid "" -":c:member:`Slot ID ` for the metaclass used to construct the " -"resulting type object. When omitted the metaclass is derived from bases " -"(:c:macro:`Py_tp_bases` or the *bases* argument " -"of :c:func:`PyType_FromMetaclass`)." -msgstr "" - -#: c-api/type.rst:684 -msgid "" -"Metaclasses that override :c:member:`~PyTypeObject.tp_new` are not " -"supported, except if ``tp_new`` is ``NULL``." -msgstr "" - -#: c-api/type.rst:687 -msgid "" -"This may not be used in :c:member:`PyType_Spec.slots`. " -"Use :c:func:`PyType_FromMetaclass` to specify a metaclass with :c:type:`!" -"PyType_Spec`." -msgstr "" - -#: c-api/type.rst:691 -msgid "" -"This slot may not be used with :c:func:`PyType_GetSlot`. " -"Use :c:func:`Py_TYPE` on the type object instead." -msgstr "" - -#: c-api/type.rst:698 -msgid "" -":c:member:`Slot ID ` for recording the module in which the new " -"class is defined." -msgstr "" - -#: c-api/type.rst:701 -msgid "" -"The value must be a module object. The module is associated with the new " -"type and can later be retrieved with :c:func:`PyType_GetModule`. The " -"associated module is not inherited by subclasses; it must be specified for " -"each class individually." -msgstr "" - -#: c-api/type.rst:707 -msgid "" -"This may not be used in :c:member:`PyType_Spec.slots`. " -"Use :c:func:`PyType_FromMetaclass` to specify a module with :c:type:`!" -"PyType_Spec`." -msgstr "" - -#: c-api/type.rst:711 -msgid "" -"This slot may not be used with :c:func:`PyType_GetSlot`. " -"Use :c:func:`PyType_GetModule` instead." -msgstr "" - -#: c-api/type.rst:718 -msgid "" -":c:member:`Slot ID ` for recording a static memory layout ID " -"for a class." -msgstr "" - -#: c-api/type.rst:721 -msgid "" -"If the class is defined using a :c:type:`PyType_Spec`, and that spec is " -"statically allocated, the token can be set to the spec using the special " -"value :c:data:`Py_TP_USE_SPEC`:" -msgstr "" - -#: c-api/type.rst:730 -msgid "It can also be set to an arbitrary pointer, but you must ensure that:" -msgstr "" - -#: c-api/type.rst:732 -msgid "" -"The pointer outlives the class, so it's not reused for something else while " -"the class exists." -msgstr "" - -#: c-api/type.rst:734 -msgid "" -"It \"belongs\" to the extension module where the class lives, so it will not " -"clash with other extensions." -msgstr "" - -#: c-api/type.rst:737 -msgid "" -"Use :c:func:`PyType_GetBaseByToken` to check if a class's superclass has a " -"given token -- that is, check whether the memory layout is compatible." -msgstr "" - -#: c-api/type.rst:740 -msgid "" -"To get the token for a given class (without considering superclasses), " -"use :c:func:`PyType_GetSlot` with ``Py_tp_token``." -msgstr "" - -#: c-api/type.rst:749 -msgid "" -"Used as a value with :c:data:`Py_tp_token` to set the token to the " -"class's :c:type:`PyType_Spec`. May only be used for classes defined " -"using :c:type:`!PyType_Spec`." -msgstr "" - -#: c-api/type.rst:753 -msgid "Expands to ``NULL``." -msgstr "" - -#: c-api/type.rst:759 -msgid "" -":c:member:`Slot ID ` that works " -"like :c:macro:`Py_slot_subslots`, except it specifies an array " -"of :c:type:`PyType_Slot` structures." -msgstr "" - -#: c-api/type.rst:767 -msgid "Soft-deprecated API" -msgstr "" - -#: c-api/type.rst:769 -msgid "" -"The following functions are :term:`soft deprecated`. They will continue to " -"work, but new features will be added as slots " -"for :c:func:`PyType_FromSlots`, not as arguments to new ``PyType_From*`` " -"functions." -msgstr "" - -#: c-api/type.rst:775 -msgid "" -"Create and return a :ref:`heap type ` from the *spec* " -"(see :c:macro:`Py_TPFLAGS_HEAPTYPE`)." -msgstr "" - -#: c-api/type.rst:778 -msgid "" -"A non-``NULL`` *metaclass* argument corresponds to " -"the :c:macro:`Py_tp_metaclass` slot." -msgstr "" - -#: c-api/type.rst:781 -msgid "" -"A non-``NULL`` *bases* argument corresponds to the :c:data:`Py_tp_bases` " -"slot, and takes precedence over :c:data:`Py_tp_bases` " -"and :c:data:`Py_tp_bases` slots." -msgstr "" - -#: c-api/type.rst:785 -msgid "" -"A non-``NULL`` *module* argument corresponds to the :c:macro:`Py_tp_module` " -"slot." -msgstr "" - -#: c-api/type.rst:790 -msgid "" -"Note that this function does *not* fully match the behavior of " -"calling :py:class:`type() ` or using the :keyword:`class` statement. " -"See the note in :c:func:`PyType_FromSlots` documentation for details." -msgstr "" - -#: c-api/type.rst:829 c-api/type.rst:880 -msgid "Prefer :c:func:`PyType_FromSlots` in new code." -msgstr "" - -#: c-api/type.rst:803 -msgid "Equivalent to ``PyType_FromMetaclass(NULL, module, spec, bases)``." -msgstr "" - -#: c-api/type.rst:809 -msgid "" -"The function now accepts a single class as the *bases* argument and ``NULL`` " -"as the ``tp_doc`` slot." -msgstr "" - -#: c-api/type.rst:840 -msgid "" -"The function now finds and uses a metaclass corresponding to the provided " -"base classes. Previously, only :class:`type` instances were returned." -msgstr "" - -#: c-api/type.rst:843 c-api/type.rst:868 -msgid "" -"The :c:member:`~PyTypeObject.tp_new` of the metaclass is *ignored*. which " -"may result in incomplete initialization. Creating classes whose metaclass " -"overrides :c:member:`~PyTypeObject.tp_new` is deprecated." -msgstr "" - -#: c-api/type.rst:850 c-api/type.rst:875 -msgid "" -"Creating classes whose metaclass overrides :c:member:`~PyTypeObject.tp_new` " -"is no longer allowed." -msgstr "" - -#: c-api/type.rst:834 -msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, bases)``." -msgstr "" - -#: c-api/type.rst:860 -msgid "Equivalent to ``PyType_FromMetaclass(NULL, NULL, spec, NULL)``." -msgstr "" - -#: c-api/type.rst:864 -msgid "" -"The function now finds and uses a metaclass corresponding to the base " -"classes provided in *Py_tp_base[s]* slots. Previously, only :class:`type` " -"instances were returned." -msgstr "" - -#: c-api/type.rst:893 -msgid "" -"Structure defining a type's behavior, used for soft-deprecated functions " -"like :c:func:`PyType_FromMetaclass`." -msgstr "" - -#: c-api/type.rst:896 -msgid "" -"This structure contains several members that can instead be specified " -"as :ref:`slots ` for :c:func:`PyType_FromSlots`, and " -"an array of slot entries with a simpler structure." -msgstr "" - -#: c-api/type.rst:902 -msgid "Corresponds to :c:macro:`Py_tp_name`." -msgstr "" - -#: c-api/type.rst:906 -msgid "If positive, corresponds to :c:macro:`Py_tp_basicsize`." -msgstr "" - -#: c-api/type.rst:908 -msgid "" -"If negative, corresponds to :c:macro:`Py_tp_extra_basicsize` set to the " -"absolute value." -msgstr "" - -#: c-api/type.rst:913 -msgid "Previously, this field could not be negative." -msgstr "" - -#: c-api/type.rst:917 -msgid "Corresponds to :c:macro:`Py_tp_itemsize`." -msgstr "" - -#: c-api/type.rst:921 -msgid "Corresponds to :c:macro:`Py_tp_flags`." -msgstr "" - -#: c-api/type.rst:925 -msgid "Array of :c:type:`PyType_Slot` (not :c:type:`PySlot`) structures." -msgstr "" - -#: c-api/type.rst:927 -msgid "" -"Terminated by the special slot value ``{0, NULL}``. Each slot ID should be " -"specified at most once." -msgstr "" - -#: c-api/type.rst:940 -msgid "" -"Structure defining optional functionality of a type, used for soft-" -"deprecated functions like :c:func:`PyType_FromMetaclass`." -msgstr "" - -#: c-api/type.rst:943 -msgid "" -"Note that a :c:type:`!PyType_Slot` array may be included in a :c:type:`!" -"PySlot` array using :c:macro:`Py_tp_slots`, and vice versa " -"using :c:macro:`Py_slot_subslots`." -msgstr "" - -#: c-api/type.rst:947 -msgid "" -"Each :c:type:`!PyType_Slot` structure ``tpslot`` is interpreted as the " -"following :c:type:`PySlot` structure::" -msgstr "" - -#: c-api/type.rst:956 -msgid "" -"where ``sub_static`` is ``PySlot_STATIC`` if the slot requires the flag " -"(such as for :c:macro:`Py_tp_methods`), or if this flag is present on the " -"\"parent\" :c:macro:`!Py_tp_slots` slot (if any)." -msgstr "" - -#: c-api/type.rst:962 -msgid "Corresponds to :c:member:`PySlot.sl_id`." -msgstr "" - -#: c-api/type.rst:966 -msgid "Corresponds to :c:member:`PySlot.sl_ptr`." -msgstr "" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "type" -#~ msgstr "type" diff --git a/c-api/typehints.po b/c-api/typehints.po deleted file mode 100644 index b70ae21397..0000000000 --- a/c-api/typehints.po +++ /dev/null @@ -1,55 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/typehints.rst:6 -msgid "Objects for Type Hinting" -msgstr "" - -#: c-api/typehints.rst:8 -msgid "" -"Various built-in types for type hinting are provided. Currently, two types " -"exist -- :ref:`GenericAlias ` and :ref:`Union `. Only ``GenericAlias`` is exposed to C." -msgstr "" - -#: c-api/typehints.rst:14 -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: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 type. The ``GenericAlias``\\ 's ``__parameters__`` " -"attribute is constructed lazily from ``__args__``. On failure, an exception " -"is raised and ``NULL`` is returned." -msgstr "" - -#: c-api/typehints.rst:28 -msgid "Here's an example of how to make an extension type generic::" -msgstr "" - -#: c-api/typehints.rst:38 -msgid "The data model method :meth:`~object.__class_getitem__`." -msgstr "" - -#: c-api/typehints.rst:44 -msgid "" -"The C type of the object returned by :c:func:`Py_GenericAlias`. Equivalent " -"to :class:`types.GenericAlias` in Python." -msgstr "" diff --git a/c-api/typeobj.po b/c-api/typeobj.po deleted file mode 100644 index 74639ba913..0000000000 --- a/c-api/typeobj.po +++ /dev/null @@ -1,4046 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/typeobj.rst:6 -#, fuzzy -msgid "Type Object Structures" -msgstr "Objets type" - -#: c-api/typeobj.rst:8 -msgid "" -"Perhaps one of the most important structures of the Python object system is " -"the structure that defines a new type: the :c:type:`PyTypeObject` " -"structure. Type objects can be handled using any of the ``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 -msgid "" -"Type objects are fairly large compared to most of the standard types. The " -"reason for the size is that each type object stores a large number of " -"values, mostly C function pointers, each of which implements a small part of " -"the type's functionality. The fields of the type object are examined in " -"detail in this section. The fields will be described in the order in which " -"they occur in the structure." -msgstr "" - -#: c-api/typeobj.rst:23 -msgid "" -"In addition to the following quick reference, the :ref:`typedef-examples` " -"section provides at-a-glance insight into the meaning and use " -"of :c:type:`PyTypeObject`." -msgstr "" - -#: c-api/typeobj.rst:29 -msgid "Quick Reference" -msgstr "" - -#: c-api/typeobj.rst:34 -msgid "\"tp slots\"" -msgstr "" - -#: c-api/typeobj.rst:40 -msgid "PyTypeObject Slot [#slots]_" -msgstr "" - -#: c-api/typeobj.rst:201 -msgid ":ref:`Type `" -msgstr "" - -#: c-api/typeobj.rst:40 -msgid "special methods/attrs" -msgstr "" - -#: c-api/typeobj.rst:40 -msgid "Info [#cols]_" -msgstr "" - -#: c-api/typeobj.rst:42 -msgid "O" -msgstr "O" - -#: c-api/typeobj.rst:42 -msgid "T" -msgstr "T" - -#: c-api/typeobj.rst:42 -msgid "D" -msgstr "D" - -#: c-api/typeobj.rst:42 -msgid "I" -msgstr "" - -#: c-api/typeobj.rst:44 -msgid " :c:member:`~PyTypeObject.tp_name`" -msgstr "" - -#: c-api/typeobj.rst:86 c-api/typeobj.rst:377 -msgid "const char *" -msgstr "" - -#: c-api/typeobj.rst:44 -msgid "__name__" -msgstr "__name__" - -#: c-api/typeobj.rst:46 c-api/typeobj.rst:50 c-api/typeobj.rst:62 -#: c-api/typeobj.rst:72 c-api/typeobj.rst:76 c-api/typeobj.rst:84 -#: c-api/typeobj.rst:88 c-api/typeobj.rst:92 c-api/typeobj.rst:101 -#: c-api/typeobj.rst:105 c-api/typeobj.rst:109 c-api/typeobj.rst:115 -#: c-api/typeobj.rst:120 c-api/typeobj.rst:124 c-api/typeobj.rst:128 -#: c-api/typeobj.rst:146 -msgid "X" -msgstr "" - -#: c-api/typeobj.rst:46 -msgid ":c:member:`~PyTypeObject.tp_basicsize`" -msgstr "" - -#: c-api/typeobj.rst:48 c-api/typeobj.rst:99 c-api/typeobj.rst:343 -#: c-api/typeobj.rst:448 c-api/typeobj.rst:453 -msgid ":c:type:`Py_ssize_t`" -msgstr "" - -#: c-api/typeobj.rst:48 -msgid ":c:member:`~PyTypeObject.tp_itemsize`" -msgstr "" - -#: c-api/typeobj.rst:50 -msgid ":c:member:`~PyTypeObject.tp_dealloc`" -msgstr "" - -#: c-api/typeobj.rst:142 c-api/typeobj.rst:347 -msgid ":c:type:`destructor`" -msgstr "" - -#: c-api/typeobj.rst:52 -msgid ":c:member:`~PyTypeObject.tp_vectorcall_offset`" -msgstr "" - -#: c-api/typeobj.rst:54 -msgid "(:c:member:`~PyTypeObject.tp_getattr`)" -msgstr "" - -#: c-api/typeobj.rst:371 -msgid ":c:type:`getattrfunc`" -msgstr "" - -#: c-api/typeobj.rst:76 -msgid "__getattribute__, __getattr__" -msgstr "" - -#: c-api/typeobj.rst:57 c-api/typeobj.rst:76 c-api/typeobj.rst:88 -#: c-api/typeobj.rst:92 -msgid "G" -msgstr "" - -#: c-api/typeobj.rst:57 -msgid "(:c:member:`~PyTypeObject.tp_setattr`)" -msgstr "" - -#: c-api/typeobj.rst:376 -msgid ":c:type:`setattrfunc`" -msgstr "" - -#: c-api/typeobj.rst:79 -msgid "__setattr__, __delattr__" -msgstr "" - -#: c-api/typeobj.rst:60 -msgid ":c:member:`~PyTypeObject.tp_as_async`" -msgstr "" - -#: c-api/typeobj.rst:60 -msgid ":c:type:`PyAsyncMethods` *" -msgstr "" - -#: c-api/typeobj.rst:64 c-api/typeobj.rst:68 c-api/typeobj.rst:82 -msgid ":ref:`sub-slots`" -msgstr ":ref:`sub-slots`" - -#: c-api/typeobj.rst:64 c-api/typeobj.rst:68 c-api/typeobj.rst:82 -msgid "%" -msgstr "%" - -#: c-api/typeobj.rst:62 -msgid ":c:member:`~PyTypeObject.tp_repr`" -msgstr "" - -#: c-api/typeobj.rst:74 c-api/typeobj.rst:369 -msgid ":c:type:`reprfunc`" -msgstr "" - -#: c-api/typeobj.rst:62 -msgid "__repr__" -msgstr "" - -#: c-api/typeobj.rst:64 -msgid ":c:member:`~PyTypeObject.tp_as_number`" -msgstr "" - -#: c-api/typeobj.rst:64 -msgid ":c:type:`PyNumberMethods` *" -msgstr "" - -#: c-api/typeobj.rst:66 -msgid ":c:member:`~PyTypeObject.tp_as_sequence`" -msgstr "" - -#: c-api/typeobj.rst:66 -msgid ":c:type:`PySequenceMethods` *" -msgstr "" - -#: c-api/typeobj.rst:68 -msgid ":c:member:`~PyTypeObject.tp_as_mapping`" -msgstr "" - -#: c-api/typeobj.rst:68 -msgid ":c:type:`PyMappingMethods` *" -msgstr "" - -#: c-api/typeobj.rst:70 -msgid ":c:member:`~PyTypeObject.tp_hash`" -msgstr "" - -#: c-api/typeobj.rst:405 -msgid ":c:type:`hashfunc`" -msgstr "" - -#: c-api/typeobj.rst:70 -msgid "__hash__" -msgstr "" - -#: c-api/typeobj.rst:72 -msgid ":c:member:`~PyTypeObject.tp_call`" -msgstr "" - -#: c-api/typeobj.rst:237 c-api/typeobj.rst:441 -msgid ":c:type:`ternaryfunc`" -msgstr "" - -#: c-api/typeobj.rst:72 -msgid "__call__" -msgstr "" - -#: c-api/typeobj.rst:74 -msgid ":c:member:`~PyTypeObject.tp_str`" -msgstr "" - -#: c-api/typeobj.rst:74 -msgid "__str__" -msgstr "" - -#: c-api/typeobj.rst:76 -msgid ":c:member:`~PyTypeObject.tp_getattro`" -msgstr "" - -#: c-api/typeobj.rst:382 -msgid ":c:type:`getattrofunc`" -msgstr "" - -#: c-api/typeobj.rst:79 -msgid ":c:member:`~PyTypeObject.tp_setattro`" -msgstr "" - -#: c-api/typeobj.rst:387 -msgid ":c:type:`setattrofunc`" -msgstr "" - -#: c-api/typeobj.rst:82 -msgid ":c:member:`~PyTypeObject.tp_as_buffer`" -msgstr "" - -#: c-api/typeobj.rst:82 -msgid ":c:type:`PyBufferProcs` *" -msgstr "" - -#: c-api/typeobj.rst:84 -msgid ":c:member:`~PyTypeObject.tp_flags`" -msgstr "" - -#: c-api/typeobj.rst:84 -msgid "unsigned long" -msgstr "``unsigned long``" - -#: c-api/typeobj.rst:99 c-api/typeobj.rst:120 c-api/typeobj.rst:126 -#: c-api/typeobj.rst:128 -msgid "?" -msgstr "" - -#: c-api/typeobj.rst:86 -msgid ":c:member:`~PyTypeObject.tp_doc`" -msgstr "" - -#: c-api/typeobj.rst:86 -msgid "__doc__" -msgstr "__doc__" - -#: c-api/typeobj.rst:88 -msgid ":c:member:`~PyTypeObject.tp_traverse`" -msgstr "" - -#: c-api/typeobj.rst:351 -msgid ":c:type:`traverseproc`" -msgstr "" - -#: c-api/typeobj.rst:90 -msgid ":c:member:`~PyTypeObject.tp_clear`" -msgstr "" - -#: c-api/typeobj.rst:130 c-api/typeobj.rst:430 -msgid ":c:type:`inquiry`" -msgstr "" - -#: c-api/typeobj.rst:92 -msgid ":c:member:`~PyTypeObject.tp_richcompare`" -msgstr "" - -#: c-api/typeobj.rst:407 -msgid ":c:type:`richcmpfunc`" -msgstr "" - -#: c-api/typeobj.rst:92 -msgid "__lt__, __le__, __eq__, __ne__, __gt__, __ge__" -msgstr "" - -#: c-api/typeobj.rst:99 -msgid "(:c:member:`~PyTypeObject.tp_weaklistoffset`)" -msgstr "" - -#: c-api/typeobj.rst:101 -msgid ":c:member:`~PyTypeObject.tp_iter`" -msgstr "" - -#: c-api/typeobj.rst:413 -msgid ":c:type:`getiterfunc`" -msgstr "" - -#: c-api/typeobj.rst:101 -msgid "__iter__" -msgstr "" - -#: c-api/typeobj.rst:103 -msgid ":c:member:`~PyTypeObject.tp_iternext`" -msgstr "" - -#: c-api/typeobj.rst:415 -msgid ":c:type:`iternextfunc`" -msgstr "" - -#: c-api/typeobj.rst:103 -msgid "__next__" -msgstr "" - -#: c-api/typeobj.rst:105 -msgid ":c:member:`~PyTypeObject.tp_methods`" -msgstr "" - -#: c-api/typeobj.rst:105 -msgid ":c:type:`PyMethodDef` []" -msgstr "" - -#: c-api/typeobj.rst:107 -msgid ":c:member:`~PyTypeObject.tp_members`" -msgstr "" - -#: c-api/typeobj.rst:107 -msgid ":c:type:`PyMemberDef` []" -msgstr "" - -#: c-api/typeobj.rst:109 -msgid ":c:member:`~PyTypeObject.tp_getset`" -msgstr "" - -#: c-api/typeobj.rst:109 -msgid ":c:type:`PyGetSetDef` []" -msgstr "" - -#: c-api/typeobj.rst:111 -msgid ":c:member:`~PyTypeObject.tp_base`" -msgstr "" - -#: c-api/typeobj.rst:342 c-api/typeobj.rst:357 -msgid ":c:type:`PyTypeObject` *" -msgstr "" - -#: c-api/typeobj.rst:111 -msgid "__base__" -msgstr "" - -#: c-api/typeobj.rst:113 -msgid ":c:member:`~PyTypeObject.tp_dict`" -msgstr "" - -#: c-api/typeobj.rst:132 c-api/typeobj.rst:136 c-api/typeobj.rst:342 -#: c-api/typeobj.rst:351 c-api/typeobj.rst:358 c-api/typeobj.rst:363 -#: c-api/typeobj.rst:365 c-api/typeobj.rst:371 c-api/typeobj.rst:378 -#: c-api/typeobj.rst:383 c-api/typeobj.rst:388 c-api/typeobj.rst:393 -#: c-api/typeobj.rst:395 c-api/typeobj.rst:400 c-api/typeobj.rst:405 -#: c-api/typeobj.rst:408 c-api/typeobj.rst:415 c-api/typeobj.rst:419 -#: c-api/typeobj.rst:430 c-api/typeobj.rst:436 c-api/typeobj.rst:441 -#: c-api/typeobj.rst:443 c-api/typeobj.rst:452 c-api/typeobj.rst:458 -#: c-api/typeobj.rst:463 c-api/typeobj.rst:465 -msgid ":c:type:`PyObject` *" -msgstr "" - -#: c-api/typeobj.rst:113 -msgid "__dict__" -msgstr "" - -#: c-api/typeobj.rst:115 -msgid ":c:member:`~PyTypeObject.tp_descr_get`" -msgstr "" - -#: c-api/typeobj.rst:393 -msgid ":c:type:`descrgetfunc`" -msgstr "" - -#: c-api/typeobj.rst:115 -msgid "__get__" -msgstr "" - -#: c-api/typeobj.rst:117 -msgid ":c:member:`~PyTypeObject.tp_descr_set`" -msgstr "" - -#: c-api/typeobj.rst:399 -msgid ":c:type:`descrsetfunc`" -msgstr "" - -#: c-api/typeobj.rst:117 -msgid "__set__, __delete__" -msgstr "" - -#: c-api/typeobj.rst:120 -msgid "(:c:member:`~PyTypeObject.tp_dictoffset`)" -msgstr "" - -#: c-api/typeobj.rst:122 -msgid ":c:member:`~PyTypeObject.tp_init`" -msgstr "" - -#: c-api/typeobj.rst:363 -msgid ":c:type:`initproc`" -msgstr "" - -#: c-api/typeobj.rst:122 -msgid "__init__" -msgstr "" - -#: c-api/typeobj.rst:124 -msgid ":c:member:`~PyTypeObject.tp_alloc`" -msgstr "" - -#: c-api/typeobj.rst:342 -msgid ":c:type:`allocfunc`" -msgstr "" - -#: c-api/typeobj.rst:126 -msgid ":c:member:`~PyTypeObject.tp_new`" -msgstr "" - -#: c-api/typeobj.rst:357 -msgid ":c:type:`newfunc`" -msgstr "" - -#: c-api/typeobj.rst:126 -msgid "__new__" -msgstr "" - -#: c-api/typeobj.rst:128 -msgid ":c:member:`~PyTypeObject.tp_free`" -msgstr "" - -#: c-api/typeobj.rst:349 -msgid ":c:type:`freefunc`" -msgstr "" - -#: c-api/typeobj.rst:130 -msgid ":c:member:`~PyTypeObject.tp_is_gc`" -msgstr "" - -#: c-api/typeobj.rst:132 -msgid "<:c:member:`~PyTypeObject.tp_bases`>" -msgstr "" - -#: c-api/typeobj.rst:132 -msgid "__bases__" -msgstr "" - -#: c-api/typeobj.rst:134 -msgid "~" -msgstr "" - -#: c-api/typeobj.rst:134 -msgid "<:c:member:`~PyTypeObject.tp_mro`>" -msgstr "" - -#: c-api/typeobj.rst:134 -msgid "__mro__" -msgstr "" - -#: c-api/typeobj.rst:136 -msgid "[:c:member:`~PyTypeObject.tp_cache`]" -msgstr "" - -#: c-api/typeobj.rst:138 -msgid "[:c:member:`~PyTypeObject.tp_subclasses`]" -msgstr "" - -#: c-api/typeobj.rst:279 c-api/typeobj.rst:353 -msgid "void *" -msgstr "" - -#: c-api/typeobj.rst:138 -msgid "__subclasses__" -msgstr "" - -#: c-api/typeobj.rst:140 -msgid "[:c:member:`~PyTypeObject.tp_weaklist`]" -msgstr "" - -#: c-api/typeobj.rst:142 -msgid "(:c:member:`~PyTypeObject.tp_del`)" -msgstr "" - -#: c-api/typeobj.rst:144 -msgid "[:c:member:`~PyTypeObject.tp_version_tag`]" -msgstr "" - -#: c-api/typeobj.rst:144 -msgid "unsigned int" -msgstr "``unsigned int``" - -#: c-api/typeobj.rst:146 -msgid ":c:member:`~PyTypeObject.tp_finalize`" -msgstr "" - -#: c-api/typeobj.rst:146 -msgid "__del__" -msgstr "" - -#: c-api/typeobj.rst:148 -msgid ":c:member:`~PyTypeObject.tp_vectorcall`" -msgstr "" - -#: c-api/typeobj.rst:148 -msgid ":c:type:`vectorcallfunc`" -msgstr "" - -#: c-api/typeobj.rst:150 -msgid "[:c:member:`~PyTypeObject.tp_watched`]" -msgstr "" - -#: c-api/typeobj.rst:150 -#, fuzzy -msgid "unsigned char" -msgstr "``unsigned int``" - -#: c-api/typeobj.rst:155 -msgid "" -"**()**: A slot name in parentheses indicates it is (effectively) deprecated." -msgstr "" - -#: c-api/typeobj.rst:157 -msgid "" -"**<>**: Names in angle brackets should be initially set to ``NULL`` and " -"treated as read-only." -msgstr "" - -#: c-api/typeobj.rst:160 -msgid "**[]**: Names in square brackets are for internal use only." -msgstr "" - -#: c-api/typeobj.rst:162 -msgid "" -"**** (as a prefix) means the field is required (must be non-``NULL``)." -msgstr "" - -#: c-api/typeobj.rst:164 -msgid "Columns:" -msgstr "" - -#: c-api/typeobj.rst:166 -msgid "**\"O\"**: set on :c:data:`PyBaseObject_Type`" -msgstr "" - -#: c-api/typeobj.rst:168 -msgid "**\"T\"**: set on :c:data:`PyType_Type`" -msgstr "" - -#: c-api/typeobj.rst:170 -msgid "**\"D\"**: default (if slot is set to ``NULL``)" -msgstr "" - -#: c-api/typeobj.rst:180 -msgid "**\"I\"**: inheritance" -msgstr "" - -#: c-api/typeobj.rst:189 -msgid "" -"Note that some slots are effectively inherited through the normal attribute " -"lookup chain." -msgstr "" - -#: c-api/typeobj.rst:195 -msgid "sub-slots" -msgstr "" - -#: c-api/typeobj.rst:201 -msgid "Slot" -msgstr "" - -#: c-api/typeobj.rst:201 -#, fuzzy -msgid "special methods" -msgstr "méthode spéciale" - -#: c-api/typeobj.rst:204 -msgid ":c:member:`~PyAsyncMethods.am_await`" -msgstr "" - -#: c-api/typeobj.rst:206 c-api/typeobj.rst:242 c-api/typeobj.rst:246 -#: c-api/typeobj.rst:277 c-api/typeobj.rst:291 c-api/typeobj.rst:432 -msgid ":c:type:`unaryfunc`" -msgstr "" - -#: c-api/typeobj.rst:204 -msgid "__await__" -msgstr "" - -#: c-api/typeobj.rst:206 -msgid ":c:member:`~PyAsyncMethods.am_aiter`" -msgstr "" - -#: c-api/typeobj.rst:206 -msgid "__aiter__" -msgstr "" - -#: c-api/typeobj.rst:208 -msgid ":c:member:`~PyAsyncMethods.am_anext`" -msgstr "" - -#: c-api/typeobj.rst:208 -msgid "__anext__" -msgstr "" - -#: c-api/typeobj.rst:210 -msgid ":c:member:`~PyAsyncMethods.am_send`" -msgstr "" - -#: c-api/typeobj.rst:210 -msgid ":c:type:`sendfunc`" -msgstr "" - -#: c-api/typeobj.rst:214 -msgid ":c:member:`~PyNumberMethods.nb_add`" -msgstr "" - -#: c-api/typeobj.rst:217 c-api/typeobj.rst:222 c-api/typeobj.rst:227 -#: c-api/typeobj.rst:232 c-api/typeobj.rst:252 c-api/typeobj.rst:257 -#: c-api/typeobj.rst:262 c-api/typeobj.rst:267 c-api/typeobj.rst:272 -#: c-api/typeobj.rst:283 c-api/typeobj.rst:287 c-api/typeobj.rst:293 -#: c-api/typeobj.rst:302 c-api/typeobj.rst:322 c-api/typeobj.rst:436 -msgid ":c:type:`binaryfunc`" -msgstr "" - -#: c-api/typeobj.rst:214 -msgid "__add__ __radd__" -msgstr "" - -#: c-api/typeobj.rst:217 -msgid ":c:member:`~PyNumberMethods.nb_inplace_add`" -msgstr "" - -#: c-api/typeobj.rst:322 -msgid "__iadd__" -msgstr "" - -#: c-api/typeobj.rst:219 -msgid ":c:member:`~PyNumberMethods.nb_subtract`" -msgstr "" - -#: c-api/typeobj.rst:219 -msgid "__sub__ __rsub__" -msgstr "" - -#: c-api/typeobj.rst:222 -msgid ":c:member:`~PyNumberMethods.nb_inplace_subtract`" -msgstr "" - -#: c-api/typeobj.rst:222 -msgid "__isub__" -msgstr "" - -#: c-api/typeobj.rst:224 -msgid ":c:member:`~PyNumberMethods.nb_multiply`" -msgstr "" - -#: c-api/typeobj.rst:224 -msgid "__mul__ __rmul__" -msgstr "" - -#: c-api/typeobj.rst:227 -msgid ":c:member:`~PyNumberMethods.nb_inplace_multiply`" -msgstr "" - -#: c-api/typeobj.rst:324 -msgid "__imul__" -msgstr "" - -#: c-api/typeobj.rst:229 -msgid ":c:member:`~PyNumberMethods.nb_remainder`" -msgstr "" - -#: c-api/typeobj.rst:229 -msgid "__mod__ __rmod__" -msgstr "" - -#: c-api/typeobj.rst:232 -msgid ":c:member:`~PyNumberMethods.nb_inplace_remainder`" -msgstr "" - -#: c-api/typeobj.rst:232 -msgid "__imod__" -msgstr "" - -#: c-api/typeobj.rst:234 -msgid ":c:member:`~PyNumberMethods.nb_divmod`" -msgstr "" - -#: c-api/typeobj.rst:234 -msgid "__divmod__ __rdivmod__" -msgstr "" - -#: c-api/typeobj.rst:237 -msgid ":c:member:`~PyNumberMethods.nb_power`" -msgstr "" - -#: c-api/typeobj.rst:237 -msgid "__pow__ __rpow__" -msgstr "" - -#: c-api/typeobj.rst:240 -msgid ":c:member:`~PyNumberMethods.nb_inplace_power`" -msgstr "" - -#: c-api/typeobj.rst:240 -msgid "__ipow__" -msgstr "" - -#: c-api/typeobj.rst:242 -msgid ":c:member:`~PyNumberMethods.nb_negative`" -msgstr "" - -#: c-api/typeobj.rst:242 -msgid "__neg__" -msgstr "" - -#: c-api/typeobj.rst:244 -msgid ":c:member:`~PyNumberMethods.nb_positive`" -msgstr "" - -#: c-api/typeobj.rst:244 -msgid "__pos__" -msgstr "" - -#: c-api/typeobj.rst:246 -msgid ":c:member:`~PyNumberMethods.nb_absolute`" -msgstr "" - -#: c-api/typeobj.rst:246 -msgid "__abs__" -msgstr "" - -#: c-api/typeobj.rst:248 -msgid ":c:member:`~PyNumberMethods.nb_bool`" -msgstr "" - -#: c-api/typeobj.rst:248 -msgid "__bool__" -msgstr "" - -#: c-api/typeobj.rst:250 -msgid ":c:member:`~PyNumberMethods.nb_invert`" -msgstr "" - -#: c-api/typeobj.rst:250 -msgid "__invert__" -msgstr "" - -#: c-api/typeobj.rst:252 -msgid ":c:member:`~PyNumberMethods.nb_lshift`" -msgstr "" - -#: c-api/typeobj.rst:252 -msgid "__lshift__ __rlshift__" -msgstr "" - -#: c-api/typeobj.rst:255 -msgid ":c:member:`~PyNumberMethods.nb_inplace_lshift`" -msgstr "" - -#: c-api/typeobj.rst:255 -msgid "__ilshift__" -msgstr "" - -#: c-api/typeobj.rst:257 -msgid ":c:member:`~PyNumberMethods.nb_rshift`" -msgstr "" - -#: c-api/typeobj.rst:257 -msgid "__rshift__ __rrshift__" -msgstr "" - -#: c-api/typeobj.rst:260 -msgid ":c:member:`~PyNumberMethods.nb_inplace_rshift`" -msgstr "" - -#: c-api/typeobj.rst:260 -msgid "__irshift__" -msgstr "" - -#: c-api/typeobj.rst:262 -msgid ":c:member:`~PyNumberMethods.nb_and`" -msgstr "" - -#: c-api/typeobj.rst:262 -msgid "__and__ __rand__" -msgstr "" - -#: c-api/typeobj.rst:265 -msgid ":c:member:`~PyNumberMethods.nb_inplace_and`" -msgstr "" - -#: c-api/typeobj.rst:265 -msgid "__iand__" -msgstr "" - -#: c-api/typeobj.rst:267 -msgid ":c:member:`~PyNumberMethods.nb_xor`" -msgstr "" - -#: c-api/typeobj.rst:267 -msgid "__xor__ __rxor__" -msgstr "" - -#: c-api/typeobj.rst:270 -msgid ":c:member:`~PyNumberMethods.nb_inplace_xor`" -msgstr "" - -#: c-api/typeobj.rst:270 -msgid "__ixor__" -msgstr "" - -#: c-api/typeobj.rst:272 -msgid ":c:member:`~PyNumberMethods.nb_or`" -msgstr "" - -#: c-api/typeobj.rst:272 -msgid "__or__ __ror__" -msgstr "" - -#: c-api/typeobj.rst:275 -msgid ":c:member:`~PyNumberMethods.nb_inplace_or`" -msgstr "" - -#: c-api/typeobj.rst:275 -msgid "__ior__" -msgstr "" - -#: c-api/typeobj.rst:277 -msgid ":c:member:`~PyNumberMethods.nb_int`" -msgstr "" - -#: c-api/typeobj.rst:277 -msgid "__int__" -msgstr "" - -#: c-api/typeobj.rst:279 -msgid ":c:member:`~PyNumberMethods.nb_reserved`" -msgstr "" - -#: c-api/typeobj.rst:281 -msgid ":c:member:`~PyNumberMethods.nb_float`" -msgstr "" - -#: c-api/typeobj.rst:281 -msgid "__float__" -msgstr "" - -#: c-api/typeobj.rst:283 -msgid ":c:member:`~PyNumberMethods.nb_floor_divide`" -msgstr "" - -#: c-api/typeobj.rst:283 -msgid "__floordiv__" -msgstr "" - -#: c-api/typeobj.rst:285 -msgid ":c:member:`~PyNumberMethods.nb_inplace_floor_divide`" -msgstr "" - -#: c-api/typeobj.rst:285 -msgid "__ifloordiv__" -msgstr "" - -#: c-api/typeobj.rst:287 -msgid ":c:member:`~PyNumberMethods.nb_true_divide`" -msgstr "" - -#: c-api/typeobj.rst:287 -msgid "__truediv__" -msgstr "" - -#: c-api/typeobj.rst:289 -msgid ":c:member:`~PyNumberMethods.nb_inplace_true_divide`" -msgstr "" - -#: c-api/typeobj.rst:289 -msgid "__itruediv__" -msgstr "" - -#: c-api/typeobj.rst:291 -msgid ":c:member:`~PyNumberMethods.nb_index`" -msgstr "" - -#: c-api/typeobj.rst:291 -msgid "__index__" -msgstr "" - -#: c-api/typeobj.rst:293 -msgid ":c:member:`~PyNumberMethods.nb_matrix_multiply`" -msgstr "" - -#: c-api/typeobj.rst:293 -msgid "__matmul__ __rmatmul__" -msgstr "" - -#: c-api/typeobj.rst:296 -msgid ":c:member:`~PyNumberMethods.nb_inplace_matrix_multiply`" -msgstr "" - -#: c-api/typeobj.rst:296 -msgid "__imatmul__" -msgstr "" - -#: c-api/typeobj.rst:300 -msgid ":c:member:`~PyMappingMethods.mp_length`" -msgstr "" - -#: c-api/typeobj.rst:309 c-api/typeobj.rst:417 -msgid ":c:type:`lenfunc`" -msgstr "" - -#: c-api/typeobj.rst:309 -msgid "__len__" -msgstr "" - -#: c-api/typeobj.rst:302 -msgid ":c:member:`~PyMappingMethods.mp_subscript`" -msgstr "" - -#: c-api/typeobj.rst:315 -msgid "__getitem__" -msgstr "" - -#: c-api/typeobj.rst:304 -msgid ":c:member:`~PyMappingMethods.mp_ass_subscript`" -msgstr "" - -#: c-api/typeobj.rst:463 -msgid ":c:type:`objobjargproc`" -msgstr "" - -#: c-api/typeobj.rst:304 -msgid "__setitem__, __delitem__" -msgstr "" - -#: c-api/typeobj.rst:309 -msgid ":c:member:`~PySequenceMethods.sq_length`" -msgstr "" - -#: c-api/typeobj.rst:311 -msgid ":c:member:`~PySequenceMethods.sq_concat`" -msgstr "" - -#: c-api/typeobj.rst:311 -msgid "__add__" -msgstr "" - -#: c-api/typeobj.rst:313 -msgid ":c:member:`~PySequenceMethods.sq_repeat`" -msgstr "" - -#: c-api/typeobj.rst:315 c-api/typeobj.rst:447 -msgid ":c:type:`ssizeargfunc`" -msgstr "" - -#: c-api/typeobj.rst:313 -msgid "__mul__" -msgstr "" - -#: c-api/typeobj.rst:315 -msgid ":c:member:`~PySequenceMethods.sq_item`" -msgstr "" - -#: c-api/typeobj.rst:317 -msgid ":c:member:`~PySequenceMethods.sq_ass_item`" -msgstr "" - -#: c-api/typeobj.rst:452 -msgid ":c:type:`ssizeobjargproc`" -msgstr "" - -#: c-api/typeobj.rst:317 -msgid "__setitem__ __delitem__" -msgstr "" - -#: c-api/typeobj.rst:320 -msgid ":c:member:`~PySequenceMethods.sq_contains`" -msgstr "" - -#: c-api/typeobj.rst:458 -msgid ":c:type:`objobjproc`" -msgstr "" - -#: c-api/typeobj.rst:320 -msgid "__contains__" -msgstr "" - -#: c-api/typeobj.rst:322 -msgid ":c:member:`~PySequenceMethods.sq_inplace_concat`" -msgstr "" - -#: c-api/typeobj.rst:324 -msgid ":c:member:`~PySequenceMethods.sq_inplace_repeat`" -msgstr "" - -#: c-api/typeobj.rst:328 -msgid ":c:member:`~PyBufferProcs.bf_getbuffer`" -msgstr "" - -#: c-api/typeobj.rst:328 -msgid ":c:func:`getbufferproc`" -msgstr "" - -#: c-api/typeobj.rst:328 -msgid "__buffer__" -msgstr "" - -#: c-api/typeobj.rst:330 -msgid ":c:member:`~PyBufferProcs.bf_releasebuffer`" -msgstr "" - -#: c-api/typeobj.rst:330 -msgid ":c:func:`releasebufferproc`" -msgstr "" - -#: c-api/typeobj.rst:330 -msgid "__release_ buffer\\__" -msgstr "" - -#: c-api/typeobj.rst:337 -msgid "slot typedefs" -msgstr "" - -#: c-api/typeobj.rst:340 -msgid "typedef" -msgstr "" - -#: c-api/typeobj.rst:340 -msgid "Parameter Types" -msgstr "" - -#: c-api/typeobj.rst:340 -msgid "Return Type" -msgstr "" - -#: c-api/typeobj.rst:349 c-api/typeobj.rst:425 -msgid "void" -msgstr "" - -#: c-api/typeobj.rst:352 -msgid ":c:type:`visitproc`" -msgstr "" - -#: c-api/typeobj.rst:363 c-api/typeobj.rst:387 c-api/typeobj.rst:409 -#: c-api/typeobj.rst:421 c-api/typeobj.rst:452 c-api/typeobj.rst:463 -msgid "int" -msgstr "*int*" - -#: c-api/typeobj.rst:405 -msgid "Py_hash_t" -msgstr "" - -#: c-api/typeobj.rst:419 -msgid ":c:type:`getbufferproc`" -msgstr "" - -#: c-api/typeobj.rst:426 -msgid ":c:type:`Py_buffer` *" -msgstr "" - -#: c-api/typeobj.rst:425 -msgid ":c:type:`releasebufferproc`" -msgstr "" - -#: c-api/typeobj.rst:470 -msgid "See :ref:`slot-typedefs` below for more detail." -msgstr "" - -#: c-api/typeobj.rst:474 -msgid "PyTypeObject Definition" -msgstr "" - -#: c-api/typeobj.rst:476 -msgid "" -"The structure definition for :c:type:`PyTypeObject` can be found " -"in :file:`Include/cpython/object.h`. For convenience of reference, this " -"repeats the definition found there:" -msgstr "" - -#: c-api/typeobj.rst:486 -#, fuzzy -msgid "PyObject Slots" -msgstr "Objets type" - -#: c-api/typeobj.rst:488 -msgid "" -"The type object structure extends the :c:type:`PyVarObject` structure. " -"The :c:member:`~PyVarObject.ob_size` field is used for dynamic types " -"(created by :c: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 :c:member:`~PyVarObject.ob_size` field." -msgstr "" - -#: c-api/typeobj.rst:495 -msgid ":c:member:`PyObject.ob_refcnt`" -msgstr "" - -#: c-api/typeobj.rst:497 -msgid "" -"The type object's reference count is initialized to ``1`` by the " -"``PyObject_HEAD_INIT`` macro. Note that for :ref:`statically allocated type " -"objects `, the type's instances (objects " -"whose :c:member:`~PyObject.ob_type` points back to the type) do *not* count " -"as references. But for :ref:`dynamically allocated type objects `, the instances *do* count as references." -msgstr "" - -#: c-api/typeobj.rst:527 c-api/typeobj.rst:590 c-api/typeobj.rst:816 -#: c-api/typeobj.rst:880 c-api/typeobj.rst:917 c-api/typeobj.rst:960 -#: c-api/typeobj.rst:984 c-api/typeobj.rst:1043 c-api/typeobj.rst:1088 -#: c-api/typeobj.rst:1135 c-api/typeobj.rst:1194 c-api/typeobj.rst:1215 -#: c-api/typeobj.rst:1239 c-api/typeobj.rst:1280 c-api/typeobj.rst:1313 -#: c-api/typeobj.rst:1395 c-api/typeobj.rst:1440 c-api/typeobj.rst:1492 -#: c-api/typeobj.rst:1542 c-api/typeobj.rst:1582 c-api/typeobj.rst:1795 -#: c-api/typeobj.rst:1858 c-api/typeobj.rst:1898 c-api/typeobj.rst:1931 -#: c-api/typeobj.rst:1995 c-api/typeobj.rst:2043 c-api/typeobj.rst:2118 -#: c-api/typeobj.rst:2179 c-api/typeobj.rst:2244 c-api/typeobj.rst:2287 -#: c-api/typeobj.rst:2314 c-api/typeobj.rst:2347 c-api/typeobj.rst:2551 -msgid "**Inheritance:**" -msgstr "" - -#: c-api/typeobj.rst:545 c-api/typeobj.rst:592 -msgid "This field is not inherited by subtypes." -msgstr "" - -#: c-api/typeobj.rst:509 -msgid ":c:member:`PyObject.ob_type`" -msgstr "" - -#: c-api/typeobj.rst:511 -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 " -"normally be ``&PyType_Type``. However, for dynamically loadable extension " -"modules that must be usable on Windows (at least), the compiler complains " -"that this is not a valid initializer. Therefore, the convention is to pass " -"``NULL`` to the ``PyObject_HEAD_INIT`` macro and to initialize this field " -"explicitly at the start of the module's initialization function, before " -"doing anything else. This is typically done like this::" -msgstr "" - -#: c-api/typeobj.rst:522 -msgid "" -"This should be done before any instances of the type are " -"created. :c:func:`PyType_Ready` checks if :c:member:`~PyObject.ob_type` is " -"``NULL``, and if so, initializes it to the :c:member:`~PyObject.ob_type` " -"field of the base class. :c:func:`PyType_Ready` will not change this field " -"if it is non-zero." -msgstr "" - -#: c-api/typeobj.rst:818 c-api/typeobj.rst:1045 c-api/typeobj.rst:1860 -#: c-api/typeobj.rst:2025 c-api/typeobj.rst:2120 c-api/typeobj.rst:2493 -msgid "This field is inherited by subtypes." -msgstr "" - -#: c-api/typeobj.rst:533 -msgid "PyVarObject Slots" -msgstr "" - -#: c-api/typeobj.rst:535 -msgid ":c:member:`PyVarObject.ob_size`" -msgstr "" - -#: c-api/typeobj.rst:537 -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:541 -msgid "This field should be accessed using the :c:func:`Py_SIZE()` macro." -msgstr "" - -#: c-api/typeobj.rst:549 -#, fuzzy -msgid "PyTypeObject Slots" -msgstr "Objets type" - -#: c-api/typeobj.rst:551 -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 " -"\"Default\" section. (Note that many fields set " -"on :c:data:`PyBaseObject_Type` and :c:data:`PyType_Type` effectively act as " -"defaults.)" -msgstr "" - -#: c-api/typeobj.rst:558 -msgid "" -"See :c:macro:`Py_tp_name` for the corresponding :c:member:`Slot ID " -"`." -msgstr "" - -#: c-api/typeobj.rst:561 -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 " -"module name, followed by a dot, followed by the type name; for built-in " -"types, it should be just the type name. If the module is a submodule of a " -"package, the full package name is part of the full module name. For " -"example, a type named :class:`!T` defined in module :mod:`!M` in " -"subpackage :mod:`!Q` in package :mod:`!P` should have " -"the :c:member:`~PyTypeObject.tp_name` initializer ``\"P.Q.M.T\"``." -msgstr "" - -#: c-api/typeobj.rst:569 -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:574 -msgid "" -"For :ref:`statically allocated type objects `, the *tp_name* " -"field should contain a dot. Everything before the last dot is made " -"accessible as the :attr:`~type.__module__` attribute, and everything after " -"the last dot is made accessible as the :attr:`~type.__name__` attribute." -msgstr "" - -#: c-api/typeobj.rst:580 -msgid "" -"If no dot is present, the entire :c:member:`~PyTypeObject.tp_name` field is " -"made accessible as the :attr:`~type.__name__` attribute, and " -"the :attr:`~type.__module__` attribute is undefined (unless explicitly set " -"in the dictionary, as explained above). This means your type will be " -"impossible to pickle. Additionally, it will not be listed in module " -"documentations created with pydoc." -msgstr "" - -#: c-api/typeobj.rst:586 -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:598 -msgid "" -"These fields allow calculating the size in bytes of instances of the type." -msgstr "" - -#: c-api/typeobj.rst:600 -msgid "" -"See :c:macro:`Py_tp_basicsize`, :c:macro:`Py_tp_extra_basicsize` " -"and :c:macro:`Py_tp_itemsize` for the corresponding :c:member:`Slot IDs " -"`." -msgstr "" - -#: c-api/typeobj.rst:604 -msgid "" -"There are two kinds of types: types with fixed-length instances have a " -"zero :c:member:`!tp_itemsize` field, types with variable-length instances " -"have a non-zero :c:member:`!tp_itemsize` field. For a type with fixed-" -"length instances, all instances have the same size, given in :c:member:`!" -"tp_basicsize`. (Exceptions to this rule can be made " -"using :c:func:`PyUnstable_Object_GC_NewWithExtraData`.)" -msgstr "" - -#: c-api/typeobj.rst:611 -msgid "" -"For a type with variable-length instances, the instances must have " -"an :c:member:`~PyVarObject.ob_size` field, and the instance size " -"is :c:member:`!tp_basicsize` plus N times :c:member:`!tp_itemsize`, where N " -"is the \"length\" of the object." -msgstr "" - -#: c-api/typeobj.rst:616 -msgid "" -"Functions like :c:func:`PyObject_NewVar` will take the value of N as an " -"argument, and store in the instance's :c:member:`~PyVarObject.ob_size` " -"field. Note that the :c:member:`~PyVarObject.ob_size` field may later be " -"used for other purposes. For example, :py:type:`int` instances use the bits " -"of :c:member:`~PyVarObject.ob_size` in an implementation-defined way; the " -"underlying storage and its size should be accessed " -"using :c:func:`PyLong_Export`." -msgstr "" - -#: c-api/typeobj.rst:626 -msgid "" -"The :c:member:`~PyVarObject.ob_size` field should be accessed using " -"the :c:func:`Py_SIZE()` and :c:func:`Py_SET_SIZE()` macros." -msgstr "" - -#: c-api/typeobj.rst:629 -msgid "" -"Also, the presence of an :c:member:`~PyVarObject.ob_size` field in the " -"instance layout doesn't mean that the instance structure is variable-length. " -"For example, the :py:type:`list` type has fixed-length instances, yet those " -"instances have a :c:member:`~PyVarObject.ob_size` field. (As " -"with :py:type:`int`, avoid reading lists' :c:member:`!ob_size` directly. " -"Call :c:func:`PyList_Size` instead.)" -msgstr "" - -#: c-api/typeobj.rst:636 -msgid "" -"The :c:member:`!tp_basicsize` includes size needed for data of the " -"type's :c:member:`~PyTypeObject.tp_base`, plus any extra data needed by each " -"instance." -msgstr "" - -#: c-api/typeobj.rst:640 -msgid "" -"The correct way to set :c:member:`!tp_basicsize` is to use the ``sizeof`` " -"operator on the struct used to declare the instance layout. This struct must " -"include the struct used to declare the base type. In other " -"words, :c:member:`!tp_basicsize` must be greater than or equal to the " -"base's :c:member:`!tp_basicsize`." -msgstr "" - -#: c-api/typeobj.rst:646 -msgid "" -"Since every type is a subtype of :py:type:`object`, this struct must " -"include :c:type:`PyObject` or :c:type:`PyVarObject` (depending on " -"whether :c:member:`~PyVarObject.ob_size` should be included). These are " -"usually defined by the macro :c:macro:`PyObject_HEAD` " -"or :c:macro:`PyObject_VAR_HEAD`, respectively." -msgstr "" - -#: c-api/typeobj.rst:652 -msgid "" -"The basic size does not include the GC header size, as that header is not " -"part of :c:macro:`PyObject_HEAD`." -msgstr "" - -#: c-api/typeobj.rst:655 -msgid "" -"For cases where struct used to declare the base type is unknown, " -"see :c:member:`PyType_Spec.basicsize` and :c:func:`PyType_FromMetaclass`." -msgstr "" - -#: c-api/typeobj.rst:658 -msgid "Notes about alignment:" -msgstr "" - -#: c-api/typeobj.rst:660 -msgid "" -":c:member:`!tp_basicsize` must be a multiple of ``_Alignof(PyObject)``. When " -"using ``sizeof`` on a ``struct`` that includes :c:macro:`PyObject_HEAD`, as " -"recommended, the compiler ensures this. When not using a C ``struct``, or " -"when using compiler extensions like ``__attribute__((packed))``, it is up to " -"you." -msgstr "" - -#: c-api/typeobj.rst:665 -msgid "" -"If the variable items require a particular alignment, :c:member:`!" -"tp_basicsize` and :c:member:`!tp_itemsize` must each be a multiple of that " -"alignment. For example, if a type's variable part stores a ``double``, it is " -"your responsibility that both fields are a multiple of ``_Alignof(double)``." -msgstr "" - -#: c-api/typeobj.rst:674 -msgid "" -"These fields are inherited separately by subtypes. (That is, if the field is " -"set to zero, :c:func:`PyType_Ready` will copy the value from the base type, " -"indicating that the instances do not need additional storage.)" -msgstr "" - -#: c-api/typeobj.rst:679 -msgid "" -"If the base type has a non-zero :c:member:`~PyTypeObject.tp_itemsize`, it is " -"generally not safe to set :c:member:`~PyTypeObject.tp_itemsize` to a " -"different non-zero value in a subtype (though this depends on the " -"implementation of the base type)." -msgstr "" - -#: c-api/typeobj.rst:688 -msgid "" -"A pointer to the instance destructor function. The function signature is::" -msgstr "" - -#: c-api/typeobj.rst:692 -msgid "" -"The destructor function should remove all references which the instance owns " -"(e.g., call :c:func:`Py_CLEAR`), free all memory buffers owned by the " -"instance, and call the type's :c:member:`~PyTypeObject.tp_free` function to " -"free the object itself." -msgstr "" - -#: c-api/typeobj.rst:697 -msgid "" -"If you may call functions that may set the error indicator, you must " -"use :c:func:`PyErr_GetRaisedException` " -"and :c:func:`PyErr_SetRaisedException` to ensure you don't clobber a " -"preexisting error indicator (the deallocation could have occurred while " -"processing a different error):" -msgstr "" - -#: c-api/typeobj.rst:713 -msgid "" -"The dealloc handler itself must not raise an exception; if it hits an error " -"case it should call :c:func:`PyErr_FormatUnraisable` to log (and clear) an " -"unraisable exception." -msgstr "" - -#: c-api/typeobj.rst:717 -msgid "No guarantees are made about when an object is destroyed, except:" -msgstr "" - -#: c-api/typeobj.rst:719 -msgid "" -"Python will destroy an object immediately or some time after the final " -"reference to the object is deleted, unless its finalizer " -"(:c:member:`~PyTypeObject.tp_finalize`) subsequently resurrects the object." -msgstr "" - -#: c-api/typeobj.rst:723 -msgid "" -"An object will not be destroyed while it is being automatically finalized " -"(:c:member:`~PyTypeObject.tp_finalize`) or automatically cleared " -"(:c:member:`~PyTypeObject.tp_clear`)." -msgstr "" - -#: c-api/typeobj.rst:727 -msgid "" -"CPython currently destroys an object immediately from :c:func:`Py_DECREF` " -"when the new reference count is zero, but this may change in a future " -"version." -msgstr "" - -#: c-api/typeobj.rst:731 -msgid "" -"It is recommended to call :c:func:`PyObject_CallFinalizerFromDealloc` at the " -"beginning of :c:member:`!tp_dealloc` to guarantee that the object is always " -"finalized before destruction." -msgstr "" - -#: c-api/typeobj.rst:735 -msgid "" -"If the type supports garbage collection (the :c:macro:`Py_TPFLAGS_HAVE_GC` " -"flag is set), the destructor should call :c:func:`PyObject_GC_UnTrack` " -"before clearing any member fields." -msgstr "" - -#: c-api/typeobj.rst:739 -msgid "" -"It is permissible to call :c:member:`~PyTypeObject.tp_clear` " -"from :c:member:`!tp_dealloc` to reduce code duplication and to guarantee " -"that the object is always cleared before destruction. Beware " -"that :c:member:`!tp_clear` might have already been called." -msgstr "" - -#: c-api/typeobj.rst:744 -msgid "" -"If the type is heap allocated (:c:macro:`Py_TPFLAGS_HEAPTYPE`), the " -"deallocator should release the owned reference to its type object " -"(via :c:func:`Py_DECREF`) after calling the type deallocator. See the " -"example code below.::" -msgstr "" - -#: c-api/typeobj.rst:758 -msgid "" -":c:member:`!tp_dealloc` must leave the exception status unchanged. If it " -"needs to call something that might raise an exception, the exception state " -"must be backed up first and restored later (after logging any exceptions " -"with :c:func:`PyErr_WriteUnraisable`)." -msgstr "" - -#: c-api/typeobj.rst:763 -#, fuzzy -msgid "Example::" -msgstr "Exemples" - -#: c-api/typeobj.rst:804 -msgid "" -":c:member:`!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 :c:member:`!tp_dealloc` is called with an :term:`attached thread " -"state`. However, if the object being destroyed in turn destroys objects " -"from some other C library, care should be taken to ensure that destroying " -"those objects on the thread which called :c:member:`!tp_dealloc` will not " -"violate any assumptions of the library." -msgstr "" - -#: c-api/typeobj.rst:1739 c-api/typeobj.rst:2506 -msgid "" -":ref:`life-cycle` for details about how this slot relates to other slots." -msgstr "" - -#: c-api/typeobj.rst:827 -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:832 -msgid "" -"This field is only used if the flag :c:macro:`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:836 -msgid "" -"The *vectorcallfunc* pointer may be ``NULL``, in which case the instance " -"behaves as if :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` was not set: calling the " -"instance falls back to :c:member:`~PyTypeObject.tp_call`." -msgstr "" - -#: c-api/typeobj.rst:840 -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 *vectorcallfunc* function. This can be done by setting " -"*tp_call* to :c:func:`PyVectorcall_Call`." -msgstr "" - -#: c-api/typeobj.rst:847 -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:853 -msgid "" -"Before version 3.12, it was not recommended for :ref:`mutable heap types " -"` to implement the vectorcall protocol. When a user " -"sets :attr:`~object.__call__` in Python code, only *tp_call* is updated, " -"likely making it inconsistent with the vectorcall function. Since 3.12, " -"setting ``__call__`` will disable vectorcall optimization by clearing " -"the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag." -msgstr "" - -#: c-api/typeobj.rst:863 -msgid "" -"This field is always inherited. However, " -"the :c:macro:`Py_TPFLAGS_HAVE_VECTORCALL` flag is not always inherited. If " -"it's not set, then the subclass won't use :ref:`vectorcall `, " -"except when :c:func:`PyVectorcall_Call` is explicitly called." -msgstr "" - -#: c-api/typeobj.rst:874 -msgid "An optional pointer to the get-attribute-string function." -msgstr "" - -#: c-api/typeobj.rst:876 -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, " -"but taking a C string instead of a Python string object to give the " -"attribute name." -msgstr "" - -#: c-api/typeobj.rst:1090 -msgid "Group: :c:member:`~PyTypeObject.tp_getattr`, :c:member:`~PyTypeObject.tp_getattro`" -msgstr "" - -#: c-api/typeobj.rst:884 -msgid "" -"This field is inherited by subtypes together " -"with :c:member:`~PyTypeObject.tp_getattro`: a subtype inherits " -"both :c:member:`~PyTypeObject.tp_getattr` " -"and :c:member:`~PyTypeObject.tp_getattro` from its base type when the " -"subtype's :c:member:`~PyTypeObject.tp_getattr` " -"and :c:member:`~PyTypeObject.tp_getattro` are both ``NULL``." -msgstr "" - -#: c-api/typeobj.rst:1105 -msgid "" -"An optional pointer to the function for setting and deleting attributes." -msgstr "" - -#: c-api/typeobj.rst:895 -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, " -"but taking a C string instead of a Python string object to give the " -"attribute name." -msgstr "" - -#: c-api/typeobj.rst:1118 -msgid "Group: :c:member:`~PyTypeObject.tp_setattr`, :c:member:`~PyTypeObject.tp_setattro`" -msgstr "" - -#: c-api/typeobj.rst:903 -msgid "" -"This field is inherited by subtypes together " -"with :c:member:`~PyTypeObject.tp_setattro`: a subtype inherits " -"both :c:member:`~PyTypeObject.tp_setattr` " -"and :c:member:`~PyTypeObject.tp_setattro` from its base type when the " -"subtype's :c:member:`~PyTypeObject.tp_setattr` " -"and :c:member:`~PyTypeObject.tp_setattro` are both ``NULL``." -msgstr "" - -#: c-api/typeobj.rst:910 -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:914 -msgid "Formerly known as ``tp_compare`` and ``tp_reserved``." -msgstr "" - -#: c-api/typeobj.rst:919 -msgid "" -"The :c:member:`~PyTypeObject.tp_as_async` field is not inherited, but the " -"contained fields are inherited individually." -msgstr "" - -#: c-api/typeobj.rst:929 -msgid "" -"An optional pointer to a function that implements the built-in " -"function :func:`repr`." -msgstr "" - -#: c-api/typeobj.rst:932 -msgid "The signature is the same as for :c:func:`PyObject_Repr`::" -msgstr "" - -#: c-api/typeobj.rst:936 -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 " -"suitable environment, returns an object with the same value. If this is not " -"feasible, it should return a string starting with ``'<'`` and ending with " -"``'>'`` from which both the type and the value of the object can be deduced." -msgstr "" - -#: c-api/typeobj.rst:1028 c-api/typeobj.rst:1096 c-api/typeobj.rst:1169 -#: c-api/typeobj.rst:1838 c-api/typeobj.rst:2000 c-api/typeobj.rst:2122 -#: c-api/typeobj.rst:2185 c-api/typeobj.rst:2248 -msgid "**Default:**" -msgstr "" - -#: c-api/typeobj.rst:949 -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:956 -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:962 -msgid "" -"The :c:member:`~PyTypeObject.tp_as_number` field is not inherited, but the " -"contained fields are inherited individually." -msgstr "" - -#: c-api/typeobj.rst:968 -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:974 -msgid "" -"The :c:member:`~PyTypeObject.tp_as_sequence` field is not inherited, but the " -"contained fields are inherited individually." -msgstr "" - -#: c-api/typeobj.rst:980 -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:986 -msgid "" -"The :c:member:`~PyTypeObject.tp_as_mapping` field is not inherited, but the " -"contained fields are inherited individually." -msgstr "" - -#: c-api/typeobj.rst:996 -msgid "" -"An optional pointer to a function that implements the built-in " -"function :func:`hash`." -msgstr "" - -#: c-api/typeobj.rst:999 -msgid "The signature is the same as for :c:func:`PyObject_Hash`::" -msgstr "" - -#: c-api/typeobj.rst:1003 -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:1007 -msgid "" -"When this field is not set (*and* :c:member:`~PyTypeObject.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:1011 -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 " -"as the equivalent of ``__hash__ = None`` at the Python level, causing " -"``isinstance(o, collections.Hashable)`` to correctly return ``False``. Note " -"that the converse is also true - setting ``__hash__ = None`` on a class at " -"the Python level will result in the ``tp_hash`` slot being set " -"to :c:func:`PyObject_HashNotImplemented`." -msgstr "" - -#: c-api/typeobj.rst:1797 -msgid "Group: :c:member:`~PyTypeObject.tp_hash`, :c:member:`~PyTypeObject.tp_richcompare`" -msgstr "" - -#: c-api/typeobj.rst:1023 -msgid "" -"This field is inherited by subtypes together " -"with :c:member:`~PyTypeObject.tp_richcompare`: a subtype inherits both " -"of :c:member:`~PyTypeObject.tp_richcompare` " -"and :c:member:`~PyTypeObject.tp_hash`, when the " -"subtype's :c:member:`~PyTypeObject.tp_richcompare` " -"and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``." -msgstr "" - -#: c-api/typeobj.rst:1030 -msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericHash`." -msgstr "" - -#: c-api/typeobj.rst:1037 -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:1052 -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 the constructor for that type. This constructor " -"calls :c:func:`PyObject_Str` to do the actual work, " -"and :c:func:`PyObject_Str` will call this handler.)" -msgstr "" - -#: c-api/typeobj.rst:1057 -msgid "The signature is the same as for :c:func:`PyObject_Str`::" -msgstr "" - -#: c-api/typeobj.rst:1061 -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 " -"representation that will be used, among other things, by the :func:`print` " -"function." -msgstr "" - -#: c-api/typeobj.rst:1071 -msgid "" -"When this field is not set, :c:func:`PyObject_Repr` is called to return a " -"string representation." -msgstr "" - -#: c-api/typeobj.rst:1079 -msgid "An optional pointer to the get-attribute function." -msgstr "" - -#: c-api/typeobj.rst:1081 -msgid "The signature is the same as for :c:func:`PyObject_GetAttr`::" -msgstr "" - -#: c-api/typeobj.rst:1085 -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:1092 -msgid "" -"This field is inherited by subtypes together " -"with :c:member:`~PyTypeObject.tp_getattr`: a subtype inherits " -"both :c:member:`~PyTypeObject.tp_getattr` " -"and :c:member:`~PyTypeObject.tp_getattro` from its base type when the " -"subtype's :c:member:`~PyTypeObject.tp_getattr` " -"and :c:member:`~PyTypeObject.tp_getattro` are both ``NULL``." -msgstr "" - -#: c-api/typeobj.rst:1098 -msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericGetAttr`." -msgstr "" - -#: c-api/typeobj.rst:1107 -msgid "The signature is the same as for :c:func:`PyObject_SetAttr`::" -msgstr "" - -#: c-api/typeobj.rst:1111 -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:`PyObject_GenericSetAttr`, which implements the normal way of " -"setting object attributes." -msgstr "" - -#: c-api/typeobj.rst:1120 -msgid "" -"This field is inherited by subtypes together " -"with :c:member:`~PyTypeObject.tp_setattr`: a subtype inherits " -"both :c:member:`~PyTypeObject.tp_setattr` " -"and :c:member:`~PyTypeObject.tp_setattro` from its base type when the " -"subtype's :c:member:`~PyTypeObject.tp_setattr` " -"and :c:member:`~PyTypeObject.tp_setattro` are both ``NULL``." -msgstr "" - -#: c-api/typeobj.rst:1126 -msgid ":c:data:`PyBaseObject_Type` uses :c:func:`PyObject_GenericSetAttr`." -msgstr "" - -#: c-api/typeobj.rst:1131 -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:1137 -msgid "" -"The :c:member:`~PyTypeObject.tp_as_buffer` field is not inherited, but the " -"contained fields are inherited individually." -msgstr "" - -#: c-api/typeobj.rst:1143 -msgid "" -"See :c:macro:`Py_tp_flags` for the corresponding :c:member:`Slot ID " -"`." -msgstr "" - -#: c-api/typeobj.rst:1146 -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 " -"fields in the type object (or in the extension structures referenced " -"via :c:member:`~PyTypeObject.tp_as_number`, :c:member:`~PyTypeObject.tp_as_sequence`, :c:member:`~PyTypeObject.tp_as_mapping`, " -"and :c:member:`~PyTypeObject.tp_as_buffer`) that were historically not " -"always present are valid; if such a flag bit is clear, the type fields it " -"guards must not be accessed and must be considered to have a zero or " -"``NULL`` value instead." -msgstr "" - -#: c-api/typeobj.rst:1156 -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 " -"this flag bit. The flag bits that pertain to extension structures are " -"strictly inherited if the extension structure is inherited, i.e. the base " -"type's value of the flag bit is copied into the subtype together with a " -"pointer to the extension structure. The :c:macro:`Py_TPFLAGS_HAVE_GC` flag " -"bit is inherited together with the :c:member:`~PyTypeObject.tp_traverse` " -"and :c:member:`~PyTypeObject.tp_clear` fields, i.e. if " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and " -"the :c:member:`~PyTypeObject.tp_traverse` " -"and :c:member:`~PyTypeObject.tp_clear` fields in the subtype exist and have " -"``NULL`` values." -msgstr "" - -#: c-api/typeobj.rst:1171 -msgid "" -":c:data:`PyBaseObject_Type` uses ``Py_TPFLAGS_DEFAULT | " -"Py_TPFLAGS_BASETYPE``." -msgstr "" - -#: c-api/typeobj.rst:1174 -msgid "**Bit Masks:**" -msgstr "" - -#: c-api/typeobj.rst:1178 -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.tp_flags` field. The " -"macro :c:func:`PyType_HasFeature` takes a type and a flags value, *tp* and " -"*f*, and checks whether ``tp->tp_flags & f`` is non-zero." -msgstr "" - -#: c-api/typeobj.rst:1185 -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 " -"case, the :c:member:`~PyObject.ob_type` field of its instances is considered " -"a reference to the type, and the type object is INCREF'ed when a new " -"instance is created, and DECREF'ed when an instance is destroyed (this does " -"not apply to instances of subtypes; only the type referenced by the " -"instance's ob_type gets INCREF'ed or DECREF'ed). Heap types should " -"also :ref:`support garbage collection ` as they " -"can form a reference cycle with their own module object." -msgstr "" - -#: c-api/typeobj.rst:1207 c-api/typeobj.rst:1227 c-api/typeobj.rst:1259 -msgid "???" -msgstr "" - -#: c-api/typeobj.rst:1201 -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:1212 -msgid "" -"This bit is set when the type object has been fully initialized " -"by :c:func:`PyType_Ready`." -msgstr "" - -#: c-api/typeobj.rst:1222 -msgid "" -"This bit is set while :c:func:`PyType_Ready` is in the process of " -"initializing the type object." -msgstr "" - -#: c-api/typeobj.rst:1232 -msgid "" -"This bit is set when the object supports garbage collection. If this bit is " -"set, memory for new instances (see :c:member:`~PyTypeObject.tp_alloc`) must " -"be allocated using :c:macro:`PyObject_GC_New` " -"or :c:func:`PyType_GenericAlloc` and deallocated " -"(see :c:member:`~PyTypeObject.tp_free`) using :c:func:`PyObject_GC_Del`. " -"More information in section :ref:`supporting-cycle-detection`." -msgstr "" - -#: c-api/typeobj.rst:1584 c-api/typeobj.rst:1730 -msgid "Group: :c:macro:`Py_TPFLAGS_HAVE_GC`, :c:member:`~PyTypeObject.tp_traverse`, :c:member:`~PyTypeObject.tp_clear`" -msgstr "" - -#: c-api/typeobj.rst:1243 -msgid "" -"The :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is inherited together with " -"the :c:member:`~PyTypeObject.tp_traverse` " -"and :c:member:`~PyTypeObject.tp_clear` fields, i.e. if " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is clear in the subtype and " -"the :c:member:`~PyTypeObject.tp_traverse` " -"and :c:member:`~PyTypeObject.tp_clear` fields in the subtype exist and have " -"``NULL`` values." -msgstr "" - -#: c-api/typeobj.rst:1253 -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: :c:macro:`Py_TPFLAGS_HAVE_STACKLESS_EXTENSION`." -msgstr "" - -#: c-api/typeobj.rst:1264 -msgid "This bit indicates that objects behave like unbound methods." -msgstr "" - -#: c-api/typeobj.rst:1266 -msgid "If this flag is set for ``type(meth)``, then:" -msgstr "" - -#: c-api/typeobj.rst:1268 -msgid "" -"``meth.__get__(obj, cls)(*args, **kwds)`` (with ``obj`` not None) must be " -"equivalent to ``meth(obj, *args, **kwds)``." -msgstr "" - -#: c-api/typeobj.rst:1271 -msgid "" -"``meth.__get__(None, cls)(*args, **kwds)`` must be equivalent to " -"``meth(*args, **kwds)``." -msgstr "" - -#: c-api/typeobj.rst:1274 -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:1282 -msgid "" -"This flag is never inherited by types without " -"the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag set. For extension types, it " -"is inherited whenever :c:member:`~PyTypeObject.tp_descr_get` is inherited." -msgstr "" - -#: c-api/typeobj.rst:1288 -msgid "" -"This bit indicates that instances of the class have " -"a :attr:`~object.__dict__` attribute, and that the space for the dictionary " -"is managed by the VM." -msgstr "" - -#: c-api/typeobj.rst:1309 -msgid "If this flag is set, :c:macro:`Py_TPFLAGS_HAVE_GC` must also be set." -msgstr "" - -#: c-api/typeobj.rst:1293 -msgid "" -"The type traverse function must call :c:func:`PyObject_VisitManagedDict` and " -"its clear function must call :c:func:`PyObject_ClearManagedDict`." -msgstr "" - -#: c-api/typeobj.rst:1300 -msgid "" -"This flag is inherited unless the :c:member:`~PyTypeObject.tp_dictoffset` " -"field is set in a superclass." -msgstr "" - -#: c-api/typeobj.rst:1306 -msgid "" -"This bit indicates that instances of the class should be weakly " -"referenceable." -msgstr "" - -#: c-api/typeobj.rst:1315 -msgid "" -"This flag is inherited unless " -"the :c:member:`~PyTypeObject.tp_weaklistoffset` field is set in a superclass." -msgstr "" - -#: c-api/typeobj.rst:1321 -msgid "" -"These bits indicate that the VM will manage some fields by storing them " -"before the object. Currently, this macro is equivalent " -"to :c:expr:`Py_TPFLAGS_MANAGED_DICT | Py_TPFLAGS_MANAGED_WEAKREF`." -msgstr "" - -#: c-api/typeobj.rst:1325 -msgid "" -"This macro value relies on the implementation of the VM, so its value is not " -"stable and may change in a future version. Prefer using individual flags " -"instead." -msgstr "" - -#: c-api/typeobj.rst:1334 -msgid "" -"Only usable with variable-size types, i.e. ones with non-" -"zero :c:member:`~PyTypeObject.tp_itemsize`." -msgstr "" - -#: c-api/typeobj.rst:1337 -msgid "" -"Indicates that the variable-sized portion of an instance of this type is at " -"the end of the instance's memory area, at an offset of ``Py_TYPE(obj)-" -">tp_basicsize`` (which may be different in each subclass)." -msgstr "" - -#: c-api/typeobj.rst:1342 -msgid "" -"When setting this flag, be sure that all superclasses either use this memory " -"layout, or are not variable-sized. Python does not check this." -msgstr "" - -#: c-api/typeobj.rst:1350 -msgid "This flag is inherited." -msgstr "" - -#: c-api/typeobj.rst:1364 -msgid "" -"Functions such as :c:func:`PyLong_Check` will " -"call :c:func:`PyType_FastSubclass` with one of these flags to quickly " -"determine if a type is a subclass of a built-in type; such specific checks " -"are faster than a generic check, like :c:func:`PyObject_IsInstance`. Custom " -"types that inherit from built-ins should have " -"their :c:member:`~PyTypeObject.tp_flags` set appropriately, or the code that " -"interacts with such types will behave differently depending on what kind of " -"check is used." -msgstr "" - -#: c-api/typeobj.rst:1375 -msgid "" -"This bit is set when the :c:member:`~PyTypeObject.tp_finalize` slot is " -"present in the type structure." -msgstr "" - -#: c-api/typeobj.rst:1380 -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:1391 -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:1397 -msgid "" -"This bit is inherited if :c:member:`~PyTypeObject.tp_call` is also inherited." -msgstr "" - -#: c-api/typeobj.rst:1400 -msgid "as ``_Py_TPFLAGS_HAVE_VECTORCALL``" -msgstr "" - -#: c-api/typeobj.rst:1404 -msgid "" -"Renamed to the current name, without the leading underscore. The old " -"provisional name is :term:`soft deprecated`." -msgstr "" - -#: c-api/typeobj.rst:1409 -msgid "" -"This flag is now removed from a class when the " -"class's :py:meth:`~object.__call__` method is reassigned." -msgstr "" - -#: c-api/typeobj.rst:1412 -msgid "This flag can now be inherited by mutable classes." -msgstr "" - -#: c-api/typeobj.rst:1416 -msgid "" -"This bit is set for type objects that are immutable: type attributes cannot " -"be set nor deleted." -msgstr "" - -#: c-api/typeobj.rst:1418 -msgid "" -":c:func:`PyType_Ready` automatically applies this flag to :ref:`static types " -"`." -msgstr "" - -#: c-api/typeobj.rst:1532 c-api/typeobj.rst:1544 -msgid "This flag is not inherited." -msgstr "" - -#: c-api/typeobj.rst:1429 -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:1433 -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:1436 -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:1442 -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:1449 -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:1460 -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 " -"set when registering or subclassing :class:`collections.abc.Mapping`, and " -"unset when registering :class:`collections.abc.Sequence`." -msgstr "" - -#: c-api/typeobj.rst:1489 -msgid "" -":c:macro:`Py_TPFLAGS_MAPPING` and :c:macro:`Py_TPFLAGS_SEQUENCE` are " -"mutually exclusive; it is an error to enable both flags simultaneously." -msgstr "" - -#: c-api/typeobj.rst:1472 -msgid "" -"This flag is inherited by types that do not already " -"set :c:macro:`Py_TPFLAGS_SEQUENCE`." -msgstr "" - -#: c-api/typeobj.rst:1497 -msgid ":pep:`634` -- Structural Pattern Matching: Specification" -msgstr ":pep:`634` — Spécifications pour le filtrage par motif" - -#: c-api/typeobj.rst:1482 -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 " -"set when registering or subclassing :class:`collections.abc.Sequence`, and " -"unset when registering :class:`collections.abc.Mapping`." -msgstr "" - -#: c-api/typeobj.rst:1494 -msgid "" -"This flag is inherited by types that do not already " -"set :c:macro:`Py_TPFLAGS_MAPPING`." -msgstr "" - -#: c-api/typeobj.rst:1504 -msgid "" -"Internal. Do not set or unset this flag. To indicate that a class has " -"changed call :c:func:`PyType_Modified`" -msgstr "" - -#: c-api/typeobj.rst:1508 -msgid "" -"This flag is present in header files, but is not be used. It will be removed " -"in a future version of CPython" -msgstr "" - -#: c-api/typeobj.rst:1514 -msgid "" -"This macro does nothing. Historically, this would indicate that " -"the :c:member:`~PyTypeObject.tp_version_tag` field was available and " -"initialized." -msgstr "" - -#: c-api/typeobj.rst:1524 -msgid "" -"This bit indicates that instances of this type will have an \"inline " -"values\" array (containing the object's attributes) placed directly after " -"the end of the object." -msgstr "" - -#: c-api/typeobj.rst:1528 -msgid "This requires that :c:macro:`Py_TPFLAGS_HAVE_GC` is set." -msgstr "" - -#: c-api/typeobj.rst:1539 -msgid "" -"This bit indicates that this is an abstract type and therefore cannot be " -"instantiated." -msgstr "" - -#: c-api/typeobj.rst:1547 -msgid ":mod:`abc`" -msgstr "" - -#: c-api/typeobj.rst:1552 -msgid "" -"Internal. Do not set or unset this flag. Historically, this was a reserved " -"flag for use in Stackless Python." -msgstr "" - -#: c-api/typeobj.rst:1556 -msgid "" -"This flag is present in header files, but is not be used. This may be " -"removed in a future version of CPython." -msgstr "" - -#: c-api/typeobj.rst:1564 -msgid "" -"An optional pointer to a NUL-terminated C string giving the docstring for " -"this type object. This is exposed as the :attr:`~type.__doc__` attribute on " -"the type and instances of the type." -msgstr "" - -#: c-api/typeobj.rst:1570 -msgid "This field is *not* inherited by subtypes." -msgstr "" - -#: c-api/typeobj.rst:1577 -msgid "" -"An optional pointer to a traversal function for the garbage collector. This " -"is only used if the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit is set." -msgstr "" - -#: c-api/typeobj.rst:1580 -msgid "See :ref:`gc-traversal` for documentation." -msgstr "" - -#: c-api/typeobj.rst:1586 -msgid "" -"This field is inherited by subtypes together " -"with :c:member:`~PyTypeObject.tp_clear` and " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit: the flag " -"bit, :c:member:`~PyTypeObject.tp_traverse`, " -"and :c:member:`~PyTypeObject.tp_clear` are all inherited from the base type " -"if they are all zero in the subtype." -msgstr "" - -#: c-api/typeobj.rst:1596 -msgid "An optional pointer to a clear function. The signature is::" -msgstr "" - -#: c-api/typeobj.rst:1600 -msgid "" -"The purpose of this function is to break reference cycles that are causing " -"a :term:`cyclic isolate` so that the objects can be safely destroyed. A " -"cleared object is a partially destroyed object; the object is not obligated " -"to satisfy design invariants held during normal use." -msgstr "" - -#: c-api/typeobj.rst:1605 -msgid "" -":c:member:`!tp_clear` does not need to delete references to objects that " -"can't participate in reference cycles, such as Python strings or Python " -"integers. However, it may be convenient to clear all references, and write " -"the type's :c:member:`~PyTypeObject.tp_dealloc` function to " -"invoke :c:member:`!tp_clear` to avoid code duplication. (Beware " -"that :c:member:`!tp_clear` might have already been called. Prefer calling " -"idempotent functions like :c:func:`Py_CLEAR`.)" -msgstr "" - -#: c-api/typeobj.rst:1613 -msgid "" -"Any non-trivial cleanup should be performed " -"in :c:member:`~PyTypeObject.tp_finalize` instead of :c:member:`!tp_clear`." -msgstr "" - -#: c-api/typeobj.rst:1618 -msgid "" -"If :c:member:`!tp_clear` fails to break a reference cycle then the objects " -"in the :term:`cyclic isolate` may remain indefinitely uncollectable " -"(\"leak\"). See :data:`gc.garbage`." -msgstr "" - -#: c-api/typeobj.rst:1624 -msgid "" -"Referents (direct and indirect) might have already been cleared; they are " -"not guaranteed to be in a consistent state." -msgstr "" - -#: c-api/typeobj.rst:1629 -msgid "" -"The :c:member:`~PyTypeObject.tp_clear` function can be called from any " -"thread." -msgstr "" - -#: c-api/typeobj.rst:1634 -msgid "" -"An object is not guaranteed to be automatically cleared before its " -"destructor (:c:member:`~PyTypeObject.tp_dealloc`) is called." -msgstr "" - -#: c-api/typeobj.rst:1637 -msgid "" -"This function differs from the destructor " -"(:c:member:`~PyTypeObject.tp_dealloc`) in the following ways:" -msgstr "" - -#: c-api/typeobj.rst:1640 -msgid "" -"The purpose of clearing an object is to remove references to other objects " -"that might participate in a reference cycle. The purpose of the destructor, " -"on the other hand, is a superset: it must release *all* resources it owns, " -"including references to objects that cannot participate in a reference cycle " -"(e.g., integers) as well as the object's own memory (by " -"calling :c:member:`~PyTypeObject.tp_free`)." -msgstr "" - -#: c-api/typeobj.rst:1646 -msgid "" -"When :c:member:`!tp_clear` is called, other objects might still hold " -"references to the object being cleared. Because of this, :c:member:`!" -"tp_clear` must not deallocate the object's own memory " -"(:c:member:`~PyTypeObject.tp_free`). The destructor, on the other hand, is " -"only called when no (strong) references exist, and as such, must safely " -"destroy the object itself by deallocating it." -msgstr "" - -#: c-api/typeobj.rst:1652 -msgid "" -":c:member:`!tp_clear` might never be automatically called. An object's " -"destructor, on the other hand, will be automatically called some time after " -"the object becomes unreachable (i.e., either there are no references to the " -"object or the object is a member of a :term:`cyclic isolate`)." -msgstr "" - -#: c-api/typeobj.rst:1657 -msgid "" -"No guarantees are made about when, if, or how often Python automatically " -"clears an object, except:" -msgstr "" - -#: c-api/typeobj.rst:1660 -msgid "" -"Python will not automatically clear an object if it is reachable, i.e., " -"there is a reference to it and it is not a member of a :term:`cyclic " -"isolate`." -msgstr "" - -#: c-api/typeobj.rst:1663 -msgid "" -"Python will not automatically clear an object if it has not been " -"automatically finalized (see :c:member:`~PyTypeObject.tp_finalize`). (If " -"the finalizer resurrected the object, the object may or may not be " -"automatically finalized again before it is cleared.)" -msgstr "" - -#: c-api/typeobj.rst:1667 -msgid "" -"If an object is a member of a :term:`cyclic isolate`, Python will not " -"automatically clear it if any member of the cyclic isolate has not yet been " -"automatically finalized (:c:member:`~PyTypeObject.tp_finalize`)." -msgstr "" - -#: c-api/typeobj.rst:1670 -msgid "" -"Python will not destroy an object until after any automatic calls to " -"its :c:member:`!tp_clear` function have returned. This ensures that the act " -"of breaking a reference cycle does not invalidate the ``self`` pointer " -"while :c:member:`!tp_clear` is still executing." -msgstr "" - -#: c-api/typeobj.rst:1674 -msgid "" -"Python will not automatically call :c:member:`!tp_clear` multiple times " -"concurrently." -msgstr "" - -#: c-api/typeobj.rst:1677 -msgid "" -"CPython currently only automatically clears objects as needed to break " -"reference cycles in a :term:`cyclic isolate`, but future versions might " -"clear objects regularly before their destruction." -msgstr "" - -#: c-api/typeobj.rst:1681 -msgid "" -"Taken together, all :c:member:`~PyTypeObject.tp_clear` functions in the " -"system must combine to break all reference cycles. This is subtle, and if " -"in any doubt supply a :c:member:`~PyTypeObject.tp_clear` function. For " -"example, the tuple type does not implement " -"a :c:member:`~PyTypeObject.tp_clear` function, because it's possible to " -"prove that no reference cycle can be composed entirely of tuples. Therefore " -"the :c:member:`~PyTypeObject.tp_clear` functions of other types are " -"responsible for breaking any cycle containing a tuple. This isn't " -"immediately obvious, and there's rarely a good reason to avoid " -"implementing :c:member:`~PyTypeObject.tp_clear`." -msgstr "" - -#: c-api/typeobj.rst:1692 -msgid "" -"Implementations of :c:member:`~PyTypeObject.tp_clear` should drop the " -"instance's references to those of its members that may be Python objects, " -"and set its pointers to those members to ``NULL``, as in the following " -"example::" -msgstr "" - -#: c-api/typeobj.rst:1707 -msgid "" -"The :c:func:`Py_CLEAR` macro should be used, because clearing references is " -"delicate: the reference to the contained object must not be released " -"(via :c:func:`Py_DECREF`) until after the pointer to the contained object is " -"set to ``NULL``. This is because releasing the reference may cause the " -"contained object to become trash, triggering a chain of reclamation activity " -"that may include invoking arbitrary Python code (due to finalizers, or " -"weakref callbacks, associated with the contained object). If it's possible " -"for such code to reference *self* again, it's important that the pointer to " -"the contained object be ``NULL`` at that time, so that *self* knows the " -"contained object can no longer be used. The :c:func:`Py_CLEAR` macro " -"performs the operations in a safe order." -msgstr "" - -#: c-api/typeobj.rst:1719 -msgid "" -"If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in " -"the :c:member:`~PyTypeObject.tp_flags` field, the clear function must " -"call :c:func:`PyObject_ClearManagedDict` like this::" -msgstr "" - -#: c-api/typeobj.rst:1725 -msgid "" -"More information about Python's garbage collection scheme can be found in " -"section :ref:`supporting-cycle-detection`." -msgstr "" - -#: c-api/typeobj.rst:1732 -msgid "" -"This field is inherited by subtypes together " -"with :c:member:`~PyTypeObject.tp_traverse` and " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit: the flag " -"bit, :c:member:`~PyTypeObject.tp_traverse`, " -"and :c:member:`~PyTypeObject.tp_clear` are all inherited from the base type " -"if they are all zero in the subtype." -msgstr "" - -#: c-api/typeobj.rst:1746 -msgid "" -"An optional pointer to the rich comparison function, whose signature is::" -msgstr "" - -#: c-api/typeobj.rst:1750 -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:1753 -msgid "" -"The function should return the result of the comparison (usually ``Py_True`` " -"or ``Py_False``). If the comparison is undefined, it must return " -"``Py_NotImplemented``, if another error occurred it must return ``NULL`` and " -"set an exception condition." -msgstr "" - -#: c-api/typeobj.rst:1758 -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:1764 -msgid "Constant" -msgstr "Constante" - -#: c-api/typeobj.rst:1764 -msgid "Comparison" -msgstr "Comparaison" - -#: c-api/typeobj.rst:1766 -msgid "``<``" -msgstr "``<``" - -#: c-api/typeobj.rst:1768 -msgid "``<=``" -msgstr "``<=``" - -#: c-api/typeobj.rst:1770 -msgid "``==``" -msgstr "``==``" - -#: c-api/typeobj.rst:1772 -msgid "``!=``" -msgstr "``!=``" - -#: c-api/typeobj.rst:1774 -msgid "``>``" -msgstr "``>``" - -#: c-api/typeobj.rst:1776 -msgid "``>=``" -msgstr "``>=``" - -#: c-api/typeobj.rst:1779 -msgid "" -"The following macro is defined to ease writing rich comparison functions:" -msgstr "" - -#: c-api/typeobj.rst:1783 -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 " -"operators (for example, they may be C ints or floats). The third argument " -"specifies the requested operation, as for :c:func:`PyObject_RichCompare`." -msgstr "" - -#: c-api/typeobj.rst:1789 -msgid "The returned value is a new :term:`strong reference`." -msgstr "" - -#: c-api/typeobj.rst:1791 -msgid "On error, sets an exception and returns ``NULL`` from the function." -msgstr "" - -#: c-api/typeobj.rst:1799 -msgid "" -"This field is inherited by subtypes together " -"with :c:member:`~PyTypeObject.tp_hash`: a subtype " -"inherits :c:member:`~PyTypeObject.tp_richcompare` " -"and :c:member:`~PyTypeObject.tp_hash` when the " -"subtype's :c:member:`~PyTypeObject.tp_richcompare` " -"and :c:member:`~PyTypeObject.tp_hash` are both ``NULL``." -msgstr "" - -#: c-api/typeobj.rst:1806 -msgid "" -":c:data:`PyBaseObject_Type` provides " -"a :c:member:`~PyTypeObject.tp_richcompare` implementation, which may be " -"inherited. However, if only :c:member:`~PyTypeObject.tp_hash` is defined, " -"not even the inherited function is used and instances of the type will not " -"be able to participate in any comparisons." -msgstr "" - -#: c-api/typeobj.rst:1815 -msgid "" -"While this field is still supported, :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` " -"should be used instead, if at all possible." -msgstr "" - -#: c-api/typeobj.rst:1818 -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 ``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:1825 -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:1828 -msgid "" -"It is an error to set both the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit " -"and :c:member:`~PyTypeObject.tp_weaklistoffset`." -msgstr "" - -#: c-api/typeobj.rst:1833 -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 " -"different weak reference list head than the base type. Since the list head " -"is always found via :c:member:`~PyTypeObject.tp_weaklistoffset`, this should " -"not be a problem." -msgstr "" - -#: c-api/typeobj.rst:1840 -msgid "" -"If the :c:macro:`Py_TPFLAGS_MANAGED_WEAKREF` bit is set in " -"the :c:member:`~PyTypeObject.tp_flags` field, " -"then :c:member:`~PyTypeObject.tp_weaklistoffset` will be set to a negative " -"value, to indicate that it is unsafe to use this field." -msgstr "" - -#: c-api/typeobj.rst:1850 -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:1854 -msgid "This function has the same signature as :c:func:`PyObject_GetIter`::" -msgstr "" - -#: c-api/typeobj.rst:1867 -msgid "" -"An optional pointer to a function that returns the next item in " -"an :term:`iterator`. The signature is::" -msgstr "" - -#: c-api/typeobj.rst:1872 -msgid "" -"When the iterator is exhausted, it must return ``NULL``; " -"a :exc:`StopIteration` exception may or may not be set. When another error " -"occurs, it must return ``NULL`` too. Its presence signals that the " -"instances of this type are iterators." -msgstr "" - -#: c-api/typeobj.rst:1877 -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:1881 -msgid "This function has the same signature as :c:func:`PyIter_Next`." -msgstr "" - -#: c-api/typeobj.rst:1892 -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:1895 -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:1900 -msgid "" -"This field is not inherited by subtypes (methods are inherited through a " -"different mechanism)." -msgstr "" - -#: c-api/typeobj.rst:1908 -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:1912 -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:1917 -msgid "" -"This field is not inherited by subtypes (members are inherited through a " -"different mechanism)." -msgstr "" - -#: c-api/typeobj.rst:1925 -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:1928 -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:1933 -msgid "" -"This field is not inherited by subtypes (computed attributes are inherited " -"through a different mechanism)." -msgstr "" - -#: c-api/typeobj.rst:1941 -msgid "" -"An optional pointer to a base type from which type properties are " -"inherited. At this level, only single inheritance is supported; multiple " -"inheritance require dynamically creating a type object by calling the " -"metatype." -msgstr "" - -#: c-api/typeobj.rst:1949 -msgid "" -"Slot initialization is subject to the rules of initializing globals. C99 " -"requires the initializers to be \"address constants\". Function designators " -"like :c:func:`PyType_GenericNew`, with implicit conversion to a pointer, are " -"valid C99 address constants." -msgstr "" - -#: c-api/typeobj.rst:1954 -msgid "" -"However, the unary '&' operator applied to a non-static variable " -"like :c:data:`PyBaseObject_Type` is not required to produce an address " -"constant. Compilers may support this (gcc does), MSVC does not. Both " -"compilers are strictly standard conforming in this particular behavior." -msgstr "" - -#: c-api/typeobj.rst:1960 -msgid "" -"Consequently, :c:member:`~PyTypeObject.tp_base` should be set in the " -"extension module's init function." -msgstr "" - -#: c-api/typeobj.rst:1965 -msgid "This field is not inherited by subtypes (obviously)." -msgstr "" - -#: c-api/typeobj.rst:1969 -msgid "" -"This field defaults to ``&PyBaseObject_Type`` (which to Python programmers " -"is known as the type :class:`object`)." -msgstr "" - -#: c-api/typeobj.rst:1975 -msgid "The type's dictionary is stored here by :c:func:`PyType_Ready`." -msgstr "" - -#: c-api/typeobj.rst:1977 -msgid "" -"This field should normally be initialized to ``NULL`` before PyType_Ready is " -"called; it may also be initialized to a dictionary containing initial " -"attributes for the type. Once :c:func:`PyType_Ready` has initialized the " -"type, extra attributes for the type may be added to this dictionary only if " -"they don't correspond to overloaded operations " -"(like :meth:`~object.__add__`). Once initialization for the type has " -"finished, this field should be treated as read-only." -msgstr "" - -#: c-api/typeobj.rst:1985 -msgid "" -"Some types may not store their dictionary in this slot. " -"Use :c:func:`PyType_GetDict` to retrieve the dictionary for an arbitrary " -"type." -msgstr "" - -#: c-api/typeobj.rst:1991 -msgid "" -"Internals detail: For static builtin types, this is always ``NULL``. " -"Instead, the dict for such types is stored on ``PyInterpreterState``. " -"Use :c:func:`PyType_GetDict` to get the dict for an arbitrary type." -msgstr "" - -#: c-api/typeobj.rst:1997 -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:2002 -msgid "" -"If this field is ``NULL``, :c:func:`PyType_Ready` will assign a new " -"dictionary to it." -msgstr "" - -#: c-api/typeobj.rst:2007 -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:2015 -msgid "An optional pointer to a \"descriptor get\" function." -msgstr "" - -#: c-api/typeobj.rst:2035 c-api/typeobj.rst:2133 c-api/typeobj.rst:2158 -msgid "The function signature is::" -msgstr "" - -#: c-api/typeobj.rst:2032 -msgid "" -"An optional pointer to a function for setting and deleting a descriptor's " -"value." -msgstr "" - -#: c-api/typeobj.rst:2039 -msgid "The *value* argument is set to ``NULL`` to delete the value." -msgstr "" - -#: c-api/typeobj.rst:2050 -msgid "" -"While this field is still supported, :c:macro:`Py_TPFLAGS_MANAGED_DICT` " -"should be used instead, if at all possible." -msgstr "" - -#: c-api/typeobj.rst:2053 -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 " -"of the type of the instance variable dictionary; this offset is used " -"by :c:func:`PyObject_GenericGetAttr`." -msgstr "" - -#: c-api/typeobj.rst:2058 -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:2061 -msgid "" -"The value specifies the offset of the dictionary from the start of the " -"instance structure." -msgstr "" - -#: c-api/typeobj.rst:2063 -msgid "" -"The :c:member:`~PyTypeObject.tp_dictoffset` should be regarded as write-" -"only. To get the pointer to the dictionary " -"call :c:func:`PyObject_GenericGetDict`. " -"Calling :c:func:`PyObject_GenericGetDict` may need to allocate memory for " -"the dictionary, so it is may be more efficient to " -"call :c:func:`PyObject_GetAttr` when accessing an attribute on the object." -msgstr "" - -#: c-api/typeobj.rst:2069 -msgid "" -"It is an error to set both the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit " -"and :c:member:`~PyTypeObject.tp_dictoffset`." -msgstr "" - -#: c-api/typeobj.rst:2074 -msgid "" -"This field is inherited by subtypes. A subtype should not override this " -"offset; doing so could be unsafe, if C code tries to access the dictionary " -"at the previous offset. To properly support inheritance, " -"use :c:macro:`Py_TPFLAGS_MANAGED_DICT`." -msgstr "" - -#: c-api/typeobj.rst:2081 -msgid "" -"This slot has no default. For :ref:`static types `, if the " -"field is ``NULL`` then no :attr:`~object.__dict__` gets created for " -"instances." -msgstr "" - -#: c-api/typeobj.rst:2084 -msgid "" -"If the :c:macro:`Py_TPFLAGS_MANAGED_DICT` bit is set in " -"the :c:member:`~PyTypeObject.tp_flags` field, " -"then :c:member:`~PyTypeObject.tp_dictoffset` will be set to ``-1``, to " -"indicate that it is unsafe to use this field." -msgstr "" - -#: c-api/typeobj.rst:2094 -msgid "An optional pointer to an instance initialization function." -msgstr "" - -#: c-api/typeobj.rst:2096 -msgid "" -"This function corresponds to the :meth:`~object.__init__` method of " -"classes. Like :meth:`!__init__`, it is possible to create an instance " -"without calling :meth:`!__init__`, and it is possible to reinitialize an " -"instance by calling its :meth:`!__init__` method again." -msgstr "" - -#: c-api/typeobj.rst:2105 -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:`~object.__init__`." -msgstr "" - -#: c-api/typeobj.rst:2109 -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 :c:member:`~PyTypeObject.tp_new` function has returned an instance of " -"the type. If the :c:member:`~PyTypeObject.tp_new` function returns an " -"instance of some other type that is not a subtype of the original type, " -"no :c:member:`~PyTypeObject.tp_init` function is called; " -"if :c:member:`~PyTypeObject.tp_new` returns an instance of a subtype of the " -"original type, the subtype's :c:member:`~PyTypeObject.tp_init` is called." -msgstr "" - -#: c-api/typeobj.rst:2116 -msgid "Returns ``0`` on success, ``-1`` and sets an exception on error." -msgstr "" - -#: c-api/typeobj.rst:2124 -msgid "" -"For :ref:`static types ` this field does not have a default." -msgstr "" - -#: c-api/typeobj.rst:2131 -msgid "An optional pointer to an instance allocation function." -msgstr "" - -#: c-api/typeobj.rst:2139 -msgid "" -"Static subtypes inherit this slot, which will " -"be :c:func:`PyType_GenericAlloc` if inherited from :class:`object`." -msgstr "" - -#: c-api/typeobj.rst:2213 -msgid ":ref:`Heap subtypes ` do not inherit this slot." -msgstr "" - -#: c-api/typeobj.rst:2146 -msgid "" -"For heap subtypes, this field is always set to :c:func:`PyType_GenericAlloc`." -msgstr "" - -#: c-api/typeobj.rst:2221 -msgid "For static subtypes, this slot is inherited (see above)." -msgstr "" - -#: c-api/typeobj.rst:2156 -msgid "An optional pointer to an instance creation function." -msgstr "" - -#: c-api/typeobj.rst:2162 -msgid "" -"The *subtype* argument is the type of the object being created; the *args* " -"and *kwds* arguments represent positional and keyword arguments of the call " -"to the type. Note that *subtype* doesn't have to equal the type " -"whose :c:member:`~PyTypeObject.tp_new` function is called; it may be a " -"subtype of that type (but not an unrelated type)." -msgstr "" - -#: c-api/typeobj.rst:2168 -msgid "" -"The :c:member:`~PyTypeObject.tp_new` function should call ``subtype-" -">tp_alloc(subtype, nitems)`` to allocate space for the object, and then do " -"only as much further initialization as is absolutely necessary. " -"Initialization that can safely be ignored or repeated should be placed in " -"the :c:member:`~PyTypeObject.tp_init` handler. A good rule of thumb is that " -"for immutable types, all initialization should take place " -"in :c:member:`~PyTypeObject.tp_new`, while for mutable types, most " -"initialization should be deferred to :c:member:`~PyTypeObject.tp_init`." -msgstr "" - -#: c-api/typeobj.rst:2176 -msgid "" -"Set the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag to disallow " -"creating instances of the type in Python." -msgstr "" - -#: c-api/typeobj.rst:2181 -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:2187 -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 " -"instances; presumably there is some other way to create instances, like a " -"factory function." -msgstr "" - -#: c-api/typeobj.rst:2197 -msgid "" -"An optional pointer to an instance deallocation function. Its signature is::" -msgstr "" - -#: c-api/typeobj.rst:2201 -msgid "" -"This function must free the memory allocated " -"by :c:member:`~PyTypeObject.tp_alloc`." -msgstr "" - -#: c-api/typeobj.rst:2206 -msgid "" -"Static subtypes inherit this slot, which will be :c:func:`PyObject_Free` if " -"inherited from :class:`object`. Exception: If the type supports garbage " -"collection (i.e., the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set " -"in :c:member:`~PyTypeObject.tp_flags`) and it would " -"inherit :c:func:`PyObject_Free`, then this slot is not inherited but instead " -"defaults to :c:func:`PyObject_GC_Del`." -msgstr "" - -#: c-api/typeobj.rst:2217 -msgid "" -"For :ref:`heap subtypes `, this slot defaults to a deallocator " -"suitable to match :c:func:`PyType_GenericAlloc` and the value of " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag." -msgstr "" - -#: c-api/typeobj.rst:2228 -msgid "An optional pointer to a function called by the garbage collector." -msgstr "" - -#: c-api/typeobj.rst:2230 -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 " -"type's :c:member:`~PyTypeObject.tp_flags` field, and check " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag bit. But some types have a mixture " -"of statically and dynamically allocated instances, and the statically " -"allocated instances are not collectible. Such types should define this " -"function; it should return ``1`` for a collectible instance, and ``0`` for a " -"non-collectible instance. The signature is::" -msgstr "" - -#: c-api/typeobj.rst:2240 -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:2250 -msgid "" -"This slot has no default. If this field is " -"``NULL``, :c:macro:`Py_TPFLAGS_HAVE_GC` is used as the functional equivalent." -msgstr "" - -#: c-api/typeobj.rst:2258 -msgid "Tuple of base types." -msgstr "" - -#: c-api/typeobj.rst:2284 -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:2263 -msgid "" -"For dynamically created classes, the :c:data:`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:2270 -msgid "" -"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:2299 c-api/typeobj.rst:2333 c-api/typeobj.rst:2349 -msgid "This field is not inherited." -msgstr "" - -#: c-api/typeobj.rst:2281 -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:2289 -msgid "" -"This field is not inherited; it is calculated fresh " -"by :c:func:`PyType_Ready`." -msgstr "" - -#: c-api/typeobj.rst:2295 -msgid "Unused. Internal use only." -msgstr "" - -#: c-api/typeobj.rst:2304 -msgid "" -"A collection of subclasses. Internal use only. May be an invalid pointer." -msgstr "" - -#: c-api/typeobj.rst:2306 -msgid "" -"To get a list of subclasses, call the Python " -"method :py:meth:`~type.__subclasses__`." -msgstr "" - -#: c-api/typeobj.rst:2311 -msgid "" -"For some types, this field does not hold a valid :c:expr:`PyObject*`. The " -"type was changed to :c:expr:`void*` to indicate this." -msgstr "" - -#: c-api/typeobj.rst:2321 -msgid "" -"Weak reference list head, for weak references to this type object. Not " -"inherited. Internal use only." -msgstr "" - -#: c-api/typeobj.rst:2326 -msgid "" -"Internals detail: For the static builtin types this is always ``NULL``, even " -"if weakrefs are added. Instead, the weakrefs for each are stored on " -"``PyInterpreterState``. Use the public C-API or the internal " -"``_PyObject_GET_WEAKREFS_LISTPTR()`` macro to avoid the distinction." -msgstr "" - -#: c-api/typeobj.rst:2340 -msgid "" -"This field is deprecated. Use :c:member:`~PyTypeObject.tp_finalize` instead." -msgstr "" - -#: c-api/typeobj.rst:2345 -msgid "Used to index into the method cache. Internal use only." -msgstr "" - -#: c-api/typeobj.rst:2356 -msgid "" -"An optional pointer to an instance finalization function. This is the C " -"implementation of the :meth:`~object.__del__` special method. Its signature " -"is::" -msgstr "" - -#: c-api/typeobj.rst:2362 -msgid "" -"The primary purpose of finalization is to perform any non-trivial cleanup " -"that must be performed before the object is destroyed, while the object and " -"any other objects it directly or indirectly references are still in a " -"consistent state. The finalizer is allowed to execute arbitrary Python code." -msgstr "" - -#: c-api/typeobj.rst:2368 -msgid "" -"Before Python automatically finalizes an object, some of the object's direct " -"or indirect referents might have themselves been automatically finalized. " -"However, none of the referents will have been automatically cleared " -"(:c:member:`~PyTypeObject.tp_clear`) yet." -msgstr "" - -#: c-api/typeobj.rst:2373 -msgid "" -"Other non-finalized objects might still be using a finalized object, so the " -"finalizer must leave the object in a sane state (e.g., invariants are still " -"met)." -msgstr "" - -#: c-api/typeobj.rst:2379 -msgid "" -"After Python automatically finalizes an object, Python might start " -"automatically clearing (:c:member:`~PyTypeObject.tp_clear`) the object and " -"its referents (direct and indirect). Cleared objects are not guaranteed to " -"be in a consistent state; a finalized object must be able to tolerate " -"cleared referents." -msgstr "" - -#: c-api/typeobj.rst:2387 -msgid "" -"An object is not guaranteed to be automatically finalized before its " -"destructor (:c:member:`~PyTypeObject.tp_dealloc`) is called. It is " -"recommended to call :c:func:`PyObject_CallFinalizerFromDealloc` at the " -"beginning of :c:member:`!tp_dealloc` to guarantee that the object is always " -"finalized before destruction." -msgstr "" - -#: c-api/typeobj.rst:2395 -msgid "" -"The :c:member:`~PyTypeObject.tp_finalize` function can be called from any " -"thread, although the :term:`GIL` will be held." -msgstr "" - -#: c-api/typeobj.rst:2400 -msgid "" -"The :c:member:`!tp_finalize` function can be called during shutdown, after " -"some global variables have been deleted. See the documentation of " -"the :meth:`~object.__del__` method for details." -msgstr "" - -#: c-api/typeobj.rst:2404 -msgid "" -"When Python finalizes an object, it behaves like the following algorithm:" -msgstr "" - -#: c-api/typeobj.rst:2406 -msgid "" -"Python might mark the object as *finalized*. Currently, Python always marks " -"objects whose type supports garbage collection (i.e., " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is set " -"in :c:member:`~PyTypeObject.tp_flags`) and never marks other types of " -"objects; this might change in a future version." -msgstr "" - -#: c-api/typeobj.rst:2411 -msgid "" -"If the object is not marked as *finalized* and its :c:member:`!tp_finalize` " -"finalizer function is non-``NULL``, the finalizer function is called." -msgstr "" - -#: c-api/typeobj.rst:2414 -msgid "" -"If the finalizer function was called and the finalizer made the object " -"reachable (i.e., there is a reference to the object and it is not a member " -"of a :term:`cyclic isolate`), then the finalizer is said to have " -"*resurrected* the object. It is unspecified whether the finalizer can also " -"resurrect the object by adding a new reference to the object that does not " -"make it reachable, i.e., the object is (still) a member of a cyclic isolate." -msgstr "" - -#: c-api/typeobj.rst:2421 -msgid "" -"If the finalizer resurrected the object, the object's pending destruction is " -"canceled and the object's *finalized* mark might be removed if present. " -"Currently, Python never removes the *finalized* mark; this might change in a " -"future version." -msgstr "" - -#: c-api/typeobj.rst:2426 -msgid "" -"*Automatic finalization* refers to any finalization performed by Python " -"except via calls to :c:func:`PyObject_CallFinalizer` " -"or :c:func:`PyObject_CallFinalizerFromDealloc`. No guarantees are made " -"about when, if, or how often an object is automatically finalized, except:" -msgstr "" - -#: c-api/typeobj.rst:2431 -msgid "" -"Python will not automatically finalize an object if it is reachable, i.e., " -"there is a reference to it and it is not a member of a :term:`cyclic " -"isolate`." -msgstr "" - -#: c-api/typeobj.rst:2434 -msgid "" -"Python will not automatically finalize an object if finalizing it would not " -"mark the object as *finalized*. Currently, this applies to objects whose " -"type does not support garbage collection, i.e., " -"the :c:macro:`Py_TPFLAGS_HAVE_GC` flag is not set. Such objects can still " -"be manually finalized by calling :c:func:`PyObject_CallFinalizer` " -"or :c:func:`PyObject_CallFinalizerFromDealloc`." -msgstr "" - -#: c-api/typeobj.rst:2440 -msgid "" -"Python will not automatically finalize any two members of a :term:`cyclic " -"isolate` concurrently." -msgstr "" - -#: c-api/typeobj.rst:2442 -msgid "" -"Python will not automatically finalize an object after it has automatically " -"cleared (:c:member:`~PyTypeObject.tp_clear`) the object." -msgstr "" - -#: c-api/typeobj.rst:2444 -msgid "" -"If an object is a member of a :term:`cyclic isolate`, Python will not " -"automatically finalize it after automatically clearing " -"(see :c:member:`~PyTypeObject.tp_clear`) any other member." -msgstr "" - -#: c-api/typeobj.rst:2447 -msgid "" -"Python will automatically finalize every member of a :term:`cyclic isolate` " -"before it automatically clears (see :c:member:`~PyTypeObject.tp_clear`) any " -"of them." -msgstr "" - -#: c-api/typeobj.rst:2450 -msgid "" -"If Python is going to automatically clear an object " -"(:c:member:`~PyTypeObject.tp_clear`), it will automatically finalize the " -"object first." -msgstr "" - -#: c-api/typeobj.rst:2454 -msgid "" -"Python currently only automatically finalizes objects that are members of " -"a :term:`cyclic isolate`, but future versions might finalize objects " -"regularly before their destruction." -msgstr "" - -#: c-api/typeobj.rst:2458 -msgid "" -"To manually finalize an object, do not call this function directly; " -"call :c:func:`PyObject_CallFinalizer` " -"or :c:func:`PyObject_CallFinalizerFromDealloc` instead." -msgstr "" - -#: c-api/typeobj.rst:2462 -msgid "" -":c:member:`~PyTypeObject.tp_finalize` should leave the current exception " -"status unchanged. The recommended way to write a non-trivial finalizer is " -"to back up the exception at the beginning by " -"calling :c:func:`PyErr_GetRaisedException` and restore the exception at the " -"end by calling :c:func:`PyErr_SetRaisedException`. If an exception is " -"encountered in the middle of the finalizer, log and clear it " -"with :c:func:`PyErr_WriteUnraisable` or :c:func:`PyErr_FormatUnraisable`. " -"For example::" -msgstr "" - -#: c-api/typeobj.rst:2499 -msgid "" -"Before version 3.8 it was necessary to set " -"the :c:macro:`Py_TPFLAGS_HAVE_FINALIZE` flags bit in order for this field to " -"be used. This is no longer required." -msgstr "" - -#: c-api/typeobj.rst:2505 -msgid ":pep:`442`: \"Safe object finalization\"" -msgstr "" - -#: c-api/typeobj.rst:2508 -msgid ":c:func:`PyObject_CallFinalizer`" -msgstr "" - -#: c-api/typeobj.rst:2509 -msgid ":c:func:`PyObject_CallFinalizerFromDealloc`" -msgstr "" - -#: c-api/typeobj.rst:2516 -msgid "" -"A :ref:`vectorcall function ` to use for calls of this type " -"object (rather than instances). In other words, ``tp_vectorcall`` can be " -"used to optimize ``type.__call__``, which typically returns a new instance " -"of *type*." -msgstr "" - -#: c-api/typeobj.rst:2521 -msgid "" -"As with any vectorcall function, if ``tp_vectorcall`` is ``NULL``, the " -"*tp_call* protocol (``Py_TYPE(type)->tp_call``) is used instead." -msgstr "" - -#: c-api/typeobj.rst:2526 -msgid "" -"The :ref:`vectorcall protocol ` requires that the vectorcall " -"function has the same behavior as the corresponding ``tp_call``. This means " -"that ``type->tp_vectorcall`` must match the behavior of ``Py_TYPE(type)-" -">tp_call``." -msgstr "" - -#: c-api/typeobj.rst:2531 -msgid "" -"Specifically, if *type* uses the default metaclass, ``type->tp_vectorcall`` " -"must behave the same as :c:expr:`PyType_Type->tp_call`, which:" -msgstr "" - -#: c-api/typeobj.rst:2535 -msgid "calls ``type->tp_new``," -msgstr "" - -#: c-api/typeobj.rst:2537 -msgid "" -"if the result is a subclass of *type*, calls ``type->tp_init`` on the result " -"of ``tp_new``, and" -msgstr "" - -#: c-api/typeobj.rst:2540 -msgid "returns the result of ``tp_new``." -msgstr "" - -#: c-api/typeobj.rst:2542 -msgid "" -"Typically, ``tp_vectorcall`` is overridden to optimize this process for " -"specific :c:member:`~PyTypeObject.tp_new` " -"and :c:member:`~PyTypeObject.tp_init`. When doing this for user-subclassable " -"types, note that both can be overridden (using :py:func:`~object.__new__` " -"and :py:func:`~object.__init__`, respectively)." -msgstr "" - -#: c-api/typeobj.rst:2553 -msgid "This field is never inherited." -msgstr "" - -#: c-api/typeobj.rst:2555 -msgid "(the field exists since 3.8 but it's only used since 3.9)" -msgstr "" - -#: c-api/typeobj.rst:2560 -msgid "Internal. Do not use." -msgstr "" - -#: c-api/typeobj.rst:2568 -msgid "Static Types" -msgstr "" - -#: c-api/typeobj.rst:2570 -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:2574 -msgid "" -"This results in types that are limited relative to types defined in Python:" -msgstr "" - -#: c-api/typeobj.rst:2576 -msgid "" -"Static types are limited to one base, i.e. they cannot use multiple " -"inheritance." -msgstr "" - -#: c-api/typeobj.rst:2578 -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:2580 -msgid "" -"Static type objects are shared across :ref:`sub-interpreters `, so they should not include any subinterpreter-" -"specific state." -msgstr "" - -#: c-api/typeobj.rst:2584 -msgid "" -"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:2592 -msgid "Heap Types" -msgstr "" - -#: c-api/typeobj.rst:2594 -msgid "" -"An alternative to :ref:`static types ` is *heap-allocated " -"types*, or *heap types* for short, which correspond closely to classes " -"created by Python's ``class`` statement. Heap types have " -"the :c:macro:`Py_TPFLAGS_HEAPTYPE` flag set." -msgstr "" - -#: c-api/typeobj.rst:2599 -msgid "" -"This is done by filling a :c:type:`PyType_Spec` structure and " -"calling :c:func:`PyType_FromSpec`, :c:func:`PyType_FromSpecWithBases`, :c:func:`PyType_FromModuleAndSpec`, " -"or :c:func:`PyType_FromMetaclass`." -msgstr "" - -#: c-api/typeobj.rst:2607 -msgid "Number Object Structures" -msgstr "" - -#: c-api/typeobj.rst:2611 -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:3089 -msgid "Here is the structure definition::" -msgstr "" - -#: c-api/typeobj.rst:2664 -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 " -"instance of the defined type). If the operation is not defined for the " -"given operands, binary and ternary functions must return " -"``Py_NotImplemented``, if another error occurred they must return ``NULL`` " -"and set an exception." -msgstr "" - -#: c-api/typeobj.rst:2673 -msgid "" -"The :c:member:`~PyNumberMethods.nb_reserved` field should always be " -"``NULL``. It was previously called :c:member:`!nb_long`, and was renamed in " -"Python 3.0.1." -msgstr "" - -#: c-api/typeobj.rst:2824 -msgid "Mapping Object Structures" -msgstr "" - -#: c-api/typeobj.rst:2828 -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:2835 -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:2843 -msgid "" -"This function is used by :c:func:`PyObject_GetItem` " -"and :c:func:`PySequence_GetSlice`, and has the same signature as :c:func:`!" -"PyObject_GetItem`. This slot must be filled for " -"the :c:func:`PyMapping_Check` function to return ``1``, it can be ``NULL`` " -"otherwise." -msgstr "" - -#: c-api/typeobj.rst:2853 -msgid "" -"This function is used " -"by :c:func:`PyObject_SetItem`, :c:func:`PyObject_DelItem`, :c:func:`PySequence_SetSlice` " -"and :c:func:`PySequence_DelSlice`. It has the same signature as :c:func:`!" -"PyObject_SetItem`, but *v* can also be set to ``NULL`` to delete an item. " -"If this slot is ``NULL``, the object does not support item assignment and " -"deletion." -msgstr "" - -#: c-api/typeobj.rst:2864 -msgid "Sequence Object Structures" -msgstr "" - -#: c-api/typeobj.rst:2868 -msgid "" -"This structure holds pointers to the functions which an object uses to " -"implement the sequence protocol." -msgstr "" - -#: c-api/typeobj.rst:2875 -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 negative indices via the :c:member:`~PySequenceMethods.sq_item` " -"and the :c:member:`~PySequenceMethods.sq_ass_item` slots." -msgstr "" - -#: c-api/typeobj.rst:2884 -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:2892 -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:2900 -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 " -"subscription via the :c:member:`~PyMappingMethods.mp_subscript` slot. This " -"slot must be filled for the :c:func:`PySequence_Check` function to return " -"``1``, it can be ``NULL`` otherwise." -msgstr "" - -#: c-api/typeobj.rst:2906 -msgid "" -"Negative indexes are handled as follows: if " -"the :c:member:`~PySequenceMethods.sq_length` slot is filled, it is called " -"and the sequence length is used to compute a positive index which is passed " -"to :c:member:`~PySequenceMethods.sq_item`. If :c:member:`!sq_length` is " -"``NULL``, the index is passed as is to the function." -msgstr "" - -#: c-api/typeobj.rst:2915 -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:`PyObject_DelItem`, after trying the item assignment and " -"deletion via the :c:member:`~PyMappingMethods.mp_ass_subscript` slot. This " -"slot may be left to ``NULL`` if the object does not support item assignment " -"and deletion." -msgstr "" - -#: c-api/typeobj.rst:2926 -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:2935 -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 " -"may be left to ``NULL``, in this case :c:func:`!PySequence_InPlaceConcat` " -"will fall back to :c:func:`PySequence_Concat`. It is also used by the " -"augmented assignment ``+=``, after trying numeric in-place addition via " -"the :c:member:`~PyNumberMethods.nb_inplace_add` slot." -msgstr "" - -#: c-api/typeobj.rst:2946 -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 " -"may be left to ``NULL``, in this case :c:func:`!PySequence_InPlaceRepeat` " -"will fall back to :c:func:`PySequence_Repeat`. It is also used by the " -"augmented assignment ``*=``, after trying numeric in-place multiplication " -"via the :c:member:`~PyNumberMethods.nb_inplace_multiply` slot." -msgstr "" - -#: c-api/typeobj.rst:2957 -msgid "Buffer Object Structures" -msgstr "" - -#: c-api/typeobj.rst:2961 -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:3038 c-api/typeobj.rst:3115 c-api/typeobj.rst:3141 -msgid "The signature of this function is::" -msgstr "" - -#: c-api/typeobj.rst:2973 -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:2977 -msgid "" -"Check if the request can be met. If not, raise :exc:`BufferError`, set " -"``view->obj`` to ``NULL`` and return ``-1``." -msgstr "" - -#: c-api/typeobj.rst:2980 -msgid "Fill in the requested fields." -msgstr "" - -#: c-api/typeobj.rst:2982 -msgid "Increment an internal counter for the number of exports." -msgstr "" - -#: c-api/typeobj.rst:2984 -msgid "Set ``view->obj`` to *exporter* and increment ``view->obj``." -msgstr "" - -#: c-api/typeobj.rst:2986 -msgid "Return ``0``." -msgstr "" - -#: c-api/typeobj.rst:3051 -msgid "**Thread safety:**" -msgstr "" - -#: c-api/typeobj.rst:2990 -msgid "In the :term:`free-threaded build`, implementations must ensure:" -msgstr "" - -#: c-api/typeobj.rst:2992 -msgid "The export counter increment in step (3) is atomic." -msgstr "" - -#: c-api/typeobj.rst:2994 -msgid "" -"The underlying buffer data remains valid and at a stable memory location for " -"the lifetime of all exports." -msgstr "" - -#: c-api/typeobj.rst:2997 -msgid "" -"For objects that support resizing or reallocation (such " -"as :class:`bytearray`), the export counter is checked atomically before such " -"operations, and :exc:`BufferError` is raised if exports exist." -msgstr "" - -#: c-api/typeobj.rst:3001 -msgid "The function is safe to call concurrently from multiple threads." -msgstr "" - -#: c-api/typeobj.rst:3003 -msgid "" -"See also :ref:`thread-safety-memoryview` for the Python-level thread safety " -"guarantees of :class:`memoryview` objects." -msgstr "" - -#: c-api/typeobj.rst:3006 -msgid "" -"If *exporter* is part of a chain or tree of buffer providers, two main " -"schemes can be used:" -msgstr "" - -#: c-api/typeobj.rst:3009 -msgid "" -"Re-export: Each member of the tree acts as the exporting object and sets " -"``view->obj`` to a new reference to itself." -msgstr "" - -#: c-api/typeobj.rst:3012 -msgid "" -"Redirect: The buffer request is redirected to the root object of the tree. " -"Here, ``view->obj`` will be a new reference to the root object." -msgstr "" - -#: c-api/typeobj.rst:3016 -msgid "" -"The individual fields of *view* are described in section :ref:`Buffer " -"structure `, the rules how an exporter must react to " -"specific requests are in section :ref:`Buffer request types `." -msgstr "" - -#: c-api/typeobj.rst:3021 -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:`~Py_buffer.format`, :c:member:`~Py_buffer.shape`, :c:member:`~Py_buffer.strides`, :c:member:`~Py_buffer.suboffsets` " -"and :c:member:`~Py_buffer.internal` are read-only for the consumer." -msgstr "" - -#: c-api/typeobj.rst:3028 -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:3031 -msgid "" -":c:func:`PyObject_GetBuffer` is the interface for the consumer that wraps " -"this function." -msgstr "" - -#: c-api/typeobj.rst:3042 -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 " -"``NULL``. Otherwise, a standard implementation of this function will take " -"these optional steps:" -msgstr "" - -#: c-api/typeobj.rst:3047 -msgid "Decrement an internal counter for the number of exports." -msgstr "" - -#: c-api/typeobj.rst:3049 -msgid "If the counter is ``0``, free all memory associated with *view*." -msgstr "" - -#: c-api/typeobj.rst:3053 -msgid "In the :term:`free-threaded build`:" -msgstr "" - -#: c-api/typeobj.rst:3055 -msgid "The export counter decrement in step (1) must be atomic." -msgstr "" - -#: c-api/typeobj.rst:3057 -msgid "" -"Resource cleanup when the counter reaches zero must be done atomically, as " -"the final release may race with concurrent releases from other threads and " -"dellocation must only happen once." -msgstr "" - -#: c-api/typeobj.rst:3061 -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 " -"constant, while a consumer MAY pass a copy of the original buffer as the " -"*view* argument." -msgstr "" - -#: c-api/typeobj.rst:3067 -msgid "" -"This function MUST NOT decrement ``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:3072 -msgid "" -":c:func:`PyBuffer_Release` is the interface for the consumer that wraps this " -"function." -msgstr "" - -#: c-api/typeobj.rst:3080 -msgid "Async Object Structures" -msgstr "" - -#: c-api/typeobj.rst:3086 -msgid "" -"This structure holds pointers to the functions required to " -"implement :term:`awaitable` and :term:`asynchronous iterator` objects." -msgstr "" - -#: c-api/typeobj.rst:3106 -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:3109 -msgid "" -"This slot may be set to ``NULL`` if an object is not an :term:`awaitable`." -msgstr "" - -#: c-api/typeobj.rst:3119 -msgid "" -"Must return an :term:`asynchronous iterator` object. " -"See :meth:`~object.__anext__` for details." -msgstr "" - -#: c-api/typeobj.rst:3122 -msgid "" -"This slot may be set to ``NULL`` if an object does not implement " -"asynchronous iteration protocol." -msgstr "" - -#: c-api/typeobj.rst:3133 -msgid "" -"Must return an :term:`awaitable` object. See :meth:`~object.__anext__` for " -"details. This slot may be set to ``NULL``." -msgstr "" - -#: c-api/typeobj.rst:3145 -msgid "" -"See :c:func:`PyIter_Send` for details. This slot may be set to ``NULL``." -msgstr "" - -#: c-api/typeobj.rst:3154 -msgid "Slot Type typedefs" -msgstr "" - -#: c-api/typeobj.rst:3158 -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 " -"length for the instance, suitably aligned, and initialized to zeros, but " -"with :c:member:`~PyObject.ob_refcnt` set to ``1`` " -"and :c:member:`~PyObject.ob_type` set to the type argument. If the " -"type's :c:member:`~PyTypeObject.tp_itemsize` is non-zero, the " -"object's :c:member:`~PyVarObject.ob_size` field should be initialized to " -"*nitems* and the length of the allocated memory block should be " -"``tp_basicsize + nitems*tp_itemsize``, rounded up to a multiple of " -"``sizeof(void*)``; otherwise, *nitems* is not used and the length of the " -"block should be :c:member:`~PyTypeObject.tp_basicsize`." -msgstr "" - -#: c-api/typeobj.rst:3168 -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:3175 -msgid "See :c:member:`~PyTypeObject.tp_free`." -msgstr "" - -#: c-api/typeobj.rst:3179 -msgid "See :c:member:`~PyTypeObject.tp_new`." -msgstr "" - -#: c-api/typeobj.rst:3183 -msgid "See :c:member:`~PyTypeObject.tp_init`." -msgstr "" - -#: c-api/typeobj.rst:3187 -msgid "See :c:member:`~PyTypeObject.tp_repr`." -msgstr "" - -#: c-api/typeobj.rst:3200 -msgid "Return the value of the named attribute for the object." -msgstr "" - -#: c-api/typeobj.rst:3206 -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:3202 -msgid "See :c:member:`~PyTypeObject.tp_getattro`." -msgstr "" - -#: c-api/typeobj.rst:3209 -msgid "See :c:member:`~PyTypeObject.tp_setattro`." -msgstr "" - -#: c-api/typeobj.rst:3213 -msgid "See :c:member:`~PyTypeObject.tp_descr_get`." -msgstr "" - -#: c-api/typeobj.rst:3217 -msgid "See :c:member:`~PyTypeObject.tp_descr_set`." -msgstr "" - -#: c-api/typeobj.rst:3221 -msgid "See :c:member:`~PyTypeObject.tp_hash`." -msgstr "" - -#: c-api/typeobj.rst:3225 -msgid "See :c:member:`~PyTypeObject.tp_richcompare`." -msgstr "" - -#: c-api/typeobj.rst:3229 -msgid "See :c:member:`~PyTypeObject.tp_iter`." -msgstr "" - -#: c-api/typeobj.rst:3233 -msgid "See :c:member:`~PyTypeObject.tp_iternext`." -msgstr "" - -#: c-api/typeobj.rst:3247 -msgid "See :c:member:`~PyAsyncMethods.am_send`." -msgstr "" - -#: c-api/typeobj.rst:3263 -msgid "Examples" -msgstr "Exemples" - -#: c-api/typeobj.rst:3265 -msgid "" -"The following are simple examples of Python type definitions. They include " -"common usage you may encounter. Some demonstrate tricky corner cases. For " -"more examples, practical info, and a tutorial, see :ref:`defining-new-types` " -"and :ref:`new-types-topics`." -msgstr "" - -#: c-api/typeobj.rst:3270 -msgid "A basic :ref:`static type `::" -msgstr "" - -#: c-api/typeobj.rst:3287 -msgid "" -"You may also find older code (especially in the CPython code base) with a " -"more verbose initializer::" -msgstr "" - -#: c-api/typeobj.rst:3331 -msgid "A type that supports weakrefs, instance dicts, and hashing::" -msgstr "" - -#: c-api/typeobj.rst:3356 -msgid "" -"A str subclass that cannot be subclassed and cannot be called to create " -"instances (e.g. uses a separate factory func) " -"using :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag::" -msgstr "" - -#: c-api/typeobj.rst:3375 -msgid "" -"The simplest :ref:`static type ` with fixed-length instances::" -msgstr "" - -#: c-api/typeobj.rst:3386 -msgid "" -"The simplest :ref:`static type ` with variable-length " -"instances::" -msgstr "" - -#~ msgid "built-in function" -#~ msgstr "fonction native" - -#~ msgid "repr" -#~ msgstr "repr" - -#, fuzzy -#~ msgid ":c:macro:`Py_LT`" -#~ msgstr ":const:`Py_LT`" - -#, fuzzy -#~ msgid ":c:macro:`Py_LE`" -#~ msgstr ":const:`Py_LE`" - -#, fuzzy -#~ msgid ":c:macro:`Py_EQ`" -#~ msgstr ":const:`Py_EQ`" - -#, fuzzy -#~ msgid ":c:macro:`Py_NE`" -#~ msgstr ":const:`Py_NE`" - -#, fuzzy -#~ msgid ":c:macro:`Py_GT`" -#~ msgstr ":const:`Py_GT`" - -#, fuzzy -#~ msgid ":c:macro:`Py_GE`" -#~ msgstr ":const:`Py_GE`" diff --git a/c-api/unicode.po b/c-api/unicode.po deleted file mode 100644 index 2b6233ada5..0000000000 --- a/c-api/unicode.po +++ /dev/null @@ -1,2523 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-02-20 12:47+0100\n" -"Last-Translator: Victor Stinner \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" - -#: c-api/unicode.rst:6 -msgid "Unicode Objects and Codecs" -msgstr "Objets Unicode et Codecs" - -#: c-api/unicode.rst:9 -msgid "Unicode Objects" -msgstr "Objets Unicode" - -#: c-api/unicode.rst:11 -msgid "" -"Since the implementation of :pep:`393` in Python 3.3, Unicode objects " -"internally use a variety of representations, in order to allow handling the " -"complete range of Unicode characters while staying memory efficient. There " -"are special cases for strings where all code points are below 128, 256, or " -"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:17 -msgid "" -"UTF-8 representation is created on demand and cached in the Unicode object." -msgstr "" - -#: c-api/unicode.rst:20 -#, fuzzy -msgid "" -"The :c:type:`Py_UNICODE` representation has been removed since Python 3.12 " -"with deprecated APIs. 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:26 -msgid "Unicode Type" -msgstr "Type Unicode" - -#: c-api/unicode.rst:28 -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:33 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python Unicode type. " -"It is exposed to Python code as :py:class:`str`." -msgstr "" - -#: c-api/unicode.rst:39 -msgid "" -"This instance of :c:type:`PyTypeObject` represents the Python Unicode " -"iterator type. It is used to iterate over Unicode string objects." -msgstr "" - -#: c-api/unicode.rst:47 -msgid "" -"These types are typedefs for unsigned integer types wide enough to contain " -"characters of 32 bits, 16 bits and 8 bits, respectively. When dealing with " -"single Unicode characters, use :c:type:`Py_UCS4`." -msgstr "" -"Voici les *typedefs* pour les types entiers non signés suffisamment large " -"pour contenir des caractères de 32 bits, 16 bits et 8 bits, respectivement. " -"Pour traiter des caractères uniques, utilisez :c:type:`Py_UCS4`." - -#: c-api/unicode.rst:58 -msgid "" -"These subtypes of :c:type:`PyObject` represent a Python Unicode object. In " -"almost all cases, they shouldn't be used directly, since all API functions " -"that deal with Unicode objects take and return :c:type:`PyObject` pointers." -msgstr "" - -#: c-api/unicode.rst:65 -msgid "" -"The structure of a particular object can be determined using the following " -"macros. The macros cannot fail; their behavior is undefined if their " -"argument is not a Python Unicode object." -msgstr "" - -#: c-api/unicode.rst:74 -msgid "True if *o* uses the :c:struct:`PyCompactUnicodeObject` structure." -msgstr "" - -#: c-api/unicode.rst:81 -msgid "True if *o* uses the :c:struct:`PyASCIIObject` structure." -msgstr "" - -#: c-api/unicode.rst:86 -msgid "" -"The following APIs are C macros and static inlined functions for fast checks " -"and access to internal read-only data of Unicode objects:" -msgstr "" - -#: c-api/unicode.rst:91 -msgid "" -"Return true if the object *obj* is a Unicode object or an instance of a " -"Unicode subtype. This function always succeeds." -msgstr "" - -#: c-api/unicode.rst:97 -msgid "" -"Return true if the object *obj* is a Unicode object, but not an instance of " -"a subtype. This function always succeeds." -msgstr "" - -#: c-api/unicode.rst:103 -msgid "" -"Return the length of the Unicode string, in code points. *unicode* has to " -"be a Unicode object in the \"canonical\" representation (not checked)." -msgstr "" - -#: c-api/unicode.rst:113 -msgid "" -"Return a pointer to the canonical representation cast to UCS1, UCS2 or UCS4 " -"integer types for direct character access. No checks are performed if the " -"canonical representation has the correct character size; " -"use :c:func:`PyUnicode_KIND` to select the right function." -msgstr "" - -#: c-api/unicode.rst:125 -msgid "Return values of the :c:func:`PyUnicode_KIND` macro." -msgstr "" - -#: c-api/unicode.rst:129 -msgid "``PyUnicode_WCHAR_KIND`` has been removed." -msgstr "" - -#: c-api/unicode.rst:135 -msgid "" -"Return one of the PyUnicode kind constants (see above) that indicate how " -"many bytes per character this Unicode object uses to store its data. " -"*unicode* has to be a Unicode object in the \"canonical\" representation " -"(not checked)." -msgstr "" - -#: c-api/unicode.rst:144 -msgid "" -"Return a void pointer to the raw Unicode buffer. *unicode* has to be a " -"Unicode object in the \"canonical\" representation (not checked)." -msgstr "" - -#: c-api/unicode.rst:153 -msgid "" -"Write the code point *value* to the given zero-based *index* in a string." -msgstr "" - -#: c-api/unicode.rst:155 -msgid "" -"The *kind* value and *data* pointer must have been obtained from a string " -"using :c:func:`PyUnicode_KIND` and :c:func:`PyUnicode_DATA` respectively. " -"You must hold a reference to that string while calling :c:func:`!" -"PyUnicode_WRITE`. All requirements of :c:func:`PyUnicode_WriteChar` also " -"apply." -msgstr "" - -#: c-api/unicode.rst:161 -msgid "" -"The function performs no checks for any of its requirements, and is intended " -"for usage in loops." -msgstr "" - -#: c-api/unicode.rst:170 -msgid "" -"Read a code point from a canonical representation *data* (as obtained " -"with :c:func:`PyUnicode_DATA`). No checks or ready calls are performed." -msgstr "" - -#: c-api/unicode.rst:178 -msgid "" -"Read a character from a Unicode object *unicode*, 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:187 -msgid "" -"Return the maximum code point that is suitable for creating another string " -"based on *unicode*, which must be in the \"canonical\" representation. This " -"is always an approximation but more efficient than iterating over the string." -msgstr "" - -#: c-api/unicode.rst:196 -msgid "" -"Return ``1`` if the string is a valid identifier according to the language " -"definition, section :ref:`identifiers`. Return ``0`` otherwise." -msgstr "" - -#: c-api/unicode.rst:199 -msgid "" -"The function does not call :c:func:`Py_FatalError` anymore if the string is " -"not ready." -msgstr "" - -#: c-api/unicode.rst:206 -msgid "" -"Return true if the string only contains ASCII characters. Equivalent " -"to :py:meth:`str.isascii`." -msgstr "" - -#: c-api/unicode.rst:214 -msgid "" -"If the hash of *str*, as returned by :c:func:`PyObject_Hash`, has been " -"cached and is immediately available, return it. Otherwise, return ``-1`` " -"*without* setting an exception." -msgstr "" - -#: c-api/unicode.rst:218 -msgid "" -"If *str* is not a string (that is, if ``PyUnicode_Check(obj)`` is false), " -"the behavior is undefined." -msgstr "" - -#: c-api/unicode.rst:221 -msgid "This function never fails with an exception." -msgstr "" - -#: c-api/unicode.rst:223 -msgid "" -"Note that there are no guarantees on when an object's hash is cached, and " -"the (non-)existence of a cached hash does not imply that the string has any " -"other properties." -msgstr "" - -#: c-api/unicode.rst:229 -msgid "Unicode Character Properties" -msgstr "" - -#: c-api/unicode.rst:231 -msgid "" -"Unicode provides many different character properties. The most often needed " -"ones are available through these macros which are mapped to C functions " -"depending on the Python configuration." -msgstr "" - -#: c-api/unicode.rst:238 -msgid "" -"Return ``1`` or ``0`` depending on whether *ch* is a whitespace character." -msgstr "" - -#: c-api/unicode.rst:243 -msgid "" -"Return ``1`` or ``0`` depending on whether *ch* is a lowercase character." -msgstr "" - -#: c-api/unicode.rst:248 -msgid "" -"Return ``1`` or ``0`` depending on whether *ch* is an uppercase character." -msgstr "" - -#: c-api/unicode.rst:253 -msgid "" -"Return ``1`` or ``0`` depending on whether *ch* is a titlecase character." -msgstr "" - -#: c-api/unicode.rst:258 -msgid "" -"Return ``1`` or ``0`` depending on whether *ch* is a linebreak character." -msgstr "" - -#: c-api/unicode.rst:263 -msgid "Return ``1`` or ``0`` depending on whether *ch* is a decimal character." -msgstr "" - -#: c-api/unicode.rst:268 -msgid "Return ``1`` or ``0`` depending on whether *ch* is a digit character." -msgstr "" - -#: c-api/unicode.rst:273 -msgid "Return ``1`` or ``0`` depending on whether *ch* is a numeric character." -msgstr "" - -#: c-api/unicode.rst:278 -msgid "" -"Return ``1`` or ``0`` depending on whether *ch* is an alphabetic character." -msgstr "" - -#: c-api/unicode.rst:283 -msgid "" -"Return ``1`` or ``0`` depending on whether *ch* is an alphanumeric character." -msgstr "" - -#: c-api/unicode.rst:288 -msgid "" -"Return ``1`` or ``0`` depending on whether *ch* is a printable character, in " -"the sense of :meth:`str.isprintable`." -msgstr "" - -#: c-api/unicode.rst:292 -msgid "These APIs can be used for fast direct character conversions:" -msgstr "" - -#: c-api/unicode.rst:297 -msgid "Return the character *ch* converted to lower case." -msgstr "" - -#: c-api/unicode.rst:302 -msgid "Return the character *ch* converted to upper case." -msgstr "" - -#: c-api/unicode.rst:307 -msgid "Return the character *ch* converted to title case." -msgstr "" - -#: c-api/unicode.rst:312 -msgid "" -"Return the character *ch* converted to a decimal positive integer. Return " -"``-1`` if this is not possible. This function does not raise exceptions." -msgstr "" - -#: c-api/unicode.rst:318 -msgid "" -"Return the character *ch* converted to a single digit integer. Return ``-1`` " -"if this is not possible. This function does not raise exceptions." -msgstr "" - -#: c-api/unicode.rst:324 -msgid "" -"Return the character *ch* converted to a double. Return ``-1.0`` if this is " -"not possible. This function does not raise exceptions." -msgstr "" - -#: c-api/unicode.rst:328 -msgid "These APIs can be used to work with surrogates:" -msgstr "" - -#: c-api/unicode.rst:332 -msgid "Check if *ch* is a surrogate (``0xD800 <= ch <= 0xDFFF``)." -msgstr "" - -#: c-api/unicode.rst:336 -msgid "Check if *ch* is a high surrogate (``0xD800 <= ch <= 0xDBFF``)." -msgstr "" - -#: c-api/unicode.rst:340 -msgid "Check if *ch* is a low surrogate (``0xDC00 <= ch <= 0xDFFF``)." -msgstr "" - -#: c-api/unicode.rst:344 -msgid "" -"Return the high UTF-16 surrogate (``0xD800`` to ``0xDBFF``) for a Unicode " -"code point in the range ``[0x10000; 0x10FFFF]``." -msgstr "" - -#: c-api/unicode.rst:349 -msgid "" -"Return the low UTF-16 surrogate (``0xDC00`` to ``0xDFFF``) for a Unicode " -"code point in the range ``[0x10000; 0x10FFFF]``." -msgstr "" - -#: c-api/unicode.rst:354 -msgid "" -"Join two surrogate code points and return a single :c:type:`Py_UCS4` value. " -"*high* and *low* are respectively the leading and trailing surrogates in a " -"surrogate pair. *high* must be in the range ``[0xD800; 0xDBFF]`` and *low* " -"must be in the range ``[0xDC00; 0xDFFF]``." -msgstr "" - -#: c-api/unicode.rst:361 -msgid "Creating and accessing Unicode strings" -msgstr "" - -#: c-api/unicode.rst:363 -msgid "" -"To create Unicode objects and access their basic sequence properties, use " -"these APIs:" -msgstr "" - -#: c-api/unicode.rst:368 -msgid "" -"Create a new Unicode object. *maxchar* should be the true maximum code " -"point to be placed in the string. As an approximation, it can be rounded up " -"to the nearest value in the sequence 127, 255, 65535, 1114111." -msgstr "" - -#: c-api/unicode.rst:372 -msgid "On error, set an exception and return ``NULL``." -msgstr "" - -#: c-api/unicode.rst:374 -msgid "" -"After creation, the string can be filled " -"by :c:func:`PyUnicode_WriteChar`, :c:func:`PyUnicode_CopyCharacters`, :c:func:`PyUnicode_Fill`, :c:func:`PyUnicode_WRITE` " -"or similar. Since strings are supposed to be immutable, take care to not " -"“use” the result while it is being modified. In particular, before it's " -"filled with its final contents, a string:" -msgstr "" - -#: c-api/unicode.rst:381 -msgid "must not be hashed," -msgstr "" - -#: c-api/unicode.rst:382 -msgid "" -"must not be :c:func:`converted to UTF-8 `, or " -"another non-\"canonical\" representation," -msgstr "" - -#: c-api/unicode.rst:384 -msgid "must not have its reference count changed," -msgstr "" - -#: c-api/unicode.rst:385 -msgid "must not be shared with code that might do one of the above." -msgstr "" - -#: c-api/unicode.rst:387 -msgid "" -"This list is not exhaustive. Avoiding these uses is your responsibility; " -"Python does not always check these requirements." -msgstr "" - -#: c-api/unicode.rst:390 -msgid "" -"To avoid accidentally exposing a partially-written string object, prefer " -"using the :c:type:`PyUnicodeWriter` API, or one of the ``PyUnicode_From*`` " -"functions below." -msgstr "" - -#: c-api/unicode.rst:401 -msgid "" -"Create a new Unicode object with the given *kind* (possible values " -"are :c:macro:`PyUnicode_1BYTE_KIND` etc., as returned " -"by :c:func:`PyUnicode_KIND`). The *buffer* must point to an array of *size* " -"units of 1, 2 or 4 bytes per character, as given by the kind." -msgstr "" - -#: c-api/unicode.rst:406 -msgid "" -"If necessary, the input *buffer* is copied and transformed into the " -"canonical representation. For example, if the *buffer* is a UCS4 string " -"(:c:macro:`PyUnicode_4BYTE_KIND`) and it consists only of codepoints in the " -"UCS1 range, it will be transformed into UCS1 " -"(:c:macro:`PyUnicode_1BYTE_KIND`)." -msgstr "" - -#: c-api/unicode.rst:417 -msgid "" -"Create a Unicode object from the char buffer *str*. The bytes will be " -"interpreted as being UTF-8 encoded. The buffer is copied into the new " -"object. The return value might be a shared object, i.e. modification of the " -"data is not allowed." -msgstr "" - -#: c-api/unicode.rst:423 -msgid "This function raises :exc:`SystemError` when:" -msgstr "" - -#: c-api/unicode.rst:425 -msgid "*size* < 0," -msgstr "" - -#: c-api/unicode.rst:426 -msgid "*str* is ``NULL`` and *size* > 0" -msgstr "" - -#: c-api/unicode.rst:428 -msgid "*str* == ``NULL`` with *size* > 0 is not allowed anymore." -msgstr "" - -#: c-api/unicode.rst:434 -msgid "" -"Create a Unicode object from a UTF-8 encoded null-terminated char buffer " -"*str*." -msgstr "" - -#: c-api/unicode.rst:440 -msgid "" -"Take a C :c:func:`printf`\\ -style *format* string and a variable number of " -"arguments, calculate the size of the resulting Python Unicode string and " -"return a string with the values formatted into it. The variable arguments " -"must be C types and must correspond exactly to the format characters in the " -"*format* ASCII-encoded string." -msgstr "" - -#: c-api/unicode.rst:446 -msgid "" -"A conversion specifier contains two or more characters and has the following " -"components, which must occur in this order:" -msgstr "" -"Un indicateur de conversion contient deux ou plusieurs caractères et " -"comporte les éléments suivants, qui doivent apparaître dans cet ordre :" - -#: c-api/unicode.rst:449 -msgid "The ``'%'`` character, which marks the start of the specifier." -msgstr "le caractère ``'%'``, qui marque le début du marqueur ;" - -#: c-api/unicode.rst:451 -msgid "" -"Conversion flags (optional), which affect the result of some conversion " -"types." -msgstr "" -"des indications de conversion, facultatives, qui affectent le résultat de " -"certains types de conversion ;" - -#: c-api/unicode.rst:454 -msgid "" -"Minimum field width (optional). If specified as an ``'*'`` (asterisk), the " -"actual width is given in the next argument, which must be of " -"type :c:expr:`int`, and the object to convert comes after the minimum field " -"width and optional precision." -msgstr "" - -#: c-api/unicode.rst:459 -msgid "" -"Precision (optional), given as a ``'.'`` (dot) followed by the precision. If " -"specified as ``'*'`` (an asterisk), the actual precision is given in the " -"next argument, which must be of type :c:expr:`int`, and the value to convert " -"comes after the precision." -msgstr "" - -#: c-api/unicode.rst:464 -msgid "Length modifier (optional)." -msgstr "modificateur de longueur (facultatif) ;" - -#: c-api/unicode.rst:466 -msgid "Conversion type." -msgstr "type de conversion." - -#: c-api/unicode.rst:468 -msgid "The conversion flag characters are:" -msgstr "Les caractères indicateurs de conversion sont :" - -#: c-api/unicode.rst:473 -msgid "Flag" -msgstr "Option" - -#: c-api/unicode.rst:473 -msgid "Meaning" -msgstr "Signification" - -#: c-api/unicode.rst:475 -msgid "``0``" -msgstr "``0``" - -#: c-api/unicode.rst:475 -msgid "The conversion will be zero padded for numeric values." -msgstr "Les valeurs numériques converties sont complétées de zéros." - -#: c-api/unicode.rst:477 -msgid "``-``" -msgstr "" - -#: c-api/unicode.rst:477 -msgid "" -"The converted value is left adjusted (overrides the ``0`` flag if both are " -"given)." -msgstr "" - -#: c-api/unicode.rst:481 -msgid "" -"The length modifiers for following integer conversions (``d``, ``i``, ``o``, " -"``u``, ``x``, or ``X``) specify the type of the argument (:c:expr:`int` by " -"default):" -msgstr "" - -#: c-api/unicode.rst:488 -msgid "Modifier" -msgstr "" - -#: c-api/unicode.rst:488 -#, fuzzy -msgid "Types" -msgstr "Type" - -#: c-api/unicode.rst:490 -msgid "``l``" -msgstr "``l``" - -#: c-api/unicode.rst:490 -msgid ":c:expr:`long` or :c:expr:`unsigned long`" -msgstr "" - -#: c-api/unicode.rst:492 -msgid "``ll``" -msgstr "" - -#: c-api/unicode.rst:492 -msgid ":c:expr:`long long` or :c:expr:`unsigned long long`" -msgstr "" - -#: c-api/unicode.rst:494 -msgid "``j``" -msgstr "" - -#: c-api/unicode.rst:494 -msgid ":c:type:`intmax_t` or :c:type:`uintmax_t`" -msgstr "" - -#: c-api/unicode.rst:496 -msgid "``z``" -msgstr "" - -#: c-api/unicode.rst:496 -msgid ":c:type:`size_t` or :c:type:`ssize_t`" -msgstr "" - -#: c-api/unicode.rst:498 -msgid "``t``" -msgstr "" - -#: c-api/unicode.rst:498 -msgid ":c:type:`ptrdiff_t`" -msgstr "" - -#: c-api/unicode.rst:501 -msgid "" -"The length modifier ``l`` for following conversions ``s`` or ``V`` specify " -"that the type of the argument is :c:expr:`const wchar_t*`." -msgstr "" - -#: c-api/unicode.rst:504 -msgid "The conversion specifiers are:" -msgstr "" - -#: c-api/unicode.rst:510 -msgid "Conversion Specifier" -msgstr "" - -#: c-api/unicode.rst:511 -msgid "Type" -msgstr "Type" - -#: c-api/unicode.rst:512 -#, fuzzy -msgid "Comment" -msgstr "Commentaires" - -#: c-api/unicode.rst:514 -msgid "``%``" -msgstr "" - -#: c-api/unicode.rst:515 -msgid "*n/a*" -msgstr "" - -#: c-api/unicode.rst:516 -msgid "The literal ``%`` character." -msgstr "" - -#: c-api/unicode.rst:518 -msgid "``d``, ``i``" -msgstr "" - -#: c-api/unicode.rst:523 c-api/unicode.rst:531 c-api/unicode.rst:535 -msgid "Specified by the length modifier" -msgstr "" - -#: c-api/unicode.rst:520 -msgid "The decimal representation of a signed C integer." -msgstr "" - -#: c-api/unicode.rst:522 -msgid "``u``" -msgstr "" - -#: c-api/unicode.rst:524 -msgid "The decimal representation of an unsigned C integer." -msgstr "" - -#: c-api/unicode.rst:526 -msgid "``o``" -msgstr "" - -#: c-api/unicode.rst:528 -msgid "The octal representation of an unsigned C integer." -msgstr "" - -#: c-api/unicode.rst:530 -msgid "``x``" -msgstr "``x``" - -#: c-api/unicode.rst:532 -msgid "The hexadecimal representation of an unsigned C integer (lowercase)." -msgstr "" - -#: c-api/unicode.rst:534 -msgid "``X``" -msgstr "" - -#: c-api/unicode.rst:536 -msgid "The hexadecimal representation of an unsigned C integer (uppercase)." -msgstr "" - -#: c-api/unicode.rst:538 -msgid "``c``" -msgstr "``c``" - -#: c-api/unicode.rst:539 -msgid ":c:expr:`int`" -msgstr "" - -#: c-api/unicode.rst:540 -msgid "A single character." -msgstr "" - -#: c-api/unicode.rst:542 -msgid "``s``" -msgstr "``s``" - -#: c-api/unicode.rst:543 -msgid ":c:expr:`const char*` or :c:expr:`const wchar_t*`" -msgstr "" - -#: c-api/unicode.rst:544 -msgid "A null-terminated C character array." -msgstr "" - -#: c-api/unicode.rst:546 -msgid "``p``" -msgstr "``p``" - -#: c-api/unicode.rst:547 -msgid ":c:expr:`const void*`" -msgstr "" - -#: c-api/unicode.rst:548 -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." -msgstr "" - -#: c-api/unicode.rst:553 -msgid "``A``" -msgstr "" - -#: c-api/unicode.rst:558 c-api/unicode.rst:572 c-api/unicode.rst:581 -#, fuzzy -msgid ":c:expr:`PyObject*`" -msgstr "PyObject\\*" - -#: c-api/unicode.rst:555 -msgid "The result of calling :func:`ascii`." -msgstr "" - -#: c-api/unicode.rst:557 -msgid "``U``" -msgstr "" - -#: c-api/unicode.rst:559 -#, fuzzy -msgid "A Unicode object." -msgstr "Un objet Unicode." - -#: c-api/unicode.rst:561 -msgid "``V``" -msgstr "" - -#: c-api/unicode.rst:562 -msgid ":c:expr:`PyObject*`, :c:expr:`const char*` or :c:expr:`const wchar_t*`" -msgstr "" - -#: c-api/unicode.rst:563 -msgid "" -"A Unicode object (which may be ``NULL``) and a null-terminated C character " -"array as a second parameter (which will be used, if the first parameter is " -"``NULL``)." -msgstr "" - -#: c-api/unicode.rst:567 -msgid "``S``" -msgstr "" - -#: c-api/unicode.rst:569 -msgid "The result of calling :c:func:`PyObject_Str`." -msgstr "" - -#: c-api/unicode.rst:571 -msgid "``R``" -msgstr "" - -#: c-api/unicode.rst:573 -msgid "The result of calling :c:func:`PyObject_Repr`." -msgstr "" - -#: c-api/unicode.rst:575 -msgid "``T``" -msgstr "" - -#: c-api/unicode.rst:577 -msgid "" -"Get the fully qualified name of an object type; " -"call :c:func:`PyType_GetFullyQualifiedName`." -msgstr "" - -#: c-api/unicode.rst:580 -msgid "``#T``" -msgstr "" - -#: c-api/unicode.rst:582 -msgid "" -"Similar to ``T`` format, but use a colon (``:``) as separator between the " -"module name and the qualified name." -msgstr "" - -#: c-api/unicode.rst:585 -msgid "``N``" -msgstr "``N``" - -#: c-api/unicode.rst:591 -#, fuzzy -msgid ":c:expr:`PyTypeObject*`" -msgstr "PyObject\\*" - -#: c-api/unicode.rst:587 -msgid "" -"Get the fully qualified name of a type; " -"call :c:func:`PyType_GetFullyQualifiedName`." -msgstr "" - -#: c-api/unicode.rst:590 -msgid "``#N``" -msgstr "" - -#: c-api/unicode.rst:592 -msgid "" -"Similar to ``N`` format, but use a colon (``:``) as separator between the " -"module name and the qualified name." -msgstr "" - -#: c-api/unicode.rst:596 -msgid "" -"The width formatter unit is number of characters rather than bytes. The " -"precision formatter unit is number of bytes or :c:type:`wchar_t` items (if " -"the length modifier ``l`` is used) for ``\"%s\"`` and ``\"%V\"`` (if the " -"``PyObject*`` argument is ``NULL``), and a number of characters for " -"``\"%A\"``, ``\"%U\"``, ``\"%S\"``, ``\"%R\"`` and ``\"%V\"`` (if the " -"``PyObject*`` argument is not ``NULL``)." -msgstr "" - -#: c-api/unicode.rst:604 -msgid "" -"Unlike to C :c:func:`printf` the ``0`` flag has effect even when a precision " -"is given for integer conversions (``d``, ``i``, ``u``, ``o``, ``x``, or " -"``X``)." -msgstr "" - -#: c-api/unicode.rst:608 -msgid "Support for ``\"%lld\"`` and ``\"%llu\"`` added." -msgstr "" - -#: c-api/unicode.rst:611 -msgid "Support for ``\"%li\"``, ``\"%lli\"`` and ``\"%zi\"`` added." -msgstr "" - -#: c-api/unicode.rst:614 -msgid "" -"Support width and precision formatter for ``\"%s\"``, ``\"%A\"``, " -"``\"%U\"``, ``\"%V\"``, ``\"%S\"``, ``\"%R\"`` added." -msgstr "" - -#: c-api/unicode.rst:618 -msgid "" -"Support for conversion specifiers ``o`` and ``X``. Support for length " -"modifiers ``j`` and ``t``. Length modifiers are now applied to all integer " -"conversions. Length modifier ``l`` is now applied to conversion specifiers " -"``s`` and ``V``. Support for variable width and precision ``*``. Support for " -"flag ``-``." -msgstr "" - -#: c-api/unicode.rst:626 -msgid "" -"An unrecognized format character now sets a :exc:`SystemError`. In previous " -"versions it caused all the rest of the format string to be copied as-is to " -"the result string, and any extra arguments discarded." -msgstr "" - -#: c-api/unicode.rst:630 -msgid "Support for ``%T``, ``%#T``, ``%N`` and ``%#N`` formats added." -msgstr "" - -#: c-api/unicode.rst:636 -msgid "" -"Identical to :c:func:`PyUnicode_FromFormat` except that it takes exactly two " -"arguments." -msgstr "" - -#: c-api/unicode.rst:642 -msgid "" -"Copy an instance of a Unicode subtype to a new true Unicode object if " -"necessary. If *obj* is already a true Unicode object (not a subtype), return " -"a new :term:`strong reference` to the object." -msgstr "" - -#: c-api/unicode.rst:646 -msgid "" -"Objects other than Unicode or its subtypes will cause a :exc:`TypeError`." -msgstr "" - -#: c-api/unicode.rst:651 -msgid "Create a Unicode Object from the given Unicode code point *ordinal*." -msgstr "" - -#: c-api/unicode.rst:653 -msgid "" -"The ordinal must be in ``range(0x110000)``. A :exc:`ValueError` is raised in " -"the case it is not." -msgstr "" - -#: c-api/unicode.rst:660 -msgid "Decode an encoded object *obj* to a Unicode object." -msgstr "" - -#: c-api/unicode.rst:662 -msgid "" -":class:`bytes`, :class:`bytearray` and other :term:`bytes-like objects " -"` are decoded according to the given *encoding* and using " -"the error handling defined by *errors*. Both can be ``NULL`` to have the " -"interface use the default values (see :ref:`builtincodecs` for details)." -msgstr "" - -#: c-api/unicode.rst:668 -msgid "" -"All other objects, including Unicode objects, cause a :exc:`TypeError` to be " -"set." -msgstr "" - -#: c-api/unicode.rst:671 -msgid "" -"The API returns ``NULL`` if there was an error. The caller is responsible " -"for decref'ing the returned objects." -msgstr "" - -#: c-api/unicode.rst:677 -msgid "" -"Append the string *right* to the end of *p_left*. *p_left* must point to " -"a :term:`strong reference` to a Unicode object; :c:func:`!PyUnicode_Append` " -"releases (\"steals\") this reference." -msgstr "" - -#: c-api/unicode.rst:681 -msgid "On error, set *\\*p_left* to ``NULL`` and set an exception." -msgstr "" - -#: c-api/unicode.rst:683 -msgid "On success, set *\\*p_left* to a new strong reference to the result." -msgstr "" - -#: c-api/unicode.rst:688 -msgid "" -"The function is similar to :c:func:`PyUnicode_Append`, with the only " -"difference being that it decrements the reference count of *right* by one." -msgstr "" - -#: c-api/unicode.rst:694 -msgid "" -"Return a mapping suitable for decoding a custom single-byte encoding. Given " -"a Unicode string *string* of up to 256 characters representing an encoding " -"table, returns either a compact internal mapping object or a dictionary " -"mapping character ordinals to byte values. Raises a :exc:`TypeError` and " -"return ``NULL`` on invalid input." -msgstr "" - -#: c-api/unicode.rst:705 -msgid "" -"Return the name of the default string encoding, ``\"utf-8\"``. " -"See :func:`sys.getdefaultencoding`." -msgstr "" - -#: c-api/unicode.rst:708 -msgid "" -"The returned string does not need to be freed, and is valid until " -"interpreter shutdown." -msgstr "" - -#: c-api/unicode.rst:714 -msgid "Return the length of the Unicode object, in code points." -msgstr "" - -#: c-api/unicode.rst:716 -msgid "On error, set an exception and return ``-1``." -msgstr "" - -#: c-api/unicode.rst:727 -msgid "" -"Copy characters from one Unicode object into another. This function " -"performs character conversion when necessary and falls back to :c:func:`!" -"memcpy` if possible. Returns ``-1`` and sets an exception on error, " -"otherwise returns the number of copied characters." -msgstr "" - -#: c-api/unicode.rst:762 c-api/unicode.rst:782 -msgid "" -"The string must not have been “used” yet. See :c:func:`PyUnicode_New` for " -"details." -msgstr "" - -#: c-api/unicode.rst:740 -msgid "" -"Resize a Unicode object *\\*unicode* to the new *length* in code points." -msgstr "" - -#: c-api/unicode.rst:742 -msgid "" -"Try to resize the string in place (which is usually faster than allocating a " -"new string and copying characters), or create a new string." -msgstr "" - -#: c-api/unicode.rst:745 -msgid "" -"*\\*unicode* is modified to point to the new (resized) object and ``0`` is " -"returned on success. Otherwise, ``-1`` is returned and an exception is set, " -"and *\\*unicode* is left untouched." -msgstr "" - -#: c-api/unicode.rst:749 -msgid "" -"The function doesn't check string content, the result may not be a string in " -"canonical representation." -msgstr "" - -#: c-api/unicode.rst:756 -msgid "" -"Fill a string with a character: write *fill_char* into " -"``unicode[start:start+length]``." -msgstr "" - -#: c-api/unicode.rst:759 -msgid "" -"Fail if *fill_char* is bigger than the string maximum character, or if the " -"string has more than 1 reference." -msgstr "" - -#: c-api/unicode.rst:765 -msgid "" -"Return the number of written characters, or return ``-1`` and raise an " -"exception on error." -msgstr "" - -#: c-api/unicode.rst:774 -msgid "" -"Write a *character* to the string *unicode* at the zero-based *index*. " -"Return ``0`` on success, ``-1`` on error with an exception set." -msgstr "" - -#: c-api/unicode.rst:777 -msgid "" -"This function checks that *unicode* is a Unicode object, that the index is " -"not out of bounds, and that the object's reference count is one. " -"See :c:func:`PyUnicode_WRITE` for a version that skips these checks, making " -"them your responsibility." -msgstr "" - -#: c-api/unicode.rst:790 -msgid "" -"Read a character from a string. This function checks that *unicode* is a " -"Unicode object and the index is not out of bounds, in contrast " -"to :c:func:`PyUnicode_READ_CHAR`, which performs no error checking." -msgstr "" - -#: c-api/unicode.rst:794 -msgid "Return character on success, ``-1`` on error with an exception set." -msgstr "" - -#: c-api/unicode.rst:802 -msgid "" -"Return a substring of *unicode*, from character index *start* (included) to " -"character index *end* (excluded). Negative indices are not supported. On " -"error, set an exception and return ``NULL``." -msgstr "" - -#: c-api/unicode.rst:812 -msgid "" -"Copy the string *unicode* into a UCS4 buffer, including a null character, if " -"*copy_null* is set. Returns ``NULL`` and sets an exception on error (in " -"particular, a :exc:`SystemError` if *buflen* is smaller than the length of " -"*unicode*). *buffer* is returned on success." -msgstr "" - -#: c-api/unicode.rst:822 -msgid "" -"Copy the string *unicode* into a new UCS4 buffer that is allocated " -"using :c:func:`PyMem_Malloc`. If this fails, ``NULL`` is returned with " -"a :exc:`MemoryError` set. The returned buffer always has an extra null code " -"point appended." -msgstr "" - -#: c-api/unicode.rst:831 -msgid "Locale Encoding" -msgstr "" - -#: c-api/unicode.rst:833 -msgid "" -"The current locale encoding can be used to decode text from the operating " -"system." -msgstr "" - -#: c-api/unicode.rst:840 -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 " -"null character but cannot contain embedded null characters." -msgstr "" - -#: c-api/unicode.rst:847 -msgid "" -"Use :c:func:`PyUnicode_DecodeFSDefaultAndSize` to decode a string from " -"the :term:`filesystem encoding and error handler`." -msgstr "" - -#: c-api/unicode.rst:885 -msgid "This function ignores the :ref:`Python UTF-8 Mode `." -msgstr "" - -#: c-api/unicode.rst:970 -msgid "The :c:func:`Py_DecodeLocale` function." -msgstr "" - -#: c-api/unicode.rst:858 -msgid "" -"The function now also uses the current locale encoding for the " -"``surrogateescape`` error handler, except on Android. " -"Previously, :c:func:`Py_DecodeLocale` was used for the ``surrogateescape``, " -"and the current locale encoding was used for ``strict``." -msgstr "" - -#: c-api/unicode.rst:867 -msgid "" -"Similar to :c:func:`PyUnicode_DecodeLocaleAndSize`, but compute the string " -"length using :c:func:`!strlen`." -msgstr "" - -#: c-api/unicode.rst:875 -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." -msgstr "" - -#: c-api/unicode.rst:882 -msgid "" -"Use :c:func:`PyUnicode_EncodeFSDefault` to encode a string to " -"the :term:`filesystem encoding and error handler`." -msgstr "" - -#: c-api/unicode.rst:1001 -msgid "The :c:func:`Py_EncodeLocale` function." -msgstr "" - -#: c-api/unicode.rst:893 -msgid "" -"The function now also uses the current locale encoding for the " -"``surrogateescape`` error handler, except on Android. " -"Previously, :c:func:`Py_EncodeLocale` was used for the ``surrogateescape``, " -"and the current locale encoding was used for ``strict``." -msgstr "" - -#: c-api/unicode.rst:902 -msgid "File System Encoding" -msgstr "" - -#: c-api/unicode.rst:904 -msgid "" -"Functions encoding to and decoding from the :term:`filesystem encoding and " -"error handler` (:pep:`383` and :pep:`529`)." -msgstr "" - -#: c-api/unicode.rst:907 -msgid "" -"To encode file names to :class:`bytes` during argument parsing, the " -"``\"O&\"`` converter should be used, passing :c:func:`!" -"PyUnicode_FSConverter` as the conversion function:" -msgstr "" - -#: c-api/unicode.rst:913 -msgid "" -":ref:`PyArg_Parse\\* 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 an address of a C variable of " -"type :c:expr:`PyObject*` (or :c:expr:`PyBytesObject*`). On success, set the " -"variable to a new :term:`strong reference` to a :ref:`bytes object " -"` which must be released when it is no longer used and return " -"a non-zero value (:c:macro:`Py_CLEANUP_SUPPORTED`). Embedded null bytes are " -"not allowed in the result. On failure, return ``0`` with an exception set." -msgstr "" - -#: c-api/unicode.rst:925 -msgid "" -"If *obj* is ``NULL``, the function releases a strong reference stored in the " -"variable referred by *result* and returns ``1``." -msgstr "" - -#: c-api/unicode.rst:957 -msgid "Accepts a :term:`path-like object`." -msgstr "Accepte un :term:`path-like object`." - -#: c-api/unicode.rst:933 -msgid "" -"To decode file names to :class:`str` during argument parsing, the ``\"O&\"`` " -"converter should be used, passing :c:func:`!PyUnicode_FSDecoder` as the " -"conversion function:" -msgstr "" - -#: c-api/unicode.rst:939 -msgid "" -":ref:`PyArg_Parse\\* 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 an address of a C variable of " -"type :c:expr:`PyObject*` (or :c:expr:`PyUnicodeObject*`). On success, set " -"the variable to a new :term:`strong reference` to a :ref:`Unicode object " -"` which must be released when it is no longer used and " -"return a non-zero value (:c:macro:`Py_CLEANUP_SUPPORTED`). Embedded null " -"characters are not allowed in the result. On failure, return ``0`` with an " -"exception set." -msgstr "" - -#: c-api/unicode.rst:952 -msgid "" -"If *obj* is ``NULL``, release the strong reference to the object referred to " -"by *result* and return ``1``." -msgstr "" - -#: c-api/unicode.rst:963 -msgid "Decode a string from the :term:`filesystem encoding and error handler`." -msgstr "" - -#: c-api/unicode.rst:965 -msgid "" -"If you need to decode a string from the current locale encoding, " -"use :c:func:`PyUnicode_DecodeLocaleAndSize`." -msgstr "" - -#: c-api/unicode.rst:985 c-api/unicode.rst:1005 -msgid "" -"The :term:`filesystem error handler ` " -"is now used." -msgstr "" - -#: c-api/unicode.rst:979 -msgid "" -"Decode a null-terminated string from the :term:`filesystem encoding and " -"error handler`." -msgstr "" - -#: c-api/unicode.rst:982 -msgid "" -"If the string length is known, " -"use :c:func:`PyUnicode_DecodeFSDefaultAndSize`." -msgstr "" - -#: c-api/unicode.rst:992 -msgid "" -"Encode a Unicode object to the :term:`filesystem encoding and error " -"handler`, and return :class:`bytes`. Note that the resulting :class:`bytes` " -"object can contain null bytes." -msgstr "" - -#: c-api/unicode.rst:996 -msgid "" -"If you need to encode a string to the current locale encoding, " -"use :c:func:`PyUnicode_EncodeLocale`." -msgstr "" - -#: c-api/unicode.rst:1010 -msgid "wchar_t Support" -msgstr "" - -#: c-api/unicode.rst:1012 -msgid ":c:type:`wchar_t` support for platforms which support it:" -msgstr "" - -#: c-api/unicode.rst:1016 -msgid "" -"Create a Unicode object from the :c:type:`wchar_t` buffer *wstr* of the " -"given *size*. Passing ``-1`` as the *size* indicates that the function must " -"itself compute the length, using :c:func:`!wcslen`. Return ``NULL`` on " -"failure." -msgstr "" - -#: c-api/unicode.rst:1024 -msgid "" -"Copy the Unicode object contents into the :c:type:`wchar_t` buffer *wstr*. " -"At most *size* :c:type:`wchar_t` characters are copied (excluding a possibly " -"trailing null termination character). Return the number " -"of :c:type:`wchar_t` characters copied or ``-1`` in case of an error." -msgstr "" - -#: c-api/unicode.rst:1029 -msgid "" -"When *wstr* is ``NULL``, instead return the *size* that would be required to " -"store all of *unicode* including a terminating null." -msgstr "" - -#: c-api/unicode.rst:1032 -msgid "" -"Note that the 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:expr:`wchar_t*` string might contain " -"null characters, which would cause the string to be truncated when used with " -"most C functions." -msgstr "" - -#: c-api/unicode.rst:1042 -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 " -"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:expr:`wchar_t*` string contains null characters a :exc:`ValueError` " -"is raised." -msgstr "" - -#: c-api/unicode.rst:1050 -msgid "" -"Returns a buffer allocated by :c:macro:`PyMem_New` (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 failed." -msgstr "" - -#: c-api/unicode.rst:1057 -msgid "" -"Raises a :exc:`ValueError` if *size* is ``NULL`` and the :c:expr:`wchar_t*` " -"string contains null characters." -msgstr "" - -#: c-api/unicode.rst:1065 -msgid "Built-in Codecs" -msgstr "" - -#: c-api/unicode.rst:1067 -msgid "" -"Python provides a set of built-in codecs which are written in C for speed. " -"All of these codecs are directly usable via the following functions." -msgstr "" - -#: c-api/unicode.rst:1070 -msgid "" -"Many of the following APIs take two arguments encoding and errors, and they " -"have the same semantics as the ones of the built-in :func:`str` string " -"object constructor." -msgstr "" - -#: c-api/unicode.rst:1074 -msgid "" -"Setting encoding to ``NULL`` causes the default encoding to be used which is " -"UTF-8. The file system calls should use :c:func:`PyUnicode_FSConverter` for " -"encoding file names. This uses the :term:`filesystem encoding and error " -"handler` internally." -msgstr "" - -#: c-api/unicode.rst:1079 -msgid "" -"Error handling is set by errors which may also be set to ``NULL`` meaning to " -"use the default handling defined for the codec. Default error handling for " -"all built-in codecs is \"strict\" (:exc:`ValueError` is raised)." -msgstr "" - -#: c-api/unicode.rst:1083 -msgid "" -"The codecs all use a similar interface. Only deviations from the following " -"generic ones are documented for simplicity." -msgstr "" - -#: c-api/unicode.rst:1088 -msgid "Generic Codecs" -msgstr "" - -#: c-api/unicode.rst:1090 -msgid "The following macro is provided:" -msgstr "" - -#: c-api/unicode.rst:1095 -msgid "The Unicode code point ``U+FFFD`` (replacement character)." -msgstr "" - -#: c-api/unicode.rst:1097 -msgid "" -"This Unicode character is used as the replacement character during decoding " -"if the *errors* argument is set to \"replace\"." -msgstr "" - -#: c-api/unicode.rst:1101 -msgid "These are the generic codec APIs:" -msgstr "" - -#: c-api/unicode.rst:1107 -msgid "" -"Create a Unicode object by decoding *size* bytes of the encoded string " -"*str*. *encoding* and *errors* have the same meaning as the parameters of " -"the same name in the :func:`str` built-in function. The codec to be used is " -"looked up using the Python codec registry. Return ``NULL`` if an exception " -"was raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1117 -msgid "" -"Encode a Unicode object and return the result as Python bytes object. " -"*encoding* and *errors* have the same meaning as the parameters of the same " -"name in the Unicode :meth:`~str.encode` method. The codec to be used is " -"looked up using the Python codec registry. Return ``NULL`` if an exception " -"was raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1125 -msgid "UTF-8 Codecs" -msgstr "" - -#: c-api/unicode.rst:1127 -msgid "These are the UTF-8 codec APIs:" -msgstr "" - -#: c-api/unicode.rst:1132 -msgid "" -"Create a Unicode object by decoding *size* bytes of the UTF-8 encoded string " -"*str*. Return ``NULL`` if an exception was raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1139 -msgid "" -"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF8`. If " -"*consumed* is not ``NULL``, trailing incomplete UTF-8 byte sequences will " -"not be treated as an error. Those bytes will not be decoded and the number " -"of bytes that have been decoded will be stored in *consumed*." -msgstr "" - -#: c-api/unicode.rst:1147 -msgid "" -"Encode a Unicode object using UTF-8 and return the result as Python bytes " -"object. Error handling is \"strict\". Return ``NULL`` if an exception was " -"raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1166 -msgid "" -"The function fails if the string contains surrogate code points (``U+D800`` " -"- ``U+DFFF``)." -msgstr "" - -#: c-api/unicode.rst:1157 -msgid "" -"Return a pointer to the UTF-8 encoding of the Unicode object, and store the " -"size of the encoded representation (in bytes) in *size*. The *size* " -"argument can be ``NULL``; in this case no size will be stored. The returned " -"buffer always has an extra null byte appended (not included in *size*), " -"regardless of whether there are any other null code points." -msgstr "" - -#: c-api/unicode.rst:1163 -msgid "" -"On error, set an exception, set *size* to ``-1`` (if it's not NULL) and " -"return ``NULL``." -msgstr "" - -#: c-api/unicode.rst:1169 -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. The buffer is deallocated " -"and pointers to it become invalid when the Unicode object is garbage " -"collected." -msgstr "" - -#: c-api/unicode.rst:1198 -msgid "The return type is now ``const char *`` rather than ``char *``." -msgstr "" - -#: c-api/unicode.rst:1179 -msgid "This function is a part of the :ref:`limited API `." -msgstr "" - -#: c-api/unicode.rst:1185 -msgid "As :c:func:`PyUnicode_AsUTF8AndSize`, but does not store the size." -msgstr "" - -#: c-api/unicode.rst:1189 -msgid "" -"This function does not have any special behavior for `null characters " -"`_ embedded within *unicode*. " -"As a result, strings containing null characters will remain in the returned " -"string, which some C functions might interpret as the end of the string, " -"leading to truncation. If truncation is an issue, it is recommended to " -"use :c:func:`PyUnicode_AsUTF8AndSize` instead." -msgstr "" - -#: c-api/unicode.rst:1203 -msgid "UTF-32 Codecs" -msgstr "" - -#: c-api/unicode.rst:1205 -msgid "These are the UTF-32 codec APIs:" -msgstr "" - -#: c-api/unicode.rst:1211 -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:1265 -msgid "" -"If *byteorder* is non-``NULL``, the decoder starts decoding using the given " -"byte order::" -msgstr "" - -#: c-api/unicode.rst:1222 -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 " -"is not copied into the resulting Unicode string. If ``*byteorder`` is " -"``-1`` or ``1``, any byte order mark is copied to the output." -msgstr "" - -#: c-api/unicode.rst:1227 -msgid "" -"After completion, *\\*byteorder* is set to the current byte order at the end " -"of input data." -msgstr "" - -#: c-api/unicode.rst:1281 -msgid "If *byteorder* is ``NULL``, the codec starts in native order mode." -msgstr "" - -#: c-api/unicode.rst:1283 -msgid "Return ``NULL`` if an exception was raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1238 -msgid "" -"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF32`. If " -"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF32Stateful` will not " -"treat trailing incomplete UTF-32 byte sequences (such as a number of bytes " -"not divisible by four) as an error. Those bytes will not be decoded and the " -"number of bytes that have been decoded will be stored in *consumed*." -msgstr "" - -#: c-api/unicode.rst:1247 -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:1253 -msgid "UTF-16 Codecs" -msgstr "" - -#: c-api/unicode.rst:1255 -msgid "These are the UTF-16 codec APIs:" -msgstr "" - -#: c-api/unicode.rst:1261 -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:1272 -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 " -"is not copied into the resulting Unicode string. If ``*byteorder`` is " -"``-1`` or ``1``, any byte order mark is copied to the output (where it will " -"result in either a ``\\ufeff`` or a ``\\ufffe`` character)." -msgstr "" - -#: c-api/unicode.rst:1278 -msgid "" -"After completion, ``*byteorder`` is set to the current byte order at the end " -"of input data." -msgstr "" - -#: c-api/unicode.rst:1289 -msgid "" -"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF16`. If " -"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeUTF16Stateful` will not " -"treat trailing incomplete UTF-16 byte sequences (such as an odd number of " -"bytes or a split surrogate pair) as an error. Those bytes will not be " -"decoded and the number of bytes that have been decoded will be stored in " -"*consumed*." -msgstr "" - -#: c-api/unicode.rst:1298 -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:1304 -msgid "UTF-7 Codecs" -msgstr "" - -#: c-api/unicode.rst:1306 -msgid "These are the UTF-7 codec APIs:" -msgstr "" - -#: c-api/unicode.rst:1311 -msgid "" -"Create a Unicode object by decoding *size* bytes of the UTF-7 encoded string " -"*str*. Return ``NULL`` if an exception was raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1318 -msgid "" -"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeUTF7`. If " -"*consumed* is not ``NULL``, trailing incomplete UTF-7 base-64 sections will " -"not be treated as an error. Those bytes will not be decoded and the number " -"of bytes that have been decoded will be stored in *consumed*." -msgstr "" - -#: c-api/unicode.rst:1325 -msgid "Unicode-Escape Codecs" -msgstr "" - -#: c-api/unicode.rst:1327 -msgid "These are the \"Unicode Escape\" codec APIs:" -msgstr "" - -#: c-api/unicode.rst:1333 -msgid "" -"Create a Unicode object by decoding *size* bytes of the Unicode-Escape " -"encoded string *str*. Return ``NULL`` if an exception was raised by the " -"codec." -msgstr "" - -#: c-api/unicode.rst:1339 -msgid "" -"Encode a Unicode object using Unicode-Escape and return the result as a " -"bytes object. Error handling is \"strict\". Return ``NULL`` if an " -"exception was raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1345 -msgid "Raw-Unicode-Escape Codecs" -msgstr "" - -#: c-api/unicode.rst:1347 -msgid "These are the \"Raw Unicode Escape\" codec APIs:" -msgstr "" - -#: c-api/unicode.rst:1353 -msgid "" -"Create a Unicode object by decoding *size* bytes of the Raw-Unicode-Escape " -"encoded string *str*. Return ``NULL`` if an exception was raised by the " -"codec." -msgstr "" - -#: c-api/unicode.rst:1359 -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:1365 -msgid "Latin-1 Codecs" -msgstr "" - -#: c-api/unicode.rst:1367 -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:1373 -msgid "" -"Create a Unicode object by decoding *size* bytes of the Latin-1 encoded " -"string *str*. Return ``NULL`` if an exception was raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1379 -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:1385 -msgid "ASCII Codecs" -msgstr "" - -#: c-api/unicode.rst:1387 -msgid "" -"These are the ASCII codec APIs. Only 7-bit ASCII data is accepted. All " -"other codes generate errors." -msgstr "" - -#: c-api/unicode.rst:1393 -msgid "" -"Create a Unicode object by decoding *size* bytes of the ASCII encoded string " -"*str*. Return ``NULL`` if an exception was raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1399 -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:1405 -msgid "Character Map Codecs" -msgstr "" - -#: c-api/unicode.rst:1407 -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 mappings " -"to encode and decode characters. The mapping objects provided must support " -"the :meth:`~object.__getitem__` mapping interface; dictionaries and " -"sequences work well." -msgstr "" - -#: c-api/unicode.rst:1413 -msgid "These are the mapping codec APIs:" -msgstr "" - -#: c-api/unicode.rst:1418 -msgid "" -"Create a Unicode object by decoding *size* bytes of the encoded string *str* " -"using the given *mapping* object. Return ``NULL`` if an exception was " -"raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1422 -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 " -"strings, integers (which are then interpreted as Unicode ordinals) or " -"``None``. Unmapped data bytes -- ones which cause a :exc:`LookupError`, as " -"well as ones which get mapped to ``None``, ``0xFFFE`` or ``'\\ufffe'``, are " -"treated as undefined mappings and cause an error." -msgstr "" - -#: c-api/unicode.rst:1433 -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:1437 -msgid "" -"The *mapping* object must map Unicode ordinal integers to bytes objects, " -"integers in the range from 0 to 255 or ``None``. Unmapped character " -"ordinals (ones which cause a :exc:`LookupError`) as well as mapped to " -"``None`` are treated as \"undefined mapping\" and cause an error." -msgstr "" - -#: c-api/unicode.rst:1443 -msgid "The following codec API is special in that maps Unicode to Unicode." -msgstr "" - -#: c-api/unicode.rst:1447 -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:1451 -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:1454 -msgid "" -"Mapping tables need only provide the :meth:`~object.__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:1458 -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:1463 -msgid "MBCS codecs for Windows" -msgstr "" - -#: c-api/unicode.rst:1465 -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 " -"MBCS (or DBCS) is a class of encodings, not just one. The target encoding " -"is defined by the user settings on the machine running the codec." -msgstr "" - -#: c-api/unicode.rst:1472 -msgid "" -"Create a Unicode object by decoding *size* bytes of the MBCS encoded string " -"*str*. Return ``NULL`` if an exception was raised by the codec." -msgstr "" - -#: c-api/unicode.rst:1479 -msgid "" -"If *consumed* is ``NULL``, behave like :c:func:`PyUnicode_DecodeMBCS`. If " -"*consumed* is not ``NULL``, :c:func:`PyUnicode_DecodeMBCSStateful` will not " -"decode trailing lead byte and the number of bytes that have been decoded " -"will be stored in *consumed*." -msgstr "" - -#: c-api/unicode.rst:1488 -msgid "" -"Similar to :c:func:`PyUnicode_DecodeMBCSStateful`, except uses the code page " -"specified by *code_page*." -msgstr "" - -#: c-api/unicode.rst:1494 -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:1501 -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:macro:`!CP_ACP` code page to get the MBCS encoder." -msgstr "" - -#: c-api/unicode.rst:1511 -msgid "Methods and Slot Functions" -msgstr "" - -#: c-api/unicode.rst:1513 -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:1517 -msgid "They all return ``NULL`` or ``-1`` if an exception occurs." -msgstr "" - -#: c-api/unicode.rst:1522 -msgid "Concat two strings giving a new Unicode string." -msgstr "" - -#: c-api/unicode.rst:1527 -msgid "" -"Split a string giving a list of Unicode strings. If *sep* is ``NULL``, " -"splitting will be done at all whitespace substrings. Otherwise, splits " -"occur at the given separator. At most *maxsplit* splits will be done. If " -"negative, no limit is set. Separators are not included in the resulting " -"list." -msgstr "" - -#: c-api/unicode.rst:1542 c-api/unicode.rst:1576 -msgid "On error, return ``NULL`` with an exception set." -msgstr "" - -#: c-api/unicode.rst:1534 -msgid "Equivalent to :py:meth:`str.split`." -msgstr "" - -#: c-api/unicode.rst:1539 -msgid "" -"Similar to :c:func:`PyUnicode_Split`, but splitting will be done beginning " -"at the end of the string." -msgstr "" - -#: c-api/unicode.rst:1544 -msgid "Equivalent to :py:meth:`str.rsplit`." -msgstr "" - -#: c-api/unicode.rst:1549 -msgid "" -"Split a Unicode string at line breaks, returning a list of Unicode strings. " -"CRLF is considered to be one line break. If *keepends* is ``0``, the Line " -"break characters are not included in the resulting strings." -msgstr "" - -#: c-api/unicode.rst:1556 -msgid "" -"Split a Unicode string at the first occurrence of *sep*, and return a 3-" -"tuple containing the part before the separator, the separator itself, and " -"the part after the separator. If the separator is not found, return a 3-" -"tuple containing the string itself, followed by two empty strings." -msgstr "" - -#: c-api/unicode.rst:1574 -msgid "*sep* must not be empty." -msgstr "" - -#: c-api/unicode.rst:1565 -msgid "Equivalent to :py:meth:`str.partition`." -msgstr "" - -#: c-api/unicode.rst:1570 -msgid "" -"Similar to :c:func:`PyUnicode_Partition`, but split a Unicode string at the " -"last occurrence of *sep*. If the separator is not found, return a 3-tuple " -"containing two empty strings, followed by the string itself." -msgstr "" - -#: c-api/unicode.rst:1578 -msgid "Equivalent to :py:meth:`str.rpartition`." -msgstr "" - -#: c-api/unicode.rst:1583 -msgid "" -"Join a sequence of strings using the given *separator* and return the " -"resulting Unicode string." -msgstr "" - -#: c-api/unicode.rst:1590 -msgid "" -"Return ``1`` if *substr* matches ``unicode[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:1598 -msgid "" -"Return the first position of *substr* in ``unicode[start:end]`` using the " -"given *direction* (*direction* == ``1`` means to do a forward search, " -"*direction* == ``-1`` a backward search). The return value is the index of " -"the first match; a value of ``-1`` indicates that no match was found, and " -"``-2`` indicates that an error occurred and an exception has been set." -msgstr "" - -#: c-api/unicode.rst:1608 -msgid "" -"Return the first position of the character *ch* in ``unicode[start:end]`` " -"using the given *direction* (*direction* == ``1`` means to do a forward " -"search, *direction* == ``-1`` a backward search). The return value is the " -"index of the first match; a value of ``-1`` indicates that no match was " -"found, and ``-2`` indicates that an error occurred and an exception has been " -"set." -msgstr "" - -#: c-api/unicode.rst:1616 -msgid "" -"*start* and *end* are now adjusted to behave like ``unicode[start:end]``." -msgstr "" - -#: c-api/unicode.rst:1623 -msgid "" -"Return the number of non-overlapping occurrences of *substr* in " -"``unicode[start:end]``. Return ``-1`` if an error occurred." -msgstr "" - -#: c-api/unicode.rst:1630 -msgid "" -"Replace at most *maxcount* occurrences of *substr* in *unicode* with " -"*replstr* and return the resulting Unicode object. *maxcount* == ``-1`` " -"means replace all occurrences." -msgstr "" - -#: c-api/unicode.rst:1637 -msgid "" -"Compare two strings and return ``-1``, ``0``, ``1`` for less than, equal, " -"and greater than, respectively." -msgstr "" - -#: c-api/unicode.rst:1640 -msgid "" -"This function returns ``-1`` upon failure, so one should " -"call :c:func:`PyErr_Occurred` to check for errors." -msgstr "" - -#: c-api/unicode.rst:1645 -msgid "The :c:func:`PyUnicode_Equal` function." -msgstr "" - -#: c-api/unicode.rst:1650 -msgid "Test if two strings are equal:" -msgstr "" - -#: c-api/unicode.rst:1652 -msgid "Return ``1`` if *a* is equal to *b*." -msgstr "" - -#: c-api/unicode.rst:1653 -msgid "Return ``0`` if *a* is not equal to *b*." -msgstr "" - -#: c-api/unicode.rst:1654 -msgid "" -"Set a :exc:`TypeError` exception and return ``-1`` if *a* or *b* is not " -"a :class:`str` object." -msgstr "" - -#: c-api/unicode.rst:1657 -msgid "The function always succeeds if *a* and *b* are :class:`str` objects." -msgstr "" - -#: c-api/unicode.rst:1659 -msgid "" -"The function works for :class:`str` subclasses, but does not honor custom " -"``__eq__()`` method." -msgstr "" - -#: c-api/unicode.rst:1664 -msgid "The :c:func:`PyUnicode_Compare` function." -msgstr "" - -#: c-api/unicode.rst:1671 -msgid "" -"Compare a Unicode object with a char buffer which is interpreted as being " -"UTF-8 or ASCII encoded and return true (``1``) if they are equal, or false " -"(``0``) otherwise. If the Unicode object contains surrogate code points " -"(``U+D800`` - ``U+DFFF``) or the C string is not valid UTF-8, false (``0``) " -"is returned." -msgstr "" - -#: c-api/unicode.rst:1699 -msgid "This function does not raise exceptions." -msgstr "" - -#: c-api/unicode.rst:1685 -msgid "" -"Similar to :c:func:`PyUnicode_EqualToUTF8AndSize`, but compute *string* " -"length using :c:func:`!strlen`. If the Unicode object contains null " -"characters, false (``0``) is returned." -msgstr "" - -#: c-api/unicode.rst:1694 -msgid "" -"Compare a Unicode object, *unicode*, with *string* and return ``-1``, ``0``, " -"``1`` for less than, equal, and greater than, respectively. It is best to " -"pass only ASCII-encoded strings, but the function interprets the input " -"string as ISO-8859-1 if it contains non-ASCII characters." -msgstr "" - -#: c-api/unicode.rst:1704 -msgid "Rich compare two Unicode strings and return one of the following:" -msgstr "" - -#: c-api/unicode.rst:1706 -msgid "``NULL`` in case an exception was raised" -msgstr "" - -#: c-api/unicode.rst:1707 -msgid ":c:data:`Py_True` or :c:data:`Py_False` for successful comparisons" -msgstr "" - -#: c-api/unicode.rst:1708 -msgid ":c:data:`Py_NotImplemented` in case the type combination is unknown" -msgstr "" - -#: c-api/unicode.rst:1710 -msgid "" -"Possible values for *op* " -"are :c:macro:`Py_GT`, :c:macro:`Py_GE`, :c:macro:`Py_EQ`, :c:macro:`Py_NE`, :c:macro:`Py_LT`, " -"and :c:macro:`Py_LE`." -msgstr "" - -#: c-api/unicode.rst:1716 -msgid "" -"Return a new string object from *format* and *args*; this is analogous to " -"``format % args``." -msgstr "" - -#: c-api/unicode.rst:1722 -msgid "" -"Check whether *substr* is contained in *unicode* and return true or false " -"accordingly." -msgstr "" - -#: c-api/unicode.rst:1725 -msgid "" -"*substr* has to coerce to a one element Unicode string. ``-1`` is returned " -"if there was an error." -msgstr "" - -#: c-api/unicode.rst:1731 -msgid "" -"Intern the argument :c:expr:`*p_unicode` 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 :c:expr:`*p_unicode`, it sets :c:expr:`*p_unicode` to it (releasing the " -"reference to the old string object and creating a new :term:`strong " -"reference` to the interned string object), otherwise it " -"leaves :c:expr:`*p_unicode` alone and interns it." -msgstr "" - -#: c-api/unicode.rst:1738 -msgid "" -"(Clarification: even though there is a lot of talk about references, think " -"of this function as reference-neutral. You must own the object you pass in; " -"after the call you no longer own the passed-in reference, but you newly own " -"the result.)" -msgstr "" - -#: c-api/unicode.rst:1743 -msgid "" -"This function never raises an exception. On error, it leaves its argument " -"unchanged without interning it." -msgstr "" - -#: c-api/unicode.rst:1746 -msgid "" -"Instances of subclasses of :py:class:`str` may not be interned, that " -"is, :c:expr:`PyUnicode_CheckExact(*p_unicode)` must be true. If it is not, " -"then -- as with any other error -- the argument is left unchanged." -msgstr "" - -#: c-api/unicode.rst:1750 -msgid "" -"Note that interned strings are not “immortal”. You must keep a reference to " -"the result to benefit from interning." -msgstr "" - -#: c-api/unicode.rst:1756 -msgid "" -"A combination of :c:func:`PyUnicode_FromString` " -"and :c:func:`PyUnicode_InternInPlace`, meant for statically allocated " -"strings." -msgstr "" - -#: c-api/unicode.rst:1759 -msgid "" -"Return a new (\"owned\") reference to either a new Unicode string object " -"that has been interned, or an earlier interned string object with the same " -"value." -msgstr "" - -#: c-api/unicode.rst:1763 -msgid "" -"Python may keep a reference to the result, or make it :term:`immortal`, " -"preventing it from being garbage-collected promptly. For interning an " -"unbounded number of different strings, such as ones coming from user input, " -"prefer calling :c:func:`PyUnicode_FromString` " -"and :c:func:`PyUnicode_InternInPlace` directly." -msgstr "" - -#: c-api/unicode.rst:1772 -msgid "" -"Return a non-zero value if *str* is interned, zero if not. The *str* " -"argument must be a string; this is not checked. This function always " -"succeeds." -msgstr "" - -#: c-api/unicode.rst:1778 -msgid "" -"A non-zero return value may carry additional information about *how* the " -"string is interned. The meaning of such non-zero values, as well as each " -"specific string's intern-related details, may change between CPython " -"versions." -msgstr "" - -#: c-api/unicode.rst:1785 -msgid "PyUnicodeWriter" -msgstr "" - -#: c-api/unicode.rst:1787 -msgid "" -"The :c:type:`PyUnicodeWriter` API can be used to create a " -"Python :class:`str` object." -msgstr "" - -#: c-api/unicode.rst:1794 -#, fuzzy -msgid "A Unicode writer instance." -msgstr "Un objet Unicode." - -#: c-api/unicode.rst:1796 -msgid "" -"The instance must be destroyed by :c:func:`PyUnicodeWriter_Finish` on " -"success, or :c:func:`PyUnicodeWriter_Discard` on error." -msgstr "" - -#: c-api/unicode.rst:1801 -msgid "Create a Unicode writer instance." -msgstr "" - -#: c-api/unicode.rst:1803 -msgid "*length* must be greater than or equal to ``0``." -msgstr "" - -#: c-api/unicode.rst:1805 -msgid "" -"If *length* is greater than ``0``, preallocate an internal buffer of " -"*length* characters." -msgstr "" - -#: c-api/unicode.rst:1814 -msgid "Set an exception and return ``NULL`` on error." -msgstr "" - -#: c-api/unicode.rst:1812 -msgid "" -"Return the final Python :class:`str` object and destroy the writer instance." -msgstr "" - -#: c-api/unicode.rst:1824 -msgid "The writer instance is invalid after this call." -msgstr "" - -#: c-api/unicode.rst:1820 -msgid "Discard the internal Unicode buffer and destroy the writer instance." -msgstr "" - -#: c-api/unicode.rst:1822 -msgid "If *writer* is ``NULL``, no operation is performed." -msgstr "" - -#: c-api/unicode.rst:1828 -msgid "Write the single Unicode character *ch* into *writer*." -msgstr "" - -#: c-api/unicode.rst:1840 c-api/unicode.rst:1865 c-api/unicode.rst:1881 -#: c-api/unicode.rst:1909 c-api/unicode.rst:1935 -msgid "" -"On success, return ``0``. On error, set an exception, leave the writer " -"unchanged, and return ``-1``." -msgstr "" - -#: c-api/unicode.rst:1835 -msgid "" -"Decode the string *str* from UTF-8 in strict mode and write the output into " -"*writer*." -msgstr "" - -#: c-api/unicode.rst:1849 c-api/unicode.rst:1924 -msgid "" -"*size* is the string length in bytes. If *size* is equal to ``-1``, call " -"``strlen(str)`` to get the string length." -msgstr "" - -#: c-api/unicode.rst:1843 -msgid "See also :c:func:`PyUnicodeWriter_DecodeUTF8Stateful`." -msgstr "" - -#: c-api/unicode.rst:1847 -msgid "Write the ASCII string *str* into *writer*." -msgstr "" - -#: c-api/unicode.rst:1852 -msgid "" -"*str* must only contain ASCII characters. The behavior is undefined if *str* " -"contains non-ASCII characters." -msgstr "" - -#: c-api/unicode.rst:1860 -msgid "Write the wide string *str* into *writer*." -msgstr "" - -#: c-api/unicode.rst:1862 -msgid "" -"*size* is a number of wide characters. If *size* is equal to ``-1``, call " -"``wcslen(str)`` to get the string length." -msgstr "" - -#: c-api/unicode.rst:1870 -msgid "Writer the UCS4 string *str* into *writer*." -msgstr "" - -#: c-api/unicode.rst:1872 -msgid "*size* is a number of UCS4 characters." -msgstr "" - -#: c-api/unicode.rst:1879 -msgid "" -"Call :c:func:`PyObject_Str` on *obj* and write the output into *writer*." -msgstr "" - -#: c-api/unicode.rst:1884 -msgid "" -"To write a :class:`str` subclass which overrides the :meth:`~object.__str__` " -"method, :c:func:`PyUnicode_FromObject` can be used to get the original " -"string." -msgstr "" - -#: c-api/unicode.rst:1890 -msgid "" -"Call :c:func:`PyObject_Repr` on *obj* and write the output into *writer*." -msgstr "" - -#: c-api/unicode.rst:1892 -msgid "If *obj* is ``NULL``, write the string ``\"\"`` into *writer*." -msgstr "" - -#: c-api/unicode.rst:1899 -msgid "Added support for ``NULL``." -msgstr "" - -#: c-api/unicode.rst:1903 -msgid "Write the substring ``str[start:end]`` into *writer*." -msgstr "" - -#: c-api/unicode.rst:1905 -msgid "" -"*str* must be Python :class:`str` object. *start* must be greater than or " -"equal to 0, and less than or equal to *end*. *end* must be less than or " -"equal to *str* length." -msgstr "" - -#: c-api/unicode.rst:1914 -msgid "" -"Similar to :c:func:`PyUnicode_FromFormat`, but write the output directly " -"into *writer*." -msgstr "" - -#: c-api/unicode.rst:1921 -msgid "" -"Decode the string *str* from UTF-8 with *errors* error handler and write the " -"output into *writer*." -msgstr "" - -#: c-api/unicode.rst:1927 -msgid "" -"*errors* is an :ref:`error handler ` name, such as " -"``\"replace\"``. If *errors* is ``NULL``, use the strict error handler." -msgstr "" - -#: c-api/unicode.rst:1930 -msgid "" -"If *consumed* is not ``NULL``, set *\\*consumed* to the number of decoded " -"bytes on success. If *consumed* is ``NULL``, treat trailing incomplete UTF-8 " -"byte sequences as an error." -msgstr "" - -#: c-api/unicode.rst:1938 -msgid "See also :c:func:`PyUnicodeWriter_WriteUTF8`." -msgstr "" - -#: c-api/unicode.rst:1941 -msgid "Deprecated API" -msgstr "" - -#: c-api/unicode.rst:1943 -msgid "The following API is deprecated." -msgstr "" - -#: c-api/unicode.rst:1947 -#, fuzzy -msgid "" -"This is a typedef of :c:type:`wchar_t`, which is a 16-bit type or 32-bit " -"type depending on the platform. Please use :c:type:`wchar_t` directly " -"instead." -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:1951 -msgid "" -"In previous versions, this was a 16-bit type or a 32-bit type depending on " -"whether you selected a \"narrow\" or \"wide\" Unicode version of Python at " -"build time." -msgstr "" -"Dans les versions précédentes, ceci était un type 16-bit ou un type 32-bit " -"selon que vous choisissiez une version Unicode *narrow* ou *wide* de Python " -"à la compilation." - -#: c-api/unicode.rst:1961 -msgid "" -"Do nothing and return ``0``. This API is kept only for backward " -"compatibility, but there are no plans to remove it." -msgstr "" - -#: c-api/unicode.rst:1967 -msgid "" -"This API does nothing since Python 3.12. Previously, this needed to be " -"called for each string created using the old API (:c:func:`!" -"PyUnicode_FromUnicode` or similar)." -msgstr "" - -#: c-api/unicode.rst:1975 -msgid "" -"Do nothing and return ``1``. This API is kept only for backward " -"compatibility, but there are no plans to remove it." -msgstr "" - -#: c-api/unicode.rst:1981 -msgid "" -"This API does nothing since Python 3.12. Previously, this could be called to " -"check if :c:func:`PyUnicode_READY` is necessary." -msgstr "" - -#~ msgid "" -#~ ":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." - -#~ 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 :" - -#~ msgid "" -#~ "\"canonical\" Unicode objects are all objects created by a non-deprecated " -#~ "Unicode API. They use the most efficient representation allowed by the " -#~ "implementation." -#~ msgstr "" -#~ "Les objets Unicode « canoniques » sont tous les objets créés par une API " -#~ "Unicode non-dépréciée. Ils utilisent la représentation la plus efficace " -#~ "permise par l'implémentation." - -#~ msgid "" -#~ "\"legacy\" Unicode objects have been created through one of the " -#~ "deprecated 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." - -#~ msgid "Format Characters" -#~ msgstr "Caractères de format" - -#~ msgid ":attr:`%%`" -#~ msgstr ":attr:`%%`" - -#~ msgid ":attr:`%c`" -#~ msgstr ":attr:`%c`" - -#~ msgid "int" -#~ msgstr "*int*" - -#~ msgid ":attr:`%d`" -#~ msgstr ":attr:`%d`" - -#~ msgid ":attr:`%u`" -#~ msgstr ":attr:`%u`" - -#~ msgid "unsigned int" -#~ msgstr "``unsigned int``" - -#~ msgid ":attr:`%ld`" -#~ msgstr ":attr:`%ld`" - -#~ msgid ":attr:`%li`" -#~ msgstr ":attr:`%li`" - -#~ msgid ":attr:`%lu`" -#~ msgstr ":attr:`%lu`" - -#~ msgid "unsigned long" -#~ msgstr "``unsigned long``" - -#~ msgid ":attr:`%lld`" -#~ msgstr ":attr:`%lld`" - -#~ msgid ":attr:`%lli`" -#~ msgstr ":attr:`%lli`" - -#~ msgid ":attr:`%llu`" -#~ msgstr ":attr:`%llu`" - -#~ msgid "unsigned long long" -#~ msgstr "``unsigned long long``" - -#~ msgid ":attr:`%zd`" -#~ msgstr ":attr:`%zd`" - -#~ msgid ":attr:`%zi`" -#~ msgstr ":attr:`%zi`" - -#~ msgid ":attr:`%zu`" -#~ msgstr ":attr:`%zu`" - -#~ msgid ":attr:`%i`" -#~ msgstr ":attr:`%i`" - -#~ msgid ":attr:`%x`" -#~ msgstr ":attr:`%x`" - -#~ msgid ":attr:`%s`" -#~ msgstr ":attr:`%s`" - -#~ msgid ":attr:`%p`" -#~ msgstr ":attr:`%p`" - -#~ msgid ":attr:`%A`" -#~ msgstr ":attr:`%A`" - -#~ msgid ":attr:`%U`" -#~ msgstr ":attr:`%U`" - -#~ msgid ":attr:`%V`" -#~ msgstr ":attr:`%V`" - -#~ msgid ":attr:`%S`" -#~ msgstr ":attr:`%S`" - -#~ msgid ":attr:`%R`" -#~ msgstr ":attr:`%R`" diff --git a/c-api/utilities.po b/c-api/utilities.po deleted file mode 100644 index 05b73d9417..0000000000 --- a/c-api/utilities.po +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -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-10-04 12:27+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: c-api/utilities.rst:7 -msgid "Utilities" -msgstr "Utilitaires" - -#: c-api/utilities.rst:9 -msgid "" -"The functions in this chapter perform various utility tasks, ranging from " -"helping C code be more portable across platforms, using Python modules from " -"C, and parsing function arguments and constructing Python values from C " -"values." -msgstr "" -"Les fonctions de ce chapitre sont utilitaires, certaines aident à rendre le " -"code en C plus portable, d'autres à utiliser des modules Python depuis du C, " -"analyser des arguments de fonctions, ou encore construire des valeurs Python " -"à partir de valeurs C." diff --git a/c-api/veryhigh.po b/c-api/veryhigh.po deleted file mode 100644 index 385d14e241..0000000000 --- a/c-api/veryhigh.po +++ /dev/null @@ -1,485 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: c-api/veryhigh.rst:8 -msgid "The Very High Level Layer" -msgstr "" - -#: c-api/veryhigh.rst:10 -msgid "" -"The functions in this chapter will let you execute Python source code given " -"in a file or a buffer, but they will not let you interact in a more detailed " -"way with the interpreter." -msgstr "" - -#: c-api/veryhigh.rst:14 -msgid "" -"Several of these functions accept a start symbol from the grammar as a " -"parameter. The available start symbols " -"are :c:data:`Py_eval_input`, :c:data:`Py_file_input`, :c:data:`Py_single_input`, " -"and :c:data:`Py_func_type_input`. These are described following the " -"functions which accept them as parameters." -msgstr "" - -#: c-api/veryhigh.rst:20 -msgid "" -"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:type:`FILE` structure for different C libraries can be different and " -"incompatible. Under Windows (at least), it is possible for dynamically " -"linked extensions to actually use different libraries, so care should be " -"taken that :c: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 "" - -#: c-api/veryhigh.rst:31 -msgid "" -"This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " -"leaving *closeit* set to ``0`` and *flags* set to ``NULL``." -msgstr "" - -#: c-api/veryhigh.rst:37 -msgid "" -"This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " -"leaving the *closeit* argument set to ``0``." -msgstr "" - -#: c-api/veryhigh.rst:43 -msgid "" -"This is a simplified interface to :c:func:`PyRun_AnyFileExFlags` below, " -"leaving the *flags* argument set to ``NULL``." -msgstr "" - -#: c-api/veryhigh.rst:49 -msgid "" -"If *fp* refers to a file associated with an interactive device (console or " -"terminal input or Unix pseudo-terminal), return the value " -"of :c:func:`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. If *closeit* is true, the " -"file is closed before ``PyRun_SimpleFileExFlags()`` returns." -msgstr "" - -#: c-api/veryhigh.rst:61 -msgid "" -"This is a simplified interface to :c:func:`PyRun_SimpleStringFlags` below, " -"leaving the :c:struct:`PyCompilerFlags`\\* argument set to ``NULL``." -msgstr "" - -#: c-api/veryhigh.rst:67 -msgid "" -"Executes the Python source code from *command* in the :mod:`__main__` module " -"according to the *flags* argument. If :mod:`__main__` does not already " -"exist, it is created. Returns ``0`` on success or ``-1`` if an exception " -"was raised. If there was an error, there is no way to get the exception " -"information. For the meaning of *flags*, see below." -msgstr "" - -#: c-api/veryhigh.rst:73 -msgid "" -"Note that if an otherwise unhandled :exc:`SystemExit` is raised, this " -"function will not return ``-1``, but exit the process, as long " -"as :c:member:`PyConfig.inspect` is zero." -msgstr "" - -#: c-api/veryhigh.rst:80 -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:86 -msgid "" -"This is a simplified interface to :c:func:`PyRun_SimpleFileExFlags` below, " -"leaving *flags* set to ``NULL``." -msgstr "" - -#: c-api/veryhigh.rst:92 -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 " -"of the file, it is decoded from :term:`filesystem encoding and error " -"handler`. If *closeit* is true, the file is closed before " -"``PyRun_SimpleFileExFlags()`` returns." -msgstr "" - -#: c-api/veryhigh.rst:99 -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 " -"correctly." -msgstr "" - -#: c-api/veryhigh.rst:105 -msgid "" -"Read and execute a single statement from a file associated with an " -"interactive device according to the *flags* argument. The user will be " -"prompted using ``sys.ps1`` and ``sys.ps2``. *filename* must be a " -"Python :class:`str` object." -msgstr "" - -#: c-api/veryhigh.rst:110 -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 " -"distributed as part of Python if there was a parse error. (Note " -"that :file:`errcode.h` is not included by :file:`Python.h`, so must be " -"included specifically if needed.)" -msgstr "" - -#: c-api/veryhigh.rst:119 -msgid "" -"This is a simplified interface to :c:func:`PyRun_InteractiveOneFlags` below, " -"leaving *flags* set to ``NULL``." -msgstr "" - -#: c-api/veryhigh.rst:125 -msgid "" -"Similar to :c:func:`PyRun_InteractiveOneObject`, but *filename* is " -"a :c:expr:`const char*`, which is decoded from the :term:`filesystem " -"encoding and error handler`." -msgstr "" - -#: c-api/veryhigh.rst:132 -msgid "" -"This is a simplified interface to :c:func:`PyRun_InteractiveLoopFlags` " -"below, leaving *flags* set to ``NULL``." -msgstr "" - -#: c-api/veryhigh.rst:138 -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`` " -"and ``sys.ps2``. *filename* is decoded from the :term:`filesystem encoding " -"and error handler`. Returns ``0`` at EOF or a negative number upon failure." -msgstr "" - -#: c-api/veryhigh.rst:146 -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 " -"become idle and wait for user input from the terminal. The return value is " -"ignored. Overriding this hook can be used to integrate the interpreter's " -"prompt with other event loops, as done in :file:`Modules/_tkinter.c` in the " -"Python source code." -msgstr "" - -#: c-api/veryhigh.rst:178 -msgid "" -"This function is only called from the :ref:`main interpreter `." -msgstr "" - -#: c-api/veryhigh.rst:161 -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 " -"to read a single line of input at the interpreter's prompt. The function is " -"expected to output the string *prompt* if it's not ``NULL``, and then read a " -"line of input from the provided standard input file, returning the resulting " -"string. For example, The :mod:`readline` module sets this hook to provide " -"line-editing and tab-completion features." -msgstr "" - -#: c-api/veryhigh.rst:170 -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:173 -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:184 -msgid "" -"This is a simplified interface to :c:func:`PyRun_StringFlags` below, leaving " -"*flags* set to ``NULL``." -msgstr "" - -#: c-api/veryhigh.rst:190 -msgid "" -"Execute Python source code from *str* in the context specified by the " -"objects *globals* and *locals* with the compiler flags specified by " -"*flags*. *globals* must be a dictionary; *locals* can be any object that " -"implements the mapping protocol. The parameter *start* specifies the start " -"symbol and must be one of the :ref:`available start symbols `." -msgstr "" - -#: c-api/veryhigh.rst:196 -msgid "" -"Returns the result of executing the code as a Python object, or ``NULL`` if " -"an exception was raised." -msgstr "" - -#: c-api/veryhigh.rst:202 -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:208 -msgid "" -"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " -"*flags* set to ``NULL``." -msgstr "" - -#: c-api/veryhigh.rst:214 -msgid "" -"This is a simplified interface to :c:func:`PyRun_FileExFlags` below, leaving " -"*closeit* set to ``0``." -msgstr "" - -#: c-api/veryhigh.rst:220 -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 " -"the file, it is decoded from the :term:`filesystem encoding and error " -"handler`. If *closeit* is true, the file is closed " -"before :c:func:`PyRun_FileExFlags` returns." -msgstr "" - -#: c-api/veryhigh.rst:229 -msgid "" -"This is a simplified interface to :c:func:`Py_CompileStringFlags` below, " -"leaving *flags* set to ``NULL``." -msgstr "" - -#: c-api/veryhigh.rst:235 -msgid "" -"This is a simplified interface to :c:func:`Py_CompileStringExFlags` below, " -"with *optimize* set to ``-1``." -msgstr "" - -#: c-api/veryhigh.rst:241 -msgid "" -"Parse and compile the Python source code in *str*, returning the resulting " -"code object. The start symbol is given by *start*; this can be used to " -"constrain the code which can be compiled and should be :ref:`available start " -"symbols `. The filename specified by *filename* is used to " -"construct the code object and may appear in tracebacks or :exc:`SyntaxError` " -"exception messages. This returns ``NULL`` if the code cannot be parsed or " -"compiled." -msgstr "" - -#: c-api/veryhigh.rst:249 -msgid "" -"The integer *optimize* specifies the optimization level of the compiler; a " -"value of ``-1`` selects the optimization level of the interpreter as given " -"by :option:`-O` options. Explicit levels are ``0`` (no optimization; " -"``__debug__`` is true), ``1`` (asserts are removed, ``__debug__`` is false) " -"or ``2`` (docstrings are removed too)." -msgstr "" - -#: c-api/veryhigh.rst:260 -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:267 -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:274 -msgid "" -"Evaluate a precompiled code object, given a particular environment for its " -"evaluation. This environment consists of a dictionary of global variables, " -"a mapping object of local variables, arrays of arguments, keywords and " -"defaults, a dictionary of default values for :ref:`keyword-only ` arguments and a closure tuple of cells." -msgstr "" - -#: c-api/veryhigh.rst:283 -msgid "" -"Evaluate an execution frame. This is a simplified interface " -"to :c:func:`PyEval_EvalFrameEx`, for backward compatibility." -msgstr "" - -#: c-api/veryhigh.rst:289 -msgid "" -"This is the main, unvarnished function of Python interpretation. The code " -"object associated with the execution frame *f* is executed, interpreting " -"bytecode and executing calls as needed. The additional *throwflag* " -"parameter can mostly be ignored - if true, then it causes an exception to " -"immediately be thrown; this is used for the :meth:`~generator.throw` methods " -"of generator objects." -msgstr "" - -#: c-api/veryhigh.rst:296 -msgid "" -"This function now includes a debug assertion to help ensure that it does not " -"silently discard an active exception." -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:303 -msgid "" -"This function changes the flags of the current evaluation frame, and returns " -"true on success, false on failure." -msgstr "" - -#: c-api/veryhigh.rst:309 -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 " -"is being executed, it is passed as ``PyCompilerFlags *flags``. In this " -"case, ``from __future__ import`` can modify *flags*." -msgstr "" - -#: c-api/veryhigh.rst:314 -msgid "" -"Whenever ``PyCompilerFlags *flags`` is " -"``NULL``, :c:member:`~PyCompilerFlags.cf_flags` is treated as equal to " -"``0``, and any modification due to ``from __future__ import`` is discarded." -msgstr "" - -#: c-api/veryhigh.rst:320 -msgid "Compiler flags." -msgstr "" - -#: c-api/veryhigh.rst:324 -msgid "" -"*cf_feature_version* is the minor Python version. It should be initialized " -"to ``PY_MINOR_VERSION``." -msgstr "" - -#: c-api/veryhigh.rst:327 -msgid "" -"The field is ignored by default, it is used if and only if ``PyCF_ONLY_AST`` " -"flag is set in :c:member:`~PyCompilerFlags.cf_flags`." -msgstr "" - -#: c-api/veryhigh.rst:330 -msgid "Added *cf_feature_version* field." -msgstr "" - -#: c-api/veryhigh.rst:333 -msgid "The available compiler flags are accessible as macros:" -msgstr "" - -#: c-api/veryhigh.rst:342 -msgid "" -"See :ref:`compiler flags ` in documentation of " -"the :py:mod:`!ast` Python module, which exports these constants under the " -"same names." -msgstr "" - -#: c-api/veryhigh.rst:346 -msgid "" -"The \"``PyCF``\" flags above can be combined with \"``CO_FUTURE``\" flags " -"such as :c:macro:`CO_FUTURE_ANNOTATIONS` to enable features normally " -"selectable using :ref:`future statements `. " -"See :ref:`c_codeobject_flags` for a complete list." -msgstr "" - -#: c-api/veryhigh.rst:355 -msgid "Available start symbols" -msgstr "" - -#: c-api/veryhigh.rst:362 -msgid "" -"The start symbol from the Python grammar for isolated expressions; for use " -"with :c:func:`Py_CompileString`." -msgstr "" - -#: c-api/veryhigh.rst:370 -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:379 -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:388 -msgid "" -"The start symbol from the Python grammar for a function type; for use " -"with :c:func:`Py_CompileString`. This is used to parse \"signature type " -"comments\" from :pep:`484`." -msgstr "" - -#: c-api/veryhigh.rst:392 -msgid "This requires the :c:macro:`PyCF_ONLY_AST` flag to be set." -msgstr "" - -#: c-api/veryhigh.rst:395 -msgid ":py:class:`ast.FunctionType`" -msgstr "" - -#: c-api/veryhigh.rst:396 -msgid ":pep:`484`" -msgstr "" - -#: c-api/veryhigh.rst:402 -msgid "Stack Effects" -msgstr "" - -#: c-api/veryhigh.rst:405 -msgid ":py:func:`dis.stack_effect`" -msgstr "" - -#: c-api/veryhigh.rst:410 -msgid "Sentinel value representing an invalid stack effect." -msgstr "" - -#: c-api/veryhigh.rst:412 -msgid "This is currently equivalent to ``INT_MAX``." -msgstr "" - -#: c-api/veryhigh.rst:419 -msgid "Compute the stack effect of *opcode* with argument *oparg*." -msgstr "" - -#: c-api/veryhigh.rst:435 -msgid "" -"On success, this function returns the stack effect; on failure, this " -"returns :c:macro:`PY_INVALID_STACK_EFFECT`." -msgstr "" - -#: c-api/veryhigh.rst:429 -msgid "" -"Similar to :c:func:`PyCompile_OpcodeStackEffect`, but don't include the " -"stack effect of jumping if *jump* is zero." -msgstr "" - -#: c-api/veryhigh.rst:432 -msgid "" -"If *jump* is ``0``, this will not include the stack effect of jumping, but " -"if *jump* is ``1`` or ``-1``, this will include it." -msgstr "" - -#, fuzzy -#~ msgid "" -#~ "The C structure of the objects used to describe frame objects. The fields " -#~ "of this type are subject to change at any time." -#~ msgstr "" -#~ "La structure C utilisée pour décrire les objets *Code*. Les attributs de " -#~ "cette structure sont sujets à changer à tout moment." diff --git a/c-api/weakref.po b/c-api/weakref.po deleted file mode 100644 index 4d0309800f..0000000000 --- a/c-api/weakref.po +++ /dev/null @@ -1,197 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-12-16 17:25+0100\n" -"Last-Translator: Andy Kwok \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" - -#: c-api/weakref.rst:6 -msgid "Weak Reference Objects" -msgstr "Objets à références faibles" - -#: c-api/weakref.rst:8 -msgid "" -"Python supports *weak references* as first-class objects. There are two " -"specific object types which directly implement weak references. The first " -"is a simple reference object, and the second acts as a proxy for the " -"original object as much as it can." -msgstr "" -"Python gère les *références faibles* comme des objets de première classe. Il " -"existe deux types d'objets spécifiques qui implémentent directement les " -"références faibles. Le premier est un objet de référence simple, et le " -"second agit autant que possible comme un mandataire vers l'objet original." - -#: c-api/weakref.rst:16 -#, fuzzy -msgid "" -"Return non-zero if *ob* is either a reference or proxy object. This " -"function always succeeds." -msgstr "Renvoie vrai si *ob* est soit une référence, soit un objet proxy." - -#: c-api/weakref.rst:22 -#, fuzzy -msgid "" -"Return non-zero if *ob* is a reference object or a subclass of the reference " -"type. This function always succeeds." -msgstr "Retourne vrai si *ob* est un objet référence." - -#: c-api/weakref.rst:28 -#, fuzzy -msgid "" -"Return non-zero if *ob* is a reference object, but not a subclass of the " -"reference type. This function always succeeds." -msgstr "Retourne vrai si *ob* est un objet référence." - -#: c-api/weakref.rst:34 -#, fuzzy -msgid "" -"Return non-zero if *ob* is a proxy object. This function always succeeds." -msgstr "Retourne vrai si *ob* est un objet proxy" - -#: c-api/weakref.rst:39 -#, fuzzy -msgid "" -"Return a weak reference object for the object *ob*. This will always return " -"a new reference, but is not guaranteed to create a new object; an existing " -"reference object may be returned. The second parameter, *callback*, 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 referenceable 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 " -"toujours une nouvelle référence, mais cela ne signifie pas qu'un nouvel " -"objet est créé ; un objet référence existant peut être renvoyé. Le second " -"paramètre, *callback*, peut être un objet appelable qui reçoit une " -"notification lorsque *ob* est collecté par le ramasse-miette (*garbage " -"collected* en anglais) ; il doit accepter un paramètre unique, qui est " -"l'objet référence faible lui-même. *callback* peut aussi être positionné à " -"``None`` ou à *NULL*. Si *ob* n'est pas un objet faiblement référençable, " -"ou si *callback* n'est pas appelable, ``None`` ou *NULL*, ceci retourne " -"*NULL* et lève une :exc:`TypeError`." - -#: c-api/weakref.rst:65 -msgid "" -":c:func:`PyType_SUPPORTS_WEAKREFS` for checking if *ob* is weakly " -"referenceable." -msgstr "" - -#: c-api/weakref.rst:55 -#, fuzzy -msgid "" -"Return a weak reference proxy object for the object *ob*. This will always " -"return a new reference, but is not guaranteed to create a new object; an " -"existing proxy object may be returned. The second parameter, *callback*, " -"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 referenceable 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 " -"renvoie toujours une nouvelle référence, mais ne garantit pas la création " -"d'un nouvel objet ; un objet proxy existant peut être retourné. Le second " -"paramètre, *callback*, peut être un objet appelable qui reçoit une " -"notification lorsque *ob* est collecté ; il doit accepter un seul paramètre, " -"qui sera l'objet de référence faible lui-même. *callback* peut aussi être " -"``None`` ou *NULL*. Si *ob* n'est pas un objet faiblement référençable, ou " -"si *callback* n'est pas appelable, ``None`` ou *NULL*, ceci renvoie *NULL* " -"et lève une :exc:`TypeError`." - -#: c-api/weakref.rst:71 -msgid "" -"Get a :term:`strong reference` to the referenced object from a weak " -"reference, *ref*, into *\\*pobj*." -msgstr "" - -#: c-api/weakref.rst:74 -msgid "" -"On success, set *\\*pobj* to a new :term:`strong reference` to the " -"referenced object and return 1." -msgstr "" - -#: c-api/weakref.rst:76 -msgid "If the reference is dead, set *\\*pobj* to ``NULL`` and return 0." -msgstr "" - -#: c-api/weakref.rst:77 -msgid "On error, raise an exception and return -1." -msgstr "" - -#: c-api/weakref.rst:84 -msgid "" -"Test if the weak reference *ref* is dead. Returns 1 if the reference is " -"dead, 0 if it is alive, and -1 with an error set if *ref* is not a weak " -"reference object." -msgstr "" - -#: c-api/weakref.rst:93 -msgid "" -"This function is called by the :c:member:`~PyTypeObject.tp_dealloc` handler " -"to clear weak references." -msgstr "" - -#: c-api/weakref.rst:96 -msgid "" -"This iterates through the weak references for *object* and calls callbacks " -"for those references which have one. It returns when all callbacks have been " -"attempted." -msgstr "" - -#: c-api/weakref.rst:103 -msgid "Clears the weakrefs for *object* without calling the callbacks." -msgstr "" - -#: c-api/weakref.rst:105 -msgid "" -"This function is called by the :c:member:`~PyTypeObject.tp_dealloc` handler " -"for types with finalizers (i.e., :meth:`~object.__del__`). The handler for " -"those objects first calls :c:func:`PyObject_ClearWeakRefs` to clear weakrefs " -"and call their callbacks, then the finalizer, and finally this function to " -"clear any weakrefs that may have been created by the finalizer." -msgstr "" - -#: c-api/weakref.rst:111 -msgid "" -"In most circumstances, it's more appropriate to " -"use :c:func:`PyObject_ClearWeakRefs` to clear weakrefs instead of this " -"function." -msgstr "" - -#, fuzzy -#~ msgid "" -#~ "Return a :term:`borrowed reference` to the referenced object from a weak " -#~ "reference, *ref*. If the referent is no longer live, returns ``Py_None``." -#~ msgstr "" -#~ "Retourne l'objet référencé à partir d'une référence faible, *ref*. Si le " -#~ "référence n'existe plus, alors l'objet renvoie :const:`Py_None`." - -#, fuzzy -#~ msgid "" -#~ "This function returns a :term:`borrowed reference` to the referenced " -#~ "object. This means that you should always call :c:func:`Py_INCREF` on the " -#~ "object except when it cannot be destroyed before the last usage of the " -#~ "borrowed reference." -#~ msgstr "" -#~ "Cette fonction renvoie une **référence empruntée** à l'objet référencé. " -#~ "Cela signifie que vous devez toujours appeler :c:func:`Py_INCREF` sur " -#~ "l'objet sauf si vous savez qu'il ne peut pas être détruit tant que vous " -#~ "l'utilisez encore." - -#, fuzzy -#~ msgid "" -#~ "Similar to :c:func:`PyWeakref_GetObject`, but does no error checking." -#~ msgstr "" -#~ "Similaire à :c:func:`PyWeakref_GetObject`, mais implémenté comme une " -#~ "macro qui ne vérifie pas les erreurs." diff --git a/contents.po b/contents.po deleted file mode 100644 index 537cfef69b..0000000000 --- a/contents.po +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -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: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: contents.rst:3 -msgid "Python Documentation contents" -msgstr "Contenu de la documentation Python" diff --git a/copyright.po b/copyright.po deleted file mode 100644 index a219bb29cb..0000000000 --- a/copyright.po +++ /dev/null @@ -1,54 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2025-10-26 22:33+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: copyright.rst:3 -msgid "Copyright" -msgstr "Copyright" - -#: copyright.rst:5 -msgid "Python and this documentation is:" -msgstr "Python et cette documentation sont :" - -#: copyright.rst:7 -msgid "Copyright © 2001 Python Software Foundation. All rights reserved." -msgstr "Copyright © 2001 Python Software Foundation. Tous droits réservés." - -#: copyright.rst:9 -msgid "Copyright © 2000 BeOpen.com. All rights reserved." -msgstr "Copyright © 2000 *BeOpen.com*. Tous droits réservés." - -#: copyright.rst:11 -msgid "" -"Copyright © 1995-2000 Corporation for National Research Initiatives. All " -"rights reserved." -msgstr "" -"Copyright © 1995-2000 *Corporation for National Research Initiatives*. Tous " -"droits réservés." - -#: copyright.rst:14 -msgid "" -"Copyright © 1991-1995 Stichting Mathematisch Centrum. All rights reserved." -msgstr "" -"Copyright © 1991-1995 *Stichting Mathematisch Centrum*. Tous droits réservés." - -#: copyright.rst:18 -msgid "" -"See :ref:`history-and-license` for complete license and permissions " -"information." -msgstr "" -"Voir :ref:`history-and-license` pour des informations complètes concernant " -"la licence et les permissions." diff --git a/deprecations/c-api-pending-removal-in-3.14.po b/deprecations/c-api-pending-removal-in-3.14.po deleted file mode 100644 index 40e5720762..0000000000 --- a/deprecations/c-api-pending-removal-in-3.14.po +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: deprecations/c-api-pending-removal-in-3.14.rst:2 -msgid "Pending removal in Python 3.14" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.14.rst:4 -msgid "" -"The ``ma_version_tag`` field in :c:type:`PyDictObject` for extension modules " -"(:pep:`699`; :gh:`101193`)." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.14.rst:7 -msgid "" -"Creating :c:data:`immutable types ` with mutable " -"bases (:gh:`95388`)." -msgstr "" diff --git a/deprecations/c-api-pending-removal-in-3.15.po b/deprecations/c-api-pending-removal-in-3.15.po deleted file mode 100644 index 885ddc6a34..0000000000 --- a/deprecations/c-api-pending-removal-in-3.15.po +++ /dev/null @@ -1,284 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: deprecations/c-api-pending-removal-in-3.15.rst:2 -msgid "Pending removal in Python 3.15" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:4 -msgid "" -"The :c:func:`!PyImport_ImportModuleNoBlock`: " -"Use :c:func:`PyImport_ImportModule` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:6 -msgid "" -":c:func:`!PyWeakref_GetObject` and :c:func:`!PyWeakref_GET_OBJECT`: " -"Use :c:func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project " -"`__ can be used to " -"get :c:func:`PyWeakref_GetRef` on Python 3.12 and older." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:10 -msgid "" -":c:func:`!PyUnicode_AsDecodedObject`: Use :c:func:`PyCodec_Decode` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:12 -msgid "" -":c:func:`!PyUnicode_AsDecodedUnicode`: Use :c:func:`PyCodec_Decode` instead; " -"Note that some codecs (for example, \"base64\") may return a type other " -"than :class:`str`, such as :class:`bytes`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:15 -msgid "" -":c:func:`!PyUnicode_AsEncodedObject`: Use :c:func:`PyCodec_Encode` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:17 -msgid "" -":c:func:`!PyUnicode_AsEncodedUnicode`: Use :c:func:`PyCodec_Encode` instead; " -"Note that some codecs (for example, \"base64\") may return a type other " -"than :class:`bytes`, such as :class:`str`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:20 -msgid "Python initialization functions, deprecated in Python 3.13:" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:22 -msgid "" -":c:func:`!Py_GetPath`: Use :c:func:`PyConfig_Get(\"module_search_paths\") " -"` (:data:`sys.path`) instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:25 -msgid "" -":c:func:`!Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " -"` (:data:`sys.base_prefix`) instead. " -"Use :c:func:`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) " -"if :ref:`virtual environments ` need to be handled." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:30 -msgid "" -":c:func:`!Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " -"` (:data:`sys.base_exec_prefix`) instead. " -"Use :c:func:`PyConfig_Get(\"exec_prefix\") ` " -"(:data:`sys.exec_prefix`) if :ref:`virtual environments ` need to " -"be handled." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:36 -msgid "" -":c:func:`!Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " -"` (:data:`sys.executable`) instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:39 -msgid "" -":c:func:`!Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " -"` (:data:`sys.executable`) instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:42 -msgid "" -":c:func:`!Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " -"` or the :envvar:`PYTHONHOME` environment variable instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:46 -msgid "" -"The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:50 -msgid "" -"Functions to configure Python's initialization, deprecated in Python 3.11:" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:52 -msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:54 -msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:56 -msgid "" -":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:58 -msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:60 -msgid "" -":c:func:`!PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" -"warnings.filters` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:63 -msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:66 -msgid "Global configuration variables:" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:68 -msgid "" -":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` " -"or :c:func:`PyConfig_Get(\"parser_debug\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:71 -msgid "" -":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` " -"or :c:func:`PyConfig_Get(\"verbose\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:74 -msgid "" -":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` " -"or :c:func:`PyConfig_Get(\"quiet\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:77 -msgid "" -":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` " -"or :c:func:`PyConfig_Get(\"interactive\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:80 -msgid "" -":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` " -"or :c:func:`PyConfig_Get(\"inspect\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:83 -msgid "" -":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` " -"or :c:func:`PyConfig_Get(\"optimization_level\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:86 -msgid "" -":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` " -"or :c:func:`PyConfig_Get(\"site_import\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:89 -msgid "" -":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` " -"or :c:func:`PyConfig_Get(\"bytes_warning\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:92 -msgid "" -":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` " -"or :c:func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:95 -msgid "" -":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " -"or :c:func:`PyConfig_Get(\"use_environment\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:98 -msgid "" -":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " -"or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:101 -msgid "" -":c:var:`Py_NoUserSiteDirectory`: " -"Use :c:member:`PyConfig.user_site_directory` " -"or :c:func:`PyConfig_Get(\"user_site_directory\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:104 -msgid "" -":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` " -"or :c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:107 -msgid "" -":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " -"and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " -"` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:111 -msgid "" -":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` " -"or :c:func:`PyConfig_Get(\"isolated\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:114 -msgid "" -":c:var:`Py_LegacyWindowsFSEncodingFlag`: " -"Use :c:member:`PyPreConfig.legacy_windows_fs_encoding` " -"or :c:func:`PyConfig_Get(\"legacy_windows_fs_encoding\") ` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:117 -msgid "" -":c:var:`Py_LegacyWindowsStdioFlag`: " -"Use :c:member:`PyConfig.legacy_windows_stdio` " -"or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:120 -msgid "" -":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" -"Py_HasFileSystemDefaultEncoding`: " -"Use :c:member:`PyConfig.filesystem_encoding` " -"or :c:func:`PyConfig_Get(\"filesystem_encoding\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:123 -msgid "" -":c:var:`!Py_FileSystemDefaultEncodeErrors`: " -"Use :c:member:`PyConfig.filesystem_errors` " -"or :c:func:`PyConfig_Get(\"filesystem_errors\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:126 -msgid "" -":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` " -"or :c:func:`PyConfig_Get(\"utf8_mode\") ` instead. " -"(see :c:func:`Py_PreInitialize`)" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:131 -msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can " -"be used to get these options at runtime." -msgstr "" diff --git a/deprecations/c-api-pending-removal-in-3.16.po b/deprecations/c-api-pending-removal-in-3.16.po deleted file mode 100644 index 53696af712..0000000000 --- a/deprecations/c-api-pending-removal-in-3.16.po +++ /dev/null @@ -1,24 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: deprecations/c-api-pending-removal-in-3.16.rst:2 -msgid "Pending removal in Python 3.16" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.16.rst:4 -msgid "The bundled copy of ``libmpdec``." -msgstr "" diff --git a/deprecations/c-api-pending-removal-in-3.18.po b/deprecations/c-api-pending-removal-in-3.18.po deleted file mode 100644 index f6841d447f..0000000000 --- a/deprecations/c-api-pending-removal-in-3.18.po +++ /dev/null @@ -1,143 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: deprecations/c-api-pending-removal-in-3.18.rst:2 -msgid "Pending removal in Python 3.18" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:4 -msgid "" -"The following private functions are deprecated and planned for removal in " -"Python 3.18:" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:7 -msgid ":c:func:`!_PyBytes_Join`: use :c:func:`PyBytes_Join`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:8 -msgid "" -":c:func:`!_PyDict_GetItemStringWithError`: " -"use :c:func:`PyDict_GetItemStringRef`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:9 -msgid ":c:func:`!_PyDict_Pop()`: use :c:func:`PyDict_Pop`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:10 -msgid ":c:func:`!_PyLong_Sign()`: use :c:func:`PyLong_GetSign`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:11 -msgid "" -":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: " -"use :c:func:`PyLongWriter_Create`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:13 -msgid "" -":c:func:`!_PyThreadState_UncheckedGet`: " -"use :c:func:`PyThreadState_GetUnchecked`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:14 -msgid ":c:func:`!_PyUnicode_AsString`: use :c:func:`PyUnicode_AsUTF8`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:15 -msgid "" -":c:func:`!_PyUnicodeWriter_Init`: replace ``_PyUnicodeWriter_Init(&writer)`` " -"with :c:func:`writer = PyUnicodeWriter_Create(0) `." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:18 -msgid "" -":c:func:`!_PyUnicodeWriter_Finish`: replace " -"``_PyUnicodeWriter_Finish(&writer)`` " -"with :c:func:`PyUnicodeWriter_Finish(writer) `." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:21 -msgid "" -":c:func:`!_PyUnicodeWriter_Dealloc`: replace " -"``_PyUnicodeWriter_Dealloc(&writer)`` " -"with :c:func:`PyUnicodeWriter_Discard(writer) `." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:24 -msgid "" -":c:func:`!_PyUnicodeWriter_WriteChar`: replace " -"``_PyUnicodeWriter_WriteChar(&writer, ch)`` " -"with :c:func:`PyUnicodeWriter_WriteChar(writer, ch) " -"`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:27 -msgid "" -":c:func:`!_PyUnicodeWriter_WriteStr`: replace " -"``_PyUnicodeWriter_WriteStr(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteStr(writer, str) " -"`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:30 -msgid "" -":c:func:`!_PyUnicodeWriter_WriteSubstring`: replace " -"``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` " -"with :c:func:`PyUnicodeWriter_WriteSubstring(writer, str, start, end) " -"`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:33 -msgid "" -":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " -"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteASCII(writer, str) " -"`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:36 -msgid "" -":c:func:`!_PyUnicodeWriter_WriteLatin1String`: replace " -"``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) " -"`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:39 -msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:40 -msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:41 -msgid ":c:func:`!_Py_HashPointer`: use :c:func:`Py_HashPointer`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:42 -msgid ":c:func:`!_Py_fopen_obj`: use :c:func:`Py_fopen`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:44 -msgid "" -"The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older. " -"(Contributed by Victor Stinner in :gh:`128863`.)" -msgstr "" diff --git a/deprecations/c-api-pending-removal-in-3.19.po b/deprecations/c-api-pending-removal-in-3.19.po deleted file mode 100644 index ce400b74a5..0000000000 --- a/deprecations/c-api-pending-removal-in-3.19.po +++ /dev/null @@ -1,26 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: deprecations/c-api-pending-removal-in-3.19.rst:2 -msgid "Pending removal in Python 3.19" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.19.rst:4 -msgid ":pep:`456` embedders support for the string hashing scheme definition." -msgstr "" diff --git a/deprecations/c-api-pending-removal-in-3.20.po b/deprecations/c-api-pending-removal-in-3.20.po deleted file mode 100644 index 516a17404e..0000000000 --- a/deprecations/c-api-pending-removal-in-3.20.po +++ /dev/null @@ -1,44 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: deprecations/c-api-pending-removal-in-3.20.rst:2 -msgid "Pending removal in Python 3.20" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.20.rst:4 -msgid "" -":c:func:`!_PyObject_CallMethodId`, :c:func:`!_PyObject_GetAttrId` " -"and :c:func:`!_PyUnicode_FromId` are deprecated since 3.15 and will be " -"removed in 3.20. Instead, use :c:func:`PyUnicode_InternFromString()` and " -"cache the result in the module state, then " -"call :c:func:`PyObject_CallMethod` or :c:func:`PyObject_GetAttr`. " -"(Contributed by Victor Stinner in :gh:`141049`.)" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.20.rst:11 -msgid "" -"The ``cval`` field in :c:type:`PyComplexObject` (:gh:`128813`). " -"Use :c:func:`PyComplex_AsCComplex` and :c:func:`PyComplex_FromCComplex` to " -"convert a Python complex number to/from the C :c:type:`Py_complex` " -"representation." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.20.rst:16 -msgid "Macros :c:macro:`!Py_MATH_PIl` and :c:macro:`!Py_MATH_El`." -msgstr "" diff --git a/deprecations/c-api-pending-removal-in-future.po b/deprecations/c-api-pending-removal-in-future.po deleted file mode 100644 index 961b5a740b..0000000000 --- a/deprecations/c-api-pending-removal-in-future.po +++ /dev/null @@ -1,114 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: deprecations/c-api-pending-removal-in-future.rst:2 -msgid "Pending removal in future versions" -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:4 -msgid "" -"The following APIs are deprecated and will be removed, although there is " -"currently no date scheduled for their removal." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:7 -msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: Unneeded since Python 3.8." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:9 -msgid ":c:func:`PyErr_Fetch`: Use :c:func:`PyErr_GetRaisedException` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:11 -msgid "" -":c:func:`PyErr_NormalizeException`: Use :c:func:`PyErr_GetRaisedException` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:13 -msgid "" -":c:func:`PyErr_Restore`: Use :c:func:`PyErr_SetRaisedException` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:15 -msgid "" -":c:func:`PyModule_GetFilename`: Use :c:func:`PyModule_GetFilenameObject` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:17 -msgid ":c:func:`PyOS_AfterFork`: Use :c:func:`PyOS_AfterFork_Child` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:19 -msgid "" -":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` " -"and :c:func:`PySlice_AdjustIndices` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:21 -msgid ":c:func:`PyUnicode_READY`: Unneeded since Python 3.12" -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:23 -msgid ":c:func:`!PyErr_Display`: Use :c:func:`PyErr_DisplayException` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:25 -msgid "" -":c:func:`!_PyErr_ChainExceptions`: Use :c:func:`!_PyErr_ChainExceptions1` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:27 -msgid "" -":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:29 -msgid "Thread Local Storage (TLS) API:" -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:31 -msgid "" -":c:func:`PyThread_create_key`: Use :c:func:`PyThread_tss_alloc` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:33 -msgid ":c:func:`PyThread_delete_key`: Use :c:func:`PyThread_tss_free` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:35 -msgid "" -":c:func:`PyThread_set_key_value`: Use :c:func:`PyThread_tss_set` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:37 -msgid "" -":c:func:`PyThread_get_key_value`: Use :c:func:`PyThread_tss_get` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:39 -msgid "" -":c:func:`PyThread_delete_key_value`: Use :c:func:`PyThread_tss_delete` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:41 -msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." -msgstr "" diff --git a/deprecations/index.po b/deprecations/index.po deleted file mode 100644 index b5fcf6de0e..0000000000 --- a/deprecations/index.po +++ /dev/null @@ -1,1626 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: deprecations/index.rst:2 -msgid "Deprecations" -msgstr "Obsolescence" - -#: deprecations/c-api-pending-removal-in-3.15.rst:2 -#: deprecations/pending-removal-in-3.15.rst:2 -msgid "Pending removal in Python 3.15" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:4 -#: deprecations/pending-removal-in-3.16.rst:4 -msgid "The import system:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:6 -msgid "" -"Setting ``__cached__`` on a module while failing to " -"set :attr:`__spec__.cached ` is " -"deprecated. In Python 3.15, ``__cached__`` will cease to be set or take into " -"consideration by the import system or standard library. (:gh:`97879`)" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:11 -msgid "" -"Setting :attr:`~module.__package__` on a module while failing to " -"set :attr:`__spec__.parent ` is " -"deprecated. In Python 3.15, :attr:`!__package__` will cease to be set or " -"take into consideration by the import system or standard library. " -"(:gh:`97879`)" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:16 -#: deprecations/pending-removal-in-3.19.rst:4 -msgid ":mod:`ctypes`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:18 -msgid "" -"The undocumented :func:`!ctypes.SetPointerType` function has been deprecated " -"since Python 3.13." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:21 -msgid ":mod:`http.server`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:23 -msgid "" -"The obsolete and rarely used :class:`!CGIHTTPRequestHandler` has been " -"deprecated since Python 3.13. No direct replacement exists. *Anything* is " -"better than CGI to interface a web server with a request handler." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:29 -msgid "" -"The :option:`!--cgi` flag to the :program:`python -m http.server` command-" -"line interface has been deprecated since Python 3.13." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:32 -#: deprecations/pending-removal-in-future.rst:62 -msgid ":mod:`importlib`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:34 -msgid "``load_module()`` method: use ``exec_module()`` instead." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:36 -msgid ":mod:`pathlib`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:38 -msgid "" -":meth:`!.PurePath.is_reserved` has been deprecated since Python 3.13. " -"Use :func:`os.path.isreserved` to detect reserved paths on Windows." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:42 -msgid ":mod:`platform`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:44 -msgid "" -":func:`!platform.java_ver` has been deprecated since Python 3.13. This " -"function is only useful for Jython support, has a confusing API, and is " -"largely untested." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:48 -#: deprecations/pending-removal-in-3.16.rst:96 -msgid ":mod:`sysconfig`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:50 -msgid "" -"The *check_home* argument of :func:`sysconfig.is_python_build` has been " -"deprecated since Python 3.12." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:53 -msgid ":mod:`threading`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:55 -msgid "" -":func:`~threading.RLock` will take no arguments in Python 3.15. Passing any " -"arguments has been deprecated since Python 3.14, as the Python version does " -"not permit any arguments, but the C version allows any number of positional " -"or keyword arguments, ignoring every argument." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:61 -msgid ":mod:`types`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:63 -msgid "" -":class:`types.CodeType`: Accessing :attr:`!codeobject.co_lnotab` was " -"deprecated in :pep:`626` since 3.10 and was planned to be removed in 3.12, " -"but it only got a proper :exc:`DeprecationWarning` in 3.12. May be removed " -"in 3.15. (Contributed by Nikita Sobolev in :gh:`101866`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:70 -#: deprecations/pending-removal-in-3.17.rst:45 -msgid ":mod:`typing`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:72 -msgid "" -"The undocumented keyword argument syntax for " -"creating :class:`~typing.NamedTuple` classes (for example, ``Point = " -"NamedTuple(\"Point\", x=int, y=int)``) has been deprecated since Python " -"3.13. Use the class-based syntax or the functional syntax instead." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:78 -msgid "" -"When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " -"to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " -"passing ``None`` (``TD = TypedDict(\"TD\", None)``) has been deprecated " -"since Python 3.13. Use ``class TD(TypedDict): pass`` or ``TD = " -"TypedDict(\"TD\", {})`` to create a TypedDict with zero field." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:85 -msgid "" -"The :func:`!typing.no_type_check_decorator` decorator function has been " -"deprecated since Python 3.13. After eight years in the :mod:`typing` module, " -"it has yet to be supported by any major type checker." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:90 -msgid "" -":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:92 -msgid ":mod:`wave`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:94 -msgid "" -"The ``getmark()``, ``setmark()`` and ``getmarkers()`` methods of " -"the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes have been " -"deprecated since Python 3.13." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:98 -msgid ":mod:`zipimport`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:100 -msgid "" -":meth:`!zipimport.zipimporter.load_module` has been deprecated since Python " -"3.10. Use :meth:`~zipimport.zipimporter.exec_module` instead. (:gh:`125746`.)" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.16.rst:2 -#: deprecations/pending-removal-in-3.16.rst:2 -msgid "Pending removal in Python 3.16" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:6 -msgid "" -"Setting :attr:`~module.__loader__` on a module while failing to " -"set :attr:`__spec__.loader ` is " -"deprecated. In Python 3.16, :attr:`!__loader__` will cease to be set or " -"taken into consideration by the import system or the standard library." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:11 -msgid ":mod:`array`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:13 -msgid "" -"The ``'u'`` format code (:c:type:`wchar_t`) has been deprecated in " -"documentation since Python 3.3 and at runtime since Python 3.13. Use the " -"``'w'`` format code (:c:type:`Py_UCS4`) for Unicode characters instead." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:19 -msgid ":mod:`asyncio`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:21 -msgid "" -":func:`!asyncio.iscoroutinefunction` is deprecated and will be removed in " -"Python 3.16; use :func:`inspect.iscoroutinefunction` instead. (Contributed " -"by Jiahao Li and Kumar Aditya in :gh:`122875`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:26 -msgid "" -":mod:`asyncio` policy system is deprecated and will be removed in Python " -"3.16. In particular, the following classes and functions are deprecated:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:29 -msgid ":class:`asyncio.AbstractEventLoopPolicy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:30 -msgid ":class:`asyncio.DefaultEventLoopPolicy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:31 -msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:32 -msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:33 -msgid ":func:`asyncio.get_event_loop_policy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:34 -msgid ":func:`asyncio.set_event_loop_policy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:36 -msgid "" -"Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with " -"*loop_factory* to use the desired event loop implementation." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:39 -msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows::" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:48 -msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:50 -#: deprecations/pending-removal-in-future.rst:16 -msgid ":mod:`builtins`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:52 -msgid "" -"Bitwise inversion on boolean types, ``~True`` or ``~False`` has been " -"deprecated since Python 3.12, as it produces surprising and unintuitive " -"results (``-2`` and ``-1``). Use ``not x`` instead for the logical negation " -"of a Boolean. In the rare case that you need the bitwise inversion of the " -"underlying integer, convert to ``int`` explicitly (``~int(x)``)." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:59 -msgid ":mod:`functools`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:61 -msgid "" -"Calling the Python implementation of :func:`functools.reduce` with " -"*function* or *sequence* as keyword arguments has been deprecated since " -"Python 3.14." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:64 -msgid ":mod:`logging`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:66 -msgid "" -"Support for custom logging handlers with the *strm* argument is deprecated " -"and scheduled for removal in Python 3.16. Define handlers with the *stream* " -"argument instead. (Contributed by Mariusz Felisiak in :gh:`115032`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:70 -msgid ":mod:`mimetypes`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:72 -msgid "" -"Valid extensions start with a '.' or are empty " -"for :meth:`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated " -"and will raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van " -"Kemenade in :gh:`75223`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:78 -msgid ":mod:`shutil`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:80 -msgid "" -"The :class:`!ExecError` exception has been deprecated since Python 3.14. It " -"has not been used by any function in :mod:`!shutil` since Python 3.4, and is " -"now an alias of :exc:`RuntimeError`." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:85 -msgid ":mod:`symtable`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:87 -msgid "" -"The :meth:`Class.get_methods ` method has been " -"deprecated since Python 3.14." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:90 -msgid ":mod:`sys`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:92 -msgid "" -"The :func:`~sys._enablelegacywindowsfsencoding` function has been deprecated " -"since Python 3.13. Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " -"environment variable instead." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:98 -msgid "" -"The :func:`!sysconfig.expand_makefile_vars` function has been deprecated " -"since Python 3.14. Use the ``vars`` argument of :func:`sysconfig.get_paths` " -"instead." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:102 -msgid ":mod:`tarfile`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:104 -msgid "" -"The undocumented and unused :attr:`!TarFile.tarfile` attribute has been " -"deprecated since Python 3.13." -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:2 -msgid "Pending removal in Python 3.17" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:4 -#: deprecations/pending-removal-in-future.rst:53 -msgid ":mod:`datetime`:" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:6 -msgid "" -":meth:`~datetime.datetime.strptime` calls using a format string containing " -"``%e`` (day of month) without a year. This has been deprecated since Python " -"3.15. (Contributed by Stan Ulbrych in :gh:`70647`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:12 -msgid ":mod:`collections.abc`:" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:14 -msgid "" -":class:`collections.abc.ByteString` is scheduled for removal in Python 3.17." -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:16 -#: deprecations/pending-removal-in-3.17.rst:55 -msgid "" -"Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj`` " -"implements the :ref:`buffer protocol ` at runtime. For use in " -"type annotations, either use :class:`~collections.abc.Buffer` or a union " -"that explicitly specifies the types your code supports (e.g., ``bytes | " -"bytearray | memoryview``)." -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:22 -#: deprecations/pending-removal-in-3.17.rst:61 -msgid "" -":class:`!ByteString` was originally intended to be an abstract class that " -"would serve as a supertype of both :class:`bytes` and :class:`bytearray`. " -"However, since the ABC never had any methods, knowing that an object was an " -"instance of :class:`!ByteString` never actually told you anything useful " -"about the object. Other common buffer types such as :class:`memoryview` were " -"also never understood as subtypes of :class:`!ByteString` (either at runtime " -"or by static type checkers)." -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:30 -#: deprecations/pending-removal-in-3.17.rst:69 -msgid "" -"See :pep:`PEP 688 <688#current-options>` for more details. (Contributed by " -"Shantanu Jain in :gh:`91896`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:34 -msgid ":mod:`encodings`:" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:36 -msgid "" -"Passing non-ascii *encoding* names to :func:`encodings.normalize_encoding` " -"is deprecated and scheduled for removal in Python 3.17. (Contributed by Stan " -"Ulbrych in :gh:`136702`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:40 -msgid ":mod:`webbrowser`:" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:42 -msgid "" -":class:`!webbrowser.MacOSXOSAScript` is deprecated in favour of :class:`!" -"webbrowser.MacOS`. (:gh:`137586`)" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:47 -msgid "" -"Before Python 3.14, old-style unions were implemented using the private " -"class ``typing._UnionGenericAlias``. This class is no longer needed for the " -"implementation, but it has been retained for backward compatibility, with " -"removal scheduled for Python 3.17. Users should use documented introspection " -"helpers like :func:`typing.get_origin` and :func:`typing.get_args` instead " -"of relying on private implementation details." -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:52 -msgid "" -":class:`typing.ByteString`, deprecated since Python 3.9, is scheduled for " -"removal in Python 3.17." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:2 -#: deprecations/pending-removal-in-3.18.rst:2 -msgid "Pending removal in Python 3.18" -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:4 -msgid "" -"No longer accept a boolean value when a file descriptor is expected. " -"(Contributed by Serhiy Storchaka in :gh:`82626`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:7 -msgid ":mod:`decimal`:" -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:9 -msgid "" -"The non-standard and undocumented :class:`~decimal.Decimal` format specifier " -"``'N'``, which is only supported in the :mod:`!decimal` module's C " -"implementation, has been deprecated since Python 3.13. (Contributed by " -"Serhiy Storchaka in :gh:`89902`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:14 -#: deprecations/pending-removal-in-3.20.rst:42 -msgid "Deprecations defined by :pep:`829`:" -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:16 -msgid "``import`` lines in :file:`{name}.pth` files are silently ignored." -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:18 -#: deprecations/pending-removal-in-3.20.rst:50 -msgid "(Contributed by Barry Warsaw in :gh:`148641`.)" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.19.rst:2 -#: deprecations/pending-removal-in-3.19.rst:2 -msgid "Pending removal in Python 3.19" -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:6 -msgid "" -"Implicitly switching to the MSVC-compatible struct layout by " -"setting :attr:`~ctypes.Structure._pack_` but " -"not :attr:`~ctypes.Structure._layout_` on non-Windows platforms." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:10 -msgid ":mod:`hashlib`:" -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:12 -msgid "" -"In hash function constructors such as :func:`~hashlib.new` or the direct " -"hash-named constructors such as :func:`~hashlib.md5` " -"and :func:`~hashlib.sha256`, their optional initial data parameter could " -"also be passed a keyword argument named ``data=`` or ``string=`` in " -"various :mod:`!hashlib` implementations." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:18 -msgid "" -"Support for the ``string`` keyword argument name is now deprecated and " -"slated for removal in Python 3.19." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:21 -msgid "" -"Before Python 3.13, the ``string`` keyword parameter was not correctly " -"supported depending on the backend implementation of hash functions. Prefer " -"passing the initial data as a positional argument for maximum backwards " -"compatibility." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:26 -msgid ":mod:`http.cookies`:" -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:28 -msgid "" -":meth:`http.cookies.Morsel.js_output` is deprecated and will be removed in " -"Python 3.19." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:31 -msgid "" -":meth:`http.cookies.BaseCookie.js_output` is deprecated and will be removed " -"in Python 3.19." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:34 -msgid ":mod:`imaplib`:" -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:36 -msgid "" -"Altering :attr:`IMAP4.file ` is now deprecated and " -"slated for removal in Python 3.19. This property is now unused and changing " -"its value does not automatically close the current file." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:40 -msgid "" -"Before Python 3.14, this property was used to implement the corresponding " -"``read()`` and ``readline()`` methods for :class:`~imaplib.IMAP4` but this " -"is no longer the case since then." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.20.rst:2 -#: deprecations/pending-removal-in-3.20.rst:2 -msgid "Pending removal in Python 3.20" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:4 -msgid "" -"Calling the ``__new__()`` method of :class:`struct.Struct` without the " -"*format* argument is deprecated and will be removed in Python 3.20. " -"Calling :meth:`~object.__init__` method on " -"initialized :class:`~struct.Struct` objects is deprecated and will be " -"removed in Python 3.20." -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:9 -msgid "" -"(Contributed by Sergey B Kirpichev and Serhiy Storchaka in :gh:`143715`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:11 -msgid "" -"The ``__version__``, ``version`` and ``VERSION`` attributes have been " -"deprecated in these standard library modules and will be removed in Python " -"3.20. Use :py:data:`sys.version_info` instead." -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:15 -msgid ":mod:`argparse`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:16 -msgid ":mod:`csv`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:17 -msgid ":mod:`ctypes`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:18 -msgid ":mod:`!ctypes.macholib`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:19 -msgid ":mod:`decimal` (use :data:`decimal.SPEC_VERSION` instead)" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:20 -msgid ":mod:`http.server`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:21 -msgid ":mod:`imaplib`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:22 -msgid ":mod:`ipaddress`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:23 -msgid ":mod:`json`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:24 -msgid ":mod:`logging` (``__date__`` also deprecated)" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:25 -msgid ":mod:`optparse`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:26 -msgid ":mod:`pickle`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:27 -msgid ":mod:`platform`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:28 -msgid ":mod:`re`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:29 -msgid ":mod:`socketserver`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:30 -msgid ":mod:`tabnanny`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:31 -msgid ":mod:`tarfile`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:32 -msgid ":mod:`tkinter.font`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:33 -msgid ":mod:`tkinter.ttk`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:34 -msgid ":mod:`wsgiref.simple_server`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:35 -msgid ":mod:`xml.etree.ElementTree`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:36 -msgid ":mod:`!xml.sax.expatreader`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:37 -msgid ":mod:`xml.sax.handler`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:38 -msgid ":mod:`zlib`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:40 -msgid "(Contributed by Hugo van Kemenade and Stan Ulbrych in :gh:`76007`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:44 -msgid "" -"Warnings are produced for ``import`` lines found in :file:`{name}.pth` files." -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:47 -msgid "" -":file:`{name}.pth` files are no longer decoded in the locale encoding by " -"default. They **MUST** be encoded in ``utf-8-sig``." -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:52 -msgid ":mod:`ast`:" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:54 -msgid "" -"Creating instances of abstract AST nodes (such as :class:`ast.AST` " -"or :class:`!ast.expr`) is deprecated and will raise an error in Python 3.20." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:2 -#: deprecations/pending-removal-in-future.rst:2 -msgid "Pending removal in future versions" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:4 -msgid "" -"The following APIs will be removed in the future, although there is " -"currently no date scheduled for their removal." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:7 -msgid ":mod:`argparse`:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:9 -msgid "" -"Nesting argument groups and nesting mutually exclusive groups are deprecated." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:11 -msgid "" -"Passing the undocumented keyword argument *prefix_chars* " -"to :meth:`~argparse.ArgumentParser.add_argument_group` is now deprecated." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:14 -msgid "The :class:`argparse.FileType` type converter is deprecated." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:18 -msgid "" -"Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " -"is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " -"argument signature." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:21 -msgid "" -"Currently Python accepts numeric literals immediately followed by keywords, " -"for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " -"ambiguous expressions like ``[0x1for x in y]`` (which can be interpreted as " -"``[0x1 for x in y]`` or ``[0x1f or x in y]``). A syntax warning is raised " -"if the numeric literal is immediately followed by one of " -"keywords :keyword:`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` " -"and :keyword:`or`. In a future release it will be changed to a syntax " -"error. (:gh:`87999`)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:29 -msgid "" -"Support for ``__index__()`` and ``__int__()`` method returning non-int type: " -"these methods will be required to return an instance of a strict subclass " -"of :class:`int`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:32 -msgid "" -"Support for ``__float__()`` method returning a strict subclass " -"of :class:`float`: these methods will be required to return an instance " -"of :class:`float`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:35 -msgid "" -"Support for ``__complex__()`` method returning a strict subclass " -"of :class:`complex`: these methods will be required to return an instance " -"of :class:`complex`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:38 -msgid "" -"Passing a complex number as the *real* or *imag* argument in " -"the :func:`complex` constructor is now deprecated; it should only be passed " -"as a single positional argument. (Contributed by Serhiy Storchaka " -"in :gh:`109218`.)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:43 -msgid "" -":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " -"are deprecated and replaced by :data:`calendar.JANUARY` " -"and :data:`calendar.FEBRUARY`. (Contributed by Prince Roshan " -"in :gh:`103636`.)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:48 -msgid "" -":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. " -"(:gh:`133038`)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:50 -msgid "" -":attr:`!codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " -"instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:55 -msgid "" -":meth:`~datetime.datetime.utcnow`: use " -"``datetime.datetime.now(tz=datetime.UTC)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:57 -msgid "" -":meth:`~datetime.datetime.utcfromtimestamp`: use " -"``datetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:60 -msgid ":mod:`gettext`: Plural value must be an integer." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:64 -msgid "" -":func:`~importlib.util.cache_from_source` *debug_override* parameter is " -"deprecated: use the *optimization* parameter instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:67 -msgid ":mod:`importlib.metadata`:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:69 -msgid "``EntryPoints`` tuple interface." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:70 -msgid "Implicit ``None`` on return values." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:72 -msgid "" -":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " -"use :meth:`~logging.warning` instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:75 -msgid "" -":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " -"BytesIO and binary mode instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:78 -msgid "" -":mod:`os`: Calling :func:`os.register_at_fork` in a multi-threaded process." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:80 -msgid "" -":mod:`os.path`: :func:`os.path.commonprefix` is deprecated, " -"use :func:`os.path.commonpath` for path prefixes. " -"The :func:`os.path.commonprefix` function is being deprecated due to having " -"a misleading name and module. The function is not safe to use for path " -"prefixes despite being included in a module about path manipulation, meaning " -"it is easy to accidentally introduce path traversal vulnerabilities into " -"Python programs by using this function." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:88 -msgid "" -":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " -"deprecated, use an exception instance." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:91 -msgid "" -":mod:`re`: More strict rules are now applied for numerical group references " -"and group names in regular expressions. Only sequence of ASCII digits is " -"now accepted as a numerical reference. The group name in bytes patterns and " -"replacement strings can now only contain ASCII letters and digits and " -"underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:98 -msgid "" -":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " -"Python 3.12; use the *onexc* parameter instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:101 -msgid ":mod:`ssl` options and protocols:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:103 -msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:104 -msgid "" -":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` " -"and :meth:`!selected_npn_protocol` are deprecated: use ALPN instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:107 -msgid "``ssl.OP_NO_SSL*`` options" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:108 -msgid "``ssl.OP_NO_TLS*`` options" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:109 -msgid "``ssl.PROTOCOL_SSLv3``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:110 -msgid "``ssl.PROTOCOL_TLS``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:111 -msgid "``ssl.PROTOCOL_TLSv1``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:112 -msgid "``ssl.PROTOCOL_TLSv1_1``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:113 -msgid "``ssl.PROTOCOL_TLSv1_2``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:114 -msgid "``ssl.TLSVersion.SSLv3``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:115 -msgid "``ssl.TLSVersion.TLSv1``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:116 -msgid "``ssl.TLSVersion.TLSv1_1``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:118 -msgid ":mod:`threading` methods:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:120 -msgid "" -":meth:`!threading.Condition.notifyAll`: " -"use :meth:`~threading.Condition.notify_all`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:121 -msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:122 -msgid "" -":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: " -"use :attr:`threading.Thread.daemon` attribute." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:124 -msgid "" -":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: " -"use :attr:`threading.Thread.name` attribute." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:126 -msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:127 -msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:129 -msgid ":class:`typing.Text` (:gh:`92332`)." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:131 -msgid "" -"The internal class ``typing._UnionGenericAlias`` is no longer used to " -"implement :class:`typing.Union`. To preserve compatibility with users using " -"this private class, a compatibility shim will be provided until at least " -"Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:136 -msgid "" -":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " -"value that is not ``None`` from a test case." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:139 -msgid "" -":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " -"instead" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:141 -msgid "``splitattr()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:142 -msgid "``splithost()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:143 -msgid "``splitnport()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:144 -msgid "``splitpasswd()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:145 -msgid "``splitport()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:146 -msgid "``splitquery()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:147 -msgid "``splittag()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:148 -msgid "``splittype()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:149 -msgid "``splituser()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:150 -msgid "``splitvalue()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:151 -msgid "``to_bytes()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:153 -msgid "" -":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " -"writes." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:156 -msgid "" -":mod:`xml.etree.ElementTree`: Testing the truth value of " -"an :class:`~xml.etree.ElementTree.Element` is deprecated. In a future " -"release it will always return ``True``. Prefer explicit ``len(elem)`` or " -"``elem is not None`` tests instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:161 -msgid "" -":func:`sys._clear_type_cache` is deprecated: " -"use :func:`sys._clear_internal_caches` instead." -msgstr "" - -#: deprecations/soft-deprecations.rst:2 -#, fuzzy -msgid "Soft deprecations" -msgstr "Obsolescence" - -#: deprecations/soft-deprecations.rst:4 -msgid "There are no plans to remove :term:`soft deprecated` APIs." -msgstr "" - -#: deprecations/soft-deprecations.rst:6 -msgid "" -":func:`re.match` and :meth:`re.Pattern.match` are now :term:`soft " -"deprecated` in favor of the new :func:`re.prefixmatch` " -"and :meth:`re.Pattern.prefixmatch` APIs, which have been added as alternate, " -"more explicit names. These are intended to be used to alleviate confusion " -"around what *match* means by following the Zen of Python's *\"Explicit is " -"better than implicit\"* mantra. Most other language regular expression " -"libraries use an API named *match* to mean what Python has always called " -"*search*." -msgstr "" - -#: deprecations/soft-deprecations.rst:15 -msgid "" -"We **do not** plan to remove the older :func:`!match` name, as it has been " -"used in code for over 30 years. Code supporting older versions of Python " -"should continue to use :func:`!match`, while new code should prefer :func:`!" -"prefixmatch`. See :ref:`prefixmatch-vs-match`." -msgstr "" - -#: deprecations/soft-deprecations.rst:20 -msgid "" -"(Contributed by Gregory P. Smith in :gh:`86519` and Hugo van Kemenade " -"in :gh:`148100`.)" -msgstr "" - -#: deprecations/index.rst:21 -msgid "C API deprecations" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:4 -msgid "" -"The :c:func:`!PyImport_ImportModuleNoBlock`: " -"Use :c:func:`PyImport_ImportModule` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:6 -msgid "" -":c:func:`!PyWeakref_GetObject` and :c:func:`!PyWeakref_GET_OBJECT`: " -"Use :c:func:`PyWeakref_GetRef` instead. The `pythoncapi-compat project " -"`__ can be used to " -"get :c:func:`PyWeakref_GetRef` on Python 3.12 and older." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:10 -msgid "" -":c:func:`!PyUnicode_AsDecodedObject`: Use :c:func:`PyCodec_Decode` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:12 -msgid "" -":c:func:`!PyUnicode_AsDecodedUnicode`: Use :c:func:`PyCodec_Decode` instead; " -"Note that some codecs (for example, \"base64\") may return a type other " -"than :class:`str`, such as :class:`bytes`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:15 -msgid "" -":c:func:`!PyUnicode_AsEncodedObject`: Use :c:func:`PyCodec_Encode` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:17 -msgid "" -":c:func:`!PyUnicode_AsEncodedUnicode`: Use :c:func:`PyCodec_Encode` instead; " -"Note that some codecs (for example, \"base64\") may return a type other " -"than :class:`bytes`, such as :class:`str`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:20 -msgid "Python initialization functions, deprecated in Python 3.13:" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:22 -msgid "" -":c:func:`!Py_GetPath`: Use :c:func:`PyConfig_Get(\"module_search_paths\") " -"` (:data:`sys.path`) instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:25 -msgid "" -":c:func:`!Py_GetPrefix`: Use :c:func:`PyConfig_Get(\"base_prefix\") " -"` (:data:`sys.base_prefix`) instead. " -"Use :c:func:`PyConfig_Get(\"prefix\") ` (:data:`sys.prefix`) " -"if :ref:`virtual environments ` need to be handled." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:30 -msgid "" -":c:func:`!Py_GetExecPrefix`: Use :c:func:`PyConfig_Get(\"base_exec_prefix\") " -"` (:data:`sys.base_exec_prefix`) instead. " -"Use :c:func:`PyConfig_Get(\"exec_prefix\") ` " -"(:data:`sys.exec_prefix`) if :ref:`virtual environments ` need to " -"be handled." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:36 -msgid "" -":c:func:`!Py_GetProgramFullPath`: Use :c:func:`PyConfig_Get(\"executable\") " -"` (:data:`sys.executable`) instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:39 -msgid "" -":c:func:`!Py_GetProgramName`: Use :c:func:`PyConfig_Get(\"executable\") " -"` (:data:`sys.executable`) instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:42 -msgid "" -":c:func:`!Py_GetPythonHome`: Use :c:func:`PyConfig_Get(\"home\") " -"` or the :envvar:`PYTHONHOME` environment variable instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:46 -msgid "" -"The `pythoncapi-compat project `__ can be used to get :c:func:`PyConfig_Get` on Python 3.13 and older." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:50 -msgid "" -"Functions to configure Python's initialization, deprecated in Python 3.11:" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:52 -msgid ":c:func:`!PySys_SetArgvEx()`: Set :c:member:`PyConfig.argv` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:54 -msgid ":c:func:`!PySys_SetArgv()`: Set :c:member:`PyConfig.argv` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:56 -msgid "" -":c:func:`!Py_SetProgramName()`: Set :c:member:`PyConfig.program_name` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:58 -msgid ":c:func:`!Py_SetPythonHome()`: Set :c:member:`PyConfig.home` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:60 -msgid "" -":c:func:`!PySys_ResetWarnOptions`: Clear :data:`sys.warnoptions` and :data:`!" -"warnings.filters` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:63 -msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:66 -msgid "Global configuration variables:" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:68 -msgid "" -":c:var:`Py_DebugFlag`: Use :c:member:`PyConfig.parser_debug` " -"or :c:func:`PyConfig_Get(\"parser_debug\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:71 -msgid "" -":c:var:`Py_VerboseFlag`: Use :c:member:`PyConfig.verbose` " -"or :c:func:`PyConfig_Get(\"verbose\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:74 -msgid "" -":c:var:`Py_QuietFlag`: Use :c:member:`PyConfig.quiet` " -"or :c:func:`PyConfig_Get(\"quiet\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:77 -msgid "" -":c:var:`Py_InteractiveFlag`: Use :c:member:`PyConfig.interactive` " -"or :c:func:`PyConfig_Get(\"interactive\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:80 -msgid "" -":c:var:`Py_InspectFlag`: Use :c:member:`PyConfig.inspect` " -"or :c:func:`PyConfig_Get(\"inspect\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:83 -msgid "" -":c:var:`Py_OptimizeFlag`: Use :c:member:`PyConfig.optimization_level` " -"or :c:func:`PyConfig_Get(\"optimization_level\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:86 -msgid "" -":c:var:`Py_NoSiteFlag`: Use :c:member:`PyConfig.site_import` " -"or :c:func:`PyConfig_Get(\"site_import\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:89 -msgid "" -":c:var:`Py_BytesWarningFlag`: Use :c:member:`PyConfig.bytes_warning` " -"or :c:func:`PyConfig_Get(\"bytes_warning\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:92 -msgid "" -":c:var:`Py_FrozenFlag`: Use :c:member:`PyConfig.pathconfig_warnings` " -"or :c:func:`PyConfig_Get(\"pathconfig_warnings\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:95 -msgid "" -":c:var:`Py_IgnoreEnvironmentFlag`: Use :c:member:`PyConfig.use_environment` " -"or :c:func:`PyConfig_Get(\"use_environment\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:98 -msgid "" -":c:var:`Py_DontWriteBytecodeFlag`: Use :c:member:`PyConfig.write_bytecode` " -"or :c:func:`PyConfig_Get(\"write_bytecode\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:101 -msgid "" -":c:var:`Py_NoUserSiteDirectory`: " -"Use :c:member:`PyConfig.user_site_directory` " -"or :c:func:`PyConfig_Get(\"user_site_directory\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:104 -msgid "" -":c:var:`Py_UnbufferedStdioFlag`: Use :c:member:`PyConfig.buffered_stdio` " -"or :c:func:`PyConfig_Get(\"buffered_stdio\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:107 -msgid "" -":c:var:`Py_HashRandomizationFlag`: Use :c:member:`PyConfig.use_hash_seed` " -"and :c:member:`PyConfig.hash_seed` or :c:func:`PyConfig_Get(\"hash_seed\") " -"` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:111 -msgid "" -":c:var:`Py_IsolatedFlag`: Use :c:member:`PyConfig.isolated` " -"or :c:func:`PyConfig_Get(\"isolated\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:114 -msgid "" -":c:var:`Py_LegacyWindowsFSEncodingFlag`: " -"Use :c:member:`PyPreConfig.legacy_windows_fs_encoding` " -"or :c:func:`PyConfig_Get(\"legacy_windows_fs_encoding\") ` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:117 -msgid "" -":c:var:`Py_LegacyWindowsStdioFlag`: " -"Use :c:member:`PyConfig.legacy_windows_stdio` " -"or :c:func:`PyConfig_Get(\"legacy_windows_stdio\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:120 -msgid "" -":c:var:`!Py_FileSystemDefaultEncoding`, :c:var:`!" -"Py_HasFileSystemDefaultEncoding`: " -"Use :c:member:`PyConfig.filesystem_encoding` " -"or :c:func:`PyConfig_Get(\"filesystem_encoding\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:123 -msgid "" -":c:var:`!Py_FileSystemDefaultEncodeErrors`: " -"Use :c:member:`PyConfig.filesystem_errors` " -"or :c:func:`PyConfig_Get(\"filesystem_errors\") ` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:126 -msgid "" -":c:var:`!Py_UTF8Mode`: Use :c:member:`PyPreConfig.utf8_mode` " -"or :c:func:`PyConfig_Get(\"utf8_mode\") ` instead. " -"(see :c:func:`Py_PreInitialize`)" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.15.rst:131 -msgid "" -"The :c:func:`Py_InitializeFromConfig` API should be used " -"with :c:type:`PyConfig` to set these options. Or :c:func:`PyConfig_Get` can " -"be used to get these options at runtime." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.16.rst:4 -msgid "The bundled copy of ``libmpdec``." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:4 -msgid "" -"The following private functions are deprecated and planned for removal in " -"Python 3.18:" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:7 -msgid ":c:func:`!_PyBytes_Join`: use :c:func:`PyBytes_Join`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:8 -msgid "" -":c:func:`!_PyDict_GetItemStringWithError`: " -"use :c:func:`PyDict_GetItemStringRef`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:9 -msgid ":c:func:`!_PyDict_Pop()`: use :c:func:`PyDict_Pop`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:10 -msgid ":c:func:`!_PyLong_Sign()`: use :c:func:`PyLong_GetSign`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:11 -msgid "" -":c:func:`!_PyLong_FromDigits` and :c:func:`!_PyLong_New`: " -"use :c:func:`PyLongWriter_Create`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:13 -msgid "" -":c:func:`!_PyThreadState_UncheckedGet`: " -"use :c:func:`PyThreadState_GetUnchecked`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:14 -msgid ":c:func:`!_PyUnicode_AsString`: use :c:func:`PyUnicode_AsUTF8`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:15 -msgid "" -":c:func:`!_PyUnicodeWriter_Init`: replace ``_PyUnicodeWriter_Init(&writer)`` " -"with :c:func:`writer = PyUnicodeWriter_Create(0) `." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:18 -msgid "" -":c:func:`!_PyUnicodeWriter_Finish`: replace " -"``_PyUnicodeWriter_Finish(&writer)`` " -"with :c:func:`PyUnicodeWriter_Finish(writer) `." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:21 -msgid "" -":c:func:`!_PyUnicodeWriter_Dealloc`: replace " -"``_PyUnicodeWriter_Dealloc(&writer)`` " -"with :c:func:`PyUnicodeWriter_Discard(writer) `." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:24 -msgid "" -":c:func:`!_PyUnicodeWriter_WriteChar`: replace " -"``_PyUnicodeWriter_WriteChar(&writer, ch)`` " -"with :c:func:`PyUnicodeWriter_WriteChar(writer, ch) " -"`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:27 -msgid "" -":c:func:`!_PyUnicodeWriter_WriteStr`: replace " -"``_PyUnicodeWriter_WriteStr(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteStr(writer, str) " -"`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:30 -msgid "" -":c:func:`!_PyUnicodeWriter_WriteSubstring`: replace " -"``_PyUnicodeWriter_WriteSubstring(&writer, str, start, end)`` " -"with :c:func:`PyUnicodeWriter_WriteSubstring(writer, str, start, end) " -"`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:33 -msgid "" -":c:func:`!_PyUnicodeWriter_WriteASCIIString`: replace " -"``_PyUnicodeWriter_WriteASCIIString(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteASCII(writer, str) " -"`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:36 -msgid "" -":c:func:`!_PyUnicodeWriter_WriteLatin1String`: replace " -"``_PyUnicodeWriter_WriteLatin1String(&writer, str)`` " -"with :c:func:`PyUnicodeWriter_WriteUTF8(writer, str) " -"`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:39 -msgid ":c:func:`!_PyUnicodeWriter_Prepare`: (no replacement)." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:40 -msgid ":c:func:`!_PyUnicodeWriter_PrepareKind`: (no replacement)." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:41 -msgid ":c:func:`!_Py_HashPointer`: use :c:func:`Py_HashPointer`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:42 -msgid ":c:func:`!_Py_fopen_obj`: use :c:func:`Py_fopen`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.18.rst:44 -msgid "" -"The `pythoncapi-compat project `__ can be used to get these new public functions on Python 3.13 and older. " -"(Contributed by Victor Stinner in :gh:`128863`.)" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.19.rst:4 -msgid ":pep:`456` embedders support for the string hashing scheme definition." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.20.rst:4 -msgid "" -":c:func:`!_PyObject_CallMethodId`, :c:func:`!_PyObject_GetAttrId` " -"and :c:func:`!_PyUnicode_FromId` are deprecated since 3.15 and will be " -"removed in 3.20. Instead, use :c:func:`PyUnicode_InternFromString()` and " -"cache the result in the module state, then " -"call :c:func:`PyObject_CallMethod` or :c:func:`PyObject_GetAttr`. " -"(Contributed by Victor Stinner in :gh:`141049`.)" -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.20.rst:11 -msgid "" -"The ``cval`` field in :c:type:`PyComplexObject` (:gh:`128813`). " -"Use :c:func:`PyComplex_AsCComplex` and :c:func:`PyComplex_FromCComplex` to " -"convert a Python complex number to/from the C :c:type:`Py_complex` " -"representation." -msgstr "" - -#: deprecations/c-api-pending-removal-in-3.20.rst:16 -msgid "Macros :c:macro:`!Py_MATH_PIl` and :c:macro:`!Py_MATH_El`." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:4 -msgid "" -"The following APIs are deprecated and will be removed, although there is " -"currently no date scheduled for their removal." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:7 -msgid ":c:macro:`Py_TPFLAGS_HAVE_FINALIZE`: Unneeded since Python 3.8." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:9 -msgid ":c:func:`PyErr_Fetch`: Use :c:func:`PyErr_GetRaisedException` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:11 -msgid "" -":c:func:`PyErr_NormalizeException`: Use :c:func:`PyErr_GetRaisedException` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:13 -msgid "" -":c:func:`PyErr_Restore`: Use :c:func:`PyErr_SetRaisedException` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:15 -msgid "" -":c:func:`PyModule_GetFilename`: Use :c:func:`PyModule_GetFilenameObject` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:17 -msgid ":c:func:`PyOS_AfterFork`: Use :c:func:`PyOS_AfterFork_Child` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:19 -msgid "" -":c:func:`PySlice_GetIndicesEx`: Use :c:func:`PySlice_Unpack` " -"and :c:func:`PySlice_AdjustIndices` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:21 -msgid ":c:func:`PyUnicode_READY`: Unneeded since Python 3.12" -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:23 -msgid ":c:func:`!PyErr_Display`: Use :c:func:`PyErr_DisplayException` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:25 -msgid "" -":c:func:`!_PyErr_ChainExceptions`: Use :c:func:`!_PyErr_ChainExceptions1` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:27 -msgid "" -":c:member:`!PyBytesObject.ob_shash` member: call :c:func:`PyObject_Hash` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:29 -msgid "Thread Local Storage (TLS) API:" -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:31 -msgid "" -":c:func:`PyThread_create_key`: Use :c:func:`PyThread_tss_alloc` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:33 -msgid ":c:func:`PyThread_delete_key`: Use :c:func:`PyThread_tss_free` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:35 -msgid "" -":c:func:`PyThread_set_key_value`: Use :c:func:`PyThread_tss_set` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:37 -msgid "" -":c:func:`PyThread_get_key_value`: Use :c:func:`PyThread_tss_get` instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:39 -msgid "" -":c:func:`PyThread_delete_key_value`: Use :c:func:`PyThread_tss_delete` " -"instead." -msgstr "" - -#: deprecations/c-api-pending-removal-in-future.rst:41 -msgid ":c:func:`PyThread_ReInitTLS`: Unneeded since Python 3.7." -msgstr "" diff --git a/deprecations/pending-removal-in-3.13.po b/deprecations/pending-removal-in-3.13.po deleted file mode 100644 index e3e0f6b9c7..0000000000 --- a/deprecations/pending-removal-in-3.13.po +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: deprecations/pending-removal-in-3.13.rst:2 -msgid "Pending removal in Python 3.13" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:4 -msgid "Modules (see :pep:`594`):" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:6 -msgid ":mod:`!aifc`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:7 -msgid ":mod:`!audioop`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:8 -msgid ":mod:`!cgi`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:9 -msgid ":mod:`!cgitb`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:10 -msgid ":mod:`!chunk`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:11 -msgid ":mod:`!crypt`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:12 -msgid ":mod:`!imghdr`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:13 -msgid ":mod:`!mailcap`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:14 -msgid ":mod:`!msilib`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:15 -msgid ":mod:`!nis`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:16 -msgid ":mod:`!nntplib`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:17 -msgid ":mod:`!ossaudiodev`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:18 -msgid ":mod:`!pipes`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:19 -msgid ":mod:`!sndhdr`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:20 -msgid ":mod:`!spwd`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:21 -msgid ":mod:`!sunau`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:22 -msgid ":mod:`!telnetlib`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:23 -msgid ":mod:`!uu`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:24 -msgid ":mod:`!xdrlib`" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:26 -msgid "Other modules:" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:28 -msgid ":mod:`!lib2to3`, and the :program:`2to3` program (:gh:`84540`)" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:30 -msgid "APIs:" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:32 -msgid ":class:`!configparser.LegacyInterpolation` (:gh:`90765`)" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:33 -msgid "``locale.resetlocale()`` (:gh:`90817`)" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:34 -msgid ":meth:`!turtle.RawTurtle.settiltangle` (:gh:`50096`)" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:35 -msgid ":func:`!unittest.findTestCases` (:gh:`50096`)" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:36 -msgid ":func:`!unittest.getTestCaseNames` (:gh:`50096`)" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:37 -msgid ":func:`!unittest.makeSuite` (:gh:`50096`)" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:38 -msgid ":meth:`!unittest.TestProgram.usageExit` (:gh:`67048`)" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:39 -msgid ":class:`!webbrowser.MacOSX` (:gh:`86421`)" -msgstr "" - -#: deprecations/pending-removal-in-3.13.rst:40 -msgid ":class:`classmethod` descriptor chaining (:gh:`89519`)" -msgstr "" diff --git a/deprecations/pending-removal-in-3.14.po b/deprecations/pending-removal-in-3.14.po deleted file mode 100644 index d8f7845819..0000000000 --- a/deprecations/pending-removal-in-3.14.po +++ /dev/null @@ -1,195 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: deprecations/pending-removal-in-3.14.rst:2 -msgid "Pending removal in Python 3.14" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:4 -msgid "" -":mod:`argparse`: The *type*, *choices*, and *metavar* parameters of :class:`!" -"argparse.BooleanOptionalAction` are deprecated and will be removed in 3.14. " -"(Contributed by Nikita Sobolev in :gh:`92248`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:9 -msgid "" -":mod:`ast`: The following features have been deprecated in documentation " -"since Python 3.8, now cause a :exc:`DeprecationWarning` to be emitted at " -"runtime when they are accessed or used, and will be removed in Python 3.14:" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:13 -msgid ":class:`!ast.Num`" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:14 -msgid ":class:`!ast.Str`" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:15 -msgid ":class:`!ast.Bytes`" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:16 -msgid ":class:`!ast.NameConstant`" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:17 -msgid ":class:`!ast.Ellipsis`" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:19 -msgid "" -"Use :class:`ast.Constant` instead. (Contributed by Serhiy Storchaka " -"in :gh:`90953`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:22 -msgid ":mod:`asyncio`:" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:24 -msgid "" -"The child watcher classes :class:`!asyncio.MultiLoopChildWatcher`, :class:`!" -"asyncio.FastChildWatcher`, :class:`!asyncio.AbstractChildWatcher` " -"and :class:`!asyncio.SafeChildWatcher` are deprecated and will be removed in " -"Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:30 -msgid "" -":func:`!asyncio.set_child_watcher`, :func:`!" -"asyncio.get_child_watcher`, :meth:`!" -"asyncio.AbstractEventLoopPolicy.set_child_watcher` and :meth:`!" -"asyncio.AbstractEventLoopPolicy.get_child_watcher` are deprecated and will " -"be removed in Python 3.14. (Contributed by Kumar Aditya in :gh:`94597`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:36 -msgid "" -"The :meth:`~asyncio.get_event_loop` method of the default event loop policy " -"now emits a :exc:`DeprecationWarning` if there is no current event loop set " -"and it decides to create one. (Contributed by Serhiy Storchaka and Guido van " -"Rossum in :gh:`100160`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:41 -msgid "" -":mod:`email`: Deprecated the *isdst* parameter " -"in :func:`email.utils.localtime`. (Contributed by Alan Williams " -"in :gh:`72346`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:44 -msgid ":mod:`importlib.abc` deprecated classes:" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:46 -msgid ":class:`!importlib.abc.ResourceReader`" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:47 -msgid ":class:`!importlib.abc.Traversable`" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:48 -msgid ":class:`!importlib.abc.TraversableResources`" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:50 -msgid "Use :mod:`importlib.resources.abc` classes instead:" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:52 -msgid ":class:`importlib.resources.abc.Traversable`" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:53 -msgid ":class:`importlib.resources.abc.TraversableResources`" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:55 -msgid "(Contributed by Jason R. Coombs and Hugo van Kemenade in :gh:`93963`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:57 -msgid "" -":mod:`itertools` had undocumented, inefficient, historically buggy, and " -"inconsistent support for copy, deepcopy, and pickle operations. This will be " -"removed in 3.14 for a significant reduction in code volume and maintenance " -"burden. (Contributed by Raymond Hettinger in :gh:`101588`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:63 -msgid "" -":mod:`multiprocessing`: The default start method will change to a safer one " -"on Linux, BSDs, and other non-macOS POSIX platforms where ``'fork'`` is " -"currently the default (:gh:`84559`). Adding a runtime warning about this was " -"deemed too disruptive as the majority of code is not expected to care. Use " -"the :func:`~multiprocessing.get_context` " -"or :func:`~multiprocessing.set_start_method` APIs to explicitly specify when " -"your code *requires* ``'fork'``. See :ref:`multiprocessing-start-methods`." -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:71 -msgid "" -":mod:`pathlib`: :meth:`~pathlib.PurePath.is_relative_to` " -"and :meth:`~pathlib.PurePath.relative_to`: passing additional arguments is " -"deprecated." -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:75 -msgid "" -":mod:`pkgutil`: :func:`!pkgutil.find_loader` and :func:`!pkgutil.get_loader` " -"now raise :exc:`DeprecationWarning`; use :func:`importlib.util.find_spec` " -"instead. (Contributed by Nikita Sobolev in :gh:`97850`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:80 -msgid ":mod:`pty`:" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:82 -msgid "``master_open()``: use :func:`pty.openpty`." -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:83 -msgid "``slave_open()``: use :func:`pty.openpty`." -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:85 -msgid ":mod:`sqlite3`:" -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:87 -msgid ":data:`!version` and :data:`!version_info`." -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:89 -msgid "" -":meth:`~sqlite3.Cursor.execute` and :meth:`~sqlite3.Cursor.executemany` " -"if :ref:`named placeholders ` are used and " -"*parameters* is a sequence instead of a :class:`dict`." -msgstr "" - -#: deprecations/pending-removal-in-3.14.rst:93 -msgid "" -":mod:`urllib`: :class:`!urllib.parse.Quoter` is deprecated: it was not " -"intended to be a public API. (Contributed by Gregory P. Smith " -"in :gh:`88168`.)" -msgstr "" diff --git a/deprecations/pending-removal-in-3.15.po b/deprecations/pending-removal-in-3.15.po deleted file mode 100644 index 1a7107cf92..0000000000 --- a/deprecations/pending-removal-in-3.15.po +++ /dev/null @@ -1,185 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: deprecations/pending-removal-in-3.15.rst:2 -msgid "Pending removal in Python 3.15" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:4 -msgid "The import system:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:6 -msgid "" -"Setting ``__cached__`` on a module while failing to " -"set :attr:`__spec__.cached ` is " -"deprecated. In Python 3.15, ``__cached__`` will cease to be set or take into " -"consideration by the import system or standard library. (:gh:`97879`)" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:11 -msgid "" -"Setting :attr:`~module.__package__` on a module while failing to " -"set :attr:`__spec__.parent ` is " -"deprecated. In Python 3.15, :attr:`!__package__` will cease to be set or " -"take into consideration by the import system or standard library. " -"(:gh:`97879`)" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:16 -msgid ":mod:`ctypes`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:18 -msgid "" -"The undocumented :func:`!ctypes.SetPointerType` function has been deprecated " -"since Python 3.13." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:21 -msgid ":mod:`http.server`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:23 -msgid "" -"The obsolete and rarely used :class:`!CGIHTTPRequestHandler` has been " -"deprecated since Python 3.13. No direct replacement exists. *Anything* is " -"better than CGI to interface a web server with a request handler." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:29 -msgid "" -"The :option:`!--cgi` flag to the :program:`python -m http.server` command-" -"line interface has been deprecated since Python 3.13." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:32 -msgid ":mod:`importlib`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:34 -msgid "``load_module()`` method: use ``exec_module()`` instead." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:36 -msgid ":mod:`pathlib`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:38 -msgid "" -":meth:`!.PurePath.is_reserved` has been deprecated since Python 3.13. " -"Use :func:`os.path.isreserved` to detect reserved paths on Windows." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:42 -msgid ":mod:`platform`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:44 -msgid "" -":func:`!platform.java_ver` has been deprecated since Python 3.13. This " -"function is only useful for Jython support, has a confusing API, and is " -"largely untested." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:48 -msgid ":mod:`sysconfig`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:50 -msgid "" -"The *check_home* argument of :func:`sysconfig.is_python_build` has been " -"deprecated since Python 3.12." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:53 -msgid ":mod:`threading`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:55 -msgid "" -":func:`~threading.RLock` will take no arguments in Python 3.15. Passing any " -"arguments has been deprecated since Python 3.14, as the Python version does " -"not permit any arguments, but the C version allows any number of positional " -"or keyword arguments, ignoring every argument." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:61 -msgid ":mod:`types`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:63 -msgid "" -":class:`types.CodeType`: Accessing :attr:`!codeobject.co_lnotab` was " -"deprecated in :pep:`626` since 3.10 and was planned to be removed in 3.12, " -"but it only got a proper :exc:`DeprecationWarning` in 3.12. May be removed " -"in 3.15. (Contributed by Nikita Sobolev in :gh:`101866`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:70 -msgid ":mod:`typing`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:72 -msgid "" -"The undocumented keyword argument syntax for " -"creating :class:`~typing.NamedTuple` classes (for example, ``Point = " -"NamedTuple(\"Point\", x=int, y=int)``) has been deprecated since Python " -"3.13. Use the class-based syntax or the functional syntax instead." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:78 -msgid "" -"When using the functional syntax of :class:`~typing.TypedDict`\\s, failing " -"to pass a value to the *fields* parameter (``TD = TypedDict(\"TD\")``) or " -"passing ``None`` (``TD = TypedDict(\"TD\", None)``) has been deprecated " -"since Python 3.13. Use ``class TD(TypedDict): pass`` or ``TD = " -"TypedDict(\"TD\", {})`` to create a TypedDict with zero field." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:85 -msgid "" -"The :func:`!typing.no_type_check_decorator` decorator function has been " -"deprecated since Python 3.13. After eight years in the :mod:`typing` module, " -"it has yet to be supported by any major type checker." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:90 -msgid "" -":mod:`!sre_compile`, :mod:`!sre_constants` and :mod:`!sre_parse` modules." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:92 -msgid ":mod:`wave`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:94 -msgid "" -"The ``getmark()``, ``setmark()`` and ``getmarkers()`` methods of " -"the :class:`~wave.Wave_read` and :class:`~wave.Wave_write` classes have been " -"deprecated since Python 3.13." -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:98 -msgid ":mod:`zipimport`:" -msgstr "" - -#: deprecations/pending-removal-in-3.15.rst:100 -msgid "" -":meth:`!zipimport.zipimporter.load_module` has been deprecated since Python " -"3.10. Use :meth:`~zipimport.zipimporter.exec_module` instead. (:gh:`125746`.)" -msgstr "" diff --git a/deprecations/pending-removal-in-3.16.po b/deprecations/pending-removal-in-3.16.po deleted file mode 100644 index bd5b85b0f6..0000000000 --- a/deprecations/pending-removal-in-3.16.po +++ /dev/null @@ -1,198 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: deprecations/pending-removal-in-3.16.rst:2 -msgid "Pending removal in Python 3.16" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:4 -msgid "The import system:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:6 -msgid "" -"Setting :attr:`~module.__loader__` on a module while failing to " -"set :attr:`__spec__.loader ` is " -"deprecated. In Python 3.16, :attr:`!__loader__` will cease to be set or " -"taken into consideration by the import system or the standard library." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:11 -msgid ":mod:`array`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:13 -msgid "" -"The ``'u'`` format code (:c:type:`wchar_t`) has been deprecated in " -"documentation since Python 3.3 and at runtime since Python 3.13. Use the " -"``'w'`` format code (:c:type:`Py_UCS4`) for Unicode characters instead." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:19 -msgid ":mod:`asyncio`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:21 -msgid "" -":func:`!asyncio.iscoroutinefunction` is deprecated and will be removed in " -"Python 3.16; use :func:`inspect.iscoroutinefunction` instead. (Contributed " -"by Jiahao Li and Kumar Aditya in :gh:`122875`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:26 -msgid "" -":mod:`asyncio` policy system is deprecated and will be removed in Python " -"3.16. In particular, the following classes and functions are deprecated:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:29 -msgid ":class:`asyncio.AbstractEventLoopPolicy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:30 -msgid ":class:`asyncio.DefaultEventLoopPolicy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:31 -msgid ":class:`asyncio.WindowsSelectorEventLoopPolicy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:32 -msgid ":class:`asyncio.WindowsProactorEventLoopPolicy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:33 -msgid ":func:`asyncio.get_event_loop_policy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:34 -msgid ":func:`asyncio.set_event_loop_policy`" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:36 -msgid "" -"Users should use :func:`asyncio.run` or :class:`asyncio.Runner` with " -"*loop_factory* to use the desired event loop implementation." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:39 -msgid "For example, to use :class:`asyncio.SelectorEventLoop` on Windows::" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:48 -msgid "(Contributed by Kumar Aditya in :gh:`127949`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:50 -msgid ":mod:`builtins`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:52 -msgid "" -"Bitwise inversion on boolean types, ``~True`` or ``~False`` has been " -"deprecated since Python 3.12, as it produces surprising and unintuitive " -"results (``-2`` and ``-1``). Use ``not x`` instead for the logical negation " -"of a Boolean. In the rare case that you need the bitwise inversion of the " -"underlying integer, convert to ``int`` explicitly (``~int(x)``)." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:59 -msgid ":mod:`functools`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:61 -msgid "" -"Calling the Python implementation of :func:`functools.reduce` with " -"*function* or *sequence* as keyword arguments has been deprecated since " -"Python 3.14." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:64 -msgid ":mod:`logging`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:66 -msgid "" -"Support for custom logging handlers with the *strm* argument is deprecated " -"and scheduled for removal in Python 3.16. Define handlers with the *stream* " -"argument instead. (Contributed by Mariusz Felisiak in :gh:`115032`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:70 -msgid ":mod:`mimetypes`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:72 -msgid "" -"Valid extensions start with a '.' or are empty " -"for :meth:`mimetypes.MimeTypes.add_type`. Undotted extensions are deprecated " -"and will raise a :exc:`ValueError` in Python 3.16. (Contributed by Hugo van " -"Kemenade in :gh:`75223`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:78 -msgid ":mod:`shutil`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:80 -msgid "" -"The :class:`!ExecError` exception has been deprecated since Python 3.14. It " -"has not been used by any function in :mod:`!shutil` since Python 3.4, and is " -"now an alias of :exc:`RuntimeError`." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:85 -msgid ":mod:`symtable`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:87 -msgid "" -"The :meth:`Class.get_methods ` method has been " -"deprecated since Python 3.14." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:90 -msgid ":mod:`sys`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:92 -msgid "" -"The :func:`~sys._enablelegacywindowsfsencoding` function has been deprecated " -"since Python 3.13. Use the :envvar:`PYTHONLEGACYWINDOWSFSENCODING` " -"environment variable instead." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:96 -msgid ":mod:`sysconfig`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:98 -msgid "" -"The :func:`!sysconfig.expand_makefile_vars` function has been deprecated " -"since Python 3.14. Use the ``vars`` argument of :func:`sysconfig.get_paths` " -"instead." -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:102 -msgid ":mod:`tarfile`:" -msgstr "" - -#: deprecations/pending-removal-in-3.16.rst:104 -msgid "" -"The undocumented and unused :attr:`!TarFile.tarfile` attribute has been " -"deprecated since Python 3.13." -msgstr "" diff --git a/deprecations/pending-removal-in-3.17.po b/deprecations/pending-removal-in-3.17.po deleted file mode 100644 index 1c5cb08f82..0000000000 --- a/deprecations/pending-removal-in-3.17.po +++ /dev/null @@ -1,110 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: deprecations/pending-removal-in-3.17.rst:2 -msgid "Pending removal in Python 3.17" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:4 -msgid ":mod:`datetime`:" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:6 -msgid "" -":meth:`~datetime.datetime.strptime` calls using a format string containing " -"``%e`` (day of month) without a year. This has been deprecated since Python " -"3.15. (Contributed by Stan Ulbrych in :gh:`70647`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:12 -msgid ":mod:`collections.abc`:" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:14 -msgid "" -":class:`collections.abc.ByteString` is scheduled for removal in Python 3.17." -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:16 -#: deprecations/pending-removal-in-3.17.rst:55 -msgid "" -"Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj`` " -"implements the :ref:`buffer protocol ` at runtime. For use in " -"type annotations, either use :class:`~collections.abc.Buffer` or a union " -"that explicitly specifies the types your code supports (e.g., ``bytes | " -"bytearray | memoryview``)." -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:22 -#: deprecations/pending-removal-in-3.17.rst:61 -msgid "" -":class:`!ByteString` was originally intended to be an abstract class that " -"would serve as a supertype of both :class:`bytes` and :class:`bytearray`. " -"However, since the ABC never had any methods, knowing that an object was an " -"instance of :class:`!ByteString` never actually told you anything useful " -"about the object. Other common buffer types such as :class:`memoryview` were " -"also never understood as subtypes of :class:`!ByteString` (either at runtime " -"or by static type checkers)." -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:30 -#: deprecations/pending-removal-in-3.17.rst:69 -msgid "" -"See :pep:`PEP 688 <688#current-options>` for more details. (Contributed by " -"Shantanu Jain in :gh:`91896`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:34 -msgid ":mod:`encodings`:" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:36 -msgid "" -"Passing non-ascii *encoding* names to :func:`encodings.normalize_encoding` " -"is deprecated and scheduled for removal in Python 3.17. (Contributed by Stan " -"Ulbrych in :gh:`136702`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:40 -msgid ":mod:`webbrowser`:" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:42 -msgid "" -":class:`!webbrowser.MacOSXOSAScript` is deprecated in favour of :class:`!" -"webbrowser.MacOS`. (:gh:`137586`)" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:45 -msgid ":mod:`typing`:" -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:47 -msgid "" -"Before Python 3.14, old-style unions were implemented using the private " -"class ``typing._UnionGenericAlias``. This class is no longer needed for the " -"implementation, but it has been retained for backward compatibility, with " -"removal scheduled for Python 3.17. Users should use documented introspection " -"helpers like :func:`typing.get_origin` and :func:`typing.get_args` instead " -"of relying on private implementation details." -msgstr "" - -#: deprecations/pending-removal-in-3.17.rst:52 -msgid "" -":class:`typing.ByteString`, deprecated since Python 3.9, is scheduled for " -"removal in Python 3.17." -msgstr "" diff --git a/deprecations/pending-removal-in-3.18.po b/deprecations/pending-removal-in-3.18.po deleted file mode 100644 index ae3c87f1bb..0000000000 --- a/deprecations/pending-removal-in-3.18.po +++ /dev/null @@ -1,52 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: deprecations/pending-removal-in-3.18.rst:2 -msgid "Pending removal in Python 3.18" -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:4 -msgid "" -"No longer accept a boolean value when a file descriptor is expected. " -"(Contributed by Serhiy Storchaka in :gh:`82626`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:7 -msgid ":mod:`decimal`:" -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:9 -msgid "" -"The non-standard and undocumented :class:`~decimal.Decimal` format specifier " -"``'N'``, which is only supported in the :mod:`!decimal` module's C " -"implementation, has been deprecated since Python 3.13. (Contributed by " -"Serhiy Storchaka in :gh:`89902`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:14 -msgid "Deprecations defined by :pep:`829`:" -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:16 -msgid "``import`` lines in :file:`{name}.pth` files are silently ignored." -msgstr "" - -#: deprecations/pending-removal-in-3.18.rst:18 -msgid "(Contributed by Barry Warsaw in :gh:`148641`.)" -msgstr "" diff --git a/deprecations/pending-removal-in-3.19.po b/deprecations/pending-removal-in-3.19.po deleted file mode 100644 index 4acbc6cae2..0000000000 --- a/deprecations/pending-removal-in-3.19.po +++ /dev/null @@ -1,92 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: deprecations/pending-removal-in-3.19.rst:2 -msgid "Pending removal in Python 3.19" -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:4 -msgid ":mod:`ctypes`:" -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:6 -msgid "" -"Implicitly switching to the MSVC-compatible struct layout by " -"setting :attr:`~ctypes.Structure._pack_` but " -"not :attr:`~ctypes.Structure._layout_` on non-Windows platforms." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:10 -msgid ":mod:`hashlib`:" -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:12 -msgid "" -"In hash function constructors such as :func:`~hashlib.new` or the direct " -"hash-named constructors such as :func:`~hashlib.md5` " -"and :func:`~hashlib.sha256`, their optional initial data parameter could " -"also be passed a keyword argument named ``data=`` or ``string=`` in " -"various :mod:`!hashlib` implementations." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:18 -msgid "" -"Support for the ``string`` keyword argument name is now deprecated and " -"slated for removal in Python 3.19." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:21 -msgid "" -"Before Python 3.13, the ``string`` keyword parameter was not correctly " -"supported depending on the backend implementation of hash functions. Prefer " -"passing the initial data as a positional argument for maximum backwards " -"compatibility." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:26 -msgid ":mod:`http.cookies`:" -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:28 -msgid "" -":meth:`http.cookies.Morsel.js_output` is deprecated and will be removed in " -"Python 3.19." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:31 -msgid "" -":meth:`http.cookies.BaseCookie.js_output` is deprecated and will be removed " -"in Python 3.19." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:34 -msgid ":mod:`imaplib`:" -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:36 -msgid "" -"Altering :attr:`IMAP4.file ` is now deprecated and " -"slated for removal in Python 3.19. This property is now unused and changing " -"its value does not automatically close the current file." -msgstr "" - -#: deprecations/pending-removal-in-3.19.rst:40 -msgid "" -"Before Python 3.14, this property was used to implement the corresponding " -"``read()`` and ``readline()`` methods for :class:`~imaplib.IMAP4` but this " -"is no longer the case since then." -msgstr "" diff --git a/deprecations/pending-removal-in-3.20.po b/deprecations/pending-removal-in-3.20.po deleted file mode 100644 index 691e20f4c6..0000000000 --- a/deprecations/pending-removal-in-3.20.po +++ /dev/null @@ -1,172 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: deprecations/pending-removal-in-3.20.rst:2 -msgid "Pending removal in Python 3.20" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:4 -msgid "" -"Calling the ``__new__()`` method of :class:`struct.Struct` without the " -"*format* argument is deprecated and will be removed in Python 3.20. " -"Calling :meth:`~object.__init__` method on " -"initialized :class:`~struct.Struct` objects is deprecated and will be " -"removed in Python 3.20." -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:9 -msgid "" -"(Contributed by Sergey B Kirpichev and Serhiy Storchaka in :gh:`143715`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:11 -msgid "" -"The ``__version__``, ``version`` and ``VERSION`` attributes have been " -"deprecated in these standard library modules and will be removed in Python " -"3.20. Use :py:data:`sys.version_info` instead." -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:15 -msgid ":mod:`argparse`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:16 -msgid ":mod:`csv`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:17 -msgid ":mod:`ctypes`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:18 -msgid ":mod:`!ctypes.macholib`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:19 -msgid ":mod:`decimal` (use :data:`decimal.SPEC_VERSION` instead)" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:20 -msgid ":mod:`http.server`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:21 -msgid ":mod:`imaplib`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:22 -msgid ":mod:`ipaddress`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:23 -msgid ":mod:`json`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:24 -msgid ":mod:`logging` (``__date__`` also deprecated)" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:25 -msgid ":mod:`optparse`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:26 -msgid ":mod:`pickle`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:27 -msgid ":mod:`platform`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:28 -msgid ":mod:`re`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:29 -msgid ":mod:`socketserver`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:30 -msgid ":mod:`tabnanny`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:31 -msgid ":mod:`tarfile`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:32 -msgid ":mod:`tkinter.font`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:33 -msgid ":mod:`tkinter.ttk`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:34 -msgid ":mod:`wsgiref.simple_server`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:35 -msgid ":mod:`xml.etree.ElementTree`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:36 -msgid ":mod:`!xml.sax.expatreader`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:37 -msgid ":mod:`xml.sax.handler`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:38 -msgid ":mod:`zlib`" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:40 -msgid "(Contributed by Hugo van Kemenade and Stan Ulbrych in :gh:`76007`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:42 -msgid "Deprecations defined by :pep:`829`:" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:44 -msgid "" -"Warnings are produced for ``import`` lines found in :file:`{name}.pth` files." -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:47 -msgid "" -":file:`{name}.pth` files are no longer decoded in the locale encoding by " -"default. They **MUST** be encoded in ``utf-8-sig``." -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:50 -msgid "(Contributed by Barry Warsaw in :gh:`148641`.)" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:52 -msgid ":mod:`ast`:" -msgstr "" - -#: deprecations/pending-removal-in-3.20.rst:54 -msgid "" -"Creating instances of abstract AST nodes (such as :class:`ast.AST` " -"or :class:`!ast.expr`) is deprecated and will raise an error in Python 3.20." -msgstr "" diff --git a/deprecations/pending-removal-in-future.po b/deprecations/pending-removal-in-future.po deleted file mode 100644 index a3be5d3514..0000000000 --- a/deprecations/pending-removal-in-future.po +++ /dev/null @@ -1,384 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: deprecations/pending-removal-in-future.rst:2 -msgid "Pending removal in future versions" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:4 -msgid "" -"The following APIs will be removed in the future, although there is " -"currently no date scheduled for their removal." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:7 -msgid ":mod:`argparse`:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:9 -msgid "" -"Nesting argument groups and nesting mutually exclusive groups are deprecated." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:11 -msgid "" -"Passing the undocumented keyword argument *prefix_chars* " -"to :meth:`~argparse.ArgumentParser.add_argument_group` is now deprecated." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:14 -msgid "The :class:`argparse.FileType` type converter is deprecated." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:16 -msgid ":mod:`builtins`:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:18 -msgid "" -"Generators: ``throw(type, exc, tb)`` and ``athrow(type, exc, tb)`` signature " -"is deprecated: use ``throw(exc)`` and ``athrow(exc)`` instead, the single " -"argument signature." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:21 -msgid "" -"Currently Python accepts numeric literals immediately followed by keywords, " -"for example ``0in x``, ``1or x``, ``0if 1else 2``. It allows confusing and " -"ambiguous expressions like ``[0x1for x in y]`` (which can be interpreted as " -"``[0x1 for x in y]`` or ``[0x1f or x in y]``). A syntax warning is raised " -"if the numeric literal is immediately followed by one of " -"keywords :keyword:`and`, :keyword:`else`, :keyword:`for`, :keyword:`if`, :keyword:`in`, :keyword:`is` " -"and :keyword:`or`. In a future release it will be changed to a syntax " -"error. (:gh:`87999`)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:29 -msgid "" -"Support for ``__index__()`` and ``__int__()`` method returning non-int type: " -"these methods will be required to return an instance of a strict subclass " -"of :class:`int`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:32 -msgid "" -"Support for ``__float__()`` method returning a strict subclass " -"of :class:`float`: these methods will be required to return an instance " -"of :class:`float`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:35 -msgid "" -"Support for ``__complex__()`` method returning a strict subclass " -"of :class:`complex`: these methods will be required to return an instance " -"of :class:`complex`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:38 -msgid "" -"Passing a complex number as the *real* or *imag* argument in " -"the :func:`complex` constructor is now deprecated; it should only be passed " -"as a single positional argument. (Contributed by Serhiy Storchaka " -"in :gh:`109218`.)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:43 -msgid "" -":mod:`calendar`: ``calendar.January`` and ``calendar.February`` constants " -"are deprecated and replaced by :data:`calendar.JANUARY` " -"and :data:`calendar.FEBRUARY`. (Contributed by Prince Roshan " -"in :gh:`103636`.)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:48 -msgid "" -":mod:`codecs`: use :func:`open` instead of :func:`codecs.open`. " -"(:gh:`133038`)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:50 -msgid "" -":attr:`!codeobject.co_lnotab`: use the :meth:`codeobject.co_lines` method " -"instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:53 -msgid ":mod:`datetime`:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:55 -msgid "" -":meth:`~datetime.datetime.utcnow`: use " -"``datetime.datetime.now(tz=datetime.UTC)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:57 -msgid "" -":meth:`~datetime.datetime.utcfromtimestamp`: use " -"``datetime.datetime.fromtimestamp(timestamp, tz=datetime.UTC)``." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:60 -msgid ":mod:`gettext`: Plural value must be an integer." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:62 -msgid ":mod:`importlib`:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:64 -msgid "" -":func:`~importlib.util.cache_from_source` *debug_override* parameter is " -"deprecated: use the *optimization* parameter instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:67 -msgid ":mod:`importlib.metadata`:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:69 -msgid "``EntryPoints`` tuple interface." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:70 -msgid "Implicit ``None`` on return values." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:72 -msgid "" -":mod:`logging`: the ``warn()`` method has been deprecated since Python 3.3, " -"use :meth:`~logging.warning` instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:75 -msgid "" -":mod:`mailbox`: Use of StringIO input and text mode is deprecated, use " -"BytesIO and binary mode instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:78 -msgid "" -":mod:`os`: Calling :func:`os.register_at_fork` in a multi-threaded process." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:80 -msgid "" -":mod:`os.path`: :func:`os.path.commonprefix` is deprecated, " -"use :func:`os.path.commonpath` for path prefixes. " -"The :func:`os.path.commonprefix` function is being deprecated due to having " -"a misleading name and module. The function is not safe to use for path " -"prefixes despite being included in a module about path manipulation, meaning " -"it is easy to accidentally introduce path traversal vulnerabilities into " -"Python programs by using this function." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:88 -msgid "" -":class:`!pydoc.ErrorDuringImport`: A tuple value for *exc_info* parameter is " -"deprecated, use an exception instance." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:91 -msgid "" -":mod:`re`: More strict rules are now applied for numerical group references " -"and group names in regular expressions. Only sequence of ASCII digits is " -"now accepted as a numerical reference. The group name in bytes patterns and " -"replacement strings can now only contain ASCII letters and digits and " -"underscore. (Contributed by Serhiy Storchaka in :gh:`91760`.)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:98 -msgid "" -":mod:`shutil`: :func:`~shutil.rmtree`'s *onerror* parameter is deprecated in " -"Python 3.12; use the *onexc* parameter instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:101 -msgid ":mod:`ssl` options and protocols:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:103 -msgid ":class:`ssl.SSLContext` without protocol argument is deprecated." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:104 -msgid "" -":class:`ssl.SSLContext`: :meth:`~ssl.SSLContext.set_npn_protocols` " -"and :meth:`!selected_npn_protocol` are deprecated: use ALPN instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:107 -msgid "``ssl.OP_NO_SSL*`` options" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:108 -msgid "``ssl.OP_NO_TLS*`` options" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:109 -msgid "``ssl.PROTOCOL_SSLv3``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:110 -msgid "``ssl.PROTOCOL_TLS``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:111 -msgid "``ssl.PROTOCOL_TLSv1``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:112 -msgid "``ssl.PROTOCOL_TLSv1_1``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:113 -msgid "``ssl.PROTOCOL_TLSv1_2``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:114 -msgid "``ssl.TLSVersion.SSLv3``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:115 -msgid "``ssl.TLSVersion.TLSv1``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:116 -msgid "``ssl.TLSVersion.TLSv1_1``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:118 -msgid ":mod:`threading` methods:" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:120 -msgid "" -":meth:`!threading.Condition.notifyAll`: " -"use :meth:`~threading.Condition.notify_all`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:121 -msgid ":meth:`!threading.Event.isSet`: use :meth:`~threading.Event.is_set`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:122 -msgid "" -":meth:`!threading.Thread.isDaemon`, :meth:`threading.Thread.setDaemon`: " -"use :attr:`threading.Thread.daemon` attribute." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:124 -msgid "" -":meth:`!threading.Thread.getName`, :meth:`threading.Thread.setName`: " -"use :attr:`threading.Thread.name` attribute." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:126 -msgid ":meth:`!threading.currentThread`: use :meth:`threading.current_thread`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:127 -msgid ":meth:`!threading.activeCount`: use :meth:`threading.active_count`." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:129 -msgid ":class:`typing.Text` (:gh:`92332`)." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:131 -msgid "" -"The internal class ``typing._UnionGenericAlias`` is no longer used to " -"implement :class:`typing.Union`. To preserve compatibility with users using " -"this private class, a compatibility shim will be provided until at least " -"Python 3.17. (Contributed by Jelle Zijlstra in :gh:`105499`.)" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:136 -msgid "" -":class:`unittest.IsolatedAsyncioTestCase`: it is deprecated to return a " -"value that is not ``None`` from a test case." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:139 -msgid "" -":mod:`urllib.parse` deprecated functions: :func:`~urllib.parse.urlparse` " -"instead" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:141 -msgid "``splitattr()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:142 -msgid "``splithost()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:143 -msgid "``splitnport()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:144 -msgid "``splitpasswd()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:145 -msgid "``splitport()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:146 -msgid "``splitquery()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:147 -msgid "``splittag()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:148 -msgid "``splittype()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:149 -msgid "``splituser()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:150 -msgid "``splitvalue()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:151 -msgid "``to_bytes()``" -msgstr "" - -#: deprecations/pending-removal-in-future.rst:153 -msgid "" -":mod:`wsgiref`: ``SimpleHandler.stdout.write()`` should not do partial " -"writes." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:156 -msgid "" -":mod:`xml.etree.ElementTree`: Testing the truth value of " -"an :class:`~xml.etree.ElementTree.Element` is deprecated. In a future " -"release it will always return ``True``. Prefer explicit ``len(elem)`` or " -"``elem is not None`` tests instead." -msgstr "" - -#: deprecations/pending-removal-in-future.rst:161 -msgid "" -":func:`sys._clear_type_cache` is deprecated: " -"use :func:`sys._clear_internal_caches` instead." -msgstr "" diff --git a/deprecations/soft-deprecations.po b/deprecations/soft-deprecations.po deleted file mode 100644 index 6502835627..0000000000 --- a/deprecations/soft-deprecations.po +++ /dev/null @@ -1,52 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: deprecations/soft-deprecations.rst:2 -msgid "Soft deprecations" -msgstr "" - -#: deprecations/soft-deprecations.rst:4 -msgid "There are no plans to remove :term:`soft deprecated` APIs." -msgstr "" - -#: deprecations/soft-deprecations.rst:6 -msgid "" -":func:`re.match` and :meth:`re.Pattern.match` are now :term:`soft " -"deprecated` in favor of the new :func:`re.prefixmatch` " -"and :meth:`re.Pattern.prefixmatch` APIs, which have been added as alternate, " -"more explicit names. These are intended to be used to alleviate confusion " -"around what *match* means by following the Zen of Python's *\"Explicit is " -"better than implicit\"* mantra. Most other language regular expression " -"libraries use an API named *match* to mean what Python has always called " -"*search*." -msgstr "" - -#: deprecations/soft-deprecations.rst:15 -msgid "" -"We **do not** plan to remove the older :func:`!match` name, as it has been " -"used in code for over 30 years. Code supporting older versions of Python " -"should continue to use :func:`!match`, while new code should prefer :func:`!" -"prefixmatch`. See :ref:`prefixmatch-vs-match`." -msgstr "" - -#: deprecations/soft-deprecations.rst:20 -msgid "" -"(Contributed by Gregory P. Smith in :gh:`86519` and Hugo van Kemenade " -"in :gh:`148100`.)" -msgstr "" diff --git a/dict b/dict deleted file mode 100644 index 17f66a29f9..0000000000 --- a/dict +++ /dev/null @@ -1,216 +0,0 @@ -#python-fr --1 --ième --uplet --uplets -017f -1-uplet -212a -abi -ahlstrom -allocateur -allocateurs -alpn -attendable -base16 -base32 -base64 -base85 -batch -Bit -boguer -c++ -c- -c/c++ -C14N -C89 -c99 -chacha20 -cadriciel -cadriciels -capturants -catucci -cobjects -composabilité -concourance -contravariante -contravariantes -configurateurs -contribués -coroutine -coroutines -cpython -CSV -curryfication -cython -d'allocateurs -d'indifférentiabilité -d'itérateurs -docstrings -décodables -déduplication -délimitants -désenregistre -déserialisables -déserialisation -déserialisations -déserialise -déserialiser -déserialiseur -déserialiseurs -désérialisation -désérialiseur -désérialiseurs -déserialisées -déserialisés -désérialisés -désérialise -désérialiser -désérialisé -désérialisées -Distutils -encodable -ethnomathématiques -Excel -farrugia -finaliseur -frederik -fredrik -freeze -glibc -guido -gzip -hachabilité -hachable -hachables -hettinger -hex -html -IANA -indiçage -indo-arabes -ininterruptible -interchangés -intralignes -ios -ipv4 -ipv6 -itérateur -itérateurs -ième -journalise -journaliser -journaliseur -journalisé -journalisée -journalisés -jr. -kolams -kuchling -mailcap -l'allocateur -l'indiçage -l'itérateur -lexicographiquement -lorsqu'aucune -lorsqu'aucun -macos -mar -mar. -marshal -marc-andré -mersenne -mertz -Monty -muabilité -multiensemble -multiensembles -mutex -mémoïsant -mémoïsation -métacaractère -métacaractères -métaclasse -métaclasses -n-ième -namespace -non-hachable -non-hachables -npn -openssl -POSIX -pdb -peg -pip -pourcent -proleptique -précompilé -préemptif -préremplis -punycode -py2exe -pybsddb -pyc -pychecker -pydb -pylint -pythonwin -qu -re -recompilation -reedy -relationelle -retraçage -réentrant -réentrante -réentrants -réessayable -réexécuter -référençable -référençables -réimplémente -réimplémenter -réimplémentez -résolveurs -réusinage -réusinages -réusiné -réutilisabilité -serwy -shebang -shell -slot -smalltalk -sqlite -surprenamment -sextuplet -sérialisable -sérialisables -sérialiser -sérialiseur -sérialisé -sérialisée -sérialisées -sérialisés -sqlite -sqlite3 -tk -tokenisation -tokenisé -tokenisés -tty -uplets -utf-8 -utf-16 -utf-32 -von -w3c -world -wxwidgets -x11 -x86 -YAML -zope -émoji -ı -ſ diff --git a/distributing/index.po b/distributing/index.po deleted file mode 100644 index cdf4dbc67d..0000000000 --- a/distributing/index.po +++ /dev/null @@ -1,329 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2021-12-16 02:36+0100\n" -"Last-Translator: Fipaddict \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 3.0\n" - -#: distributing/index.rst:10 -msgid "Distributing Python Modules" -msgstr "Distribuer des modules Python" - -#: distributing/index.rst:14 -msgid "" -"Information and guidance on distributing Python modules and packages has " -"been moved to the `Python Packaging User Guide`_, and the tutorial on " -"`packaging Python projects`_." -msgstr "" - -#~ msgid "Email" -#~ msgstr "Email" - -#~ msgid "distutils-sig@python.org" -#~ msgstr "distutils-sig@python.org" - -#~ msgid "" -#~ "As a popular open source development project, Python has an active " -#~ "supporting community of contributors and users that also make their " -#~ "software available for other Python developers to use under open source " -#~ "license terms." -#~ msgstr "" -#~ "En tant que logiciel libre populaire, Python bénéficie d'une communauté " -#~ "active de contributeurs et d'utilisateurs qui rendent à leur tour leurs " -#~ "logiciels disponibles, sous licence libre, pour les autres développeurs " -#~ "Python." - -#~ msgid "" -#~ "This allows Python users to share and collaborate effectively, benefiting " -#~ "from the solutions others have already created to common (and sometimes " -#~ "even rare!) problems, as well as potentially contributing their own " -#~ "solutions to the common pool." -#~ msgstr "" -#~ "Cela permet aux utilisateurs de Python de partager et de collaborer " -#~ "efficacement, bénéficiant des solutions que les autres ont déjà créées " -#~ "pour résoudre les problèmes communs (ou même, parfois, rares !), aussi " -#~ "que de partager leurs propres solutions à tous." - -#~ msgid "" -#~ "This guide covers the distribution part of the process. For a guide to " -#~ "installing other Python projects, refer to the :ref:`installation guide " -#~ "`." -#~ msgstr "" -#~ "Ce guide couvre la partie distribution du processus. Pour un guide sur " -#~ "l'installation d'autres projets Python, voir :ref:`installation guide " -#~ "`." - -#~ msgid "" -#~ "For corporate and other institutional users, be aware that many " -#~ "organisations have their own policies around using and contributing to " -#~ "open source software. Please take such policies into account when making " -#~ "use of the distribution and installation tools provided with Python." -#~ msgstr "" -#~ "Pour les entreprises et autres institutions, gardez en tête que certaines " -#~ "organisations ont leurs propres règles sur l'utilisation et la " -#~ "contribution au logiciel libre. Prenez ces règles en compte lorsque vous " -#~ "utilisez les outils de distribution et d'installation fournis par Python." - -#~ msgid "Key terms" -#~ msgstr "Vocabulaire" - -#~ msgid "" -#~ "the `Python Package Index `__ is a public repository of " -#~ "open source licensed packages made available for use by other Python users" -#~ msgstr "" -#~ "Le `Python Package Index `__ est un dépôt public de " -#~ "paquets sous licence libre rendus disponibles par d'autres utilisateurs " -#~ "Python." - -#, fuzzy -#~ msgid "" -#~ "the `Python Packaging Authority `__ are the group " -#~ "of developers and documentation authors responsible for the maintenance " -#~ "and evolution of the standard packaging tools and the associated metadata " -#~ "and file format standards. They maintain a variety of tools, " -#~ "documentation and issue trackers on both `GitHub `__ and `Bitbucket `__." -#~ msgstr "" -#~ "Le `Python Packaging Authority `__ est le groupe de " -#~ "développeurs et d'auteurs de documentation responsables de la maintenance " -#~ "et de l'évolution des outils standards de création de paquets, des " -#~ "métadonnées, et des formats de fichiers standards. Ils maintiennent " -#~ "quelques outils, documentation, et gestionnaires de ticket, aussi bien " -#~ "sur `GitHub `__ que sur `Bitbucket `__." - -#, fuzzy -#~ msgid "" -#~ ":mod:`distutils` is the original build and distribution system first " -#~ "added to the Python standard library in 1998. While direct use " -#~ "of :mod:`distutils` is being phased out, it still laid the foundation for " -#~ "the current packaging and distribution infrastructure, and it not only " -#~ "remains part of the standard library, but its name lives on in other ways " -#~ "(such as the name of the mailing list used to coordinate Python packaging " -#~ "standards development)." -#~ msgstr "" -#~ ":mod:`distutils` est le premier système de construction et de " -#~ "distribution ajouté à la bibliothèque standard en 1998. Bien que " -#~ "l'utilisation directe de :mod:`distutils` est progressivement supprimée, " -#~ "elle reste le fondement de l'infrastructure actuelle de construction de " -#~ "paquet et de distribution. Au-delà de rester dans la bibliothèque " -#~ "standard, son nom vit aussi sous d'autres formes, tel que la liste de " -#~ "diffusion utilisée pour coordonner le développement et les standards de " -#~ "la création de paquet." - -#, fuzzy -#~ msgid "" -#~ "`setuptools`_ is a (largely) drop-in replacement for :mod:`distutils` " -#~ "first published in 2004. Its most notable addition over the " -#~ "unmodified :mod:`distutils` tools was the ability to declare dependencies " -#~ "on other packages. It is currently recommended as a more regularly " -#~ "updated alternative to :mod:`distutils` that offers consistent support " -#~ "for more recent packaging standards across a wide range of Python " -#~ "versions." -#~ msgstr "" -#~ "`setuptools`_, d'abord publié en 2004, est (en grande partie) le " -#~ "remplaçant de :mod:`distutils`. La nouveauté la plus notable, au-delà des " -#~ "outils non modifiés de :mod:`distutils` est la possibilité de déclarer " -#~ "des dépendances à d'autres paquets. C'est l'alternative actuellement " -#~ "recommandée car plus régulièrement mise à jour que :mod:`distutils` et " -#~ "gère mieux les standards de création de paquets actuels, pour un large " -#~ "choix de version de Python." - -#, fuzzy -#~ msgid "" -#~ "`wheel`_ (in this context) is a project that adds the ``bdist_wheel`` " -#~ "command to :mod:`distutils`/`setuptools`_. This produces a cross platform " -#~ "binary packaging format (called \"wheels\" or \"wheel files\" and defined " -#~ "in :pep:`427`) that allows Python libraries, even those including binary " -#~ "extensions, to be installed on a system without needing to be built " -#~ "locally." -#~ msgstr "" -#~ "`wheel`_ (dans ce contexte) est un projet qui ajoute la commande " -#~ "``bdist_wheel`` à :mod:`distutils`/`setuptools`_. Cela produit un paquet " -#~ "binaire multiplateformes (nommé \"*wheels*\" ou \"*wheel files*\" et " -#~ "définis dans la :pep:`427`) qui permet aux bibliothèques Python, même " -#~ "celles incluant des extensions binaires, d'être installées sur un système " -#~ "sans avoir à les compiler localement." - -#~ msgid "Open source licensing and collaboration" -#~ msgstr "Licence libre et collaboration" - -#~ msgid "" -#~ "In most parts of the world, software is automatically covered by " -#~ "copyright. This means that other developers require explicit permission " -#~ "to copy, use, modify and redistribute the software." -#~ msgstr "" -#~ "Dans la plupart des pays du monde, le logiciel est automatiquement " -#~ "couvert par les droits d'auteur. Cela signifie que les autres " -#~ "développeurs ont besoin d'une autorisation explicite pour copier, " -#~ "utiliser, modifier, et redistribuer le logiciel." - -#~ msgid "" -#~ "Open source licensing is a way of explicitly granting such permission in " -#~ "a relatively consistent way, allowing developers to share and collaborate " -#~ "efficiently by making common solutions to various problems freely " -#~ "available. This leaves many developers free to spend more time focusing " -#~ "on the problems that are relatively unique to their specific situation." -#~ msgstr "" -#~ "Les licences libres sont un moyen d'autoriser explicitement ces " -#~ "permissions par un moyen relativement cohérent, autorisant les " -#~ "développeurs à partager et collaborer efficacement en rendant des " -#~ "solutions communes à divers problèmes librement disponibles. Cela laisse " -#~ "beaucoup de développeurs libres de dépenser plus de temps concentrés sur " -#~ "des problèmes relativement uniques à leur cas spécifique." - -#~ msgid "" -#~ "The distribution tools provided with Python are designed to make it " -#~ "reasonably straightforward for developers to make their own contributions " -#~ "back to that common pool of software if they choose to do so." -#~ msgstr "" -#~ "Les outils de distribution fournis avec Python sont conçus pour rendre la " -#~ "vie des développeurs relativement simple lorsqu'ils souhaitent " -#~ "contribuer, s'ils le désirent, à ces ressources communes." - -#~ msgid "" -#~ "The same distribution tools can also be used to distribute software " -#~ "within an organisation, regardless of whether that software is published " -#~ "as open source software or not." -#~ msgstr "" -#~ "Ces mêmes outils de distribution peuvent aussi être utilisés pour " -#~ "distribuer du logiciel à l'intérieur d'une organisation, que ce soit du " -#~ "logiciel libre ou non." - -#~ msgid "Installing the tools" -#~ msgstr "Installer les outils" - -#~ msgid "" -#~ "The standard library does not include build tools that support modern " -#~ "Python packaging standards, as the core development team has found that " -#~ "it is important to have standard tools that work consistently, even on " -#~ "older versions of Python." -#~ msgstr "" -#~ "La bibliothèque standard n'inclut pas d'outils capables de créer des " -#~ "paquets selon les standards modernes, car l'équipe fondamentale de " -#~ "développement a trouvé qu'il était plus important d'avoir des outils " -#~ "standards qui fonctionnent de manière cohérente, même avec de plus " -#~ "vieilles versions de Python." - -#~ msgid "" -#~ "The currently recommended build and distribution tools can be installed " -#~ "by invoking the ``pip`` module at the command line::" -#~ msgstr "" -#~ "Les outils de construction de paquets et de distribution actuellement " -#~ "recommandées peuvent être installées en invoquant le module ``pip`` dans " -#~ "une invite de commande ::" - -#~ msgid "" -#~ "For POSIX users (including macOS and Linux users), these instructions " -#~ "assume the use of a :term:`virtual environment`." -#~ msgstr "" -#~ "Pour les utilisateurs d'environnements POSIX (dont macOS et Linux), ces " -#~ "instructions supposent l'utilisation d'un :term:`environnement virtuel " -#~ "`." - -#~ msgid "" -#~ "For Windows users, these instructions assume that the option to adjust " -#~ "the system PATH environment variable was selected when installing Python." -#~ msgstr "" -#~ "Pour les utilisateurs de Windows, ces instructions supposent que l'option " -#~ "proposant de modifier la variable d'environnement PATH a été cochée lors " -#~ "de l'installation de Python." - -#~ msgid "" -#~ "The Python Packaging User Guide includes more details on the `currently " -#~ "recommended tools`_." -#~ msgstr "" -#~ "Le *Python Packaging User Guide* contient plus de détails sur les `(en) " -#~ "outils actuellement recommandés `_." - -#~ msgid "Reading the Python Packaging User Guide" -#~ msgstr "Consultez le *Python Packaging User Guide*" - -#~ msgid "" -#~ "The Python Packaging User Guide covers the various key steps and elements " -#~ "involved in creating and publishing a project:" -#~ msgstr "" -#~ "Le *Python Packaging User Guide* couvre les différentes étapes et les " -#~ "éléments clés de la création et publication d'un projet :" - -#~ msgid "`Project structure`_" -#~ msgstr "`(en) Structure d'un projet `_ ;" - -#~ msgid "`Building and packaging the project`_" -#~ msgstr "" -#~ "`(en) Construire et empaqueter le projet `_ ;" - -#~ msgid "`Uploading the project to the Python Package Index`_" -#~ msgstr "" -#~ "`(en) Téléverser le projet sur le Python Packaging Index `_ ;" - -#~ msgid "`The .pypirc file`_" -#~ msgstr "`(en) Le fichier .pypirc `_." - -#~ msgid "How do I...?" -#~ msgstr "Comment puis-je… ?" - -#~ msgid "These are quick answers or links for some common tasks." -#~ msgstr "" -#~ "Ce sont des réponses rapides ou des liens pour certaines tâches courantes." - -#~ msgid "... choose a name for my project?" -#~ msgstr "… choisir un nom pour mon projet ?" - -#~ msgid "This isn't an easy topic, but here are a few tips:" -#~ msgstr "Ce n'est pas un sujet facile, mais voici quelques conseils :" - -#~ msgid "check the Python Package Index to see if the name is already in use" -#~ msgstr "" -#~ "vérifiez dans le *Python Package Index* si le nom est déjà utilisé ;" - -#~ msgid "" -#~ "check popular hosting sites like GitHub, Bitbucket, etc to see if there " -#~ "is already a project with that name" -#~ msgstr "" -#~ "vérifiez sur quelques sites d'hébergement populaires tels que GitHub, " -#~ "Bitbucket, etc pour voir s'il y existe déjà un projet avec ce nom ;" - -#~ msgid "check what comes up in a web search for the name you're considering" -#~ msgstr "" -#~ "vérifiez ce qui sort en recherchant sur le web le nom que vous envisagez ;" - -#~ msgid "" -#~ "avoid particularly common words, especially ones with multiple meanings, " -#~ "as they can make it difficult for users to find your software when " -#~ "searching for it" -#~ msgstr "" -#~ "évitez les mots trop communs, plus particulièrement ceux ayant plusieurs " -#~ "significations, car pour vos utilisateurs, cela complique la recherche de " -#~ "votre logiciel." - -#~ msgid "... create and distribute binary extensions?" -#~ msgstr "… créer et distribuer des extensions binaires ?" - -#~ msgid "" -#~ "This is actually quite a complex topic, with a variety of alternatives " -#~ "available depending on exactly what you're aiming to achieve. See the " -#~ "Python Packaging User Guide for more information and recommendations." -#~ msgstr "" -#~ "C'est un sujet particulièrement compliqué, avec pléthore alternatives " -#~ "disponibles dont le choix dépend de votre objectif exact. Voir le *Python " -#~ "Packaging User Guide* pour plus d'informations et de recommandations." - -#~ msgid "" -#~ "`Python Packaging User Guide: Binary Extensions `__" -#~ msgstr "" -#~ "`Python Packaging User Guide: Binary Extensions `__" diff --git a/extending/building.po b/extending/building.po deleted file mode 100644 index c4184dabd4..0000000000 --- a/extending/building.po +++ /dev/null @@ -1,251 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-07-28 22:22+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: extending/building.rst:7 -msgid "Building C and C++ Extensions" -msgstr "Construire des extensions C et C++" - -#: extending/building.rst:9 -#, fuzzy -msgid "" -"A C extension for CPython is a shared library (for example, a ``.so`` file " -"on Linux, ``.pyd`` on Windows), which exports an *initialization function*." -msgstr "" -"Une extension C pour CPython est une bibliothèque partagée (Un ``.so`` sur " -"Linux, un ``.pyd`` sur Windows), qui expose une *fonction d'initialisation*." - -#: extending/building.rst:12 -msgid "See :ref:`extension-modules` for details." -msgstr "Voir :ref:`extension-modules` pour plus de détails." - -#: extending/building.rst:21 -#, fuzzy -msgid "Building C and C++ Extensions with setuptools" -msgstr "Construire les extensions C et C++ avec *setuptools*" - -#: extending/building.rst:24 -msgid "" -"Building, packaging and distributing extension modules is best done with " -"third-party tools, and is out of scope of this document. One suitable tool " -"is Setuptools, whose documentation can be found at https://" -"setuptools.pypa.io/en/latest/setuptools.html." -msgstr "" - -#: extending/building.rst:29 -msgid "" -"The :mod:`distutils` module, which was included in the standard library " -"until Python 3.12, is now maintained as part of Setuptools." -msgstr "" - -#, fuzzy -#~ msgid "" -#~ "To be importable, the shared library must be available " -#~ "on :envvar:`PYTHONPATH`, and must be named after the module name, with an " -#~ "appropriate extension. When using setuptools, the correct filename is " -#~ "generated automatically." -#~ msgstr "" -#~ "Pour pouvoir être importée, la bibliothèque partagée doit pourvoir être " -#~ "trouvée dans :envvar:`PYTHONPATH`, et doit porter le nom du module, avec " -#~ "l'extension appropriée. En utilisant *distutils*, le nom est généré " -#~ "automatiquement." - -#~ msgid "The initialization function has the signature:" -#~ msgstr "La fonction d'initialisation doit avoir le prototype :" - -#~ msgid "" -#~ "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 " -#~ "de :c:type:`PyModuleDef`. Voir :ref:`initializing-modules` pour plus de " -#~ "détails." - -#~ msgid "" -#~ "For modules with ASCII-only names, the function must be named " -#~ "``PyInit_``, with ```` replaced by the name of " -#~ "the module. When using :ref:`multi-phase-initialization`, non-ASCII " -#~ "module names are allowed. In this case, the initialization function name " -#~ "is ``PyInitU_``, with ```` encoded using Python's " -#~ "*punycode* encoding with hyphens replaced by underscores. In Python::" -#~ msgstr "" -#~ "Pour les modules dont les noms sont entièrement en ASCII, la fonction " -#~ "doit être nommée ``PyInit_``, dont ```` est " -#~ "remplacé par le nom du module. En utilisant :ref:`multi-phase-" -#~ "initialization`, il est possible d'utiliser des noms de modules comptant " -#~ "des caractères non ASCII. Dans ce cas, le nom de la fonction " -#~ "d'initialisation est ``PyInitU_``, où ``modulename`` est " -#~ "encodé avec l'encodage *punyencode* de Python, dont les tirets sont " -#~ "remplacés par des tirets-bas. En Python ça donne ::" - -#~ msgid "" -#~ "It is possible to export multiple modules from a single shared library by " -#~ "defining multiple initialization functions. However, importing them " -#~ "requires using symbolic links or a custom importer, because by default " -#~ "only the function corresponding to the filename is found. See the " -#~ "*\"Multiple modules in one library\"* section in :pep:`489` for details." -#~ msgstr "" -#~ "Il est possible d'exporter plusieurs modules depuis une seule " -#~ "bibliothèque partagée en définissant plusieurs fonctions " -#~ "d'initialisation. Cependant pour les importer, un lien symbolique doit " -#~ "être créé pour chacun, ou un *importer* personnalisé, puisque par défaut " -#~ "seule la fonction correspondant au nom du fichier est cherchée. Voir le " -#~ "chapitre *\"Multiple modules in one library\"* dans la :pep:`489` pour " -#~ "plus d'informations." - -#~ msgid "" -#~ "Extension modules can be built using distutils, which is included in " -#~ "Python. Since distutils also supports creation of binary packages, users " -#~ "don't necessarily need a compiler and distutils to install the extension." -#~ msgstr "" -#~ "Des modules d'extension peuvent être construits avec *distutils*, qui est " -#~ "inclus dans Python. Puisque *distutils* gère aussi la création de paquets " -#~ "binaires, les utilisateurs n'auront pas nécessairement besoin ni d'un " -#~ "compilateur ni de *distutils* pour installer l'extension." - -#~ msgid "" -#~ "A distutils package contains a driver script, :file:`setup.py`. This is a " -#~ "plain Python file, which, in the most simple case, could look like this:" -#~ msgstr "" -#~ "Un paquet *distutils* contient un script :file:`setup.py`. C'est un " -#~ "simple fichier Python, ressemblant dans la plupart des cas à :" - -#~ msgid "With this :file:`setup.py`, and a file :file:`demo.c`, running ::" -#~ msgstr "Avec ce :file:`setup.py` et un fichier :file:`demo.c`, lancer ::" - -#~ msgid "" -#~ "will compile :file:`demo.c`, and produce an extension module named " -#~ "``demo`` in the :file:`build` directory. Depending on the system, the " -#~ "module file will end up in a subdirectory :file:`build/lib.system`, and " -#~ "may have a name like :file:`demo.so` or :file:`demo.pyd`." -#~ msgstr "" -#~ "compile :file:`demo.c` et produit un module d'extension nommé ``demo`` " -#~ "dans le dossier :file:`build`. En fonction du système, le fichier du " -#~ "module peut se retrouver dans :file:`build/lib.system`, et son nom peut " -#~ "être :file:`demo.py` ou :file:`demo.pyd`." - -#~ msgid "" -#~ "In the :file:`setup.py`, all execution is performed by calling the " -#~ "``setup`` function. This takes a variable number of keyword arguments, of " -#~ "which the example above uses only a subset. Specifically, the example " -#~ "specifies meta-information to build packages, and it specifies the " -#~ "contents of the package. Normally, a package will contain additional " -#~ "modules, like Python source modules, documentation, subpackages, etc. " -#~ "Please refer to the distutils documentation in :ref:`distutils-index` to " -#~ "learn more about the features of distutils; this section explains " -#~ "building extension modules only." -#~ msgstr "" -#~ "Dans le fichier :file:`setup.py`, tout est exécuté en appelant la " -#~ "fonction ``setup``. Elle prend un nombre variable d'arguments nommés, " -#~ "dont l'exemple précédent n'utilise qu'une partie. L'exemple précise des " -#~ "méta-informations pour construire les paquets, et définir le contenu du " -#~ "paquet. Normalement un paquet contient des modules additionnels, comme " -#~ "des modules sources, documentation, sous paquets, etc. Référez-vous à la " -#~ "documentation de *distutils* dans :ref:`distutils-index` pour en " -#~ "apprendre plus sur les fonctionnalités de *distutils*. Cette section " -#~ "n'explique que la construction de modules d'extension." - -#~ msgid "" -#~ "It is common to pre-compute arguments to :func:`setup`, to better " -#~ "structure the driver script. In the example above, the ``ext_modules`` " -#~ "argument to :func:`~distutils.core.setup` is a list of extension modules, " -#~ "each of which is an instance of " -#~ "the :class:`~distutils.extension.Extension`. In the example, the instance " -#~ "defines an extension named ``demo`` which is build by compiling a single " -#~ "source file, :file:`demo.c`." -#~ msgstr "" -#~ "Il est classique de pré-calculer les arguments à la " -#~ "fonction :func:`setup`, pour plus de lisibilité. Dans l'exemple ci-" -#~ "dessus, l'argument ``ext_modules`` à :func:`~distutils.core.setup` est " -#~ "une liste de modules d'extension, chacun est une instance de la " -#~ "classe :class:`~distutils.extension.Extension`. Dans l'exemple, " -#~ "l'instance définit une extension nommée ``demo`` construite par la " -#~ "compilation d'un seul fichier source :file:`demo.c`." - -#~ msgid "" -#~ "In many cases, building an extension is more complex, since additional " -#~ "preprocessor defines and libraries may be needed. This is demonstrated in " -#~ "the example below." -#~ msgstr "" -#~ "Dans la plupart des cas, construire une extension est plus complexe à " -#~ "cause des bibliothèques et définitions de préprocesseurs dont la " -#~ "compilation pourrait dépendre. C'est ce qu'on remarque dans l'exemple " -#~ "plus bas." - -#~ msgid "" -#~ "In this example, :func:`~distutils.core.setup` is called with additional " -#~ "meta-information, which is recommended when distribution packages have to " -#~ "be built. For the extension itself, it specifies preprocessor defines, " -#~ "include directories, library directories, and libraries. Depending on the " -#~ "compiler, distutils passes this information in different ways to the " -#~ "compiler. For example, on Unix, this may result in the compilation " -#~ "commands ::" -#~ msgstr "" -#~ "Dans cet exemple, la fonction :func:`~distutils.core.setup` est appelée " -#~ "avec quelques autres méta-informations, ce qui est recommandé pour " -#~ "distribuer des paquets. En ce qui concerne l'extension, sont définis " -#~ "quelques macros préprocesseur, dossiers pour les en-têtes et " -#~ "bibliothèques. En fonction du compilateur, *distutils* peut donner ces " -#~ "informations de manière différente. Par exemple, sur Unix, ça peut " -#~ "ressembler aux commandes ::" - -#~ msgid "" -#~ "These lines are for demonstration purposes only; distutils users should " -#~ "trust that distutils gets the invocations right." -#~ msgstr "" -#~ "Ces lignes ne sont qu'à titre d'exemple, les utilisateurs de *distutils* " -#~ "doivent avoir confiance en *distutils* qui fera les appels correctement." - -#~ msgid "Distributing your extension modules" -#~ msgstr "Distribuer vos modules d'extension" - -#~ msgid "" -#~ "When an extension has been successfully built, there are three ways to " -#~ "use it." -#~ msgstr "" -#~ "Lorsqu'une extension a été construite avec succès, il existe trois moyens " -#~ "de l'utiliser." - -#~ msgid "" -#~ "End-users will typically want to install the module, they do so by " -#~ "running ::" -#~ msgstr "" -#~ "Typiquement, les utilisateurs vont vouloir installer le module, ils le " -#~ "font en exécutant ::" - -#~ msgid "" -#~ "Module maintainers should produce source packages; to do so, they run ::" -#~ msgstr "" -#~ "Les mainteneurs de modules voudront produire des paquets source, pour ce " -#~ "faire ils exécuteront ::" - -#~ msgid "" -#~ "In some cases, additional files need to be included in a source " -#~ "distribution; this is done through a :file:`MANIFEST.in` file; " -#~ "see :ref:`manifest` for details." -#~ msgstr "" -#~ "Dans certains cas, des fichiers supplémentaires doivent être inclus dans " -#~ "une distribution source : c'est possible via un " -#~ "fichier :file:`MANIFEST.in`, voir :ref:`manifest` pour les détails." - -#~ msgid "" -#~ "If the source distribution has been built successfully, maintainers can " -#~ "also create binary distributions. Depending on the platform, one of the " -#~ "following commands can be used to do so. ::" -#~ msgstr "" -#~ "Si la distribution source a été construite avec succès, les mainteneurs " -#~ "peuvent aussi créer une distribution binaire. En fonction de la " -#~ "plateforme, une des commandes suivantes peut être utilisée. ::" diff --git a/extending/embedding.po b/extending/embedding.po deleted file mode 100644 index e51e4684d7..0000000000 --- a/extending/embedding.po +++ /dev/null @@ -1,473 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-07-28 22:36+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: extending/embedding.rst:8 -msgid "Embedding Python in Another Application" -msgstr "Intégrer Python dans une autre application" - -#: extending/embedding.rst:10 -msgid "" -"The previous chapters discussed how to extend Python, that is, how to extend " -"the functionality of Python by attaching a library of C functions to it. It " -"is also possible to do it the other way around: enrich your C/C++ " -"application by embedding Python in it. Embedding provides your application " -"with the ability to implement some of the functionality of your application " -"in Python rather than C or C++. This can be used for many purposes; one " -"example would be to allow users to tailor the application to their needs by " -"writing some scripts in Python. You can also use it yourself if some of the " -"functionality can be written in Python more easily." -msgstr "" -"Les chapitres précédents couvraient l'extension de Python, c'est-à-dire, " -"comment enrichir une fonctionnalité de Python en y attachant une " -"bibliothèque de fonctions C. C'est aussi possible dans l'autre sens : " -"enrichir vos applications C/C++ en y intégrant Python. Intégrer Python vous " -"permet d'implémenter certaines fonctionnalités de vos applications en Python " -"plutôt qu'en C ou C++. C'est utile dans de nombreux cas, un exemple serait " -"de permettre aux utilisateurs d'adapter une application à leurs besoins en y " -"écrivant des scripts Python. Vous pouvez aussi l'utiliser vous même si " -"certaines fonctionnalités peuvent être rédigées plus facilement en Python." - -#: extending/embedding.rst:20 -msgid "" -"Embedding Python is similar to extending it, but not quite. The difference " -"is that when you extend Python, the main program of the application is still " -"the Python interpreter, while if you embed Python, the main program may have " -"nothing to do with Python --- instead, some parts of the application " -"occasionally call the Python interpreter to run some Python code." -msgstr "" -"Intégrer et étendre Python sont des tâches presque identiques. La différence " -"est qu'en étendant Python, le programme principal reste l'interpréteur " -"Python, alors qu'en intégrant Python le programme principal peut ne rien à " -"voir avec Python. C'est simplement quelques parties du programme qui " -"appellent l'interpréteur Python pour exécuter un peu de code Python." - -#: extending/embedding.rst:26 -msgid "" -"So if you are embedding Python, you are providing your own main program. " -"One of the things this main program has to do is initialize the Python " -"interpreter. At the very least, you have to call the " -"function :c:func:`Py_Initialize`. There are optional calls to pass command " -"line arguments to Python. Then later you can call the interpreter from any " -"part of the application." -msgstr "" -"En intégrant Python, vous fournissez le programme principal. L'une de ses " -"tâches sera d'initialiser l'interpréteur. Au minimum vous devrez " -"appeler :c:func:`Py_Initialize`. Il est possible, avec quelques appels " -"supplémentaires, de passer des options à Python. Ensuite vous pourrez " -"appeler l'interpréteur depuis n'importe quelle partie de votre programme." - -#: extending/embedding.rst:32 -msgid "" -"There are several different ways to call the interpreter: you can pass a " -"string containing Python statements to :c:func:`PyRun_SimpleString`, or you " -"can pass a stdio file pointer and a file name (for identification in error " -"messages only) to :c:func:`PyRun_SimpleFile`. You can also call the lower-" -"level operations described in the previous chapters to construct and use " -"Python objects." -msgstr "" -"Il existe différents moyens d'appeler l'interpréteur : vous pouvez donner " -"une chaîne contenant des instructions Python à :c:func:`PyRun_SimpleString`, " -"ou vous pouvez donner un pointeur de fichier *stdio* et un nom de fichier " -"(juste pour nommer les messages d'erreur) à :c:func:`PyRunSimpleFile`. Vous " -"pouvez aussi appeler les API de bas niveau décrites dans les chapitres " -"précédents pour construire et utiliser des objets Python." - -#: extending/embedding.rst:41 -msgid ":ref:`c-api-index`" -msgstr ":ref:`c-api-index`" - -#: extending/embedding.rst:42 -msgid "" -"The details of Python's C interface are given in this manual. A great deal " -"of necessary information can be found here." -msgstr "" -"Les détails sur l'interface entre Python et le C sont donnés dans ce manuel. " -"Pléthore informations s'y trouvent." - -#: extending/embedding.rst:49 -msgid "Very High Level Embedding" -msgstr "Intégration de très haut niveau" - -#: extending/embedding.rst:51 -msgid "" -"The simplest form of embedding Python is the use of the very high level " -"interface. This interface is intended to execute a Python script without " -"needing to interact with the application directly. This can for example be " -"used to perform some operation on a file. ::" -msgstr "" -"La manière la plus simple d'intégrer Python est d'utiliser une interface de " -"très haut niveau. Cette interface a pour but d'exécuter un script Python " -"sans avoir à interagir avec directement. C'est utile, par exemple, pour " -"effectuer une opération sur un fichier. ::" - -#: extending/embedding.rst:92 -msgid "" -"``#define PY_SSIZE_T_CLEAN`` was used to indicate that ``Py_ssize_t`` should " -"be used in some APIs instead of ``int``. It is not necessary since Python " -"3.13, but we keep it here for backward compatibility. See :ref:`arg-parsing-" -"string-and-buffers` for a description of this macro." -msgstr "" - -#: extending/embedding.rst:97 -#, fuzzy -msgid "" -"Setting :c:member:`PyConfig.program_name` should be called " -"before :c:func:`Py_InitializeFromConfig` to inform the interpreter about " -"paths to Python run-time libraries. Next, the Python interpreter is " -"initialized with :c:func:`Py_Initialize`, followed by the execution of a " -"hard-coded Python script that prints the date and time. Afterwards, " -"the :c:func:`Py_FinalizeEx` call shuts the interpreter down, followed by the " -"end of the program. In a real program, you may want to get the Python " -"script from another source, perhaps a text-editor routine, a file, or a " -"database. Getting the Python code from a file can better be done by using " -"the :c:func:`PyRun_SimpleFile` function, which saves you the trouble of " -"allocating memory space and loading the file contents." -msgstr "" -"C'est la fonction :c:func:`Py_SetProgramName` qui devrait être appelée en " -"premier, avant :c:func:`Py_Initialize`, afin d'informer l'interpréteur des " -"chemins vers ses bibliothèques. Ensuite l'interpréteur est initialisé " -"par :c:func:`Py_Initialize`, suivi de l'exécution de Python codé en dur " -"affichant la date et l'heure, puis, l'appel à :c:func:`Py_FinalizeEx` éteint " -"l'interpréteur, engendrant ainsi la fin du programme. Dans un vrai " -"programme, vous pourriez vouloir lire le script Python depuis une autre " -"source, peut être depuis un éditeur de texte, un fichier, ou une base de " -"donnée. Récupérer du code Python depuis un fichier se fait " -"via :c:func:`PyRun_SimplFile`, qui vous économise le travail d'allouer de la " -"mémoire et de charger le contenu du fichier." - -#: extending/embedding.rst:112 -msgid "Beyond Very High Level Embedding: An overview" -msgstr "Au-delà de l'intégration de haut niveau : survol" - -#: extending/embedding.rst:114 -msgid "" -"The high level interface gives you the ability to execute arbitrary pieces " -"of Python code from your application, but exchanging data values is quite " -"cumbersome to say the least. If you want that, you should use lower level " -"calls. At the cost of having to write more C code, you can achieve almost " -"anything." -msgstr "" -"L'interface de haut niveau vous permet d'exécuter n'importe quel morceau de " -"code Python depuis votre application, mais échanger des données est quelque " -"peu alambiqué. Si c'est ce dont vous avez besoin, vous devez utiliser des " -"appels de niveau plus bas. Il vous en coûtera plus de lignes de C à écrire, " -"mais vous pourrez presque tout faire." - -#: extending/embedding.rst:119 -msgid "" -"It should be noted that extending Python and embedding Python is quite the " -"same activity, despite the different intent. Most topics discussed in the " -"previous chapters are still valid. To show this, consider what the extension " -"code from Python to C really does:" -msgstr "" -"Il est à souligner qu'étendre ou intégrer Python revient à la louche au " -"même, en dépit de la différence d'intention. La plupart des sujets parcourus " -"dans les chapitres précédents sont toujours valides. Pour le prouver, " -"regardez ce qu'un code d'extension de Python vers C fait réellement :" - -#: extending/embedding.rst:124 -msgid "Convert data values from Python to C," -msgstr "Convertir des valeurs de Python vers le C," - -#: extending/embedding.rst:126 -msgid "Perform a function call to a C routine using the converted values, and" -msgstr "Appeler une fonction C en utilisant les valeurs converties, et" - -#: extending/embedding.rst:128 -msgid "Convert the data values from the call from C to Python." -msgstr "Convertir les résultats de l'appel à la fonction C pour Python." - -#: extending/embedding.rst:130 -msgid "When embedding Python, the interface code does:" -msgstr "Lors de l'intégration de Python, le code de l'interface fait :" - -#: extending/embedding.rst:132 -msgid "Convert data values from C to Python," -msgstr "Convertir les valeurs depuis le C vers Python," - -#: extending/embedding.rst:134 -msgid "" -"Perform a function call to a Python interface routine using the converted " -"values, and" -msgstr "" -"Effectuer un appel de fonction de l'interface Python en utilisant les " -"valeurs converties, et" - -#: extending/embedding.rst:137 -msgid "Convert the data values from the call from Python to C." -msgstr "Convertir les valeurs de l'appel Python pour le C." - -#: extending/embedding.rst:139 -msgid "" -"As you can see, the data conversion steps are simply swapped to accommodate " -"the different direction of the cross-language transfer. The only difference " -"is the routine that you call between both data conversions. When extending, " -"you call a C routine, when embedding, you call a Python routine." -msgstr "" -"Tel que vous le voyez, les conversions sont simplement inversées pour " -"s'adapter aux différentes directions de transfert inter-langage. La seule " -"différence est la fonction que vous appelez entre les deux conversions de " -"données. Lors de l'extension, vous appelez une fonction C, lors de " -"l'intégration vous appelez une fonction Python." - -#: extending/embedding.rst:144 -msgid "" -"This chapter will not discuss how to convert data from Python to C and vice " -"versa. Also, proper use of references and dealing with errors is assumed to " -"be understood. Since these aspects do not differ from extending the " -"interpreter, you can refer to earlier chapters for the required information." -msgstr "" -"Ce chapitre ne couvrira pas la conversion des données de Python vers le C ni " -"l'inverse. Aussi, un usage correct des références, ainsi que savoir gérer " -"les erreurs sont considérés acquis. Ces aspects étant identiques à " -"l'extension de l'interpréteur, vous pouvez vous référer aux chapitres " -"précédents." - -#: extending/embedding.rst:153 -msgid "Pure Embedding" -msgstr "Intégration pure" - -#: extending/embedding.rst:155 -msgid "" -"The first program aims to execute a function in a Python script. Like in the " -"section about the very high level interface, the Python interpreter does not " -"directly interact with the application (but that will change in the next " -"section)." -msgstr "" -"L'objectif du premier programme est d'exécuter une fonction dans un script " -"Python. Comme dans la section à propos des interfaces de haut niveau, " -"l'interpréteur n'interagit pas directement avec l'application (mais le fera " -"dans la section suivante)." - -#: extending/embedding.rst:160 -msgid "The code to run a function defined in a Python script is:" -msgstr "Le code pour appeler une fonction définie dans un script Python est :" - -#: extending/embedding.rst:165 -msgid "" -"This code loads a Python script using ``argv[1]``, and calls the function " -"named in ``argv[2]``. Its integer arguments are the other values of the " -"``argv`` array. If you :ref:`compile and link ` this program " -"(let's call the finished executable :program:`call`), and use it to execute " -"a Python script, such as:" -msgstr "" -"Ce code charge un script Python en utilisant ``argv[1]``, et appelle une " -"fonction dont le nom est dans ``argv[2]``. Ses arguments entiers sont les " -"autres valeurs de ``argv``. Si vous :ref:`compilez et liez ` ce " -"programme (appelons l'exécutable :program:`call`), et l'appelez pour " -"exécuter un script Python, tel que :" - -#: extending/embedding.rst:180 -msgid "then the result should be:" -msgstr "alors, le résultat sera :" - -#: extending/embedding.rst:188 -msgid "" -"Although the program is quite large for its functionality, most of the code " -"is for data conversion between Python and C, and for error reporting. The " -"interesting part with respect to embedding Python starts with ::" -msgstr "" -"Bien que le programme soit plutôt gros pour ses fonctionnalités, la plupart " -"du code n'est que conversion de données entre Python et C, aussi que pour " -"rapporter les erreurs. La partie intéressante, qui concerne l'intégration de " -"Python débute par ::" - -#: extending/embedding.rst:197 -#, fuzzy -msgid "" -"After initializing the interpreter, the script is loaded " -"using :c:func:`PyImport_Import`. This routine needs a Python string as its " -"argument, which is constructed using the :c:func:`PyUnicode_DecodeFSDefault` " -"data conversion routine. ::" -msgstr "" -"Après avoir initialisé l'interpréteur, le script est chargé en " -"utilisant :c:func:`PyImport_Import`. Cette fonction prend une chaîne Python " -"pour argument, elle-même construite en utilisant la fonction de " -"conversion :c:func:`PyUnicode_FromString`. ::" - -#: extending/embedding.rst:210 -msgid "" -"Once the script is loaded, the name we're looking for is retrieved " -"using :c:func:`PyObject_GetAttrString`. If the name exists, and the object " -"returned is callable, you can safely assume that it is a function. The " -"program then proceeds by constructing a tuple of arguments as normal. The " -"call to the Python function is then made with::" -msgstr "" -"Une fois le script chargé, le nom recherché est obtenu en " -"utilisant :c:func:`PyObject_GetAttrString`. Si le nom existe, et que l'objet " -"récupéré peut être appelé, vous pouvez présumer sans risque que c'est une " -"fonction. Le programme continue, classiquement, par la construction de *n*-" -"uplet d'arguments. L'appel à la fonction Python est alors effectué avec ::" - -#: extending/embedding.rst:218 -msgid "" -"Upon return of the function, ``pValue`` is either ``NULL`` or it contains a " -"reference to the return value of the function. Be sure to release the " -"reference after examining the value." -msgstr "" -"Après l'exécution de la fonction, ``pValue`` est soit ``NULL``, soit une " -"référence sur la valeur donnée par la fonction. Assurez-vous de libérer la " -"référence après avoir utilisé la valeur." - -#: extending/embedding.rst:226 -msgid "Extending Embedded Python" -msgstr "Étendre un Python intégré" - -#: extending/embedding.rst:228 -msgid "" -"Until now, the embedded Python interpreter had no access to functionality " -"from the application itself. The Python API allows this by extending the " -"embedded interpreter. That is, the embedded interpreter gets extended with " -"routines provided by the application. While it sounds complex, it is not so " -"bad. Simply forget for a while that the application starts the Python " -"interpreter. Instead, consider the application to be a set of subroutines, " -"and write some glue code that gives Python access to those routines, just " -"like you would write a normal Python extension. For example::" -msgstr "" -"Jusqu'à présent, l'interpréteur Python intégré n'avait pas accès aux " -"fonctionnalités de l'application elle-même. L'API Python le permet en " -"étendant l'interpréteur intégré. Autrement dit, l'interpréteur intégré est " -"étendu avec des fonctions fournies par l'application. Bien que cela puisse " -"sembler complexe, ce n'est pas si dur. Il suffit d'oublier que l'application " -"démarre l'interpréteur Python, au lieu de cela, voyez l'application comme un " -"ensemble de fonctions, et rédigez un peu de code pour exposer ces fonctions " -"à Python, tout comme vous écririez une extension Python normale. Par " -"exemple ::" - -#: extending/embedding.rst:267 -msgid "" -"Insert the above code just above the :c:func:`main` function. Also, insert " -"the following two statements before the call to :c:func:`Py_Initialize`::" -msgstr "" -"Insérez le code ci-dessus juste avant la fonction :c:func:`main`. Ajoutez " -"aussi les deux instructions suivantes avant l'appel " -"à :c:func:`Py_Initialize` ::" - -#: extending/embedding.rst:273 -#, fuzzy -msgid "" -"These two lines initialize the ``numargs`` variable, and make the :func:`!" -"emb.numargs` function accessible to the embedded Python interpreter. With " -"these extensions, the Python script can do things like" -msgstr "" -"Ces deux lignes initialisent la variable ``numarg``, et rend la " -"fonction :func:`emb.numargs` accessible à l'interpréteur intégré. Avec ces " -"ajouts, le script Python petit maintenant faire des choses comme" - -#: extending/embedding.rst:282 -msgid "" -"In a real application, the methods will expose an API of the application to " -"Python." -msgstr "" -"Dans un cas réel, les méthodes exposeraient une API de l'application à " -"Python." - -#: extending/embedding.rst:292 -msgid "Embedding Python in C++" -msgstr "Intégrer Python dans du C++" - -#: extending/embedding.rst:294 -msgid "" -"It is also possible to embed Python in a C++ program; precisely how this is " -"done will depend on the details of the C++ system used; in general you will " -"need to write the main program in C++, and use the C++ compiler to compile " -"and link your program. There is no need to recompile Python itself using C+" -"+." -msgstr "" -"Il est aussi possible d'intégrer Python dans un programme en C++, la manière " -"exacte dont cela se fait dépend de détails du système C++ utilisé. En " -"général vous écrirez le programme principal en C++, utiliserez un " -"compilateur C++ pour compiler et lier votre programme. Il n'y a pas besoin " -"de recompiler Python en utilisant C++." - -#: extending/embedding.rst:303 -msgid "Compiling and Linking under Unix-like systems" -msgstr "Compiler et Lier en environnement Unix ou similaire" - -#: extending/embedding.rst:305 -msgid "" -"It is not necessarily trivial to find the right flags to pass to your " -"compiler (and linker) in order to embed the Python interpreter into your " -"application, particularly because Python needs to load library modules " -"implemented as C dynamic extensions (:file:`.so` files) linked against it." -msgstr "" -"Ce n'est pas évident de trouver les bonnes options à passer au compilateur " -"(et *linker*) pour intégrer l'interpréteur Python dans une application, " -"Python ayant besoin de charger des extensions sous forme de bibliothèques " -"dynamiques en C (des :file:`.so`) pour se lier avec." - -#: extending/embedding.rst:311 -msgid "" -"To find out the required compiler and linker flags, you can execute " -"the :file:`python{X.Y}-config` script which is generated as part of the " -"installation process (a :file:`python3-config` script may also be " -"available). This script has several options, of which the following will be " -"directly useful to you:" -msgstr "" -"Pour trouver les bonnes options de compilateur et *linker*, vous pouvez " -"exécuter le script :file:`python{X.Y}-config` généré durant l'installation " -"(un script :file:`python3-config` peut aussi être disponible). Ce script a " -"quelques options, celles-ci vous seront utiles :" - -#: extending/embedding.rst:317 -msgid "" -"``pythonX.Y-config --cflags`` will give you the recommended flags when " -"compiling:" -msgstr "" -"``pythonX.Y-config --cflags`` vous donnera les options recommandées pour " -"compiler :" - -#: extending/embedding.rst:325 -msgid "" -"``pythonX.Y-config --ldflags --embed`` will give you the recommended flags " -"when linking:" -msgstr "" -"``pythonX.Y-config --ldflags --embed`` vous donnera les drapeaux recommandés " -"lors de l'édition de lien :" - -#: extending/embedding.rst:334 -msgid "" -"To avoid confusion between several Python installations (and especially " -"between the system Python and your own compiled Python), it is recommended " -"that you use the absolute path to :file:`python{X.Y}-config`, as in the " -"above example." -msgstr "" -"Pour éviter la confusion entre différentes installations de Python, (et plus " -"spécialement entre celle de votre système et votre version compilée), il est " -"recommandé d'utiliser un chemin absolu vers :file:`python{X.Y}-config`, " -"comme dans l'exemple précédent." - -#: extending/embedding.rst:339 -msgid "" -"If this procedure doesn't work for you (it is not guaranteed to work for all " -"Unix-like platforms; however, we welcome :ref:`bug reports `) you will have to read your system's documentation about dynamic " -"linking and/or examine Python's :file:`Makefile` " -"(use :func:`sysconfig.get_makefile_filename` to find its location) and " -"compilation options. In this case, the :mod:`sysconfig` module is a useful " -"tool to programmatically extract the configuration values that you will want " -"to combine together. For example:" -msgstr "" -"Si cette procédure ne fonctionne pas pour vous (il n'est pas garanti qu'elle " -"fonctionne pour toutes les plateformes Unix, mais nous traiteront volontiers " -"les :ref:`rapports de bugs `), vous devrez lire la " -"documentation de votre système sur la liaison dynamique (*dynamic linking*) " -"et / ou examiner le :file:`Makefile` de Python " -"(utilisez :func:`sysconfig.get_makefile_filename` pour trouver son " -"emplacement) et les options de compilation. Dans ce cas, le " -"module :mod:`sysconfig` est un outil utile pour extraire automatiquement les " -"valeurs de configuration que vous voudrez combiner ensemble. Par exemple :" diff --git a/extending/extending.po b/extending/extending.po deleted file mode 100644 index a827799baf..0000000000 --- a/extending/extending.po +++ /dev/null @@ -1,2136 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-11-26 10:23+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: extending/extending.rst:8 -msgid "Using the C API: Assorted topics" -msgstr "" - -#: extending/extending.rst:10 -msgid "" -"The :ref:`tutorial ` walked you through creating a C " -"API extension module, but left many areas unexplained. This document looks " -"at several concepts that you'll need to learn in order to write more complex " -"extensions." -msgstr "" - -#: extending/extending.rst:19 -#, fuzzy -msgid "Errors and Exceptions" -msgstr "Intermezzo : les erreurs et les exceptions" - -#: extending/extending.rst:21 -msgid "" -"An important convention throughout the Python interpreter is the following: " -"when a function fails, it should set an exception condition and return an " -"error value (usually ``-1`` or a ``NULL`` pointer). Exception information " -"is stored in three members of the interpreter's thread state. These are " -"``NULL`` if there is no exception. Otherwise they are the C equivalents of " -"the members of the Python tuple returned by :meth:`sys.exc_info`. These are " -"the exception type, exception instance, and a traceback object. It is " -"important to know about them to understand how errors are passed around." -msgstr "" -"Une convention importante dans l'interpréteur Python est la suivante : " -"lorsqu'une fonction échoue, elle doit définir une condition d'exception et " -"renvoyer une valeur d'erreur (généralement ``-1`` ou un pointeur ``NULL``). " -"Les informations d'exception sont stockées dans trois attributs de l'état du " -"thread de l'interpréteur. Ils valent ``NULL`` s'il n'y a pas d'exception. " -"Sinon, ce sont les équivalents C des membres du *n*-uplet Python renvoyé " -"par :meth:`sys.exc_info`. Il s'agit du type d'exception, de l'instance " -"d'exception et d'un objet de trace. Il est important de les connaître pour " -"comprendre comment les erreurs sont transmises." - -#: extending/extending.rst:30 -msgid "" -"The Python API defines a number of functions to set various types of " -"exceptions." -msgstr "" -"L'API Python définit un certain nombre de fonctions pour créer différents " -"types d'exceptions." - -#: extending/extending.rst:32 -msgid "" -"The most common one is :c:func:`PyErr_SetString`. Its arguments are an " -"exception object and a C string. The exception object is usually a " -"predefined object like :c:data:`PyExc_ZeroDivisionError`. The C string " -"indicates the cause of the error and is converted to a Python string object " -"and stored as the \"associated value\" of the exception." -msgstr "" -"La plus courante est :c:func:`PyErr_SetString`. Ses arguments sont un objet " -"exception et une chaîne C. L'objet exception est généralement un objet " -"prédéfini comme :c:data:`PyExc_ZeroDivisionError`. La chaîne C indique la " -"cause de l'erreur et est convertie en une chaîne Python puis stockée en tant " -"que « valeur associée » à l'exception." - -#: extending/extending.rst:38 -msgid "" -"Another useful function is :c:func:`PyErr_SetFromErrno`, which only takes an " -"exception argument and constructs the associated value by inspection of the " -"global variable :c:data:`errno`. The most general function " -"is :c:func:`PyErr_SetObject`, which takes two object arguments, the " -"exception and its associated value. You don't need to :c:func:`Py_INCREF` " -"the objects passed to any of these functions." -msgstr "" -"Une autre fonction utile est :c:func:`PyErr_SetFromErrno`, qui construit une " -"exception à partir de la valeur de la variable globale :c:data:`errno`. La " -"fonction la plus générale est :c:func:`PyErr_SetObject`, qui prend deux " -"arguments : l'exception et sa valeur associée. Vous ne devez pas " -"appliquer :c:func:`Py_INCREF` aux objets transmis à ces fonctions." - -#: extending/extending.rst:45 -msgid "" -"You can test non-destructively whether an exception has been set " -"with :c:func:`PyErr_Occurred`. This returns the current exception object, " -"or ``NULL`` if no exception has occurred. You normally don't need to " -"call :c:func:`PyErr_Occurred` to see whether an error occurred in a function " -"call, since you should be able to tell from the return value." -msgstr "" -"Vous pouvez tester de manière non destructive si une exception a été levée " -"avec :c:func:`PyErr_Occurred`. Cela renvoie l'objet exception actuel, ou " -"``NULL`` si aucune exception n'a eu lieu. Cependant, vous ne devriez pas " -"avoir besoin d'appeler :c:func:`PyErr_Occurred` pour voir si une erreur est " -"survenue durant l'appel d'une fonction, puisque vous devriez être en mesure " -"de le déterminer à partir de la valeur renvoyée." - -#: extending/extending.rst:51 -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 ``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 " -"(habituellement ``NULL`` ou ``-1``). La fonction *f* ne devrait *pas* " -"appeler l'une des fonctions ``PyErr_*``, l'une d'entre elles ayant déjà été " -"appelée par *g*. La fonction appelant *f* est alors censée renvoyer aussi un " -"code d'erreur à celle qui l'a appelée, toujours sans utiliser ``PyErr_*``, " -"et ainsi de suite. La cause la plus détaillée de l'erreur a déjà été " -"signalée par la fonction l'ayant détecté en premier. Une fois l'erreur " -"remontée à la boucle principale de l'interpréteur Python, il interrompt le " -"code en cours d'exécution et essaie de trouver un gestionnaire d'exception " -"spécifié par le développeur Python." - -#: extending/extending.rst:61 -msgid "" -"(There are situations where a module can actually give a more detailed error " -"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 ``PyErr_*`` et, dans " -"de tels cas, il est tout à fait possible de le faire. Cependant, ce n'est " -"généralement pas nécessaire, et peut amener à perdre des informations sur la " -"cause de l'erreur : la plupart des opérations peuvent échouer pour tout un " -"tas de raisons.)" - -#: extending/extending.rst:67 -msgid "" -"To ignore an exception set by a function call that failed, the exception " -"condition must be cleared explicitly by calling :c:func:`PyErr_Clear`. The " -"only time C code should call :c:func:`PyErr_Clear` is if it doesn't want to " -"pass the error on to the interpreter but wants to handle it completely by " -"itself (possibly by trying something else, or pretending nothing went wrong)." -msgstr "" -"Pour ignorer une exception qui aurait été émise lors d'un appel de fonction " -"qui a échoué, l'exception doit être retirée explicitement en " -"appelant :c:func:`PyErr_Clear`. Le seul cas pour lequel du code C devrait " -"appeler :c:func:`PyErr_Clear` est lorsqu'il ne veut pas passer l'erreur à " -"l'interpréteur, mais souhaite la gérer lui-même (peut-être en essayant " -"quelque chose d'autre, ou en prétendant que rien n'a mal tourné)." - -#: extending/extending.rst:73 -msgid "" -"Every failing :c:func:`malloc` call must be turned into an exception --- the " -"direct caller of :c:func:`malloc` (or :c:func:`realloc`) must " -"call :c:func:`PyErr_NoMemory` and return a failure indicator itself. All " -"the object-creating functions (for example, :c:func:`PyLong_FromLong`) " -"already do this, so this note is only relevant to those who " -"call :c:func:`malloc` directly." -msgstr "" -"Chaque échec de :c:func:`malloc` doit être transformé en une exception, " -"l'appelant direct de :c:func:`malloc` (ou :c:func:`realloc`) doit " -"appeler :c:func:`PyErr_NoMemory` et prendre l'initiative de renvoyer une " -"valeur d'erreur. Toutes les fonctions construisant des objets (tels " -"que :c:func:`PyLong_FromLong`) le font déjà, donc cette note ne concerne que " -"ceux qui appellent :c:func:`malloc` directement." - -#: extending/extending.rst:79 -msgid "" -"Also note that, with the important exception of :c:func:`PyArg_ParseTuple` " -"and friends, functions that return an integer status usually return a " -"positive value or zero for success and ``-1`` for failure, like Unix system " -"calls." -msgstr "" -"Notez également que, à l'exception notable de :c:func:`PyArg_ParseTuple` et " -"compagnie, les fonctions qui renvoient leur statut sous forme d'entier " -"donnent généralement une valeur positive ou zéro en cas de succès et ``-1`` " -"en cas d'échec, comme les appels du système Unix." - -#: extending/extending.rst:83 -msgid "" -"Finally, be careful to clean up garbage (by making :c:func:`Py_XDECREF` " -"or :c:func:`Py_DECREF` calls for objects you have already created) when you " -"return an error indicator!" -msgstr "" -"Enfin, lorsque vous renvoyez un code d'erreur, n'oubliez pas faire un brin " -"de nettoyage (en appelant :c:func:`Py_XDECREF` ou :c:func:`Py_DECREF` avec " -"les objets que vous auriez déjà créés) !" - -#: extending/extending.rst:87 -#, fuzzy -msgid "" -"The choice of which exception to raise is entirely yours. There are " -"predeclared C objects corresponding to all built-in Python exceptions, such " -"as :c:data:`PyExc_ZeroDivisionError`, which you can use directly. Of course, " -"you should choose exceptions wisely --- don't use :c:data:`PyExc_TypeError` " -"to mean that a file couldn't be opened (that should probably " -"be :c:data:`PyExc_OSError`). If something's wrong with the argument list, " -"the :c:func:`PyArg_ParseTuple` function usually " -"raises :c:data:`PyExc_TypeError`. If you have an argument whose value must " -"be in a particular range or must satisfy other " -"conditions, :c:data:`PyExc_ValueError` is appropriate." -msgstr "" -"Le choix de l'exception à lever vous incombe. Il existe des objets C " -"correspondant à chaque exception Python, tel " -"que :c:data:`PyExc_ZeroDivisionError`, que vous pouvez utiliser directement. " -"Choisissez judicieusement vos exceptions, typiquement n'utilisez " -"pas :c:data:`PyExc_TypeError` pour indiquer qu'un fichier n'a pas pu être " -"ouvert (cela devrait probablement être :c:data:`PyExc_IOError`). Si quelque " -"chose ne va pas avec la liste des arguments, la " -"fonction :c:func:`PyArg_ParseTuple` lève habituellement une " -"exception :c:data:`PyExc_TypeError`. Mais si vous avez un argument dont la " -"valeur doit être dans un intervalle particulier ou qui doit satisfaire " -"d'autres conditions, :c:data:`PyExc_ValueError` sera plus appropriée." - -#: extending/extending.rst:97 -#, fuzzy -msgid "" -"You can also define a new exception that is unique to your module. The " -"simplest way to do this is to declare a static global object variable at the " -"beginning of the file::" -msgstr "" -"Vous pouvez également créer une exception spécifique à votre module. Pour " -"cela, déclarez simplement une variable statique au début de votre fichier ::" - -#: extending/extending.rst:103 -msgid "" -"and initialize it by calling :c:func:`PyErr_NewException` in the " -"module's :c:data:`Py_mod_exec` function (:c:func:`!spam_module_exec`)::" -msgstr "" - -#: extending/extending.rst:108 -msgid "" -"Since :c:data:`!SpamError` is a global variable, it will be overwritten " -"every time the module is reinitialized, when the :c:data:`Py_mod_exec` " -"function is called." -msgstr "" - -#: extending/extending.rst:111 -msgid "" -"For now, let's avoid the issue: we will block repeated initialization by " -"raising an :py:exc:`ImportError`::" -msgstr "" - -#: extending/extending.rst:150 -#, fuzzy -msgid "" -"Note that the Python name for the exception object is :exc:`!spam.error`. " -"The :c:func:`PyErr_NewException` function may create a class with the base " -"class being :exc:`Exception` (unless another class is passed in instead of " -"``NULL``), described in :ref:`bltin-exceptions`." -msgstr "" -"Notez que le nom de l'exception en Python est :exc:`spam.error`. La " -"fonction :c:func:`PyErr_NewException` peut créer une classe héritant " -"de :exc:`Exception` (à moins qu'une autre classe ne lui soit fournie à la " -"place de ``NULL``), voir :ref:`bltin-exceptions`." - -#: extending/extending.rst:155 -msgid "" -"Note also that the :c:data:`!SpamError` variable retains a reference to the " -"newly created exception class; this is intentional! Since the exception " -"could be removed from the module by external code, an owned reference to the " -"class is needed to ensure that it will not be discarded, causing :c:data:`!" -"SpamError` to become a dangling pointer. Should it become a dangling " -"pointer, C code which raises the exception could cause a core dump or other " -"unintended side effects." -msgstr "" -"Notez également que la variable :c:data:`!SpamError` contient une référence " -"à la nouvelle classe créée ; ceci est intentionnel ! Comme l'exception peut " -"être enlevée du module par du code externe, une référence à la classe est " -"nécessaire pour assurer qu'elle ne sera pas supprimée par le ramasse-" -"miettes, entraînant que :c:data:`!SpamError` devienne un pointeur dans le " -"vide. Si cela se produisait, le code C qui lève cette exception peut " -"engendrer un *core dump* ou des effets secondaires inattendus." - -#: extending/extending.rst:162 -msgid "" -"For now, the :c:func:`Py_DECREF` call to remove this reference is missing. " -"Even when the Python interpreter shuts down, the global :c:data:`!SpamError` " -"variable will not be garbage-collected. It will \"leak\". We did, however, " -"ensure that this will happen at most once per process." -msgstr "" - -#: extending/extending.rst:167 -#, fuzzy -msgid "" -"We discuss the use of :c:macro:`PyMODINIT_FUNC` as a function return type " -"later in this sample." -msgstr "" -"Nous traiterons de l'utilisation de ``PyMODINIT_FUNC`` comme type de renvoi " -"de fonction plus tard dans cette section." - -#: extending/extending.rst:170 -#, fuzzy -msgid "" -"The :exc:`!spam.error` exception can be raised in your extension module " -"using a call to :c:func:`PyErr_SetString` as shown below::" -msgstr "" -"L'exception :exc:`spam.error` peut être levée dans votre module d'extension " -"en appelant :c:func:`PyErr_SetString` comme montré ci-dessous ::" - -#: extending/extending.rst:193 -msgid "Embedding an extension" -msgstr "" - -#: extending/extending.rst:195 -#, fuzzy -msgid "" -"If you want to make your module a permanent part of the Python interpreter, " -"you will have to change the configuration setup and rebuild the " -"interpreter. On Unix, place your file (:file:`spammodule.c` for example) in " -"the :file:`Modules/` directory of an unpacked source distribution, add a " -"line to the file :file:`Modules/Setup.local` describing your file:" -msgstr "" -"Si vous ne pouvez pas utiliser le chargement dynamique, ou si vous voulez " -"faire de votre module une partie permanente de l'interpréteur Python, vous " -"devez modifier la configuration et reconstruire l'interpréteur. " -"Heureusement, c'est très simple sous Unix : placez simplement votre fichier " -"(:file:`spammodule.c` par exemple) dans le répertoire :file:`Modules/` d'une " -"distribution source décompressée, ajoutez une ligne au " -"fichier :file:`Modules/Setup.local` décrivant votre fichier :" - -#: extending/extending.rst:206 -msgid "" -"and rebuild the interpreter by running :program:`make` in the toplevel " -"directory. You can also run :program:`make` in the :file:`Modules/` " -"subdirectory, but then you must first rebuild :file:`Makefile` there by " -"running ':program:`make` Makefile'. (This is necessary each time you change " -"the :file:`Setup` file.)" -msgstr "" -"et reconstruisez l'interpréteur en exécutant :program:`make` dans le " -"répertoire de niveau supérieur. Vous pouvez également " -"exécuter :program:`make` dans le sous-répertoire :file:`Modules/`, mais vous " -"devez d'abord reconstruire le :file:`Makefile` en exécutant " -"« :program:`make` Makefile » (c'est nécessaire chaque fois que vous modifiez " -"le fichier :file:`Setup`)." - -#: extending/extending.rst:212 -msgid "" -"If your module requires additional libraries to link with, these can be " -"listed on the line in the configuration file as well, for instance:" -msgstr "" -"Si votre module nécessite d'être lié à des bibliothèques supplémentaires, " -"celles-ci peuvent être ajoutées à la fin de la ligne de votre module dans le " -"fichier de configuration, par exemple :" - -#: extending/extending.rst:223 -msgid "Calling Python Functions from C" -msgstr "Appeler des fonctions Python en C" - -#: extending/extending.rst:225 -#, fuzzy -msgid "" -"The tutorial concentrated on making C functions callable from Python. The " -"reverse is also useful: calling Python functions from C. This is especially " -"the case for libraries that support so-called \"callback\" functions. If a " -"C interface makes use of callbacks, the equivalent Python often needs to " -"provide a callback mechanism to the Python programmer; the implementation " -"will require calling the Python callback functions from a C callback. Other " -"uses are also imaginable." -msgstr "" -"Jusqu'à présent, nous nous sommes concentrés sur le fait de rendre les " -"fonctions C appelables depuis Python. L'inverse est également utile : " -"appeler des fonctions Python depuis C. C'est notamment le cas pour les " -"bibliothèques qui gèrent les fonctions dites de « rappel » (*callback* en " -"anglais). Si une interface C utilise des rappels, l'équivalent Python doit " -"souvent fournir un mécanisme de rappel au développeur Python ; " -"l'implémentation nécessite d'appeler les fonctions de rappel Python à partir " -"d'un rappel C. D'autres utilisations sont également envisageables." - -#: extending/extending.rst:233 -msgid "" -"Fortunately, the Python interpreter is easily called recursively, and there " -"is a standard interface to call a Python function. (I won't dwell on how to " -"call the Python parser with a particular string as input --- if you're " -"interested, have a look at the implementation of the :option:`-c` command " -"line option in :file:`Modules/main.c` from the Python source code.)" -msgstr "" -"Heureusement, l'interpréteur Python est facilement appelé de manière " -"récursive et il existe une interface standard pour appeler une fonction " -"Python (nous ne nous attarderons pas sur la façon d'appeler l'analyseur " -"Python avec une chaîne particulière en entrée — si vous êtes intéressé, " -"jetez un œil à l'implémentation de l'option de ligne de commande :option:`-" -"c` dans :file:`Modules/main.c` à partir du code source Python)." - -#: extending/extending.rst:239 -msgid "" -"Calling a Python function is easy. First, the Python program must somehow " -"pass you the Python function object. You should provide a function (or some " -"other interface) to do this. When this function is called, save a pointer " -"to the Python function object (be careful to :c:func:`Py_INCREF` it!) in a " -"global variable --- or wherever you see fit. For example, the following " -"function might be part of a module definition::" -msgstr "" -"L'appel d'une fonction Python est facile. Tout d'abord, le programme Python " -"doit vous transmettre d'une manière ou d'une autre l'objet de fonction " -"Python. Vous devez fournir une fonction (ou une autre interface) pour ce " -"faire. Lorsque cette fonction est appelée, enregistrez un pointeur vers " -"l'objet de la fonction Python (faites attention à :c:func:`Py_INCREF` !) " -"dans une variable globale — ou là où vous le souhaitez. Par exemple, la " -"fonction suivante peut faire partie d'une définition de module ::" - -#: extending/extending.rst:269 -#, fuzzy -msgid "" -"This function must be registered with the interpreter using " -"the :c:macro:`METH_VARARGS` flag in :c:type:`PyMethodDef.ml_flags`. " -"The :c:func:`PyArg_ParseTuple` function and its arguments are documented in " -"section :ref:`parsetuple`." -msgstr "" -"Cette fonction doit être déclarée en utilisant le " -"drapeau :c:macro:`METH_VARARGS` ; ceci est décrit dans la " -"section :ref:`methodtable`. La fonction :c:func:`PyArg_ParseTuple` et ses " -"arguments sont documentés dans la section :ref:`parsetuple`." - -#: extending/extending.rst:274 -msgid "" -"The macros :c:func:`Py_XINCREF` and :c:func:`Py_XDECREF` increment/decrement " -"the reference count of an object and are safe in the presence of ``NULL`` " -"pointers (but note that *temp* will not be ``NULL`` in this context). More " -"info on them in section :ref:`refcounts`." -msgstr "" -"Les macros :c:func:`Py_XINCREF` et :c:func:`Py_XDECREF` incrémentent/" -"décrémentent le compteur des références d'un objet et sont sûres quant à la " -"présence de pointeurs ``NULL`` (mais notez que *temp* ne sera pas ``NULL`` " -"dans ce contexte). Plus d'informations à ce sujet dans la " -"section :ref:`refcounts`." - -#: extending/extending.rst:281 -msgid "" -"Later, when it is time to call the function, you call the C " -"function :c:func:`PyObject_CallObject`. This function has two arguments, " -"both pointers to arbitrary Python objects: the Python function, and the " -"argument list. The argument list must always be a tuple object, whose " -"length is the number of arguments. To call the Python function with no " -"arguments, pass in ``NULL``, or an empty tuple; to call it with one " -"argument, pass a singleton tuple. :c:func:`Py_BuildValue` returns a tuple " -"when its format string consists of zero or more format codes between " -"parentheses. For example::" -msgstr "" -"Plus tard, quand il est temps d'appeler la fonction, vous appelez la " -"fonction C :c:func:`PyObject_CallObject`. Cette fonction requiert deux " -"arguments, tous deux des pointeurs vers des objets Python arbitraires : la " -"fonction Python et la liste d'arguments. La liste d'arguments doit toujours " -"être un objet *n*-uplet, dont la longueur est le nombre d'arguments. Pour " -"appeler la fonction Python sans argument, passez ``NULL`` ou le *n*-uplet " -"vide ; pour l'appeler avec un argument, passez un *n*-uplet " -"singleton. :c:func:`Py_BuildValue` renvoie un *n*-uplet lorsque sa chaîne de " -"format se compose de zéro ou plusieurs codes de format entre parenthèses. " -"Par exemple ::" - -#: extending/extending.rst:301 -msgid "" -":c:func:`PyObject_CallObject` returns a Python object pointer: this is the " -"return value of the Python function. :c:func:`PyObject_CallObject` is " -"\"reference-count-neutral\" with respect to its arguments. In the example a " -"new tuple was created to serve as the argument list, which " -"is :c:func:`Py_DECREF`\\ -ed immediately after " -"the :c:func:`PyObject_CallObject` call." -msgstr "" -":c:func:`PyObject_CallObject` renvoie un pointeur d'objet Python : c'est la " -"valeur de retour de la fonction Python. :c:func:`PyObject_CallObject` est " -"« neutre en nombre de références » par rapport à ses arguments. Dans " -"l'exemple, un nouveau *n*-uplet a été créé pour servir de liste d'arguments, " -"qui est décrémenté (avec :c:func:`Py_DECREF`) immédiatement après " -"l'appel :c:func:`PyObject_CallObject`." - -#: extending/extending.rst:308 -msgid "" -"The return value of :c:func:`PyObject_CallObject` is \"new\": either it is a " -"brand new object, or it is an existing object whose reference count has been " -"incremented. So, unless you want to save it in a global variable, you " -"should somehow :c:func:`Py_DECREF` the result, even (especially!) if you are " -"not interested in its value." -msgstr "" -"La valeur de retour de :c:func:`PyObject_CallObject` est « nouvelle » : soit " -"c'est un tout nouvel objet, soit c'est un objet existant dont le nombre de " -"références a été incrémenté. Donc, à moins que vous ne vouliez l'enregistrer " -"dans une variable globale, vous devriez en quelque sorte décrémenter " -"avec :c:func:`Py_DECREF` le résultat, même (surtout !) si vous n'êtes pas " -"intéressé par sa valeur." - -#: extending/extending.rst:314 -msgid "" -"Before you do this, however, it is important to check that the return value " -"isn't ``NULL``. If it is, the Python function terminated by raising an " -"exception. If the C code that called :c:func:`PyObject_CallObject` is called " -"from Python, it should now return an error indication to its Python caller, " -"so the interpreter can print a stack trace, or the calling Python code can " -"handle the exception. If this is not possible or desirable, the exception " -"should be cleared by calling :c:func:`PyErr_Clear`. For example::" -msgstr "" -"Mais avant de le faire, il est important de vérifier que la valeur renvoyée " -"n'est pas ``NULL``. Si c'est le cas, la fonction Python s'est terminée par " -"une levée d'exception. Si le code C qui a " -"appelé :c:func:`PyObject_CallObject` est appelé depuis Python, il devrait " -"maintenant renvoyer une indication d'erreur à son appelant Python, afin que " -"l'interpréteur puisse afficher la pile d'appels, ou que le code Python " -"appelant puisse gérer l'exception. Si cela n'est pas possible ou " -"souhaitable, l'exception doit être effacée en " -"appelant :c:func:`PyErr_Clear`. Par exemple ::" - -#: extending/extending.rst:327 -msgid "" -"Depending on the desired interface to the Python callback function, you may " -"also have to provide an argument list to :c:func:`PyObject_CallObject`. In " -"some cases the argument list is also provided by the Python program, through " -"the same interface that specified the callback function. It can then be " -"saved and used in the same manner as the function object. In other cases, " -"you may have to construct a new tuple to pass as the argument list. The " -"simplest way to do this is to call :c:func:`Py_BuildValue`. For example, if " -"you want to pass an integral event code, you might use the following code::" -msgstr "" -"Selon l'interface souhaitée pour la fonction de rappel Python, vous devrez " -"peut-être aussi fournir une liste d'arguments " -"à :c:func:`PyObject_CallObject`. Dans certains cas, la liste d'arguments est " -"également fournie par le programme Python, par l'intermédiaire de la même " -"interface qui a spécifié la fonction de rappel. Elle peut alors être " -"sauvegardée et utilisée de la même manière que l'objet fonction. Dans " -"d'autres cas, vous pouvez avoir à construire un nouveau *n*-uplet à passer " -"comme liste d'arguments. La façon la plus simple de faire cela est " -"d'appeler :c:func:`Py_BuildValue`. Par exemple, si vous voulez passer un " -"code d'événement intégral, vous pouvez utiliser le code suivant ::" - -#: extending/extending.rst:346 -msgid "" -"Note the placement of ``Py_DECREF(arglist)`` immediately after the call, " -"before the error check! Also note that strictly speaking this code is not " -"complete: :c:func:`Py_BuildValue` may run out of memory, and this should be " -"checked." -msgstr "" -"Notez la présence de ``Py_DECREF(arglist)`` immédiatement après l'appel, " -"avant la vérification des erreurs ! Notez également qu'à proprement parler, " -"ce code n'est pas complet : :c:func:`Py_BuildValue` peut manquer de mémoire, " -"et cela doit être vérifié." - -#: extending/extending.rst:350 -msgid "" -"You may also call a function with keyword arguments by " -"using :c:func:`PyObject_Call`, which supports arguments and keyword " -"arguments. As in the above example, we use :c:func:`Py_BuildValue` to " -"construct the dictionary. ::" -msgstr "" -"Vous pouvez également appeler une fonction avec des arguments nommés en " -"utilisant :c:func:`PyObject_Call`, qui accepte les arguments et les " -"arguments nommés. Comme dans l'exemple ci-dessus, nous " -"utilisons :c:func:`Py_BuildValue` pour construire le dictionnaire. ::" - -#: extending/extending.rst:370 -msgid "Extracting Parameters in Extension Functions" -msgstr "Extraire des paramètres dans des fonctions d'extension" - -#: extending/extending.rst:372 -msgid "" -"The :ref:`tutorial ` uses a \":c:data:`METH_O`\" " -"function, which is limited to a single Python argument. If you want more, " -"you can use :c:data:`METH_VARARGS` instead. With this flag, the C function " -"will receive a :py:class:`tuple` of arguments instead of a single object." -msgstr "" - -#: extending/extending.rst:378 -#, fuzzy -msgid "" -"For unpacking the tuple, CPython provides the :c:func:`PyArg_ParseTuple` " -"function, declared as follows::" -msgstr "La fonction :c:func:`PyArg_ParseTuple` est déclarée ainsi ::" - -#: extending/extending.rst:383 -msgid "" -"The *arg* argument must be a tuple object containing an argument list passed " -"from Python to a C function. The *format* argument must be a format string, " -"whose syntax is explained in :ref:`arg-parsing` in the Python/C API " -"Reference Manual. The remaining arguments must be addresses of variables " -"whose type is determined by the format string." -msgstr "" -"L'argument *arg* doit être un *n*-uplet contenant une liste d'arguments " -"passée de Python à une fonction C. L'argument *format* doit être une chaîne " -"de format, dont la syntaxe est expliquée dans :ref:`arg-parsing` dans le " -"manuel de référence de l'API Python/C. Les arguments restants doivent être " -"des adresses de variables dont le type est déterminé par la chaîne de format." - -#: extending/extending.rst:389 -msgid "" -"For example, to receive a single Python :py:class:`str` object and turn it " -"into a C buffer, you would use ``\"s\"`` as the format string::" -msgstr "" - -#: extending/extending.rst:397 -msgid "" -"If an error is detected in the argument list, :c:func:`!PyArg_ParseTuple` " -"returns ``NULL`` (the error indicator for functions returning object " -"pointers); your function may return ``NULL``, relying on the exception set " -"by :c:func:`PyArg_ParseTuple`." -msgstr "" - -#: extending/extending.rst:402 -msgid "" -"Note that while :c:func:`PyArg_ParseTuple` checks that the Python arguments " -"have the required types, it cannot check the validity of the addresses of C " -"variables passed to the call: if you make mistakes there, your code will " -"probably crash or at least overwrite random bits in memory. So be careful!" -msgstr "" -"Notez que si :c:func:`PyArg_ParseTuple` vérifie que les arguments Python ont " -"les types requis, elle ne peut pas vérifier la validité des adresses des " -"variables C transmises à l'appel : si vous y faites des erreurs, votre code " -"plantera probablement ou au moins écrasera des bits aléatoires en mémoire. " -"Donc soyez prudent !" - -#: extending/extending.rst:407 -msgid "" -"Note that any Python object references which are provided to the caller are " -"*borrowed* references; do not decrement their reference count!" -msgstr "" -"Notez que toute référence sur un objet Python donnée à l'appelant est une " -"référence *empruntée* ; ne décrémentez pas son compteur de références !" - -#: extending/extending.rst:410 -msgid "Some example calls::" -msgstr "Quelques exemples d'appels ::" - -#: extending/extending.rst:479 -msgid "Keyword Parameters for Extension Functions" -msgstr "Paramètres nommés pour des fonctions d'extension" - -#: extending/extending.rst:481 -msgid "" -"If you also want your function to accept :term:`keyword arguments `, use the :c:data:`METH_KEYWORDS` flag in combination " -"with :c:data:`METH_VARARGS`. (:c:data:`!METH_KEYWORDS` can also be used with " -"other flags; see its documentation for the allowed combinations.)" -msgstr "" - -#: extending/extending.rst:487 -#, fuzzy -msgid "" -"In this case, the C function should accept a third ``PyObject *`` parameter " -"which will be a dictionary of keywords. " -"Use :c:func:`PyArg_ParseTupleAndKeywords` to parse the arguments to such a " -"function." -msgstr "" -"Le bit :c:macro:`METH_KEYWORDS` peut être mis à un dans le troisième champ " -"si des arguments par mots-clés doivent être passés à la fonction. Dans ce " -"cas, la fonction C doit accepter un troisième paramètre ``PyObject *`` qui " -"est un dictionnaire des mots-clés. " -"Utilisez :c:func:`PyArg_ParseTupleAndKeywords` pour analyser les arguments " -"d'une telle fonction." - -#: extending/extending.rst:494 -msgid "" -"The :c:func:`PyArg_ParseTupleAndKeywords` function is declared as follows::" -msgstr "" -"La fonction :c:func:`PyArg_ParseTupleAndKeywords` est déclarée ainsi ::" - -#: extending/extending.rst:499 -msgid "" -"The *arg* and *format* parameters are identical to those of " -"the :c:func:`PyArg_ParseTuple` function. The *kwdict* parameter is the " -"dictionary of keywords received as the third parameter from the Python " -"runtime. The *kwlist* parameter is a ``NULL``-terminated list of strings " -"which identify the parameters; the names are matched with the type " -"information from *format* from left to right. On " -"success, :c:func:`PyArg_ParseTupleAndKeywords` returns true, otherwise it " -"returns false and raises an appropriate exception." -msgstr "" -"Les paramètres *arg* et *format* sont identiques à ceux de la " -"fonction :c:func:`PyArg_ParseTuple`. Le paramètre *kwdict* est le " -"dictionnaire de mots-clés reçu comme troisième paramètre du *runtime* " -"Python. Le paramètre *kwlist* est une liste de chaînes de caractères " -"terminée par ``NULL`` qui identifie les paramètres ; les noms sont mis en " -"correspondance, de gauche à droite, avec les informations de type de " -"*format*. En cas de succès du " -"processus, :c:func:`PyArg_ParseTupleAndKeywords` renvoie vrai, sinon elle " -"renvoie faux et lève une exception appropriée." - -# suit un : -#: extending/extending.rst:509 -msgid "" -"Nested tuples cannot be parsed when using keyword arguments! Keyword " -"parameters passed in which are not present in the *kwlist* will " -"cause :exc:`TypeError` to be raised." -msgstr "" -"les *n*-uplets imbriqués ne peuvent pas être traités lorsqu'on utilise des " -"arguments nommés ! Ceux-ci doivent apparaître dans *kwlist*, dans le cas " -"contraire une exception :exc:`TypeError` est levée." - -#: extending/extending.rst:515 -msgid "" -"Here is an example module which uses keywords, based on an example by Geoff " -"Philbrick (philbrick@hks.com)::" -msgstr "" -"Voici un exemple de module qui utilise des arguments nommés, basé sur un " -"exemple de *Geoff Philbrick* (philbrick@hks.com) ::" - -#: extending/extending.rst:556 -msgid "Building Arbitrary Values" -msgstr "Créer des valeurs arbitraires" - -#: extending/extending.rst:558 -msgid "" -"This function is the counterpart to :c:func:`PyArg_ParseTuple`. It is " -"declared as follows::" -msgstr "" -"Cette fonction est le complément de :c:func:`PyArg_ParseTuple`. Elle est " -"déclarée comme suit ::" - -#: extending/extending.rst:563 -msgid "" -"It recognizes a set of format units similar to the ones recognized " -"by :c:func:`PyArg_ParseTuple`, but the arguments (which are input to the " -"function, not output) must not be pointers, just values. It returns a new " -"Python object, suitable for returning from a C function called from Python." -msgstr "" -"Elle reconnaît un ensemble d'unités de format similaires à celles reconnues " -"par :c:func:`PyArg_ParseTuple`, mais les arguments (qui sont les données en " -"entrée de la fonction, et non de la sortie) ne doivent pas être des " -"pointeurs, mais juste des valeurs. Elle renvoie un nouvel objet Python, " -"adapté pour être renvoyé par une fonction C appelée depuis Python." - -#: extending/extending.rst:568 -msgid "" -"One difference with :c:func:`PyArg_ParseTuple`: while the latter requires " -"its first argument to be a tuple (since Python argument lists are always " -"represented as tuples internally), :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 string is empty, it returns ``None``; if it " -"contains exactly one format unit, it returns whatever object is described by " -"that format unit. To force it to return a tuple of size 0 or one, " -"parenthesize the format string." -msgstr "" -"Une différence avec :c:func:`PyArg_ParseTuple` : alors que cette dernière " -"nécessite que son premier argument soit un *n*-uplet (puisque les listes " -"d'arguments Python sont toujours représentées comme des *n*-uplets en " -"interne), :c:func:`Py_BuildValue` ne construit pas toujours un *n*-uplet. " -"Elle construit un *n*-uplet uniquement si sa chaîne de format contient deux " -"unités de format ou plus. Si la chaîne de format est vide, elle renvoie " -"``None`` ; si elle contient exactement une unité de format, elle renvoie " -"tout objet décrit par cette unité de format. Pour la forcer à renvoyer un " -"*n*-uplet de taille 0 ou un, mettez la chaîne de format entre parenthèses." - -#: extending/extending.rst:576 -msgid "" -"Examples (to the left the call, to the right the resulting Python value):" -msgstr "" -"Exemples (à gauche l'appel, à droite la valeur résultante, en Python) :" - -#: extending/extending.rst:602 -msgid "Reference Counts" -msgstr "Compteurs de références" - -#: extending/extending.rst:604 -msgid "" -"In languages like C or C++, the programmer is responsible for dynamic " -"allocation and deallocation of memory on the heap. In C, this is done using " -"the functions :c:func:`malloc` and :c:func:`free`. In C++, the operators " -"``new`` and ``delete`` are used with essentially the same meaning and we'll " -"restrict the following discussion to the C case." -msgstr "" -"Dans les langages comme le C ou le C++, le développeur est responsable de " -"l'allocation dynamique et de la dés-allocation de la mémoire sur le tas. En " -"C, cela se fait à l'aide des fonctions :c:func:`malloc` et :c:func:`free`. " -"En C++, les opérateurs ``new`` et ``delete`` sont utilisés avec " -"essentiellement la même signification et nous limiterons la discussion " -"suivante au cas du C." - -#: extending/extending.rst:610 -#, fuzzy -msgid "" -"Every block of memory allocated with :c:func:`malloc` should eventually be " -"returned to the pool of available memory by exactly one call " -"to :c:func:`free`. It is important to call :c:func:`free` at the right " -"time. If a block's address is forgotten but :c:func:`free` is not called " -"for it, the memory it occupies cannot be reused until the program " -"terminates. This is called a :dfn:`memory leak`. On the other hand, if a " -"program calls :c:func:`free` for a block and then continues to use the " -"block, it creates a conflict with reuse of the block through " -"another :c:func:`malloc` call. This is called :dfn:`using freed memory`. It " -"has the same bad consequences as referencing uninitialized data --- core " -"dumps, wrong results, mysterious crashes." -msgstr "" -"Chaque bloc de mémoire alloué avec :c:func:`malloc` doit finalement être " -"libéré par exactement un appel à :c:func:`free`. Il est important " -"d'appeler :c:func:`free` au bon moment. Si l'adresse d'un bloc est oubliée " -"mais que :c:func:`free` n'est pas appelée, la mémoire qu'il occupe ne peut " -"être réutilisée tant que le programme n'est pas terminé. C'est ce qu'on " -"appelle une :dfn:`fuite de mémoire`. D'autre part, si un programme " -"appelle :c:func:`free` pour un bloc et continue ensuite à utiliser le bloc, " -"il crée un conflit avec la réutilisation du bloc via un autre " -"appel :c:func:`malloc`. Cela s'appelle :dfn:`utiliser de la mémoire " -"libérée`. Cela a les mêmes conséquences néfastes que le référencement de " -"données non initialisées — « *core dumps* », résultats erronés, plantages " -"mystérieux." - -#: extending/extending.rst:621 -msgid "" -"Common causes of memory leaks are unusual paths through the code. For " -"instance, a function may allocate a block of memory, do some calculation, " -"and then free the block again. Now a change in the requirements for the " -"function may add a test to the calculation that detects an error condition " -"and can return prematurely from the function. It's easy to forget to free " -"the allocated memory block when taking this premature exit, especially when " -"it is added later to the code. Such leaks, once introduced, often go " -"undetected for a long time: the error exit is taken only in a small fraction " -"of all calls, and most modern machines have plenty of virtual memory, so the " -"leak only becomes apparent in a long-running process that uses the leaking " -"function frequently. Therefore, it's important to prevent leaks from " -"happening by having a coding convention or strategy that minimizes this kind " -"of errors." -msgstr "" -"Les causes courantes des fuites de mémoire sont des exécutions inhabituelles " -"du code. Par exemple, une fonction peut allouer un bloc de mémoire, " -"effectuer des calculs, puis libérer le bloc. Plus tard, une modification des " -"exigences de la fonction peut ajouter un test au calcul qui détecte une " -"condition d'erreur et peut sortir prématurément de la fonction. Il est " -"facile d'oublier de libérer le bloc de mémoire alloué lors de cette sortie " -"prématurée, surtout lorsqu'elle est ajoutée ultérieurement au code. De " -"telles fuites, une fois introduites, passent souvent inaperçues pendant " -"longtemps : la sortie d'erreur n'est prise que dans une petite fraction de " -"tous les appels, et la plupart des machines modernes ont beaucoup de mémoire " -"virtuelle, de sorte que la fuite ne devient apparente que dans un processus " -"de longue durée qui utilise fréquemment cette fonction. Par conséquent, il " -"est important d'éviter les fuites en ayant une convention ou une stratégie " -"de codage qui minimise ce type d'erreurs." - -#: extending/extending.rst:634 -msgid "" -"Since Python makes heavy use of :c:func:`malloc` and :c:func:`free`, it " -"needs a strategy to avoid memory leaks as well as the use of freed memory. " -"The chosen method is called :dfn:`reference counting`. The principle is " -"simple: every object contains a counter, which is incremented when a " -"reference to the object is stored somewhere, and which is decremented when a " -"reference to it is deleted. When the counter reaches zero, the last " -"reference to the object has been deleted and the object is freed." -msgstr "" -"Comme Python fait un usage intensif de :c:func:`malloc` et " -"de :c:func:`free`, il a besoin d'une stratégie pour éviter les fuites de " -"mémoire ainsi que l'utilisation de la mémoire libérée. La méthode choisie " -"est appelée le :dfn:`comptage de références`. Le principe est simple : " -"chaque objet contient un compteur, qui est incrémenté lorsqu'une référence à " -"l'objet est stockée quelque part, et qui est décrémenté lorsqu'une référence " -"à celui-ci est supprimée. Lorsque le compteur atteint zéro, la dernière " -"référence à l'objet a été supprimée et l'objet est libéré." - -#: extending/extending.rst:642 -msgid "" -"An alternative strategy is called :dfn:`automatic garbage collection`. " -"(Sometimes, reference counting is also referred to as a garbage collection " -"strategy, hence my use of \"automatic\" to distinguish the two.) The big " -"advantage of automatic garbage collection is that the user doesn't need to " -"call :c:func:`free` explicitly. (Another claimed advantage is an " -"improvement in speed or memory usage --- this is no hard fact however.) The " -"disadvantage is that for C, there is no truly portable automatic garbage " -"collector, while reference counting can be implemented portably (as long as " -"the functions :c:func:`malloc` and :c:func:`free` are available --- which " -"the C Standard guarantees). Maybe some day a sufficiently portable automatic " -"garbage collector will be available for C. Until then, we'll have to live " -"with reference counts." -msgstr "" -"Une stratégie alternative est appelée :dfn:`ramasse-miettes automatique` " -"(*automatic garbage collection* en anglais). Parfois, le comptage des " -"références est également appelé stratégie de ramasse-miettes, d'où " -"l'utilisation du terme « automatique » pour distinguer les deux. Le grand " -"avantage du ramasse-miettes est que l'utilisateur n'a pas besoin " -"d'appeler :c:func:`free` explicitement (un autre avantage important est " -"l'amélioration de la vitesse ou de l'utilisation de la mémoire, ce n'est " -"cependant pas un fait avéré). L'inconvénient est que pour C, il n'y a pas de " -"ramasse-miettes portable proprement-dit, alors que le comptage des " -"références peut être implémenté de façon portable (tant que les " -"fonctions :c:func:`malloc` et :c:func:`free` sont disponibles, ce que la " -"norme C garantit). Peut-être qu'un jour un ramasse-miettes suffisamment " -"portable sera disponible pour C. D'ici là, nous devons utiliser les " -"compteurs de références." - -#: extending/extending.rst:654 -msgid "" -"While Python uses the traditional reference counting implementation, it also " -"offers a cycle detector that works to detect reference cycles. This allows " -"applications to not worry about creating direct or indirect circular " -"references; these are the weakness of garbage collection implemented using " -"only reference counting. Reference cycles consist of objects which contain " -"(possibly indirect) references to themselves, so that each object in the " -"cycle has a reference count which is non-zero. Typical reference counting " -"implementations are not able to reclaim the memory belonging to any objects " -"in a reference cycle, or referenced from the objects in the cycle, even " -"though there are no further references to the cycle itself." -msgstr "" -"Bien que Python utilise l'implémentation traditionnelle de comptage de " -"références, il contient également un détecteur de cycles qui fonctionne pour " -"détecter les cycles de références. Cela permet aux applications de ne pas se " -"soucier de la création de références circulaires directes ou indirectes ; " -"celles-ci sont les faiblesses des ramasse-miettes utilisant uniquement le " -"comptage de références. Les cycles de références sont constitués d'objets " -"qui contiennent des références (éventuellement indirectes) à eux-mêmes, de " -"sorte que chaque objet du cycle a un compteur de références qui n'est pas " -"nul. Les implémentations typiques de comptage de références ne sont pas " -"capables de récupérer la mémoire des objets appartenant à un cycle de " -"références, ou référencés à partir des objets dans le cycle, même s'il n'y a " -"pas d'autre référence au cycle lui-même." - -#: extending/extending.rst:665 -msgid "" -"The cycle detector is able to detect garbage cycles and can reclaim them. " -"The :mod:`gc` module exposes a way to run the detector " -"(the :func:`~gc.collect` function), as well as configuration interfaces and " -"the ability to disable the detector at runtime." -msgstr "" -"Le détecteur de cycle est capable de détecter les cycles isolés et peut " -"récupérer la mémoire afférente. Le module :mod:`gc` expose un moyen " -"d'exécuter le détecteur (la fonction :func:`~gc.collect`), ainsi que des " -"interfaces de configuration et la possibilité de désactiver le détecteur au " -"moment de l'exécution." - -#: extending/extending.rst:674 -msgid "Reference Counting in Python" -msgstr "Comptage de références en Python" - -#: extending/extending.rst:676 -msgid "" -"There are two macros, ``Py_INCREF(x)`` and ``Py_DECREF(x)``, which handle " -"the incrementing and decrementing of the reference " -"count. :c:func:`Py_DECREF` also frees the object when the count reaches " -"zero. For flexibility, it doesn't call :c:func:`free` directly --- rather, " -"it makes a call through a function pointer in the object's :dfn:`type " -"object`. For this purpose (and others), every object also contains a " -"pointer to its type object." -msgstr "" -"Il existe deux macros, ``Py_INCREF(x)`` et ``Py_DECREF(x)``, qui gèrent " -"l'incrémentation et la décrémentation du comptage de " -"références. :c:func:`Py_DECREF` libère également l'objet lorsque le compteur " -"atteint zéro. Pour plus de flexibilité, il n'appelle pas :c:func:`free` " -"directement — plutôt, il fait un appel à travers un pointeur de fonction " -"dans l'objet :dfn:`type objet` de l'objet. À cette fin (et pour d'autres), " -"chaque objet contient également un pointeur vers son objet type." - -#: extending/extending.rst:683 -msgid "" -"The big question now remains: when to use ``Py_INCREF(x)`` and " -"``Py_DECREF(x)``? Let's first introduce some terms. Nobody \"owns\" an " -"object; however, you can :dfn:`own a reference` to an object. An object's " -"reference count is now defined as the number of owned references to it. The " -"owner of a reference is responsible for calling :c:func:`Py_DECREF` when the " -"reference is no longer needed. Ownership of a reference can be " -"transferred. There are three ways to dispose of an owned reference: pass it " -"on, store it, or call :c:func:`Py_DECREF`. Forgetting to dispose of an owned " -"reference creates a memory leak." -msgstr "" -"La grande question demeure maintenant : quand utiliser ``Py_INCREF(x)`` et " -"``Py_DECREF(x)`` ? Commençons par définir quelques termes. Personne ne " -"possède un objet, mais vous pouvez en :dfn:`avoir une référence`. Le " -"compteur de références d'un objet est maintenant défini comme étant le " -"nombre de références à cet objet. Le propriétaire d'une référence est " -"responsable d'appeler :c:func:`Py_DECREF` lorsque la référence n'est plus " -"nécessaire. La possession d'une référence peut être transférée. Il y a trois " -"façons de se débarrasser d'une référence que l'on possède : la transmettre, " -"la stocker ou appeler :c:func:`Py_DECREF`. Oublier de se débarrasser d'une " -"référence crée une fuite de mémoire." - -#: extending/extending.rst:692 -#, fuzzy -msgid "" -"It is also possible to :dfn:`borrow` [#borrow]_ a reference to an object. " -"The borrower of a reference should not call :c:func:`Py_DECREF`. The " -"borrower must not hold on to the object longer than the owner from which it " -"was borrowed. Using a borrowed reference after the owner has disposed of it " -"risks using freed memory and should be avoided completely [#dont-check-" -"refcount]_." -msgstr "" -"Il est également possible d':dfn:`emprunter` [#]_ une référence à un objet. " -"L'emprunteur d'une référence ne doit pas appeler :c:func:`Py_DECREF`. " -"L'emprunteur ne doit pas conserver l'objet plus longtemps que le " -"propriétaire à qui il a été emprunté. L'utilisation d'une référence " -"empruntée après que le propriétaire s'en est débarrassée risque d'utiliser " -"de la mémoire libérée et doit être absolument évitée [#]_." - -#: extending/extending.rst:698 -msgid "" -"The advantage of borrowing over owning a reference is that you don't need to " -"take care of disposing of the reference on all possible paths through the " -"code --- in other words, with a borrowed reference you don't run the risk of " -"leaking when a premature exit is taken. The disadvantage of borrowing over " -"owning is that there are some subtle situations where in seemingly correct " -"code a borrowed reference can be used after the owner from which it was " -"borrowed has in fact disposed of it." -msgstr "" -"L'avantage d'emprunter, plutôt qu'être propriétaire d'une référence, est que " -"vous n'avez pas à vous soucier de libérer la référence sur tous les chemins " -"possibles dans le code — en d'autres termes, avec une référence empruntée, " -"vous ne courez pas le risque de fuites lors d'une sortie prématurée. " -"L'inconvénient de l'emprunt par rapport à la possession est qu'il existe " -"certaines situations subtiles où, dans un code apparemment correct, une " -"référence empruntée peut être utilisée après que le propriétaire auquel elle " -"a été empruntée l'a en fait éliminée." - -#: extending/extending.rst:706 -msgid "" -"A borrowed reference can be changed into an owned reference by " -"calling :c:func:`Py_INCREF`. This does not affect the status of the owner " -"from which the reference was borrowed --- it creates a new owned reference, " -"and gives full owner responsibilities (the new owner must dispose of the " -"reference properly, as well as the previous owner)." -msgstr "" -"Une référence empruntée peut être changée en une référence possédée en " -"appelant :c:func:`Py_INCREF`. Cela n'affecte pas le statut du propriétaire à " -"qui la référence a été empruntée — cela crée une nouvelle référence possédée " -"et donne l'entière responsabilité au propriétaire (le nouveau propriétaire " -"doit libérer la référence correctement, ainsi que le propriétaire précédent)." - -#: extending/extending.rst:716 -msgid "Ownership Rules" -msgstr "Règles concernant la possession de références" - -#: extending/extending.rst:718 -msgid "" -"Whenever an object reference is passed into or out of a function, it is part " -"of the function's interface specification whether ownership is transferred " -"with the reference or not." -msgstr "" -"Chaque fois qu'une référence d'objet est passée à l'intérieur ou à " -"l'extérieur d'une fonction, elle fait partie de la spécification de " -"l'interface de la fonction, peu importe que la possession soit transférée " -"avec la référence ou non." - -#: extending/extending.rst:722 -msgid "" -"Most functions that return a reference to an object pass on ownership with " -"the reference. In particular, all functions whose function it is to create " -"a new object, such as :c:func:`PyLong_FromLong` and :c:func:`Py_BuildValue`, " -"pass ownership to the receiver. Even if the object is not actually new, you " -"still receive ownership of a new reference to that object. For " -"instance, :c:func:`PyLong_FromLong` maintains a cache of popular values and " -"can return a reference to a cached item." -msgstr "" -"La plupart des fonctions qui renvoient une référence à un objet transmettent " -"la possession avec la référence. En particulier, toutes les fonctions dont " -"la fonction est de créer un nouvel objet, telles " -"que :c:func:`PyLong_FromLong` et :c:func:`Py_BuildValue`, transmettent la " -"possession au récepteur. Même si l'objet n'est pas réellement nouveau, vous " -"recevez toujours la possession d'une nouvelle référence à cet objet. Par " -"exemple, :c:func:`PyLong_FromLong` maintient un cache des valeurs souvent " -"utilisées et peut renvoyer une référence à un élément mis en cache." - -#: extending/extending.rst:730 -msgid "" -"Many functions that extract objects from other objects also transfer " -"ownership with the reference, for " -"instance :c:func:`PyObject_GetAttrString`. The picture is less clear, here, " -"however, since a few common routines are " -"exceptions: :c:func:`PyTuple_GetItem`, :c:func:`PyList_GetItem`, :c:func:`PyDict_GetItem`, " -"and :c:func:`PyDict_GetItemString` all return references that you borrow " -"from the tuple, list or dictionary." -msgstr "" -"De nombreuses fonctions qui extraient des objets d'autres objets transfèrent " -"également la possession avec la référence, par " -"exemple :c:func:`PyObject_GetAttrString`. L'image est moins claire ici, " -"cependant, puisque quelques routines courantes sont des " -"exceptions : :c:func:`PyTuple_GetItem`, :c:func:`PyList_GetItem`, :c:func:`PyDict_GetItem` " -"et :c:func:`PyDict_GetItemString` renvoient toutes des références qui sont " -"empruntées au *n*-uplet, à la liste ou au dictionnaire." - -#: extending/extending.rst:737 -msgid "" -"The function :c:func:`PyImport_AddModule` also returns a borrowed reference, " -"even though it may actually create the object it returns: this is possible " -"because an owned reference to the object is stored in ``sys.modules``." -msgstr "" -"La fonction :c:func:`PyImport_AddModule` renvoie également une référence " -"empruntée, même si elle peut en fait créer l'objet qu'elle renvoie : c'est " -"possible car une référence à l'objet est stockée dans ``sys.modules``." - -#: extending/extending.rst:741 -msgid "" -"When you pass an object reference into another function, in general, the " -"function borrows the reference from you --- if it needs to store it, it will " -"use :c:func:`Py_INCREF` to become an independent owner. There are exactly " -"two important exceptions to this rule: :c:func:`PyTuple_SetItem` " -"and :c:func:`PyList_SetItem`. These functions take over ownership of the " -"item passed to them --- even if they fail! (Note " -"that :c:func:`PyDict_SetItem` and friends don't take over ownership --- they " -"are \"normal.\")" -msgstr "" -"Lorsque vous passez une référence d'objet dans une autre fonction, en " -"général, la fonction vous emprunte la référence — si elle a besoin de la " -"stocker, elle utilise :c:func:`Py_INCREF` pour devenir un propriétaire " -"indépendant. Il existe exactement deux exceptions importantes à cette " -"règle : :c:func:`PyTuple_SetItem` et :c:func:`PyList_SetItem`. Ces fonctions " -"s'approprient l'élément qui leur est transmis, même en cas d'échec ! (Notez " -"que :c:func:`PyDict_SetItem` et compagnie ne prennent pas la possession de " -"l'objet, elles sont « normales ».)" - -#: extending/extending.rst:749 -msgid "" -"When a C function is called from Python, it borrows references to its " -"arguments from the caller. The caller owns a reference to the object, so " -"the borrowed reference's lifetime is guaranteed until the function returns. " -"Only when such a borrowed reference must be stored or passed on, it must be " -"turned into an owned reference by calling :c:func:`Py_INCREF`." -msgstr "" -"Lorsqu'une fonction C est appelée depuis Python, elle emprunte à l'appelant " -"des références aux arguments. L'appelant possède une référence à l'objet, de " -"sorte que la durée de vie de la référence empruntée est garantie jusqu'au " -"retour de la fonction. Ce n'est que lorsqu'une telle référence empruntée " -"doit être stockée ou transmise qu'elle doit être transformée en référence " -"possédée en appelant :c:func:`Py_INCREF`." - -#: extending/extending.rst:755 -msgid "" -"The object reference returned from a C function that is called from Python " -"must be an owned reference --- ownership is transferred from the function to " -"its caller." -msgstr "" -"La référence d'objet renvoyée par une fonction C appelée depuis Python doit " -"être une référence détenue en propre — la possession est transférée de la " -"fonction à son appelant." - -#: extending/extending.rst:763 -msgid "Thin Ice" -msgstr "Terrain dangereux" - -#: extending/extending.rst:765 -msgid "" -"There are a few situations where seemingly harmless use of a borrowed " -"reference can lead to problems. These all have to do with implicit " -"invocations of the interpreter, which can cause the owner of a reference to " -"dispose of it." -msgstr "" -"Il existe quelques situations où l'utilisation apparemment inoffensive d'une " -"référence empruntée peut entraîner des problèmes. Tous ces problèmes sont en " -"lien avec des invocations implicites de l’interpréteur et peuvent amener le " -"propriétaire d'une référence à s'en défaire." - -#: extending/extending.rst:769 -msgid "" -"The first and most important case to know about is using :c:func:`Py_DECREF` " -"on an unrelated object while borrowing a reference to a list item. For " -"instance::" -msgstr "" -"Le premier cas, et le plus important à connaître, est celui de l'utilisation " -"de :c:func:`Py_DECREF` à un objet non relié lors de l'emprunt d'une " -"référence à un élément de liste. Par exemple ::" - -#: extending/extending.rst:781 -msgid "" -"This function first borrows a reference to ``list[0]``, then replaces " -"``list[1]`` with the value ``0``, and finally prints the borrowed reference. " -"Looks harmless, right? But it's not!" -msgstr "" -"Cette fonction emprunte d'abord une référence à ``list[0]``, puis remplace " -"``list[1]`` par la valeur ``0``, et enfin affiche la référence empruntée. " -"Ça a l'air inoffensif, n'est-ce pas ? Mais ce n'est pas le cas !" - -#: extending/extending.rst:785 -#, fuzzy -msgid "" -"Let's follow the control flow into :c:func:`PyList_SetItem`. The list owns " -"references to all its items, so when item 1 is replaced, it has to dispose " -"of the original item 1. Now let's suppose the original item 1 was an " -"instance of a user-defined class, and let's further suppose that the class " -"defined a :meth:`!__del__` method. If this class instance has a reference " -"count of 1, disposing of it will call its :meth:`!__del__` method. " -"Internally, :c:func:`PyList_SetItem` calls :c:func:`Py_DECREF` on the " -"replaced item, which invokes replaced item's " -"corresponding :c:member:`~PyTypeObject.tp_dealloc` function. During " -"deallocation, :c:member:`~PyTypeObject.tp_dealloc` " -"calls :c:member:`~PyTypeObject.tp_finalize`, which is mapped to the :meth:`!" -"__del__` method for class instances (see :pep:`442`). This entire sequence " -"happens synchronously within the :c:func:`PyList_SetItem` call." -msgstr "" -"Suivons le flux de contrôle dans :c:func:`PyList_SetItem`. La liste possède " -"des références à tous ses éléments, donc quand l'élément 1 est remplacé, " -"elle doit se débarrasser de l'élément 1 original. Supposons maintenant que " -"l'élément 1 original était une instance d'une classe définie par " -"l'utilisateur, et supposons en outre que la classe définisse une " -"méthode :meth:`__del__`. Si l'instance de cette classe a un nombre des " -"références de 1, sa destruction appellera sa méthode :meth:`__del__`." - -#: extending/extending.rst:799 -#, fuzzy -msgid "" -"Since it is written in Python, the :meth:`!__del__` method can execute " -"arbitrary Python code. Could it perhaps do something to invalidate the " -"reference to ``item`` in :c:func:`!bug`? You bet! Assuming that the list " -"passed into :c:func:`!bug` is accessible to the :meth:`!__del__` method, it " -"could execute a statement to the effect of ``del list[0]``, and assuming " -"this was the last reference to that object, it would free the memory " -"associated with it, thereby invalidating ``item``." -msgstr "" -"Comme elle est écrite en Python, la méthode :meth:`__del__` peut exécuter du " -"code Python arbitraire. Pourrait-elle faire quelque chose pour invalider la " -"référence à ``item`` dans :c:func:`bug` ? Bien sûr ! En supposant que la " -"liste passée dans :c:func:`bug` est accessible à la méthode :meth:`__del__`, " -"elle pourrait exécuter une instruction à l'effet de ``del list[0]``, et en " -"supposant que ce soit la dernière référence à cet objet, elle libérerait la " -"mémoire qui lui est associée, invalidant ainsi ``item``." - -#: extending/extending.rst:807 -msgid "" -"The solution, once you know the source of the problem, is easy: temporarily " -"increment the reference count. The correct version of the function reads::" -msgstr "" -"La solution, une fois que vous connaissez la source du problème, est " -"simple : incrémentez temporairement le compteur de références. La version " -"correcte de la fonction est ::" - -#: extending/extending.rst:821 -#, fuzzy -msgid "" -"This is a true story. An older version of Python contained variants of this " -"bug and someone spent a considerable amount of time in a C debugger to " -"figure out why his :meth:`!__del__` methods would fail..." -msgstr "" -"C'est une histoire vraie. Une ancienne version de Python contenait des " -"variantes de ce bogue et quelqu'un a passé beaucoup de temps dans un " -"débogueur C pour comprendre pourquoi il arrivait que ses " -"méthodes :meth:`__del__` échouent…" - -#: extending/extending.rst:825 -#, fuzzy -msgid "" -"The second case of problems with a borrowed reference is a variant involving " -"threads. Normally, multiple threads in the Python interpreter can't get in " -"each other's way, because there is a :term:`global lock ` protecting Python's entire object space. However, it is possible to " -"temporarily release this lock using the " -"macro :c:macro:`Py_BEGIN_ALLOW_THREADS`, and to re-acquire it " -"using :c:macro:`Py_END_ALLOW_THREADS`. This is common around blocking I/O " -"calls, to let other threads use the processor while waiting for the I/O to " -"complete. Obviously, the following function has the same problem as the " -"previous one::" -msgstr "" -"Le deuxième cas de problèmes liés à une référence empruntée est une variante " -"impliquant des fils d'exécution. Normalement, plusieurs threads dans " -"l'interpréteur Python ne peuvent pas se gêner mutuellement, car il existe un " -"verrou global protégeant tout l'espace objet de Python. Cependant, il est " -"possible de libérer temporairement ce verrou en utilisant la " -"macro :c:macro:`Py_BEGIN_ALLOW_THREADS`, et de le ré-acquérir en " -"utilisant :c:macro:`Py_END_ALLOW_THREADS`. Ceci est un procédé courant pour " -"bloquer les appels d'entrées/sorties, afin de permettre aux autres threads " -"d'utiliser le processeur en attendant que les E/S soient terminées. " -"Évidemment, la fonction suivante a le même problème que la précédente ::" - -#: extending/extending.rst:849 -msgid "NULL Pointers" -msgstr "Pointeurs ``NULL``" - -#: extending/extending.rst:851 -msgid "" -"In general, functions that take object references as arguments do not expect " -"you to pass them ``NULL`` pointers, and will dump core (or cause later core " -"dumps) if you do so. Functions that return object references generally " -"return ``NULL`` only to indicate that an exception occurred. The reason for " -"not testing for ``NULL`` arguments is that functions often pass the objects " -"they receive on to other function --- if each function were to test for " -"``NULL``, there would be a lot of redundant tests and the code would run " -"more slowly." -msgstr "" -"En général, les fonctions qui prennent des références d'objets comme " -"arguments ne sont pas conçues pour recevoir des pointeurs ``NULL``, et si " -"vous en donnez comme arguments, elles causeront une erreur de segmentation " -"(ou provoqueront des *core dump* ultérieurs). Les fonctions qui renvoient " -"des références d'objets renvoient généralement ``NULL`` uniquement pour " -"indiquer qu'une exception s'est produite. La raison pour laquelle les " -"arguments ``NULL`` ne sont pas testés est que les fonctions passent souvent " -"les objets qu'elles reçoivent à d'autres fonctions, si chaque fonction " -"devait tester pour ``NULL``, il y aurait beaucoup de tests redondants et le " -"code s'exécuterait plus lentement." - -#: extending/extending.rst:859 -msgid "" -"It is better to test for ``NULL`` only at the \"source:\" when a pointer " -"that may be ``NULL`` is received, for example, from :c:func:`malloc` or from " -"a function that may raise an exception." -msgstr "" -"Il est préférable de tester la présence de ``NULL`` uniquement au début : " -"lorsqu'un pointeur qui peut être ``NULL`` est reçu, par exemple, " -"de :c:func:`malloc` ou d'une fonction qui peut lever une exception." - -#: extending/extending.rst:863 -msgid "" -"The macros :c:func:`Py_INCREF` and :c:func:`Py_DECREF` do not check for " -"``NULL`` pointers --- however, their variants :c:func:`Py_XINCREF` " -"and :c:func:`Py_XDECREF` do." -msgstr "" -"Les macros :c:func:`Py_INCREF` et :c:func:`Py_DECREF` ne vérifient pas les " -"pointeurs ``NULL``. Cependant, leurs variantes :c:func:`Py_XINCREF` " -"et :c:func:`Py_XDECREF` le font." - -#: extending/extending.rst:867 -msgid "" -"The macros for checking for a particular object type (``Pytype_Check()``) " -"don't check for ``NULL`` pointers --- again, there is much code that calls " -"several of these in a row to test an object against various different " -"expected types, and this would generate redundant tests. There are no " -"variants with ``NULL`` checking." -msgstr "" -"Les macros de vérification d'un type d'objet particulier " -"(``Pytype_Check()``) ne vérifient pas les pointeurs ``NULL`` — encore une " -"fois, il y a beaucoup de code qui en appelle plusieurs à la suite pour " -"tester un objet par rapport à différents types attendus, ce qui générerait " -"des tests redondants. Il n'y a pas de variantes avec la vérification " -"``NULL``." - -#: extending/extending.rst:873 -#, fuzzy -msgid "" -"The C function calling mechanism guarantees that the argument list passed to " -"C functions (``args`` in the examples) is never ``NULL`` --- in fact it " -"guarantees that it is always a tuple [#old-calling-convention]_." -msgstr "" -"Le mécanisme d'appel de fonctions C garantit que la liste d'arguments passée " -"aux fonctions C (``args`` dans les exemples) n'est jamais ``NULL``. En fait, " -"il garantit qu'il s'agit toujours d'un *n*-uplet [#]_." - -#: extending/extending.rst:877 -msgid "" -"It is a severe error to ever let a ``NULL`` pointer \"escape\" to the Python " -"user." -msgstr "" -"C'est une grave erreur de laisser un pointeur ``NULL`` « s'échapper » vers " -"l'utilisateur Python." - -#: extending/extending.rst:888 -msgid "Writing Extensions in C++" -msgstr "Écrire des extensions en C++" - -#: extending/extending.rst:890 -msgid "" -"It is possible to write extension modules in C++. Some restrictions apply. " -"If the main program (the Python interpreter) is compiled and linked by the C " -"compiler, global or static objects with constructors cannot be used. This " -"is not a problem if the main program is linked by the C++ compiler. " -"Functions that will be called by the Python interpreter (in particular, " -"module initialization functions) have to be declared using ``extern \"C\"``. " -"It is unnecessary to enclose the Python header files in ``extern \"C\" {...}" -"`` --- they use this form already if the symbol ``__cplusplus`` is defined " -"(all recent C++ compilers define this symbol)." -msgstr "" -"C'est possible d'écrire des modules d'extension en C++, mais sous certaines " -"conditions. Si le programme principal (l'interpréteur Python) est compilé et " -"lié par le compilateur C, les objets globaux ou statiques avec les " -"constructeurs ne peuvent pas être utilisés. Ceci n'est pas un problème si le " -"programme principal est relié par le compilateur C++. Les fonctions qui " -"seront appelées par l'interpréteur Python (en particulier, les fonctions " -"d'initialisation des modules) doivent être déclarées en utilisant ``extern " -"\"C\"``. Il n'est pas nécessaire d'inclure les fichiers d'en-tête Python " -"dans le ``extern \"C\" {…}``, car ils utilisent déjà ce format si le symbole " -"``__cplusplus`` est défini (tous les compilateurs C++ récents définissent ce " -"symbole)." - -#: extending/extending.rst:904 -msgid "Providing a C API for an Extension Module" -msgstr "Fournir une API en langage C pour un module d'extension" - -#: extending/extending.rst:906 -msgid "" -"Many extension modules just provide new functions and types to be used from " -"Python, but sometimes the code in an extension module can be useful for " -"other extension modules. For example, an extension module could implement a " -"type \"collection\" which works like lists without order. Just like the " -"standard Python list type has a C API which permits extension modules to " -"create and manipulate lists, this new collection type should have a set of C " -"functions for direct manipulation from other extension modules." -msgstr "" -"De nombreux modules d'extension fournissent simplement de nouvelles " -"fonctions et de nouveaux types à utiliser à partir de Python, mais parfois " -"le code d'un module d'extension peut être utile pour d'autres modules " -"d'extension. Par exemple, un module d'extension peut mettre en œuvre un type " -"« collection » qui fonctionne comme des listes sans ordre. Tout comme le " -"type de liste Python standard possède une API C qui permet aux modules " -"d'extension de créer et de manipuler des listes, ce nouveau type de " -"collection devrait posséder un ensemble de fonctions C pour une manipulation " -"directe à partir d'autres modules d'extension." - -#: extending/extending.rst:914 -msgid "" -"At first sight this seems easy: just write the functions (without declaring " -"them ``static``, of course), provide an appropriate header file, and " -"document the C API. And in fact this would work if all extension modules " -"were always linked statically with the Python interpreter. When modules are " -"used as shared libraries, however, the symbols defined in one module may not " -"be visible to another module. The details of visibility depend on the " -"operating system; some systems use one global namespace for the Python " -"interpreter and all extension modules (Windows, for example), whereas others " -"require an explicit list of imported symbols at module link time (AIX is one " -"example), or offer a choice of different strategies (most Unices). And even " -"if symbols are globally visible, the module whose functions one wishes to " -"call might not have been loaded yet!" -msgstr "" -"À première vue, cela semble facile : il suffit d'écrire les fonctions (sans " -"les déclarer « statiques », bien sûr), de fournir un fichier d'en-tête " -"approprié et de documenter l'API C. Et en fait, cela fonctionnerait si tous " -"les modules d'extension étaient toujours liés statiquement avec " -"l'interpréteur Python. Cependant, lorsque les modules sont utilisés comme " -"des bibliothèques partagées, les symboles définis dans un module peuvent ne " -"pas être visibles par un autre module. Les détails de la visibilité " -"dépendent du système d'exploitation ; certains systèmes utilisent un espace " -"de noms global pour l'interpréteur Python et tous les modules d'extension " -"(Windows, par exemple), tandis que d'autres exigent une liste explicite des " -"symboles importés au moment de la liaison des modules (AIX en est un " -"exemple), ou offrent un choix de stratégies différentes (la plupart des " -"*Unix*). Et même si les symboles sont globalement visibles, le module dont " -"on souhaite appeler les fonctions n'est peut-être pas encore chargé !" - -#: extending/extending.rst:926 -#, fuzzy -msgid "" -"Portability therefore requires not to make any assumptions about symbol " -"visibility. This means that all symbols in extension modules should be " -"declared ``static``, except for the module's initialization function, in " -"order to avoid name clashes with other extension modules. And it means that " -"symbols that *should* be accessible from other extension modules must be " -"exported in a different way." -msgstr "" -"La portabilité exige donc de ne faire aucune supposition sur la visibilité " -"des symboles. Cela signifie que tous les symboles des modules d'extension " -"doivent être déclarés ``static``, à l'exception de la fonction " -"d'initialisation du module, afin d'éviter les conflits de noms avec les " -"autres modules d'extension (comme discuté dans la " -"section :ref:`methodtable`). Et cela signifie que les symboles qui " -"*devraient* être accessibles à partir d'autres modules d'extension doivent " -"être exportés d'une manière différente." - -#: extending/extending.rst:933 -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: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 " -"module, retrieve the value of this name, and then retrieve the pointer from " -"the Capsule." -msgstr "" -"Python fournit un mécanisme spécial pour transmettre des informations de " -"niveau C (pointeurs) d'un module d'extension à un autre : les Capsules. Une " -"capsule est un type de données Python qui stocke un pointeur (:c:expr:`void " -"\\*`). Les capsules ne peuvent être créées et accessibles que via leur API " -"C, mais elles peuvent être transmises comme n'importe quel autre objet " -"Python. En particulier, elles peuvent être affectées à un nom dans l'espace " -"de noms d'un module d'extension. D'autres modules d'extension peuvent alors " -"importer ce module, récupérer la valeur de ce nom, puis récupérer le " -"pointeur de la Capsule." - -#: extending/extending.rst:941 -msgid "" -"There are many ways in which Capsules can be used to export the C API of an " -"extension module. Each function could get its own Capsule, or all C API " -"pointers could be stored in an array whose address is published in a " -"Capsule. And the various tasks of storing and retrieving the pointers can be " -"distributed in different ways between the module providing the code and the " -"client modules." -msgstr "" -"Il existe de nombreuses façons d'utiliser les Capsules pour exporter l'API C " -"d'un module d'extension. Chaque fonction peut obtenir sa propre Capsule, ou " -"tous les pointeurs de l'API C peuvent être stockés dans un tableau dont " -"l'adresse est inscrite dans une Capsule. Et les différentes tâches de " -"stockage et de récupération des pointeurs peuvent être réparties de " -"différentes manières entre le module fournissant le code et les modules " -"clients." - -#: extending/extending.rst:947 -msgid "" -"Whichever method you choose, it's important to name your Capsules properly. " -"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 " -"from another." -msgstr "" -"Quelle que soit la méthode que vous choisissez, il est important de bien " -"nommer vos Capsules. La fonction :c:func:`PyCapsule_New` prend un paramètre " -"nommé (:c:expr:`const char \\*`). Vous êtes autorisé à passer un nom " -"``NULL``, mais nous vous encourageons vivement à spécifier un nom. Des " -"Capsules correctement nommées offrent un certain degré de sécurité " -"concernant un éventuel conflit de types, car il n'y a pas de moyen de " -"distinguer deux ou plusieurs Capsules non nommées entre elles." - -#: extending/extending.rst:954 -msgid "" -"In particular, Capsules used to expose C APIs should be given a name " -"following this convention::" -msgstr "" -"En particulier, les capsules utilisées pour exposer les API C doivent " -"recevoir un nom suivant cette convention ::" - -#: extending/extending.rst:959 -msgid "" -"The convenience function :c:func:`PyCapsule_Import` makes it easy to load a " -"C API provided via a Capsule, but only if the Capsule's name matches this " -"convention. This behavior gives C API users a high degree of certainty that " -"the Capsule they load contains the correct C API." -msgstr "" -"La fonction de commodité :c:func:`PyCapsule_Import` permet de charger " -"facilement une API C fournie via une Capsule, mais seulement si le nom de la " -"Capsule correspond à cette convention. Ce comportement donne aux " -"utilisateurs d'API C un degré élevé de certitude que la Capsule qu'ils " -"chargent contient l'API C correcte." - -#: extending/extending.rst:964 -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: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." -msgstr "" -"L'exemple suivant montre une approche qui fait peser la plus grande partie " -"de la charge sur le rédacteur du module d'exportation, ce qui est approprié " -"pour les modules de bibliothèque couramment utilisés. Il stocke tous les " -"pointeurs de l'API C (un seul dans l'exemple !) dans un tableau de " -"pointeurs :c:expr:`void` qui devient la valeur d'une Capsule. Le fichier " -"d'en-tête correspondant au module fournit une macro qui se charge d'importer " -"le module et de récupérer ses pointeurs d'API C. Les modules clients n'ont " -"qu'à appeler cette macro avant d'accéder à l'API C." - -#: extending/extending.rst:972 -#, fuzzy -msgid "" -"The exporting module is a modification of the :mod:`!spam` module from " -"the :ref:`tutorial `. The function :func:`!" -"spam.system` does not call the C library function :c:func:`system` directly, " -"but a function :c:func:`!PySpam_System`, which would of course do something " -"more complicated in reality (such as adding \"spam\" to every command). This " -"function :c:func:`!PySpam_System` is also exported to other extension " -"modules." -msgstr "" -"Le module d'exportation est une modification du module :mod:`spam` de la " -"section :ref:`extending-simpleexample`. La fonction :func:`spam.system` " -"n'appelle pas directement la fonction de la bibliothèque C :c:func:`system`, " -"mais une fonction :c:func:`PySpam_System`, qui ferait bien sûr quelque chose " -"de plus compliqué en réalité (comme ajouter du *spam* à chaque commande). " -"Cette fonction :c:func:`PySpam_System` est également exportée vers d'autres " -"modules d'extension." - -#: extending/extending.rst:980 -#, fuzzy -msgid "" -"The function :c:func:`!PySpam_System` is a plain C function, declared " -"``static`` like everything else::" -msgstr "" -"La fonction :c:func:`PySpam_System` est une simple fonction C, déclarée " -"``static`` comme tout le reste ::" - -#: extending/extending.rst:989 -#, fuzzy -msgid "The function :c:func:`!spam_system` is modified in a trivial way::" -msgstr "La fonction :c:func:`spam_system` est modifiée de manière simple ::" - -#: extending/extending.rst:1003 -msgid "In the beginning of the module, right after the line ::" -msgstr "Au début du module, immédiatement après la ligne ::" - -#: extending/extending.rst:1007 -msgid "two more lines must be added::" -msgstr "on doit ajouter deux lignes supplémentaires ::" - -#: extending/extending.rst:1012 -#, fuzzy -msgid "" -"The ``#define`` is used to tell the header file that it is being included in " -"the exporting module, not a client module. Finally, the " -"module's :c:data:`mod_exec ` function must take care of " -"initializing the C API pointer array::" -msgstr "" -"L'indicateur ``#define`` est utilisé pour indiquer au fichier d'en-tête " -"qu'il est inclus dans le module d'exportation, et non dans un module client. " -"Enfin, la fonction d'initialisation du module doit prendre en charge " -"l'initialisation du tableau de pointeurs de l'API C ::" - -#: extending/extending.rst:1035 -#, fuzzy -msgid "" -"Note that ``PySpam_API`` is declared ``static``; otherwise the pointer array " -"would disappear when :c: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 !" - -#: extending/extending.rst:1038 -msgid "" -"The bulk of the work is in the header file :file:`spammodule.h`, which looks " -"like this::" -msgstr "" -"L'essentiel du travail se trouve dans le fichier d'en-" -"tête :file:`spammodule.h`, qui ressemble à ceci ::" - -#: extending/extending.rst:1089 -#, fuzzy -msgid "" -"All that a client module must do in order to have access to the " -"function :c:func:`!PySpam_System` is to call the function (or rather " -"macro) :c:func:`!import_spam` in its :c:data:`mod_exec ` " -"function::" -msgstr "" -"Tout ce qu'un module client doit faire pour avoir accès à la " -"fonction :c:func:`PySpam_System` est d'appeler la fonction (ou plutôt la " -"macro) :c:func:`import_spam` dans sa fonction d'initialisation ::" - -#: extending/extending.rst:1103 -msgid "" -"The main disadvantage of this approach is that the file :file:`spammodule.h` " -"is rather complicated. However, the basic structure is the same for each " -"function that is exported, so it has to be learned only once." -msgstr "" -"Le principal inconvénient de cette approche est que le " -"fichier :file:`spammodule.h` est assez compliqué. Cependant, la structure de " -"base est la même pour chaque fonction exportée, ce qui fait qu'elle ne doit " -"être apprise qu'une seule fois." - -#: extending/extending.rst:1107 -msgid "" -"Finally it should be mentioned that Capsules offer additional functionality, " -"which is especially useful for memory allocation and deallocation of the " -"pointer stored in a Capsule. The details are described in the Python/C API " -"Reference Manual in the section :ref:`capsules` and in the implementation of " -"Capsules (files :file:`Include/pycapsule.h` and :file:`Objects/pycapsule.c` " -"in the Python source code distribution)." -msgstr "" -"Enfin, il convient de mentionner que les Capsules offrent des " -"fonctionnalités supplémentaires, qui sont particulièrement utiles pour " -"l'allocation de la mémoire et la dés-allocation du pointeur stocké dans un " -"objet Capsule. Les détails sont décrits dans le manuel de référence de l'API " -"Python/C dans la section :ref:`capsules` et dans l'implémentation des " -"Capsules (fichiers :file:`Include/pycapsule.h` et :file:`Objects/" -"pycapsule.c` dans la distribution du code source Python)." - -#: extending/extending.rst:1115 -msgid "Footnotes" -msgstr "Notes" - -#: extending/extending.rst:1116 -msgid "" -"The metaphor of \"borrowing\" a reference is not completely correct: the " -"owner still has a copy of the reference." -msgstr "" -"L'expression « emprunter une référence » n'est pas tout à fait correcte, car " -"le propriétaire a toujours une copie de la référence." - -#: extending/extending.rst:1119 -msgid "" -"Checking that the reference count is at least 1 **does not work** --- the " -"reference count itself could be in freed memory and may thus be reused for " -"another object!" -msgstr "" -"Vérifier que le comptage de référence est d'au moins 1 **ne fonctionne " -"pas**, le compte de référence lui-même pourrait être en mémoire libérée et " -"peut donc être réutilisé pour un autre objet !" - -#: extending/extending.rst:1124 -msgid "" -"These guarantees don't hold when you use the \"old\" style calling " -"convention --- this is still found in much existing code." -msgstr "" -"Ces garanties ne sont pas valables lorsqu'on emploie les conventions de " -"nommage anciennes, qu'on retrouve encore assez souvent dans beaucoup de code " -"existant." - -#~ msgid "Extending Python with C or C++" -#~ msgstr "Étendre Python en C ou C++" - -#~ msgid "" -#~ "It is quite easy to add new built-in modules to Python, if you know how " -#~ "to program in C. Such :dfn:`extension modules` can do two things that " -#~ "can't be done directly in Python: they can implement new built-in object " -#~ "types, and they can call C library functions and system calls." -#~ msgstr "" -#~ "Il est relativement facile d'ajouter de nouveaux modules à Python, si " -#~ "vous savez programmer en C. Ces :dfn:`modules d'extension` permettent " -#~ "deux choses qui ne sont pas possibles directement en Python : ils peuvent " -#~ "définir de nouveaux types natifs et peuvent appeler des fonctions de " -#~ "bibliothèques C ou faire des appels systèmes." - -#~ msgid "" -#~ "To support extensions, the Python API (Application Programmers Interface) " -#~ "defines a set of functions, macros and variables that provide access to " -#~ "most aspects of the Python run-time system. The Python API is " -#~ "incorporated in a C source file by including the header ``\"Python.h\"``." -#~ msgstr "" -#~ "Pour gérer les extensions, l'API Python (*Application Programmer " -#~ "Interface*) définit un ensemble de fonctions, macros et variables qui " -#~ "donnent accès à la plupart des aspects du système d'exécution de Python. " -#~ "L'API Python est incorporée dans un fichier source C en incluant l'en-" -#~ "tête ``Python.h``." - -#~ msgid "" -#~ "The compilation of an extension module depends on its intended use as " -#~ "well as on your system setup; details are given in later chapters." -#~ msgstr "" -#~ "La compilation d'un module d'extension dépend de l'usage prévu et de la " -#~ "configuration du système, plus de détails peuvent être trouvés dans les " -#~ "chapitres suivants." - -# suit un : -#~ msgid "" -#~ "The C extension interface is specific to CPython, and extension modules " -#~ "do not work on other Python implementations. In many cases, it is " -#~ "possible to avoid writing C extensions and preserve portability to other " -#~ "implementations. For example, if your use case is calling C library " -#~ "functions or system calls, you should consider using the :mod:`ctypes` " -#~ "module or the `cffi `_ library rather than " -#~ "writing custom C code. These modules let you write Python code to " -#~ "interface with C code and are more portable between implementations of " -#~ "Python than writing and compiling a C extension module." -#~ msgstr "" -#~ "l'interface d'extension C est spécifique à *CPython*, et les modules " -#~ "d'extension ne fonctionnent pas sur les autres implémentations de Python. " -#~ "Dans de nombreux cas, il est possible d'éviter la rédaction des " -#~ "extensions en C et ainsi préserver la portabilité vers d'autres " -#~ "implémentations. Par exemple, si vous devez appeler une fonction de la " -#~ "bibliothèque C ou faire un appel système, vous devriez envisager " -#~ "d'utiliser le module :mod:`ctypes` ou d'utiliser la bibliothèque `cffi " -#~ "`_ plutôt que d'écrire du code C sur " -#~ "mesure. Ces modules vous permettent d'écrire du code Python s'interfaçant " -#~ "avec le code C et sont plus portables entre les implémentations de Python " -#~ "que l'écriture et la compilation d'une d'extension C." - -#~ msgid "A Simple Example" -#~ msgstr "Un exemple simple" - -#~ msgid "" -#~ "Let's create an extension module called ``spam`` (the favorite food of " -#~ "Monty Python fans...) and let's say we want to create a Python interface " -#~ "to the C library function :c:func:`system` [#]_. This function takes a " -#~ "null-terminated character string as argument and returns an integer. We " -#~ "want this function to be callable from Python as follows:" -#~ msgstr "" -#~ "Créons un module d'extension appelé ``spam`` (la nourriture préférée de " -#~ "fans des *Monty Python*) et disons que nous voulons créer une interface " -#~ "Python à la fonction de la bibliothèque C :c:func:`system` [#]_. Cette " -#~ "fonction prend une chaîne de caractères à terminaison nulle comme " -#~ "argument et renvoie un entier. Nous voulons que cette fonction soit " -#~ "appelable à partir de Python comme suit :" - -#~ msgid "" -#~ "Begin by creating a file :file:`spammodule.c`. (Historically, if a " -#~ "module is called ``spam``, the C file containing its implementation is " -#~ "called :file:`spammodule.c`; if the module name is very long, like " -#~ "``spammify``, the module name can be just :file:`spammify.c`.)" -#~ msgstr "" -#~ "Commençons par créer un fichier :file:`spammodule.c` (historiquement, si " -#~ "un module se nomme ``spam``, le fichier C contenant son implémentation " -#~ "est appelé :file:`spammodule.c` ; si le nom du module est très long, " -#~ "comme ``spammify``, le nom du module peut être juste :file:`spammify.c`)." - -#~ msgid "The first two lines of our file can be::" -#~ msgstr "Les deux premières lignes de notre fichier peuvent être ::" - -#~ msgid "" -#~ "which pulls in the Python API (you can add a comment describing the " -#~ "purpose of the module and a copyright notice if you like)." -#~ msgstr "" -#~ "qui récupère l'API Python (vous pouvez ajouter un commentaire décrivant " -#~ "le but du module et un avis de droit d'auteur si vous le souhaitez)." - -# suit un : -#~ msgid "" -#~ "Since Python may define some pre-processor definitions which affect the " -#~ "standard headers on some systems, you *must* include :file:`Python.h` " -#~ "before any standard headers are included." -#~ msgstr "" -#~ "il est possible que Python déclare certaines définitions pré-processeur " -#~ "qui affectent les têtes standards sur certains systèmes, vous *devez* " -#~ "donc inclure :file:`Python.h` avant les en-têtes standards." - -#~ msgid "" -#~ "The next thing we add to our module file is the C function that will be " -#~ "called when the Python expression ``spam.system(string)`` is evaluated " -#~ "(we'll see shortly how it ends up being called)::" -#~ msgstr "" -#~ "La prochaine chose que nous ajoutons à notre fichier de module est la " -#~ "fonction C qui sera appelée lorsque l'expression Python " -#~ "``spam.system(chaîne)`` sera évaluée (nous verrons bientôt comment elle " -#~ "finit par être appelée) ::" - -#~ msgid "" -#~ "There is a straightforward translation from the argument list in Python " -#~ "(for example, the single expression ``\"ls -l\"``) to the arguments " -#~ "passed to the C function. The C function always has two arguments, " -#~ "conventionally named *self* and *args*." -#~ msgstr "" -#~ "Il y a une correspondance directe de la liste des arguments en Python " -#~ "(par exemple, l'expression ``\"ls -l\"``) aux arguments passés à la " -#~ "fonction C. La fonction C a toujours deux arguments, appelés par " -#~ "convention *self* et *args*." - -#~ msgid "" -#~ "The *self* argument points to the module object for module-level " -#~ "functions; for a method it would point to the object instance." -#~ msgstr "" -#~ "Pour les fonctions au niveau du module, l'argument *self* pointe sur " -#~ "l'objet module, pour une méthode, il pointe sur l'instance de l'objet." - -#~ msgid "" -#~ "The *args* argument will be a pointer to a Python tuple object containing " -#~ "the arguments. Each item of the tuple corresponds to an argument in the " -#~ "call's argument list. The arguments are Python objects --- in order to " -#~ "do anything with them in our C function we have to convert them to C " -#~ "values. The function :c:func:`PyArg_ParseTuple` in the Python API checks " -#~ "the argument types and converts them to C values. It uses a template " -#~ "string to determine the required types of the arguments as well as the " -#~ "types of the C variables into which to store the converted values. More " -#~ "about this later." -#~ msgstr "" -#~ "L'argument *args* sera un pointeur vers un *n*-uplet Python contenant les " -#~ "arguments. Chaque élément du *n*-uplet correspond à un argument dans la " -#~ "liste des arguments de l'appel. Les arguments sont des objets Python, " -#~ "afin d'en faire quelque chose dans notre fonction C, nous devons les " -#~ "convertir en valeurs C. La fonction :c:func:`PyArg_ParseTuple` de l'API " -#~ "Python vérifie les types des arguments et les convertit en valeurs C. " -#~ "Elle utilise un modèle sous forme de chaîne pour déterminer les types " -#~ "requis des arguments ainsi que les types de variables C dans lequel " -#~ "stocker les valeurs converties. Nous approfondirons ceci plus tard." - -#~ msgid "" -#~ ":c:func:`PyArg_ParseTuple` returns true (nonzero) if all arguments have " -#~ "the right type and its components have been stored in the variables whose " -#~ "addresses are passed. It returns false (zero) if an invalid argument " -#~ "list was passed. In the latter case it also raises an appropriate " -#~ "exception so the calling function can return ``NULL`` immediately (as we " -#~ "saw in the example)." -#~ msgstr "" -#~ ":c:func:`PyArg_ParseTuple` renvoie vrai (pas zéro) si tous les arguments " -#~ "ont le bon type et que ses composants ont été stockés dans les variables " -#~ "dont les adresses ont été données en entrée. Elle renvoie faux (zéro) si " -#~ "une liste d'arguments invalide a été passée. Dans ce dernier cas, elle " -#~ "lève également une exception appropriée de sorte que la fonction d'appel " -#~ "puisse renvoyer ``NULL`` immédiatement (comme nous l'avons vu dans " -#~ "l'exemple)." - -#~ msgid "Back to the Example" -#~ msgstr "Retour vers l'exemple" - -#~ msgid "" -#~ "Going back to our example function, you should now be able to understand " -#~ "this statement::" -#~ msgstr "" -#~ "En revenant vers notre fonction exemple, vous devriez maintenant être " -#~ "capable de comprendre cette affirmation ::" - -#~ msgid "" -#~ "It returns ``NULL`` (the error indicator for functions returning object " -#~ "pointers) if an error is detected in the argument list, relying on the " -#~ "exception set by :c:func:`PyArg_ParseTuple`. Otherwise the string value " -#~ "of the argument has been copied to the local variable :c:data:`!" -#~ "command`. This is a pointer assignment and you are not supposed to " -#~ "modify the string to which it points (so in Standard C, the " -#~ "variable :c:data:`!command` should properly be declared as ``const char " -#~ "*command``)." -#~ msgstr "" -#~ "Elle renvoie ``NULL`` (l'indicateur d'erreur pour les fonctions renvoyant " -#~ "des pointeurs d'objet) si une erreur est détectée dans la liste des " -#~ "arguments, se fiant à l'exception définie par :c:func:`PyArg_ParseTuple`. " -#~ "Autrement, la valeur chaîne de l'argument a été copiée dans la variable " -#~ "locale :c:data:`!command`. Il s'agit d'une attribution de pointeur et " -#~ "vous n'êtes pas supposés modifier la chaîne vers laquelle il pointe (donc " -#~ "en C Standard, la variable :c:data:`!command` doit être clairement " -#~ "déclarée comme ``const char *command``)." - -#~ msgid "" -#~ "The next statement is a call to the Unix function :c:func:`system`, " -#~ "passing it the string we just got from :c:func:`PyArg_ParseTuple`::" -#~ msgstr "" -#~ "La prochaine instruction est un appel à la fonction " -#~ "Unix :c:func:`system`, en lui passant la chaîne que nous venons d'obtenir " -#~ "à partir de :c:func:`PyArg_ParseTuple` ::" - -#~ msgid "" -#~ "Our :func:`!spam.system` function must return the value of :c:data:`!sts` " -#~ "as a Python object. This is done using the " -#~ "function :c:func:`PyLong_FromLong`. ::" -#~ msgstr "" -#~ "Notre fonction :func:`!spam.system` doit renvoyer la valeur de :c:data:`!" -#~ "sts` comme un objet Python. Cela est effectué par l'utilisation de la " -#~ "fonction :c:func:`PyLong_FromLong`. ::" - -#~ msgid "" -#~ "In this case, it will return an integer object. (Yes, even integers are " -#~ "objects on the heap in Python!)" -#~ msgstr "" -#~ "Dans ce cas, elle renvoie un objet de type entier (oui, même les entiers " -#~ "sont des objets, stockés dans le tas, en Python !)." - -#~ msgid "" -#~ "If you have a C function that returns no useful argument (a function " -#~ "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 "" -#~ "Si vous avez une fonction C qui ne renvoie aucun argument utile (une " -#~ "fonction renvoyant :c:expr:`void`), la fonction Python correspondante " -#~ "doit renvoyer ``None``. Vous aurez besoin de cet idiome pour cela (qui " -#~ "est implémenté par la macro :c:macro:`Py_RETURN_NONE`) ::" - -#~ msgid "" -#~ ":c:data:`Py_None` is the C name for the special Python object ``None``. " -#~ "It is a genuine Python object rather than a ``NULL`` pointer, which means " -#~ "\"error\" in most contexts, as we have seen." -#~ msgstr "" -#~ ":c:data:`Py_None` est la dénomination en C pour l'objet spécial Python " -#~ "``None``. C'est un authentique objet Python plutôt qu'un pointeur " -#~ "``NULL`` qui, dans la plupart des situations, signifie qu'une erreur est " -#~ "survenue comme nous l'avons vu." - -#~ msgid "The Module's Method Table and Initialization Function" -#~ msgstr "La fonction d'initialisation et le tableau des méthodes du module" - -#, fuzzy -#~ msgid "" -#~ "I promised to show how :c:func:`!spam_system` is called from Python " -#~ "programs. First, we need to list its name and address in a \"method " -#~ "table\"::" -#~ msgstr "" -#~ "Nous avons promis de montrer comment :c:func:`spam_system` est appelée " -#~ "depuis les programmes Python. D'abord, nous avons besoin d'avoir son nom " -#~ "et son adresse dans un « tableau des méthodes » ::" - -#~ msgid "" -#~ "Note the third entry (``METH_VARARGS``). This is a flag telling the " -#~ "interpreter the calling convention to be used for the C function. It " -#~ "should normally always be ``METH_VARARGS`` or ``METH_VARARGS | " -#~ "METH_KEYWORDS``; a value of ``0`` means that an obsolete variant " -#~ "of :c:func:`PyArg_ParseTuple` is used." -#~ msgstr "" -#~ "Notez la troisième entrée (``METH_VARARGS``). C'est un indicateur du type " -#~ "de convention à utiliser pour la fonction C, à destination de " -#~ "l'interpréteur. Il doit valoir normalement ``METH_VARARGS`` ou " -#~ "``METH_VARARGS | METH_KEYWORDS`` ; la valeur ``0`` indique qu'une " -#~ "variante obsolète de :c:func:`PyArg_ParseTuple` est utilisée." - -#~ msgid "" -#~ "When using only ``METH_VARARGS``, the function should expect the Python-" -#~ "level parameters to be passed in as a tuple acceptable for parsing " -#~ "via :c:func:`PyArg_ParseTuple`; more information on this function is " -#~ "provided below." -#~ msgstr "" -#~ "Si seulement ``METH_VARARGS`` est utilisé, la fonction s'attend à ce que " -#~ "les paramètres Python soient passés comme un *n*-uplet que l'on peut " -#~ "analyser *via* :c:func:`PyArg_ParseTuple` ; des informations " -#~ "supplémentaires sont fournies plus bas." - -#~ msgid "" -#~ "The method table must be referenced in the module definition structure::" -#~ msgstr "" -#~ "Le tableau des méthodes doit être référencé dans la structure de " -#~ "définition du module ::" - -#, fuzzy -#~ msgid "" -#~ "This structure, in turn, must be passed to the interpreter in the " -#~ "module's initialization function. The initialization function must be " -#~ "named :c:func:`!PyInit_name`, where *name* is the name of the module, and " -#~ "should be the only non-\\ ``static`` item defined in the module file::" -#~ msgstr "" -#~ "Cette structure, à son tour, doit être transmise à l'interpréteur dans la " -#~ "fonction d'initialisation du module. La fonction d'initialisation doit " -#~ "être nommée :c:func:`PyInit_name`, où *nom* est le nom du module, et doit " -#~ "être le seul élément non ``static`` défini dans le fichier du module ::" - -#, fuzzy -#~ msgid "" -#~ "Note that :c:macro:`PyMODINIT_FUNC` declares the function as ``PyObject " -#~ "*`` return type, declares any special linkage declarations required by " -#~ "the platform, and for C++ declares the function as ``extern \"C\"``." -#~ msgstr "" -#~ "Notez que *PyMODINIT_FUNC* déclare la fonction comme renvoyant un objet " -#~ "de type ``PyObject *``, déclare également toute déclaration de liaison " -#~ "spéciale requise par la plate-forme et, pour le C++, déclare la fonction " -#~ "comme ``extern C``." - -#, fuzzy -#~ msgid "" -#~ "When embedding Python, the :c:func:`!PyInit_spam` function is not called " -#~ "automatically unless there's an entry in the :c:data:`!PyImport_Inittab` " -#~ "table. To add the module to the initialization table, " -#~ "use :c:func:`PyImport_AppendInittab`, optionally followed by an import of " -#~ "the module::" -#~ msgstr "" -#~ "Lors de l'intégration de Python, la fonction :c:func:`PyInit_spam` n'est " -#~ "pas appelée automatiquement, sauf s'il y a une entrée dans la " -#~ "table :c:data:`PyImport_Inittab`. Pour ajouter le module au tableau " -#~ "d'initialisation, utilisez :c:func:`PyImport_AppendInittab`, suivie " -#~ "éventuellement d'une importation du module ::" - -#, fuzzy -#~ msgid "" -#~ "A more substantial example module is included in the Python source " -#~ "distribution as :file:`Modules/xxlimited.c`. This file may be used as a " -#~ "template or simply read as an example." -#~ msgstr "" -#~ "Un exemple de module plus substantiel est inclus dans la distribution des " -#~ "sources Python sous le nom :file:`Modules/xxmodule.c`. Ce fichier peut " -#~ "être utilisé comme modèle ou simplement lu comme exemple." - -#~ msgid "Compilation and Linkage" -#~ msgstr "Compilation et liaison" - -#~ msgid "" -#~ "There are two more things to do before you can use your new extension: " -#~ "compiling and linking it with the Python system. If you use dynamic " -#~ "loading, the details may depend on the style of dynamic loading your " -#~ "system uses; see the chapters about building extension modules " -#~ "(chapter :ref:`building`) and additional information that pertains only " -#~ "to building on Windows (chapter :ref:`building-on-windows`) for more " -#~ "information about this." -#~ msgstr "" -#~ "Il y a encore deux choses à faire avant de pouvoir utiliser votre " -#~ "nouvelle extension : la compiler et la lier au système Python. Si vous " -#~ "utilisez le chargement dynamique, les détails peuvent dépendre du style " -#~ "de chargement dynamique utilisé par votre système ; voir les chapitres " -#~ "sur la compilation de modules d'extension (chapitre :ref:`building`) et " -#~ "les informations supplémentaires concernant uniquement la construction " -#~ "sous Windows (chapitre :ref:`building-on-windows`) pour plus " -#~ "d'informations à ce sujet." - -#~ msgid "" -#~ "An interface for this function already exists in the standard " -#~ "module :mod:`os` --- it was chosen as a simple and straightforward " -#~ "example." -#~ msgstr "" -#~ "Une interface pour cette fonction existe déjà dans le module " -#~ "standard :mod:`os`, elle a été choisie comme un exemple simple et direct." - -#~ 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 ````. 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 standards. Pour le " -#~ "confort, et comme ils sont largement utilisés par l'interpréteur Python, " -#~ "``\"Python.h\"`` inclut lui-même quelques en-têtes standards : " -#~ "````, ````, ```` 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." - -#, fuzzy -#~ msgid "" -#~ "and initialize it in your module's initialization function (:c:func:`!" -#~ "PyInit_spam`) with an exception object::" -#~ msgstr "" -#~ "et initialisez-la dans la fonction d'initialisation de votre module " -#~ "(:c:func:`PyInit_spam`) avec un objet exception ::" - -#, fuzzy -#~ msgid "" -#~ "When the Python program imports module :mod:`!spam` for the first " -#~ "time, :c:func:`!PyInit_spam` is called. (See below for comments about " -#~ "embedding Python.) It calls :c:func:`PyModule_Create`, which returns a " -#~ "module object, and inserts built-in function objects into the newly " -#~ "created module based upon the table (an array of :c:type:`PyMethodDef` " -#~ "structures) found in the module definition. :c:func:`PyModule_Create` " -#~ "returns a pointer to the module object that it creates. It may abort " -#~ "with a fatal error for certain errors, or return ``NULL`` if the module " -#~ "could not be initialized satisfactorily. The init function must return " -#~ "the module object to its caller, so that it then gets inserted into " -#~ "``sys.modules``." -#~ msgstr "" -#~ "Lorsque le programme Python importe le module :mod:`spam` pour la " -#~ "première fois, :c:func:`PyInit_spam` est appelée (voir ci-dessous pour " -#~ "les commentaires sur l'intégration en Python). Elle " -#~ "appelle :c:func:`PyModule_Create`, qui renvoie un objet module et insère " -#~ "des objets fonction intégrés dans le module nouvellement créé en se " -#~ "basant sur le tableau (un tableau de structures :c:type:`PyMethodDef`) " -#~ "trouvée dans la définition du module. :c:func:`PyModule_Create` renvoie " -#~ "un pointeur vers l'objet module qu'il crée. Elle peut s'interrompre avec " -#~ "une erreur fatale pour certaines erreurs, ou renvoyer ``NULL`` si le " -#~ "module n'a pas pu être initialisé de manière satisfaisante. La fonction " -#~ "*init* doit renvoyer l'objet module à son appelant, afin qu'il soit " -#~ "ensuite inséré dans ``sys.modules``." - -# suit un : -#~ msgid "" -#~ "Removing entries from ``sys.modules`` or importing compiled modules into " -#~ "multiple interpreters within a process (or following a :c:func:`fork` " -#~ "without an intervening :c:func:`exec`) can create problems for some " -#~ "extension modules. Extension module authors should exercise caution when " -#~ "initializing internal data structures." -#~ msgstr "" -#~ "supprimer des entrées de ``sys.modules`` ou importer des modules compilés " -#~ "dans plusieurs interpréteurs au sein d'un même processus (ou le faire à " -#~ "la suite d'un :c:func:`fork` sans un :c:func:`exec` préalable) peut créer " -#~ "des problèmes pour certains modules d'extension. Les auteurs de modules " -#~ "d'extension doivent faire preuve de prudence lorsqu'ils initialisent des " -#~ "structures de données internes." - -# suit un : -#~ msgid "" -#~ "Unlike our ``spam`` example, ``xxmodule`` uses *multi-phase " -#~ "initialization* (new in Python 3.5), where a PyModuleDef structure is " -#~ "returned from ``PyInit_spam``, and creation of the module is left to the " -#~ "import machinery. For details on multi-phase initialization, " -#~ "see :PEP:`489`." -#~ msgstr "" -#~ "contrairement à notre exemple de ``spam``, ``xxmodule`` utilise une " -#~ "*initialisation multi-phases* (nouveau en Python 3.5), où une structure " -#~ "*PyModuleDef* est renvoyée à partir de ``PyInit_spam``, et la création du " -#~ "module est laissée au mécanisme d'importation. Pour plus de détails sur " -#~ "l'initialisation multi-phases, voir :PEP:`489`." - -#, fuzzy -#~ msgid "PyObject_CallObject (C function)" -#~ msgstr "PyObject_CallObject()" - -#, fuzzy -#~ msgid "PyArg_ParseTuple (C function)" -#~ msgstr "PyArg_ParseTuple()" - -#, fuzzy -#~ msgid "PyArg_ParseTupleAndKeywords (C function)" -#~ msgstr "PyArg_ParseTupleAndKeywords()" - -#~ msgid "Philbrick, Geoff" -#~ msgstr "Philbrick, Geoff" - -#~ msgid "" -#~ "It is recommended to always define ``PY_SSIZE_T_CLEAN`` before including " -#~ "``Python.h``. See :ref:`parsetuple` for a description of this macro." -#~ msgstr "" -#~ "Il est recommandé de toujours définir ``PY_SSIZE_T_CLEAN`` avant " -#~ "d'inclure ``Python.h``. Lisez :ref:`parsetuple` pour avoir une " -#~ "description de cette macro." diff --git a/extending/first-extension-module.po b/extending/first-extension-module.po deleted file mode 100644 index 3fef01c153..0000000000 --- a/extending/first-extension-module.po +++ /dev/null @@ -1,727 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: extending/first-extension-module.rst:9 -msgid "Your first C API extension module" -msgstr "" - -#: extending/first-extension-module.rst:11 -msgid "" -"This tutorial will take you through creating a simple Python extension " -"module written in C or C++." -msgstr "" - -#: extending/first-extension-module.rst:14 -msgid "" -"We will use the low-level Python C API directly. For easier ways to create " -"extension modules, see the :ref:`recommended third party tools `." -msgstr "" - -#: extending/first-extension-module.rst:18 -msgid "" -"The tutorial assumes basic knowledge about Python: you should be able to " -"define functions in Python code before starting to write them in C. " -"See :ref:`tutorial-index` for an introduction to Python itself." -msgstr "" - -#: extending/first-extension-module.rst:22 -msgid "" -"The tutorial should be approachable for anyone who can write a basic C " -"library. While we will mention several concepts that a C beginner would not " -"be expected to know, like ``static`` functions or linkage declarations, " -"understanding these is not necessary for success." -msgstr "" - -#: extending/first-extension-module.rst:27 -msgid "" -"We will focus on giving you a \"feel\" of what Python's C API is like. It " -"will not teach you important concepts, like error handling and reference " -"counting, which are covered in later chapters." -msgstr "" - -#: extending/first-extension-module.rst:31 -msgid "" -"We will assume that you use a Unix-like system (including macOS and Linux), " -"or Windows. On other systems, you might need to adjust some details -- for " -"example, a system command name." -msgstr "" - -#: extending/first-extension-module.rst:36 -msgid "" -"You need to have a suitable C compiler and Python development headers " -"installed. On Linux, headers are often in a package like ``python3-dev`` or " -"``python3-devel``." -msgstr "" - -#: extending/first-extension-module.rst:40 -msgid "" -"You need to be able to install Python packages. This tutorial uses `pip " -"`__ (``pip install``), but you can substitute any tool " -"that can build and install ``pyproject.toml``-based projects, like `uv " -"`_ (``uv pip install``). Preferably, have " -"a :ref:`virtual environment ` activated." -msgstr "" - -#: extending/first-extension-module.rst:49 -msgid "" -"This tutorial uses APIs that were added in CPython 3.15. To create an " -"extension that's compatible with earlier versions of CPython, please follow " -"an earlier version of this documentation." -msgstr "" - -#: extending/first-extension-module.rst:53 -msgid "" -"This tutorial uses C syntax added in C11 and C++20. If your extension needs " -"to be compatible with earlier standards, please follow tutorials in " -"documentation for Python 3.14 or below." -msgstr "" - -#: extending/first-extension-module.rst:59 -msgid "What we'll do" -msgstr "" - -#: extending/first-extension-module.rst:61 -msgid "" -"Let's create an extension module called ``spam`` [#why-spam]_, which will " -"include a Python interface to the C standard library " -"function :c:func:`system`. This function is defined in ``stdlib.h``. It " -"takes a C string as argument, runs the argument as a system command, and " -"returns a result value as an integer. A manual page for :c:func:`system` " -"might summarize it this way::" -msgstr "" - -#: extending/first-extension-module.rst:72 -msgid "" -"Note that like many functions in the C standard library, this function is " -"already exposed in Python. In production, use :py:func:`os.system` " -"or :py:func:`subprocess.run` rather than the module you'll write here." -msgstr "" - -#: extending/first-extension-module.rst:77 -msgid "We want this function to be callable from Python as follows:" -msgstr "" - -#: extending/first-extension-module.rst:89 -msgid "" -"The system command ``whoami`` prints out your username. It's useful in " -"tutorials like this one because it has the same name on both Unix and " -"Windows." -msgstr "" - -#: extending/first-extension-module.rst:95 -msgid "Start with the headers" -msgstr "" - -#: extending/first-extension-module.rst:97 -msgid "" -"Begin by creating a directory for this tutorial, and switching to it on the " -"command line. Then, create a file named :file:`spammodule.c` in your " -"directory. [#why-spammodule]_" -msgstr "" - -#: extending/first-extension-module.rst:102 -msgid "" -"In this file, we'll include two headers: :file:`Python.h` to pull in all " -"declarations of the Python C API, and :file:`stdlib.h` for " -"the :c:func:`system` function. [#stdlib-h]_" -msgstr "" - -#: extending/first-extension-module.rst:106 -msgid "Add the following lines to :file:`spammodule.c`:" -msgstr "" - -#: extending/first-extension-module.rst:112 -msgid "" -"Be sure to put :file:`stdlib.h`, and any other standard library includes, " -"*after* :file:`Python.h`. On some systems, Python may define some pre-" -"processor definitions that affect the standard headers." -msgstr "" - -#: extending/first-extension-module.rst:119 -msgid "Running your build tool" -msgstr "" - -#: extending/first-extension-module.rst:121 -msgid "" -"With only the includes in place, your extension won't do anything. Still, " -"it's a good time to compile it and try to import it. This will ensure that " -"your build tool works, so that you can make and test incremental changes as " -"you follow the rest of the text." -msgstr "" - -#: extending/first-extension-module.rst:126 -msgid "" -"CPython itself does not come with a tool to build extension modules; it is " -"recommended to use a third-party project for this. In this tutorial, we'll " -"use `meson-python`_. (If you want to use another one, see :ref:`first-" -"extension-other-tools`.)" -msgstr "" - -#: extending/first-extension-module.rst:135 -msgid "``meson-python`` requires defining a \"project\" using two extra files." -msgstr "" - -#: extending/first-extension-module.rst:137 -msgid "First, add ``pyproject.toml`` with these contents:" -msgstr "" - -#: extending/first-extension-module.rst:151 -msgid "Then, create ``meson.build`` containing the following:" -msgstr "" - -#: extending/first-extension-module.rst:167 -msgid "" -"See the `meson-python documentation `_ for details on " -"configuration." -msgstr "" - -#: extending/first-extension-module.rst:170 -msgid "" -"Now, build install the *project in the current directory* (``.``) via " -"``pip``:" -msgstr "" - -#: extending/first-extension-module.rst:176 -msgid "" -"The ``-v`` (``--verbose``) option causes ``pip`` to show the output from the " -"compiler, which is often useful during development." -msgstr "" - -#: extending/first-extension-module.rst:181 -msgid "" -"If you don't have ``pip`` installed, run ``python -m ensurepip``, preferably " -"in a :ref:`virtual environment `. (Or, if you prefer another tool " -"that can build and install ``pyproject.toml``-based projects, use that.)" -msgstr "" - -#: extending/first-extension-module.rst:189 -msgid "" -"Note that you will need to run this command again every time you change your " -"extension. Unlike Python, C has an explicit compilation step." -msgstr "" - -#: extending/first-extension-module.rst:193 -msgid "" -"When your extension is compiled and installed, start Python and try to " -"import it. This should fail with the following exception:" -msgstr "" - -#: extending/first-extension-module.rst:206 -msgid "Module export hook" -msgstr "" - -#: extending/first-extension-module.rst:208 -msgid "" -"The exception you got when you tried to import the module told you that " -"Python is looking for a \"module export function\", also known as " -"a :ref:`module export hook `. Let's define one." -msgstr "" - -#: extending/first-extension-module.rst:213 -msgid "First, add a prototype below the ``#include`` lines:" -msgstr "" - -#: extending/first-extension-module.rst:220 -msgid "" -"The prototype is not strictly necessary, but some modern compilers emit " -"warnings without it. It's generally better to add the prototype than to " -"disable the warning." -msgstr "" - -#: extending/first-extension-module.rst:224 -msgid "" -"The :c:macro:`PyMODEXPORT_FUNC` macro declares the function's return type, " -"and adds any special linkage declarations needed to make the function " -"visible and usable when CPython loads it." -msgstr "" - -#: extending/first-extension-module.rst:228 -msgid "" -"After the prototype, add the function itself. For now, make it return " -"``NULL``:" -msgstr "" - -#: extending/first-extension-module.rst:239 -msgid "" -"Compile and load the module again. You should get a different error this " -"time." -msgstr "" - -#: extending/first-extension-module.rst:249 -msgid "" -"Simply returning ``NULL`` is *not* correct behavior for an export hook, and " -"CPython complains about it. That's good -- it means that CPython found the " -"function! Let's now make it do something useful." -msgstr "" - -#: extending/first-extension-module.rst:256 -msgid "The slot table" -msgstr "" - -#: extending/first-extension-module.rst:258 -msgid "" -"Rather than ``NULL``, the export hook should return the information needed " -"to create a module. Let's start with the basics: the name and docstring." -msgstr "" - -#: extending/first-extension-module.rst:262 -msgid "" -"The information should be defined in an array of :c:type:`PySlot` entries, " -"which are essentially key-value pairs. Define this array just before your " -"export hook:" -msgstr "" - -#: extending/first-extension-module.rst:277 -msgid "" -"The :c:macro:`PySlot_STATIC_DATA` macro is used when the slot value (here: " -"``&abi_info``, ``\"spam\"``, and the docstring) is a pointer to constant, " -"statically allocated data." -msgstr "" - -#: extending/first-extension-module.rst:281 -msgid "" -"The ``PyABIInfo_VAR(abi_info);`` macro and the :c:data:`Py_mod_abi` slot are " -"a bit of boilerplate that helps prevent extensions compiled for a different " -"version of Python from crashing the interpreter." -msgstr "" - -#: extending/first-extension-module.rst:285 -msgid "" -"For both :c:data:`Py_mod_name` and :c:data:`Py_mod_doc`, the values are C " -"strings -- that is, NUL-terminated, UTF-8 encoded byte arrays." -msgstr "" - -#: extending/first-extension-module.rst:288 -msgid "" -"Note ``PySlot_END`` sentinel entry at the end. This marks the end of the " -"array. If you forget it, you'll trigger undefined behavior." -msgstr "" - -#: extending/first-extension-module.rst:292 -msgid "" -"The array is defined as ``static`` -- that is, not visible outside this " -"``.c`` file. This will be a common theme. CPython only needs to access the " -"export hook; all global variables and all other functions should generally " -"be ``static``, so that they don't clash with other extensions." -msgstr "" - -#: extending/first-extension-module.rst:298 -msgid "Return this array from your export hook instead of ``NULL``:" -msgstr "" - -#: extending/first-extension-module.rst:309 -msgid "Now, recompile and try it out:" -msgstr "" - -#: extending/first-extension-module.rst:317 -msgid "You have an extension module! Try ``help(spam)`` to see the docstring." -msgstr "" - -#: extending/first-extension-module.rst:320 -msgid "The next step will be adding a function." -msgstr "" - -#: extending/first-extension-module.rst:326 -msgid "Exposing a function" -msgstr "" - -#: extending/first-extension-module.rst:328 -msgid "" -"To expose the :c:func:`system` C function directly to Python, we'll need to " -"write a layer of glue code to convert arguments from Python objects to C " -"values, and the C return value back to Python." -msgstr "" - -#: extending/first-extension-module.rst:332 -msgid "" -"One of the simplest ways to write glue code is a \":c:data:`METH_O`\" " -"function, which takes two Python objects and returns one. All Python objects " -"-- regardless of the Python type -- are represented in C as pointers to " -"the :c:type:`PyObject` structure." -msgstr "" - -#: extending/first-extension-module.rst:337 -msgid "Add such a function above the slots array::" -msgstr "" - -#: extending/first-extension-module.rst:345 -msgid "" -"For now, we ignore the arguments, and use the :c:macro:`Py_RETURN_NONE` " -"macro, which expands to a ``return`` statement that properly returns a " -"Python :py:data:`None` object." -msgstr "" - -#: extending/first-extension-module.rst:349 -msgid "" -"Recompile your extension to make sure you don't have syntax errors. We " -"haven't yet added ``spam_system`` to the module, so you might get a warning " -"that ``spam_system`` is unused." -msgstr "" - -#: extending/first-extension-module.rst:356 -msgid "Method definitions" -msgstr "" - -#: extending/first-extension-module.rst:358 -msgid "" -"To expose the C function to Python, you will need to provide several pieces " -"of information in a structure called :c:type:`PyMethodDef` [#why-" -"pymethoddef]_:" -msgstr "" - -#: extending/first-extension-module.rst:362 -msgid "``ml_name``: the name of the Python function;" -msgstr "" - -#: extending/first-extension-module.rst:363 -msgid "``ml_doc``: a docstring;" -msgstr "" - -#: extending/first-extension-module.rst:364 -msgid "``ml_meth``: the C function to be called; and" -msgstr "" - -#: extending/first-extension-module.rst:365 -msgid "" -"``ml_flags``: a set of flags describing details like how Python arguments " -"are passed to the C function. We'll use :c:data:`METH_O` here -- the flag " -"that matches our ``spam_system`` function's signature." -msgstr "" - -#: extending/first-extension-module.rst:370 -msgid "" -"Because modules typically create several functions, these definitions need " -"to be collected in an array, with a zero-filled sentinel at the end. Add " -"this array just below the ``spam_system`` function:" -msgstr "" - -#: extending/first-extension-module.rst:378 -msgid "" -"As with module slots, a zero-filled sentinel marks the end of the array." -msgstr "" - -#: extending/first-extension-module.rst:380 -msgid "" -"Next, we'll add the method to the module. Add a :c:data:`Py_mod_methods` " -"slot to your :c:type:`PyMethodDef` array:" -msgstr "" - -#: extending/first-extension-module.rst:388 -msgid "" -"Recompile your extension again, and test it. Be sure to restart the Python " -"interpreter, so that ``import spam`` picks up the new version of the module." -msgstr "" - -#: extending/first-extension-module.rst:392 -msgid "You should now be able to call the function:" -msgstr "" - -#: extending/first-extension-module.rst:402 -msgid "" -"Note that our ``spam.system`` does not yet run the ``whoami`` command; it " -"only returns ``None``." -msgstr "" - -#: extending/first-extension-module.rst:405 -msgid "" -"Check that the function accepts exactly one argument, as specified by " -"the :c:data:`METH_O` flag:" -msgstr "" - -#: extending/first-extension-module.rst:417 -msgid "Returning an integer" -msgstr "" - -#: extending/first-extension-module.rst:419 -msgid "" -"Now, let's take a look at the return value. Instead of ``None``, we'll want " -"``spam.system`` to return a number -- that is, a Python :py:type:`int` " -"object. Eventually this will be the exit code of a system command, but let's " -"start with a fixed value, say, ``3``." -msgstr "" - -#: extending/first-extension-module.rst:425 -msgid "" -"The Python C API provides a function to create a Python :py:type:`int` " -"object from a C ``int`` value: :c:func:`PyLong_FromLong`. [#why-" -"pylongfromlong]_" -msgstr "" - -#: extending/first-extension-module.rst:428 -msgid "To call it, replace the ``Py_RETURN_NONE`` with the following 3 lines:" -msgstr "" - -#: extending/first-extension-module.rst:444 -msgid "" -"Recompile, restart the Python interpreter again, and check that the function " -"now returns 3:" -msgstr "" - -#: extending/first-extension-module.rst:455 -msgid "Accepting a string" -msgstr "" - -#: extending/first-extension-module.rst:457 -msgid "Finally, let's handle the function argument." -msgstr "" - -#: extending/first-extension-module.rst:459 -msgid "" -"Our C function, :c:func:`!spam_system`, takes two arguments. The first one, " -"``PyObject *self``, will be set to the ``spam`` module object. This isn't " -"useful in our case, so we'll ignore it." -msgstr "" - -#: extending/first-extension-module.rst:464 -msgid "" -"The other one, ``PyObject *arg``, will be set to the object that the user " -"passed from Python. We expect that it should be a Python string. In order to " -"use the information in it, we will need to convert it to a C value -- in " -"this case, a C string (``const char *``)." -msgstr "" - -#: extending/first-extension-module.rst:470 -msgid "" -"There's a slight type mismatch here: Python's :py:class:`str` objects store " -"Unicode text, but C strings are arrays of bytes. So, we'll need to *encode* " -"the data, and we'll use the UTF-8 encoding for it. (UTF-8 might not always " -"be correct for system commands, but it's what :py:meth:`str.encode` uses by " -"default, and the C API has special support for it.)" -msgstr "" - -#: extending/first-extension-module.rst:477 -msgid "" -"The function to encode a Python string into a UTF-8 buffer is " -"named :c:func:`PyUnicode_AsUTF8AndSize` [#why-pyunicodeasutf8]_. Call it " -"like this:" -msgstr "" - -#: extending/first-extension-module.rst:493 -msgid "" -"If :c:func:`PyUnicode_AsUTF8AndSize` is successful, *command* will point to " -"the resulting C string -- a zero-terminated array of bytes [#embedded-nul]_. " -"This buffer is managed by the *arg* object, which means we don't need to " -"free it, but we must follow some rules:" -msgstr "" - -#: extending/first-extension-module.rst:498 -msgid "" -"We should only use the buffer inside the ``spam_system`` function. After " -"``spam_system`` returns, *arg* and the buffer it manages might be garbage-" -"collected." -msgstr "" - -#: extending/first-extension-module.rst:501 -msgid "We must not modify it. This is why we use ``const``." -msgstr "" - -#: extending/first-extension-module.rst:503 -msgid "" -"If :c:func:`PyUnicode_AsUTF8AndSize` was *not* successful, it returns a " -"``NULL`` pointer. When calling *any* Python C API, we always need to handle " -"such error cases. The way to do this in general is left for later chapters " -"of this documentation. For now, be assured that we are already handling " -"errors from :c:func:`PyLong_FromLong` correctly." -msgstr "" - -#: extending/first-extension-module.rst:510 -msgid "" -"For the :c:func:`PyUnicode_AsUTF8AndSize` call, the correct way to handle " -"errors is returning ``NULL`` from ``spam_system``. Add an ``if`` block for " -"this:" -msgstr "" - -#: extending/first-extension-module.rst:530 -msgid "" -"To test that error handling works, compile again, restart Python so that " -"``import spam`` picks up the new version of your module, and try passing a " -"non-string value to your function:" -msgstr "" - -#: extending/first-extension-module.rst:542 -msgid "" -"Now, all that is left is calling the C library function :c:func:`system` " -"with the ``char *`` buffer, and using its result instead of the ``3``:" -msgstr "" - -#: extending/first-extension-module.rst:560 -msgid "" -"Compile your module, restart Python, and test. This time, you should see " -"your username -- the output of the ``whoami`` system command:" -msgstr "" - -#: extending/first-extension-module.rst:572 -msgid "" -"You can also test with other commands, like ``ls``, ``dir``, or one that " -"doesn't exist:" -msgstr "" - -#: extending/first-extension-module.rst:585 -msgid "The result" -msgstr "" - -#: extending/first-extension-module.rst:588 -msgid "" -"Congratulations! You have written a complete Python C API extension module, " -"and completed this tutorial!" -msgstr "" - -#: extending/first-extension-module.rst:592 -msgid "Here is the entire source file, for your convenience:" -msgstr "" - -#: extending/first-extension-module.rst:603 -msgid "Appendix: Other build tools" -msgstr "" - -#: extending/first-extension-module.rst:605 -msgid "" -"You should be able to follow this tutorial -- except the *Running your build " -"tool* section itself -- with a build tool other than ``meson-python``." -msgstr "" - -#: extending/first-extension-module.rst:609 -msgid "" -"The Python Packaging User Guide has a `list of recommended tools `_; be sure to choose one for the C language." -msgstr "" - -#: extending/first-extension-module.rst:614 -msgid "Workaround for missing PyInit function" -msgstr "" - -#: extending/first-extension-module.rst:616 -msgid "" -"If your build tool output complains about missing ``PyInit_spam``, add the " -"following function to your module for now:" -msgstr "" - -#: extending/first-extension-module.rst:624 -msgid "" -"This is a shim for an old-style :ref:`initialization function `, which was required in extension modules for CPython 3.14 and " -"below. Current CPython does not need it, but some build tools may still " -"assume that all extension modules need to define it." -msgstr "" - -#: extending/first-extension-module.rst:629 -msgid "" -"If you use this workaround, you will get the exception ``SystemError: " -"initialization of spam failed without raising an exception`` instead of " -"``ImportError: dynamic module does not define module export function``." -msgstr "" - -#: extending/first-extension-module.rst:636 -msgid "Compiling directly" -msgstr "" - -#: extending/first-extension-module.rst:638 -msgid "" -"Using a third-party build tool is heavily recommended, as it will take care " -"of various details of your platform and Python installation, of naming the " -"resulting extension, and, later, of distributing your work." -msgstr "" - -#: extending/first-extension-module.rst:643 -msgid "" -"If you are building an extension for as *specific* system, or for yourself " -"only, you might instead want to run your compiler directly. The way to do " -"this is system-specific; be prepared for issues you will need to solve " -"yourself." -msgstr "" - -#: extending/first-extension-module.rst:649 -msgid "Linux" -msgstr "" - -#: extending/first-extension-module.rst:651 -msgid "" -"On Linux, the Python development package may include a ``python3-config`` " -"command that prints out the required compiler flags. If you use it, check " -"that it corresponds to the CPython interpreter you'll use to load the " -"module. Then, start with the following command:" -msgstr "" - -#: extending/first-extension-module.rst:661 -msgid "" -"This should generate a ``spam.so`` file that you need to put in a directory " -"on :py:attr:`sys.path`." -msgstr "" - -#: extending/first-extension-module.rst:666 -msgid "Footnotes" -msgstr "" - -#: extending/first-extension-module.rst:667 -msgid "``spam`` is the favorite food of Monty Python fans..." -msgstr "" - -#: extending/first-extension-module.rst:668 -msgid "" -"The source file name is entirely up to you, though some tools can be picky " -"about the ``.c`` extension. This tutorial uses the traditional ``*module.c`` " -"suffix. Some people would just use :file:`spam.c` to implement a module " -"named ``spam``, projects where Python isn't the primary language might use " -"``py_spam.c``, and so on." -msgstr "" - -#: extending/first-extension-module.rst:675 -msgid "" -"Including :file:`stdlib.h` is technically not necessary, " -"since :file:`Python.h` includes it and :ref:`several other standard headers " -"` for its own use or for backwards compatibility. " -"However, it is good practice to explicitly include what you need." -msgstr "" - -#: extending/first-extension-module.rst:680 -msgid "" -"The :c:type:`!PyMethodDef` structure is also used to create methods of " -"classes, so there's no separate \":c:type:`!PyFunctionDef`\"." -msgstr "" - -#: extending/first-extension-module.rst:683 -msgid "" -"The name :c:func:`PyLong_FromLong` might not seem obvious. ``PyLong`` refers " -"to a the Python :py:class:`int`, which was originally called ``long``; the " -"``FromLong`` refers to the C ``long`` (or ``long int``) type." -msgstr "" - -#: extending/first-extension-module.rst:688 -msgid "" -"Here, ``PyUnicode`` refers to the original name of the " -"Python :py:class:`str` class: ``unicode``." -msgstr "" - -#: extending/first-extension-module.rst:691 -msgid "" -"The ``AndSize`` part of the name refers to the fact that this function can " -"also retrieve the size of the buffer, using an output argument. We don't " -"need this, so we set the second argument to NULL." -msgstr "" - -#: extending/first-extension-module.rst:694 -msgid "" -"We're ignoring the fact that Python strings can also contain NUL bytes, " -"which terminate a C string. In other words, our function will treat " -"``spam.system(\"foo\\0bar\")`` as ``spam.system(\"foo\")``. This possibility " -"can lead to security issues, so the real ``os.system`` function size checks " -"for this case and raises an error." -msgstr "" diff --git a/extending/index.po b/extending/index.po deleted file mode 100644 index 44e1293d40..0000000000 --- a/extending/index.po +++ /dev/null @@ -1,207 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-07-04 11:38+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.4\n" - -#: extending/index.rst:5 -msgid "Extending and Embedding the Python Interpreter" -msgstr "Extension et intégration de l'interpréteur Python" - -#: extending/index.rst:7 -#, fuzzy -msgid "" -"This document describes how to write modules in C or C++ to extend the " -"Python interpreter with new modules. Those modules can do what Python code " -"does -- define functions, object types and methods -- but also interact with " -"native libraries or achieve better performance by avoiding the overhead of " -"an interpreter. The document also describes how to embed the Python " -"interpreter in another application, for use as an extension language. " -"Finally, it shows how to compile and link extension modules so that they can " -"be loaded dynamically (at run time) into the interpreter, if the underlying " -"operating system supports this feature." -msgstr "" -"Ce document décrit comment écrire des modules en C ou C++ pour étendre " -"l'interpréteur Python à de nouveaux modules. En plus de définir de nouvelles " -"fonctions, ces modules peuvent définir de nouveaux types d'objets ainsi que " -"leur méthodes. Ce document explique aussi comment intégrer l'interpréteur " -"Python dans une autre application, pour être utilisé comme langage " -"d'extension. Enfin, ce document montre comment compiler et lier les modules " -"d'extension pour qu'ils puissent être chargés dynamiquement (à l'exécution) " -"dans l'interpréteur, si le système d'exploitation sous-jacent supporte cette " -"fonctionnalité." - -#: extending/index.rst:17 -#, fuzzy -msgid "" -"This document assumes basic knowledge about C and Python. For an informal " -"introduction to Python, see :ref:`tutorial-index`. :ref:`reference-index` " -"gives a more formal definition of the language. :ref:`library-index` " -"documents the existing object types, functions and modules (both built-in " -"and written in Python) that give the language its wide application range." -msgstr "" -"Ce document présuppose que vous avez des connaissances de base sur Python. " -"Pour une introduction informelle du langage, voyez :ref:`tutorial-" -"index`. :ref:`reference-index` donne une définition plus formelle du " -"langage. :ref:`library-index` documente les objets types, fonctions et " -"modules existants (tous intégrés et écrits en Python) qui donnent au langage " -"sa large gamme d'applications." - -#: extending/index.rst:23 -msgid "" -"For a detailed description of the whole Python/C API, see the " -"separate :ref:`c-api-index`." -msgstr "" -"Pour une description dans sa totalité de l'API Python/C, voir :ref:`c-api-" -"index`." - -#: extending/index.rst:26 -msgid "" -"To support extensions, Python's C API (Application Programmers Interface) " -"defines a set of functions, macros and variables that provide access to most " -"aspects of the Python run-time system. The Python API is incorporated in a " -"C source file by including the header ``\"Python.h\"``." -msgstr "" - -#: extending/index.rst:33 -msgid "" -"The C extension interface is specific to CPython, and extension modules do " -"not work on other Python implementations. In many cases, it is possible to " -"avoid writing C extensions and preserve portability to other " -"implementations. For example, if your use case is calling C library " -"functions or system calls, you should consider using the :mod:`ctypes` " -"module or the `cffi `_ library rather than " -"writing custom C code. These modules let you write Python code to interface " -"with C code and are more portable between implementations of Python than " -"writing and compiling a C extension module." -msgstr "" - -#: extending/index.rst:58 -msgid "Recommended third party tools" -msgstr "Les outils tiers recommandés" - -#: extending/index.rst:60 -#, fuzzy -msgid "" -"This document only covers the basic tools for creating extensions provided " -"as part of this version of CPython. Some :ref:`third party tools ` offer both simpler and more sophisticated approaches to creating C " -"and C++ extensions for Python." -msgstr "" -"Ce guide ne couvre que les outils basiques permettant de créer des " -"extensions fournies dans cette version de CPython. Les outils tiers tels que " -"`Cython `_, `cffi `_, `SWIG " -"`_ et `Numba `_ offrent des " -"approches plus simples et plus élaborées pour créer des extensions C et C++ " -"pour Python." - -#: extending/index.rst:65 -msgid "" -"While this document is aimed at extension authors, it should also be helpful " -"to the authors of such tools. For example, the tutorial module can serve as " -"a simple test case for a build tool or sample expected output of a code " -"generator." -msgstr "" - -#: extending/index.rst:72 -msgid "C API Tutorial" -msgstr "" - -#: extending/index.rst:74 -msgid "" -"This tutorial describes how to write a simple module in C or C++, using the " -"Python C API -- that is, using the basic tools provided as part of this " -"version of CPython." -msgstr "" - -#: extending/index.rst:79 -msgid ":ref:`first-extension-module`" -msgstr "" - -#: extending/index.rst:83 -msgid "Guides for intermediate topics" -msgstr "" - -#: extending/index.rst:85 -msgid "" -"This section of the guide covers creating C and C++ extensions without " -"assistance from third party tools. It is intended primarily for creators of " -"those tools, rather than being a recommended way to create your own C " -"extensions." -msgstr "" -"Cette section du guide couvre la création d'extensions C et C++ sans " -"l'utilisation d'outils tiers. Cette section est destinée aux créateurs de " -"ces outils, plus que d'être une méthode recommandée pour créer votre propre " -"extension C." - -#: extending/index.rst:90 -msgid ":ref:`extending-intro`" -msgstr "" - -#: extending/index.rst:91 -msgid ":ref:`defining-new-types`" -msgstr "" - -#: extending/index.rst:92 -msgid ":ref:`new-types-topics`" -msgstr "" - -#: extending/index.rst:93 -msgid ":ref:`building`" -msgstr "" - -#: extending/index.rst:94 -msgid ":ref:`building-on-windows`" -msgstr "" - -#: extending/index.rst:97 -msgid "Embedding the CPython runtime in a larger application" -msgstr "Intégrer l'interpréteur CPython dans une plus grande application" - -#: extending/index.rst:99 -msgid "" -"Sometimes, rather than creating an extension that runs inside the Python " -"interpreter as the main application, it is desirable to instead embed the " -"CPython runtime inside a larger application. This section covers some of the " -"details involved in doing that successfully." -msgstr "" -"Parfois, plutôt que de créer une extension qui s'exécute dans l'interpréteur " -"Python comme application principale, il est préférable d'intégrer " -"l'interpréteur Python dans une application plus large. Cette section donne " -"quelques informations nécessaires au succès de cette opération." - -#: extending/index.rst:104 -msgid ":ref:`embedding`" -msgstr "" - -#~ msgid "Creating extensions without third party tools" -#~ msgstr "Création d'extensions sans outils tiers" - -#~ msgid "" -#~ "`Python Packaging User Guide: Binary Extensions `_" -#~ msgstr "" -#~ "`Guide d'utilisation de l'empaquetage Python : Extensions binaires " -#~ "`_" - -#~ msgid "" -#~ "The Python Packaging User Guide not only covers several available tools " -#~ "that simplify the creation of binary extensions, but also discusses the " -#~ "various reasons why creating an extension module may be desirable in the " -#~ "first place." -#~ msgstr "" -#~ "Le guide d'utilisation de l'empaquetage Python ne couvre pas uniquement " -#~ "quelques outils disponibles qui simplifient la création d'extensions " -#~ "binaires, mais aborde aussi les différentes raisons pour lesquelles créer " -#~ "un module d'extension peut être souhaitable d'entrée." diff --git a/extending/newtypes.po b/extending/newtypes.po deleted file mode 100644 index ae9e06d7b9..0000000000 --- a/extending/newtypes.po +++ /dev/null @@ -1,1020 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-10-29 22:00+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: extending/newtypes.rst:7 -msgid "Defining Extension Types: Assorted Topics" -msgstr "Définir les types d'extension : divers sujets" - -#: extending/newtypes.rst:11 -msgid "" -"This section aims to give a quick fly-by on the various type methods you can " -"implement and what they do." -msgstr "" -"Cette section vise à donner un aperçu rapide des différentes méthodes de " -"type que vous pouvez implémenter et de ce qu'elles font." - -#: extending/newtypes.rst:14 -msgid "" -"Here is the definition of :c:type:`PyTypeObject`, with some fields only used " -"in :ref:`debug builds ` omitted:" -msgstr "" -"Voici la définition de :c:type:`PyTypeObject`, après avoir enlevé certains " -"champs utilisés uniquement dans :ref:`debug builds ` :" - -#: extending/newtypes.rst:20 -msgid "" -"Now that's a *lot* of methods. Don't worry too much though -- if you have a " -"type you want to define, the chances are very good that you will only " -"implement a handful of these." -msgstr "" -"Cela fait *beaucoup* de méthodes. Ne vous inquiétez pas trop cependant : si " -"vous souhaitez définir un type, il y a de fortes chances que vous " -"n'implémentiez qu'une petite partie d'entre elles." - -#: extending/newtypes.rst:24 -msgid "" -"As you probably expect by now, we're going to go over this and give more " -"information about the various handlers. We won't go in the order they are " -"defined in the structure, because there is a lot of historical baggage that " -"impacts the ordering of the fields. It's often easiest to find an example " -"that includes the fields you need and then change the values to suit your " -"new type. ::" -msgstr "" -"Comme vous vous en doutez probablement maintenant, nous allons passer en " -"revue cela et donner plus d'informations sur les différents gestionnaires. " -"Nous ne suivrons pas l'ordre dans lequel ils sont définis dans la structure, " -"car l'ordre des champs résulte d'un certain historique. Il est souvent plus " -"facile de trouver un exemple qui inclut les champs dont vous avez besoin, " -"puis de modifier les valeurs en fonction de votre nouveau type ::" - -#: extending/newtypes.rst:33 -msgid "" -"The name of the type -- as mentioned in the previous chapter, this will " -"appear in various places, almost entirely for diagnostic purposes. Try to " -"choose something that will be helpful in such a situation! ::" -msgstr "" -"Le nom du type – comme mentionné dans le chapitre précédent, cela apparaîtra " -"à divers endroits, presque entièrement à des fins de diagnostic. Essayez de " -"choisir quelque chose qui sera utile dans une telle situation ! ::" - -#: extending/newtypes.rst:39 -msgid "" -"These fields tell the runtime how much memory to allocate when new objects " -"of this type are created. Python has some built-in support for variable " -"length structures (think: strings, tuples) which is where " -"the :c:member:`~PyTypeObject.tp_itemsize` field comes in. This will be " -"dealt with later. ::" -msgstr "" -"Ces champs indiquent la quantité de mémoire à allouer à l'exécution lorsque " -"de nouveaux objets de ce type sont créés. Python prend en charge nativement " -"des structures de longueur variable (pensez : chaînes, *n*-uplets), c'est là " -"que le champ :c:member:`~PyTypeObject.tp_itemsize` entre en jeu. Cela sera " -"traité plus tard. ::" - -#: extending/newtypes.rst:46 -msgid "" -"Here you can put a string (or its address) that you want returned when the " -"Python script references ``obj.__doc__`` to retrieve the doc string." -msgstr "" -"Ici vous pouvez mettre une chaîne (ou son adresse) que vous voulez renvoyer " -"lorsque le script Python référence ``obj.__doc__`` pour récupérer le " -"*docstring*." - -#: extending/newtypes.rst:49 -msgid "" -"Now we come to the basic type methods -- the ones most extension types will " -"implement." -msgstr "" -"Nous en arrivons maintenant aux méthodes de type basiques -- celles que la " -"plupart des types d'extension mettront en œuvre." - -#: extending/newtypes.rst:54 -msgid "Finalization and De-allocation" -msgstr "Finalisation et libération de mémoire" - -#: extending/newtypes.rst:66 -msgid "" -"This function is called when the reference count of the instance of your " -"type is reduced to zero and the Python interpreter wants to reclaim it. If " -"your type has memory to free or other clean-up to perform, you can put it " -"here. The object itself needs to be freed here as well. Here is an example " -"of this function::" -msgstr "" -"Cette fonction est appelée lorsque le compteur de références de l'instance " -"de votre type tombe à zéro et que l'interpréteur Python veut récupérer la " -"mémoire afférente. Si votre type a de la mémoire à libérer ou un autre " -"nettoyage à effectuer, vous pouvez le mettre ici. L'objet lui-même doit être " -"libéré ici aussi. Voici un exemple de cette fonction ::" - -#: extending/newtypes.rst:80 -msgid "" -"If your type supports garbage collection, the destructor should " -"call :c:func:`PyObject_GC_UnTrack` before clearing any member fields::" -msgstr "" -"Si votre type prend en charge le ramasse-miettes, le destructeur doit " -"appeler :c:func:`PyObject_GC_UnTrack` avant d'effacer les champs membres ::" - -#: extending/newtypes.rst:97 -msgid "" -"One important requirement of the deallocator function is that it leaves any " -"pending exceptions alone. This is important since deallocators are " -"frequently called as the interpreter unwinds the Python stack; when the " -"stack is unwound due to an exception (rather than normal returns), nothing " -"is done to protect the deallocators from seeing that an exception has " -"already been set. Any actions which a deallocator performs which may cause " -"additional Python code to be executed may detect that an exception has been " -"set. This can lead to misleading errors from the interpreter. The proper " -"way to protect against this is to save a pending exception before performing " -"the unsafe action, and restoring it when done. This can be done using " -"the :c:func:`PyErr_Fetch` and :c:func:`PyErr_Restore` functions::" -msgstr "" -"Une exigence importante de la fonction de libération de la mémoire est de ne " -"pas s'occuper de toutes les exceptions en attente. C'est important car les " -"fonctions de libération de la mémoire sont fréquemment appelées lorsque " -"l'interpréteur remonte la pile d'appels Python ; lorsque la pile est " -"remontée à cause d'une exception (plutôt que de retours normaux), les " -"fonctions de libération peuvent voir qu'une exception a déjà été définie. " -"Toute action effectuée par une fonction de libération de la mémoire pouvant " -"entraîner l'exécution de code Python supplémentaire peut détecter qu'une " -"exception a été définie. Cela peut conduire l’interpréteur à se tromper sur " -"la nature de l'erreur. La bonne façon d'éviter cela est d'enregistrer une " -"exception en attente avant d'effectuer l'action non sécurisée et à la " -"restaurer une fois terminée. Cela peut être fait en utilisant les " -"fonctions :c:func:`PyErr_Fetch` et :c:func:`PyErr_Restore` ::" - -# suit un : -#: extending/newtypes.rst:138 -msgid "" -"There are limitations to what you can safely do in a deallocator function. " -"First, if your type supports garbage collection " -"(using :c:member:`~PyTypeObject.tp_traverse` and/" -"or :c:member:`~PyTypeObject.tp_clear`), some of the object's members can " -"have been cleared or finalized by the " -"time :c:member:`~PyTypeObject.tp_dealloc` is called. Second, " -"in :c:member:`~PyTypeObject.tp_dealloc`, your object is in an unstable " -"state: its reference count is equal to zero. Any call to a non-trivial " -"object or API (as in the example above) might end up " -"calling :c:member:`~PyTypeObject.tp_dealloc` again, causing a double free " -"and a crash." -msgstr "" -"des limites existent à ce que vous pouvez faire en toute sécurité dans une " -"fonction de libération de la mémoire. Tout d'abord, si votre type prend en " -"charge le ramasse-miettes (en " -"utilisant :c:member:`~PyTypeObject.tp_traverse` et/" -"ou :c:member:`~PyTypeObject.tp_clear`), certains membres de l'objet peuvent " -"avoir été effacés ou finalisés avant " -"que :c:member:`~PyTypeObject.tp_dealloc` ne soit appelé. Deuxièmement, " -"dans :c:member:`~PyTypeObject.tp_dealloc`, votre objet est dans un état " -"instable : son compteur de références est égal à zéro. Tout appel à un objet " -"non trivial ou à une API (comme dans l'exemple ci-dessus) peut finir par " -"appeler :c:member:`~PyTypeObject.tp_dealloc` à nouveau, provoquant une " -"double libération et un plantage." - -#: extending/newtypes.rst:147 -msgid "" -"Starting with Python 3.4, it is recommended not to put any complex " -"finalization code in :c:member:`~PyTypeObject.tp_dealloc`, and instead use " -"the new :c:member:`~PyTypeObject.tp_finalize` type method." -msgstr "" -"À partir de Python 3.4, il est recommandé de ne pas mettre de code de " -"finalisation complexe dans :c:member:`~PyTypeObject.tp_dealloc`, et " -"d'utiliser à la place la nouvelle méthode de " -"type :c:member:`~PyTypeObject.tp_finalize`." - -#: extending/newtypes.rst:152 -msgid ":pep:`442` explains the new finalization scheme." -msgstr ":pep:`442` explique le nouveau schéma de finalisation." - -#: extending/newtypes.rst:159 -msgid "Object Presentation" -msgstr "Présentation de l'objet" - -#: extending/newtypes.rst:161 -msgid "" -"In Python, there are two ways to generate a textual representation of an " -"object: the :func:`repr` function, and the :func:`str` function. " -"(The :func:`print` function just calls :func:`str`.) These handlers are " -"both optional." -msgstr "" -"En Python, il existe deux façons de générer une représentation textuelle " -"d'un objet : la fonction :func:`repr` et la fonction :func:`str` (la " -"fonction :func:`print` appelle simplement :func:`str`). Ces gestionnaires " -"sont tous deux facultatifs." - -#: extending/newtypes.rst:170 -msgid "" -"The :c:member:`~PyTypeObject.tp_repr` handler should return a string object " -"containing a representation of the instance for which it is called. Here is " -"a simple example::" -msgstr "" -"Le gestionnaire :c:member:`~PyTypeObject.tp_repr` doit renvoyer un objet " -"chaîne contenant une représentation de l'instance pour laquelle il est " -"appelé. Voici un exemple simple ::" - -#: extending/newtypes.rst:182 -msgid "" -"If no :c:member:`~PyTypeObject.tp_repr` handler is specified, the " -"interpreter will supply a representation that uses the " -"type's :c:member:`~PyTypeObject.tp_name` and a uniquely identifying value " -"for the object." -msgstr "" -"Si aucun gestionnaire :c:member:`~PyTypeObject.tp_repr` n'est spécifié, " -"l'interpréteur fournira une représentation qui utilise le " -"type :c:member:`~PyTypeObject.tp_name` et une valeur d'identification unique " -"pour l'objet." - -#: extending/newtypes.rst:186 -msgid "" -"The :c:member:`~PyTypeObject.tp_str` handler is to :func:`str` what " -"the :c:member:`~PyTypeObject.tp_repr` handler described above is " -"to :func:`repr`; that is, it is called when Python code calls :func:`str` on " -"an instance of your object. Its implementation is very similar to " -"the :c:member:`~PyTypeObject.tp_repr` function, but the resulting string is " -"intended for human consumption. If :c:member:`~PyTypeObject.tp_str` is not " -"specified, the :c:member:`~PyTypeObject.tp_repr` handler is used instead." -msgstr "" -"Le gestionnaire :c:member:`~PyTypeObject.tp_str` est à :func:`str` ce que le " -"gestionnaire :c:member:`~PyTypeObject.tp_repr` décrit ci-dessus est " -"à :func:`repr` ; c'est-à-dire qu'il est appelé lorsque le code Python " -"appelle :func:`str` sur une instance de votre objet. Son implémentation est " -"très similaire à la fonction :c:member:`~PyTypeObject.tp_repr`, mais la " -"chaîne résultante est destinée à être lue par des utilisateurs. " -"Si :c:member:`~PyTypeObject.tp_str` n'est pas spécifié, le " -"gestionnaire :c:member:`~PyTypeObject.tp_repr` est utilisé à la place." - -#: extending/newtypes.rst:193 -msgid "Here is a simple example::" -msgstr "Voici un exemple simple ::" - -#: extending/newtypes.rst:206 -msgid "Attribute Management" -msgstr "Gestion des attributs" - -#: extending/newtypes.rst:208 -msgid "" -"For every object which can support attributes, the corresponding type must " -"provide the functions that control how the attributes are resolved. There " -"needs to be a function which can retrieve attributes (if any are defined), " -"and another to set attributes (if setting attributes is allowed). Removing " -"an attribute is a special case, for which the new value passed to the " -"handler is ``NULL``." -msgstr "" -"Pour chaque objet pouvant prendre en charge des attributs, le type " -"correspondant doit fournir les fonctions qui contrôlent la façon dont les " -"attributs sont résolus. Il doit y avoir une fonction qui peut récupérer les " -"attributs (le cas échéant) et une autre pour définir les attributs (si la " -"définition des attributs est autorisée). La suppression d'un attribut est un " -"cas particulier, pour lequel la nouvelle valeur transmise au gestionnaire " -"est ``NULL``." - -#: extending/newtypes.rst:214 -msgid "" -"Python supports two pairs of attribute handlers; a type that supports " -"attributes only needs to implement the functions for one pair. The " -"difference is that one pair takes the name of the attribute as " -"a :c:expr:`char\\*`, while the other accepts a :c:expr:`PyObject*`. Each " -"type can use whichever pair makes more sense for the implementation's " -"convenience. ::" -msgstr "" -"Python prend en charge deux paires de gestionnaires d'attributs ; un type " -"qui prend en charge les attributs n'a besoin d'implémenter les fonctions que " -"pour une paire. La différence est qu'une paire prend le nom de l'attribut en " -"tant que :c:expr:`char\\*`, tandis que l'autre accepte " -"un :c:expr:`PyObject*`. Chaque type peut utiliser la paire la plus logique " -"pour la commodité de l'implémentation. ::" - -#: extending/newtypes.rst:226 -msgid "" -"If accessing attributes of an object is always a simple operation (this will " -"be explained shortly), there are generic implementations which can be used " -"to provide the :c:expr:`PyObject*` version of the attribute management " -"functions. The actual need for type-specific attribute handlers almost " -"completely disappeared starting with Python 2.2, though there are many " -"examples which have not been updated to use some of the new generic " -"mechanism that is available." -msgstr "" -"Si accéder aux attributs d'un objet est toujours une opération simple (ceci " -"sera expliqué brièvement), il existe des implémentations génériques qui " -"peuvent être utilisées pour fournir la version :c:expr:`PyObject*` des " -"fonctions de gestion des attributs. Le besoin réel de gestionnaires " -"d'attributs spécifiques au type a presque complètement disparu à partir de " -"Python 2.2, bien qu'il existe de nombreux exemples qui n'ont pas été mis à " -"jour pour utiliser certains des nouveaux mécanismes génériques disponibles." - -#: extending/newtypes.rst:237 -msgid "Generic Attribute Management" -msgstr "Gestion des attributs génériques" - -#: extending/newtypes.rst:239 -msgid "" -"Most extension types only use *simple* attributes. So, what makes the " -"attributes simple? There are only a couple of conditions that must be met:" -msgstr "" -"La plupart des types d'extensions n'utilisent que des attributs *simples*. " -"Alors, qu'est-ce qui rend les attributs simples ? Seules quelques conditions " -"doivent être remplies :" - -# énumération -#: extending/newtypes.rst:242 -msgid "" -"The name of the attributes must be known when :c:func:`PyType_Ready` is " -"called." -msgstr "" -"le nom des attributs doit être déjà connu lorsqu'on " -"lance :c:func:`PyType_Ready` ;" - -# énumération -#: extending/newtypes.rst:245 -msgid "" -"No special processing is needed to record that an attribute was looked up or " -"set, nor do actions need to be taken based on the value." -msgstr "" -"aucun traitement spécial n'est nécessaire pour enregistrer qu'un attribut a " -"été recherché ou défini, et aucune action ne doit être entreprise en " -"fonction de la valeur." - -#: extending/newtypes.rst:248 -msgid "" -"Note that this list does not place any restrictions on the values of the " -"attributes, when the values are computed, or how relevant data is stored." -msgstr "" -"Notez que cette liste n'impose aucune restriction sur les valeurs des " -"attributs, le moment où les valeurs sont calculées ou la manière dont les " -"données pertinentes sont stockées." - -#: extending/newtypes.rst:251 -msgid "" -"When :c:func:`PyType_Ready` is called, it uses three tables referenced by " -"the type object to create :term:`descriptor`\\s which are placed in the " -"dictionary of the type object. Each descriptor controls access to one " -"attribute of the instance object. Each of the tables is optional; if all " -"three are ``NULL``, instances of the type will only have attributes that are " -"inherited from their base type, and should leave " -"the :c:member:`~PyTypeObject.tp_getattro` " -"and :c:member:`~PyTypeObject.tp_setattro` fields ``NULL`` as well, allowing " -"the base type to handle attributes." -msgstr "" -"Lorsque :c:func:`PyType_Ready` est appelé, il utilise trois tableaux " -"référencés par l'objet type pour créer des :term:`descripteurs ` " -"qui sont placés dans le dictionnaire de l'objet type. Chaque descripteur " -"contrôle l'accès à un attribut de l'objet instance. Chacun des tableaux est " -"facultatif ; si les trois sont ``NULL``, les instances du type n'auront que " -"des attributs hérités de leur type de base et doivent laisser les " -"champs :c:member:`~PyTypeObject.tp_getattro` " -"et :c:member:`~PyTypeObject .tp_setattro` à ``NULL`` également, permettant " -"au type de base de gérer les attributs." - -#: extending/newtypes.rst:259 -msgid "The tables are declared as three fields of the type object::" -msgstr "" -"Les tableaux sont déclarés sous la forme de trois champs de type objet ::" - -#: extending/newtypes.rst:265 -msgid "" -"If :c:member:`~PyTypeObject.tp_methods` is not ``NULL``, it must refer to an " -"array of :c:type:`PyMethodDef` structures. Each entry in the table is an " -"instance of this structure::" -msgstr "" -"Si :c:member:`~PyTypeObject.tp_methods` n'est pas ``NULL``, il doit faire " -"référence à un tableau de structures :c:type:`PyMethodDef`. Chaque entrée du " -"tableau est une instance de cette structure ::" - -#: extending/newtypes.rst:276 -#, fuzzy -msgid "" -"One entry should be defined for each method provided by the type; no entries " -"are needed for methods inherited from a base type. One additional entry is " -"needed at the end; it is a sentinel that marks the end of the array. " -"The :c:member:`~PyMethodDef.ml_name` field of the sentinel must be ``NULL``." -msgstr "" -"Une entrée doit être définie pour chaque méthode fournie par le type ; " -"aucune entrée n'est nécessaire pour les méthodes héritées d'un type ancêtre. " -"Une entrée supplémentaire est nécessaire à la fin ; c'est une sentinelle qui " -"marque la fin du tableau. Le champ :attr:`ml_name` de la sentinelle doit " -"être ``NULL``." - -#: extending/newtypes.rst:281 -msgid "" -"The second table is used to define attributes which map directly to data " -"stored in the instance. A variety of primitive C types are supported, and " -"access may be read-only or read-write. The structures in the table are " -"defined as::" -msgstr "" -"Le deuxième tableau est utilisé pour définir les attributs qui correspondent " -"directement aux données stockées dans l'instance. Divers types C natifs sont " -"pris en charge et l'accès peut être en lecture seule ou en lecture-écriture. " -"Les structures du tableau sont définies comme suit :" - -#: extending/newtypes.rst:293 -#, fuzzy -msgid "" -"For each entry in the table, a :term:`descriptor` will be constructed and " -"added to the type which will be able to extract a value from the instance " -"structure. The :c:member:`~PyMemberDef.type` field should contain a type " -"code like :c:macro:`Py_T_INT` or :c:macro:`Py_T_DOUBLE`; the value will be " -"used to determine how to convert Python values to and from C values. " -"The :c:member:`~PyMemberDef.flags` field is used to store flags which " -"control how the attribute can be accessed: you can set it " -"to :c:macro:`Py_READONLY` to prevent Python code from setting it." -msgstr "" -"Pour chaque entrée du tableau, un :term:`descripteur ` sera " -"construit et ajouté au type qui pourra extraire une valeur de la structure " -"de l'instance. Le champ :attr:`type` doit contenir l'un des codes de type " -"définis dans l'en-tête :file:`structmember.h` ; la valeur sera utilisée pour " -"déterminer comment convertir les valeurs Python vers et à partir des valeurs " -"C. Le champ :attr:`flags` est utilisé pour stocker les drapeaux qui " -"contrôlent l'accès à l'attribut." - -#: extending/newtypes.rst:301 -#, fuzzy -msgid "" -"An interesting advantage of using the :c:member:`~PyTypeObject.tp_members` " -"table to build descriptors that are used at runtime is that any attribute " -"defined this way can have an associated doc string simply by providing the " -"text in the table. An application can use the introspection API to retrieve " -"the descriptor from the class object, and get the doc string using " -"its :attr:`~type.__doc__` attribute." -msgstr "" -"Un avantage intéressant de l'utilisation du " -"tableau :c:member:`~PyTypeObject.tp_members` pour construire les " -"descripteurs utilisés à l'exécution est que, à tout attribut défini de cette " -"façon, on peut associer une chaîne de documentation (*docstring*), en " -"écrivant simplement le texte dans le tableau. Une application peut utiliser " -"l'API d'introspection pour récupérer le descripteur de l'objet de classe et " -"utiliser son attribut :attr:`__doc__` pour renvoyer la chaîne de " -"documentation." - -#: extending/newtypes.rst:307 -#, fuzzy -msgid "" -"As with the :c:member:`~PyTypeObject.tp_methods` table, a sentinel entry " -"with a :c:member:`~PyMethodDef.ml_name` value of ``NULL`` is required." -msgstr "" -"Comme pour le tableau :c:member:`~PyTypeObject.tp_methods`, une entrée " -"sentinelle avec une valeur ``NULL`` pour :attr:`name` est requise." - -#: extending/newtypes.rst:321 -msgid "Type-specific Attribute Management" -msgstr "Gestion des attributs de type spécifiques" - -#: extending/newtypes.rst:323 -msgid "" -"For simplicity, only the :c:expr:`char\\*` version will be demonstrated " -"here; the type of the name parameter is the only difference between " -"the :c:expr:`char\\*` and :c:expr:`PyObject*` flavors of the interface. This " -"example effectively does the same thing as the generic example above, but " -"does not use the generic support added in Python 2.2. It explains how the " -"handler functions are called, so that if you do need to extend their " -"functionality, you'll understand what needs to be done." -msgstr "" -"Pour plus de simplicité, seule la version :c:expr:`char\\*` est montrée " -"ici ; le type du paramètre *name* est la seule différence entre les " -"variations :c:expr:`char\\*` et :c:expr:`PyObject*` de l'interface. Cet " -"exemple fait effectivement la même chose que l'exemple générique ci-dessus, " -"mais n'utilise pas le support générique ajouté dans Python 2.2. Il explique " -"comment les fonctions de gestionnaire sont appelées, de sorte que si vous " -"avez besoin d'étendre leurs fonctionnalités, vous comprendrez ce qui doit " -"être fait." - -#: extending/newtypes.rst:331 -#, fuzzy -msgid "" -"The :c:member:`~PyTypeObject.tp_getattr` handler is called when the object " -"requires an attribute look-up. It is called in the same situations where " -"the :meth:`~object.__getattr__` method of a class would be called." -msgstr "" -"Le gestionnaire :c:member:`~PyTypeObject.tp_getattr` est appelé lorsque " -"l'objet nécessite une recherche d'attribut. Il est appelé dans les mêmes " -"situations que l'appel à la méthode :meth:`__getattr__` d'une classe." - -#: extending/newtypes.rst:335 -msgid "Here is an example::" -msgstr "Voici un exemple ::" - -#: extending/newtypes.rst:351 -#, fuzzy -msgid "" -"The :c:member:`~PyTypeObject.tp_setattr` handler is called when " -"the :meth:`~object.__setattr__` or :meth:`~object.__delattr__` method of a " -"class instance would be called. When an attribute should be deleted, the " -"third parameter will be ``NULL``. Here is an example that simply raises an " -"exception; if this were really all you wanted, " -"the :c:member:`~PyTypeObject.tp_setattr` handler should be set to " -"``NULL``. ::" -msgstr "" -"Le gestionnaire :c:member:`~PyTypeObject.tp_setattr` est appelé lorsque la " -"méthode :meth:`__setattr__` ou :meth:`__delattr__` d'une instance de classe " -"est appelée. Lorsqu'un attribut doit être supprimé, le troisième paramètre " -"est ``NULL``. Voici un exemple qui lève simplement une exception ; si " -"c'était vraiment tout ce que vous vouliez, le " -"gestionnaire :c:member:`~PyTypeObject.tp_setattr` devrait être défini sur " -"``NULL``. ::" - -#: extending/newtypes.rst:365 -msgid "Object Comparison" -msgstr "Comparaison des objets" - -#: extending/newtypes.rst:371 -#, fuzzy -msgid "" -"The :c:member:`~PyTypeObject.tp_richcompare` handler is called when " -"comparisons are needed. It is analogous to the :ref:`rich comparison " -"methods `, like :meth:`!__lt__`, and also called " -"by :c:func:`PyObject_RichCompare` and :c:func:`PyObject_RichCompareBool`." -msgstr "" -"Le gestionnaire :c:member:`~PyTypeObject.tp_richcompare` est appelé lorsque " -"des comparaisons sont nécessaires. Il est analogue aux :ref:`méthodes de " -"comparaison riches `, comme :meth:`__lt__`, et est également " -"appelé par :c:func:`PyObject_RichCompare` " -"et :c:func:`PyObject_RichCompareBool`." - -#: extending/newtypes.rst:376 -msgid "" -"This function is called with two Python objects and the operator as " -"arguments, where the operator is one of ``Py_EQ``, ``Py_NE``, ``Py_LE``, " -"``Py_GE``, ``Py_LT`` or ``Py_GT``. It should compare the two objects with " -"respect to the specified operator and return ``Py_True`` or ``Py_False`` if " -"the comparison is successful, ``Py_NotImplemented`` to indicate that " -"comparison is not implemented and the other object's comparison method " -"should be tried, or ``NULL`` if an exception was set." -msgstr "" -"Cette fonction est appelée avec deux objets Python et l'opérateur comme " -"arguments, où l'opérateur est ``Py_EQ``, ``Py_NE``, ``Py_LE``, ``Py_GE``, " -"``Py_LT`` ou ``Py_GT``. Elle doit comparer les deux objets conformément à " -"l'opérateur spécifié et renvoyer ``Py_True`` ou ``Py_False`` si la " -"comparaison a réussi, ``Py_NotImplemented`` pour indiquer que la comparaison " -"n'est pas implémentée et que la méthode de comparaison de l'autre objet doit " -"être essayée, ou ``NULL`` si une exception doit être levée." - -#: extending/newtypes.rst:384 -msgid "" -"Here is a sample implementation, for a datatype that is considered equal if " -"the size of an internal pointer is equal::" -msgstr "" -"Voici un exemple d'implémentation, pour un type de données où l'égalité " -"signifie que la taille d'un pointeur interne est égale :" - -#: extending/newtypes.rst:415 -msgid "Abstract Protocol Support" -msgstr "Gestion de protocoles abstraits" - -#: extending/newtypes.rst:417 -msgid "" -"Python supports a variety of *abstract* 'protocols;' the specific interfaces " -"provided to use these interfaces are documented in :ref:`abstract`." -msgstr "" -"Python prend en charge divers « protocoles » *abstraits* ; les interfaces " -"spécifiques fournies pour utiliser ces interfaces sont documentées " -"dans :ref:`abstract`." - -#: extending/newtypes.rst:421 -msgid "" -"A number of these abstract interfaces were defined early in the development " -"of the Python implementation. In particular, the number, mapping, and " -"sequence protocols have been part of Python since the beginning. Other " -"protocols have been added over time. For protocols which depend on several " -"handler routines from the type implementation, the older protocols have been " -"defined as optional blocks of handlers referenced by the type object. For " -"newer protocols there are additional slots in the main type object, with a " -"flag bit being set to indicate that the slots are present and should be " -"checked by the interpreter. (The flag bit does not indicate that the slot " -"values are non-``NULL``. The flag may be set to indicate the presence of a " -"slot, but a slot may still be unfilled.) ::" -msgstr "" -"Un certain nombre de ces interfaces abstraites ont été définies au début du " -"développement de l'implémentation Python. En particulier, les protocoles de " -"nombre, de correspondance et de séquence font partie de Python depuis le " -"début. D'autres protocoles ont été ajoutés au fil du temps. Pour les " -"protocoles qui dépendent de plusieurs routines de gestionnaire de " -"l'implémentation du type, les anciens protocoles ont été définis comme des " -"blocs facultatifs de gestionnaires référencés par l'objet type. Pour les " -"protocoles plus récents, il existe des emplacements supplémentaires dans " -"l'objet de type principal, avec un bit d'indicateur défini pour indiquer que " -"les emplacements sont présents et doivent être vérifiés par l'interpréteur " -"(le bit d'indicateur n'indique pas que les valeurs d'emplacement ne sont pas " -"``NULL`` ; il peut être défini pour indiquer la présence d'un emplacement, " -"mais un emplacement peut toujours être vide). ::" - -#: extending/newtypes.rst:436 -msgid "" -"If you wish your object to be able to act like a number, a sequence, or a " -"mapping object, then you place the address of a structure that implements " -"the C type :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods`, " -"or :c:type:`PyMappingMethods`, respectively. It is up to you to fill in this " -"structure with appropriate values. You can find examples of the use of each " -"of these in the :file:`Objects` directory of the Python source " -"distribution. ::" -msgstr "" -"Si vous souhaitez que votre objet puisse agir comme un nombre, une séquence " -"ou un tableau de correspondances, placez l'adresse d'une structure qui " -"implémente le type C :c:type:`PyNumberMethods`, :c:type:`PySequenceMethods` " -"ou :c:type:`PyMappingMethods`, respectivement. C'est à vous de remplir cette " -"structure avec les valeurs appropriées. Vous pouvez trouver des exemples " -"d'utilisation de chacun d'entre eux dans le répertoire :file:`Objects` de la " -"distribution source de Python. ::" - -#: extending/newtypes.rst:445 -msgid "" -"This function, if you choose to provide it, should return a hash number for " -"an instance of your data type. Here is a simple example::" -msgstr "" -"Cette fonction, si vous la fournissez, doit renvoyer un condensat pour une " -"instance de votre type de données. Voici un exemple simple ::" - -#: extending/newtypes.rst:460 -#, fuzzy -msgid "" -":c:type:`Py_hash_t` is a signed integer type with a platform-varying width. " -"Returning ``-1`` from :c:member:`~PyTypeObject.tp_hash` indicates an error, " -"which is why you should be careful to avoid returning it when hash " -"computation is successful, as seen above." -msgstr "" -":c:type:`Py_hash_t` est un type entier signé avec une largeur variable selon " -"la plate-forme. Renvoyer ``-1`` pour :c:member:`~PyTypeObject.tp_hash` " -"indique une erreur, c'est pourquoi vous devez faire attention à ne pas le " -"renvoyer lorsque le calcul du hachage est réussi, comme vu ci-dessus." - -#: extending/newtypes.rst:469 -msgid "" -"This function is called when an instance of your data type is \"called\", " -"for example, if ``obj1`` is an instance of your data type and the Python " -"script contains ``obj1('hello')``, the :c:member:`~PyTypeObject.tp_call` " -"handler is invoked." -msgstr "" -"Cette fonction est appelée lorsqu'une instance de votre type de données est " -"« appelée », par exemple, si ``obj1`` est une instance de votre type de " -"données et que le script Python contient ``obj1('hello')``, le " -"gestionnaire :c:member:`~PyTypeObject.tp_call` est appelé." - -#: extending/newtypes.rst:473 -msgid "This function takes three arguments:" -msgstr "Cette fonction prend trois arguments :" - -#: extending/newtypes.rst:475 -msgid "" -"*self* is the instance of the data type which is the subject of the call. If " -"the call is ``obj1('hello')``, then *self* is ``obj1``." -msgstr "" -"*self* est l'instance du type de données qui fait l'objet de l'appel. Si " -"l'appel est ``obj1('hello')``, alors *self* est ``obj1``." - -#: extending/newtypes.rst:478 -msgid "" -"*args* is a tuple containing the arguments to the call. You can " -"use :c:func:`PyArg_ParseTuple` to extract the arguments." -msgstr "" -"*args* est un *n*-uplet contenant les arguments de l'appel. Vous pouvez " -"utiliser :c:func:`PyArg_ParseTuple` pour extraire les arguments." - -#: extending/newtypes.rst:481 -msgid "" -"*kwds* is a dictionary of keyword arguments that were passed. If this is non-" -"``NULL`` and you support keyword arguments, " -"use :c:func:`PyArg_ParseTupleAndKeywords` to extract the arguments. If you " -"do not want to support keyword arguments and this is non-``NULL``, raise " -"a :exc:`TypeError` with a message saying that keyword arguments are not " -"supported." -msgstr "" -"*kwds* est le dictionnaire d'arguments nommés qui ont été passés. Si ce " -"n'est pas ``NULL`` et que vous gérez les arguments nommés, " -"utilisez :c:func:`PyArg_ParseTupleAndKeywords` pour extraire les arguments. " -"Si vous ne souhaitez pas prendre en charge les arguments nommés et qu'il " -"n'est pas ``NULL``, levez une :exc:`TypeError` avec un message indiquant que " -"les arguments nommés ne sont pas pris en charge." - -#: extending/newtypes.rst:487 -msgid "Here is a toy ``tp_call`` implementation::" -msgstr "Ceci est une implémentation ``tp_call`` très simple ::" - -#: extending/newtypes.rst:514 -#, fuzzy -msgid "" -"These functions provide support for the iterator protocol. Both handlers " -"take exactly one parameter, the instance for which they are being called, " -"and return a new reference. In the case of an error, they should set an " -"exception and return ``NULL``. :c:member:`~PyTypeObject.tp_iter` " -"corresponds to the Python :meth:`~object.__iter__` method, " -"while :c:member:`~PyTypeObject.tp_iternext` corresponds to the " -"Python :meth:`~iterator.__next__` method." -msgstr "" -"Ces fonctions prennent en charge le protocole itérateur. Les deux " -"gestionnaires prennent exactement un paramètre, l'instance pour laquelle ils " -"sont appelés, et renvoient une nouvelle référence. En cas d'erreur, ils " -"doivent définir une exception et renvoyer " -"``NULL``. :c:member:`~PyTypeObject.tp_iter` correspond à la méthode " -"Python :meth:`__iter__`, tandis que :c:member:`~PyTypeObject.tp_iternext` " -"correspond à la méthode Python :meth:`~iterator.__next__`." - -#: extending/newtypes.rst:521 -msgid "" -"Any :term:`iterable` object must implement " -"the :c:member:`~PyTypeObject.tp_iter` handler, which must return " -"an :term:`iterator` object. Here the same guidelines apply as for Python " -"classes:" -msgstr "" -"Tout objet :term:`iterable` doit implémenter le " -"gestionnaire :c:member:`~PyTypeObject.tp_iter`, qui doit renvoyer un objet " -"de type :term:`iterator`. Ici, les mêmes directives s'appliquent de la même " -"façon que pour les classes *Python* :" - -#: extending/newtypes.rst:525 -msgid "" -"For collections (such as lists and tuples) which can support multiple " -"independent iterators, a new iterator should be created and returned by each " -"call to :c:member:`~PyTypeObject.tp_iter`." -msgstr "" -"Pour les collections (telles que les listes et les n-uplets) qui peuvent " -"implémenter plusieurs itérateurs indépendants, un nouvel itérateur doit être " -"créé et renvoyé par chaque appel de type :c:member:`~PyTypeObject.tp_iter`." - -#: extending/newtypes.rst:528 -msgid "" -"Objects which can only be iterated over once (usually due to side effects of " -"iteration, such as file objects) can " -"implement :c:member:`~PyTypeObject.tp_iter` by returning a new reference to " -"themselves -- and should also therefore implement " -"the :c:member:`~PyTypeObject.tp_iternext` handler." -msgstr "" -"Les objets qui ne peuvent être itérés qu'une seule fois (généralement en " -"raison d'effets de bord de l'itération, tels que les objets fichiers) " -"peuvent implémenter :c:member:`~PyTypeObject.tp_iter` en renvoyant une " -"nouvelle référence à eux-mêmes – et doivent donc également implémenter le " -"gestionnaire :c:member:`~PyTypeObject.tp_iternext`." - -#: extending/newtypes.rst:533 -msgid "" -"Any :term:`iterator` object should implement " -"both :c:member:`~PyTypeObject.tp_iter` " -"and :c:member:`~PyTypeObject.tp_iternext`. An " -"iterator's :c:member:`~PyTypeObject.tp_iter` handler should return a new " -"reference to the iterator. Its :c:member:`~PyTypeObject.tp_iternext` " -"handler should return a new reference to the next object in the iteration, " -"if there is one. If the iteration has reached the " -"end, :c:member:`~PyTypeObject.tp_iternext` may return ``NULL`` without " -"setting an exception, or it may set :exc:`StopIteration` *in addition* to " -"returning ``NULL``; avoiding the exception can yield slightly better " -"performance. If an actual error " -"occurs, :c:member:`~PyTypeObject.tp_iternext` should always set an exception " -"and return ``NULL``." -msgstr "" -"Tout objet :term:`itérateur ` doit implémenter à la " -"fois :c:member:`~PyTypeObject.tp_iter` " -"et :c:member:`~PyTypeObject.tp_iternext`. Le " -"gestionnaire :c:member:`~PyTypeObject.tp_iter` d'un itérateur doit renvoyer " -"une nouvelle référence de l'itérateur. Son " -"gestionnaire :c:member:`~PyTypeObject.tp_iternext` doit renvoyer une " -"nouvelle référence à l'objet suivant dans l'itération, s'il y en a un. Si " -"l'itération a atteint la fin, :c:member:`~PyTypeObject.tp_iternext` peut " -"renvoyer ``NULL`` sans définir d'exception, ou il peut " -"définir :exc:`StopIteration` *en plus* de renvoyer ``NULL`` ; éviter de " -"lever une exception peut donner des performances légèrement meilleures. Si " -"une erreur réelle se produit, :c:member:`~PyTypeObject.tp_iternext` doit " -"toujours définir une exception et renvoyer ``NULL``." - -#: extending/newtypes.rst:549 -msgid "Weak Reference Support" -msgstr "Prise en charge de la référence faible" - -#: extending/newtypes.rst:551 -msgid "" -"One of the goals of Python's weak reference implementation is to allow any " -"type to participate in the weak reference mechanism without incurring the " -"overhead on performance-critical objects (such as numbers)." -msgstr "" -"L'un des objectifs de l'implémentation de la référence faible de *Python* " -"est de permettre à tout type d'objet de participer au mécanisme de référence " -"faible sans avoir à supporter le surcoût de la performance critique des " -"certains objets, tels que les nombres." - -# suit un : -#: extending/newtypes.rst:556 -msgid "Documentation for the :mod:`weakref` module." -msgstr "documentation pour le module :mod:`weakref`." - -#: extending/newtypes.rst:558 -msgid "" -"For an object to be weakly referenceable, the extension type must set the " -"``Py_TPFLAGS_MANAGED_WEAKREF`` bit of the :c:member:`~PyTypeObject.tp_flags` " -"field. The legacy :c:member:`~PyTypeObject.tp_weaklistoffset` field should " -"be left as zero." -msgstr "" - -#: extending/newtypes.rst:563 -msgid "If this flag is set, :c:macro:`Py_TPFLAGS_HAVE_GC` should also be set." -msgstr "" - -#: extending/newtypes.rst:565 -#, fuzzy -msgid "" -"Concretely, here is how the statically declared type object would look::" -msgstr "" -"Et le membre correspondant dans l'objet de type déclaré statiquement ::" - -#: extending/newtypes.rst:574 -#, fuzzy -msgid "" -"The only further addition is that ``tp_dealloc`` needs to clear any weak " -"references (by calling :c:func:`PyObject_ClearWeakRefs`)::" -msgstr "" -"Le seul ajout supplémentaire est que ``tp_dealloc`` doit effacer toute " -"référence faible (en appelant :c:func:`PyObject_ClearWeakRefs`) si le champ " -"est non ``NULL`` ::" - -#: extending/newtypes.rst:588 -msgid "More Suggestions" -msgstr "Plus de suggestions" - -#: extending/newtypes.rst:590 -msgid "" -"In order to learn how to implement any specific method for your new data " -"type, get the :term:`CPython` source code. Go to the :file:`Objects` " -"directory, then search the C source files for ``tp_`` plus the function you " -"want (for example, ``tp_richcompare``). You will find examples of the " -"function you want to implement." -msgstr "" -"Pour savoir comment mettre en œuvre une méthode spécifique pour votre " -"nouveau type de données, téléchargez le code source :term:`CPython`. Allez " -"dans le répertoire :file:`Objects`, puis cherchez dans les fichiers sources " -"*C* la fonction ``tp_`` plus la fonction que vous voulez (par exemple, " -"``tp_richcompare``). Vous trouverez des exemples de la fonction que vous " -"voulez implémenter." - -#: extending/newtypes.rst:596 -msgid "" -"When you need to verify that an object is a concrete instance of the type " -"you are implementing, use the :c:func:`PyObject_TypeCheck` function. A " -"sample of its use might be something like the following::" -msgstr "" -"Lorsque vous avez besoin de vérifier qu'un objet est une instance concrète " -"du type que vous implémentez, utilisez la " -"fonction :c:func:`PyObject_TypeCheck`. Voici un exemple de son utilisation ::" - -#: extending/newtypes.rst:606 -msgid "Download CPython source releases." -msgstr "Télécharger les versions sources de *CPython*." - -#: extending/newtypes.rst:607 -msgid "https://www.python.org/downloads/source/" -msgstr "https://www.python.org/downloads/source/" - -#: extending/newtypes.rst:609 -msgid "" -"The CPython project on GitHub, where the CPython source code is developed." -msgstr "" -"Le projet *CPython* sur *GitHub*, où se trouve le code source *CPython*." - -#: extending/newtypes.rst:610 -msgid "https://github.com/python/cpython" -msgstr "https://github.com/python/cpython" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "deallocation" -#~ msgstr "libération de mémoire" - -#~ msgid "deallocation, object" -#~ msgstr "libération de mémoire, objet" - -#~ msgid "finalization" -#~ msgstr "finalisation" - -#~ msgid "finalization, of objects" -#~ msgstr "finalisation, d'objets" - -#~ msgid "PyErr_Fetch (C function)" -#~ msgstr "PyErr_Fetch (C function)" - -#~ msgid "PyErr_Restore (C function)" -#~ msgstr "PyErr_Restore (C function)" - -#~ msgid "string" -#~ msgstr "chaîne" - -#~ msgid "object representation" -#~ msgstr "Représentation de l'objet" - -#~ msgid "built-in function" -#~ msgstr "fonction native" - -#~ msgid "repr" -#~ msgstr "repr" - -#~ msgid "" -#~ "The following flag constants are defined in :file:`structmember.h`; they " -#~ "may be combined using bitwise-OR." -#~ msgstr "" -#~ "Les constantes de drapeaux suivantes sont définies " -#~ "dans :file:`structmember.h` ; elles peuvent être combinées à l'aide du " -#~ "*OU* binaire." - -#~ msgid "Constant" -#~ msgstr "Constante" - -#~ msgid "Meaning" -#~ msgstr "Signification" - -#~ msgid ":const:`READONLY`" -#~ msgstr ":const:`READONLY`" - -#~ msgid "Never writable." -#~ msgstr "Jamais disponible en écriture." - -#~ msgid ":const:`PY_AUDIT_READ`" -#~ msgstr ":const:`PY_AUDIT_READ`" - -#~ msgid "" -#~ "Emit an ``object.__getattr__`` :ref:`audit events ` before " -#~ "reading." -#~ msgstr "" -#~ "Émet un :ref:`événement d'audit ` ``object.__getattr__`` " -#~ "avant la lecture." - -#~ msgid "" -#~ ":const:`RESTRICTED`, :const:`READ_RESTRICTED` " -#~ "and :const:`WRITE_RESTRICTED` are deprecated. " -#~ "However, :const:`READ_RESTRICTED` is an alias for :const:`PY_AUDIT_READ`, " -#~ "so fields that specify either :const:`RESTRICTED` " -#~ "or :const:`READ_RESTRICTED` will also raise an audit event." -#~ msgstr "" -#~ ":const:`RESTRICTED`, :const:`READ_RESTRICTED` " -#~ "et :const:`WRITE_RESTRICTED` sont obsolètes. " -#~ "Cependant, :const:`READ_RESTRICTED` est un alias " -#~ "pour :const:`PY_AUDIT_READ`, donc les champs qui " -#~ "spécifient :const:`RESTRICTED` ou :const:`READ_RESTRICTED` déclenchent " -#~ "également un événement d'audit." - -#~ msgid "" -#~ "For an object to be weakly referencable, the extension type must do two " -#~ "things:" -#~ msgstr "" -#~ "Pour qu'un objet soit faiblement référençable, le type d'extension doit " -#~ "faire deux choses :" - -# énumération -#~ msgid "" -#~ "Include a :c:expr:`PyObject*` field in the C object structure dedicated " -#~ "to the weak reference mechanism. The object's constructor should leave " -#~ "it ``NULL`` (which is automatic when using the " -#~ "default :c:member:`~PyTypeObject.tp_alloc`)." -#~ msgstr "" -#~ "inclure un champ :c:expr:`PyObject*` dans la structure d'objet C dédiée " -#~ "au mécanisme de référence faible. Le constructeur de l'objet doit le " -#~ "laisser à la valeur ``NULL`` (ce qui est automatique lorsque l'on utilise " -#~ "le champ par défaut :c:member:`~PyTypeObject.tp_alloc`) ;" - -# énumération -#~ msgid "" -#~ "Set the :c:member:`~PyTypeObject.tp_weaklistoffset` type member to the " -#~ "offset of the aforementioned field in the C object structure, so that the " -#~ "interpreter knows how to access and modify that field." -#~ msgstr "" -#~ "définir le membre de type :c:member:`~PyTypeObject.tp_weaklistoffset` à " -#~ "la valeur de décalage (*offset*) du champ susmentionné dans la structure " -#~ "de l'objet *C*, afin que l'interpréteur sache comment accéder à ce champ " -#~ "et le modifier." - -#~ msgid "" -#~ "Concretely, here is how a trivial object structure would be augmented " -#~ "with the required field::" -#~ msgstr "" -#~ "Concrètement, voici comment une structure d'objet simple serait complétée " -#~ "par le champ requis ::" - -#~ msgid "READONLY" -#~ msgstr ":const:`READONLY`" - -#~ msgid "READ_RESTRICTED" -#~ msgstr ":const:`READ_RESTRICTED`" - -#~ msgid "WRITE_RESTRICTED" -#~ msgstr ":const:`WRITE_RESTRICTED`" - -#~ msgid "RESTRICTED" -#~ msgstr ":const:`RESTRICTED`" - -#~ msgid "PY_AUDIT_READ" -#~ msgstr ":const:`PY_AUDIT_READ`" - -#~ msgid "Not readable in restricted mode." -#~ msgstr "Non disponible en lecture, dans le mode restreint." - -#~ msgid "Not writable in restricted mode." -#~ msgstr "Non disponible en écriture dans le mode restreint." - -#~ msgid "Not readable or writable in restricted mode." -#~ msgstr "Non disponible en lecture ou écriture, en mode restreint." diff --git a/extending/newtypes_tutorial.po b/extending/newtypes_tutorial.po deleted file mode 100644 index 7f6a8bcaa3..0000000000 --- a/extending/newtypes_tutorial.po +++ /dev/null @@ -1,1347 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-07-27 23:20+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: extending/newtypes_tutorial.rst:7 -msgid "Defining Extension Types: Tutorial" -msgstr "Tutoriel : définir des types dans des extensions" - -#: extending/newtypes_tutorial.rst:9 -msgid "" -"Python allows the writer of a C extension module to define new types that " -"can be manipulated from Python code, much like the built-in :class:`str` " -"and :class:`list` types. The code for all extension types follows a " -"pattern, but there are some details that you need to understand before you " -"can get started. This document is a gentle introduction to the topic." -msgstr "" -"Python permet à l'auteur d'un module d'extension C de définir de nouveaux " -"types qui peuvent être manipulés depuis du code Python, à la manière des " -"types natifs :class:`str` et :class:`list`. Les implémentations de tous les " -"types d'extension ont des similarités, mais quelques subtilités doivent être " -"abordées avant de commencer." - -#: extending/newtypes_tutorial.rst:19 -msgid "The Basics" -msgstr "Les bases" - -#: extending/newtypes_tutorial.rst:21 -msgid "" -"The :term:`CPython` runtime sees all Python objects as variables of " -"type :c:expr:`PyObject*`, which serves as a \"base type\" for all Python " -"objects. The :c:type:`PyObject` structure itself only contains the " -"object's :term:`reference count` and a pointer to the object's \"type " -"object\". This is where the action is; the type object determines which (C) " -"functions get called by the interpreter when, for instance, an attribute " -"gets looked up on an object, a method called, or it is multiplied by another " -"object. These C functions are called \"type methods\"." -msgstr "" -":term:`CPython` considère que tous les objets Python sont des variables de " -"type :c:expr:`PyObject*`, qui sert de type de base pour tous les objets " -"Python. La structure de :c:type:`PyObject` ne contient que " -"le :term:`compteur de références ` et un pointeur vers un " -"objet de type « type de l'objet ». C'est ici que tout se joue : l'objet type " -"détermine quelle fonction C doit être appelée par l'interpréteur quand, par " -"exemple, un attribut est recherché sur un objet, quand une méthode est " -"appelée, ou quand l'objet est multiplié par un autre objet. Ces fonctions C " -"sont appelées des « méthodes de type »." - -#: extending/newtypes_tutorial.rst:30 -msgid "" -"So, if you want to define a new extension type, you need to create a new " -"type object." -msgstr "" -"Donc, pour définir un nouveau type dans une extension, vous devez créer un " -"nouvel objet type." - -#: extending/newtypes_tutorial.rst:33 -#, fuzzy -msgid "" -"This sort of thing can only be explained by example, so here's a minimal, " -"but complete, module that defines a new type named :class:`!Custom` inside a " -"C extension module :mod:`!custom`:" -msgstr "" -"Ce genre de chose ne s'explique correctement qu'avec des exemples, voici " -"donc un module minimaliste mais suffisant qui définit un nouveau type " -"nommé :class:`Custom` dans le module d'extension :mod:`custom` :" - -# suit un : -#: extending/newtypes_tutorial.rst:38 -msgid "" -"What we're showing here is the traditional way of defining *static* " -"extension types. It should be adequate for most uses. The C API also " -"allows defining heap-allocated extension types using " -"the :c:func:`PyType_FromSpec` function, which isn't covered in this tutorial." -msgstr "" -"ce qui est montré ici est la manière traditionnelle de définir des types " -"d'extension *statiques*, et cela convient dans la majorité des cas. L'API C " -"permet aussi de définir des types alloués sur le tas, via la " -"fonction :c:func:`PyType_FromSpec`, mais ce n'est pas couvert par ce " -"tutoriel." - -#: extending/newtypes_tutorial.rst:45 -msgid "" -"Now that's quite a bit to take in at once, but hopefully bits will seem " -"familiar from the previous chapter. This file defines three things:" -msgstr "" -"C'est un peu long, mais vous devez déjà reconnaître quelques morceaux " -"expliqués au chapitre précédent. Ce fichier définit trois choses :" - -#: extending/newtypes_tutorial.rst:48 -#, fuzzy -msgid "" -"What a :class:`!Custom` **object** contains: this is the ``CustomObject`` " -"struct, which is allocated once for each :class:`!Custom` instance." -msgstr "" -"Ce qu'un **objet** :class:`Custom` contient : c'est la structure " -"``CustomObject``, qui est allouée une fois pour chaque instance " -"de :class:`Custom`." - -#: extending/newtypes_tutorial.rst:50 -#, fuzzy -msgid "" -"How the :class:`!Custom` **type** behaves: this is the ``CustomType`` " -"struct, which defines a set of flags and function pointers that the " -"interpreter inspects when specific operations are requested." -msgstr "" -"Comment le **type** :class:`Custom` se comporte : c'est la structure " -"``CustomType``, qui définit l'ensemble des options et pointeurs de fonction " -"utilisés par l'interpréteur." - -#: extending/newtypes_tutorial.rst:53 -#, fuzzy -msgid "" -"How to define and execute the :mod:`!custom` module: this is the " -"``PyInit_custom`` function and the associated ``custom_module`` struct for " -"defining the module, and the ``custom_module_exec`` function to set up a " -"fresh module object." -msgstr "" -"Comment initialiser le module :mod:`custom` : c'est la fonction " -"``PyInit_custom`` et la structure associée ``custommodule``." - -#: extending/newtypes_tutorial.rst:58 -msgid "The first bit is::" -msgstr "Commençons par ::" - -#: extending/newtypes_tutorial.rst:64 -msgid "" -"This is what a Custom object will contain. ``PyObject_HEAD`` is mandatory " -"at the start of each object struct and defines a field called ``ob_base`` of " -"type :c:type:`PyObject`, containing a pointer to a type object and a " -"reference count (these can be accessed using the macros :c:macro:`Py_TYPE` " -"and :c:macro:`Py_REFCNT` respectively). The reason for the macro is to " -"abstract away the layout and to enable additional fields in :ref:`debug " -"builds `." -msgstr "" -"C'est ce qu'un objet ``Custom`` contient. ``PyObject_HEAD`` est " -"obligatoirement au début de chaque structure d'objet et définit un champ " -"appelé ``ob_base`` de type :c:type:`PyObject`, contenant un pointeur vers un " -"objet type et un compteur de références (on peut y accéder en utilisant les " -"macros :c:macro:`Py_TYPE` et :c:macro:`Py_REFCNT`, respectivement). La " -"raison d'être de ces macros est d'abstraire l'agencement de la structure, et " -"ainsi de permettre l'ajout de champs en :ref:`mode débogage `." - -# suit un : -#: extending/newtypes_tutorial.rst:73 -msgid "" -"There is no semicolon above after the :c:macro:`PyObject_HEAD` macro. Be " -"wary of adding one by accident: some compilers will complain." -msgstr "" -"il n'y a pas de point-virgule après la macro :c:macro:`PyObject_HEAD`. " -"Attention à ne pas l'ajouter par accident : certains compilateurs pourraient " -"s'en plaindre." - -#: extending/newtypes_tutorial.rst:76 -msgid "" -"Of course, objects generally store additional data besides the standard " -"``PyObject_HEAD`` boilerplate; for example, here is the definition for " -"standard Python floats::" -msgstr "" -"Bien sûr, les objets ajoutent généralement des données supplémentaires après " -"l'entête standard ``PyObject_HEAD``. Par exemple voici la définition du type " -"standard Python ``float`` ::" - -#: extending/newtypes_tutorial.rst:85 -msgid "The second bit is the definition of the type object. ::" -msgstr "La deuxième partie est la définition de l'objet type ::" - -# suit un : -#: extending/newtypes_tutorial.rst:98 -msgid "" -"We recommend using C99-style designated initializers as above, to avoid " -"listing all the :c:type:`PyTypeObject` fields that you don't care about and " -"also to avoid caring about the fields' declaration order." -msgstr "" -"nous recommandons d'utiliser la syntaxe d'initialisation nommée (C99) pour " -"remplir la structure, comme ci-dessus, afin d'éviter d'avoir à lister les " -"champs de :c:type:`PyTypeObject` dont vous n'avez pas besoin, et de ne pas " -"vous soucier de leur ordre." - -#: extending/newtypes_tutorial.rst:102 -msgid "" -"The actual definition of :c:type:`PyTypeObject` in :file:`object.h` has many " -"more :ref:`fields ` than the definition above. The remaining " -"fields will be filled with zeros by the C compiler, and it's common practice " -"to not specify them explicitly unless you need them." -msgstr "" -"La définition de :c:type:`PyTypeObject` dans :file:`object.h` contient en " -"fait bien plus de :ref:`champs ` que la définition ci-dessus. " -"Les champs restants sont mis à zéro par le compilateur C, et c'est une " -"pratique répandue de ne pas spécifier les champs dont vous n'avez pas besoin." - -#: extending/newtypes_tutorial.rst:107 -msgid "We're going to pick it apart, one field at a time::" -msgstr "Regardons les champs de cette structure, un par un ::" - -#: extending/newtypes_tutorial.rst:111 -msgid "" -"This line is mandatory boilerplate to initialize the ``ob_base`` field " -"mentioned above. ::" -msgstr "" -"Cette ligne, obligatoire, initialise le champ ``ob_base`` mentionné " -"précédemment. ::" - -#: extending/newtypes_tutorial.rst:116 -msgid "" -"The name of our type. This will appear in the default textual " -"representation of our objects and in some error messages, for example:" -msgstr "" -"C'est le nom de notre type. Il apparaît dans la représentation textuelle par " -"défaut de nos objets, ainsi que dans quelques messages d'erreur, par " -"exemple :" - -#: extending/newtypes_tutorial.rst:126 -#, fuzzy -msgid "" -"Note that the name is a dotted name that includes both the module name and " -"the name of the type within the module. The module in this case is :mod:`!" -"custom` and the type is :class:`!Custom`, so we set the type name " -"to :class:`!custom.Custom`. Using the real dotted import path is important " -"to make your type compatible with the :mod:`pydoc` and :mod:`pickle` " -"modules. ::" -msgstr "" -"Notez que le nom comporte un point : il inclut le nom du module et le nom du " -"type. Dans ce cas le module est :mod:`custom` et le type " -"est :class:`Custom`, donc nous donnons comme nom :class:`custom.Custom`. " -"Nommer correctement son type, avec le point, est important pour le rendre " -"compatible avec :mod:`pydoc` et :mod:`pickle`. ::" - -#: extending/newtypes_tutorial.rst:135 -#, fuzzy -msgid "" -"This is so that Python knows how much memory to allocate when creating " -"new :class:`!Custom` instances. :c:member:`~PyTypeObject.tp_itemsize` is " -"only used for variable-sized objects and should otherwise be zero." -msgstr "" -"C'est pour que Python sache combien de mémoire allouer à la création d'une " -"nouvelle instance de :class:`Custom`. :c:member:`~PyTypeObject.tp_itemsize` " -"n'est utilisé que pour les objets de taille variable, sinon il doit rester à " -"zéro." - -# suit un : -#: extending/newtypes_tutorial.rst:141 -#, fuzzy -msgid "" -"If you want your type to be subclassable from Python, and your type has the " -"same :c:member:`~PyTypeObject.tp_basicsize` as its base type, you may have " -"problems with multiple inheritance. A Python subclass of your type will " -"have to list your type first in its :attr:`~type.__bases__`, or else it will " -"not be able to call your type's :meth:`~object.__new__` method without " -"getting an error. You can avoid this problem by ensuring that your type has " -"a larger value for :c:member:`~PyTypeObject.tp_basicsize` than its base type " -"does. Most of the time, this will be true anyway, because either your base " -"type will be :class:`object`, or else you will be adding data members to " -"your base type, and therefore increasing its size." -msgstr "" -"si vous voulez qu'une classe en Python puisse hériter de votre type, et que " -"votre type a le même :c:member:`~PyTypeObject.tp_basicsize` que son parent, " -"vous rencontrerez des problèmes avec l'héritage multiple. Une sous-classe " -"Python de votre type devra lister votre type en premier dans " -"son :attr:`~class.__bases__`, sans quoi elle ne sera pas capable d'appeler " -"la méthode :meth:`__new__` de votre type sans erreur. Vous pouvez éviter ce " -"problème en vous assurant que votre type a " -"un :c:member:`~PyTypeObject.tp_basicsize` plus grand que son parent. La " -"plupart du temps ce sera vrai (soit son parent sera :class:`object`, soit " -"vous ajouterez des attributs à votre type, augmentant ainsi sa taille)." - -#: extending/newtypes_tutorial.rst:151 -msgid "We set the class flags to :c:macro:`Py_TPFLAGS_DEFAULT`. ::" -msgstr "" -"Nous définissons les drapeaux de la classe à :c:macro:`Py_TPFLAGS_DEFAULT` ::" - -#: extending/newtypes_tutorial.rst:155 -msgid "" -"All types should include this constant in their flags. It enables all of " -"the members defined until at least Python 3.3. If you need further members, " -"you will need to OR the corresponding flags." -msgstr "" -"Chaque type doit inclure cette constante dans ses options : elle active tous " -"les membres définis jusqu'à au moins Python 3.3. Si vous avez besoin de plus " -"de membres, vous pouvez la combiner à d'autres constantes avec un *OU* " -"binaire." - -#: extending/newtypes_tutorial.rst:159 -msgid "" -"We provide a doc string for the type in :c:member:`~PyTypeObject.tp_doc`. ::" -msgstr "" -"Nous fournissons une *docstring* pour ce type via le " -"membre :c:member:`~PyTypeObject.tp_doc`. ::" - -#: extending/newtypes_tutorial.rst:163 -#, fuzzy -msgid "" -"To enable object creation, we have to provide " -"a :c:member:`~PyTypeObject.tp_new` handler. This is the equivalent of the " -"Python method :meth:`~object.__new__`, but has to be specified explicitly. " -"In this case, we can just use the default implementation provided by the API " -"function :c:func:`PyType_GenericNew`. ::" -msgstr "" -"Pour permettre la création d'une instance, nous devons fournir un " -"*handler* :c:member:`~PyTypeObject.tp_new`, qui est l'équivalent de la " -"méthode Python :meth:`__new__`, mais elle a besoin d'être spécifiée " -"explicitement. Dans ce cas, on se contente de l'implémentation par défaut " -"fournie par la fonction :c:func:`PyType_GenericNew` de l'API. ::" - -#: extending/newtypes_tutorial.rst:170 -#, fuzzy -msgid "" -"Everything else in the file should be familiar, except for some code " -"in :c:func:`!custom_module_exec`::" -msgstr "" -"Le reste du fichier doit vous être familier, en dehors du code " -"de :c:func:`PyInit_custom` ::" - -#: extending/newtypes_tutorial.rst:177 -#, fuzzy -msgid "" -"This initializes the :class:`!Custom` type, filling in a number of members " -"to the appropriate default values, including :c:member:`~PyObject.ob_type` " -"that we initially set to ``NULL``. ::" -msgstr "" -"Il initialise le type :class:`Custom`, en assignant quelques membres à leurs " -"valeurs par défaut, tel que :attr:`ob_type` qui valait initialement " -"``NULL``. ::" - -#: extending/newtypes_tutorial.rst:185 -#, fuzzy -msgid "" -"This adds the type to the module dictionary. This allows us to " -"create :class:`!Custom` instances by calling the :class:`!Custom` class:" -msgstr "" -"Ici on ajoute le type au dictionnaire du module. Cela permet de créer une " -"instance de :class:`Custom` en appelant la classe :class:`Custom` :" - -#: extending/newtypes_tutorial.rst:193 -#, fuzzy -msgid "" -"That's it! All that remains is to build it; put the above code in a file " -"called :file:`custom.c`," -msgstr "" -"C'est tout ! Il ne reste plus qu'à compiler, placez le code ci-dessus dans " -"un fichier :file:`custom.c` et :" - -#: extending/newtypes_tutorial.rst:198 -#, fuzzy -msgid "in a file called :file:`pyproject.toml`, and" -msgstr "dans un fichier appelé :file:`setup.py` ; puis en tapant" - -#: extending/newtypes_tutorial.rst:205 -msgid "in a file called :file:`setup.py`; then typing" -msgstr "dans un fichier appelé :file:`setup.py` ; puis en tapant" - -#: extending/newtypes_tutorial.rst:211 -#, fuzzy -msgid "" -"in a shell should produce a file :file:`custom.so` in a subdirectory and " -"install it; now fire up Python --- you should be able to ``import custom`` " -"and play around with ``Custom`` objects." -msgstr "" -"à un shell doit produire un fichier :file:`custom.so` dans un sous-" -"répertoire ; déplacez-vous dans ce répertoire et lancez Python — vous " -"devriez pouvoir faire ``import custom`` et jouer avec des objets " -"personnalisés." - -#: extending/newtypes_tutorial.rst:215 -msgid "That wasn't so hard, was it?" -msgstr "Ce n'était pas si difficile, n'est-ce pas ?" - -#: extending/newtypes_tutorial.rst:217 -msgid "" -"Of course, the current Custom type is pretty uninteresting. It has no data " -"and doesn't do anything. It can't even be subclassed." -msgstr "" -"Bien sûr, le type personnalisé actuel est assez inintéressant. Il n'a pas de " -"données et ne fait rien. Il ne peut même pas être sous-classé." - -# suit un : -#: extending/newtypes_tutorial.rst:222 -msgid "Adding data and methods to the Basic example" -msgstr "ajout de données et de méthodes à l'exemple basique" - -#: extending/newtypes_tutorial.rst:224 -#, fuzzy -msgid "" -"Let's extend the basic example to add some data and methods. Let's also " -"make the type usable as a base class. We'll create a new module, :mod:`!" -"custom2` that adds these capabilities:" -msgstr "" -"Étendons l'exemple de base pour ajouter des données et des méthodes. Rendons " -"également le type utilisable comme classe de base. Nous allons créer un " -"nouveau module, :mod:`custom2` qui ajoute ces fonctionnalités :" - -#: extending/newtypes_tutorial.rst:231 -msgid "This version of the module has a number of changes." -msgstr "Cette version du module comporte un certain nombre de modifications." - -#: extending/newtypes_tutorial.rst:233 -#, fuzzy -msgid "" -"The :class:`!Custom` type now has three data attributes in its C struct, " -"*first*, *last*, and *number*. The *first* and *last* variables are Python " -"strings containing first and last names. The *number* attribute is a C " -"integer." -msgstr "" -"Le type :class:`Custom` a maintenant trois attributs de données dans sa " -"structure C, *first*, *last* et *number*. Les variables *first* et *last* " -"sont des chaînes Python contenant les noms et prénoms. L'attribut *number* " -"est un entier C." - -#: extending/newtypes_tutorial.rst:237 -msgid "The object structure is updated accordingly::" -msgstr "La structure de l'objet est mise à jour en conséquence ::" - -#: extending/newtypes_tutorial.rst:246 -msgid "" -"Because we now have data to manage, we have to be more careful about object " -"allocation and deallocation. At a minimum, we need a deallocation method::" -msgstr "" -"Comme nous avons maintenant des données à gérer, nous devons faire plus " -"attention à l'allocation et à la libération d'objets. Au minimum, nous avons " -"besoin d'une méthode de dés-allocation ::" - -#: extending/newtypes_tutorial.rst:258 -msgid "which is assigned to the :c:member:`~PyTypeObject.tp_dealloc` member::" -msgstr "qui est assignée au membre :c:member:`~PyTypeObject.tp_dealloc` ::" - -#: extending/newtypes_tutorial.rst:262 -#, fuzzy -msgid "" -"This method first clears the reference counts of the two Python " -"attributes. :c:func:`Py_XDECREF` correctly handles the case where its " -"argument is ``NULL`` (which might happen here if ``tp_new`` failed midway). " -"It then calls the :c:member:`~PyTypeObject.tp_free` member of the object's " -"type (computed by ``Py_TYPE(self)``) to free the object's memory. Note that " -"the object's type might not be :class:`!CustomType`, because the object may " -"be an instance of a subclass." -msgstr "" -"Cette méthode efface d'abord le nombre de références des deux attributs " -"Python. :c:func:`Py_XDECREF` gère correctement le cas où son argument est " -"``NULL`` (ce qui peut arriver ici si ``tp_new`` échoue à mi-chemin). Elle " -"appelle ensuite le membre :c:member:`~PyTypeObject.tp_free` du type de " -"l'objet (calculé par ``Py_TYPE(self)``) pour libérer la mémoire de l'objet. " -"Notez que le type de l'objet peut ne pas être :class:`CustomType`, car " -"l'objet peut être une instance d'une sous-classe." - -#: extending/newtypes_tutorial.rst:272 -#, fuzzy -msgid "" -"The explicit cast to ``CustomObject *`` above is needed because we defined " -"``Custom_dealloc`` to take a ``PyObject *`` argument, as the ``tp_dealloc`` " -"function pointer expects to receive a ``PyObject *`` argument. By assigning " -"to the ``tp_dealloc`` slot of a type, we declare that it can only be called " -"with instances of our ``CustomObject`` class, so the cast to ``(CustomObject " -"*)`` is safe. This is object-oriented polymorphism, in C!" -msgstr "" -"La conversion explicite en ``destructor`` ci-dessus est nécessaire car nous " -"avons défini ``Custom_dealloc`` pour prendre un argument ``CustomObject *``, " -"mais le pointeur de fonction ``tp_dealloc`` s'attend à recevoir un argument " -"``PyObject *``. Sinon, le compilateur émet un avertissement. C'est du " -"polymorphisme orienté objet, en C !" - -#: extending/newtypes_tutorial.rst:280 -msgid "" -"In existing code, or in previous versions of this tutorial, you might see " -"similar functions take a pointer to the subtype object structure " -"(``CustomObject*``) directly, like this::" -msgstr "" - -#: extending/newtypes_tutorial.rst:293 -msgid "" -"This does the same thing on all architectures that CPython supports, but " -"according to the C standard, it invokes undefined behavior." -msgstr "" - -#: extending/newtypes_tutorial.rst:297 -msgid "" -"We want to make sure that the first and last names are initialized to empty " -"strings, so we provide a ``tp_new`` implementation::" -msgstr "" -"Nous voulons nous assurer que le prénom et le nom sont initialisés avec des " -"chaînes vides, nous fournissons donc une implémentation ``tp_new`` ::" - -#: extending/newtypes_tutorial.rst:321 -msgid "and install it in the :c:member:`~PyTypeObject.tp_new` member::" -msgstr "et installez-le dans le membre :c:member:`~PyTypeObject.tp_new` ::" - -#: extending/newtypes_tutorial.rst:325 -#, fuzzy -msgid "" -"The ``tp_new`` handler is responsible for creating (as opposed to " -"initializing) objects of the type. It is exposed in Python as " -"the :meth:`~object.__new__` method. It is not required to define a " -"``tp_new`` member, and indeed many extension types will simply " -"reuse :c:func:`PyType_GenericNew` as done in the first version of " -"the :class:`!Custom` type above. In this case, we use the ``tp_new`` " -"handler to initialize the ``first`` and ``last`` attributes to non-``NULL`` " -"default values." -msgstr "" -"Le gestionnaire ``tp_new`` est responsable de la création (par opposition à " -"l'initialisation) des objets du type. Il est exposé en Python en tant que " -"méthode :meth:`__new__`. Il n'est pas nécessaire de définir un membre " -"``tp_new``, et en effet de nombreux types d'extension réutiliseront " -"simplement :c:func:`PyType_GenericNew` comme cela a été fait dans la " -"première version du type ``Custom`` ci-dessus. Dans ce cas, nous utilisons " -"le gestionnaire ``tp_new`` pour initialiser les attributs ``first`` et " -"``last`` à des valeurs par défaut non ``NULL``." - -#: extending/newtypes_tutorial.rst:333 -msgid "" -"``tp_new`` is passed the type being instantiated (not necessarily " -"``CustomType``, if a subclass is instantiated) and any arguments passed when " -"the type was called, and is expected to return the instance created. " -"``tp_new`` handlers always accept positional and keyword arguments, but they " -"often ignore the arguments, leaving the argument handling to initializer " -"(a.k.a. ``tp_init`` in C or ``__init__`` in Python) methods." -msgstr "" -"``tp_new`` reçoit le type en cours d'instanciation (pas nécessairement " -"``CustomType``, si une sous-classe est instanciée) et tous les arguments " -"passés lorsque le type a été appelé, et devrait renvoyer l'instance créée. " -"Les gestionnaires ``tp_new`` acceptent toujours les arguments positionnels " -"et nommés, mais ils ignorent souvent les arguments, laissant la gestion des " -"arguments aux méthodes d'initialisation (alias ``tp_init`` en C ou " -"``__init__`` en Python)." - -#: extending/newtypes_tutorial.rst:341 -msgid "" -"``tp_new`` shouldn't call ``tp_init`` explicitly, as the interpreter will do " -"it itself." -msgstr "" -"``tp_new`` ne doit pas appeler ``tp_init`` explicitement, car l'interpréteur " -"le fera lui-même." - -#: extending/newtypes_tutorial.rst:344 -msgid "" -"The ``tp_new`` implementation calls the :c:member:`~PyTypeObject.tp_alloc` " -"slot to allocate memory::" -msgstr "" -"L'implémentation ``tp_new`` appelle " -"l'emplacement :c:member:`~PyTypeObject.tp_alloc` pour allouer de la " -"mémoire ::" - -#: extending/newtypes_tutorial.rst:349 -msgid "" -"Since memory allocation may fail, we must check " -"the :c:member:`~PyTypeObject.tp_alloc` result against ``NULL`` before " -"proceeding." -msgstr "" -"Puisque l'allocation de mémoire peut échouer, nous devons vérifier le " -"résultat :c:member:`~PyTypeObject.tp_alloc` par rapport à ``NULL`` avant de " -"continuer." - -#: extending/newtypes_tutorial.rst:353 -msgid "" -"We didn't fill the :c:member:`~PyTypeObject.tp_alloc` slot ourselves. " -"Rather :c:func:`PyType_Ready` fills it for us by inheriting it from our base " -"class, which is :class:`object` by default. Most types use the default " -"allocation strategy." -msgstr "" -"Nous n'avons pas rempli l'emplacement :c:member:`~PyTypeObject.tp_alloc` " -"nous-mêmes. C'est :c:func:`PyType_Ready` qui le remplit pour nous car il en " -"hérite de notre classe mère, qui est :class:`object` par défaut. La plupart " -"des types utilisent la stratégie d'allocation par défaut." - -#: extending/newtypes_tutorial.rst:359 -#, fuzzy -msgid "" -"If you are creating a co-operative :c:member:`~PyTypeObject.tp_new` (one " -"that calls a base type's :c:member:`~PyTypeObject.tp_new` " -"or :meth:`~object.__new__`), you must *not* try to determine what method to " -"call using method resolution order at runtime. Always statically determine " -"what type you are going to call, and call " -"its :c:member:`~PyTypeObject.tp_new` directly, or via ``type->tp_base-" -">tp_new``. If you do not do this, Python subclasses of your type that also " -"inherit from other Python-defined classes may not work correctly. " -"(Specifically, you may not be able to create instances of such subclasses " -"without getting a :exc:`TypeError`.)" -msgstr "" -"Si vous créez une :c:member:`~PyTypeObject.tp_new` coopérative (qui " -"appelle :c:member:`~PyTypeObject.tp_new` ou :meth:`__new__` d'un type de " -"base), vous ne devez *pas* essayer de déterminer quelle méthode appeler en " -"utilisant l'ordre de résolution des méthodes au moment de l'exécution. " -"Déterminez toujours statiquement quel type vous allez appeler, et appelez " -"son :c:member:`~PyTypeObject.tp_new` directement, ou via ``type->tp_base-" -">tp_new``. Si vous ne le faites pas, les sous-classes Python de votre type " -"qui héritent également d'autres classes définies par Python risquent de ne " -"pas fonctionner correctement. (Plus précisément, vous ne pourrez peut-être " -"pas créer d'instances de telles sous-classes sans obtenir " -"une :exc:`TypeError`.)" - -#: extending/newtypes_tutorial.rst:369 -msgid "" -"We also define an initialization function which accepts arguments to provide " -"initial values for our instance::" -msgstr "" -"Nous définissons également une fonction d'initialisation qui accepte des " -"arguments pour fournir des valeurs initiales pour notre instance ::" - -#: extending/newtypes_tutorial.rst:399 -msgid "by filling the :c:member:`~PyTypeObject.tp_init` slot. ::" -msgstr "en remplissant l'emplacement :c:member:`~PyTypeObject.tp_init`. ::" - -#: extending/newtypes_tutorial.rst:403 -#, fuzzy -msgid "" -"The :c:member:`~PyTypeObject.tp_init` slot is exposed in Python as " -"the :meth:`~object.__init__` method. It is used to initialize an object " -"after it's created. Initializers always accept positional and keyword " -"arguments, and they should return either ``0`` on success or ``-1`` on error." -msgstr "" -"L'emplacement :c:member:`~PyTypeObject.tp_init` est exposé en Python en tant " -"que méthode :meth:`__init__`. Il est utilisé pour initialiser un objet après " -"sa création. Les constructeurs acceptent toujours les arguments positionnels " -"et nommés, et ils doivent renvoyer soit ``0`` en cas de succès, soit ``-1`` " -"en cas d'erreur." - -#: extending/newtypes_tutorial.rst:408 -#, fuzzy -msgid "" -"Unlike the ``tp_new`` handler, there is no guarantee that ``tp_init`` is " -"called at all (for example, the :mod:`pickle` module by default doesn't " -"call :meth:`~object.__init__` on unpickled instances). It can also be " -"called multiple times. Anyone can call the :meth:`!__init__` method on our " -"objects. For this reason, we have to be extra careful when assigning the " -"new attribute values. We might be tempted, for example to assign the " -"``first`` member like this::" -msgstr "" -"Contrairement au gestionnaire ``tp_new``, il n'y a aucune garantie que " -"``tp_init`` soit appelé (par exemple, le module :mod:`pickle` par défaut " -"n'appelle pas :meth:`__init__` sur les instances *unpickled*). Il peut " -"également être appelé plusieurs fois. N'importe qui peut appeler la " -"méthode :meth:`__init__` sur nos objets. Pour cette raison, nous devons être " -"très prudents lors de l'attribution des nouvelles valeurs d'attribut. On " -"pourrait être tenté, par exemple, d'affecter le membre ``first`` comme " -"ceci ::" - -#: extending/newtypes_tutorial.rst:422 -#, fuzzy -msgid "" -"But this would be risky. Our type doesn't restrict the type of the " -"``first`` member, so it could be any kind of object. It could have a " -"destructor that causes code to be executed that tries to access the " -"``first`` member; or that destructor could detach the :term:`thread state " -"` and let arbitrary code run in other threads that " -"accesses and modifies our object." -msgstr "" -"Mais ce serait risqué. Notre type ne limite pas le type du membre ``first``, " -"il peut donc s'agir de n'importe quel type d'objet. Il pourrait avoir un " -"destructeur qui provoque l'exécution de code essayant d'accéder au membre " -"``first`` ; ou ce destructeur pourrait libérer le :term:`Global interpreter " -"Lock ` et laisser du code arbitraire s'exécuter dans d'autres threads " -"qui accèdent et modifient notre objet." - -#: extending/newtypes_tutorial.rst:429 -msgid "" -"To be paranoid and protect ourselves against this possibility, we almost " -"always reassign members before decrementing their reference counts. When " -"don't we have to do this?" -msgstr "" -"Dans une optique paranoïaque et se prémunir contre cette éventualité, on " -"réaffecte presque toujours les membres avant de décrémenter leur compteur de " -"références. Quand ne devons-nous pas faire cela ?" - -#: extending/newtypes_tutorial.rst:433 -msgid "when we absolutely know that the reference count is greater than 1;" -msgstr "lorsque l'on est sûr que le compteur de références est supérieur à 1 ;" - -#: extending/newtypes_tutorial.rst:435 -#, fuzzy -msgid "" -"when we know that deallocation of the object [#]_ will neither detach " -"the :term:`thread state ` nor cause any calls back " -"into our type's code;" -msgstr "" -"lorsque nous savons que la libération de la mémoire de l'objet [#]_ ne " -"libérera pas le :term:`GIL` ni ne provoquera de rappel dans le code de notre " -"type ;" - -#: extending/newtypes_tutorial.rst:438 -msgid "" -"when decrementing a reference count in " -"a :c:member:`~PyTypeObject.tp_dealloc` handler on a type which doesn't " -"support cyclic garbage collection [#]_." -msgstr "" -"lors de la décrémentation d'un compteur de références dans un " -"gestionnaire :c:member:`~PyTypeObject.tp_dealloc` sur un type qui ne prend " -"pas en charge le ramasse-miettes cyclique [#]_." - -#: extending/newtypes_tutorial.rst:441 -msgid "" -"We want to expose our instance variables as attributes. There are a number " -"of ways to do that. The simplest way is to define member definitions::" -msgstr "" -"Nous voulons exposer nos variables d'instance en tant qu'attributs. Il " -"existe plusieurs façons de le faire. Le moyen le plus simple consiste à " -"définir des définitions de membres ::" - -#: extending/newtypes_tutorial.rst:454 -msgid "" -"and put the definitions in the :c:member:`~PyTypeObject.tp_members` slot::" -msgstr "" -"et placer les définitions dans " -"l'emplacement :c:member:`~PyTypeObject.tp_members` ::" - -#: extending/newtypes_tutorial.rst:458 -msgid "" -"Each member definition has a member name, type, offset, access flags and " -"documentation string. See the :ref:`Generic-Attribute-Management` section " -"below for details." -msgstr "" -"Chaque définition de membre possède un nom, un type, un décalage, des " -"indicateurs d'accès et une chaîne de documentation. Voir la " -"section :ref:`Generic-Attribute-Management` ci-dessous pour plus de détails." - -#: extending/newtypes_tutorial.rst:462 -msgid "" -"A disadvantage of this approach is that it doesn't provide a way to restrict " -"the types of objects that can be assigned to the Python attributes. We " -"expect the first and last names to be strings, but any Python objects can be " -"assigned. Further, the attributes can be deleted, setting the C pointers to " -"``NULL``. Even though we can make sure the members are initialized to non-" -"``NULL`` values, the members can be set to ``NULL`` if the attributes are " -"deleted." -msgstr "" -"Un inconvénient de cette approche est qu'elle ne permet pas de restreindre " -"les types d'objets pouvant être affectés aux attributs Python. Nous nous " -"attendons à ce que le prénom et le nom soient des chaînes, mais tous les " -"objets Python peuvent être affectés. De plus, les attributs peuvent être " -"supprimés, en définissant les pointeurs C sur ``NULL``. Même si nous pouvons " -"nous assurer que les membres sont initialisés avec des valeurs non ``NULL``, " -"les membres peuvent être définis sur ``NULL`` si les attributs sont " -"supprimés." - -#: extending/newtypes_tutorial.rst:469 -#, fuzzy -msgid "" -"We define a single method, :meth:`!Custom.name`, that outputs the objects " -"name as the concatenation of the first and last names. ::" -msgstr "" -"Nous définissons une seule méthode, :meth:`Custom.name()`, qui génère le nom " -"des objets sous la forme de la concaténation des prénom et nom. ::" - -#: extending/newtypes_tutorial.rst:487 -#, fuzzy -msgid "" -"The method is implemented as a C function that takes a :class:`!Custom` " -"(or :class:`!Custom` subclass) instance as the first argument. Methods " -"always take an instance as the first argument. Methods often take positional " -"and keyword arguments as well, but in this case we don't take any and don't " -"need to accept a positional argument tuple or keyword argument dictionary. " -"This method is equivalent to the Python method:" -msgstr "" -"La méthode est implémentée comme une fonction C qui prend une " -"instance :class:`Custom` (ou une sous-classe de :class:`Custom`) comme " -"premier argument. Les méthodes prennent toujours une instance comme premier " -"argument. Les méthodes prennent souvent aussi des arguments positionnels et " -"nommés, mais dans ce cas nous n'en prenons aucun et n'avons pas besoin " -"d'accepter un *n*-uplet d'arguments positionnels ou un dictionnaire en " -"argument nommé. Cette méthode est équivalente à la méthode Python :" - -#: extending/newtypes_tutorial.rst:499 -#, fuzzy -msgid "" -"Note that we have to check for the possibility that our :attr:`!first` " -"and :attr:`!last` members are ``NULL``. This is because they can be " -"deleted, in which case they are set to ``NULL``. It would be better to " -"prevent deletion of these attributes and to restrict the attribute values to " -"be strings. We'll see how to do that in the next section." -msgstr "" -"Notez que nous devons vérifier la possibilité que nos membres :attr:`first` " -"et :attr:`last` soient ``NULL``. En effet, ils peuvent être supprimés, " -"auquel cas ils sont définis sur ``NULL``. Il serait préférable d'empêcher la " -"suppression de ces attributs et de limiter les valeurs d'attribut à des " -"chaînes. Nous verrons comment procéder dans la section suivante." - -#: extending/newtypes_tutorial.rst:505 -msgid "" -"Now that we've defined the method, we need to create an array of method " -"definitions::" -msgstr "" -"Maintenant que nous avons défini la méthode, nous devons créer un tableau de " -"définitions de méthode ::" - -#: extending/newtypes_tutorial.rst:515 -msgid "" -"(note that we used the :c:macro:`METH_NOARGS` flag to indicate that the " -"method is expecting no arguments other than *self*)" -msgstr "" -"(notez que nous avons utilisé le drapeau :c:macro:`METH_NOARGS` pour " -"indiquer que la méthode n'attend aucun argument autre que *self*)" - -#: extending/newtypes_tutorial.rst:518 -msgid "and assign it to the :c:member:`~PyTypeObject.tp_methods` slot::" -msgstr "" -"et assignons-le à l'emplacement :c:member:`~PyTypeObject.tp_methods` ::" - -#: extending/newtypes_tutorial.rst:522 -msgid "" -"Finally, we'll make our type usable as a base class for subclassing. We've " -"written our methods carefully so far so that they don't make any assumptions " -"about the type of the object being created or used, so all we need to do is " -"to add the :c:macro:`Py_TPFLAGS_BASETYPE` to our class flag definition::" -msgstr "" -"Enfin, nous rendons notre type utilisable comme classe de base pour le sous-" -"classement. Nous avons écrit nos méthodes avec soin jusqu'à présent afin " -"qu'elles ne fassent aucune hypothèse sur le type de l'objet créé ou utilisé, " -"donc tout ce que nous avons à faire est d'ajouter la " -"macro :c:macro:`Py_TPFLAGS_BASETYPE` à notre définition d'indicateur de " -"classe ::" - -#: extending/newtypes_tutorial.rst:529 -#, fuzzy -msgid "" -"We rename :c:func:`!PyInit_custom` to :c:func:`!PyInit_custom2`, update the " -"module name in the :c:type:`PyModuleDef` struct, and update the full class " -"name in the :c:type:`PyTypeObject` struct." -msgstr "" -"Nous renommons :c:func:`PyInit_custom` en :c:func:`PyInit_custom2`, mettons " -"à jour le nom du module dans la structure :c:type:`PyModuleDef` et mettons à " -"jour le nom complet de la classe dans la structure :c:type:`PyTypeObject`." - -#: extending/newtypes_tutorial.rst:533 -#, fuzzy -msgid "Finally, we update our :file:`setup.py` file to include the new module," -msgstr "" -"Enfin, nous mettons à jour notre fichier :file:`setup.py` pour construire le " -"nouveau module :" - -#: extending/newtypes_tutorial.rst:543 -msgid "and then we re-install so that we can ``import custom2``:" -msgstr "" - -#: extending/newtypes_tutorial.rst:550 -msgid "Providing finer control over data attributes" -msgstr "Contrôle précis sur les attributs de données" - -#: extending/newtypes_tutorial.rst:552 -#, fuzzy -msgid "" -"In this section, we'll provide finer control over how the :attr:`!first` " -"and :attr:`!last` attributes are set in the :class:`!Custom` example. In the " -"previous version of our module, the instance variables :attr:`!first` " -"and :attr:`!last` could be set to non-string values or even deleted. We want " -"to make sure that these attributes always contain strings." -msgstr "" -"Dans cette section, nous assurons un contrôle plus précis sur la façon dont " -"les attributs :attr:`first` et :attr:`last` sont définis dans " -"l'exemple :class:`Custom`. Dans la version précédente de notre module, les " -"variables d'instance :attr:`first` et :attr:`last` pouvaient être définies " -"sur des valeurs autres que des chaînes ou même supprimées. Nous voulons nous " -"assurer que ces attributs contiennent toujours des chaînes." - -#: extending/newtypes_tutorial.rst:561 -#, fuzzy -msgid "" -"To provide greater control, over the :attr:`!first` and :attr:`!last` " -"attributes, we'll use custom getter and setter functions. Here are the " -"functions for getting and setting the :attr:`!first` attribute::" -msgstr "" -"Pour avoir un meilleur contrôle sur les attributs :attr:`first` " -"et :attr:`last`, nous utilisons des fonctions accesseur (*getter*) et " -"mutateur (*setter*) personnalisées. Voici les fonctions pour obtenir et " -"définir l'attribut :attr:`first` ::" - -#: extending/newtypes_tutorial.rst:594 -#, fuzzy -msgid "" -"The getter function is passed a :class:`!Custom` object and a \"closure\", " -"which is a void pointer. In this case, the closure is ignored. (The " -"closure supports an advanced usage in which definition data is passed to the " -"getter and setter. This could, for example, be used to allow a single set of " -"getter and setter functions that decide the attribute to get or set based on " -"data in the closure.)" -msgstr "" -"L'accesseur reçoit un objet :class:`Custom` et une fermeture qui est un " -"pointeur vide. Dans ce cas, la fermeture est ignorée. (La fermeture prend en " -"charge une utilisation avancée dans laquelle les données de définition sont " -"transmises à l'accesseur et au mutateur. Cela pourrait, par exemple, être " -"utilisé pour autoriser un seul ensemble de fonctions accesseur et mutateur " -"qui décident de l'attribut à obtenir ou à définir en fonction des données " -"dans la fermeture.)" - -#: extending/newtypes_tutorial.rst:600 -#, fuzzy -msgid "" -"The setter function is passed the :class:`!Custom` object, the new value, " -"and the closure. The new value may be ``NULL``, in which case the attribute " -"is being deleted. In our setter, we raise an error if the attribute is " -"deleted or if its new value is not a string." -msgstr "" -"Le mutateur reçoit l'objet :class:`Custom`, la nouvelle valeur et la " -"fermeture. La nouvelle valeur peut être ``NULL``, auquel cas l'attribut est " -"supprimé. Dans notre mutateur, nous levons une erreur si l'attribut est " -"supprimé ou si sa nouvelle valeur n'est pas une chaîne." - -#: extending/newtypes_tutorial.rst:605 -msgid "We create an array of :c:type:`PyGetSetDef` structures::" -msgstr "Nous créons un tableau de structures :c:type:`PyGetSetDef` ::" - -#: extending/newtypes_tutorial.rst:615 -msgid "and register it in the :c:member:`~PyTypeObject.tp_getset` slot::" -msgstr "" -"et l'enregistrons dans l'emplacement :c:member:`~PyTypeObject.tp_getset` ::" - -#: extending/newtypes_tutorial.rst:619 -msgid "" -"The last item in a :c:type:`PyGetSetDef` structure is the \"closure\" " -"mentioned above. In this case, we aren't using a closure, so we just pass " -"``NULL``." -msgstr "" -"Le dernier élément d'une structure :c:type:`PyGetSetDef` est la fermeture " -"mentionnée ci-dessus. Dans ce cas, nous n'utilisons pas de fermeture, nous " -"passons donc simplement ``NULL``." - -#: extending/newtypes_tutorial.rst:622 -msgid "We also remove the member definitions for these attributes::" -msgstr "" -"Nous supprimons également les définitions de membre pour ces attributs :" - -#: extending/newtypes_tutorial.rst:630 -msgid "" -"We also need to update the :c:member:`~PyTypeObject.tp_init` handler to only " -"allow strings [#]_ to be passed::" -msgstr "" -"Nous devons également mettre à jour le " -"gestionnaire :c:member:`~PyTypeObject.tp_init` pour autoriser uniquement le " -"passage des chaînes [#]_ ::" - -#: extending/newtypes_tutorial.rst:660 -msgid "" -"With these changes, we can assure that the ``first`` and ``last`` members " -"are never ``NULL`` so we can remove checks for ``NULL`` values in almost all " -"cases. This means that most of the :c:func:`Py_XDECREF` calls can be " -"converted to :c:func:`Py_DECREF` calls. The only place we can't change " -"these calls is in the ``tp_dealloc`` implementation, where there is the " -"possibility that the initialization of these members failed in ``tp_new``." -msgstr "" -"Avec ces modifications, nous pouvons garantir que les membres ``first`` et " -"``last`` ne sont jamais ``NULL``, nous pouvons donc supprimer les " -"vérifications des valeurs ``NULL`` dans presque tous les cas. Cela signifie " -"que la plupart des appels :c:func:`Py_XDECREF` peuvent être convertis en " -"appels :c:func:`Py_DECREF`. Le seul endroit où nous ne pouvons pas modifier " -"ces appels est dans l'implémentation de ``tp_dealloc``, où il est possible " -"que l'initialisation de ces membres ait échoué dans ``tp_new``." - -#: extending/newtypes_tutorial.rst:667 -msgid "" -"We also rename the module initialization function and module name in the " -"initialization function, as we did before, and we add an extra definition to " -"the :file:`setup.py` file." -msgstr "" -"Nous renommons également la fonction d'initialisation du module et le nom du " -"module dans la fonction d'initialisation, comme nous l'avons fait " -"précédemment, et nous ajoutons une définition supplémentaire au " -"fichier :file:`setup.py`." - -#: extending/newtypes_tutorial.rst:673 -msgid "Supporting cyclic garbage collection" -msgstr "Prise en charge du ramasse-miettes cyclique" - -#: extending/newtypes_tutorial.rst:675 -msgid "" -"Python has a :term:`cyclic garbage collector (GC) ` that " -"can identify unneeded objects even when their reference counts are not zero. " -"This can happen when objects are involved in cycles. For example, consider:" -msgstr "" -"Python a un :term:`ramasse-miettes cyclique ` qui peut " -"identifier les objets inutiles même lorsque leur compteur de références " -"n'est pas nul. Cela peut se produire lorsque des objets sont impliqués dans " -"des cycles. Par exemple, considérons :" - -#: extending/newtypes_tutorial.rst:685 -msgid "" -"In this example, we create a list that contains itself. When we delete it, " -"it still has a reference from itself. Its reference count doesn't drop to " -"zero. Fortunately, Python's cyclic garbage collector will eventually figure " -"out that the list is garbage and free it." -msgstr "" -"Dans cet exemple, nous créons une liste qui se contient elle-même. Lorsque " -"nous la supprimons, il existe toujours une référence à elle-même. Son " -"compteur de références ne tombe pas à zéro. Heureusement, le ramasse-miettes " -"cyclique de Python finira par comprendre que la liste est un déchet et la " -"libérera." - -#: extending/newtypes_tutorial.rst:690 -#, fuzzy -msgid "" -"In the second version of the :class:`!Custom` example, we allowed any kind " -"of object to be stored in the :attr:`!first` or :attr:`!last` attributes " -"[#]_. Besides, in the second and third versions, we allowed " -"subclassing :class:`!Custom`, and subclasses may add arbitrary attributes. " -"For any of those two reasons, :class:`!Custom` objects can participate in " -"cycles:" -msgstr "" -"Dans la seconde version de l'exemple :class:`Custom`, nous avons autorisé le " -"stockage de n'importe quel type d'objet dans les attributs :attr:`first` " -"ou :attr:`last` [#]_. De plus, dans les deuxième et troisième versions, nous " -"avons autorisé le sous-classement de :class:`Custom`, et les sous-classes " -"peuvent ajouter des attributs arbitraires. Pour l'une de ces deux raisons, " -"les objets :class:`Custom` peuvent produire des cycles :" - -#: extending/newtypes_tutorial.rst:704 -#, fuzzy -msgid "" -"To allow a :class:`!Custom` instance participating in a reference cycle to " -"be properly detected and collected by the cyclic GC, our :class:`!Custom` " -"type needs to fill two additional slots and to enable a flag that enables " -"these slots:" -msgstr "" -"Pour permettre à une instance :class:`Custom` participant à des références " -"cycliques d'être correctement détectée et collectée par le ramasse-miettes " -"cyclique, notre type :class:`Custom` doit définir deux emplacements " -"supplémentaires et activer un drapeau qui active ces emplacements :" - -#: extending/newtypes_tutorial.rst:711 -msgid "" -"First, the traversal method lets the cyclic GC know about subobjects that " -"could participate in cycles::" -msgstr "" -"Tout d'abord, la méthode de parcours (*Custom_traverse*) permet au ramasse-" -"miettes cyclique de connaître les sous-objets qui pourraient conduire à des " -"cycles ::" - -#: extending/newtypes_tutorial.rst:732 -#, fuzzy -msgid "" -"For each subobject that can participate in cycles, we need to call " -"the :c:func:`!visit` function, which is passed to the traversal method. " -"The :c:func:`!visit` function takes as arguments the subobject and the extra " -"argument *arg* passed to the traversal method. It returns an integer value " -"that must be returned if it is non-zero." -msgstr "" -"Pour chaque sous-objet pouvant conduire à des cycles, nous devons appeler la " -"fonction :c:func:`visit`, qui est passée à la méthode de parcours. La " -"fonction :c:func:`visit` prend comme arguments le sous-objet et l'argument " -"supplémentaire *arg* passé à la méthode de parcours. Elle renvoie une valeur " -"entière qui doit être renvoyée si elle est différente de zéro." - -#: extending/newtypes_tutorial.rst:738 -msgid "" -"Python provides a :c:func:`Py_VISIT` macro that automates calling visit " -"functions. With :c:func:`Py_VISIT`, we can minimize the amount of " -"boilerplate in ``Custom_traverse``::" -msgstr "" -"Python fournit une macro :c:func:`Py_VISIT` qui automatise l'appel des " -"fonctions de visite. Avec :c:func:`Py_VISIT`, nous pouvons minimiser la " -"quantité de code générique dans ``Custom_traverse`` ::" - -# suit un : -#: extending/newtypes_tutorial.rst:752 -msgid "" -"The :c:member:`~PyTypeObject.tp_traverse` implementation must name its " -"arguments exactly *visit* and *arg* in order to use :c:func:`Py_VISIT`." -msgstr "" -"l'implémentation :c:member:`~PyTypeObject.tp_traverse` doit nommer ses " -"arguments exactement *visit* et *arg* afin d'utiliser :c:func:`Py_VISIT`." - -#: extending/newtypes_tutorial.rst:755 -msgid "" -"Second, we need to provide a method for clearing any subobjects that can " -"participate in cycles::" -msgstr "" -"Deuxièmement, nous devons fournir une méthode pour effacer tous les sous-" -"objets qui peuvent conduire à des cycles ::" - -#: extending/newtypes_tutorial.rst:767 -msgid "" -"Notice the use of the :c:func:`Py_CLEAR` macro. It is the recommended and " -"safe way to clear data attributes of arbitrary types while decrementing " -"their reference counts. If you were to call :c:func:`Py_XDECREF` instead on " -"the attribute before setting it to ``NULL``, there is a possibility that the " -"attribute's destructor would call back into code that reads the attribute " -"again (*especially* if there is a reference cycle)." -msgstr "" -"Notez l'utilisation de la macro :c:func:`Py_CLEAR`. C'est le moyen " -"recommandé et sûr d'effacer les attributs de données de types arbitraires " -"tout en décrémentant leur compteur de références. Si vous deviez " -"appeler :c:func:`Py_XDECREF` à la place sur l'attribut avant de le définir " -"sur ``NULL``, il est possible que le destructeur de l'attribut appelle du " -"code qui lit à nouveau l'attribut (*surtout* s'il existe un cycle de " -"références)." - -# suit un : -#: extending/newtypes_tutorial.rst:775 -msgid "You could emulate :c:func:`Py_CLEAR` by writing::" -msgstr "vous pouvez émuler :c:func:`Py_CLEAR` en écrivant ::" - -#: extending/newtypes_tutorial.rst:782 -msgid "" -"Nevertheless, it is much easier and less error-prone to always " -"use :c:func:`Py_CLEAR` when deleting an attribute. Don't try to micro-" -"optimize at the expense of robustness!" -msgstr "" -"Néanmoins, il est beaucoup plus facile et moins sujet aux erreurs de " -"toujours utiliser :c:func:`Py_CLEAR` lors de la suppression d'un attribut. " -"N'essayez pas de micro-optimiser au détriment de la robustesse !" - -#: extending/newtypes_tutorial.rst:786 -msgid "" -"The deallocator ``Custom_dealloc`` may call arbitrary code when clearing " -"attributes. It means the circular GC can be triggered inside the function. " -"Since the GC assumes reference count is not zero, we need to untrack the " -"object from the GC by calling :c:func:`PyObject_GC_UnTrack` before clearing " -"members. Here is our reimplemented deallocator " -"using :c:func:`PyObject_GC_UnTrack` and ``Custom_clear``::" -msgstr "" -"La fonction de libération de la mémoire ``Custom_dealloc`` peut appeler du " -"code arbitraire lors de la suppression des attributs. Cela signifie que le " -"ramasse-miettes cyclique peut être déclenché à l'intérieur de la fonction. " -"Étant donné que le ramasse-miettes suppose que le nombre de références n'est " -"pas nul, nous devons annuler le suivi de l'objet par le ramasse-miettes en " -"appelant :c:func:`PyObject_GC_UnTrack` avant d'effacer les membres. Voici " -"notre fonction de libération de la mémoire réimplémentée en " -"utilisant :c:func:`PyObject_GC_UnTrack` et ``Custom_clear`` ::" - -#: extending/newtypes_tutorial.rst:801 -msgid "" -"Finally, we add the :c:macro:`Py_TPFLAGS_HAVE_GC` flag to the class flags::" -msgstr "" -"Enfin, nous ajoutons le drapeau :c:macro:`Py_TPFLAGS_HAVE_GC` aux drapeaux " -"de la classe ::" - -#: extending/newtypes_tutorial.rst:805 -msgid "" -"That's pretty much it. If we had written " -"custom :c:member:`~PyTypeObject.tp_alloc` " -"or :c:member:`~PyTypeObject.tp_free` handlers, we'd need to modify them for " -"cyclic garbage collection. Most extensions will use the versions " -"automatically provided." -msgstr "" -"C'est à peu près tout. Si nous avions écrit des gestionnaires " -"personnalisés :c:member:`~PyTypeObject.tp_alloc` " -"ou :c:member:`~PyTypeObject.tp_free`, nous aurions besoin de les modifier " -"pour le ramasse-miettes cyclique. La plupart des extensions utilisent les " -"versions fournies automatiquement." - -#: extending/newtypes_tutorial.rst:811 -msgid "Subclassing other types" -msgstr "Sous-classement d'autres types" - -#: extending/newtypes_tutorial.rst:813 -msgid "" -"It is possible to create new extension types that are derived from existing " -"types. It is easiest to inherit from the built in types, since an extension " -"can easily use the :c:type:`PyTypeObject` it needs. It can be difficult to " -"share these :c:type:`PyTypeObject` structures between extension modules." -msgstr "" -"Il est possible de créer de nouveaux types d'extension dérivés de types " -"existants. Il est plus facile d'hériter des types natifs, car une extension " -"peut facilement utiliser le :c:type:`PyTypeObject` dont elle a besoin. Il " -"peut être difficile de partager ces structures :c:type:`PyTypeObject` entre " -"modules d'extension." - -#: extending/newtypes_tutorial.rst:818 -#, fuzzy -msgid "" -"In this example we will create a :class:`!SubList` type that inherits from " -"the built-in :class:`list` type. The new type will be completely compatible " -"with regular lists, but will have an additional :meth:`!increment` method " -"that increases an internal counter:" -msgstr "" -"Dans cet exemple, nous allons créer un type :class:`SubList` qui hérite du " -"type intégré :class:`list`. Le nouveau type sera complètement compatible " -"avec les listes natives, mais aura une méthode " -"supplémentaire :meth:`increment` qui augmente un compteur interne :" - -#: extending/newtypes_tutorial.rst:838 -#, fuzzy -msgid "" -"As you can see, the source code closely resembles the :class:`!Custom` " -"examples in previous sections. We will break down the main differences " -"between them. ::" -msgstr "" -"Comme vous pouvez le voir, le code source ressemble beaucoup aux " -"exemples :class:`Custom` des sections précédentes. Analysons les principales " -"différences ::" - -#: extending/newtypes_tutorial.rst:846 -msgid "" -"The primary difference for derived type objects is that the base type's " -"object structure must be the first value. The base type will already " -"include the :c:func:`PyObject_HEAD` at the beginning of its structure." -msgstr "" -"La principale différence pour les objets d'un type dérivé est que la " -"structure d'objet du type père doit être la première valeur. Le type père " -"inclut déjà le :c:func:`PyObject_HEAD` au début de sa structure." - -#: extending/newtypes_tutorial.rst:850 -#, fuzzy -msgid "" -"When a Python object is a :class:`!SubList` instance, its ``PyObject *`` " -"pointer can be safely cast to both ``PyListObject *`` and ``SubListObject " -"*``::" -msgstr "" -"Lorsqu'un objet Python est une instance de :class:`SubList`, son pointeur " -"``PyObject *`` peut être trans-typé en toute sécurité vers ``PyListObject " -"*`` et ``SubListObject *`` ::" - -#: extending/newtypes_tutorial.rst:863 -#, fuzzy -msgid "" -"We see above how to call through to the :meth:`~object.__init__` method of " -"the base type." -msgstr "" -"Nous voyons ci-dessus comment appeler la méthode :attr:`__init__` du type " -"père." - -#: extending/newtypes_tutorial.rst:866 -msgid "" -"This pattern is important when writing a type with " -"custom :c:member:`~PyTypeObject.tp_new` " -"and :c:member:`~PyTypeObject.tp_dealloc` members. " -"The :c:member:`~PyTypeObject.tp_new` handler should not actually create the " -"memory for the object with its :c:member:`~PyTypeObject.tp_alloc`, but let " -"the base class handle it by calling its own :c:member:`~PyTypeObject.tp_new`." -msgstr "" -"Ce modèle est important lors de l'écriture d'un type avec des membres " -"personnalisés :c:member:`~PyTypeObject.tp_new` " -"et :c:member:`~PyTypeObject.tp_dealloc`. Le " -"gestionnaire :c:member:`~PyTypeObject.tp_new` ne doit pas réellement allouer " -"la mémoire pour l'objet avec son :c:member:`~PyTypeObject.tp_alloc`, mais " -"laisser la classe mère gérer ça en appelant sa " -"propre :c:member:`~PyTypeObject.tp_new`." - -#: extending/newtypes_tutorial.rst:872 -#, fuzzy -msgid "" -"The :c:type:`PyTypeObject` struct supports " -"a :c:member:`~PyTypeObject.tp_base` specifying the type's concrete base " -"class. Due to cross-platform compiler issues, you can't fill that field " -"directly with a reference to :c:type:`PyList_Type`; it should be done in " -"the :c:data:`Py_mod_exec` function::" -msgstr "" -"La structure :c:type:`PyTypeObject` prend en charge " -"un :c:member:`~PyTypeObject.tp_base` spécifiant la classe mère concrète du " -"type. En raison de problèmes de compilateur multiplateformes, vous ne pouvez " -"pas remplir ce champ directement avec une référence " -"à :c:type:`PyList_Type` ; cela doit être fait plus tard dans la fonction " -"d'initialisation du module ::" - -#: extending/newtypes_tutorial.rst:893 -msgid "" -"Before calling :c:func:`PyType_Ready`, the type structure must have " -"the :c:member:`~PyTypeObject.tp_base` slot filled in. When we are deriving " -"an existing type, it is not necessary to fill out " -"the :c:member:`~PyTypeObject.tp_alloc` slot with :c:func:`PyType_GenericNew` " -"-- the allocation function from the base type will be inherited." -msgstr "" -"Avant d'appeler :c:func:`PyType_Ready`, la structure de type doit avoir " -"l'emplacement :c:member:`~PyTypeObject.tp_base` rempli. Lorsque nous " -"dérivons un type existant, il n'est pas nécessaire de remplir " -"l'emplacement :c:member:`~PyTypeObject.tp_alloc` " -"avec :c:func:`PyType_GenericNew` – la fonction d'allocation du type père " -"sera héritée." - -#: extending/newtypes_tutorial.rst:899 -#, fuzzy -msgid "" -"After that, calling :c:func:`PyType_Ready` and adding the type object to the " -"module is the same as with the basic :class:`!Custom` examples." -msgstr "" -"Ensuite, appeler :c:func:`PyType_Ready` et ajouter l'objet type au module se " -"fait de la même manière qu'avec les exemples de base :class:`Custom`." - -#: extending/newtypes_tutorial.rst:904 -msgid "Footnotes" -msgstr "Notes" - -#: extending/newtypes_tutorial.rst:905 -msgid "" -"This is true when we know that the object is a basic type, like a string or " -"a float." -msgstr "" -"C'est vrai lorsque nous savons que l'objet est un type de base, comme une " -"chaîne ou un flottant." - -#: extending/newtypes_tutorial.rst:908 -msgid "" -"We relied on this in the :c:member:`~PyTypeObject.tp_dealloc` handler in " -"this example, because our type doesn't support garbage collection." -msgstr "" -"Nous nous sommes appuyés sur le " -"gestionnaire :c:member:`~PyTypeObject.tp_dealloc` dans cet exemple, car " -"notre type ne prend pas en charge le ramasse-miettes." - -#: extending/newtypes_tutorial.rst:911 -msgid "" -"We now know that the first and last members are strings, so perhaps we could " -"be less careful about decrementing their reference counts, however, we " -"accept instances of string subclasses. Even though deallocating normal " -"strings won't call back into our objects, we can't guarantee that " -"deallocating an instance of a string subclass won't call back into our " -"objects." -msgstr "" -"Nous savons maintenant que les premier et dernier membres sont des chaînes, " -"nous pourrions donc peut-être être moins prudents quant à la décrémentation " -"de leur nombre de références, cependant, nous acceptons les instances de " -"sous-classes de chaînes. Même si la libération de la mémoire des chaînes " -"normales ne rappellera pas nos objets, nous ne pouvons pas garantir que la " -"libération de mémoire d'une instance d'une sous-classe de chaîne ne " -"rappellera pas nos objets." - -#: extending/newtypes_tutorial.rst:917 -msgid "" -"Also, even with our attributes restricted to strings instances, the user " -"could pass arbitrary :class:`str` subclasses and therefore still create " -"reference cycles." -msgstr "" -"De plus, même avec nos attributs limités aux instances de chaînes, " -"l'utilisateur pourrait passer des sous-classes arbitraires :class:`str` et " -"donc encore créer des références cycliques." - -#~ msgid "" -#~ "While this documentation showcases the standard :mod:`distutils` module " -#~ "for building C extensions, it is recommended in real-world use cases to " -#~ "use the newer and better-maintained ``setuptools`` library. " -#~ "Documentation on how to do this is out of scope for this document and can " -#~ "be found in the `Python Packaging User's Guide `_." -#~ msgstr "" -#~ "Bien que cette documentation présente le module standard :mod:`distutils` " -#~ "pour la construction d'extensions C, il est recommandé dans les cas " -#~ "d'utilisation réels d'utiliser la bibliothèque ``setuptools`` plus " -#~ "récente et mieux entretenue. La documentation sur la façon de procéder " -#~ "est hors de portée de ce document et peut être trouvée dans le `Python " -#~ "Packaging User's Guide `_." - -#~ msgid "We've added an extra include::" -#~ msgstr "Nous avons ajouté un nouvel *include* ::" - -#~ msgid "" -#~ "This include provides declarations that we use to handle attributes, as " -#~ "described a bit later." -#~ msgstr "" -#~ "Cet *include* fournit des déclarations que nous utilisons pour gérer les " -#~ "attributs, comme décrit un peu plus loin." diff --git a/extending/windows.po b/extending/windows.po deleted file mode 100644 index b19c0b5fe6..0000000000 --- a/extending/windows.po +++ /dev/null @@ -1,329 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-07-28 22:32+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: extending/windows.rst:8 -msgid "Building C and C++ Extensions on Windows" -msgstr "Construire des extensions C et C++ sur Windows" - -#: extending/windows.rst:10 -msgid "" -"This chapter briefly explains how to create a Windows extension module for " -"Python using Microsoft Visual C++, and follows with more detailed background " -"information on how it works. The explanatory material is useful for both " -"the Windows programmer learning to build Python extensions and the Unix " -"programmer interested in producing software which can be successfully built " -"on both Unix and Windows." -msgstr "" -"Cette page explique rapidement comment créer un module d'extension Windows " -"pour Python en utilisant Microsoft Visual C++, et donne plus d'informations " -"contextuelles sur son fonctionnement. Le texte explicatif est utile tant " -"pour le développeur Windows qui apprend à construire des extensions Python " -"que pour le développeur Unix souhaitant produire des logiciels pouvant être " -"construits sur Unix et Windows." - -#: extending/windows.rst:17 -msgid "" -"Module authors are encouraged to use the distutils approach for building " -"extension modules, instead of the one described in this section. You will " -"still need the C compiler that was used to build Python; typically Microsoft " -"Visual C++." -msgstr "" -"Les auteurs de modules sont invités à utiliser l'approche *distutils* pour " -"construire des modules d'extension, au lieu de celle décrite dans cette " -"section. Vous aurez toujours besoin du compilateur C utilisé pour construire " -"Python ; typiquement Microsoft Visual C++." - -#: extending/windows.rst:24 -msgid "" -"This chapter mentions a number of filenames that include an encoded Python " -"version number. These filenames are represented with the version number " -"shown as ``XY``; in practice, ``'X'`` will be the major version number and " -"``'Y'`` will be the minor version number of the Python release you're " -"working with. For example, if you are using Python 2.2.1, ``XY`` will " -"actually be ``22``." -msgstr "" -"Cette page mentionne plusieurs noms de fichiers comprenant un numéro de " -"version Python encodé. Ces noms de fichiers sont construits sous le format " -"de version ``XY`` ; en pratique, ``'X'`` représente le numéro de version " -"majeure et ``'Y'`` représente le numéro de version mineure de la version " -"Python avec laquelle vous travaillez. Par exemple, si vous utilisez Python " -"2.2.1, ``XY`` correspond à ``22``." - -#: extending/windows.rst:34 -msgid "A Cookbook Approach" -msgstr "Une approche \"recette de cuisine\"" - -#: extending/windows.rst:36 -#, fuzzy -msgid "" -"There are two approaches to building extension modules on Windows, just as " -"there are on Unix: use the ``setuptools`` package to control the build " -"process, or do things manually. The setuptools approach works well for most " -"extensions; documentation on using ``setuptools`` to build and package " -"extension modules is available in :ref:`setuptools-index`. If you find you " -"really need to do things manually, it may be instructive to study the " -"project file for the :source:`winsound ` standard " -"library module." -msgstr "" -"Il y a deux approches lorsque l'on construit des modules d'extension sur " -"Windows, tout comme sur Unix : utiliser le paquet :mod:`distutils` pour " -"contrôler le processus de construction, ou faire les choses manuellement. " -"L'approche *distutils* fonctionne bien pour la plupart des extensions ; la " -"documentation pour utiliser :mod:`distutils` pour construire et empaqueter " -"les modules d'extension est disponible dans :ref:`distutils-index`. Si vous " -"considérez que vous avez réellement besoin de faire les choses manuellement, " -"il pourrait être enrichissant d'étudier le fichier de " -"projet :source:`winsound ` pour le module de la " -"bibliothèque standard." - -#: extending/windows.rst:48 -msgid "Differences Between Unix and Windows" -msgstr "Différences entre Unix et Windows" - -#: extending/windows.rst:50 -msgid "" -"Unix and Windows use completely different paradigms for run-time loading of " -"code. Before you try to build a module that can be dynamically loaded, be " -"aware of how your system works." -msgstr "" -"\\ Unix et Windows utilisent des paradigmes complètement différents pour le " -"chargement du code pendant l'exécution. Avant d'essayer de construire un " -"module qui puisse être chargé dynamiquement, soyez conscient du mode de " -"fonctionnement du système." - -#: extending/windows.rst:54 -msgid "" -"In Unix, a shared object (:file:`.so`) file contains code to be used by the " -"program, and also the names of functions and data that it expects to find in " -"the program. When the file is joined to the program, all references to " -"those functions and data in the file's code are changed to point to the " -"actual locations in the program where the functions and data are placed in " -"memory. This is basically a link operation." -msgstr "" -"Sur Unix, un fichier objet partagé (:file:`.so`) contient du code servant au " -"programme, ainsi que les noms des fonctions et les données que l'on " -"s'attend à trouver dans le programme. Quand le fichier est attaché au " -"programme, toutes les références à ces fonctions et données dans le code du " -"fichier sont modifiées pour pointer vers les localisations actuelles dans le " -"programme où sont désormais placées les fonctions et données dans la " -"mémoire. C'est tout simplement une opération de liaison." - -#: extending/windows.rst:61 -msgid "" -"In Windows, a dynamic-link library (:file:`.dll`) file has no dangling " -"references. Instead, an access to functions or data goes through a lookup " -"table. So the DLL code does not have to be fixed up at runtime to refer to " -"the program's memory; instead, the code already uses the DLL's lookup table, " -"and the lookup table is modified at runtime to point to the functions and " -"data." -msgstr "" -"Sur Windows, un fichier bibliothèque de liens dynamiques (:file:`.dll`) n'a " -"pas de références paresseuses. À la place, un accès aux fonctions ou données " -"passe par une table de conversion. Cela est fait pour que le code DLL ne " -"doive pas être réarrangé à l'exécution pour renvoyer à la mémoire du " -"programme ; à la place, le code utilise déjà la table de conversion DLL, et " -"cette table est modifiée à l'exécution pour pointer vers les fonctions et " -"données." - -#: extending/windows.rst:67 -msgid "" -"In Unix, there is only one type of library file (:file:`.a`) which contains " -"code from several object files (:file:`.o`). During the link step to create " -"a shared object file (:file:`.so`), the linker may find that it doesn't know " -"where an identifier is defined. The linker will look for it in the object " -"files in the libraries; if it finds it, it will include all the code from " -"that object file." -msgstr "" -"Sur Unix, il n'y a qu'un type de bibliothèque de fichier (:file:`.a`) qui " -"contient du code venant de plusieurs fichiers objets (:file:`.o`). Durant " -"l'étape de liaison pour créer un fichier objet partagé (:file:`.so`), le " -"lieur peut informer qu'il ne sait pas où un identificateur est défini. Le " -"lieur le cherchera dans les fichiers objet dans les bibliothèques ; s'il le " -"trouve, il inclura tout le code provenant de ce fichier objet." - -#: extending/windows.rst:73 -msgid "" -"In Windows, there are two types of library, a static library and an import " -"library (both called :file:`.lib`). A static library is like a " -"Unix :file:`.a` file; it contains code to be included as necessary. An " -"import library is basically used only to reassure the linker that a certain " -"identifier is legal, and will be present in the program when the DLL is " -"loaded. So the linker uses the information from the import library to build " -"the lookup table for using identifiers that are not included in the DLL. " -"When an application or a DLL is linked, an import library may be generated, " -"which will need to be used for all future DLLs that depend on the symbols in " -"the application or DLL." -msgstr "" -"Sur Windows, il y a deux types de bibliothèques, une bibliothèque statique " -"et une bibliothèque d'importation (toutes deux appelées :file:`.lib`). Une " -"bibliothèque statique est comme un fichier Unix :file:`.a` ; elle contient " -"du code pouvant être inclus si nécessaire. Une bibliothèque d'importation " -"est uniquement utilisée pour rassurer le lieur qu'un certain identificateur " -"est légal, et sera présent dans le programme quand la DLL est chargée. Comme " -"ça le lieur utilise les informations provenant de la bibliothèque " -"d'importation pour construire la table de conversion pour utiliser les " -"identificateurs qui ne sont pas inclus dans la DLL. Quand une application ou " -"une DLL est liée, une bibliothèque d'importation peut être générée, qui " -"devra être utilisée pour toutes les futures DLL dépendantes aux symboles " -"provenant de l'application ou de la DLL." - -#: extending/windows.rst:83 -msgid "" -"Suppose you are building two dynamic-load modules, B and C, which should " -"share another block of code A. On Unix, you would *not* pass :file:`A.a` to " -"the linker for :file:`B.so` and :file:`C.so`; that would cause it to be " -"included twice, so that B and C would each have their own copy. In Windows, " -"building :file:`A.dll` will also build :file:`A.lib`. You *do* " -"pass :file:`A.lib` to the linker for B and C. :file:`A.lib` does not " -"contain code; it just contains information which will be used at runtime to " -"access A's code." -msgstr "" -"Supposons que vous construisez deux modules de chargement dynamiques, B et " -"C, qui ne devraient pas partager un autre bloc de code avec A. Sur Unix, " -"vous ne transmettrez pas :file:`A.a` au lieur pour :file:`B.so` " -"et :file:`C.so` ; cela le ferait être inclus deux fois, pour que B et C " -"aient chacun leur propre copie. Sur Windows, construire :file:`A.dll` " -"construira aussi :file:`A.lib`. Vous transmettez :file:`A.lib` au lieur pour " -"B et C. :file:`A.lib` ne contient pas de code ; il contient uniquement des " -"informations qui seront utilisées lors de l'exécution pour accéder au code " -"de A." - -#: extending/windows.rst:91 -msgid "" -"In Windows, using an import library is sort of like using ``import spam``; " -"it gives you access to spam's names, but does not create a separate copy. " -"On Unix, linking with a library is more like ``from spam import *``; it does " -"create a separate copy." -msgstr "" -"Sur Windows, utiliser une bibliothèque d'importation est comme utiliser " -"``import spam`` ; cela vous donne accès aux noms des spams, mais ne crée par " -"de copie séparée. Sur Unix, se lier à une bibliothèque est plus comme ``from " -"spam import *`` ; cela crée une copie séparée." - -#: extending/windows.rst:98 -msgid "" -"Turn off the implicit, ``#pragma``-based linkage with the Python library, " -"performed inside CPython header files." -msgstr "" - -#: extending/windows.rst:107 -msgid "Using DLLs in Practice" -msgstr "Utiliser les DLL en pratique" - -#: extending/windows.rst:109 -msgid "" -"Windows Python is built in Microsoft Visual C++; using other compilers may " -"or may not work. The rest of this section is MSVC++ specific." -msgstr "" -"Le Python de Windows est construit en Microsoft Visual C++ ; utiliser " -"d'autres compilateurs pourrait fonctionner, ou pas. Le reste de cette " -"section est spécifique à MSVC++." - -#: extending/windows.rst:112 -msgid "" -"When creating DLLs in Windows, you can use the CPython library in two ways:" -msgstr "" - -#: extending/windows.rst:114 -msgid "" -"By default, inclusion of :file:`PC/pyconfig.h` directly or " -"via :file:`Python.h` triggers an implicit, configure-aware link with the " -"library. The header file chooses :file:`pythonXY_d.lib` for " -"Debug, :file:`pythonXY.lib` for Release, and :file:`pythonX.lib` for Release " -"with the :ref:`Limited API ` enabled." -msgstr "" - -#: extending/windows.rst:138 -#, fuzzy -msgid "" -"To build two DLLs, spam and ni (which uses C functions found in spam), you " -"could use these commands::" -msgstr "" -"Lorsque vous créez des DLL sur Windows, vous devez " -"transmettre :file:`pythonXY.lib` au lieur. Pour construire deux DLL, spam et " -"ni (qui utilisent des fonctions C trouvées dans spam), vous pouvez utiliser " -"ces commandes ::" - -#: extending/windows.rst:126 -#, fuzzy -msgid "" -"The first command created three files: :file:`spam.obj`, :file:`spam.dll` " -"and :file:`spam.lib`. :file:`Spam.dll` does not contain any Python " -"functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find " -"the Python code thanks to the implicitly linked :file:`pythonXY.lib`." -msgstr "" -"La première commande a créé trois " -"fichiers : :file:`spam.obj`, :file:`spam.dll` " -"et :file:`spam.lib`. :file:`Spam.dll` ne contient pas de fonctions Python " -"(telles que :c:func:`PyArg_ParseTuple`), mais il sait comment trouver le " -"code Python grâce à :file:`pythonXY.lib`." - -#: extending/windows.rst:149 -msgid "" -"The second command created :file:`ni.dll` (and :file:`.obj` " -"and :file:`.lib`), which knows how to find the necessary functions from " -"spam, and also from the Python executable." -msgstr "" -"La seconde commande a créé :file:`ni.dll` (et :file:`.obj` et :file:`.lib`), " -"qui sait comment trouver les fonctions nécessaires dans spam, ainsi qu'à " -"partir de l'exécutable Python." - -#: extending/windows.rst:135 -msgid "" -"Manually by defining :c:macro:`Py_NO_LINK_LIB` macro before " -"including :file:`Python.h`. You must pass :file:`pythonXY.lib` to the linker." -msgstr "" - -#: extending/windows.rst:144 -msgid "" -"The first command created three files: :file:`spam.obj`, :file:`spam.dll` " -"and :file:`spam.lib`. :file:`Spam.dll` does not contain any Python " -"functions (such as :c:func:`PyArg_ParseTuple`), but it does know how to find " -"the Python code thanks to :file:`pythonXY.lib`." -msgstr "" -"La première commande a créé trois " -"fichiers : :file:`spam.obj`, :file:`spam.dll` " -"et :file:`spam.lib`. :file:`Spam.dll` ne contient pas de fonctions Python " -"(telles que :c:func:`PyArg_ParseTuple`), mais il sait comment trouver le " -"code Python grâce à :file:`pythonXY.lib`." - -#: extending/windows.rst:153 -msgid "" -"Not every identifier is exported to the lookup table. If you want any other " -"modules (including Python) to be able to see your identifiers, you have to " -"say ``_declspec(dllexport)``, as in ``void _declspec(dllexport) " -"initspam(void)`` or ``PyObject _declspec(dllexport) *NiGetSpamData(void)``." -msgstr "" -"Chaque identificateur n'est pas exporté vers la table de conversion. Si vous " -"voulez que tout autre module (y compris Python) soit capable de voir vos " -"identificateurs, vous devez préciser ``_declspec(dllexport)``, comme dans " -"``void _declspec(dllexport) initspam(void)`` ou ``PyObject " -"_declspec(dllexport) *NiGetSpamData(void)``." - -#: extending/windows.rst:158 -#, fuzzy -msgid "" -"Developer Studio will throw in a lot of import libraries that you do not " -"really need, adding about 100K to your executable. To get rid of them, use " -"the Project Settings dialog, Link tab, to specify *ignore default " -"libraries*. Add the correct :file:`msvcrt{xx}.lib` to the list of libraries." -msgstr "" -"\\ Developer Studio apportera beaucoup de bibliothèques d'importation dont " -"vous n'avez pas vraiment besoin, augmentant d'environ *100ko* votre " -"exécutable. Pour s'en débarrasser, allez dans les Paramètres du Projet, " -"onglet Lien, pour préciser *ignorer les bibliothèques par défaut*. Et " -"la :file:`msvcrtxx.lib` correcte à la liste des bibliothèques." diff --git a/faq/design.po b/faq/design.po deleted file mode 100644 index c8a403b4ed..0000000000 --- a/faq/design.po +++ /dev/null @@ -1,1548 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-03-26 17:18+0200\n" -"Last-Translator: Mathieu Dupuy\n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.2\n" - -#: faq/design.rst:3 -msgid "Design and History FAQ" -msgstr "FAQ sur l'histoire et la conception" - -#: faq/design.rst:6 -msgid "Contents" -msgstr "Sommaire" - -#: faq/design.rst:11 -msgid "Why does Python use indentation for grouping of statements?" -msgstr "" -"Pourquoi Python utilise-t-il l'indentation pour grouper les instructions ?" - -#: faq/design.rst:13 -msgid "" -"Guido van Rossum believes that using indentation for grouping is extremely " -"elegant and contributes a lot to the clarity of the average Python program. " -"Most people learn to love this feature after a while." -msgstr "" -"Guido van Rossum considère que l'usage de l'indentation pour regrouper les " -"blocs d'instruction est élégant et contribue énormément à la clarté d'un " -"programme Python ordinaire. La plupart des gens finissent par aimer cette " -"particularité au bout d'un moment." - -#: faq/design.rst:17 -msgid "" -"Since there are no begin/end brackets there cannot be a disagreement between " -"grouping perceived by the parser and the human reader. Occasionally C " -"programmers will encounter a fragment of code like this::" -msgstr "" -"Comme il n'y a pas d'accolades de début et fin, il ne peut y avoir de " -"différence entre le bloc perçu par l'analyseur syntaxique et le lecteur " -"humain. Parfois les programmeurs C pourront trouver un morceau de code comme " -"celui-ci ::" - -#: faq/design.rst:26 -msgid "" -"Only the ``x++`` statement is executed if the condition is true, but the " -"indentation leads many to believe otherwise. Even experienced C programmers " -"will sometimes stare at it a long time wondering as to why ``y`` is being " -"decremented even for ``x > y``." -msgstr "" -"Seule l'instruction ``x++`` est exécutée si la condition est vraie, mais " -"l'indentation conduit beaucoup de gens à penser le contraire. Mêmes des " -"développeurs C expérimentés peuvent parfois rester pendant un moment à se " -"demander pourquoi ``y`` est décrémenté même si ``x > y``." - -#: faq/design.rst:31 -msgid "" -"Because there are no begin/end brackets, Python is much less prone to coding-" -"style conflicts. In C there are many different ways to place the braces. " -"After becoming used to reading and writing code using a particular style, it " -"is normal to feel somewhat uneasy when reading (or being required to write) " -"in a different one." -msgstr "" -"Comme il n'y a pas d'accolades de début et fin, Python est moins sujet aux " -"conflits de style de code. En C, on peut placer les accolades de nombreuses " -"façons. Après s'être habitué à lire et écrire selon un style particulier, il " -"est normal de se sentir perturbé en lisant (ou en devant écrire) avec un " -"autre style." - -#: faq/design.rst:38 -msgid "" -"Many coding styles place begin/end brackets on a line by themselves. This " -"makes programs considerably longer and wastes valuable screen space, making " -"it harder to get a good overview of a program. Ideally, a function should " -"fit on one screen (say, 20--30 lines). 20 lines of Python can do a lot more " -"work than 20 lines of C. This is not solely due to the lack of begin/end " -"brackets -- the lack of declarations and the high-level data types are also " -"responsible -- but the indentation-based syntax certainly helps." -msgstr "" -"Nombre de styles de programmation utilisent des accolades de début et fin " -"sur une ligne à part. Cela rend les programmes beaucoup plus longs et fait " -"perdre une bonne partie de l'espace visible sur l'écran, empêchant un peu " -"d'avoir une vue globale du programme. Idéalement, une fonction doit être " -"visible sur un écran (environ 20 ou 30 lignes). 20 lignes de Python peuvent " -"faire beaucoup plus que 20 lignes de C. Ce n'est pas seulement dû à " -"l'absence d'accolades de début et fin — l'absence de déclarations et la " -"présence de types de haut-niveau en sont également responsables — mais la " -"syntaxe basée sur l'indentation aide sûrement." - -#: faq/design.rst:48 -msgid "Why am I getting strange results with simple arithmetic operations?" -msgstr "" -"Pourquoi ai-je d'étranges résultats suite à de simples opérations " -"arithmétiques ?" - -#: faq/design.rst:50 -msgid "See the next question." -msgstr "Voir la question suivante." - -#: faq/design.rst:54 -msgid "Why are floating-point calculations so inaccurate?" -msgstr "Pourquoi les calculs à virgules flottantes sont si imprécis ?" - -#: faq/design.rst:56 -msgid "Users are often surprised by results like this::" -msgstr "Les gens sont très souvent surpris par des résultats comme celui-ci ::" - -#: faq/design.rst:61 -msgid "" -"and think it is a bug in Python. It's not. This has little to do with " -"Python, and much more to do with how the underlying platform handles " -"floating-point numbers." -msgstr "" -"et pensent que c'est un bogue dans Python. Ça n'en est pas un. Ceci n'a " -"d'ailleurs que peu à voir avec Python, mais avec la manière dont la " -"plateforme sous-jacente gère les nombres à virgule flottante." - -#: faq/design.rst:65 -msgid "" -"The :class:`float` type in CPython uses a C ``double`` for storage. " -"A :class:`float` object's value is stored in binary floating-point with a " -"fixed precision (typically 53 bits) and Python uses C operations, which in " -"turn rely on the hardware implementation in the processor, to perform " -"floating-point operations. This means that as far as floating-point " -"operations are concerned, Python behaves like many popular languages " -"including C and Java." -msgstr "" -"La classe :class:`float` dans CPython utilise le type double du langage C " -"comme stockage. La valeur d'un objet :class:`float` est stockée dans un " -"format binaire à virgule flottante avec une précision fixe (généralement 53 " -"bits). Python utilise des opérations qui proviennent du langage C qui à leur " -"tour reposent sur l'implémentation au niveau du processeur afin d'effectuer " -"des opérations en virgule flottante. Cela signifie que, dans le cadre des " -"opérations sur les nombres à virgule flottante, Python se comporte comme " -"beaucoup de langages populaires dont C et Java." - -#: faq/design.rst:72 -#, fuzzy -msgid "" -"Many numbers that can be written easily in decimal notation cannot be " -"expressed exactly in binary floating point. For example, after::" -msgstr "" -"Beaucoup de nombres pouvant être écrits facilement en notation décimale ne " -"peuvent pas s'exprimer de manière exacte en binaire à virgule flottante. Par " -"exemple, après ::" - -#: faq/design.rst:77 -msgid "" -"the value stored for ``x`` is a (very good) approximation to the decimal " -"value ``1.2``, but is not exactly equal to it. On a typical machine, the " -"actual stored value is::" -msgstr "" -"la valeur stockée pour ``x`` est une (très bonne) approximation de la valeur " -"décimale ``1.2``, mais cette valeur n'est pas exacte. Sur une machine " -"typique, la valeur stockée est en fait ::" - -#: faq/design.rst:83 -msgid "which is exactly::" -msgstr "qui est, exactement ::" - -#: faq/design.rst:87 -msgid "" -"The typical precision of 53 bits provides Python floats with 15--16 decimal " -"digits of accuracy." -msgstr "" -"La précision typique de 53 bits des *floats* Python permet une précision de " -"15–16 décimales." - -#: faq/design.rst:90 -#, fuzzy -msgid "" -"For a fuller explanation, please see the :ref:`floating-point arithmetic " -"` chapter in the Python tutorial." -msgstr "" -"Veuillez vous référer au chapitre sur :ref:`l'arithmétique en nombres à " -"virgule flottante ` du tutoriel Python pour de plus amples " -"informations." - -#: faq/design.rst:95 -msgid "Why are Python strings immutable?" -msgstr "Pourquoi les chaînes de caractères Python sont-elles immuables ?" - -#: faq/design.rst:97 -msgid "There are several advantages." -msgstr "Il y a plusieurs avantages." - -#: faq/design.rst:99 -msgid "" -"One is performance: knowing that a string is immutable means we can allocate " -"space for it at creation time, and the storage requirements are fixed and " -"unchanging. This is also one of the reasons for the distinction between " -"tuples and lists." -msgstr "" -"La première concerne la performance : savoir qu'une chaîne de caractères est " -"immuable signifie que l'allocation mémoire allouée lors de la création de " -"cette chaîne est fixe et figée. C'est aussi l'une des raisons pour " -"lesquelles on fait la distinction entre les *n*-uplets et les listes." - -#: faq/design.rst:104 -msgid "" -"Another advantage is that strings in Python are considered as \"elemental\" " -"as numbers. No amount of activity will change the value 8 to anything else, " -"and in Python, no amount of activity will change the string \"eight\" to " -"anything else." -msgstr "" -"Un autre avantage est que les chaînes en Python sont considérées aussi " -"« élémentaires » que les nombres. Aucun processus ne changera la valeur du " -"nombre 8 en autre chose et, en Python, aucun processus ne changera la chaîne " -"de caractères \"huit\" en autre chose." - -#: faq/design.rst:112 -msgid "Why must 'self' be used explicitly in method definitions and calls?" -msgstr "" -"Pourquoi *self* doit-il être explicitement utilisé dans les définitions et " -"les appels de méthodes ?" - -#: faq/design.rst:114 -msgid "" -"The idea was borrowed from Modula-3. It turns out to be very useful, for a " -"variety of reasons." -msgstr "" -"L'idée a été empruntée à Modula-3. Cela s'avère très utile, pour diverses " -"raisons." - -#: faq/design.rst:117 -msgid "" -"First, it's more obvious that you are using a method or instance attribute " -"instead of a local variable. Reading ``self.x`` or ``self.meth()`` makes it " -"absolutely clear that an instance variable or method is used even if you " -"don't know the class definition by heart. In C++, you can sort of tell by " -"the lack of a local variable declaration (assuming globals are rare or " -"easily recognizable) -- but in Python, there are no local variable " -"declarations, so you'd have to look up the class definition to be sure. " -"Some C++ and Java coding standards call for instance attributes to have an " -"``m_`` prefix, so this explicitness is still useful in those languages, too." -msgstr "" -"Tout d'abord, il est plus évident d'utiliser une méthode ou un attribut " -"d'instance par exemple au lieu d'une variable locale. Lire ``self.x`` ou " -"``self.meth()`` est sans ambiguïté sur le fait que c'est une variable " -"d'instance ou une méthode qui est utilisée, même si vous ne connaissez pas " -"la définition de classe par cœur. En C++, vous pouvez les reconnaître par " -"l'absence d'une déclaration de variable locale (en supposant que les " -"variables globales sont rares ou facilement reconnaissables) — mais en " -"Python, il n'y a pas de déclarations de variables locales, de sorte que vous " -"devriez chercher la définition de classe pour être sûr. Certaines normes de " -"programmation C++ et Java préfixent les attributs d'instance par ``m_``. " -"Cette syntaxe explicite est ainsi utile également pour ces langages." - -#: faq/design.rst:127 -#, fuzzy -msgid "" -"Second, it means that no special syntax is necessary if you want to " -"explicitly reference or call the method from a particular class. In C++, if " -"you want to use a method from a base class which is overridden in a derived " -"class, you have to use the ``::`` operator -- in Python you can write " -"``baseclass.methodname(self, )``. This is particularly " -"useful for :meth:`~object.__init__` methods, and in general in cases where a " -"derived class method wants to extend the base class method of the same name " -"and thus has to call the base class method somehow." -msgstr "" -"Ensuite, ça veut dire qu'aucune syntaxe spéciale n'est nécessaire si vous " -"souhaitez explicitement référencer ou appeler la méthode depuis une classe " -"en particulier. En C++, si vous utilisez la méthode d'une classe mère elle-" -"même surchargée par une classe dérivée, vous devez utiliser l'opérateur " -"``::`` — en Python vous pouvez écrire ``ClasseDeBase.nom_methode(self, " -")``. C'est particulièrement utile pour les " -"méthodes :meth:`__init__` et, de manière générale, dans les cas où une " -"classe dérivée veut étendre la méthode du même nom de la classe mère, et " -"doit donc se débrouiller pour appeler la méthode de la classe mère." - -#: faq/design.rst:136 -msgid "" -"Finally, for instance variables it solves a syntactic problem with " -"assignment: since local variables in Python are (by definition!) those " -"variables to which a value is assigned in a function body (and that aren't " -"explicitly declared global), there has to be some way to tell the " -"interpreter that an assignment was meant to assign to an instance variable " -"instead of to a local variable, and it should preferably be syntactic (for " -"efficiency reasons). C++ does this through declarations, but Python doesn't " -"have declarations and it would be a pity having to introduce them just for " -"this purpose. Using the explicit ``self.var`` solves this nicely. " -"Similarly, for using instance variables, having to write ``self.var`` means " -"that references to unqualified names inside a method don't have to search " -"the instance's directories. To put it another way, local variables and " -"instance variables live in two different namespaces, and you need to tell " -"Python which namespace to use." -msgstr "" -"Enfin, pour des variables d'instance, ça résout un problème syntactique pour " -"l'assignation : puisque les variables locales en Python sont (par " -"définition !) ces variables auxquelles les valeurs sont assignées dans le " -"corps d'une fonction (et n'étant pas déclarées explicitement globales), il " -"doit y avoir un moyen de dire à l'interpréteur qu'une assignation est censée " -"assigner une variable d'instance plutôt qu'une variable locale, et doit de " -"préférence être syntactique (pour des raisons d'efficacité). C++ fait ça au " -"travers de déclarations, mais Python n'a pas de déclarations et ça serait " -"dommage d'avoir à les introduire juste pour cette raison. Utiliser " -"explicitement ``self.var`` résout ça avec élégance. Pareillement, pour " -"utiliser des variables d'instance, avoir à écrire ``self.var`` signifie que " -"les références vers des noms non-qualifiés au sein d'une méthode n'ont pas à " -"être cherchés dans l'annuaire d'instances. En d'autres termes, les variables " -"locales et les variables d'instance vivent dans deux différents espaces de " -"nommage, et vous devez dire à Python quel espace de nommage utiliser." - -#: faq/design.rst:154 -msgid "Why can't I use an assignment in an expression?" -msgstr "Pourquoi ne puis-je pas utiliser d'assignation dans une expression ?" - -#: faq/design.rst:156 -msgid "Starting in Python 3.8, you can!" -msgstr "Depuis Python 3.8, c'est possible !" - -#: faq/design.rst:158 -msgid "" -"Assignment expressions using the walrus operator ``:=`` assign a variable in " -"an expression::" -msgstr "" -"Les expressions d'affectation qui utilisent l'opérateur morse ``:=`` " -"affectent une variable dans une expression ::" - -#: faq/design.rst:164 -msgid "See :pep:`572` for more information." -msgstr "Voir la :pep:`572` pour plus d'informations." - -#: faq/design.rst:169 -msgid "" -"Why does Python use methods for some functionality (e.g. list.index()) but " -"functions for other (e.g. len(list))?" -msgstr "" -"Pourquoi Python utilise des méthodes pour certaines fonctionnalités (ex : " -"``list.index()``) mais des fonctions pour d'autres (ex : ``len(list)``) ?" - -#: faq/design.rst:171 -msgid "As Guido said:" -msgstr "Comme l'a dit Guido :" - -#: faq/design.rst:173 -msgid "" -"(a) For some operations, prefix notation just reads better than postfix -- " -"prefix (and infix!) operations have a long tradition in mathematics which " -"likes notations where the visuals help the mathematician thinking about a " -"problem. Compare the easy with which we rewrite a formula like x*(a+b) into " -"x*a + x*b to the clumsiness of doing the same thing using a raw OO notation." -msgstr "" -"(a) Pour certaines opérations, la notation préfixe se lit mieux que celle " -"suffixe — les opérations préfixe (et infixe !) sont une longue tradition en " -"mathématique, où on apprécie les notations qui aident visuellement le " -"mathématicien à réfléchir sur un problème. Comparez la facilité avec " -"laquelle nous réécrivons une formule comme x*(a+b) en x*a + x*b à la " -"lourdeur de faire la même chose avec une notation orientée objet brute." - -#: faq/design.rst:180 -msgid "" -"(b) When I read code that says len(x) I *know* that it is asking for the " -"length of something. This tells me two things: the result is an integer, and " -"the argument is some kind of container. To the contrary, when I read " -"x.len(), I have to already know that x is some kind of container " -"implementing an interface or inheriting from a class that has a standard " -"len(). Witness the confusion we occasionally have when a class that is not " -"implementing a mapping has a get() or keys() method, or something that isn't " -"a file has a write() method." -msgstr "" -"(b) Quand je lis du code qui dit ``len(x)`` *je sais* qu'il demande la " -"longueur de quelque chose. Cela me dit deux choses : le résultat est un " -"entier, et l'argument est une sorte de conteneur. Au contraire, quand je lis " -"``x.len()``, je dois déjà savoir que x est une sorte de conteneur " -"implémentant une interface ou héritant d'une classe qui a un ``len()`` " -"standard. Voyez la confusion qui arrive parfois quand une classe qui " -"n'implémente pas une interface de dictionnaire a une méthode ``get()`` ou " -"``key()``, ou quand un objet qui n'est pas un fichier implémente une méthode " -"``write()``." - -#: faq/design.rst:189 -msgid "https://mail.python.org/pipermail/python-3000/2006-November/004643.html" -msgstr "" -"https://mail.python.org/pipermail/python-3000/2006-November/004643.html" - -#: faq/design.rst:193 -msgid "Why is join() a string method instead of a list or tuple method?" -msgstr "" -"Pourquoi ``join()`` est une méthode de chaîne plutôt qu'une méthode de liste " -"ou de *n*-uplet ?" - -#: faq/design.rst:195 -msgid "" -"Strings became much more like other standard types starting in Python 1.6, " -"when methods were added which give the same functionality that has always " -"been available using the functions of the string module. Most of these new " -"methods have been widely accepted, but the one which appears to make some " -"programmers feel uncomfortable is::" -msgstr "" -"Les chaînes sont devenues bien plus comme d'autres types standards à partir " -"de Python 1.6, lorsque les méthodes ont été ajoutées fournissant ainsi les " -"mêmes fonctionnalités que celles qui étaient déjà disponibles en utilisant " -"les fonctions du module string. La plupart de ces nouvelles méthodes ont été " -"largement acceptées, mais celle qui semble rendre certains programmeurs mal " -"à l'aise est ::" - -#: faq/design.rst:203 -msgid "which gives the result::" -msgstr "qui donne le résultat ::" - -#: faq/design.rst:207 -msgid "There are two common arguments against this usage." -msgstr "Il y a deux arguments fréquents contre cet usage." - -#: faq/design.rst:209 -msgid "" -"The first runs along the lines of: \"It looks really ugly using a method of " -"a string literal (string constant)\", to which the answer is that it might, " -"but a string literal is just a fixed value. If the methods are to be allowed " -"on names bound to strings there is no logical reason to make them " -"unavailable on literals." -msgstr "" -"Le premier argument peut se résumer à : « c'est vraiment moche d'utiliser " -"une méthode de chaîne littérale (c.-à-d. constante) ». La réponse est " -"« certes, mais une chaîne littérale est une valeur comme une autre, juste " -"fixe ». Si on utilise les méthodes sur des noms de variables, il n'y a pas " -"de raison à les interdire sur des chaînes littérales." - -#: faq/design.rst:215 -msgid "" -"The second objection is typically cast as: \"I am really telling a sequence " -"to join its members together with a string constant\". Sadly, you aren't. " -"For some reason there seems to be much less difficulty with " -"having :meth:`~str.split` as a string method, since in that case it is easy " -"to see that ::" -msgstr "" -"Le second consiste à se demander : « suis-je réellement en train de dire à " -"une séquence de joindre ses membres avec une constante de chaîne ? ». " -"Malheureusement, ce n'est pas ça. Allez savoir, il semble être bien moins " -"difficile de comprendre ce qui se passe avec :meth:`~str.split` en tant que " -"méthode de chaîne, puisque dans ce cas il est facile de voir que ::" - -#: faq/design.rst:222 -msgid "" -"is an instruction to a string literal to return the substrings delimited by " -"the given separator (or, by default, arbitrary runs of white space)." -msgstr "" -"est une instruction à une chaîne littérale de renvoyer les sous-chaînes " -"délimitées par le séparateur fourni (ou, par défaut, les espaces ou groupes " -"d'espaces)." - -#: faq/design.rst:225 -msgid "" -":meth:`~str.join` is a string method because in using it you are telling the " -"separator string to iterate over a sequence of strings and insert itself " -"between adjacent elements. This method can be used with any argument which " -"obeys the rules for sequence objects, including any new classes you might " -"define yourself. Similar methods exist for bytes and bytearray objects." -msgstr "" -":meth:`~str.join` est une méthode de chaîne parce qu'en l'utilisant vous " -"dites au séparateur de chaîne d'itérer une séquence de chaînes et de " -"s'insérer entre les éléments adjacents. Cette méthode peut être utilisée " -"avec n'importe quel argument qui obéit aux règles d'objets séquence, " -"incluant n'importe quelles nouvelles classes que vous pourriez définir vous-" -"même. Des méthodes similaires existent pour des objets ``bytes`` et " -"``bytearray``." - -#: faq/design.rst:233 -msgid "How fast are exceptions?" -msgstr "À quel point les exceptions sont-elles rapides ?" - -#: faq/design.rst:235 -#, fuzzy -msgid "" -"A :keyword:`try`/:keyword:`except` block is extremely efficient if no " -"exceptions are raised. Actually catching an exception is expensive. In " -"versions of Python prior to 2.0 it was common to use this idiom::" -msgstr "" -"Un bloc ``try`` … ``except`` est extrêmement efficient tant qu'aucune " -"exception n'est levée. En effet, intercepter une exception s'avère coûteux. " -"Dans les versions antérieures à Python 2.0, il était courant d'écrire ceci ::" - -#: faq/design.rst:246 -msgid "" -"This only made sense when you expected the dict to have the key almost all " -"the time. If that wasn't the case, you coded it like this::" -msgstr "" -"Cela n'a de sens que si vous vous attendez à ce que le dictionnaire ait la " -"clé presque tout le temps. Si ce n'était pas le cas, vous l'auriez codé " -"comme suit ::" - -#: faq/design.rst:254 -msgid "" -"For this specific case, you could also use ``value = dict.setdefault(key, " -"getvalue(key))``, but only if the ``getvalue()`` call is cheap enough " -"because it is evaluated in all cases." -msgstr "" -"Pour ce cas, vous pouvez également utiliser ``value = dict.setdefault(key, " -"getvalue(key))``, mais seulement si l'appel à ``getvalue()`` est " -"suffisamment peu coûteux car il est évalué dans tous les cas." - -#: faq/design.rst:260 -msgid "Why isn't there a switch or case statement in Python?" -msgstr "" -"Pourquoi n'y a-t-il pas une instruction *switch* ou une structure similaire " -"à *switch / case* en Python ?" - -#: faq/design.rst:262 -msgid "" -"In general, structured switch statements execute one block of code when an " -"expression has a particular value or set of values. Since Python 3.10 one " -"can easily match literal values, or constants within a namespace, with a " -"``match ... case`` statement. An older alternative is a sequence of ``if... " -"elif... elif... else``." -msgstr "" - -#: faq/design.rst:268 -msgid "" -"For cases where you need to choose from a very large number of " -"possibilities, you can create a dictionary mapping case values to functions " -"to call. For example::" -msgstr "" -"Dans les cas où vous devez choisir parmi un très grand nombre de " -"possibilités, vous pouvez créer un dictionnaire faisant correspondre des " -"valeurs à des fonctions à appeler. Par exemple ::" - -#: faq/design.rst:279 -msgid "" -"For calling methods on objects, you can simplify yet further by using " -"the :func:`getattr` built-in to retrieve methods with a particular name::" -msgstr "" -"Pour appeler les méthodes sur des objets, vous pouvez simplifier davantage " -"en utilisant la fonction native :func:`getattr` pour récupérer les méthodes " -"avec un nom donné ::" - -#: faq/design.rst:291 -msgid "" -"It's suggested that you use a prefix for the method names, such as " -"``visit_`` in this example. Without such a prefix, if values are coming " -"from an untrusted source, an attacker would be able to call any method on " -"your object." -msgstr "" -"Il est suggéré que vous utilisiez un préfixe pour les noms de méthodes, " -"telles que ``visit_`` dans cet exemple. Sans ce préfixe, si les valeurs " -"proviennent d'une source non fiable, un attaquant serait en mesure d'appeler " -"n'importe quelle méthode sur votre objet." - -#: faq/design.rst:295 -msgid "" -"Imitating switch with fallthrough, as with C's switch-case-default, is " -"possible, much harder, and less needed." -msgstr "" - -#: faq/design.rst:300 -msgid "" -"Can't you emulate threads in the interpreter instead of relying on an OS-" -"specific thread implementation?" -msgstr "" -"Est-il possible d'émuler des fils d'exécution dans l'interpréteur plutôt que " -"se baser sur les implémentations spécifiques aux systèmes d'exploitation ?" - -#: faq/design.rst:302 -msgid "" -"Answer 1: Unfortunately, the interpreter pushes at least one C stack frame " -"for each Python stack frame. Also, extensions can call back into Python at " -"almost random moments. Therefore, a complete threads implementation " -"requires thread support for C." -msgstr "" -"Réponse 1 : malheureusement, l'interpréteur pousse au moins un bloc de pile " -"C (*stack frame*) pour chaque bloc de pile de Python. Aussi, les extensions " -"peuvent rappeler dans Python à presque n'importe quel moment. Par " -"conséquent, une implémentation complète des fils d'exécution nécessiterait " -"une gestion complète pour le C." - -#: faq/design.rst:307 -msgid "" -"Answer 2: Fortunately, there is `Stackless Python `_, which has a completely redesigned " -"interpreter loop that avoids the C stack." -msgstr "" -"Réponse 2 : heureusement, il existe `Stackless Python `_, qui a complètement ré-architecturé la " -"boucle principale de l'interpréteur afin de ne pas utiliser la pile C." - -#: faq/design.rst:312 -msgid "Why can't lambda expressions contain statements?" -msgstr "" -"Pourquoi les expressions lambda ne peuvent pas contenir d'instructions ?" - -#: faq/design.rst:314 -msgid "" -"Python lambda expressions cannot contain statements because Python's " -"syntactic framework can't handle statements nested inside expressions. " -"However, in Python, this is not a serious problem. Unlike lambda forms in " -"other languages, where they add functionality, Python lambdas are only a " -"shorthand notation if you're too lazy to define a function." -msgstr "" -"Les expressions lambda de Python ne peuvent pas contenir d'instructions " -"parce que le cadre syntaxique de Python ne peut pas gérer les instructions " -"imbriquées à l'intérieur d'expressions. Cependant, en Python, ce n'est pas " -"vraiment un problème. Contrairement aux formes lambda dans d'autres " -"langages, où elles ajoutent des fonctionnalités, les expressions lambda de " -"Python sont seulement une notation concise si vous êtes trop paresseux pour " -"définir une fonction." - -#: faq/design.rst:320 -msgid "" -"Functions are already first class objects in Python, and can be declared in " -"a local scope. Therefore the only advantage of using a lambda instead of a " -"locally defined function is that you don't need to invent a name for the " -"function -- but that's just a local variable to which the function object " -"(which is exactly the same type of object that a lambda expression yields) " -"is assigned!" -msgstr "" -"Les fonctions sont déjà des objets de première classe en Python et peuvent " -"être déclarées dans une portée locale. L'unique avantage d'utiliser une " -"fonction lambda au lieu d'une fonction définie localement est que vous " -"n'avez nullement besoin d'un nom pour la fonction — mais c'est juste une " -"variable locale à laquelle est affecté l'objet fonction (qui est exactement " -"le même type d'objet que celui renvoyé par une expression lambda) !" - -#: faq/design.rst:328 -msgid "Can Python be compiled to machine code, C or some other language?" -msgstr "" -"Python peut-il être compilé en code machine, en C ou dans un autre langage ?" - -#: faq/design.rst:330 -#, fuzzy -msgid "" -"`Cython `_ compiles a modified version of Python with " -"optional annotations into C extensions. `Nuitka `_ is " -"an up-and-coming compiler of Python into C++ code, aiming to support the " -"full Python language." -msgstr "" -"`Cython `_ compile une version modifiée de Python avec " -"des annotations optionnelles en extensions C. `Nuitka `_ est un compilateur en devenir de Python vers C++, visant " -"à supporter le langage Python dans son entièreté." - -#: faq/design.rst:337 -msgid "How does Python manage memory?" -msgstr "Comment Python gère la mémoire ?" - -#: faq/design.rst:339 -msgid "" -"The details of Python memory management depend on the implementation. The " -"standard implementation of Python, :term:`CPython`, uses reference counting " -"to detect inaccessible objects, and another mechanism to collect reference " -"cycles, periodically executing a cycle detection algorithm which looks for " -"inaccessible cycles and deletes the objects involved. The :mod:`gc` module " -"provides functions to perform a garbage collection, obtain debugging " -"statistics, and tune the collector's parameters." -msgstr "" -"Les détails de la gestion de la mémoire en Python dépendent de " -"l'implémentation. En effet, l'implémentation standard de " -"Python, :term:`CPython`, utilise des compteurs de références afin de " -"détecter des objets inaccessibles et un autre mécanisme pour collecter les " -"références circulaires, exécutant périodiquement un algorithme de détection " -"de cycles qui recherche les cycles inaccessibles et supprime les objets " -"impliqués. Le module :mod:`gc` fournit des fonctions pour lancer le ramasse-" -"miettes, d'obtenir des statistiques de débogage et ajuster ses paramètres." - -#: faq/design.rst:347 -#, fuzzy -msgid "" -"Other implementations (such as `Jython `_ or `PyPy " -"`_), however, can rely on a different mechanism such as a " -"full-blown garbage collector. This difference can cause some subtle porting " -"problems if your Python code depends on the behavior of the reference " -"counting implementation." -msgstr "" -"Cependant, d'autres implémentations (par exemple `Jython `_ ou `PyPy `_) peuvent compter sur un " -"mécanisme différent comme un véritable ramasse-miettes. Cette différence " -"peut causer de subtils problèmes de portabilité si votre code Python dépend " -"du comportement de l'implémentation du compteur de références." - -#: faq/design.rst:353 -msgid "" -"In some Python implementations, the following code (which is fine in " -"CPython) will probably run out of file descriptors::" -msgstr "" -"Dans certaines implémentations de Python, le code suivant (qui fonctionne " -"parfaitement avec *CPython*) aurait probablement manqué de descripteurs de " -"fichiers ::" - -#: faq/design.rst:360 -#, fuzzy -msgid "" -"Indeed, using CPython's reference counting and destructor scheme, each new " -"assignment to ``f`` closes the previous file. With a traditional GC, " -"however, those file objects will only get collected (and closed) at varying " -"and possibly long intervals." -msgstr "" -"En effet, à l'aide du comptage de références et du destructeur d'objets de " -"*CPython*, chaque nouvelle affectation à *f* ferme le fichier précédent. " -"Cependant, avec un ramasse-miettes classique, ces objets sont collectés (et " -"fermés) à intervalles irréguliers, et potentiellement longs." - -#: faq/design.rst:365 -msgid "" -"If you want to write code that will work with any Python implementation, you " -"should explicitly close the file or use the :keyword:`with` statement; this " -"will work regardless of memory management scheme::" -msgstr "" -"Si vous souhaitez écrire du code qui fonctionne avec n'importe quelle " -"implémentation de Python, vous devez explicitement fermer le fichier ou " -"utiliser l'instruction :keyword:`with` ; ceci fonctionne indépendamment du " -"système de gestion de la mémoire ::" - -#: faq/design.rst:375 -msgid "Why doesn't CPython use a more traditional garbage collection scheme?" -msgstr "" -"Pourquoi CPython n'utilise-t-il pas un modèle de ramasse-miettes plus " -"traditionnel ?" - -#: faq/design.rst:377 -msgid "" -"For one thing, this is not a C standard feature and hence it's not portable. " -"(Yes, we know about the Boehm GC library. It has bits of assembler code for " -"*most* common platforms, not for all of them, and although it is mostly " -"transparent, it isn't completely transparent; patches are required to get " -"Python to work with it.)" -msgstr "" -"D'une part, ce n'est pas une caractéristique normalisée en C et, par " -"conséquent, ce n'est pas portable. (Oui, nous connaissons la bibliothèque " -"*GC Boehm*. Elle contient du code assembleur pour la plupart des plateformes " -"classiques, mais pas toutes, et bien qu'elle soit le plus souvent " -"transparente, elle ne l'est pas complètement ; des correctifs sont " -"nécessaires afin que Python fonctionne correctement avec.)" - -#: faq/design.rst:383 -#, fuzzy -msgid "" -"Traditional GC also becomes a problem when Python is embedded into other " -"applications. While in a standalone Python it's fine to replace the " -"standard ``malloc()`` and ``free()`` with versions provided by the GC " -"library, an application embedding Python may want to have its *own* " -"substitute for ``malloc()`` and ``free()``, and may not want Python's. " -"Right now, CPython works with anything that implements ``malloc()`` and " -"``free()`` properly." -msgstr "" -"Un ramasse-miettes classique devient également un problème lorsque Python " -"est incorporé dans d'autres applications. Bien que dans une application " -"Python, il ne soit pas gênant de remplacer les fonctions ``malloc()`` et " -"``free()`` avec les versions fournies par la bibliothèque du ramasse-" -"miettes, une application incluant Python peut vouloir avoir ses propres " -"implémentations de ``malloc()`` et ``free()`` et peut ne pas vouloir celles " -"de Python. À l'heure actuelle, CPython fonctionne avec n'importe quelle " -"implémentation correcte de ``malloc()`` et ``free()``." - -#: faq/design.rst:392 -msgid "Why isn't all memory freed when CPython exits?" -msgstr "" -"Pourquoi toute la mémoire n'est pas libérée lorsque *CPython* s'arrête ?" - -#: faq/design.rst:394 -msgid "" -"Objects referenced from the global namespaces of Python modules are not " -"always deallocated when Python exits. This may happen if there are circular " -"references. There are also certain bits of memory that are allocated by the " -"C library that are impossible to free (e.g. a tool like Purify will complain " -"about these). Python is, however, aggressive about cleaning up memory on " -"exit and does try to destroy every single object." -msgstr "" -"Les objets référencés depuis les espaces de nommage globaux des modules " -"Python ne sont pas toujours désalloués lorsque Python s'arrête. Cela peut se " -"produire s'il y a des références circulaires. Il y a aussi certaines parties " -"de mémoire qui sont allouées par la bibliothèque C qui sont impossibles à " -"libérer (par exemple un outil comme *Purify* s'en plaindra). Python est, " -"cependant, agressif sur le nettoyage de la mémoire en quittant et cherche à " -"détruire chaque objet." - -#: faq/design.rst:401 -msgid "" -"If you want to force Python to delete certain things on deallocation use " -"the :mod:`atexit` module to run a function that will force those deletions." -msgstr "" -"Si vous voulez forcer Python à désallouer certains objets en quittant, " -"utilisez le module :mod:`atexit` pour exécuter une fonction qui va forcer " -"ces destructions." - -#: faq/design.rst:406 -msgid "Why are there separate tuple and list data types?" -msgstr "" -"Pourquoi les *n*-uplets et les *list* sont deux types de données séparés ?" - -#: faq/design.rst:408 -#, fuzzy -msgid "" -"Lists and tuples, while similar in many respects, are generally used in " -"fundamentally different ways. Tuples can be thought of as being similar to " -"Pascal ``records`` or C ``structs``; they're small collections of related " -"data which may be of different types which are operated on as a group. For " -"example, a Cartesian coordinate is appropriately represented as a tuple of " -"two or three numbers." -msgstr "" -"Les listes et les *n*-uplets, bien que semblables à bien des égards, sont " -"généralement utilisés de façons fondamentalement différentes. Les *n*-uplets " -"peuvent être considérés comme étant similaires au *record* en Pascal ou aux " -"structures en C ; ce sont de petites collections de données associées qui " -"peuvent être de différents types qui sont utilisées ensemble. Par exemple, " -"des coordonnées cartésiennes sont correctement représentées par un *n*-uplet " -"de deux ou trois nombres." - -#: faq/design.rst:415 -#, fuzzy -msgid "" -"Lists, on the other hand, are more like arrays in other languages. They " -"tend to hold a varying number of objects all of which have the same type and " -"which are operated on one-by-one. For example, :func:`os.listdir('.') " -"` returns a list of strings representing the files in the " -"current directory. Functions which operate on this output would generally " -"not break if you added another file or two to the directory." -msgstr "" -"Les listes, ressemblent davantage à des tableaux dans d'autres langages. " -"Elles ont tendance à contenir un nombre variable d'objets de même type " -"manipulés individuellement. Par exemple, ``os.listdir('.')`` renvoie une " -"liste de chaînes représentant les fichiers dans le dossier courant. Les " -"fonctions travaillant sur cette sortie acceptent généralement sans aucun " -"problème que vous ajoutiez un ou deux fichiers supplémentaires dans le " -"dossier." - -#: faq/design.rst:423 -#, fuzzy -msgid "" -"Tuples are :term:`immutable`, meaning that once a tuple has been created, " -"you can't replace any of its elements with a new value. Lists " -"are :term:`mutable`, meaning that you can always change a list's elements. " -"Only :term:`hashable` objects can be used as dictionary keys. Most immutable " -"types are hashable, which is why tuples, but not lists, can be used as keys. " -"Note, however, that a tuple is only hashable if all of its elements are " -"hashable." -msgstr "" -"Les *n*-uplets sont immuables, ce qui signifie que lorsqu'un *n*-uplet a été " -"créé, vous ne pouvez remplacer aucun de ses éléments par une nouvelle " -"valeur. Les listes sont mutables, ce qui signifie que vous pouvez toujours " -"modifier les éléments d'une liste. Seuls des éléments immuables peuvent être " -"utilisés comme clés de dictionnaires, et donc de ``tuple`` et ``list`` seul " -"des *n*-uplets peuvent être utilisés comme clés." - -#: faq/design.rst:432 -msgid "How are lists implemented in CPython?" -msgstr "Comment les listes sont-elles implémentées dans CPython ?" - -#: faq/design.rst:434 -msgid "" -"CPython's lists are really variable-length arrays, not Lisp-style linked " -"lists. The implementation uses a contiguous array of references to other " -"objects, and keeps a pointer to this array and the array's length in a list " -"head structure." -msgstr "" -"Les listes en CPython sont de vrais tableaux de longueur variable " -"contrairement à des listes orientées *Lisp* (c.-à-d. des listes chaînées). " -"L'implémentation utilise un tableau contigu de références à d'autres objets. " -"Elle conserve également un pointeur vers ce tableau et la longueur du " -"tableau dans une structure de tête de liste." - -#: faq/design.rst:438 -msgid "" -"This makes indexing a list ``a[i]`` an operation whose cost is independent " -"of the size of the list or the value of the index." -msgstr "" -"Cela rend l'indexation d'une liste ``a[i]`` une opération dont le coût est " -"indépendant de la taille de la liste ou de la valeur de l'indice." - -#: faq/design.rst:441 -msgid "" -"When items are appended or inserted, the array of references is resized. " -"Some cleverness is applied to improve the performance of appending items " -"repeatedly; when the array must be grown, some extra space is allocated so " -"the next few times don't require an actual resize." -msgstr "" -"Lorsque des éléments sont ajoutés ou insérés, le tableau de références est " -"redimensionné. Un savoir-faire ingénieux permet l'amélioration des " -"performances lors de l'ajout fréquent d'éléments ; lorsque le tableau doit " -"être étendu, un certain espace supplémentaire est alloué de sorte que pour " -"la prochaine fois, ceci ne nécessite plus un redimensionnement effectif." - -#: faq/design.rst:448 -msgid "How are dictionaries implemented in CPython?" -msgstr "Comment les dictionnaires sont-ils implémentés dans CPython ?" - -#: faq/design.rst:450 -msgid "" -"CPython's dictionaries are implemented as resizable hash tables. Compared " -"to B-trees, this gives better performance for lookup (the most common " -"operation by far) under most circumstances, and the implementation is " -"simpler." -msgstr "" -"Les dictionnaires CPython sont implémentés sous forme de tables de hachage " -"redimensionnables. Par rapport aux *B-trees*, cela donne de meilleures " -"performances pour la recherche (l'opération la plus courante de loin) dans " -"la plupart des circonstances, et leur implémentation est plus simple." - -#: faq/design.rst:454 -#, fuzzy -msgid "" -"Dictionaries work by computing a hash code for each key stored in the " -"dictionary using the :func:`hash` built-in function. The hash code varies " -"widely depending on the key and a per-process seed; for example, " -"``'Python'`` could hash to ``-539294296`` while ``'python'``, a string that " -"differs by a single bit, could hash to ``1142331976``. The hash code is " -"then used to calculate a location in an internal array where the value will " -"be stored. Assuming that you're storing keys that all have different hash " -"values, this means that dictionaries take constant time -- *O*\\ (1), in Big-" -"O notation -- to retrieve a key." -msgstr "" -"Les dictionnaires fonctionnent en calculant un condensat pour chaque clé " -"stockée dans le dictionnaire à l'aide de la fonction :func:`hash`. La valeur " -"du condensat varie grandement en fonction de la clé et de la graine utilisée " -"par le processus ; par exemple, la chaîne de caractère \"Python\" pourrait " -"avoir comme condensat la valeur – 539 294 296 tandis que la chaîne " -"\"python\",qui diffère de la première par un seul bit, pourrait avoir comme " -"condensat la valeur 1 142 331 976. Le condensat est ensuite utilisé pour " -"déterminer un emplacement dans le tableau interne où la valeur est stockée. " -"Dans l'hypothèse où vous stockez les clés qui ont toutes des condensats " -"différents, cela signifie que le temps pour récupérer une clé est constant — " -"O(1), en notation grand O de Landau." - -#: faq/design.rst:465 -msgid "Why must dictionary keys be immutable?" -msgstr "Pourquoi les clés du dictionnaire sont immuables ?" - -#: faq/design.rst:467 -msgid "" -"The hash table implementation of dictionaries uses a hash value calculated " -"from the key value to find the key. If the key were a mutable object, its " -"value could change, and thus its hash could also change. But since whoever " -"changes the key object can't tell that it was being used as a dictionary " -"key, it can't move the entry around in the dictionary. Then, when you try " -"to look up the same object in the dictionary it won't be found because its " -"hash value is different. If you tried to look up the old value it wouldn't " -"be found either, because the value of the object found in that hash bin " -"would be different." -msgstr "" -"L'implémentation de la table de hachage des dictionnaires utilise une valeur " -"de hachage calculée à partir de la valeur de la clé pour trouver la clé elle-" -"même. Si la clé était un objet mutable, sa valeur peut changer, et donc son " -"hachage pourrait également changer. Mais toute personne modifiant l'objet " -"clé ne peut pas dire qu'elle a été utilisée comme une clé de dictionnaire. " -"Il ne peut déplacer l'entrée dans le dictionnaire. Ainsi, lorsque vous " -"essayez de rechercher le même objet dans le dictionnaire, il ne sera pas " -"disponible parce que sa valeur de hachage est différente. Si vous essayez de " -"chercher l'ancienne valeur, elle serait également introuvable car la valeur " -"de l'objet trouvé dans cet emplacement de hachage serait différente." - -#: faq/design.rst:476 -msgid "" -"If you want a dictionary indexed with a list, simply convert the list to a " -"tuple first; the function ``tuple(L)`` creates a tuple with the same entries " -"as the list ``L``. Tuples are immutable and can therefore be used as " -"dictionary keys." -msgstr "" -"Si vous voulez un dictionnaire indexé avec une liste, il faut simplement " -"convertir la liste en un *n*-uplet ; la fonction ``tuple(L)`` crée un *n*-" -"uplet avec les mêmes entrées que la liste ``L``. Les *n*-uplets sont " -"immuables et peuvent donc être utilisés comme clés du dictionnaire." - -#: faq/design.rst:480 -msgid "Some unacceptable solutions that have been proposed:" -msgstr "Certaines solutions insatisfaisantes ont été proposées :" - -#: faq/design.rst:482 -msgid "" -"Hash lists by their address (object ID). This doesn't work because if you " -"construct a new list with the same value it won't be found; e.g.::" -msgstr "" -"Hacher les listes par leur adresse (*ID* de l'objet). Cela ne fonctionne pas " -"parce que si vous créez une nouvelle liste avec la même valeur, elle ne sera " -"pas retrouvée ; par exemple ::" - -#: faq/design.rst:488 -msgid "" -"would raise a :exc:`KeyError` exception because the id of the ``[1, 2]`` " -"used in the second line differs from that in the first line. In other " -"words, dictionary keys should be compared using ``==``, not " -"using :keyword:`is`." -msgstr "" -"lèverait une exception :exc:`KeyError` car l'ID de ``[1, 2]`` utilisé dans " -"la deuxième ligne diffère de celui de la première ligne. En d'autres termes, " -"les clés de dictionnaire doivent être comparées à l'aide du comparateur " -"``==`` et non à l'aide du mot clé :keyword:`is`." - -#: faq/design.rst:492 -msgid "" -"Make a copy when using a list as a key. This doesn't work because the list, " -"being a mutable object, could contain a reference to itself, and then the " -"copying code would run into an infinite loop." -msgstr "" -"Faire une copie lors de l'utilisation d'une liste en tant que clé. Cela ne " -"fonctionne pas puisque la liste, étant un objet mutable, pourrait contenir " -"une référence à elle-même ou avoir une boucle infinie au niveau du code " -"copié." - -#: faq/design.rst:496 -msgid "" -"Allow lists as keys but tell the user not to modify them. This would allow " -"a class of hard-to-track bugs in programs when you forgot or modified a list " -"by accident. It also invalidates an important invariant of dictionaries: " -"every value in ``d.keys()`` is usable as a key of the dictionary." -msgstr "" -"Autoriser les listes en tant que clés, mais indiquer à l'utilisateur de ne " -"pas les modifier. Cela permettrait un ensemble de bogues difficiles à suivre " -"dans les programmes lorsque vous avez oublié ou modifié une liste par " -"accident. Cela casse également un impératif important des dictionnaires : " -"chaque valeur de ``d.keys()`` est utilisable comme clé du dictionnaire." - -#: faq/design.rst:501 -msgid "" -"Mark lists as read-only once they are used as a dictionary key. The problem " -"is that it's not just the top-level object that could change its value; you " -"could use a tuple containing a list as a key. Entering anything as a key " -"into a dictionary would require marking all objects reachable from there as " -"read-only -- and again, self-referential objects could cause an infinite " -"loop." -msgstr "" -"Marquer les listes comme étant en lecture seule une fois qu'elles sont " -"utilisées comme clé de dictionnaire. Le problème est que ce n'est pas " -"seulement l'objet de niveau supérieur qui pourrait changer sa valeur ; vous " -"pourriez utiliser un *n*-uplet contenant une liste comme clé. Utiliser " -"n'importe quoi comme une clé dans un dictionnaire nécessiterait de marquer " -"tous les objets accessibles à partir de là comme en lecture seule — et " -"encore une fois, les objets se faisant référence pourraient provoquer une " -"boucle infinie." - -#: faq/design.rst:507 -#, fuzzy -msgid "" -"There is a trick to get around this if you need to, but use it at your own " -"risk: You can wrap a mutable structure inside a class instance which has " -"both a :meth:`~object.__eq__` and a :meth:`~object.__hash__` method. You " -"must then make sure that the hash value for all such wrapper objects that " -"reside in a dictionary (or other hash based structure), remain fixed while " -"the object is in the dictionary (or other structure). ::" -msgstr "" -"Il y a un truc pour contourner ceci si vous en avez besoin, mais utilisez-le " -"à vos risques et périls. Vous pouvez encapsuler une structure mutable à " -"l'intérieur d'une instance de classe qui a à la fois une " -"méthode :meth:`__eq__` et :meth:`__hash__`. Vous devez ensuite vous assurer " -"que la valeur de hachage pour tous ces objets *wrapper* qui résident dans un " -"dictionnaire (ou une autre structure basée sur le hachage), restent fixes " -"pendant que l'objet est dans le dictionnaire (ou une autre structure). ::" - -#: faq/design.rst:532 -msgid "" -"Note that the hash computation is complicated by the possibility that some " -"members of the list may be unhashable and also by the possibility of " -"arithmetic overflow." -msgstr "" -"Notez que le calcul de hachage peut être compliqué car il est possible que " -"certains membres de la liste soient impossibles à hacher et aussi par la " -"possibilité de débordement arithmétique." - -#: faq/design.rst:536 -msgid "" -"Furthermore it must always be the case that if ``o1 == o2`` (ie " -"``o1.__eq__(o2) is True``) then ``hash(o1) == hash(o2)`` (ie, " -"``o1.__hash__() == o2.__hash__()``), regardless of whether the object is in " -"a dictionary or not. If you fail to meet these restrictions dictionaries " -"and other hash based structures will misbehave." -msgstr "" -"De plus, il faut toujours que, si ``o1 == o2`` (par exemple ``o1.__eq__(o2) " -"vaut True``) alors ``hash(o1) == hash(o2)`` (par exemple, ``o1.__hash__() == " -"o2.__hash__()``), que l’objet se trouve dans un dictionnaire ou pas. Si vous " -"ne remplissez pas ces conditions, les dictionnaires et autres structures " -"basées sur le hachage se comporteront mal." - -#: faq/design.rst:541 -#, fuzzy -msgid "" -"In the case of :class:`!ListWrapper`, whenever the wrapper object is in a " -"dictionary the wrapped list must not change to avoid anomalies. Don't do " -"this unless you are prepared to think hard about the requirements and the " -"consequences of not meeting them correctly. Consider yourself warned." -msgstr "" -"Dans le cas de *ListWrapper*, chaque fois que l'objet *wrapper* est dans un " -"dictionnaire, la liste encapsulée ne doit pas changer pour éviter les " -"anomalies. Ne faites pas cela à moins que vous n’ayez pensé aux potentielles " -"conséquences de ne pas satisfaire entièrement ces conditions. Vous avez été " -"prévenus." - -#: faq/design.rst:548 -msgid "Why doesn't list.sort() return the sorted list?" -msgstr "Pourquoi ``list.sort()`` ne renvoie pas la liste triée ?" - -#: faq/design.rst:550 -msgid "" -"In situations where performance matters, making a copy of the list just to " -"sort it would be wasteful. Therefore, :meth:`list.sort` sorts the list in " -"place. In order to remind you of that fact, it does not return the sorted " -"list. This way, you won't be fooled into accidentally overwriting a list " -"when you need a sorted copy but also need to keep the unsorted version " -"around." -msgstr "" -"Dans les situations où la performance est importante, faire une copie de la " -"liste juste pour la classer serait un gaspillage. Par " -"conséquent, :meth:`list.sort` classe la liste en place. Afin de vous le " -"rappeler, elle ne renvoie pas la liste classée. De cette façon, vous ne " -"serez pas dupés en écrasant accidentellement une liste lorsque vous avez " -"besoin d’une copie triée tout en gardant sous la main la version non triée." - -#: faq/design.rst:556 -msgid "" -"If you want to return a new list, use the built-in :func:`sorted` function " -"instead. This function creates a new list from a provided iterable, sorts " -"it and returns it. For example, here's how to iterate over the keys of a " -"dictionary in sorted order::" -msgstr "" -"Si vous souhaitez qu'une nouvelle liste soit renvoyée, utilisez plutôt la " -"fonction native :func:`sorted`. Cette fonction crée une nouvelle liste à " -"partir d’un itérable fourni, la classe et la renvoie. Par exemple, voici " -"comment itérer dans l’ordre sur les clés d’un dictionnaire ::" - -#: faq/design.rst:566 -msgid "How do you specify and enforce an interface spec in Python?" -msgstr "" -"Comment spécifier une interface et appliquer une spécification d’interface " -"en Python ?" - -#: faq/design.rst:568 -msgid "" -"An interface specification for a module as provided by languages such as C++ " -"and Java describes the prototypes for the methods and functions of the " -"module. Many feel that compile-time enforcement of interface specifications " -"helps in the construction of large programs." -msgstr "" -"Une spécification d'interface pour un module fourni par des langages tels " -"que C++ et Java décrit les prototypes pour les méthodes et les fonctions du " -"module. Beaucoup estiment que la vérification au moment de la compilation " -"des spécifications d'interface facilite la construction de grands programmes." - -#: faq/design.rst:573 -msgid "" -"Python 2.6 adds an :mod:`abc` module that lets you define Abstract Base " -"Classes (ABCs). You can then use :func:`isinstance` and :func:`issubclass` " -"to check whether an instance or a class implements a particular ABC. " -"The :mod:`collections.abc` module defines a set of useful ABCs such " -"as :class:`~collections.abc.Iterable`, :class:`~collections.abc.Container`, " -"and :class:`~collections.abc.MutableMapping`." -msgstr "" -"Python 2.6 ajoute un module :mod:`abc` qui vous permet de définir des " -"classes abstraites (ABC pour *abstract base classes* en anglais). Vous " -"pouvez ensuite utiliser :func:`isinstance` et :func:`issubclass` pour " -"vérifier si une instance ou une classe implémente une ABC particulière. Le " -"module :mod:`collections.abc` définit un ensemble d'ABC utiles telles " -"que :class:`~collections.abc.Iterable`, :class:`~collections.abc.Container` " -"et :class:`collections.abc.MutableMapping`." - -#: faq/design.rst:580 -msgid "" -"For Python, many of the advantages of interface specifications can be " -"obtained by an appropriate test discipline for components." -msgstr "" -"Pour Python, la plupart des avantages des spécifications d'interface peuvent " -"être obtenus par une discipline de test appropriée pour les composants." - -#: faq/design.rst:583 -msgid "" -"A good test suite for a module can both provide a regression test and serve " -"as a module interface specification and a set of examples. Many Python " -"modules can be run as a script to provide a simple \"self test.\" Even " -"modules which use complex external interfaces can often be tested in " -"isolation using trivial \"stub\" emulations of the external interface. " -"The :mod:`doctest` and :mod:`unittest` modules or third-party test " -"frameworks can be used to construct exhaustive test suites that exercise " -"every line of code in a module." -msgstr "" -"Une bonne suite de tests pour un module peut à la fois fournir un test de " -"non-régression et servir de spécification d'interface de module ainsi qu'un " -"ensemble d'exemples. De nombreux modules Python peuvent être exécutés en " -"tant que script pour fournir un simple « auto-test ». Même les modules qui " -"utilisent des interfaces externes complexes peuvent souvent être testés " -"isolément à l'aide d'émulations triviales embryonnaires de l'interface " -"externe. Les modules :mod:`doctest` et :mod:`UnitTest` ou des cadriciels de " -"test tiers peuvent être utilisés pour construire des suites de tests " -"exhaustives qui éprouvent chaque ligne de code dans un module." - -#: faq/design.rst:591 -#, fuzzy -msgid "" -"An appropriate testing discipline can help build large complex applications " -"in Python as well as having interface specifications would. In fact, it can " -"be better because an interface specification cannot test certain properties " -"of a program. For example, the :meth:`list.append` method is expected to " -"add new elements to the end of some internal list; an interface " -"specification cannot test that your :meth:`list.append` implementation will " -"actually do this correctly, but it's trivial to check this property in a " -"test suite." -msgstr "" -"Une discipline de test appropriée peut aider à construire des applications " -"complexes de grande taille en Python aussi bien que le feraient des " -"spécifications d'interface. En fait, c'est peut être même mieux parce qu'une " -"spécification d'interface ne peut pas tester certaines propriétés d'un " -"programme. Par exemple, la méthode :meth:`Append` est censée ajouter de " -"nouveaux éléments à la fin d'une liste « sur place » ; une spécification " -"d'interface ne peut pas tester que votre implémentation de :meth:`append` va " -"réellement le faire correctement, mais il est trivial de vérifier cette " -"propriété dans une suite de tests." - -#: faq/design.rst:599 -msgid "" -"Writing test suites is very helpful, and you might want to design your code " -"to make it easily tested. One increasingly popular technique, test-driven " -"development, calls for writing parts of the test suite first, before you " -"write any of the actual code. Of course Python allows you to be sloppy and " -"not write test cases at all." -msgstr "" -"L'écriture des suites de tests est très utile, et vous voudrez peut-être " -"concevoir votre code de manière à le rendre facilement testable. Une " -"technique de plus en plus populaire, le développement dirigé par les tests, " -"requiert d'écrire d'abord des éléments de la suite de tests, avant d'écrire " -"le code réel. Bien sûr, Python vous permet d'être laxiste et de ne pas " -"écrire de test du tout." - -#: faq/design.rst:607 -msgid "Why is there no goto?" -msgstr "Pourquoi n'y a-t-il pas de ``goto`` en Python ?" - -#: faq/design.rst:609 -#, fuzzy -msgid "" -"In the 1970s people realized that unrestricted goto could lead to messy " -"\"spaghetti\" code that was hard to understand and revise. In a high-level " -"language, it is also unneeded as long as there are ways to branch (in " -"Python, with :keyword:`if` statements and :keyword:`or`, :keyword:`and`, " -"and :keyword:`if`/:keyword:`else` expressions) and loop " -"(with :keyword:`while` and :keyword:`for` statements, possibly " -"containing :keyword:`continue` and :keyword:`break`)." -msgstr "" -"Dans les années 1970, les gens se sont aperçus que le foisonnement de *goto* " -"conduisait à du code « spaghetti » difficile à comprendre et à modifier. " -"Dans les langages de haut niveau, c'est d'autant moins nécessaire qu'il " -"existe différentes manières de créer des branches (en Python, les " -"instructions ``if`` et les expressions ``or``, ``and`` et ``if-else``) et de " -"boucler (avec les instructions ``while`` et ``for``, qui peuvent contenir " -"des ``continue`` et ``break``)." - -#: faq/design.rst:616 -#, fuzzy -msgid "" -"One can also use exceptions to provide a \"structured goto\" that works even " -"across function calls. Many feel that exceptions can conveniently emulate " -"all reasonable uses of the ``go`` or ``goto`` constructs of C, Fortran, and " -"other languages. For example::" -msgstr "" -"Vous pouvez utiliser les exceptions afin de mettre en place un « *goto* " -"structuré » qui fonctionne même à travers les appels de fonctions. Beaucoup " -"de personnes estiment que les exceptions sont une façon commode d'émuler " -"l'utilisation raisonnable des constructions *go* ou *goto* du C, du Fortran " -"ou d'autres langages de programmation. Par exemple ::" - -#: faq/design.rst:632 -#, fuzzy -msgid "" -"This doesn't allow you to jump into the middle of a loop, but that's usually " -"considered an abuse of ``goto`` anyway. Use sparingly." -msgstr "" -"Cela ne vous permet pas de sauter au milieu d'une boucle mais, ceci est de " -"toute façon généralement considéré comme un abus de ``goto``. À Utiliser " -"avec parcimonie." - -#: faq/design.rst:637 -msgid "Why can't raw strings (r-strings) end with a backslash?" -msgstr "" -"Pourquoi les chaînes de caractères brutes (r-strings) ne peuvent-elles pas " -"se terminer par un *backslash* ?" - -#: faq/design.rst:639 -msgid "" -"More precisely, they can't end with an odd number of backslashes: the " -"unpaired backslash at the end escapes the closing quote character, leaving " -"an unterminated string." -msgstr "" -"Plus précisément, elles ne peuvent pas se terminer par un nombre impair de " -"*backslashes* : le *backslash* non appairé à la fin échappe le caractère de " -"guillemet final, laissant la chaîne non terminée." - -#: faq/design.rst:643 -msgid "" -"Raw strings were designed to ease creating input for processors (chiefly " -"regular expression engines) that want to do their own backslash escape " -"processing. Such processors consider an unmatched trailing backslash to be " -"an error anyway, so raw strings disallow that. In return, they allow you to " -"pass on the string quote character by escaping it with a backslash. These " -"rules work well when r-strings are used for their intended purpose." -msgstr "" -"Les chaînes brutes ont été conçues pour faciliter la création de données " -"pour les processeurs de texte (principalement les moteurs d'expressions " -"régulières) qui veulent faire leur propre traitement d'échappement " -"d'*antislashes*. Ces processeurs considèrent un *antislash* de fin non-" -"appairé comme une erreur, alors les chaînes brutes ne le permettent pas. En " -"retour, elles vous permettent de transmettre le caractère de citation de la " -"chaîne en l'échappant avec un *antislash*. Ces règles fonctionnent bien " -"lorsque les chaînes brutes sont utilisées pour leur but premier." - -#: faq/design.rst:650 -msgid "" -"If you're trying to build Windows pathnames, note that all Windows system " -"calls accept forward slashes too::" -msgstr "" -"Si vous essayez de construire des chemins d'accès Windows, notez que tous " -"les appels système Windows acceptent également les *slashes* " -"« classiques » ::" - -#: faq/design.rst:655 -msgid "" -"If you're trying to build a pathname for a DOS command, try e.g. one of ::" -msgstr "" -"Si vous essayez de construire un chemin d'accès pour une commande DOS, " -"essayez par exemple l'un de ceux-ci ::" - -#: faq/design.rst:663 -msgid "Why doesn't Python have a \"with\" statement for attribute assignments?" -msgstr "" -"Pourquoi la déclaration ``with`` pour les assignations d'attributs n'existe " -"pas en Python ?" - -#: faq/design.rst:665 -#, fuzzy -msgid "" -"Python has a :keyword:`with` statement that wraps the execution of a block, " -"calling code on the entrance and exit from the block. Some languages have a " -"construct that looks like this::" -msgstr "" -"Python a une instruction ``with`` qui encapsule l'exécution d'un bloc, en " -"appelant du code à l'entrée et la sortie du bloc. Certains langages " -"possèdent une construction qui ressemble à ceci ::" - -#: faq/design.rst:673 -msgid "In Python, such a construct would be ambiguous." -msgstr "En Python, une telle construction serait ambiguë." - -#: faq/design.rst:675 -msgid "" -"Other languages, such as Object Pascal, Delphi, and C++, use static types, " -"so it's possible to know, in an unambiguous way, what member is being " -"assigned to. This is the main point of static typing -- the compiler " -"*always* knows the scope of every variable at compile time." -msgstr "" -"Les autres langages, tels que Pascal, Delphi et C++ utilisent des types " -"statiques, il est donc possible de savoir d'une manière claire et directe ce " -"à quoi est attribué un membre. C'est le point principal du typage statique — " -"le compilateur connaît *toujours* la portée de toutes les variables au " -"moment de la compilation." - -#: faq/design.rst:680 -msgid "" -"Python uses dynamic types. It is impossible to know in advance which " -"attribute will be referenced at runtime. Member attributes may be added or " -"removed from objects on the fly. This makes it impossible to know, from a " -"simple reading, what attribute is being referenced: a local one, a global " -"one, or a member attribute?" -msgstr "" -"Python utilise le typage dynamique. Il est impossible de savoir à l'avance " -"quel attribut sera référencé lors de l'exécution. Les attributs membres " -"peuvent être ajoutés ou retirés des objets à la volée. Il est donc " -"impossible de savoir, d'une simple lecture, quel attribut est référencé : " -"s'il est local, global ou un attribut membre ?" - -#: faq/design.rst:686 -msgid "For instance, take the following incomplete snippet::" -msgstr "Prenons par exemple l'extrait incomplet suivant ::" - -#: faq/design.rst:692 -#, fuzzy -msgid "" -"The snippet assumes that ``a`` must have a member attribute called ``x``. " -"However, there is nothing in Python that tells the interpreter this. What " -"should happen if ``a`` is, let us say, an integer? If there is a global " -"variable named ``x``, will it be used inside the :keyword:`with` block? As " -"you see, the dynamic nature of Python makes such choices much harder." -msgstr "" -"L'extrait suppose que « a » doit avoir un attribut membre appelé « x ». " -"Néanmoins, il n'y a rien en Python qui en informe l'interpréteur. Que se " -"passe-t-il si « a » est, disons, un entier ? Si une variable globale nommée " -"« x » existe, est-elle utilisée dans le bloc ``with`` ? Comme vous voyez, " -"la nature dynamique du Python rend ces choix beaucoup plus difficiles." - -#: faq/design.rst:698 -#, fuzzy -msgid "" -"The primary benefit of :keyword:`with` and similar language features " -"(reduction of code volume) can, however, easily be achieved in Python by " -"assignment. Instead of::" -msgstr "" -"L'avantage principal de ``with`` et des fonctionnalités de langage " -"similaires (réduction du volume de code) peut, cependant, être facilement " -"réalisé en Python par assignation. Au lieu de ::" - -#: faq/design.rst:705 -msgid "write this::" -msgstr "écrivez ceci ::" - -#: faq/design.rst:712 -msgid "" -"This also has the side-effect of increasing execution speed because name " -"bindings are resolved at run-time in Python, and the second version only " -"needs to perform the resolution once." -msgstr "" -"Cela a également pour effet secondaire d'augmenter la vitesse d'exécution " -"car les liaisons de noms sont résolues au moment de l'exécution en Python, " -"et la deuxième version n'a besoin d'exécuter la résolution qu'une seule fois." - -#: faq/design.rst:716 -msgid "" -"Similar proposals that would introduce syntax to further reduce code volume, " -"such as using a 'leading dot', have been rejected in favour of explicitness " -"(see https://mail.python.org/pipermail/python-ideas/2016-May/040070.html)." -msgstr "" - -#: faq/design.rst:722 -msgid "Why don't generators support the with statement?" -msgstr "" -"Pourquoi l'instruction ``with`` ne prend-elle pas en charge les générateurs ?" - -#: faq/design.rst:724 -#, fuzzy -msgid "" -"For technical reasons, a generator used directly as a context manager would " -"not work correctly. When, as is most common, a generator is used as an " -"iterator run to completion, no closing is needed. When it is, wrap it " -"as :func:`contextlib.closing(generator) ` in " -"the :keyword:`with` statement." -msgstr "" -"Pour des raisons d'ordre technique, un générateur utilisé directement comme " -"gestionnaire de contexte ne pourrait pas fonctionner. Dans le cas le plus " -"courant, où un générateur est utilisé jusqu'à épuisement, il n'y a pas " -"besoin de le fermer. Sinon, on peut toujours mettre " -"``contextlib.closing(générateur)`` dans la ligne du ``with``." - -#: faq/design.rst:732 -msgid "Why are colons required for the if/while/def/class statements?" -msgstr "" -"Pourquoi les deux-points sont-ils nécessaires pour les déclarations ``if/" -"while/def/class`` ?" - -#: faq/design.rst:734 -msgid "" -"The colon is required primarily to enhance readability (one of the results " -"of the experimental ABC language). Consider this::" -msgstr "" -"Le deux-points est principalement nécessaire pour améliorer la lisibilité " -"(l'un des résultats du langage expérimental ABC). Considérez ceci ::" - -#: faq/design.rst:740 -msgid "versus ::" -msgstr "et cela ::" - -#: faq/design.rst:745 -msgid "" -"Notice how the second one is slightly easier to read. Notice further how a " -"colon sets off the example in this FAQ answer; it's a standard usage in " -"English." -msgstr "" -"Remarquez comment le deuxième est un peu plus facile à lire. Remarquez " -"aussi comment un deux-points introduit l'exemple dans cette réponse à la " -"FAQ ; c'est un usage standard en français (et en anglais)." - -#: faq/design.rst:748 -msgid "" -"Another minor reason is that the colon makes it easier for editors with " -"syntax highlighting; they can look for colons to decide when indentation " -"needs to be increased instead of having to do a more elaborate parsing of " -"the program text." -msgstr "" -"Une autre raison mineure est que les deux-points facilitent la tâche des " -"éditeurs avec coloration syntaxique ; ils peuvent rechercher les deux-points " -"pour décider quand l'indentation doit être augmentée au lieu d'avoir à faire " -"une analyse plus élaborée du texte du programme." - -#: faq/design.rst:754 -msgid "Why does Python allow commas at the end of lists and tuples?" -msgstr "" -"Pourquoi Python permet-il les virgules à la fin des listes et des *n*-" -"uplets ?" - -#: faq/design.rst:756 -msgid "" -"Python lets you add a trailing comma at the end of lists, tuples, and " -"dictionaries::" -msgstr "" -"Python vous permet d'ajouter une virgule à la fin des listes, des *n*-uplets " -"et des dictionnaires ::" - -#: faq/design.rst:767 -msgid "There are several reasons to allow this." -msgstr "Il y a plusieurs raisons d'accepter cela." - -#: faq/design.rst:769 -msgid "" -"When you have a literal value for a list, tuple, or dictionary spread across " -"multiple lines, it's easier to add more elements because you don't have to " -"remember to add a comma to the previous line. The lines can also be " -"reordered without creating a syntax error." -msgstr "" -"Lorsque vous avez une valeur littérale pour une liste, un *n*-uplet ou un " -"dictionnaire réparti sur plusieurs lignes, il est plus facile d'ajouter plus " -"d'éléments parce que vous n'avez pas besoin de vous rappeler d'ajouter une " -"virgule à la ligne précédente. Les lignes peuvent aussi être réorganisées " -"sans créer une erreur de syntaxe." - -#: faq/design.rst:774 -msgid "" -"Accidentally omitting the comma can lead to errors that are hard to " -"diagnose. For example::" -msgstr "" -"L'omission accidentelle de la virgule peut entraîner des erreurs difficiles " -"à diagnostiquer, par exemple ::" - -#: faq/design.rst:784 -msgid "" -"This list looks like it has four elements, but it actually contains three: " -"\"fee\", \"fiefoo\" and \"fum\". Always adding the comma avoids this source " -"of error." -msgstr "" -"Cette liste a l'air d'avoir quatre éléments, mais elle en contient en fait " -"trois : \"*fee*\", \"*fiefoo*\" et \"*fum*\". Toujours ajouter la virgule " -"permet d'éviter cette source d'erreur." - -#: faq/design.rst:787 -msgid "" -"Allowing the trailing comma may also make programmatic code generation " -"easier." -msgstr "" -"Permettre la virgule de fin peut également faciliter la génération de code." - -#~ msgid "" -#~ "You can do this easily enough with a sequence of ``if... elif... elif... " -#~ "else``. For literal values, or constants within a namespace, you can also " -#~ "use a ``match ... case`` statement." -#~ msgstr "" -#~ "Il est facile de réaliser cette structure avec une suite ``if... elif... " -#~ "elif... else``. Pour comparer à des littéraux, ou à des constantes qui " -#~ "sont encapsulées dans un espace de nommage, on peut aussi utiliser " -#~ "l'instruction ``match ... case``." - -#~ msgid "" -#~ "You can do this easily enough with a sequence of ``if... elif... elif... " -#~ "else``. There have been some proposals for switch statement syntax, but " -#~ "there is no consensus (yet) on whether and how to do range tests. " -#~ "See :pep:`275` for complete details and the current status." -#~ msgstr "" -#~ "Vous pouvez le faire assez facilement avec une séquence de ``if... " -#~ "elif... elif... else``. Il y a eu quelques propositions pour la syntaxe " -#~ "de l'instruction ``switch``, mais il n'y a pas (encore) de consensus sur " -#~ "le cas des intervalles. Voir la :pep:`275` pour tous les détails et " -#~ "l'état actuel." diff --git a/faq/extending.po b/faq/extending.po deleted file mode 100644 index 4cd7479a2f..0000000000 --- a/faq/extending.po +++ /dev/null @@ -1,563 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2021-10-17 18:37+0200\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: faq/extending.rst:3 -msgid "Extending/Embedding FAQ" -msgstr "FAQ extension/intégration" - -#: faq/extending.rst:6 -msgid "Contents" -msgstr "Sommaire" - -#: faq/extending.rst:16 -msgid "Can I create my own functions in C?" -msgstr "Puis-je créer mes propres fonctions en C ?" - -#: faq/extending.rst:18 -msgid "" -"Yes, you can create built-in modules containing functions, variables, " -"exceptions and even new types in C. This is explained in the " -"document :ref:`extending-index`." -msgstr "" -"Oui, vous pouvez créer des modules intégrés contenant des fonctions, des " -"variables, des exceptions et même de nouveaux types en C. Ceci est expliqué " -"dans le document :ref:`extending-index`." - -#: faq/extending.rst:22 -msgid "Most intermediate or advanced Python books will also cover this topic." -msgstr "" -"La plupart des livres Python intermédiaires ou avancés couvrent également ce " -"sujet." - -#: faq/extending.rst:26 -msgid "Can I create my own functions in C++?" -msgstr "Puis-je créer mes propres fonctions en C++ ?" - -#: faq/extending.rst:28 -msgid "" -"Yes, using the C compatibility features found in C++. Place ``extern \"C\" " -"{ ... }`` around the Python include files and put ``extern \"C\"`` before " -"each function that is going to be called by the Python interpreter. Global " -"or static C++ objects with constructors are probably not a good idea." -msgstr "" -"Oui, en utilisant les fonctionnalités de compatibilité C existantes en C++. " -"Placez ``extern \"C\" { ... }`` autour des fichiers Python inclus et mettez " -"``extern \"C\"`` avant chaque fonction qui va être appelée par " -"l'interpréteur Python. Les objets C++ globaux ou statiques avec les " -"constructeurs ne sont probablement pas une bonne idée." - -#: faq/extending.rst:37 -msgid "Writing C is hard; are there any alternatives?" -msgstr "Écrire directement en C est difficile ; existe-t-il des alternatives ?" - -#: faq/extending.rst:39 -msgid "" -"There are a number of alternatives to writing your own C extensions, " -"depending on what you're trying to do. :ref:`Recommended third party tools " -"` offer both simpler and more sophisticated approaches to " -"creating C and C++ extensions for Python." -msgstr "" - -#: faq/extending.rst:46 -msgid "How can I execute arbitrary Python statements from C?" -msgstr "" -"Comment puis-je exécuter des instructions quelconques Python à partir de C ?" - -#: faq/extending.rst:48 -msgid "" -"The highest-level function to do this is :c:func:`PyRun_SimpleString` which " -"takes a single string argument to be executed in the context of the module " -"``__main__`` and returns ``0`` for success and ``-1`` when an exception " -"occurred (including :exc:`SyntaxError`). If you want more control, " -"use :c:func:`PyRun_String`; see the source for :c:func:`PyRun_SimpleString` " -"in ``Python/pythonrun.c``." -msgstr "" -"La fonction de plus haut niveau pour ce faire " -"est :c:func:`PyRun_SimpleStringString` qui prend une chaîne pour seul " -"argument afin de l'exécuter dans le contexte du module ``__main__`` et " -"renvoie ``0`` en cas de succès et ``-1`` quand une exception se produit " -"(incluant :exc:`SyntaxError`). Pour une meilleure maîtrise, " -"utilisez :c:func:`PyRun_String` ; voir le code source " -"pour :c:func:`PyRun_SimpleString` dans ``Python/pythonrun.c``." - -#: faq/extending.rst:57 -msgid "How can I evaluate an arbitrary Python expression from C?" -msgstr "" -"Comment puis-je évaluer une expression quelconque de Python à partir de C ?" - -#: faq/extending.rst:59 -msgid "" -"Call the function :c:func:`PyRun_String` from the previous question with the " -"start symbol :c:data:`Py_eval_input`; it parses an expression, evaluates it " -"and returns its value." -msgstr "" -"Appelez la fonction :c:func:`PyRun_String` de la question précédente avec le " -"symbole de départ :c:data:`Py_eval_input` ; il analyse une expression, " -"l'évalue et renvoie sa valeur." - -#: faq/extending.rst:65 -msgid "How do I extract C values from a Python object?" -msgstr "Comment puis-je extraire des donnés en C d'un objet Python ?" - -#: faq/extending.rst:67 -#, fuzzy -msgid "" -"That depends on the object's type. If it's a tuple, :c:func:`PyTuple_Size` " -"returns its length and :c:func:`PyTuple_GetItem` returns the item at a " -"specified index. Lists have similar functions, :c:func:`PyList_Size` " -"and :c:func:`PyList_GetItem`." -msgstr "" -"Cela dépend du type d'objet. Si c'est un *n*-uplet, :c:func:`PyTuple_Size` " -"renvoie sa longueur et :c:func:`PyTuple_GetItem` renvoie l'élément à l'index " -"spécifié. Les listes ont des fonctions similaires, :c:func:`PyListSize` " -"et :c:func:`PyList_GetItem`." - -#: faq/extending.rst:72 -#, fuzzy -msgid "" -"For bytes, :c:func:`PyBytes_Size` returns its length " -"and :c:func:`PyBytes_AsStringAndSize` provides a pointer to its value and " -"its length. Note that Python bytes objects may contain null bytes so " -"C's :c:func:`!strlen` should not be used." -msgstr "" -"Pour les bytes, :c:func:`PyBytes_Size` renvoie sa longueur " -"et :c:func:`PyBytes_AsStringAndSize` fournit un pointeur vers sa valeur et " -"sa longueur. Notez que les objets bytes en Python peuvent contenir des " -"valeurs nulles, c'est pourquoi il ne faut pas utiliser la fonction " -"C :c:func:`strlen`." - -#: faq/extending.rst:77 -msgid "" -"To test the type of an object, first make sure it isn't ``NULL``, and then " -"use :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:`PyList_Check`, " -"etc." -msgstr "" -"Pour tester le type d'un objet, assurez-vous d'abord qu'il ne soit pas " -"``NULL``, puis " -"utilisez :c:func:`PyBytes_Check`, :c:func:`PyTuple_Check`, :c:func:`PyList_Check`, " -"etc." - -#: faq/extending.rst:80 -msgid "" -"There is also a high-level API to Python objects which is provided by the so-" -"called 'abstract' interface -- read ``Include/abstract.h`` for further " -"details. It allows interfacing with any kind of Python sequence using calls " -"like :c:func:`PySequence_Length`, :c:func:`PySequence_GetItem`, etc. as well " -"as many other useful protocols such as numbers (:c:func:`PyNumber_Index` et " -"al.) and mappings in the PyMapping APIs." -msgstr "" -"Il y a aussi une API de haut niveau pour les objets Python qui est fournie " -"par l'interface dite « abstraite » — voir ``Include/abstract.h`` pour plus " -"de détails. Elle permet l'interfaçage avec tout type de séquence Python en " -"utilisant des appels tels " -"que :c:func:`PySequence_Length`, :c:func:`PySequence_GetItem`, etc. ainsi " -"que de nombreux autres protocoles utiles tels que les nombres " -"(:c:func:`PyNumber_Index` et autres) et les correspondances dans les APIs " -"PyMapping." - -#: faq/extending.rst:89 -msgid "How do I use Py_BuildValue() to create a tuple of arbitrary length?" -msgstr "" -"Comment utiliser Py_BuildValue() pour créer un *n*-uplet de longueur " -"définie ?" - -#: faq/extending.rst:91 -msgid "You can't. Use :c:func:`PyTuple_Pack` instead." -msgstr "Vous ne pouvez pas. Utilisez :c:func:`PyTuple_Pack` à la place." - -#: faq/extending.rst:95 -msgid "How do I call an object's method from C?" -msgstr "Comment puis-je appeler la méthode d'un objet à partir de C ?" - -#: faq/extending.rst:97 -msgid "" -"The :c:func:`PyObject_CallMethod` function can be used to call an arbitrary " -"method of an object. The parameters are the object, the name of the method " -"to call, a format string like that used with :c:func:`Py_BuildValue`, and " -"the argument values::" -msgstr "" -"La fonction :c:func:`PyObject_CallMethod` peut être utilisée pour appeler la " -"méthode d'un objet. Les paramètres sont l'objet, le nom de la méthode à " -"appeler, une chaîne de caractères comme celle utilisée " -"pour :c:func:`Py_BuildValue` et les valeurs des arguments ::" - -#: faq/extending.rst:106 -msgid "" -"This works for any object that has methods -- whether built-in or user-" -"defined. You are responsible for eventually :c:func:`Py_DECREF`\\ 'ing the " -"return value." -msgstr "" -"Cela fonctionne pour tous les objets qui ont des méthodes — qu'elles soient " -"intégrées ou définies par l'utilisateur. Vous êtes responsable de " -"« :c:func:`Py_DECREF`\\ *er* » la valeur de retour à la fin." - -#: faq/extending.rst:109 -msgid "" -"To call, e.g., a file object's \"seek\" method with arguments 10, 0 " -"(assuming the file object pointer is \"f\")::" -msgstr "" -"Pour appeler, p. ex., la méthode *seek* d'un objet *file* avec les arguments " -"10, 0 (en supposant que le pointeur de l'objet fichier est *f*) ::" - -#: faq/extending.rst:120 -msgid "" -"Note that since :c:func:`PyObject_CallObject` *always* wants a tuple for the " -"argument list, to call a function without arguments, pass \"()\" for the " -"format, and to call a function with one argument, surround the argument in " -"parentheses, e.g. \"(i)\"." -msgstr "" -"Notez que :c:func:`PyObject_CallObject` veut *toujours* un *n*-uplet comme " -"liste d'arguments. Aussi, pour appeler une fonction sans arguments, utilisez " -"\"()\" pour être conforme au type et, pour appeler une fonction avec un " -"paramètre, entourez-le de parenthèses, p. ex. \"(i)\"." - -#: faq/extending.rst:127 -msgid "" -"How do I catch the output from PyErr_Print() (or anything that prints to " -"stdout/stderr)?" -msgstr "" -"Comment puis-je récupérer la sortie de ``PyErr_Print()`` (ou tout ce qui " -"s'affiche sur *stdout*/*stderr*) ?" - -#: faq/extending.rst:129 -msgid "" -"In Python code, define an object that supports the ``write()`` method. " -"Assign this object to :data:`sys.stdout` and :data:`sys.stderr`. Call " -"print_error, or just allow the standard traceback mechanism to work. Then, " -"the output will go wherever your ``write()`` method sends it." -msgstr "" -"Dans le code Python, définissez un objet qui possède la méthode ``write()``. " -"Affectez cet objet à :data:`sys.stdout` et :data:`sys.stderr`. Appelez " -"*print_error* ou faites simplement en sorte que le mécanisme standard de " -"remontée des erreurs fonctionne. Ensuite, la sortie sera dirigée vers " -"l'endroit où votre méthode ``write()`` écrit." - -#: faq/extending.rst:134 -msgid "The easiest way to do this is to use the :class:`io.StringIO` class:" -msgstr "" -"La façon la plus simple consiste à utiliser la classe :class:`io.StringIO` :" - -#: faq/extending.rst:146 -msgid "A custom object to do the same would look like this:" -msgstr "" -"Le code d'un objet à la fonctionnalité similaire ressemblerait à ceci :" - -#: faq/extending.rst:167 -msgid "How do I access a module written in Python from C?" -msgstr "Comment accéder à un module écrit en Python à partir de C ?" - -#: faq/extending.rst:169 -msgid "You can get a pointer to the module object as follows::" -msgstr "Vous pouvez obtenir un pointeur sur l'objet module comme suit ::" - -#: faq/extending.rst:173 -msgid "" -"If the module hasn't been imported yet (i.e. it is not yet present " -"in :data:`sys.modules`), this initializes the module; otherwise it simply " -"returns the value of ``sys.modules[\"\"]``. Note that it " -"doesn't enter the module into any namespace -- it only ensures it has been " -"initialized and is stored in :data:`sys.modules`." -msgstr "" -"Si le module n'a pas encore été importé (c.-à-d. qu'il n'est pas encore " -"présent dans :data:`sys.modules`), cela initialise le module ; sinon il " -"renvoie simplement la valeur de ``sys.modules[\"\"]``. Notez " -"qu'il n'inscrit le module dans aucun espace de nommage — il s'assure " -"seulement qu'il a été initialisé et qu'il est stocké " -"dans :data:`sys.modules`." - -#: faq/extending.rst:179 -msgid "" -"You can then access the module's attributes (i.e. any name defined in the " -"module) as follows::" -msgstr "" -"Vous pouvez alors accéder aux attributs du module (c.-à-d. à tout nom défini " -"dans le module) comme suit ::" - -#: faq/extending.rst:184 -msgid "" -"Calling :c:func:`PyObject_SetAttrString` to assign to variables in the " -"module also works." -msgstr "" -"Appeler :c:func:`PyObject_SetAttrString` pour assigner des valeurs aux " -"variables du module fonctionne également." - -#: faq/extending.rst:189 -msgid "How do I interface to C++ objects from Python?" -msgstr "Comment s'interfacer avec les objets C++ depuis Python ?" - -#: faq/extending.rst:191 -msgid "" -"Depending on your requirements, there are many approaches. To do this " -"manually, begin by reading :ref:`the \"Extending and Embedding\" document " -"`. Realize that for the Python run-time system, there " -"isn't a whole lot of difference between C and C++ -- so the strategy of " -"building a new Python type around a C structure (pointer) type will also " -"work for C++ objects." -msgstr "" -"Selon vos besoins, de nombreuses approches sont possibles. Pour le faire " -"manuellement, commencez par lire :ref:`le document \"Extension et " -"intégration\" `. Sachez que pour le système d'exécution " -"Python, il n'y a pas beaucoup de différence entre C et C++ — donc la méthode " -"pour construire un nouveau type Python à partir d'une structure C (pointeur) " -"fonctionne également avec des objets en C++." - -#: faq/extending.rst:197 -msgid "For C++ libraries, see :ref:`c-wrapper-software`." -msgstr "Pour les bibliothèques C++, voir :ref:`c-wrapper-software`." - -#: faq/extending.rst:201 -msgid "I added a module using the Setup file and the make fails; why?" -msgstr "" -"J'ai ajouté un module en utilisant le fichier *Setup* et la compilation " -"échoue ; pourquoi ?" - -#: faq/extending.rst:203 -msgid "" -"Setup must end in a newline, if there is no newline there, the build process " -"fails. (Fixing this requires some ugly shell script hackery, and this bug " -"is so minor that it doesn't seem worth the effort.)" -msgstr "" -"Le fichier *Setup* doit se terminer par une ligne vide, s'il n'y a pas de " -"ligne vide, le processus de compilation échoue (ce problème peut se régler " -"en bidouillant un script shell, et ce bogue est si mineur qu'il ne mérite " -"pas qu'on s'y attarde)." - -#: faq/extending.rst:209 -msgid "How do I debug an extension?" -msgstr "Comment déboguer une extension ?" - -#: faq/extending.rst:211 -msgid "" -"When using GDB with dynamically loaded extensions, you can't set a " -"breakpoint in your extension until your extension is loaded." -msgstr "" -"Lorsque vous utilisez GDB avec des extensions chargées dynamiquement, vous " -"ne pouvez pas placer de point d'arrêt dans votre extension tant que celle-ci " -"n'est pas chargée." - -#: faq/extending.rst:214 -msgid "In your ``.gdbinit`` file (or interactively), add the command:" -msgstr "" -"Dans votre fichier ``.gdbinit`` (ou manuellement), ajoutez la commande :" - -#: faq/extending.rst:220 -msgid "Then, when you run GDB:" -msgstr "Ensuite, lorsque vous exécutez GDB :" - -#: faq/extending.rst:232 -msgid "" -"I want to compile a Python module on my Linux system, but some files are " -"missing. Why?" -msgstr "" -"Je veux compiler un module Python sur mon système Linux, mais il manque " -"certains fichiers. Pourquoi ?" - -#: faq/extending.rst:234 -#, fuzzy -msgid "" -"Most packaged versions of Python omit some files required for compiling " -"Python extensions." -msgstr "" -"La plupart des versions pré-compilées de Python n'incluent pas le " -"répertoire :file:`/usr/lib/python2.{x}/config/`, qui contient les différents " -"fichiers nécessaires à la compilation des extensions Python." - -#: faq/extending.rst:237 -#, fuzzy -msgid "For Red Hat, install the python3-devel RPM to get the necessary files." -msgstr "" -"Pour Red Hat, installez le RPM *python-devel* pour obtenir les fichiers " -"nécessaires." - -#: faq/extending.rst:239 -#, fuzzy -msgid "For Debian, run ``apt-get install python3-dev``." -msgstr "Pour Debian, exécutez ``apt-get install python-dev``." - -#: faq/extending.rst:242 -msgid "How do I tell \"incomplete input\" from \"invalid input\"?" -msgstr "" -"Comment distinguer une « entrée incomplète » (*incomplete input*) d'une " -"« entrée invalide » (*invalid input*) ?" - -#: faq/extending.rst:244 -msgid "" -"Sometimes you want to emulate the Python interactive interpreter's behavior, " -"where it gives you a continuation prompt when the input is incomplete (e.g. " -"you typed the start of an \"if\" statement or you didn't close your " -"parentheses or triple string quotes), but it gives you a syntax error " -"message immediately when the input is invalid." -msgstr "" -"Parfois vous souhaitez émuler le comportement de l'interpréteur interactif " -"Python, quand il vous donne une invite de continuation lorsque l'entrée est " -"incomplète (par exemple, vous avez tapé le début d'une instruction \"if\" ou " -"vous n'avez pas fermé vos parenthèses ou triple guillemets) mais il vous " -"renvoie immédiatement une erreur syntaxique quand la saisie est incorrecte." - -#: faq/extending.rst:250 -msgid "" -"In Python you can use the :mod:`codeop` module, which approximates the " -"parser's behavior sufficiently. IDLE uses this, for example." -msgstr "" -"En Python, vous pouvez utiliser le module :mod:`codeop`, qui se rapproche " -"assez du comportement de l'analyseur. Par exemple, IDLE l'utilise." - -#: faq/extending.rst:253 -msgid "" -"The easiest way to do it in C is to call :c:func:`PyRun_InteractiveLoop` " -"(perhaps in a separate thread) and let the Python interpreter handle the " -"input for you. You can also set the :c:func:`PyOS_ReadlineFunctionPointer` " -"to point at your custom input function. See ``Modules/readline.c`` and " -"``Parser/myreadline.c`` for more hints." -msgstr "" -"La façon la plus simple de le faire en C est " -"d'appeler :c:func:`PyRun_InteractiveLoop` (peut-être dans un autre fil " -"d'exécution) et laisser l'interpréteur Python gérer l'entrée pour vous. Vous " -"pouvez également définir :c:func:`PyOS_ReadlineFunctionPointer` pour pointer " -"vers votre fonction d'entrée personnalisée. Voir ``Modules/readline.c`` et " -"``Parser/myreadline.c`` pour plus de conseils." - -#: faq/extending.rst:260 -msgid "How do I find undefined g++ symbols __builtin_new or __pure_virtual?" -msgstr "" -"Comment puis-je trouver les symboles g++ indéfinis ``__builtin_new`` ou " -"``__pure_virtual`` ?" - -#: faq/extending.rst:262 -msgid "" -"To dynamically load g++ extension modules, you must recompile Python, relink " -"it using g++ (change LINKCC in the Python Modules Makefile), and link your " -"extension module using g++ (e.g., ``g++ -shared -o mymodule.so mymodule.o``)." -msgstr "" -"Pour charger dynamiquement les modules d'extension g++, vous devez " -"recompiler Python, effectuer l'édition de liens en utilisant g++ (modifiez " -"*LINKCC* dans le *Python Modules Makefile*), et effectuer l'édition de liens " -"de votre module d'extension avec g++ (par exemple, ``g++ -shared -o " -"mymodule.so mymodule.o``)." - -#: faq/extending.rst:268 -msgid "" -"Can I create an object class with some methods implemented in C and others " -"in Python (e.g. through inheritance)?" -msgstr "" -"Puis-je créer une classe d'objets avec certaines méthodes implémentées en C " -"et d'autres en Python (p. ex. en utilisant l'héritage) ?" - -#: faq/extending.rst:270 -msgid "" -"Yes, you can inherit from built-in classes such " -"as :class:`int`, :class:`list`, :class:`dict`, etc." -msgstr "" -"Oui, vous pouvez hériter de classes intégrées telles " -"que :class:`int`, :class:`list`, :class:`dict`, etc." - -#: faq/extending.rst:273 -#, fuzzy -msgid "" -"The Boost Python Library (BPL, https://www.boost.org/libs/python/doc/" -"index.html) provides a way of doing this from C++ (i.e. you can inherit from " -"an extension class written in C++ using the BPL)." -msgstr "" -"La bibliothèque *Boost Python Library* (BPL, http://www.boost.org/libs/" -"python/doc/index.html) fournit un moyen de le faire depuis C++ (c.-à-d. que " -"vous pouvez hériter d'une classe d'extension écrite en C++ en utilisant BPL)." - -#~ msgid "" -#~ "There are a number of alternatives to writing your own C extensions, " -#~ "depending on what you're trying to do." -#~ msgstr "" -#~ "Il y a un certain nombre de solutions existantes qui vous permettent " -#~ "d'écrire vos propres extensions C, selon ce que vous essayez de faire." - -#, fuzzy -#~ msgid "" -#~ "`Cython `_ and its relative `Pyrex `_ are compilers that " -#~ "accept a slightly modified form of Python and generate the corresponding " -#~ "C code. Cython and Pyrex make it possible to write an extension without " -#~ "having to learn Python's C API." -#~ msgstr "" -#~ "`Cython `_ et son cousin `Pyrex `_ sont des " -#~ "compilateurs qui acceptent une forme légèrement modifiée de Python et " -#~ "produisent du code C correspondant. Cython et Pyrex permettent d'écrire " -#~ "une extension sans avoir à connaître l'API C de Python." - -#, fuzzy -#~ msgid "" -#~ "If you need to interface to some C or C++ library for which no Python " -#~ "extension currently exists, you can try wrapping the library's data types " -#~ "and functions with a tool such as `SWIG `_. `SIP " -#~ "`__, `CXX `_ `Boost `_, or " -#~ "`Weave `_ are also alternatives for " -#~ "wrapping C++ libraries." -#~ msgstr "" -#~ "Si vous avez besoin d'accéder à l'interface d'une bibliothèque C ou C++ " -#~ "pour laquelle aucune extension Python n'existe à ce jour, vous pouvez " -#~ "essayer d'encapsuler les types de données et fonctions de la bibliothèque " -#~ "avec un outil tel que `SWIG `_. `SIP `__, `CXX `_, `Boost `_ ou `Weave `_ sont également " -#~ "des alternatives pour encapsuler des bibliothèques C++." - -#~ msgid "" -#~ "However sometimes you have to run the embedded Python interpreter in the " -#~ "same thread as your rest application and you can't allow " -#~ "the :c:func:`PyRun_InteractiveLoop` to stop while waiting for user input. " -#~ "A solution is trying to compile the received string " -#~ "with :c:func:`Py_CompileString`. If it compiles without errors, try to " -#~ "execute the returned code object by calling :c:func:`PyEval_EvalCode`. " -#~ "Otherwise save the input for later. If the compilation fails, find out if " -#~ "it's an error or just more input is required - by extracting the message " -#~ "string from the exception tuple and comparing it to the string " -#~ "\"unexpected EOF while parsing\". Here is a complete example using the " -#~ "GNU readline library (you may want to ignore **SIGINT** while calling " -#~ "readline())::" -#~ msgstr "" -#~ "Cependant, il arrive qu'il soit nécessaire d'exécuter l'interpréteur " -#~ "Python embarqué dans le même fil d'exécution que le reste de " -#~ "l'application, et que :c:func:`PyRun_InteractiveLoop` ne puisse pas être " -#~ "utilisée car elle bloque le fil en attendant l'entrée de l'utilisateur. " -#~ "Une solution est d'essayer de compiler la chaîne reçue " -#~ "avec :c:func:`Py_CompileString`. Si cela se compile sans erreur, essayez " -#~ "d'exécuter l'objet code renvoyé en appelant :c:func:`PyEval_EvalCode`. " -#~ "Sinon, enregistrez l'entrée pour plus tard. Si la compilation échoue, " -#~ "vérifiez s'il s'agit d'une erreur ou s'il faut juste plus de données — en " -#~ "extrayant la chaîne de message du *n*-uplet d'exception et en la " -#~ "comparant à la chaîne *\"unexpected EOF while parsing\"*. Voici un " -#~ "exemple complet d'utilisation de la bibliothèque *readline* de GNU (il " -#~ "peut être préférable d'ignorer **SIGINT** lors de l'appel à " -#~ "``readline()``) ::" - -#~ msgid "" -#~ "However sometimes you have to run the embedded Python interpreter in the " -#~ "same thread as your rest application and you can't allow " -#~ "the :c:func:`PyRun_InteractiveLoop` to stop while waiting for user " -#~ "input. The one solution then is to call :c:func:`PyParser_ParseString` " -#~ "and test for ``e.error`` equal to ``E_EOF``, which means the input is " -#~ "incomplete. Here's a sample code fragment, untested, inspired by code " -#~ "from Alex Farber::" -#~ msgstr "" -#~ "Cependant, vous devez parfois exécuter l'interpréteur Python intégré dans " -#~ "le même fil d’exécution que le reste de votre application et vous ne " -#~ "pouvez pas laisser :c:func:`PyRun_InteractiveLoop` attendre les entrées " -#~ "utilisateur. La seule solution est alors " -#~ "d'appeler :c:func:`PyParser_ParseString` et de tester si ``e.error`` " -#~ "égale ``E_EOF``, ce qui signifie que l'entrée est incomplète. Voici un " -#~ "exemple de code, non testé, inspiré d'un code écrit par Alex Farber ::" diff --git a/faq/general.po b/faq/general.po deleted file mode 100644 index b2234f9917..0000000000 --- a/faq/general.po +++ /dev/null @@ -1,1000 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-03-27 16:40+0200\n" -"Last-Translator: Mathieu Dupuy\n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.2\n" - -#: faq/general.rst:5 -msgid "General Python FAQ" -msgstr "FAQ générale sur Python" - -#: faq/general.rst:8 -msgid "Contents" -msgstr "Sommaire" - -#: faq/general.rst:13 -msgid "General Information" -msgstr "Informations générales" - -#: faq/general.rst:16 -msgid "What is Python?" -msgstr "Qu'est-ce que Python ?" - -#: faq/general.rst:18 -msgid "" -"Python is an interpreted, interactive, object-oriented programming " -"language. It incorporates modules, exceptions, dynamic typing, very high " -"level dynamic data types, and classes. It supports multiple programming " -"paradigms beyond object-oriented programming, such as procedural and " -"functional programming. Python combines remarkable power with very clear " -"syntax. It has interfaces to many system calls and libraries, as well as to " -"various window systems, and is extensible in C or C++. It is also usable as " -"an extension language for applications that need a programmable interface. " -"Finally, Python is portable: it runs on many Unix variants including Linux " -"and macOS, and on Windows." -msgstr "" -"Python est un langage de programmation interprété, interactif et orienté " -"objet. Il intègre des modules, des exceptions, un typage dynamique, des " -"types de données dynamiques de très haut niveau et des classes. Il gère de " -"multiples paradigmes de programmation au-delà de la programmation orientée " -"objet, tels que la programmation procédurale et fonctionnelle. Python " -"combine une puissance remarquable avec une syntaxe très claire. Il possède " -"des interfaces avec de nombreux appels système et bibliothèques, ainsi " -"qu'avec divers systèmes d'interfaces graphiques, et il peut être étendu avec " -"du C ou du C++. Il est également utilisable comme langage d'extension pour " -"les applications qui nécessitent une interface de programmation. Enfin, " -"Python est portable : il fonctionne sur de nombreuses variantes d'Unix, y " -"compris Linux et macOS, et sur Windows." - -#: faq/general.rst:28 -msgid "" -"To find out more, start with :ref:`tutorial-index`. The `Beginner's Guide " -"to Python `_ links to other " -"introductory tutorials and resources for learning Python." -msgstr "" -"Pour en savoir plus, commencez par :ref:`tutorial-index`. Le « `Guide des " -"Débutants pour Python `_ » " -"renvoie vers d'autres tutoriels et ressources d'initiation pour apprendre " -"Python." - -#: faq/general.rst:34 -msgid "What is the Python Software Foundation?" -msgstr "Qu'est ce que la Python Software Foundation ?" - -#: faq/general.rst:36 -msgid "" -"The Python Software Foundation is an independent non-profit organization " -"that holds the copyright on Python versions 2.1 and newer. The PSF's " -"mission is to advance open source technology related to the Python " -"programming language and to publicize the use of Python. The PSF's home " -"page is at https://www.python.org/psf/." -msgstr "" -"La Python Software Foundation (PSF) est une organisation indépendante à but " -"non lucratif qui détient les droits d'auteur sur les versions Python 2.1 et " -"plus récentes. La mission de la PSF est de faire progresser les technologies " -"ouvertes (*open source*) relatives au langage de programmation Python et de " -"promouvoir son utilisation. Le page d'accueil de la PSF se trouve à " -"l'adresse suivante : https://www.python.org/psf/." - -#: faq/general.rst:42 -msgid "" -"Donations to the PSF are tax-exempt in the US. If you use Python and find " -"it helpful, please contribute via `the PSF donation page `_." -msgstr "" -"Si vous utilisez Python et que vous le trouvez utile, merci de contribuer " -"par le biais de `la page de donation de la PSF `_." - -#: faq/general.rst:48 -msgid "Are there copyright restrictions on the use of Python?" -msgstr "" -"Existe-t-il des restrictions liées à la propriété intellectuelle quant à " -"l'utilisation de Python ?" - -#: faq/general.rst:50 -msgid "" -"You can do anything you want with the source, as long as you leave the " -"copyrights in and display those copyrights in any documentation about Python " -"that you produce. If you honor the copyright rules, it's OK to use Python " -"for commercial use, to sell copies of Python in source or binary form " -"(modified or unmodified), or to sell products that incorporate Python in " -"some form. We would still like to know about all commercial use of Python, " -"of course." -msgstr "" -"Vous pouvez faire ce que vous souhaitez avec la source, tant que vous " -"respecterez la licence d'utilisation et que vous l'afficherez dans toute " -"documentation que vous produirez au sujet de Python. Si vous respectez ces " -"règles, vous pouvez utiliser Python dans un cadre commercial, vendre le code " -"source ou la forme binaire (modifiée ou non), ou vendre des produits qui " -"incorporent Python sous une forme quelconque. Bien entendu, nous " -"souhaiterions avoir connaissance de tous les projets commerciaux utilisant " -"Python." - -#: faq/general.rst:57 -#, fuzzy -msgid "" -"See `the license page `_ to find " -"further explanations and the full text of the PSF License." -msgstr "" -"Voir `la page de licence d'utilisation de la PSF `_ pour trouver davantage d'informations et un lien vers la version " -"intégrale de la licence d'utilisation." - -#: faq/general.rst:60 -msgid "" -"The Python logo is trademarked, and in certain cases permission is required " -"to use it. Consult `the Trademark Usage Policy `__ for more information." -msgstr "" -"Le logo de Python est une marque déposée, et dans certains cas une " -"autorisation est nécessaire pour l'utiliser. Consultez `la politique " -"d'utilisation de la marque `__ pour " -"plus d'informations." - -#: faq/general.rst:66 -msgid "Why was Python created in the first place?" -msgstr "Pourquoi Python a été créé ?" - -#: faq/general.rst:68 -msgid "" -"Here's a *very* brief summary of what started it all, written by Guido van " -"Rossum:" -msgstr "" -"Voici un *très* bref résumé de comment tout a commencé, écrit par Guido van " -"Rossum (puis traduit en français) :" - -#: faq/general.rst:71 -msgid "" -"I had extensive experience with implementing an interpreted language in the " -"ABC group at CWI, and from working with this group I had learned a lot about " -"language design. This is the origin of many Python features, including the " -"use of indentation for statement grouping and the inclusion of very-high-" -"level data types (although the details are all different in Python)." -msgstr "" -"J'avais une expérience complète avec la mise en œuvre du langage interprété " -"ABC au sein du CWI, et en travaillant dans ce groupe j'ai appris beaucoup à " -"propos de la conception de langage. C'est l'origine de nombreuses " -"fonctionnalités de Python, notamment l'utilisation de l'indentation pour le " -"groupement et l'inclusion de types de très haut niveau (bien que dans les " -"détails ils soient tous différents dans Python)." - -#: faq/general.rst:78 -msgid "" -"I had a number of gripes about the ABC language, but also liked many of its " -"features. It was impossible to extend the ABC language (or its " -"implementation) to remedy my complaints -- in fact its lack of extensibility " -"was one of its biggest problems. I had some experience with using Modula-2+ " -"and talked with the designers of Modula-3 and read the Modula-3 report. " -"Modula-3 is the origin of the syntax and semantics used for exceptions, and " -"some other Python features." -msgstr "" -"J'avais un certain nombre de différends avec le langage ABC, mais j'aimais " -"aussi beaucoup de ses fonctionnalités. Il était impossible d'étendre le " -"langage ABC (ou ses implémentations) pour remédier à mes réclamations -- en " -"vérité le manque d'extensibilité était l'un des plus gros problème. J'avais " -"un peu d'expérience avec l'utilisation de Modula-2+ et j'en ai parlé avec " -"les concepteurs de Modula-3 et j'ai lu le rapport sur Modula-3. Modula-3 est " -"à l'origine de la syntaxe et de la sémantique utilisée pour les exceptions, " -"et quelques autres fonctionnalités en Python." - -#: faq/general.rst:86 -msgid "" -"I was working in the Amoeba distributed operating system group at CWI. We " -"needed a better way to do system administration than by writing either C " -"programs or Bourne shell scripts, since Amoeba had its own system call " -"interface which wasn't easily accessible from the Bourne shell. My " -"experience with error handling in Amoeba made me acutely aware of the " -"importance of exceptions as a programming language feature." -msgstr "" -"Je travaillais sur un groupe de systèmes d'exploitation distribués Amoeba au " -"CWI. Nous avions besoin d'un meilleur moyen pour gérer l'administration " -"système qu'écrire un programme en C ou en script Bourne shell, puisque " -"l'Amoeba avait sa propre interface d'appels système qui n'était pas " -"facilement accessible depuis les scripts Bourne shell. Mon expérience avec " -"le traitement des erreurs dans l'Amoeba m'a vraiment fait prendre conscience " -"de l'importance des exceptions en tant que fonctionnalité d'un langage de " -"programmation." - -#: faq/general.rst:93 -msgid "" -"It occurred to me that a scripting language with a syntax like ABC but with " -"access to the Amoeba system calls would fill the need. I realized that it " -"would be foolish to write an Amoeba-specific language, so I decided that I " -"needed a language that was generally extensible." -msgstr "" -"Il m'est venu à l'esprit qu'un langage de script avec une syntaxe comme ABC " -"mais avec un accès aux appels systèmes d'Amoeba remplirait les besoins. J'ai " -"réalisé que ce serait idiot d'écrire un langage spécifique à Amoeba, donc " -"j'ai décidé que j'avais besoin d'un langage qui serait généralement " -"extensible." - -#: faq/general.rst:98 -msgid "" -"During the 1989 Christmas holidays, I had a lot of time on my hand, so I " -"decided to give it a try. During the next year, while still mostly working " -"on it in my own time, Python was used in the Amoeba project with increasing " -"success, and the feedback from colleagues made me add many early " -"improvements." -msgstr "" -"Pendant les vacances de Noël 1989, j'avais beaucoup de temps à disposition, " -"donc j'ai décidé de faire un essai. Durant l'année suivante, j'ai encore " -"beaucoup travaillé dessus sur mon propre temps. Python a été utilisé dans le " -"projet Amoeba avec un succès croissant, et les retours de mes collègues " -"m'ont permis d'ajouter beaucoup des premières améliorations." - -#: faq/general.rst:104 -msgid "" -"In February 1991, after just over a year of development, I decided to post " -"to USENET. The rest is in the ``Misc/HISTORY`` file." -msgstr "" -"En Février 1991, juste après un peu plus d'un an de développement, j'ai " -"décidé de le poster sur USENET. Le reste se trouve dans le fichier « Misc/" -"HISTORY »." - -#: faq/general.rst:109 -msgid "What is Python good for?" -msgstr "Pour quoi Python est-il fait ?" - -#: faq/general.rst:111 -msgid "" -"Python is a high-level general-purpose programming language that can be " -"applied to many different classes of problems." -msgstr "" -"Python est un langage de programmation haut niveau généraliste qui peut être " -"utilisé pour pallier à différents problèmes." - -#: faq/general.rst:114 -msgid "" -"The language comes with a large standard library that covers areas such as " -"string processing (regular expressions, Unicode, calculating differences " -"between files), internet protocols (HTTP, FTP, SMTP, XML-RPC, POP, IMAP), " -"software engineering (unit testing, logging, profiling, parsing Python " -"code), and operating system interfaces (system calls, filesystems, TCP/IP " -"sockets). Look at the table of contents for :ref:`library-index` to get an " -"idea of what's available. A wide variety of third-party extensions are also " -"available. Consult `the Python Package Index `_ to find " -"packages of interest to you." -msgstr "" -"Le langage vient avec une bibliothèque standard importante qui couvre des " -"domaines tels que le traitement des chaînes de caractères (expressions " -"régulières, Unicode, calcul de différences entre les fichiers), les " -"protocoles internet (HTTP, FTP, SMTP, XML-RPC, POP, IMAP, script CGI), " -"ingénierie logicielle (tests unitaires, enregistrement, analyse de code " -"Python), et interfaces pour systèmes d'exploitation (appels système, système " -"de fichiers, connecteurs TCP/IP). Regardez la table des " -"matières :ref:`library-index` pour avoir une idée de ce qui est disponible. " -"Une grande variété de greffons tiers existent aussi. Consultez `le sommaire " -"des paquets Python `_ pour trouver les paquets qui " -"pourraient vous intéresser." - -#: faq/general.rst:128 -msgid "How does the Python version numbering scheme work?" -msgstr "Comment fonctionne le numérotage des versions de Python ?" - -#: faq/general.rst:130 -msgid "Python versions are numbered \"A.B.C\" or \"A.B\":" -msgstr "" - -#: faq/general.rst:132 -msgid "" -"*A* is the major version number -- it is only incremented for really major " -"changes in the language." -msgstr "" - -#: faq/general.rst:134 -msgid "" -"*B* is the minor version number -- it is incremented for less earth-" -"shattering changes." -msgstr "" - -#: faq/general.rst:136 -msgid "" -"*C* is the micro version number -- it is incremented for each bugfix release." -msgstr "" - -#: faq/general.rst:138 -#, fuzzy -msgid "" -"Not all releases are bugfix releases. In the run-up to a new feature " -"release, a series of development releases are made, denoted as alpha, beta, " -"or release candidate. Alphas are early releases in which interfaces aren't " -"yet finalized; it's not unexpected to see an interface change between two " -"alpha releases. Betas are more stable, preserving existing interfaces but " -"possibly adding new modules, and release candidates are frozen, making no " -"changes except as needed to fix critical bugs." -msgstr "" -"Toutes les sorties ne concernent pas la correction de bogues. A l'approche " -"de la sortie d'une nouvelle version majeure, une série de versions de " -"développement sont créées, dénommées *alpha*, *beta*, *release candidate*. " -"Les alphas sont des versions primaires dans lesquelles les interfaces ne " -"sont pas encore finalisées; ce n'est pas inattendu de voir des changements " -"d'interface entre deux versions alpha. Les *betas* sont plus stables, " -"préservent les interfaces existantes mais peuvent ajouter de nouveaux " -"modules, les *release candidate* sont figées, elles ne font aucun changement " -"à l'exception de ceux nécessaires pour corriger des bogues critiques." - -#: faq/general.rst:146 -msgid "Alpha, beta and release candidate versions have an additional suffix:" -msgstr "" - -#: faq/general.rst:148 -msgid "The suffix for an alpha version is \"aN\" for some small number *N*." -msgstr "" - -#: faq/general.rst:149 -msgid "The suffix for a beta version is \"bN\" for some small number *N*." -msgstr "" - -#: faq/general.rst:150 -msgid "" -"The suffix for a release candidate version is \"rcN\" for some small number " -"*N*." -msgstr "" - -#: faq/general.rst:152 -msgid "" -"In other words, all versions labeled *2.0aN* precede the versions labeled " -"*2.0bN*, which precede versions labeled *2.0rcN*, and *those* precede 2.0." -msgstr "" - -#: faq/general.rst:155 -msgid "" -"You may also find version numbers with a \"+\" suffix, e.g. \"2.2+\". These " -"are unreleased versions, built directly from the CPython development " -"repository. In practice, after a final minor release is made, the version " -"is incremented to the next minor version, which becomes the \"a0\" version, " -"e.g. \"2.4a0\"." -msgstr "" -"Vous pouvez aussi trouver des versions avec un signe « + » en suffixe, par " -"exemple « 2.2+ ». Ces versions sont non distribuées, construites directement " -"depuis le dépôt de développement de CPython. En pratique, après la sortie " -"finale d'une version mineure, la version est augmentée à la prochaine " -"version mineure, qui devient la version *a0*, c'est-à-dire *2.4a0*." - -#: faq/general.rst:160 -msgid "" -"See the `Developer's Guide `__ for more information about the development cycle, " -"and :pep:`387` to learn more about Python's backward compatibility policy. " -"See also the documentation for :data:`sys.version`, :data:`sys.hexversion`, " -"and :data:`sys.version_info`." -msgstr "" - -#: faq/general.rst:169 -msgid "How do I obtain a copy of the Python source?" -msgstr "Comment obtenir une copie du code source de Python ?" - -#: faq/general.rst:171 -msgid "" -"The latest Python source distribution is always available from python.org, " -"at https://www.python.org/downloads/. The latest development sources can be " -"obtained at https://github.com/python/cpython/." -msgstr "" -"La dernière version du code source déployée est toujours disponible sur " -"python.org, à https://www.python.org/downloads/. Le code source de la " -"dernière version en développement peut être obtenue à https://github.com/" -"python/cpython/." - -#: faq/general.rst:175 -msgid "" -"The source distribution is a gzipped tar file containing the complete C " -"source, Sphinx-formatted documentation, Python library modules, example " -"programs, and several useful pieces of freely distributable software. The " -"source will compile and run out of the box on most UNIX platforms." -msgstr "" -"Le code source est dans une archive *gzippée* au format *tar*, elle contient " -"le code source C complet, la documentation formatée avec Sphinx, les " -"libraires Python, des exemples de programmes, et plusieurs morceaux de code " -"utiles distribuables librement. Le code source sera compilé et prêt à " -"fonctionner immédiatement sur la plupart des plateformes UNIX." - -#: faq/general.rst:180 -msgid "" -"Consult the `Getting Started section of the Python Developer's Guide " -"`__ for more information on getting the " -"source code and compiling it." -msgstr "" -"Consultez `la section Premiers pas du Guide des Développeurs Python `__ pour plus d'informations sur comment obtenir " -"le code source et le compiler." - -#: faq/general.rst:186 -msgid "How do I get documentation on Python?" -msgstr "Comment obtenir la documentation de Python ?" - -#: faq/general.rst:188 -#, fuzzy -msgid "" -"The standard documentation for the current stable version of Python is " -"available at https://docs.python.org/3/. EPUB, plain text, and downloadable " -"HTML versions are also available at https://docs.python.org/3/download.html." -msgstr "" -"La documentation standard pour la version stable actuelle est disponible à " -"https://docs.python.org/3/. Des versions aux formats PDF, texte et HTML " -"sont aussi disponibles à https://docs.python.org/3/download.html." - -#: faq/general.rst:192 -msgid "" -"The documentation is written in reStructuredText and processed by `the " -"Sphinx documentation tool `__. The " -"reStructuredText source for the documentation is part of the Python source " -"distribution." -msgstr "" -"La documentation est écrite au format *reStructuredText* et traitée par " -"l'outil de documentation `Sphinx `__. La source du " -"*reStructuredText* pour la documentation constitue une partie des sources de " -"Python." - -#: faq/general.rst:198 -msgid "I've never programmed before. Is there a Python tutorial?" -msgstr "Je n'ai jamais programmé avant. Existe-t-il un tutoriel Python ?" - -#: faq/general.rst:200 -msgid "" -"There are numerous tutorials and books available. The standard " -"documentation includes :ref:`tutorial-index`." -msgstr "" -"Il y a de nombreux tutoriels et livres disponibles. La documentation " -"standard inclut :ref:`tutorial-index`." - -#: faq/general.rst:203 -msgid "" -"Consult `the Beginner's Guide `_ to find information for beginning Python programmers, " -"including lists of tutorials." -msgstr "" -"Consultez le `Guide du Débutant `_ afin de trouver des informations pour les développeurs " -"Python débutants, incluant une liste de tutoriels." - -#: faq/general.rst:208 -msgid "Is there a newsgroup or mailing list devoted to Python?" -msgstr "Y a-t-il un forum ou une liste de diffusion dédié à Python ?" - -#: faq/general.rst:210 -msgid "" -"There is a newsgroup, :newsgroup:`comp.lang.python`, and a mailing list, " -"`python-list `_. The " -"newsgroup and mailing list are gatewayed into each other -- if you can read " -"news it's unnecessary to subscribe to the mailing " -"list. :newsgroup:`comp.lang.python` is high-traffic, receiving hundreds of " -"postings every day, and Usenet readers are often more able to cope with this " -"volume." -msgstr "" -"Il y a un forum, :newsgroup:`comp.lang.python` et une liste de diffusion, " -"`python-list `_. Le " -"forum et la liste de diffusion sont des passerelles l'un vers l'autre -- si " -"vous pouvez lire les *news* ce n'est pas inutile de souscrire à la liste de " -"diffusion. :newsgroup:`comp.lang.python` a beaucoup d'activité, il reçoit " -"des centaines de messages chaque jour, et les lecteurs du réseau Usenet sont " -"souvent plus capables de faire face à ce volume." - -#: faq/general.rst:217 -#, fuzzy -msgid "" -"Announcements of new software releases and events can be found in " -"comp.lang.python.announce, a low-traffic moderated list that receives about " -"five postings per day. It's available as `the python-announce mailing list " -"`_." -msgstr "" -"Les annonces pour les nouvelles versions et événements peuvent êtres " -"trouvées dans *comp.lang.python.announce*, une liste diminuée peu active qui " -"reçoit environ 5 messages par jour. C'est disponible à `liste de diffusion " -"des annonces Python `_." - -#: faq/general.rst:222 -msgid "" -"More info about other mailing lists and newsgroups can be found at https://" -"www.python.org/community/lists/." -msgstr "" -"Plus d'informations à propos des autres listes de diffusion et forums " -"peuvent être trouvées à https://www.python.org/community/lists/." - -#: faq/general.rst:227 -msgid "How do I get a beta test version of Python?" -msgstr "Comment obtenir une version bêta test de Python ?" - -#: faq/general.rst:229 -msgid "" -"Alpha and beta releases are available from https://www.python.org/" -"downloads/. All releases are announced on the comp.lang.python and " -"comp.lang.python.announce newsgroups and on the Python home page at https://" -"www.python.org/; an RSS feed of news is available." -msgstr "" -"Les versions alpha et bêta sont disponibles depuis https://www.python.org/" -"downloads/. Toutes les versions sont annoncées sur les *newsgroups* " -"*comp.lang.python* et *comp.lang.python.announce* ainsi que sur la page " -"d'accueil de Python à https://www.python.org/; un flux RSS d'actualités y " -"est aussi disponible." - -#: faq/general.rst:234 -msgid "" -"You can also access the development version of Python through Git. See `The " -"Python Developer's Guide `_ for details." -msgstr "" -"Vous pouvez aussi accéder aux de Python en développement grâce à Git. Voir " -"`Le Guide du Développeur Python `_ pour plus " -"de détails." - -#: faq/general.rst:239 -msgid "How do I submit bug reports and patches for Python?" -msgstr "Comment soumettre un rapport de bogues ou un correctif pour Python ?" - -#: faq/general.rst:241 -msgid "" -"To report a bug or submit a patch, use the issue tracker at https://" -"github.com/python/cpython/issues." -msgstr "" -"Pour signaler un bogue ou soumettre un correctif, utilisez le système de " -"suivi des problèmes à l'adresse https://github.com/python/cpython/issues." - -#: faq/general.rst:244 -msgid "" -"For more information on how Python is developed, consult `the Python " -"Developer's Guide `_." -msgstr "" -"Pour davantage d'informations sur comment Python est développé, consultez " -"`le Guide du Développeur Python `_." - -#: faq/general.rst:249 -msgid "Are there any published articles about Python that I can reference?" -msgstr "" -"Existe-t-il des articles publiés au sujet de Python auxquels je peux me " -"référer ?" - -#: faq/general.rst:251 -msgid "It's probably best to cite your favorite book about Python." -msgstr "" -"C'est probablement mieux de vous référer à votre livre favori à propos de " -"Python." - -#: faq/general.rst:253 -msgid "" -"The `very first article `_ about Python was " -"written in 1991 and is now quite outdated." -msgstr "" -"Le `tout premier article `_ sur Python a été " -"écrit en 1991 et est aujourd'hui assez dépassé." - -#: faq/general.rst:256 -msgid "" -"Guido van Rossum and Jelke de Boer, \"Interactively Testing Remote Servers " -"Using the Python Programming Language\", CWI Quarterly, Volume 4, Issue 4 " -"(December 1991), Amsterdam, pp 283--303." -msgstr "" -"Guido van Rossum et Jelke de Boer, « *Interactively Testing Remote Servers " -"Using the Python Programming Language* », CWI Quarterly, Volume 4, Issue 4 " -"(December 1991), Amsterdam, pp 283--303." - -#: faq/general.rst:262 -msgid "Are there any books on Python?" -msgstr "Y a-t-il des livres au sujet de Python ?" - -#: faq/general.rst:264 -msgid "" -"Yes, there are many, and more are being published. See the python.org wiki " -"at https://wiki.python.org/moin/PythonBooks for a list." -msgstr "" -"Oui, il y en a beaucoup, et d'autres sont en cours de publication. Voir le " -"wiki python à https://wiki.python.org/moin/PythonBooks pour avoir une liste." - -#: faq/general.rst:267 -msgid "" -"You can also search online bookstores for \"Python\" and filter out the " -"Monty Python references; or perhaps search for \"Python\" and \"language\"." -msgstr "" -"Vous pouvez aussi chercher chez les revendeurs de livres en ligne avec le " -"terme « Python » et éliminer les références concernant les Monty Python, ou " -"peut-être faire une recherche avec les termes « langage » et « Python »." - -#: faq/general.rst:272 -msgid "Where in the world is www.python.org located?" -msgstr "Où www.python.org est-il localisé dans le monde ?" - -#: faq/general.rst:274 -msgid "" -"The Python project's infrastructure is located all over the world and is " -"managed by the Python Infrastructure Team. Details `here `__." -msgstr "" -"L'infrastructure du projet Python est située dans le monde entier et est " -"gérée par l'équipe de l'infrastructure Python. Plus de détails `ici `__." - -#: faq/general.rst:279 -msgid "Why is it called Python?" -msgstr "Pourquoi le nom Python ?" - -#: faq/general.rst:281 -msgid "" -"When he began implementing Python, Guido van Rossum was also reading the " -"published scripts from `\"Monty Python's Flying Circus\" `__, a BBC comedy series from the 1970s. " -"Van Rossum thought he needed a name that was short, unique, and slightly " -"mysterious, so he decided to call the language Python." -msgstr "" -"Quand il a commencé à implémenter Python, Guido van Rossum a aussi lu le " -"script publié par `\"Monty Python's Flying Circus\" `__, une série comique des années 1970 " -"diffusée par la BBC. Van Rossum a pensé qu'il avait besoin d'un nom court, " -"unique, et un peu mystérieux, donc il a décidé de l'appeler le langage " -"Python." - -#: faq/general.rst:289 -msgid "Do I have to like \"Monty Python's Flying Circus\"?" -msgstr "Dois-je aimer \"Monty Python's Flying Circus\" ?" - -#: faq/general.rst:291 -msgid "No, but it helps. :)" -msgstr "Non, mais ça peut aider. :)" - -#: faq/general.rst:295 -msgid "Python in the real world" -msgstr "Python c'est le monde réel" - -#: faq/general.rst:298 -msgid "How stable is Python?" -msgstr "Quel est le niveau de stabilité de Python ?" - -#: faq/general.rst:300 -#, fuzzy -msgid "" -"Very stable. New, stable releases have been coming out roughly every 6 to " -"18 months since 1991, and this seems likely to continue. As of version 3.9, " -"Python will have a new feature release every 12 months (:pep:`602`)." -msgstr "" -"Très stable. Les versions stables sont sorties environ tous les 6 à 18 mois " -"depuis 1991, et il semble probable que ça continue. À partir de la version " -"3.9, Python aura une nouvelle version majeure tous les 12 mois (:pep:`602`)." - -#: faq/general.rst:304 -#, fuzzy -msgid "" -"The developers issue bugfix releases of older versions, so the stability of " -"existing releases gradually improves. Bugfix releases, indicated by a third " -"component of the version number (e.g. 3.5.3, 3.6.2), are managed for " -"stability; only fixes for known problems are included in a bugfix release, " -"and it's guaranteed that interfaces will remain the same throughout a series " -"of bugfix releases." -msgstr "" -"Les développeurs fournissent des versions correctives d'anciennes versions, " -"ainsi la stabilité des versions existantes s'améliore. Les versions " -"correctives, indiquées par le troisième chiffre du numéro de version (ex. " -"2.5.2, 2.6.2), sont gérées pour la stabilité, seules les corrections pour " -"les problèmes connus sont inclus dans les versions correctives, et il est " -"garanti que les interfaces resteront les mêmes tout au long de la série de " -"versions correctives." - -#: faq/general.rst:311 -#, fuzzy -msgid "" -"The latest stable releases can always be found on the `Python download page " -"`_. Python 3.x is the recommended version " -"and supported by most widely used libraries. Python 2.x :pep:`is not " -"maintained anymore <373>`." -msgstr "" -"Les dernières versions stables peuvent toujours être trouvées sur la `page " -"de téléchargement Python `_. Il existe " -"deux versions stables de Python : 2.x et 3.x, mais seule la version 3 est " -"recommandée, c'est celle qui est compatible avec les bibliothèques les plus " -"largement utilisées. Bien que Python 2 soit encore utilisé, `il n'est " -"désormais plus maintenu `_." - -#: faq/general.rst:317 -msgid "How many people are using Python?" -msgstr "Combien de personnes utilisent Python ?" - -#: faq/general.rst:319 -msgid "" -"There are probably millions of users, though it's difficult to obtain an " -"exact count." -msgstr "" -"Il y a probablement des millions d'utilisateurs, bien qu'il soit difficile " -"d'en déterminer le nombre exact." - -#: faq/general.rst:322 -msgid "" -"Python is available for free download, so there are no sales figures, and " -"it's available from many different sites and packaged with many Linux " -"distributions, so download statistics don't tell the whole story either." -msgstr "" -"Python est disponible en téléchargement gratuit, donc il n'y a pas de " -"chiffres de ventes, il est disponible depuis de nombreux sites différents et " -"il est inclus avec de beaucoup de distributions Linux, donc les statistiques " -"de téléchargement ne donnent pas la totalité non plus." - -#: faq/general.rst:326 -msgid "" -"The comp.lang.python newsgroup is very active, but not all Python users post " -"to the group or even read it." -msgstr "" -"Le forum *comp.lang.python* est très actif, mais tous les utilisateurs de " -"Python ne laissent pas de messages dessus ou même ne le lisent pas." - -#: faq/general.rst:331 -msgid "Have any significant projects been done in Python?" -msgstr "Y a-t-il un nombre de projets significatif réalisés en Python ?" - -#: faq/general.rst:333 -msgid "" -"See https://www.python.org/about/success for a list of projects that use " -"Python. Consulting the proceedings for `past Python conferences `_ will reveal contributions from many " -"different companies and organizations." -msgstr "" -"Voir https://www.python.org/about/success pour avoir une liste des projets " -"qui utilisent Python. En consultant les comptes-rendus des `conférences " -"Python précédentes `_ il " -"s'avère que les contributions proviennent de nombreux organismes et " -"entreprises divers." - -#: faq/general.rst:338 -msgid "" -"High-profile Python projects include `the Mailman mailing list manager " -"`_ and `the Zope application server `_. Several Linux distributions, most notably `Red Hat " -"`_, have written part or all of their installer and " -"system administration software in Python. Companies that use Python " -"internally include Google, Yahoo, and Lucasfilm Ltd." -msgstr "" -"Les projets Python les plus connus incluent `Mailman mailing list manager " -"`_ et `l'application serveur Zope `_. Plusieurs distributions Linux, notamment `Red Hat `_, qui a écrit tout ou partie de son installateur et de son " -"logiciel d'administration système en Python. Les entreprises qui utilisent " -"Python en interne comprennent Google, Yahoo, et Lucasfilm Ltd." - -#: faq/general.rst:347 -msgid "What new developments are expected for Python in the future?" -msgstr "Quelles sont les nouveautés en développement attendues pour Python ?" - -#: faq/general.rst:349 -msgid "" -"See https://peps.python.org/ for the Python Enhancement Proposals (PEPs). " -"PEPs are design documents describing a suggested new feature for Python, " -"providing a concise technical specification and a rationale. Look for a PEP " -"titled \"Python X.Y Release Schedule\", where X.Y is a version that hasn't " -"been publicly released yet." -msgstr "" -"Regardez les propositions d'amélioration de Python (« *Python Enhancement " -"Proposals* », ou *PEP*) sur https://peps.python.org/. Les PEP sont des " -"documents techniques qui décrivent une nouvelle fonctionnalité qui a été " -"suggérée pour Python, en fournissant une spécification technique concise et " -"logique. Recherchez une PEP intitulée \"Python X.Y Release Schedule\", où " -"X.Y est la version qui n'a pas encore été publiée." - -#: faq/general.rst:355 -#, fuzzy -msgid "" -"New development is discussed on `the python-dev mailing list `_." -msgstr "" -"Le nouveau développement est discuté sur `la liste de diffusion python-dev " -"`_." - -#: faq/general.rst:360 -msgid "Is it reasonable to propose incompatible changes to Python?" -msgstr "" -"Est-il raisonnable de proposer des changements incompatibles dans Python ?" - -#: faq/general.rst:362 -msgid "" -"In general, no. There are already millions of lines of Python code around " -"the world, so any change in the language that invalidates more than a very " -"small fraction of existing programs has to be frowned upon. Even if you can " -"provide a conversion program, there's still the problem of updating all " -"documentation; many books have been written about Python, and we don't want " -"to invalidate them all at a single stroke." -msgstr "" -"En général, non. Il y a déjà des millions de lignes de code de Python tout " -"autour du monde, donc n'importe quel changement dans le langage qui rend " -"invalide ne serait-ce qu'une très petite fraction du code de programmes " -"existants doit être désapprouvé. Même si vous pouvez fournir un programme de " -"conversion, il y a toujours des problèmes de mise à jour dans toutes les " -"documentations, beaucoup de livres ont été écrits au sujet de Python, et " -"nous ne voulons pas les rendre invalides soudainement." - -#: faq/general.rst:369 -msgid "" -"Providing a gradual upgrade path is necessary if a feature has to be " -"changed. :pep:`5` describes the procedure followed for introducing backward-" -"incompatible changes while minimizing disruption for users." -msgstr "" -"En fournissant un rythme de mise à jour progressif qui est obligatoire si " -"une fonctionnalité doit être changée." - -#: faq/general.rst:375 -msgid "Is Python a good language for beginning programmers?" -msgstr "" -"Existe-t-il un meilleur langage de programmation pour les programmeurs " -"débutants ?" - -#: faq/general.rst:377 -msgid "Yes." -msgstr "Oui." - -#: faq/general.rst:379 -msgid "" -"It is still common to start students with a procedural and statically typed " -"language such as Pascal, C, or a subset of C++ or Java. Students may be " -"better served by learning Python as their first language. Python has a very " -"simple and consistent syntax and a large standard library and, most " -"importantly, using Python in a beginning programming course lets students " -"concentrate on important programming skills such as problem decomposition " -"and data type design. With Python, students can be quickly introduced to " -"basic concepts such as loops and procedures. They can probably even work " -"with user-defined objects in their very first course." -msgstr "" -"Il reste commun pour les étudiants de commencer avec un langage procédural " -"et à typage statique comme le Pascal, le C, ou un sous-ensemble du C++ ou " -"Java. Les étudiants pourraient être mieux servis en apprenant Python comme " -"premier langage. Python a une syntaxe très simple et cohérente ainsi qu'une " -"vaste libraire standard, plus important encore, utiliser Python dans les " -"cours d'initiation à la programmation permet aux étudiants de se concentrer " -"sur les compétences de programmation les cruciales comme les problèmes de " -"découpage et d'architecture. Avec Python, les étudiants peuvent rapidement " -"aborder des concepts fondamentaux comme les boucles et les procédures. Ils " -"peuvent même probablement travailler avec des objets définis dans leurs " -"premiers cours." - -#: faq/general.rst:389 -msgid "" -"For a student who has never programmed before, using a statically typed " -"language seems unnatural. It presents additional complexity that the " -"student must master and slows the pace of the course. The students are " -"trying to learn to think like a computer, decompose problems, design " -"consistent interfaces, and encapsulate data. While learning to use a " -"statically typed language is important in the long term, it is not " -"necessarily the best topic to address in the students' first programming " -"course." -msgstr "" -"Pour un étudiant qui n'a jamais programmé avant, utiliser un langage à " -"typage statique peut sembler contre-nature. Cela représente une complexité " -"additionnelle que l'étudiant doit maîtriser ce qui ralentit le cours. Les " -"étudiants essaient d'apprendre à penser comme un ordinateur, décomposer les " -"problèmes, établir une architecture propre, et résumer les données. " -"Apprendre à utiliser un langage typé statiquement est important sur le long " -"terme, ce n'est pas nécessairement la meilleure idée pour s'adresser aux " -"étudiants durant leur tout premier cours." - -#: faq/general.rst:397 -msgid "" -"Many other aspects of Python make it a good first language. Like Java, " -"Python has a large standard library so that students can be assigned " -"programming projects very early in the course that *do* something. " -"Assignments aren't restricted to the standard four-function calculator and " -"check balancing programs. By using the standard library, students can gain " -"the satisfaction of working on realistic applications as they learn the " -"fundamentals of programming. Using the standard library also teaches " -"students about code reuse. Third-party modules such as PyGame are also " -"helpful in extending the students' reach." -msgstr "" -"De nombreux autres aspects de Python en font un bon premier langage. Comme " -"Java, Python a une large bibliothèque standard donc les étudiants peuvent " -"être assigner à la programmation de projets très tôt dans leur apprentissage " -"qui *fait* quelque chose. Les missions ne sont pas restreintes aux quatre " -"fonction standards. En utilisant la bibliothèque standard, les étudiants " -"peuvent ressentir de la satisfaction en travaillant sur des applications " -"réalistes alors qu'ils apprennent les fondamentaux de la programmation. " -"Utiliser la bibliothèque standard apprend aussi aux étudiants la " -"réutilisation de code. Les modules tiers tels que PyGame sont aussi très " -"utiles pour étendre les compétences des étudiants." - -#: faq/general.rst:406 -msgid "" -"Python's interactive interpreter enables students to test language features " -"while they're programming. They can keep a window with the interpreter " -"running while they enter their program's source in another window. If they " -"can't remember the methods for a list, they can do something like this::" -msgstr "" -"L'interpréteur interactif de Python permet aux étudiants de tester les " -"fonctionnalités du langage pendant qu'ils programment. Ils peuvent garder " -"une fenêtre avec l'interpréteur en fonctionnement pendant qu'ils rentrent la " -"source de leur programme dans une autre fenêtre. S'ils ne peuvent pas se " -"souvenir des méthodes pour une liste, ils peuvent faire quelque chose comme " -"ça ::" - -#: faq/general.rst:435 -msgid "" -"With the interpreter, documentation is never far from the student as they " -"are programming." -msgstr "" -"Avec l'interpréteur, la documentation n'est jamais loin des étudiants quand " -"ils travaillent." - -#: faq/general.rst:438 -msgid "" -"There are also good IDEs for Python. IDLE is a cross-platform IDE for " -"Python that is written in Python using Tkinter. Emacs users will be happy to " -"know that there is a very good Python mode for Emacs. All of these " -"programming environments provide syntax highlighting, auto-indenting, and " -"access to the interactive interpreter while coding. Consult `the Python " -"wiki `_ for a full list of " -"Python editing environments." -msgstr "" -"Il y a aussi de bons environnements de développement intégrés (EDIs) pour " -"Python. IDLE est un EDI multiplateformes pour Python qui est écrit en Python " -"en utilisant Tkinter. Les utilisateurs d'Emacs seront heureux d'apprendre " -"qu'il y a un très bon mode Python pour Emacs. Tous ces environnements de " -"développement intégrés fournissent la coloration syntaxique, l'auto-" -"indentation, et l'accès à l'interpréteur interactif durant le codage. " -"Consultez `le wiki Python `_ " -"pour une liste complète des environnements de développement intégrés." - -#: faq/general.rst:446 -msgid "" -"If you want to discuss Python's use in education, you may be interested in " -"joining `the edu-sig mailing list `_." -msgstr "" -"Si vous voulez discuter de l'usage de Python dans l'éducation, vous devriez " -"intéressé pour rejoindre `la liste de diffusion pour l'enseignement `_." - -#~ msgid "" -#~ "See also the documentation " -#~ "for :data:`sys.version`, :data:`sys.hexversion`, " -#~ "and :data:`sys.version_info`." -#~ msgstr "" -#~ "Voir aussi la documentation pour " -#~ "for :data:`sys.version`, :data:`sys.hexversion`, " -#~ "et :data:`sys.version_info`." - -#~ msgid "" -#~ "Python versions are numbered A.B.C or A.B. A is the major version number " -#~ "-- it is only incremented for really major changes in the language. B is " -#~ "the minor version number, incremented for less earth-shattering changes. " -#~ "C is the micro-level -- it is incremented for each bugfix release. " -#~ "See :pep:`6` for more information about bugfix releases." -#~ msgstr "" -#~ "Les versions de Python sont numérotées A.B.C ou A.B. A est une version " -#~ "majeure -- elle est augmentée seulement lorsqu'il y a des changements " -#~ "conséquents dans le langage. B est une version mineure, elle est " -#~ "augmentée lors de changements de moindre importance. C est un micro-" -#~ "niveau -- elle est augmentée à chaque sortie de correctifs de bogue." - -#~ msgid "" -#~ "Alpha, beta and release candidate versions have an additional suffix. " -#~ "The suffix for an alpha version is \"aN\" for some small number N, the " -#~ "suffix for a beta version is \"bN\" for some small number N, and the " -#~ "suffix for a release candidate version is \"rcN\" for some small number " -#~ "N. In other words, all versions labeled 2.0aN precede the versions " -#~ "labeled 2.0bN, which precede versions labeled 2.0rcN, and *those* precede " -#~ "2.0." -#~ msgstr "" -#~ "Les versions *alpha*, *beta* et *release candidate* ont un suffixe " -#~ "supplémentaire. Le suffixe pour une version alpha est « aN » où N est un " -#~ "petit nombre, le suffixe pour une version *beta* est *bN* où N est un " -#~ "petit nombre, et le suffixe pour une *release candidate* est *rcN* où N " -#~ "est un petit nombre. En d'autres mots, toutes les versions nommées " -#~ "*2.0.aN* précèdent les versions *2.0.bN*, qui elles-mêmes précèdent " -#~ "2.0rcN, et *celles-ci* précèdent la version 2.0." - -#~ msgid "" -#~ "You must have a Roundup account to report bugs; this makes it possible " -#~ "for us to contact you if we have follow-up questions. It will also " -#~ "enable Roundup to send you updates as we act on your bug. If you had " -#~ "previously used SourceForge to report bugs to Python, you can obtain your " -#~ "Roundup password through Roundup's `password reset procedure `_." -#~ msgstr "" -#~ "Vous devez avoir un compte Roundup pour reporter des bogues; cela nous " -#~ "permet de vous contacter si nous avons des questions complémentaires. " -#~ "Cela permettra aussi le suivi de traitement de votre bogue. Si vous avez " -#~ "auparavant utilisé SourceForge pour reporter des bogues sur Python, vous " -#~ "pouvez obtenir un mot de passe Roundup grâce à la `procédure de " -#~ "réinitialisation de mot de passe de Roundup `_." diff --git a/faq/gui.po b/faq/gui.po deleted file mode 100644 index a2d281be16..0000000000 --- a/faq/gui.po +++ /dev/null @@ -1,342 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-05-23 21:32+0200\n" -"Last-Translator: Jean Abou Samra \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 3.3.1\n" - -#: faq/gui.rst:5 -msgid "Graphic User Interface FAQ" -msgstr "FAQ interface graphique" - -#: faq/gui.rst:8 -msgid "Contents" -msgstr "Sommaire" - -#: faq/gui.rst:15 -msgid "General GUI Questions" -msgstr "Questions générales sur l'interface graphique" - -#: faq/gui.rst:18 -msgid "What GUI toolkits exist for Python?" -msgstr "Quelles boîtes à outils IUG existent pour Python ?" - -#: faq/gui.rst:20 -msgid "" -"Standard builds of Python include an object-oriented interface to the Tcl/Tk " -"widget set, called :ref:`tkinter `. This is probably the easiest " -"to install (since it comes included with most `binary distributions `_ of Python) and use. For more info about Tk, " -"including pointers to the source, see the `Tcl/Tk home page `_. Tcl/Tk is fully portable to the macOS, Windows, and Unix " -"platforms." -msgstr "" -"Les versions standards de Python incluent une interface orientée objet pour " -"le jeu d'objets graphiques *Tcl/Tk*, appelée :ref:`tkinter `. " -"C'est probablement la plus facile à installer (puisqu'elle est incluse avec " -"la plupart des `distributions binaires `_ " -"de Python) et à utiliser. Pour plus d'informations sur *Tk*, y compris les " -"liens vers les sources, voir la page d'accueil `Tcl/Tk `_. *Tcl/Tk* est entièrement portable sur les plates-formes " -"macOS, Windows et Unix." - -#: faq/gui.rst:28 -msgid "" -"Depending on what platform(s) you are aiming at, there are also several " -"alternatives. A `list of cross-platform `_ and `platform-specific `_ GUI " -"frameworks can be found on the python wiki." -msgstr "" -"D'autres outils existent. Le choix doit dépendre notamment de la ou des " -"plateformes que vous visez. Sur le Wiki Python se trouvent des listes de " -"bibliothèques graphiques `multiplateformes `_ et `pour une seule plate-forme " -"`_." - -#: faq/gui.rst:36 -msgid "Tkinter questions" -msgstr "Questions à propos de *Tkinter*" - -#: faq/gui.rst:39 -msgid "How do I freeze Tkinter applications?" -msgstr "Comment puis-je geler (*freezer*) les applications *Tkinter* ?" - -#: faq/gui.rst:41 -msgid "" -"Freeze is a tool to create stand-alone applications. When freezing Tkinter " -"applications, the applications will not be truly stand-alone, as the " -"application will still need the Tcl and Tk libraries." -msgstr "" -"*Freeze* est un outil pour créer des applications autonomes. Lors du " -"*freezage* des applications Tkinter, les applications ne seront pas vraiment " -"autonomes, car l'application aura toujours besoin des bibliothèques Tcl et " -"Tk." - -#: faq/gui.rst:45 -#, fuzzy -msgid "" -"One solution is to ship the application with the Tcl and Tk libraries, and " -"point to them at run-time using the :envvar:`!TCL_LIBRARY` and :envvar:`!" -"TK_LIBRARY` environment variables." -msgstr "" -"Une solution consiste à empaqueter les bibliothèques *Tcl* et *Tk* dans " -"l'application et de les retrouver à l'exécution en utilisant les variables " -"d'environnement :envvar:`TCL_LIBRARY` et :envvar:`TK_LIBRARY`." - -#: faq/gui.rst:49 -msgid "" -"Various third-party freeze libraries such as py2exe and cx_Freeze have " -"handling for Tkinter applications built-in." -msgstr "" - -#: faq/gui.rst:54 -msgid "Can I have Tk events handled while waiting for I/O?" -msgstr "Puis-je modifier des événements *Tk* pendant l'écoute des *E/S* ?" - -#: faq/gui.rst:56 -#, fuzzy -msgid "" -"On platforms other than Windows, yes, and you don't even need threads! But " -"you'll have to restructure your I/O code a bit. Tk has the equivalent of " -"Xt's :c:func:`!XtAddInput` call, which allows you to register a callback " -"function which will be called from the Tk mainloop when I/O is possible on a " -"file descriptor. See :ref:`tkinter-file-handlers`." -msgstr "" -"Sur d'autres plates-formes que Windows, oui, et vous n'avez même pas besoin " -"de fils d'exécution multiples ! Mais vous devrez restructurer un peu votre " -"code *E/S*. *Tk* possède l'équivalent de l'appel :c:func:`XtAddInput()` de " -"*Xt*, qui vous permet d'enregistrer une fonction de *callback* qui sera " -"appelée par la boucle principale *Tk* lorsque des *E/S* sont disponibles sur " -"un descripteur de fichier. Voir :ref:`tkinter-file-handlers`." - -#: faq/gui.rst:64 -msgid "I can't get key bindings to work in Tkinter: why?" -msgstr "" -"Je n'arrive pas à faire fonctionner les raccourcis clavier dans *Tkinter* : " -"pourquoi ?" - -#: faq/gui.rst:66 -#, fuzzy -msgid "" -"An often-heard complaint is that event handlers :ref:`bound ` to events with the :meth:`!bind` method don't get handled even when " -"the appropriate key is pressed." -msgstr "" -"Une raison récurrente est que les gestionnaires d’évènements liés à des " -"évènements avec la méthode :meth:`bind` ne sont pas pris en charge même " -"lorsque la touche appropriée est activée." - -#: faq/gui.rst:70 -msgid "" -"The most common cause is that the widget to which the binding applies " -"doesn't have \"keyboard focus\". Check out the Tk documentation for the " -"focus command. Usually a widget is given the keyboard focus by clicking in " -"it (but not for labels; see the takefocus option)." -msgstr "" -"La cause la plus fréquente est que l'objet graphique auquel s'applique la " -"liaison n'a pas de « focus clavier ». Consultez la documentation *Tk* pour " -"la commande *focus*. Habituellement, un objet graphique reçoit le focus du " -"clavier en cliquant dessus (mais pas pour les étiquettes ; voir l'option " -"*takefocus*)." - -#~ msgid "" -#~ "To get truly stand-alone applications, the Tcl scripts that form the " -#~ "library have to be integrated into the application as well. One tool " -#~ "supporting that is SAM (stand-alone modules), which is part of the Tix " -#~ "distribution (https://tix.sourceforge.net/)." -#~ msgstr "" -#~ "Pour obtenir des applications vraiment autonomes, les scripts *Tcl* qui " -#~ "forment la bibliothèque doivent également être intégrés dans " -#~ "l'application. Un outil supportant cela est *SAM* (modules autonomes), " -#~ "qui fait partie de la distribution *Tix* (https://tix.sourceforge.net/)." - -#, fuzzy -#~ msgid "" -#~ "Build Tix with SAM enabled, perform the appropriate call to :c:func:`!" -#~ "Tclsam_init`, etc. inside Python's :file:`Modules/tkappinit.c`, and link " -#~ "with libtclsam and libtksam (you might include the Tix libraries as well)." -#~ msgstr "" -#~ "Compilez Tix avec SAM activé, exécutez l'appel approprié " -#~ "à :c:func:`Tclsam_init`, etc. dans le fichier :file:`Modules/tkappinit.c` " -#~ "de Python, et liez avec *libtclsam* et *libtksam* (il est également " -#~ "possible d'inclure les bibliothèques *Tix*)." - -#~ msgid "What platform-independent GUI toolkits exist for Python?" -#~ msgstr "" -#~ "Quelles bibliothèques d'interfaces graphiques multi-plateformes existent " -#~ "en Python ?" - -#~ msgid "" -#~ "Depending on what platform(s) you are aiming at, there are several. Some " -#~ "of them haven't been ported to Python 3 yet. At least `Tkinter`_ and " -#~ "`Qt`_ are known to be Python 3-compatible." -#~ msgstr "" -#~ "Selon les plateformes que vous comptez utiliser, il en existe plusieurs. " -#~ "Certaines ne sont cependant pas encore disponibles en Python 3. A minima, " -#~ "`Tkinter`_ et `Qt`_ sont connus pour être compatibles avec Python 3." - -#~ msgid "Tkinter" -#~ msgstr "*Tkinter*" - -#~ msgid "wxWidgets" -#~ msgstr "*wxWidgets*" - -#~ msgid "" -#~ "wxWidgets (https://www.wxwidgets.org) is a free, portable GUI class " -#~ "library written in C++ that provides a native look and feel on a number " -#~ "of platforms, with Windows, Mac OS X, GTK, X11, all listed as current " -#~ "stable targets. Language bindings are available for a number of " -#~ "languages including Python, Perl, Ruby, etc." -#~ msgstr "" -#~ "`wxWidgets` (https://www.wxwidgets.org) est une librairie de classe IUG " -#~ "portable et gratuite écrite en C++ qui fournit une apparence native sur " -#~ "un certain nombre de plates-formes, elle est notamment en version stable " -#~ "pour Windows, Mac OS X, GTK et X11. Des clients sont disponibles pour un " -#~ "certain nombre de langages, y compris Python, Perl, Ruby, etc." - -#~ msgid "" -#~ "`wxPython `_ is the Python binding for " -#~ "wxwidgets. While it often lags slightly behind the official wxWidgets " -#~ "releases, it also offers a number of features via pure Python extensions " -#~ "that are not available in other language bindings. There is an active " -#~ "wxPython user and developer community." -#~ msgstr "" -#~ "`wxPython `_ est le portage Python de " -#~ "*wxWidgets*. Bien qu’il soit légèrement en retard sur les versions " -#~ "officielles de *wxWidgets*, il offre également des fonctionnalités " -#~ "propres à Python qui ne sont pas disponibles pour les clients d'autres " -#~ "langages. *WxPython* dispose de plus, d’une communauté d’utilisateurs et " -#~ "de développeurs active." - -#~ msgid "" -#~ "Both wxWidgets and wxPython are free, open source, software with " -#~ "permissive licences that allow their use in commercial products as well " -#~ "as in freeware or shareware." -#~ msgstr "" -#~ "*wxWidgets* et *wxPython* sont tous deux des logiciels libres, open " -#~ "source, avec des licences permissives qui permettent leur utilisation " -#~ "dans des produits commerciaux ainsi que dans des logiciels gratuits ou " -#~ "contributifs (*shareware*)." - -#~ msgid "Qt" -#~ msgstr "*Qt*" - -#~ msgid "" -#~ "There are bindings available for the Qt toolkit (using either `PyQt " -#~ "`_ or `PySide " -#~ "`_) and for KDE (`PyKDE4 `__). PyQt is currently " -#~ "more mature than PySide, but you must buy a PyQt license from `Riverbank " -#~ "Computing `_ " -#~ "if you want to write proprietary applications. PySide is free for all " -#~ "applications." -#~ msgstr "" -#~ "Il existe des liens disponibles pour la boîte à outils *Qt* (en utilisant " -#~ "soit `PyQt `_ ou " -#~ "`PySide `_) et pour *KDE* (`PyKDE4 `__). *PyQt* est " -#~ "actuellement plus mûre que *PySide*, mais*PyQt* nécessite d'acheter une " -#~ "licence de `Riverbank Computing `_ si vous voulez écrire des applications " -#~ "propriétaires. *PySide* est gratuit pour toutes les applications." - -#~ msgid "" -#~ "Qt 4.5 upwards is licensed under the LGPL license; also, commercial " -#~ "licenses are available from `The Qt Company `_." -#~ msgstr "" -#~ "*Qt >= 4.5* est sous licence LGPL ; de plus, des licences commerciales " -#~ "sont disponibles auprès de `The Qt Company `_." - -#~ msgid "Gtk+" -#~ msgstr "*Gtk+*" - -#~ msgid "" -#~ "The `GObject introspection bindings `_ for Python allow you to write GTK+ 3 applications. There is " -#~ "also a `Python GTK+ 3 Tutorial `_." -#~ msgstr "" -#~ "Les `GObject introspection bindings `_ pour Python vous permettent d'écrire des applications GTK+ " -#~ "3. Il y a aussi un tutoriel `Python GTK+ 3 `_." - -#~ msgid "" -#~ "The older PyGtk bindings for the `Gtk+ 2 toolkit `_ " -#~ "have been implemented by James Henstridge; see ." -#~ msgstr "" -#~ "Les anciennes versions de *PyGtk* pour le `Gtk+ 2 toolkit `_ ont été implémentées par James Henstridge ; voir ." - -#~ msgid "Kivy" -#~ msgstr "*Kivy*" - -#~ msgid "" -#~ "`Kivy `_ is a cross-platform GUI library supporting " -#~ "both desktop operating systems (Windows, macOS, Linux) and mobile devices " -#~ "(Android, iOS). It is written in Python and Cython, and can use a range " -#~ "of windowing backends." -#~ msgstr "" -#~ "`*Kivy* `_ est une bibliothèque GUI multi-plateformes " -#~ "disponible à la fois sur les systèmes d'exploitation de bureau (Windows, " -#~ "MacOS, Linux) et les appareils mobiles (Android, iOS). Elle est écrite " -#~ "en Python et Cython, et peut utiliser une série de fenêtres de *backends*." - -#~ msgid "" -#~ "Kivy is free and open source software distributed under the MIT license." -#~ msgstr "" -#~ "*Kivy* est un logiciel libre et open source distribué sous licence MIT." - -#~ msgid "FLTK" -#~ msgstr "*FLTK*" - -#~ msgid "" -#~ "Python bindings for `the FLTK toolkit `_, a simple " -#~ "yet powerful and mature cross-platform windowing system, are available " -#~ "from `the PyFLTK project `_." -#~ msgstr "" -#~ "Les liaisons Python pour `the FLTK toolkit `_, un " -#~ "système de fenêtrage multi-plateformes simple mais puissant et mûr, sont " -#~ "disponibles auprès de `the PyFLTK project `_." - -#~ msgid "OpenGL" -#~ msgstr "*OpenGL*" - -#~ msgid "" -#~ "For OpenGL bindings, see `PyOpenGL `_." -#~ msgstr "" -#~ "Pour les clients OpenGL, voir `PyOpenGL `_." - -#~ msgid "" -#~ "By installing the `PyObjc Objective-C bridge `_, Python programs can use Mac OS X's Cocoa libraries." -#~ msgstr "" -#~ "En installant le `PyObjc Objective-C bridge `_, les programmes Python peuvent utiliser les bibliothèques " -#~ "Cocoa de Mac OS X." - -#~ msgid "" -#~ ":ref:`Pythonwin ` by Mark Hammond includes an interface to " -#~ "the Microsoft Foundation Classes and a Python programming environment " -#~ "that's written mostly in Python using the MFC classes." -#~ msgstr "" -#~ ":ref:`Pythonwin ` de Mark Hammond inclut une interface vers " -#~ "les classes `Microsoft Foundation Classes` et un environnement de " -#~ "programmation Python qui est écrit principalement en Python utilisant les " -#~ "classes *MFC*." diff --git a/faq/index.po b/faq/index.po deleted file mode 100644 index 9c52b2a26f..0000000000 --- a/faq/index.po +++ /dev/null @@ -1,19 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -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: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: faq/index.rst:5 -msgid "Python Frequently Asked Questions" -msgstr "Questions fréquemment posées sur Python" diff --git a/faq/installed.po b/faq/installed.po deleted file mode 100644 index c3e180b561..0000000000 --- a/faq/installed.po +++ /dev/null @@ -1,144 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -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-10-17 18:51+0200\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: faq/installed.rst:3 -msgid "\"Why is Python Installed on my Computer?\" FAQ" -msgstr "FAQ \"Pourquoi Python est installé sur mon ordinateur ?\"" - -#: faq/installed.rst:6 -msgid "What is Python?" -msgstr "Qu'est-ce que Python ?" - -#: faq/installed.rst:8 -msgid "" -"Python is a programming language. It's used for many different " -"applications. It's used in some high schools and colleges as an introductory " -"programming language because Python is easy to learn, but it's also used by " -"professional software developers at places such as Google, NASA, and " -"Lucasfilm Ltd." -msgstr "" -"Python est un langage de programmation. Il est utilisé dans de nombreuses " -"applications. Souvent utilisé dans les lycées et universités comme langage " -"d'introduction à la programmation pour sa simplicité d'apprentissage, il est " -"aussi utilisé par des développeurs professionnels appartenant à des grands " -"groupes comme Google, la NASA, Lucasfilm etc." - -#: faq/installed.rst:13 -msgid "" -"If you wish to learn more about Python, start with the `Beginner's Guide to " -"Python `_." -msgstr "" -"Si vous voulez en apprendre plus sur Python, vous pouvez commencer par le " -"`Guide des Débutants pour Python `_." - -#: faq/installed.rst:18 -msgid "Why is Python installed on my machine?" -msgstr "Pourquoi Python est installé sur ma machine ?" - -#: faq/installed.rst:20 -msgid "" -"If you find Python installed on your system but don't remember installing " -"it, there are several possible ways it could have gotten there." -msgstr "" -"Si Python est installé sur votre système mais que vous ne vous rappelez pas " -"l'avoir installé, il y a plusieurs raisons possibles à sa présence." - -#: faq/installed.rst:23 -msgid "" -"Perhaps another user on the computer wanted to learn programming and " -"installed it; you'll have to figure out who's been using the machine and " -"might have installed it." -msgstr "" -"Peut être qu'un autre utilisateur de l'ordinateur voulait apprendre la " -"programmation et l'a installé, dans ce cas vous allez devoir trouver qui a " -"utilisé votre machine et aurait pu l'installer." - -#: faq/installed.rst:26 -msgid "" -"A third-party application installed on the machine might have been written " -"in Python and included a Python installation. There are many such " -"applications, from GUI programs to network servers and administrative " -"scripts." -msgstr "" -"Une application tierce installée sur votre machine écrite en Python " -"installera Python. Il existe de nombreuses applications de ce type, allant " -"de programme avec interface graphique, jusqu'aux scripts d'administration, " -"en passant par les serveurs." - -#: faq/installed.rst:29 -msgid "" -"Some Windows machines also have Python installed. At this writing we're " -"aware of computers from Hewlett-Packard and Compaq that include Python. " -"Apparently some of HP/Compaq's administrative tools are written in Python." -msgstr "" -"Certaines machines fonctionnant avec le système d'exploitation Windows " -"possèdent une installation de Python. À ce jour, les ordinateurs des marques " -"Hewlett-Packard et Compaq incluent nativement Python. Certains outils " -"d'administration de ces marques sont écrits en Python." - -#: faq/installed.rst:32 -msgid "" -"Many Unix-compatible operating systems, such as macOS and some Linux " -"distributions, have Python installed by default; it's included in the base " -"installation." -msgstr "" -"Python est installé par défaut sur de nombreux systèmes compatibles Unix, " -"comme macOS et certaines distributions Linux." - -#: faq/installed.rst:38 -msgid "Can I delete Python?" -msgstr "Puis-je supprimer Python ?" - -#: faq/installed.rst:40 -msgid "That depends on where Python came from." -msgstr "Cela dépend de l'origine de Python." - -#: faq/installed.rst:42 -msgid "" -"If someone installed it deliberately, you can remove it without hurting " -"anything. On Windows, use the Add/Remove Programs icon in the Control Panel." -msgstr "" -"Si Python a été installé délibérément par une personne tierce ou vous même, " -"vous pouvez le supprimer sans causer de dommage. Sous Windows, vous pouvez " -"simplement utiliser l'icône d'Ajout / Suppression de programmes du Panneau " -"de configuration." - -#: faq/installed.rst:45 -msgid "" -"If Python was installed by a third-party application, you can also remove " -"it, but that application will no longer work. You should use that " -"application's uninstaller rather than removing Python directly." -msgstr "" -"Si Python a été installé par une application tierce, Python peut être " -"désinstallé, l'application l'ayant installé cessera alors de fonctionner. " -"Dans ce cas, désinstallez l'application en utilisant son outil de " -"désinstallation est plus indiqué que supprimer Python." - -#: faq/installed.rst:49 -msgid "" -"If Python came with your operating system, removing it is not recommended. " -"If you remove it, whatever tools were written in Python will no longer run, " -"and some of them might be important to you. Reinstalling the whole system " -"would then be required to fix things again." -msgstr "" -"Si Python a été installé avec votre système d'exploitation, le supprimer " -"n'est pas recommandé. Si vous choisissez tout de même de le supprimer, tous " -"les outils écrits en python cesseront alors de fonctionner, certains outils " -"pouvant être importants. La réinstallation intégrale du système pourrait " -"être nécessaire pour résoudre les problèmes suite à la désinstallation de " -"Python." diff --git a/faq/library.po b/faq/library.po deleted file mode 100644 index fc591b19ec..0000000000 --- a/faq/library.po +++ /dev/null @@ -1,1230 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-03-27 18:03+0200\n" -"Last-Translator: Mathieu Dupuy\n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.2\n" - -#: faq/library.rst:5 -msgid "Library and Extension FAQ" -msgstr "FAQ sur la bibliothèque et les extensions" - -#: faq/library.rst:8 -msgid "Contents" -msgstr "Sommaire" - -#: faq/library.rst:12 -msgid "General Library Questions" -msgstr "Questions générales sur la bibliothèque" - -#: faq/library.rst:15 -msgid "How do I find a module or application to perform task X?" -msgstr "" -"Comment trouver un module ou une application pour effectuer la tâche X ?" - -#: faq/library.rst:17 -msgid "" -"Check :ref:`the Library Reference ` to see if there's a " -"relevant standard library module. (Eventually you'll learn what's in the " -"standard library and will be able to skip this step.)" -msgstr "" -"Regardez si la :ref:`bibliothèque standard ` contient un " -"module approprié (avec l'expérience, vous connaîtrez le contenu de la " -"bibliothèque standard et pourrez sauter cette étape)." - -#: faq/library.rst:21 -msgid "" -"For third-party packages, search the `Python Package Index `_ or try `Google `_ or another web search " -"engine. Searching for \"Python\" plus a keyword or two for your topic of " -"interest will usually find something helpful." -msgstr "" -"Pour des paquets tiers, regardez dans `l'index des paquets Python `_ ou essayez `Google `_ ou un autre moteur " -"de recherche (NDT : comme le moteur français `Qwant `_). Rechercher « Python » accompagné d'un ou deux mots-clés " -"se rapportant à ce qui vous intéresse donne souvent de bons résultats." - -#: faq/library.rst:28 -msgid "Where is the math.py (socket.py, regex.py, etc.) source file?" -msgstr "" -"Où sont stockés les fichiers sources *math.py*, *socket.py*, *regex.py*, " -"etc ?" - -#: faq/library.rst:30 -msgid "" -"If you can't find a source file for a module it may be a built-in or " -"dynamically loaded module implemented in C, C++ or other compiled language. " -"In this case you may not have the source file or it may be something " -"like :file:`mathmodule.c`, somewhere in a C source directory (not on the " -"Python Path)." -msgstr "" -"Si vous ne parvenez pas à trouver le fichier source d'un module, c'est peut-" -"être parce que celui-ci est un module natif ou bien un module implémenté en " -"C, C++, ou autre langage compilé, qui est chargé dynamiquement. Dans ce cas, " -"vous ne possédez peut-être pas le fichier source ou celui-ci est en réalité " -"stocké quelque part dans un dossier de fichiers source C (qui ne sera pas " -"dans le chemin Python), comme par exemple :file:`mathmodule.c`." - -#: faq/library.rst:35 -msgid "There are (at least) three kinds of modules in Python:" -msgstr "Il y a (au moins) trois types de modules dans Python :" - -#: faq/library.rst:37 -msgid "modules written in Python (.py);" -msgstr "les modules écrits en Python (*.py*) ;" - -#: faq/library.rst:38 -msgid "" -"modules written in C and dynamically loaded (.dll, .pyd, .so, .sl, etc);" -msgstr "" -"les modules écrits en C et chargés dynamiquement (*.dll*, *.pyd*, *.so*, " -"*.sl*, *etc.*) ;" - -#: faq/library.rst:39 -msgid "" -"modules written in C and linked with the interpreter; to get a list of " -"these, type::" -msgstr "" -"les modules écrits en C et liés à l'interpréteur ; pour obtenir leur liste, " -"entrez ::" - -#: faq/library.rst:47 -msgid "How do I make a Python script executable on Unix?" -msgstr "Comment rendre un script Python exécutable sous Unix ?" - -#: faq/library.rst:49 -msgid "" -"You need to do two things: the script file's mode must be executable and the " -"first line must begin with ``#!`` followed by the path of the Python " -"interpreter." -msgstr "" -"Deux conditions doivent être remplies : les droits d'accès au fichier " -"doivent permettre son exécution et la première ligne du script doit " -"commencer par ``#!`` suivi du chemin vers l'interpréteur Python." - -#: faq/library.rst:53 -msgid "" -"The first is done by executing ``chmod +x scriptfile`` or perhaps ``chmod " -"755 scriptfile``." -msgstr "" -"La première condition est remplie en exécutant ``chmod +x scriptfile`` ou " -"``chmod 755 scriptfile``." - -#: faq/library.rst:56 -msgid "" -"The second can be done in a number of ways. The most straightforward way is " -"to write ::" -msgstr "" -"Il y a plusieurs façons de remplir la seconde. La plus simple consiste à " -"écrire au tout début du fichier ::" - -#: faq/library.rst:61 -msgid "" -"as the very first line of your file, using the pathname for where the Python " -"interpreter is installed on your platform." -msgstr "en utilisant le chemin de l'interpréteur Python sur votre machine." - -#: faq/library.rst:64 -msgid "" -"If you would like the script to be independent of where the Python " -"interpreter lives, you can use the :program:`env` program. Almost all Unix " -"variants support the following, assuming the Python interpreter is in a " -"directory on the user's :envvar:`PATH`::" -msgstr "" -"Pour rendre ce script indépendant de la localisation de l'interpréteur " -"Python, il faut utiliser le programme :program:`env`. La ligne ci-dessous " -"fonctionne sur la quasi-totalité des dérivés de Unix, à condition que " -"l'interpréteur Python soit dans un dossier référencé dans la " -"variable :envvar:`PATH` de l'utilisateur ::" - -#: faq/library.rst:71 -msgid "" -"*Don't* do this for CGI scripts. The :envvar:`PATH` variable for CGI " -"scripts is often very minimal, so you need to use the actual absolute " -"pathname of the interpreter." -msgstr "" -"Ne faites *pas* ceci pour des scripts CGI. La variable :envvar:`PATH` des " -"scripts CGI est souvent très succincte, il faut par conséquent préciser le " -"chemin absolu réel de l'interpréteur." - -#: faq/library.rst:75 -msgid "" -"Occasionally, a user's environment is so full that the :program:`/usr/bin/" -"env` program fails; or there's no env program at all. In that case, you can " -"try the following hack (due to Alex Rezinsky):" -msgstr "" -"Il peut arriver que l'environnement d'un utilisateur soit si chargé que le " -"programme :program:`/usr/bin/env` échoue ; ou que le programme *env* " -"n'existe pas du tout. Dans ce cas, vous pouvez utiliser l'astuce suivante, " -"élaborée par Alex Rezinsky :" - -#: faq/library.rst:86 -msgid "" -"The minor disadvantage is that this defines the script's __doc__ string. " -"However, you can fix that by adding ::" -msgstr "" -"Le léger inconvénient est que cela définit la variable *__doc__* du script. " -"Cependant, il est possible de corriger cela en ajoutant ::" - -#: faq/library.rst:94 -msgid "Is there a curses/termcap package for Python?" -msgstr "Existe-t-il un module *curses* ou *termcap* en Python ?" - -#: faq/library.rst:98 -msgid "" -"For Unix variants: The standard Python source distribution comes with a " -"curses module in the :source:`Modules` subdirectory, though it's not " -"compiled by default. (Note that this is not available in the Windows " -"distribution -- there is no curses module for Windows.)" -msgstr "" -"Pour les dérivés d'Unix : la distribution standard de Python contient un " -"module *curses* dans le sous-dossier :source:`Modules`, bien qu'il ne soit " -"pas compilé par défaut. Il n'est pas disponible en Windows — le module " -"*curses* n'existant pas en Windows." - -#: faq/library.rst:103 -msgid "" -"The :mod:`curses` module supports basic curses features as well as many " -"additional functions from ncurses and SYSV curses such as colour, " -"alternative character set support, pads, and mouse support. This means the " -"module isn't compatible with operating systems that only have BSD curses, " -"but there don't seem to be any currently maintained OSes that fall into this " -"category." -msgstr "" -"Le module :mod:`curses` comprend les fonctionnalités de base de *curses* et " -"beaucoup de fonctionnalités supplémentaires provenant de *ncurses* et de " -"*SYSV curses* comme la couleur, la gestion des ensembles de caractères " -"alternatifs, la prise en charge du pavé tactile et de la souris. Cela " -"implique que le module n'est pas compatible avec des systèmes d'exploitation " -"qui n'ont que le *curses* de BSD mais, de nos jours, de tels systèmes " -"d'exploitation ne semblent plus exister ou être maintenus." - -#: faq/library.rst:111 -msgid "Is there an equivalent to C's onexit() in Python?" -msgstr "Existe-t-il un équivalent à la fonction C ``onexit()`` en Python ?" - -#: faq/library.rst:113 -#, fuzzy -msgid "" -"The :mod:`atexit` module provides a register function that is similar to " -"C's :c:func:`!onexit`." -msgstr "" -"Le module :mod:`atexit` fournit une fonction d'enregistrement similaire à la " -"fonction C :c:func:`onexit`." - -#: faq/library.rst:118 -msgid "Why don't my signal handlers work?" -msgstr "Pourquoi mes gestionnaires de signaux ne fonctionnent-ils pas ?" - -#: faq/library.rst:120 -msgid "" -"The most common problem is that the signal handler is declared with the " -"wrong argument list. It is called as ::" -msgstr "" -"Le problème le plus courant est d'appeler le gestionnaire de signaux avec " -"les mauvais arguments. Un gestionnaire est appelé de la façon suivante ::" - -#: faq/library.rst:125 -msgid "so it should be declared with two parameters::" -msgstr "donc il doit être déclaré avec deux paramètres ::" - -#: faq/library.rst:132 -msgid "Common tasks" -msgstr "Tâches fréquentes" - -#: faq/library.rst:135 -msgid "How do I test a Python program or component?" -msgstr "Comment tester un programme ou un composant Python ?" - -#: faq/library.rst:137 -msgid "" -"Python comes with two testing frameworks. The :mod:`doctest` module finds " -"examples in the docstrings for a module and runs them, comparing the output " -"with the expected output given in the docstring." -msgstr "" -"Python fournit deux cadriciels de test. Le module :mod:`doctest` cherche des " -"exemples dans les *docstrings* d'un module et les exécute. Il compare alors " -"la sortie avec la sortie attendue, telle que définie dans la *docstring*." - -#: faq/library.rst:141 -msgid "" -"The :mod:`unittest` module is a fancier testing framework modelled on Java " -"and Smalltalk testing frameworks." -msgstr "" -"Le module :mod:`unittest` est un cadriciel un peu plus élaboré basé sur les " -"cadriciels de test de Java et de Smalltalk." - -#: faq/library.rst:144 -msgid "" -"To make testing easier, you should use good modular design in your program. " -"Your program should have almost all functionality encapsulated in either " -"functions or class methods -- and this sometimes has the surprising and " -"delightful effect of making the program run faster (because local variable " -"accesses are faster than global accesses). Furthermore the program should " -"avoid depending on mutating global variables, since this makes testing much " -"more difficult to do." -msgstr "" -"Pour rendre le test plus aisé, il est nécessaire de bien découper le code " -"d'un programme. Votre programme doit avoir la quasi-totalité des " -"fonctionnalités dans des fonctions ou des classes — et ceci a parfois " -"l'avantage aussi plaisant qu'inattendu de rendre le programme plus rapide, " -"les accès aux variables locales étant en effet plus rapides que les accès " -"aux variables globales. De plus le programme doit éviter au maximum de " -"manipuler des variables globales, car ceci rend le test beaucoup plus " -"difficile." - -#: faq/library.rst:152 -msgid "The \"global main logic\" of your program may be as simple as ::" -msgstr "" -"La « logique générale » d'un programme devrait être aussi simple que ::" - -#: faq/library.rst:157 -msgid "at the bottom of the main module of your program." -msgstr "à la fin du module principal du programme." - -#: faq/library.rst:159 -msgid "" -"Once your program is organized as a tractable collection of function and " -"class behaviours, you should write test functions that exercise the " -"behaviours. A test suite that automates a sequence of tests can be " -"associated with each module. This sounds like a lot of work, but since " -"Python is so terse and flexible it's surprisingly easy. You can make coding " -"much more pleasant and fun by writing your test functions in parallel with " -"the \"production code\", since this makes it easy to find bugs and even " -"design flaws earlier." -msgstr "" -"Une fois que la logique du programme est implémentée par un ensemble de " -"fonctions et de comportements de classes, il faut écrire des fonctions de " -"test qui vont éprouver cette logique. À chaque module, il est possible " -"d'associer une suite de tests qui joue de manière automatique un ensemble de " -"tests. Au premier abord, il semble qu'il faille fournir un effort " -"conséquent, mais comme Python est un langage concis et flexible, c'est " -"surprenamment aisé. Écrire simultanément le code « de production » et les " -"fonctions de test associées rend le développement plus agréable et plus " -"amusant, car ceci permet de trouver des bogues, voire des défauts de " -"conception, plus facilement." - -#: faq/library.rst:167 -msgid "" -"\"Support modules\" that are not intended to be the main module of a program " -"may include a self-test of the module. ::" -msgstr "" -"Les « modules auxiliaires » qui n'ont pas vocation à être le module " -"principal du programme peuvent inclure un test pour se vérifier eux-mêmes. ::" - -#: faq/library.rst:173 -msgid "" -"Even programs that interact with complex external interfaces may be tested " -"when the external interfaces are unavailable by using \"fake\" interfaces " -"implemented in Python." -msgstr "" -"Les programmes qui interagissent avec des interfaces externes complexes " -"peuvent être testés même quand ces interfaces ne sont pas disponibles, en " -"utilisant des interfaces « simulacres » implémentées en Python." - -#: faq/library.rst:179 -msgid "How do I create documentation from doc strings?" -msgstr "Comment générer la documentation à partir des *docstrings* ?" - -#: faq/library.rst:181 -msgid "" -"The :mod:`pydoc` module can create HTML from the doc strings in your Python " -"source code. An alternative for creating API documentation purely from " -"docstrings is `epydoc `_. `Sphinx `_ can also include docstring content." -msgstr "" -"Le module :mod:`pydoc` peut générer du HTML à partir des *docstrings* du " -"code source Python. Il est aussi possible de documenter une API uniquement à " -"partir des *docstrings* à l'aide de `epydoc `_. `Sphinx `_ peut également inclure du contenu " -"provenant de *docstrings*." - -#: faq/library.rst:188 -msgid "How do I get a single keypress at a time?" -msgstr "Comment détecter qu'une touche est pressée ?" - -#: faq/library.rst:190 -msgid "" -"For Unix variants there are several solutions. It's straightforward to do " -"this using curses, but curses is a fairly large module to learn." -msgstr "" -"Pour les dérivés d'Unix, plusieurs solutions s'offrent à vous. C'est facile " -"en utilisant le module *curses*, mais *curses* est un module assez " -"conséquent à apprendre." - -#: faq/library.rst:234 -msgid "Threads" -msgstr "Fils d'exécution" - -#: faq/library.rst:237 -msgid "How do I program using threads?" -msgstr "Comment programmer avec des fils d'exécution ?" - -#: faq/library.rst:239 -msgid "" -"Be sure to use the :mod:`threading` module and not the :mod:`_thread` " -"module. The :mod:`threading` module builds convenient abstractions on top of " -"the low-level primitives provided by the :mod:`_thread` module." -msgstr "" -"Veillez à bien utiliser le module :mod:`threading` et non le " -"module :mod:`_thread`. Le module :mod:`threading` fournit une abstraction " -"plus facile à manipuler que les primitives de bas-niveau du " -"module :mod:`_thread`." - -#: faq/library.rst:245 -msgid "None of my threads seem to run: why?" -msgstr "Aucun de mes fils ne semble s'exécuter : pourquoi ?" - -#: faq/library.rst:247 -msgid "" -"As soon as the main thread exits, all threads are killed. Your main thread " -"is running too quickly, giving the threads no time to do any work." -msgstr "" -"Dès que le fil d'exécution principal se termine, tous les fils sont tués. Le " -"fil principal s'exécute trop rapidement, sans laisser le temps aux autres " -"fils de faire quoi que ce soit." - -#: faq/library.rst:250 -msgid "" -"A simple fix is to add a sleep to the end of the program that's long enough " -"for all the threads to finish::" -msgstr "" -"Une correction simple consiste à ajouter un temps d'attente suffisamment " -"long à la fin du programme pour que tous les fils puissent se terminer ::" - -#: faq/library.rst:265 -msgid "" -"But now (on many platforms) the threads don't run in parallel, but appear to " -"run sequentially, one at a time! The reason is that the OS thread scheduler " -"doesn't start a new thread until the previous thread is blocked." -msgstr "" -"Mais à présent, sur beaucoup de plates-formes, les fils ne s'exécutent pas " -"en parallèle, mais semblent s'exécuter de manière séquentielle, l'un après " -"l'autre ! En réalité, l'ordonnanceur de fils du système d'exploitation ne " -"démarre pas de nouveau fil avant que le précédent ne soit bloqué." - -#: faq/library.rst:269 -msgid "A simple fix is to add a tiny sleep to the start of the run function::" -msgstr "" -"Une correction simple consiste à ajouter un petit temps d'attente au début " -"de la fonction ::" - -#: faq/library.rst:282 -msgid "" -"Instead of trying to guess a good delay value for :func:`time.sleep`, it's " -"better to use some kind of semaphore mechanism. One idea is to use " -"the :mod:`queue` module to create a queue object, let each thread append a " -"token to the queue when it finishes, and let the main thread read as many " -"tokens from the queue as there are threads." -msgstr "" -"Au lieu d'essayer de trouver une bonne valeur d'attente pour la " -"fonction :func:`time.sleep`, il vaut mieux utiliser un mécanisme basé sur " -"les sémaphores. Une solution consiste à utiliser le module :mod:`queue` pour " -"créer un objet file, faire en sorte que chaque fil ajoute un jeton à la file " -"quand il se termine, et que le fil principal retire autant de jetons de la " -"file qu'il y a de fils." - -#: faq/library.rst:290 -msgid "How do I parcel out work among a bunch of worker threads?" -msgstr "" -"Comment découper et répartir une tâche au sein d'un ensemble de fils " -"d'exécutions ?" - -#: faq/library.rst:292 -msgid "" -"The easiest way is to use the :mod:`concurrent.futures` module, especially " -"the :mod:`~concurrent.futures.ThreadPoolExecutor` class." -msgstr "" -"La manière la plus simple est d'utiliser le " -"module :mod:`concurrent.futures`, en particulier la " -"classe :mod:`~concurrent.futures.ThreadPoolExecutor`." - -#: faq/library.rst:295 -msgid "" -"Or, if you want fine control over the dispatching algorithm, you can write " -"your own logic manually. Use the :mod:`queue` module to create a queue " -"containing a list of jobs. The :class:`~queue.Queue` class maintains a list " -"of objects and has a ``.put(obj)`` method that adds items to the queue and a " -"``.get()`` method to return them. The class will take care of the locking " -"necessary to ensure that each job is handed out exactly once." -msgstr "" -"Ou bien, si vous désirez contrôler plus finement l'algorithme de " -"distribution, vous pouvez écrire votre propre logique « à la main ». " -"Utilisez le module :mod:`queue` pour créer une file de tâches ; la " -"classe :class:`~queue.Queue` gère une liste d'objets et a une méthode " -"``.put(objet)`` pour ajouter un élément à la file, et une méthode ``.get()`` " -"pour les récupérer. La classe s'occupe de gérer les verrous pour que chaque " -"tâche soit exécutée une et une seule fois." - -#: faq/library.rst:302 -msgid "Here's a trivial example::" -msgstr "Voici un exemple trivial ::" - -#: faq/library.rst:340 -msgid "When run, this will produce the following output:" -msgstr "Quand celui-ci est exécuté, il produit la sortie suivante :" - -#: faq/library.rst:358 -msgid "" -"Consult the module's documentation for more details; " -"the :class:`~queue.Queue` class provides a featureful interface." -msgstr "" -"Consultez la documentation du module pour plus de détails ; la " -"classe :class:`~queue.Queue` fournit une interface pleine de fonctionnalités." - -#: faq/library.rst:363 -msgid "What kinds of global value mutation are thread-safe?" -msgstr "" -"Quels types de mutations sur des variables globales sont compatibles avec " -"les programmes à fils d'exécution multiples ? sécurisé ?" - -#: faq/library.rst:365 -msgid "" -"A :term:`global interpreter lock` (GIL) is used internally to ensure that " -"only one thread runs in the Python VM at a time. In general, Python offers " -"to switch among threads only between bytecode instructions; how frequently " -"it switches can be set via :func:`sys.setswitchinterval`. Each bytecode " -"instruction and therefore all the C implementation code reached from each " -"instruction is therefore atomic from the point of view of a Python program." -msgstr "" -"Le :term:`verrou global de l'interpréteur ` (GIL " -"pour *global interpreter lock*) est utilisé en interne pour s'assurer que la " -"machine virtuelle Python (MVP) n'exécute qu'un seul fil à la fois. De " -"manière générale, Python ne change de fil qu'entre les instructions du code " -"intermédiaire ; :func:`sys.setswitchinterval` permet de contrôler la " -"fréquence de bascule entre les fils. Chaque instruction du code " -"intermédiaire, et, par conséquent, tout le code C appelé par cette " -"instruction est donc atomique du point de vue d'un programme Python." - -#: faq/library.rst:372 -msgid "" -"In theory, this means an exact accounting requires an exact understanding of " -"the PVM bytecode implementation. In practice, it means that operations on " -"shared variables of built-in data types (ints, lists, dicts, etc) that " -"\"look atomic\" really are." -msgstr "" -"En théorie, cela veut dire qu'un décompte exact nécessite une connaissance " -"parfaite de l'implémentation de la MVP. En pratique, cela veut dire que les " -"opérations sur des variables partagées de type natif (les entier, les " -"listes, les dictionnaires, etc.) qui « semblent atomiques » le sont " -"réellement." - -#: faq/library.rst:377 -msgid "" -"For example, the following operations are all atomic (L, L1, L2 are lists, " -"D, D1, D2 are dicts, x, y are objects, i, j are ints)::" -msgstr "" -"Par exemple, les opérations suivantes sont toutes atomiques (*L*, *L1* et " -"*L2* sont des listes, *D*, *D1* et *D2* sont des dictionnaires, *x* et *y* " -"sont des objets, *i* et *j* des entiers) ::" - -#: faq/library.rst:392 -msgid "These aren't::" -msgstr "Les suivantes ne le sont pas ::" - -#: faq/library.rst:399 -#, fuzzy -msgid "" -"Operations that replace other objects may invoke those other " -"objects' :meth:`~object.__del__` method when their reference count reaches " -"zero, and that can affect things. This is especially true for the mass " -"updates to dictionaries and lists. When in doubt, use a mutex!" -msgstr "" -"Les opérations qui remplacent d'autres objets peuvent invoquer la " -"méthode :meth:`__del__` de ces objets quand leur compteur de référence passe " -"à zéro, et cela peut avoir de l'impact. C'est tout particulièrement vrai " -"pour les changements massifs sur des dictionnaires ou des listes. En cas de " -"doute, il vaut mieux utiliser un mutex !" - -#: faq/library.rst:406 -msgid "Can't we get rid of the Global Interpreter Lock?" -msgstr "Pourquoi ne pas se débarrasser du verrou global de l'interpréteur ?" - -#: faq/library.rst:408 -msgid "" -"The :term:`global interpreter lock` (GIL) is often seen as a hindrance to " -"Python's deployment on high-end multiprocessor server machines, because a " -"multi-threaded Python program effectively only uses one CPU, due to the " -"insistence that (almost) all Python code can only run while the GIL is held." -msgstr "" -"Le :term:`verrou global de l'interpréteur ` (GIL) " -"est souvent vu comme un obstacle au déploiement de code Python sur des " -"serveurs puissants avec de nombreux processeurs, car un programme Python à " -"fils d'exécutions multiples n'utilise en réalité qu'un seul processeur. " -"Presque tout le code Python ne peut en effet être exécuté qu'avec le GIL " -"acquis." - -#: faq/library.rst:413 -msgid "" -"With the approval of :pep:`703` work is now underway to remove the GIL from " -"the CPython implementation of Python. Initially it will be implemented as " -"an optional compiler flag when building the interpreter, and so separate " -"builds will be available with and without the GIL. Long-term, the hope is " -"to settle on a single build, once the performance implications of removing " -"the GIL are fully understood. Python 3.13 is likely to be the first release " -"containing this work, although it may not be completely functional in this " -"release." -msgstr "" - -#: faq/library.rst:422 -#, fuzzy -msgid "" -"The current work to remove the GIL is based on a `fork of Python 3.9 with " -"the GIL removed `_ by Sam Gross. Prior " -"to that, in the days of Python 1.5, Greg Stein actually implemented a " -"comprehensive patch set (the \"free threading\" patches) that removed the " -"GIL and replaced it with fine-grained locking. Adam Olsen did a similar " -"experiment in his `python-safethread `_ project. Unfortunately, both of these earlier " -"experiments exhibited a sharp drop in single-thread performance (at least " -"30% slower), due to the amount of fine-grained locking necessary to " -"compensate for the removal of the GIL. The Python 3.9 fork is the first " -"attempt at removing the GIL with an acceptable performance impact." -msgstr "" -"À l'époque de Python 1.5, Greg Stein a bien implémenté un ensemble complet " -"de correctifs (les correctifs « fils d'exécution libres ») qui remplaçaient " -"le GIL par des verrous plus granulaires. Adam Olsen a conduit une expérience " -"similaire dans son projet `python-safethread `_. Malheureusement, ces deux tentatives ont " -"induit une baisse significative (d'au moins 30 %) des performances du code à " -"un seul fil d'exécution, à cause de la quantité de verrouillage plus " -"granulaire nécessaire pour contrebalancer la suppression du GIL." - -#: faq/library.rst:437 -#, fuzzy -msgid "" -"The presence of the GIL in current Python releases doesn't mean that you " -"can't make good use of Python on multi-CPU machines! You just have to be " -"creative with dividing the work up between multiple *processes* rather than " -"multiple *threads*. The :class:`~concurrent.futures.ProcessPoolExecutor` " -"class in the new :mod:`concurrent.futures` module provides an easy way of " -"doing so; the :mod:`multiprocessing` module provides a lower-level API in " -"case you want more control over dispatching of tasks." -msgstr "" -"Cela ne signifie pas qu'il est impossible de tirer profit de Python sur des " -"machines à plusieurs cœurs ! Il faut seulement être malin et diviser le " -"travail à faire entre plusieurs *processus* plutôt qu'entre plusieurs *fils " -"d'exécution*. La classe :class:`~concurrent.futures.ProcessPoolExecutor` du " -"nouveau module :mod:`concurrent.futures` permet de faire cela facilement ; " -"le module :mod:`multiprocessing` fournit une API de plus bas-niveau pour un " -"meilleur contrôle sur la distribution des tâches." - -#: faq/library.rst:446 -msgid "" -"Judicious use of C extensions will also help; if you use a C extension to " -"perform a time-consuming task, the extension can release the GIL while the " -"thread of execution is in the C code and allow other threads to get some " -"work done. Some standard library modules such as :mod:`zlib` " -"and :mod:`hashlib` already do this." -msgstr "" -"Des extensions C appropriées peuvent aussi aider ; en utilisant une " -"extension C pour effectuer une tâche longue, l'extension peut relâcher le " -"GIL pendant que le fil est en train d'exécuter ce code et laisser les autres " -"fils travailler. Des modules de la bibliothèque standard comme :mod:`zlib` " -"ou :mod:`hashlib` utilisent cette technique." - -#: faq/library.rst:452 -msgid "" -"An alternative approach to reducing the impact of the GIL is to make the GIL " -"a per-interpreter-state lock rather than truly global. This was :ref:`first " -"implemented in Python 3.12 ` and is available in the C " -"API. A Python interface to it is expected in Python 3.13. The main " -"limitation to it at the moment is likely to be 3rd party extension modules, " -"since these must be written with multiple interpreters in mind in order to " -"be usable, so many older extension modules will not be usable." -msgstr "" - -#: faq/library.rst:462 -msgid "Input and Output" -msgstr "Les entrées/sorties" - -#: faq/library.rst:465 -msgid "How do I delete a file? (And other file questions...)" -msgstr "Comment supprimer un fichier ? (et autres questions sur les fichiers…)" - -#: faq/library.rst:467 -msgid "" -"Use ``os.remove(filename)`` or ``os.unlink(filename)``; for documentation, " -"see the :mod:`os` module. The two functions are " -"identical; :func:`~os.unlink` is simply the name of the Unix system call for " -"this function." -msgstr "" -"Utilisez ``os.remove(filename)`` ou ``os.unlink(filename)`` ; pour la " -"documentation, référez-vous au module :mod:`os`. Ces deux fonctions sont " -"identiques, :func:`~os.unlink` n'est tout simplement que le nom de l'appel " -"système à cette fonction sous Unix." - -#: faq/library.rst:471 -msgid "" -"To remove a directory, use :func:`os.rmdir`; use :func:`os.mkdir` to create " -"one. ``os.makedirs(path)`` will create any intermediate directories in " -"``path`` that don't exist. ``os.removedirs(path)`` will remove intermediate " -"directories as long as they're empty; if you want to delete an entire " -"directory tree and its contents, use :func:`shutil.rmtree`." -msgstr "" -"Utilisez :func:`os.rmdir` pour supprimer un dossier et :func:`os.mkdir` pour " -"en créer un nouveau. ``os.makedirs(chemin)`` crée les dossiers " -"intermédiaires de ``chemin`` qui n'existent pas et ``os.removedirs(chemin)`` " -"supprime les dossiers intermédiaires si ceux-ci sont vides. Pour supprimer " -"une arborescence et tout son contenu, utilisez :func:`shutil.rmtree`." - -#: faq/library.rst:477 -msgid "To rename a file, use ``os.rename(old_path, new_path)``." -msgstr "" -"``os.rename(ancien_chemin, nouveau_chemin)`` permet de renommer un fichier." - -#: faq/library.rst:479 -msgid "" -"To truncate a file, open it using ``f = open(filename, \"rb+\")``, and use " -"``f.truncate(offset)``; offset defaults to the current seek position. " -"There's also ``os.ftruncate(fd, offset)`` for files opened " -"with :func:`os.open`, where *fd* is the file descriptor (a small integer)." -msgstr "" -"Pour supprimer le contenu d'un fichier, ouvrez celui-ci avec ``f = " -"open(nom_du_fichier, \"rb+\")``, puis exécutez ``f.truncate(décalage)`` où " -"*décalage* est par défaut la position actuelle de la tête de lecture. Il " -"existe aussi ``os.ftruncate(df, décalage)`` pour les fichiers ouverts " -"avec :func:`os.open`, où *df* est le descripteur de fichier (un entier " -"court)." - -#: faq/library.rst:484 -msgid "" -"The :mod:`shutil` module also contains a number of functions to work on " -"files including :func:`~shutil.copyfile`, :func:`~shutil.copytree`, " -"and :func:`~shutil.rmtree`." -msgstr "" -"Le module :mod:`shutil` propose aussi un grand nombre de fonctions pour " -"effectuer des opérations sur des fichiers " -"comme :func:`~shutil.copyfile`, :func:`~shutil.copytree` " -"et :func:`~shutil.rmtree`." - -#: faq/library.rst:490 -msgid "How do I copy a file?" -msgstr "Comment copier un fichier ?" - -#: faq/library.rst:492 -msgid "" -"The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. Note " -"that on Windows NTFS volumes, it does not copy `alternate data streams " -"`_ nor " -"`resource forks `__ on macOS " -"HFS+ volumes, though both are now rarely used. It also doesn't copy file " -"permissions and metadata, though using :func:`shutil.copy2` instead will " -"preserve most (though not all) of it." -msgstr "" - -#: faq/library.rst:503 -msgid "How do I read (or write) binary data?" -msgstr "Comment lire (ou écrire) des données binaires ?" - -#: faq/library.rst:505 -msgid "" -"To read or write complex binary data formats, it's best to use " -"the :mod:`struct` module. It allows you to take a string containing binary " -"data (usually numbers) and convert it to Python objects; and vice versa." -msgstr "" -"Pour lire ou écrire des formats de données complexes en binaire, il est " -"recommandé d'utiliser le module :mod:`struct`. Celui-ci permet de convertir " -"une chaîne de caractères qui contient des données binaires, souvent des " -"nombres, en objets Python, et vice-versa." - -#: faq/library.rst:509 -msgid "" -"For example, the following code reads two 2-byte integers and one 4-byte " -"integer in big-endian format from a file::" -msgstr "" -"Par exemple, le code suivant lit, depuis un fichier, deux entiers codés sur " -"2 octets et un entier codé sur 4 octets, en format gros-boutiste ::" - -#: faq/library.rst:518 -msgid "" -"The '>' in the format string forces big-endian data; the letter 'h' reads " -"one \"short integer\" (2 bytes), and 'l' reads one \"long integer\" (4 " -"bytes) from the string." -msgstr "" -"« > » dans la chaîne de formatage indique que la donnée doit être lue en " -"mode gros-boutiste, la lettre « h » indique un entier court (2 octets) et la " -"lettre « l » indique un entier long (4 octets)." - -#: faq/library.rst:522 -msgid "" -"For data that is more regular (e.g. a homogeneous list of ints or floats), " -"you can also use the :mod:`array` module." -msgstr "" -"Pour une donnée plus régulière (p. ex. une liste homogène d'entiers ou de " -"nombres à virgule flottante), il est possible d'utiliser le " -"module :mod:`array`." - -#: faq/library.rst:527 -msgid "" -"To read and write binary data, it is mandatory to open the file in binary " -"mode (here, passing ``\"rb\"`` to :func:`open`). If you use ``\"r\"`` " -"instead (the default), the file will be open in text mode and ``f.read()`` " -"will return :class:`str` objects rather than :class:`bytes` objects." -msgstr "" -"Pour lire et écrire de la donnée binaire, il est obligatoire d'ouvrir le " -"fichier en mode binaire également (ici, en passant ``\"rb\"`` " -"à :func:`open`). En utilisant ``\"r\"`` (valeur par défaut), le fichier est " -"ouvert en mode textuel et ``f.read()`` renvoie des objets :class:`str` au " -"lieu d'objets :class:`bytes`." - -#: faq/library.rst:535 -msgid "I can't seem to use os.read() on a pipe created with os.popen(); why?" -msgstr "" -"Il me semble impossible d'utiliser ``os.read()`` sur un tube créé avec " -"``os.popen()`` ; pourquoi ?" - -#: faq/library.rst:537 -msgid "" -":func:`os.read` is a low-level function which takes a file descriptor, a " -"small integer representing the opened file. :func:`os.popen` creates a high-" -"level file object, the same type returned by the built-in :func:`open` " -"function. Thus, to read *n* bytes from a pipe *p* created " -"with :func:`os.popen`, you need to use ``p.read(n)``." -msgstr "" -":func:`os.read` est une fonction de bas niveau qui prend en paramètre un " -"descripteur de fichier — un entier court qui représente le fichier " -"ouvert. :func:`os.popen` crée un objet fichier de haut niveau, du même type " -"que celui renvoyé par la fonction native :func:`open`. Par conséquent, pour " -"lire *n* octets d'un tube *p* créé avec :func:`os.popen`, il faut utiliser " -"``p.read(n)``." - -#: faq/library.rst:545 -msgid "How do I access the serial (RS232) port?" -msgstr "Comment accéder au port de transmission en série (RS-232) ?" - -#: faq/library.rst:547 -msgid "For Win32, OSX, Linux, BSD, Jython, IronPython:" -msgstr "Pour Win32, OSX, Linux, BSD, Jython et IronPython :" - -#: faq/library.rst:549 -msgid ":pypi:`pyserial`" -msgstr "" - -#: faq/library.rst:551 -msgid "For Unix, see a Usenet post by Mitch Chapman:" -msgstr "" -"Pour Unix, référez-vous à une publication sur Usenet de Mitch Chapman :" - -#: faq/library.rst:553 -msgid "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" -msgstr "https://groups.google.com/groups?selm=34A04430.CF9@ohioee.com" - -#: faq/library.rst:557 -msgid "Why doesn't closing sys.stdout (stdin, stderr) really close it?" -msgstr "" -"Pourquoi fermer *sys.stdout*, *sys.stdin*, *sys.stderr* ne les ferme pas " -"réellement ?" - -#: faq/library.rst:559 -msgid "" -"Python :term:`file objects ` are a high-level layer of " -"abstraction on low-level C file descriptors." -msgstr "" -"Les :term:`objets fichiers ` en Python sont des abstractions de " -"haut niveau sur les descripteurs de fichier C de bas niveau." - -#: faq/library.rst:562 -msgid "" -"For most file objects you create in Python via the built-in :func:`open` " -"function, ``f.close()`` marks the Python file object as being closed from " -"Python's point of view, and also arranges to close the underlying C file " -"descriptor. This also happens automatically in ``f``'s destructor, when " -"``f`` becomes garbage." -msgstr "" -"Pour la plupart des objets fichiers créés en Python avec la fonction " -"native :func:`open`, ``f.close()`` marque le fichier comme fermé du point de " -"vue de Python et ferme aussi le descripteur C sous-jacent. Le même mécanisme " -"est enclenché automatiquement dans le destructeur de ``f``, lorsque ``f`` " -"est recyclé." - -#: faq/library.rst:568 -msgid "" -"But stdin, stdout and stderr are treated specially by Python, because of the " -"special status also given to them by C. Running ``sys.stdout.close()`` " -"marks the Python-level file object as being closed, but does *not* close the " -"associated C file descriptor." -msgstr "" -"Mais *stdin*, *stdout* et *stderr* ont droit à un traitement spécial en " -"Python, car leur statut en C est lui aussi spécial. Exécuter " -"``sys.stdout.close()`` marque l'objet fichier comme fermé du point de vue de " -"Python, mais le descripteur de fichier C associé n'est *pas* fermé." - -#: faq/library.rst:573 -msgid "" -"To close the underlying C file descriptor for one of these three, you should " -"first be sure that's what you really want to do (e.g., you may confuse " -"extension modules trying to do I/O). If it is, use :func:`os.close`::" -msgstr "" -"Pour fermer le descripteur de fichier sous-jacent C de l'une de ces trois " -"sorties, demandez-vous avant tout si vous êtes sûr de vous (cela peut, par " -"exemple, perturber le bon fonctionnement de modules qui font des opérations " -"d'entrée-sortie). Si c'est le cas, utilisez :func:`os.close` ::" - -#: faq/library.rst:581 -msgid "Or you can use the numeric constants 0, 1 and 2, respectively." -msgstr "" -"Il est aussi possible de fermer respectivement les constantes numériques 0, " -"1 ou 2." - -#: faq/library.rst:585 -msgid "Network/Internet Programming" -msgstr "Programmation réseau et Internet" - -#: faq/library.rst:588 -msgid "What WWW tools are there for Python?" -msgstr "Quels sont les outils Python dédiés à au web ?" - -#: faq/library.rst:590 -msgid "" -"See the chapters titled :ref:`internet` and :ref:`netdata` in the Library " -"Reference Manual. Python has many modules that will help you build server-" -"side and client-side web systems." -msgstr "" -"Référez-vous aux chapitres intitulés :ref:`internet` et :ref:`netdata` dans " -"le manuel de référence de la bibliothèque. Python a de nombreux modules pour " -"construire des applications web côté client comme côté serveur." - -#: faq/library.rst:596 -msgid "" -"A summary of available frameworks is maintained by Paul Boddie at https://" -"wiki.python.org/moin/WebProgramming\\ ." -msgstr "" -"Un résumé des cadriciels disponibles est maintenu par Paul Boddie à " -"l'adresse https://wiki.python.org/moin/WebProgramming\\ ." - -#: faq/library.rst:601 -msgid "What module should I use to help with generating HTML?" -msgstr "Quel module utiliser pour générer du HTML ?" - -#: faq/library.rst:605 -msgid "" -"You can find a collection of useful links on the `Web Programming wiki page " -"`_." -msgstr "" -"La `page wiki de la programmation web `_ (en anglais) répertorie un ensemble de liens pertinents." - -#: faq/library.rst:610 -msgid "How do I send mail from a Python script?" -msgstr "Comment envoyer un courriel avec un script Python ?" - -#: faq/library.rst:612 -msgid "Use the standard library module :mod:`smtplib`." -msgstr "Utilisez le module :mod:`smtplib` de la bibliothèque standard." - -#: faq/library.rst:614 -msgid "" -"Here's a very simple interactive mail sender that uses it. This method will " -"work on any host that supports an SMTP listener. ::" -msgstr "" -"Voici un exemple très simple d'un envoyeur de courriel qui l'utilise. Cette " -"méthode fonctionne sur tous les serveurs qui implémentent SMTP. ::" - -#: faq/library.rst:634 -msgid "" -"A Unix-only alternative uses sendmail. The location of the sendmail program " -"varies between systems; sometimes it is ``/usr/lib/sendmail``, sometimes ``/" -"usr/sbin/sendmail``. The sendmail manual page will help you out. Here's " -"some sample code::" -msgstr "" -"Sous Unix, il est possible d'utiliser *sendmail*. La localisation de " -"l'exécutable *sendmail* dépend du système ; cela peut-être ``/usr/lib/" -"sendmail`` ou ``/usr/sbin/sendmail``, la page de manuel de *sendmail* peut " -"vous aider. Par exemple ::" - -#: faq/library.rst:654 -msgid "How do I avoid blocking in the connect() method of a socket?" -msgstr "" -"Comment éviter de bloquer dans la méthode ``connect()`` d'un connecteur " -"réseau ?" - -#: faq/library.rst:656 -msgid "" -"The :mod:`select` module is commonly used to help with asynchronous I/O on " -"sockets." -msgstr "" -"Le module :mod:`select` est fréquemment utilisé pour effectuer des entrées-" -"sorties asynchrones sur des connecteurs réseaux." - -#: faq/library.rst:659 -#, fuzzy -msgid "" -"To prevent the TCP connect from blocking, you can set the socket to non-" -"blocking mode. Then when you do the :meth:`~socket.socket.connect`, you " -"will either connect immediately (unlikely) or get an exception that contains " -"the error number as ``.errno``. ``errno.EINPROGRESS`` indicates that the " -"connection is in progress, but hasn't finished yet. Different OSes will " -"return different values, so you're going to have to check what's returned on " -"your system." -msgstr "" -"Pour empêcher une connexion TCP de se bloquer, il est possible de mettre le " -"connecteur en mode lecture seule. Avec cela, au moment " -"du :meth:`socket.connect`, la connexion pourra être immédiate (peu probable) " -"ou bien vous obtiendrez une exception qui contient le numéro d'erreur dans " -"``.errno``. ``errno.EINPROGRESS`` indique que la connexion est en cours, " -"mais qu'elle n'a pas encore aboutie. La valeur dépend du système " -"d'exploitation, donc renseignez-vous sur la valeur utilisée par votre " -"système." - -#: faq/library.rst:667 -#, fuzzy -msgid "" -"You can use the :meth:`~socket.socket.connect_ex` method to avoid creating " -"an exception. It will just return the errno value. To poll, you can " -"call :meth:`~socket.socket.connect_ex` again later -- ``0`` or " -"``errno.EISCONN`` indicate that you're connected -- or you can pass this " -"socket to :meth:`select.select` to check if it's writable." -msgstr "" -":meth:`socket.connect_ex` permet d'éviter la création de l'exception, et de " -"ne renvoyer que la valeur de *errno*. Pour vérifier l'état de la connexion, " -"utilisez encore une fois :meth:`socket.connect_ex` — ``0`` ou " -"``errno.EISCONN`` indiquent que la connexion est active — ou passez le " -"connecteur en argument de :meth:`select.select` pour vérifier si le " -"connecteur est prêt à recevoir des entrées." - -#: faq/library.rst:675 -#, fuzzy -msgid "" -"The :mod:`asyncio` module provides a general purpose single-threaded and " -"concurrent asynchronous library, which can be used for writing non-blocking " -"network code. The third-party `Twisted `_ library is a " -"popular and feature-rich alternative." -msgstr "" -"Le module :mod:`asyncore` propose une approche générique mono-processus " -"asynchrone pour écrire du code réseau non-bloquant. La bibliothèque tierce " -"`Twisted `_ en est une alternative " -"plébiscitée, avec un grand nombre de fonctionnalités." - -#: faq/library.rst:683 -msgid "Databases" -msgstr "Bases de données" - -#: faq/library.rst:686 -msgid "Are there any interfaces to database packages in Python?" -msgstr "" -"Existe-t-il des modules Python pour s'interfacer avec des bases de données ?" - -#: faq/library.rst:688 -msgid "Yes." -msgstr "Oui." - -#: faq/library.rst:690 -msgid "" -"Interfaces to disk-based hashes such as :mod:`DBM ` and :mod:`GDBM " -"` are also included with standard Python. There is also " -"the :mod:`sqlite3` module, which provides a lightweight disk-based " -"relational database." -msgstr "" -"La distribution standard de Python fournit aussi des interfaces à des bases " -"de données comme :mod:`DBM ` ou :mod:`GDBM `. Il existe " -"aussi le module :mod:`sqlite3` qui implémente une base de données " -"relationnelle légère sur disque." - -#: faq/library.rst:695 -msgid "" -"Support for most relational databases is available. See the " -"`DatabaseProgramming wiki page `_ for details." -msgstr "" -"La gestion de la plupart des bases de données relationnelles est assurée. " -"Voir la page wiki `DatabaseProgramming `_ pour plus de détails." - -#: faq/library.rst:701 -msgid "How do you implement persistent objects in Python?" -msgstr "Comment implémenter la persistance d'objets en Python ?" - -#: faq/library.rst:703 -msgid "" -"The :mod:`pickle` library module solves this in a very general way (though " -"you still can't store things like open files, sockets or windows), and " -"the :mod:`shelve` library module uses pickle and (g)dbm to create persistent " -"mappings containing arbitrary Python objects." -msgstr "" -"Le module :mod:`pickle` répond à cela de manière large (bien qu'il ne soit " -"pas possible de stocker des fichiers ouverts, des connecteurs ou des " -"fenêtres par exemple), et le module :mod:`shelve` de la bibliothèque utilise " -"*pickle* et *(g)dbm* pour créer des liens persistants vers des objets Python." - -#: faq/library.rst:710 -msgid "Mathematics and Numerics" -msgstr "Mathématiques et calcul numérique" - -#: faq/library.rst:713 -msgid "How do I generate random numbers in Python?" -msgstr "Comment générer des nombres aléatoires en Python ?" - -#: faq/library.rst:715 -msgid "" -"The standard module :mod:`random` implements a random number generator. " -"Usage is simple::" -msgstr "" -"Le module :mod:`random` de la bibliothèque standard comprend un générateur " -"de nombres aléatoires. Son utilisation est simple ::" - -#: faq/library.rst:721 -#, fuzzy -msgid "This returns a random floating-point number in the range [0, 1)." -msgstr "" -"Le code précédent renvoie un nombre à virgule flottante aléatoire dans " -"l'intervalle [0, 1[." - -#: faq/library.rst:723 -msgid "" -"There are also many other specialized generators in this module, such as:" -msgstr "Ce module fournit beaucoup d'autres générateurs spécialisés comme :" - -#: faq/library.rst:725 -msgid "``randrange(a, b)`` chooses an integer in the range [a, b)." -msgstr "``randrange(a, b)`` génère un entier dans l'intervalle [a, b[." - -#: faq/library.rst:726 -#, fuzzy -msgid "``uniform(a, b)`` chooses a floating-point number in the range [a, b)." -msgstr "" -"``uniform(a, b)`` génère un nombre à virgule flottante aléatoire dans " -"l'intervalle [a, b[." - -#: faq/library.rst:727 -msgid "" -"``normalvariate(mean, sdev)`` samples the normal (Gaussian) distribution." -msgstr "``normalvariate(mean, sdev)`` simule la loi normale (Gaussienne)." - -#: faq/library.rst:729 -msgid "Some higher-level functions operate on sequences directly, such as:" -msgstr "" -"Des fonctions de haut niveau opèrent directement sur des séquences comme :" - -#: faq/library.rst:731 -msgid "``choice(S)`` chooses a random element from a given sequence." -msgstr "``choice(S)`` sélectionne au hasard un élément d'une séquence donnée." - -#: faq/library.rst:732 -msgid "``shuffle(L)`` shuffles a list in-place, i.e. permutes it randomly." -msgstr "" -"``shuffle(L)`` mélange une liste en-place, c.-à-d. lui applique une " -"permutation aléatoire." - -#: faq/library.rst:734 -msgid "" -"There's also a ``Random`` class you can instantiate to create independent " -"multiple random number generators." -msgstr "" -"Il existe aussi une classe ``Random`` qu'il est possible d'instancier pour " -"créer des générateurs aléatoires indépendants." - -#~ msgid "" -#~ "It has been suggested that the GIL should be a per-interpreter-state lock " -#~ "rather than truly global; interpreters then wouldn't be able to share " -#~ "objects. Unfortunately, this isn't likely to happen either. It would be " -#~ "a tremendous amount of work, because many object implementations " -#~ "currently have global state. For example, small integers and short " -#~ "strings are cached; these caches would have to be moved to the " -#~ "interpreter state. Other object types have their own free list; these " -#~ "free lists would have to be moved to the interpreter state. And so on." -#~ msgstr "" -#~ "On a déjà proposé de restreindre le GIL par interpréteur, et non plus " -#~ "d'être complètement global ; les interpréteurs ne seraient plus en mesure " -#~ "de partager des objets. Malheureusement, cela n'a pas beaucoup de chance " -#~ "non plus d'arriver. Cela nécessiterait un travail considérable, car la " -#~ "façon dont beaucoup d'objets sont implémentés rend leur état global. Par " -#~ "exemple, les entiers et les chaînes de caractères courts sont mis en " -#~ "cache ; ces caches devraient être déplacés au niveau de l'interpréteur. " -#~ "D'autres objets ont leur propre liste de suppression, ces listes " -#~ "devraient être déplacées au niveau de l'interpréteur et ainsi de suite." - -#~ msgid "" -#~ "And I doubt that it can even be done in finite time, because the same " -#~ "problem exists for 3rd party extensions. It is likely that 3rd party " -#~ "extensions are being written at a faster rate than you can convert them " -#~ "to store all their global state in the interpreter state." -#~ msgstr "" -#~ "C'est une tâche sans fin, car les extensions tierces ont le même " -#~ "problème, et il est probable que les extensions tierces soient " -#~ "développées plus vite qu'il ne soit possible de les corriger pour les " -#~ "faire stocker leur état au niveau de l'interpréteur et non plus au niveau " -#~ "global." - -#~ msgid "" -#~ "And finally, once you have multiple interpreters not sharing any state, " -#~ "what have you gained over running each interpreter in a separate process?" -#~ msgstr "" -#~ "Et enfin, quel intérêt y a-t-il à avoir plusieurs interpréteurs qui ne " -#~ "partagent pas d'état, par rapport à faire tourner chaque interpréteur " -#~ "dans un processus différent ?" - -#~ msgid "" -#~ "Cameron Laird maintains a useful set of pages about Python web " -#~ "technologies at https://web.archive.org/web/20210224183619/http://" -#~ "phaseit.net/claird/comp.lang.python/web_python." -#~ msgstr "" -#~ "Cameron Laird maintient un ensemble intéressant d'articles sur les " -#~ "technologies Python dédiées au web à l'adresse https://web.archive.org/" -#~ "web/20210224183619/http://phaseit.net/claird/comp.lang.python/web_python." - -#~ msgid "How can I mimic CGI form submission (METHOD=POST)?" -#~ msgstr "Comment reproduire un envoi de formulaire CGI (``METHOD=POST``) ?" - -#~ msgid "" -#~ "I would like to retrieve web pages that are the result of POSTing a form. " -#~ "Is there existing code that would let me do this easily?" -#~ msgstr "" -#~ "J'aimerais récupérer la page web d'un envoi de formulaire via POST. " -#~ "Existe-t-il déjà du code qui pourrait m'aider à le faire facilement ?" - -#~ msgid "Yes. Here's a simple example that uses :mod:`urllib.request`::" -#~ msgstr "" -#~ "Oui. Voici un exemple simple d'utilisation de :mod:`urllib.request` ::" - -#~ msgid "" -#~ "Note that in general for percent-encoded POST operations, query strings " -#~ "must be quoted using :func:`urllib.parse.urlencode`. For example, to " -#~ "send ``name=Guy Steele, Jr.``::" -#~ msgstr "" -#~ "Remarquez qu'en général, la chaîne de caractères d'une requête POST " -#~ "encodée avec des signes « % » doit être mise entre guillemets à l'aide " -#~ "de :func:`urllib.parse.urlencode`. Par exemple pour envoyer ``name=Guy " -#~ "Steele, Jr.`` ::" - -#~ msgid ":ref:`urllib-howto` for extensive examples." -#~ msgstr ":ref:`urllib-howto` pour des exemples complets." - -#~ msgid "https://pypi.org/project/pyserial/" -#~ msgstr "https://pypi.org/project/pyserial/" - -#~ msgid "" -#~ "The :mod:`shutil` module contains a :func:`~shutil.copyfile` function. " -#~ "Note that on MacOS 9 it doesn't copy the resource fork and Finder info." -#~ msgstr "" -#~ "Le module :mod:`shutil` fournit la fonction :func:`~shutil.copyfile`. " -#~ "Sous MacOS 9, celle-ci ne copie pas le clonage de ressources ni les " -#~ "informations du chercheur." - -#~ msgid "" -#~ "For Windows: use `the consolelib module `_." -#~ msgstr "" -#~ "Pour Windows : utilisez le module `consolelib `_." - -#~ msgid "" -#~ "Aahz has a set of slides from his threading tutorial that are helpful; " -#~ "see http://www.pythoncraft.com/OSCON2001/." -#~ msgstr "" -#~ "Un ensemble de diapositives issues du didacticiel de Aahz sur les fils " -#~ "d'exécution est disponible à http://www.pythoncraft.com/OSCON2001/." - -#~ msgid "http://pyserial.sourceforge.net" -#~ msgstr "http://pyserial.sourceforge.net" diff --git a/faq/programming.po b/faq/programming.po deleted file mode 100644 index 526fd321ce..0000000000 --- a/faq/programming.po +++ /dev/null @@ -1,3537 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-07-08 12:37+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: faq/programming.rst:5 -msgid "Programming FAQ" -msgstr "FAQ de programmation" - -#: faq/programming.rst:8 -msgid "Contents" -msgstr "Sommaire" - -#: faq/programming.rst:12 -#, fuzzy -msgid "General questions" -msgstr "Questions générales" - -#: faq/programming.rst:15 -#, fuzzy -msgid "" -"Is there a source code-level debugger with breakpoints and single-stepping?" -msgstr "" -"Existe-t-il un débogueur de code source avec points d'arrêts, exécution pas-" -"à-pas, etc. ?" - -#: faq/programming.rst:56 -msgid "Yes." -msgstr "Oui." - -#: faq/programming.rst:19 -msgid "" -"Several debuggers for Python are described below, and the built-in " -"function :func:`breakpoint` allows you to drop into any of them." -msgstr "" -"Plusieurs débogueurs sont décrits ci-dessous et la fonction " -"native :func:`breakpoint` permet d'utiliser n'importe lequel d'entre eux." - -#: faq/programming.rst:22 -msgid "" -"The pdb module is a simple but adequate console-mode debugger for Python. It " -"is part of the standard Python library, and is :mod:`documented in the " -"Library Reference Manual `. You can also write your own debugger by " -"using the code for pdb as an example." -msgstr "" -"Le module ``pdb`` est un débogueur console simple, mais parfaitement adapté " -"à Python. Il fait partie de la bibliothèque standard de Python, sa " -"documentation se trouve dans le :mod:`manuel de référence `. Vous " -"pouvez vous inspirer du code de ``pdb`` pour écrire votre propre débogueur." - -#: faq/programming.rst:27 -#, fuzzy -msgid "" -"The IDLE interactive development environment, which is part of the standard " -"Python distribution (normally available as :mod:`idlelib`), includes a " -"graphical debugger." -msgstr "" -"L'environnement de développement interactif IDLE, qui est fourni avec la " -"distribution standard de Python (normalement disponible dans `Tools/scripts/" -"idle3 `_) " -"contient un débogueur graphique." - -#: faq/programming.rst:31 -msgid "" -"PythonWin is a Python IDE that includes a GUI debugger based on pdb. The " -"PythonWin debugger colors breakpoints and has quite a few cool features such " -"as debugging non-PythonWin programs. PythonWin is available as part of " -"`pywin32 `_ project and as a part of " -"the `ActivePython `_ " -"distribution." -msgstr "" -"*PythonWin* est un environnement de développement intégré (EDI) Python qui " -"embarque un débogueur graphique basé sur ``pdb``. Le débogueur *PythonWin* " -"colore les points d'arrêts et possède quelques fonctionnalités sympathiques, " -"comme la possibilité de déboguer des programmes développés sans " -"*PythonWin*. *PythonWin* est disponible dans le projet `pywin32 `_ et fait partie de la distribution " -"`ActivePython `_." - -#: faq/programming.rst:38 -msgid "" -"`Eric `_ is an IDE built on PyQt and " -"the Scintilla editing component." -msgstr "" -"`Eric `_ est un EDI basé sur PyQt et " -"l'outil d'édition Scintilla." - -#: faq/programming.rst:41 -msgid "" -"`trepan3k `_ is a gdb-like " -"debugger." -msgstr "" -"`trepan3k `_ est un débogueur " -"semblable à GDB." - -#: faq/programming.rst:43 -msgid "" -"`Visual Studio Code `_ is an IDE with " -"debugging tools that integrates with version-control software." -msgstr "" -"`Visual Studio Code `_ est un EDI qui " -"contient des outils de débogage. Il sait interagir avec les outils de " -"gestion de versions." - -#: faq/programming.rst:46 -msgid "" -"There are a number of commercial Python IDEs that include graphical " -"debuggers. They include:" -msgstr "" -"Il existe de nombreux EDI Python propriétaires qui embarquent un débogueur " -"graphique, notamment :" - -#: faq/programming.rst:49 -msgid "`Wing IDE `_" -msgstr "`Wing IDE `_ ;" - -#: faq/programming.rst:50 -msgid "`PyCharm `_" -msgstr "`PyCharm `_ ;" - -#: faq/programming.rst:54 -msgid "Are there tools to help find bugs or perform static analysis?" -msgstr "" -"Existe-t-il des outils pour aider à trouver des bogues ou faire de l'analyse " -"statique de code ?" - -#: faq/programming.rst:58 -#, fuzzy -msgid "" -"`Ruff `__, `Pylint `__ and `Pyflakes `__ do basic checking that will help you catch bugs sooner." -msgstr "" -"`Pylint `_ et `Pyflakes " -"`_ font des vérifications de base et vous " -"aideront à trouver des bogues plus tôt." - -#: faq/programming.rst:63 -#, fuzzy -msgid "" -"Static type checkers such as `mypy `__, `ty `__, `Pyrefly `__, and `pytype " -"`__ can check type hints in Python source " -"code." -msgstr "" -"Les vérificateurs statiques de typage comme `Mypy `_, " -"`Pyre `_, et `Pytype `_ peuvent vérifier les indications de type dans du code source " -"Python." - -#: faq/programming.rst:73 -msgid "How can I create a stand-alone binary from a Python script?" -msgstr "Comment créer un binaire autonome à partir d'un script Python ?" - -#: faq/programming.rst:75 -msgid "" -"You don't need the ability to compile Python to C code if all you want is a " -"stand-alone program that users can download and run without having to " -"install the Python distribution first. There are a number of tools that " -"determine the set of modules required by a program and bind these modules " -"together with a Python binary to produce a single executable." -msgstr "" -"Pour créer un programme autonome, c'est-à-dire un programme que n'importe " -"qui peut télécharger et exécuter sans avoir à installer une distribution " -"Python au préalable, il n'est pas nécessaire de compiler du code Python en " -"code C. Il existe en effet plusieurs outils qui déterminent les modules " -"requis par un programme et lient ces modules avec un binaire Python pour " -"produire un seul exécutable." - -#: faq/programming.rst:81 -#, fuzzy -msgid "" -"One is to use the freeze tool, which is included in the Python source tree " -"as :source:`Tools/freeze`. It converts Python byte code to C arrays; with a " -"C compiler you can embed all your modules into a new program, which is then " -"linked with the standard Python modules." -msgstr "" -"Un de ces outils est *freeze*, qui se trouve dans `Tools/freeze `_ de l'arborescence des " -"sources de Python. Il convertit le code intermédiaire (*bytecode*) Python en " -"tableaux C ; avec un compilateur C, vous pouvez intégrer tous vos modules " -"dans un nouveau programme, qui est ensuite lié aux modules standards Python." - -#: faq/programming.rst:87 -msgid "" -"It works by scanning your source recursively for import statements (in both " -"forms) and looking for the modules in the standard Python path as well as in " -"the source directory (for built-in modules). It then turns the bytecode for " -"modules written in Python into C code (array initializers that can be turned " -"into code objects using the marshal module) and creates a custom-made config " -"file that only contains those built-in modules which are actually used in " -"the program. It then compiles the generated C code and links it with the " -"rest of the Python interpreter to form a self-contained binary which acts " -"exactly like your script." -msgstr "" -"Il fonctionne en cherchant de manière récursive les instructions " -"d'importation (sous les deux formes) dans le code source et en recherchant " -"ces modules dans le chemin Python standard ainsi que dans le répertoire " -"source (pour les modules natifs). Il transforme ensuite le code " -"intermédiaire des modules écrits en Python en code C (des tableaux pré-" -"remplis qui peuvent être transformés en objets code à l'aide du module " -"*marshal*) et crée un fichier de configuration personnalisé qui contient " -"uniquement les modules natifs qui sont réellement utilisés dans le " -"programme. Il compile ensuite le code C généré et le lie au reste de " -"l'interpréteur Python pour former un binaire autonome qui fait exactement la " -"même chose que le script." - -#: faq/programming.rst:96 -msgid "" -"The following packages can help with the creation of console and GUI " -"executables:" -msgstr "" -"Voici quelques paquets qui permettent de créer des exécutables en ligne de " -"commande comme graphiques :" - -#: faq/programming.rst:99 -msgid "`Nuitka `_ (Cross-platform)" -msgstr "`Nuitka `_ (multiplateformes) ;" - -#: faq/programming.rst:100 -#, fuzzy -msgid "`PyInstaller `_ (Cross-platform)" -msgstr "`PyInstaller `_ (multiplateformes) ;" - -#: faq/programming.rst:101 -msgid "" -"`PyOxidizer `_ (Cross-platform)" -msgstr "" -"`PyOxidizer `_ (multi-" -"plateforme) ;" - -#: faq/programming.rst:102 -msgid "" -"`cx_Freeze `_ (Cross-platform)" -msgstr "" -"`cx_Freeze `_ (multi-" -"plateforme) ;" - -#: faq/programming.rst:103 -msgid "`py2app `_ (macOS only)" -msgstr "" -"`py2app `_ (uniquement pour " -"macOS) ;" - -#: faq/programming.rst:104 -msgid "`py2exe `_ (Windows only)" -msgstr "`py2exe `_ (uniquement pour Windows)." - -#: faq/programming.rst:108 -msgid "Are there coding standards or a style guide for Python programs?" -msgstr "" -"Existe-t-il des normes de développement ou un guide de style pour écrire des " -"programmes Python ?" - -#: faq/programming.rst:110 -msgid "" -"Yes. The coding style required for standard library modules is documented " -"as :pep:`8`." -msgstr "" -"Oui. Le style de développement que les modules de la bibliothèque standard " -"doivent obligatoirement respecter est documenté dans la :pep:`8`." - -#: faq/programming.rst:115 -#, fuzzy -msgid "Core language" -msgstr "Fondamentaux" - -#: faq/programming.rst:120 -msgid "Why am I getting an UnboundLocalError when the variable has a value?" -msgstr "" -"Pourquoi une UnboundLocalError est levée alors qu'une variable a une valeur ?" - -#: faq/programming.rst:122 -msgid "" -"It can be a surprise to get the :exc:`UnboundLocalError` in previously " -"working code when it is modified by adding an assignment statement somewhere " -"in the body of a function." -msgstr "" -"Il est parfois surprenant d'obtenir une :exc:`UnboundLocalError` dans du " -"code jusqu'à présent correct, quand celui-ci est modifié en ajoutant une " -"instruction d'affectation quelque part dans le corps d'une fonction." - -#: faq/programming.rst:126 -msgid "This code:" -msgstr "Le code suivant :" - -#: faq/programming.rst:135 -msgid "works, but this code:" -msgstr "fonctionne, mais le suivant :" - -#: faq/programming.rst:142 -#, fuzzy -msgid "results in an :exc:`!UnboundLocalError`:" -msgstr "lève une UnboundLocalError :" - -#: faq/programming.rst:149 -msgid "" -"This is because when you make an assignment to a variable in a scope, that " -"variable becomes local to that scope and shadows any similarly named " -"variable in the outer scope. Since the last statement in foo assigns a new " -"value to ``x``, the compiler recognizes it as a local variable. " -"Consequently when the earlier ``print(x)`` attempts to print the " -"uninitialized local variable and an error results." -msgstr "" -"Cela est dû au fait que, quand une variable est affectée dans un contexte, " -"cette variable devient locale à ce contexte et remplace toute variable du " -"même nom du contexte appelant. Vu que la dernière instruction dans *foo* " -"affecte une nouvelle valeur à ``x``, le compilateur la traite comme une " -"nouvelle variable. Par conséquent, quand le ``print(x)`` essaye d'afficher " -"la variable non initialisée, une erreur se produit." - -#: faq/programming.rst:156 -msgid "" -"In the example above you can access the outer scope variable by declaring it " -"global:" -msgstr "" -"Dans l'exemple ci-dessus, la variable du contexte appelant reste accessible " -"en la déclarant globale :" - -#: faq/programming.rst:168 -msgid "" -"This explicit declaration is required in order to remind you that (unlike " -"the superficially analogous situation with class and instance variables) you " -"are actually modifying the value of the variable in the outer scope:" -msgstr "" -"Cette déclaration explicite est obligatoire pour se rappeler que " -"(contrairement au cas à peu près similaire avec des variables de classe et " -"d'instance), c'est la valeur de la variable du contexte appelant qui est " -"modifiée :" - -#: faq/programming.rst:175 -msgid "" -"You can do a similar thing in a nested scope using the :keyword:`nonlocal` " -"keyword:" -msgstr "" -"Une alternative dans un contexte imbriqué consiste à utiliser le mot-" -"clé :keyword:`nonlocal` :" - -#: faq/programming.rst:193 -msgid "What are the rules for local and global variables in Python?" -msgstr "" -"Quelles sont les règles pour les variables locales et globales en Python ?" - -#: faq/programming.rst:195 -msgid "" -"In Python, variables that are only referenced inside a function are " -"implicitly global. If a variable is assigned a value anywhere within the " -"function's body, it's assumed to be a local unless explicitly declared as " -"global." -msgstr "" -"En Python, si une variable n'est pas modifiée dans une fonction mais " -"seulement lue, elle est implicitement considérée comme globale. Si une " -"valeur lui est affectée, elle est considérée locale (sauf si elle est " -"explicitement déclarée globale)." - -#: faq/programming.rst:199 -msgid "" -"Though a bit surprising at first, a moment's consideration explains this. " -"On one hand, requiring :keyword:`global` for assigned variables provides a " -"bar against unintended side-effects. On the other hand, if ``global`` was " -"required for all global references, you'd be using ``global`` all the time. " -"You'd have to declare as global every reference to a built-in function or to " -"a component of an imported module. This clutter would defeat the usefulness " -"of the ``global`` declaration for identifying side-effects." -msgstr "" -"Bien que surprenant au premier abord, ce choix s'explique facilement. D'une " -"part, exiger :keyword:`global` pour des variables affectées est une " -"protection contre des effets de bord inattendus. D'autre part, si ``global`` " -"était obligatoire pour toutes les références à des objets globaux, il " -"faudrait mettre ``global`` partout, car il faudrait dans ce cas déclarer " -"globale chaque référence à une fonction native ou à un composant d'un module " -"importé. Le codé serait alors truffé de déclarations ``global``, ce qui " -"nuirait à leur raison d'être : identifier les effets de bords." - -#: faq/programming.rst:209 -msgid "" -"Why do lambdas defined in a loop with different values all return the same " -"result?" -msgstr "" -"Pourquoi des expressions lambda définies dans une boucle avec des valeurs " -"différentes retournent-elles le même résultat ?" - -#: faq/programming.rst:211 -#, fuzzy -msgid "" -"Assume you use a for loop to define a few different lambdas (or even plain " -"functions), for example::" -msgstr "" -"Supposons que l'on utilise une boucle itérative pour définir des expressions " -"lambda (voire des fonctions) différentes, par exemple ::" - -#: faq/programming.rst:218 -msgid "" -"This gives you a list that contains 5 lambdas that calculate ``x**2``. You " -"might expect that, when called, they would return, respectively, ``0``, " -"``1``, ``4``, ``9``, and ``16``. However, when you actually try you will " -"see that they all return ``16``::" -msgstr "" -"Le code précédent crée une liste de 5 expressions lambda qui calculent " -"chacune ``x**2``. En les exécutant, on pourrait s'attendre à obtenir ``0``, " -"``1``, ``4``, ``9`` et ``16``. Elles renvoient en réalité toutes ``16`` ::" - -#: faq/programming.rst:228 -#, fuzzy -msgid "" -"This happens because ``x`` is not local to the lambdas, but is defined in " -"the outer scope, and it is accessed when the lambda is called --- not when " -"it is defined. At the end of the loop, the value of ``x`` is ``4``, so all " -"the functions now return ``4**2``, that is ``16``. You can also verify this " -"by changing the value of ``x`` and see how the results of the lambdas " -"change::" -msgstr "" -"Ceci s'explique par le fait que ``x`` n'est pas une variable locale aux " -"expressions, mais est définie dans le contexte appelant. Elle est lue à " -"l'appel de l'expression lambda – et non au moment où cette expression est " -"définie. À la fin de la boucle, ``x`` vaut ``4``, donc toutes les fonctions " -"renvoient ``4*2``, c.-à-d. ``16``. Ceci se vérifie également en changeant la " -"valeur de ``x`` et en constatant que les résultats sont modifiés ::" - -#: faq/programming.rst:238 -msgid "" -"In order to avoid this, you need to save the values in variables local to " -"the lambdas, so that they don't rely on the value of the global ``x``::" -msgstr "" -"Pour éviter ce phénomène, les valeurs doivent être stockées dans des " -"variables locales aux expressions lambda pour que celles-ci ne se basent " -"plus sur la variable globale ``x`` ::" - -#: faq/programming.rst:245 -msgid "" -"Here, ``n=x`` creates a new variable ``n`` local to the lambda and computed " -"when the lambda is defined so that it has the same value that ``x`` had at " -"that point in the loop. This means that the value of ``n`` will be ``0`` in " -"the first lambda, ``1`` in the second, ``2`` in the third, and so on. " -"Therefore each lambda will now return the correct result::" -msgstr "" -"Dans ce code, ``n=x`` crée une nouvelle variable ``n``, locale à " -"l'expression. Cette variable est évaluée quand l'expression est définie donc " -"``n`` a la même valeur que ``x`` à ce moment. La valeur de ``n`` est donc " -"``0`` dans la première lambda, ``1`` dans la deuxième, ``2`` dans la " -"troisième et ainsi de suite. Chaque expression lambda renvoie donc le " -"résultat correct ::" - -#: faq/programming.rst:256 -msgid "" -"Note that this behaviour is not peculiar to lambdas, but applies to regular " -"functions too." -msgstr "" -"Ce comportement n'est pas propre aux expressions lambda, mais s'applique " -"aussi aux fonctions normales." - -#: faq/programming.rst:261 -msgid "How do I share global variables across modules?" -msgstr "Comment partager des variables globales entre modules ?" - -#: faq/programming.rst:263 -msgid "" -"The canonical way to share information across modules within a single " -"program is to create a special module (often called config or cfg). Just " -"import the config module in all modules of your application; the module then " -"becomes available as a global name. Because there is only one instance of " -"each module, any changes made to the module object get reflected " -"everywhere. For example:" -msgstr "" -"La manière standard de partager des informations entre modules d'un même " -"programme est de créer un module spécial (souvent appelé *config* ou *cfg*) " -"et de l'importer dans tous les modules de l'application ; le module devient " -"accessible depuis l'espace de nommage global. Vu qu'il n'y a qu'une instance " -"de chaque module, tout changement dans l'instance est propagé partout. Par " -"exemple :" - -#: faq/programming.rst:269 -msgid "config.py::" -msgstr "*config.py* ::" - -#: faq/programming.rst:273 -msgid "mod.py::" -msgstr "*mod.py* ::" - -#: faq/programming.rst:278 -msgid "main.py::" -msgstr "*main.py* ::" - -#: faq/programming.rst:284 -msgid "" -"Note that using a module is also the basis for implementing the singleton " -"design pattern, for the same reason." -msgstr "" -"Pour les mêmes raisons, l'utilisation d'un module est aussi à la base de " -"l'implémentation du patron de conception singleton." - -#: faq/programming.rst:289 -msgid "What are the \"best practices\" for using import in a module?" -msgstr "" -"Quelles sont les « bonnes pratiques » pour utiliser import dans un module ?" - -#: faq/programming.rst:291 -msgid "" -"In general, don't use ``from modulename import *``. Doing so clutters the " -"importer's namespace, and makes it much harder for linters to detect " -"undefined names." -msgstr "" -"De manière générale, il ne faut pas faire ``from modulename import *``. Ceci " -"encombre l'espace de nommage de l'importateur et rend la détection de noms " -"non-définis beaucoup plus ardue pour les analyseurs de code." - -#: faq/programming.rst:295 -msgid "" -"Import modules at the top of a file. Doing so makes it clear what other " -"modules your code requires and avoids questions of whether the module name " -"is in scope. Using one import per line makes it easy to add and delete " -"module imports, but using multiple imports per line uses less screen space." -msgstr "" -"Les modules doivent être importés au début d'un fichier. Ceci permet " -"d'afficher clairement de quels modules le code à besoin et évite de se " -"demander si le module est dans le contexte. Faire un seul ``import`` par " -"ligne rend l'ajout et la suppression d'une importation de module plus aisé, " -"mais importer plusieurs modules sur une même ligne prend moins d'espace." - -#: faq/programming.rst:300 -msgid "It's good practice if you import modules in the following order:" -msgstr "Il est recommandé d'importer les modules dans l'ordre suivant :" - -#: faq/programming.rst:302 -#, fuzzy -msgid "" -"standard library modules -- such " -"as :mod:`sys`, :mod:`os`, :mod:`argparse`, :mod:`re`" -msgstr "" -"les modules de la bibliothèque standard — p. " -"ex. :mod:`sys`, :mod:`os`, :mod:`getopt`, :mod:`re`" - -#: faq/programming.rst:303 -#, fuzzy -msgid "" -"third-party library modules (anything installed in Python's site-packages " -"directory) -- such as :pypi:`dateutil`, :pypi:`requests`, :pypi:`tzdata`" -msgstr "" -"les modules externes (tout ce qui est installé dans le dossier *site-" -"packages* de Python) — par exemple :mod:`!dateutil`, :mod:`!" -"requests`, :mod:`!PIL.Image`" - -#: faq/programming.rst:305 -msgid "locally developed modules" -msgstr "les modules développés en local" - -#: faq/programming.rst:307 -msgid "" -"It is sometimes necessary to move imports to a function or class to avoid " -"problems with circular imports. Gordon McMillan says:" -msgstr "" -"Il est parfois nécessaire de déplacer des importations dans une fonction ou " -"une classe pour éviter les problèmes d'importations circulaires. Comme le " -"souligne Gordon McMillan :" - -#: faq/programming.rst:310 -msgid "" -"Circular imports are fine where both modules use the \"import \" " -"form of import. They fail when the 2nd module wants to grab a name out of " -"the first (\"from module import name\") and the import is at the top level. " -"That's because names in the 1st are not yet available, because the first " -"module is busy importing the 2nd." -msgstr "" -"Il n'y a aucun souci à faire des importations circulaires tant que les deux " -"modules utilisent la forme ``import ``. Ça ne pose problème que si " -"le second module cherche à récupérer un nom du premier module (*\"from " -"module import name\"*) et que l'importation est dans l'espace de nommage du " -"fichier. Les noms du premier module ne sont en effet pas encore disponibles " -"car le premier module est occupé à importer le second." - -#: faq/programming.rst:316 -msgid "" -"In this case, if the second module is only used in one function, then the " -"import can easily be moved into that function. By the time the import is " -"called, the first module will have finished initializing, and the second " -"module can do its import." -msgstr "" -"Dans ce cas, si le second module n'est utilisé que dans une fonction, " -"l'importation peut facilement être déplacée dans cette fonction. Au moment " -"où l'importation sera appelée, le premier module aura fini de s'initialiser " -"et le second pourra faire son importation." - -#: faq/programming.rst:321 -msgid "" -"It may also be necessary to move imports out of the top level of code if " -"some of the modules are platform-specific. In that case, it may not even be " -"possible to import all of the modules at the top of the file. In this case, " -"importing the correct modules in the corresponding platform-specific code is " -"a good option." -msgstr "" -"Il peut parfois être nécessaire de déplacer des importations de modules hors " -"de l'espace de plus haut niveau du code si certains de ces modules dépendent " -"de la machine utilisée. Dans ce cas de figure, il est parfois impossible " -"d'importer tous les modules au début du fichier. Dans ce cas, il est " -"recommandé d'importer les modules adéquats dans le code spécifique à la " -"machine." - -#: faq/programming.rst:326 -msgid "" -"Only move imports into a local scope, such as inside a function definition, " -"if it's necessary to solve a problem such as avoiding a circular import or " -"are trying to reduce the initialization time of a module. This technique is " -"especially helpful if many of the imports are unnecessary depending on how " -"the program executes. You may also want to move imports into a function if " -"the modules are only ever used in that function. Note that loading a module " -"the first time may be expensive because of the one time initialization of " -"the module, but loading a module multiple times is virtually free, costing " -"only a couple of dictionary lookups. Even if the module name has gone out " -"of scope, the module is probably available in :data:`sys.modules`." -msgstr "" -"Les importations ne devraient être déplacées dans un espace de nommage " -"local, comme dans la définition d'une fonction, que si cela est nécessaire " -"pour résoudre un problème comme éviter des dépendances circulaires ou " -"réduire le temps d'initialisation d'un module. Cette technique est " -"particulièrement utile si la majorité des importations est superflue selon " -"le flux d'exécution du programme. Il est également pertinent de déplacer des " -"importations dans une fonction si le module n'est utilisé qu'au sein de " -"cette fonction. Le premier chargement d'un module peut être coûteux à cause " -"du coût fixe d'initialisation d'un module, mais charger un module plusieurs " -"fois est quasiment gratuit, cela ne coûte que quelques indirections dans un " -"dictionnaire. Même si le nom du module est sorti du contexte courant, le " -"module est probablement disponible dans :data:`sys.modules`." - -#: faq/programming.rst:339 -msgid "Why are default values shared between objects?" -msgstr "Pourquoi les arguments par défaut sont-ils partagés entre les objets ?" - -#: faq/programming.rst:341 -msgid "" -"This type of bug commonly bites neophyte programmers. Consider this " -"function::" -msgstr "" -"C'est un problème que rencontrent souvent les programmeurs débutants. " -"Examinons la fonction suivante ::" - -#: faq/programming.rst:348 -msgid "" -"The first time you call this function, ``mydict`` contains a single item. " -"The second time, ``mydict`` contains two items because when ``foo()`` begins " -"executing, ``mydict`` starts out with an item already in it." -msgstr "" -"Au premier appel de cette fonction, ``mydict`` ne contient qu'un seul " -"élément. Au second appel, ``mydict`` contient deux éléments car quand " -"``foo()`` commence son exécution, ``mydict`` contient déjà un élément." - -#: faq/programming.rst:352 -msgid "" -"It is often expected that a function call creates new objects for default " -"values. This is not what happens. Default values are created exactly once, " -"when the function is defined. If that object is changed, like the " -"dictionary in this example, subsequent calls to the function will refer to " -"this changed object." -msgstr "" -"On est souvent amené à croire qu'un appel de fonction créé des nouveaux " -"objets pour les valeurs par défaut. Ce n'est pas le cas. Les valeurs par " -"défaut ne sont créées qu'une et une seule fois, au moment où la fonction est " -"définie. Si l'objet est modifié, comme le dictionnaire dans cet exemple, les " -"appels suivants à cette fonction font référence à l'objet ainsi modifié." - -#: faq/programming.rst:357 -msgid "" -"By definition, immutable objects such as numbers, strings, tuples, and " -"``None``, are safe from change. Changes to mutable objects such as " -"dictionaries, lists, and class instances can lead to confusion." -msgstr "" -"Par définition, les objets immuables comme les nombres, les chaînes de " -"caractères, les *n*-uplets et ``None`` ne sont pas modifiés. Les changements " -"sur des objets modifiables comme les dictionnaires, les listes et les " -"instances de classe peuvent porter à confusion." - -#: faq/programming.rst:361 -msgid "" -"Because of this feature, it is good programming practice to not use mutable " -"objects as default values. Instead, use ``None`` as the default value and " -"inside the function, check if the parameter is ``None`` and create a new " -"list/dictionary/whatever if it is. For example, don't write::" -msgstr "" -"En raison de cette fonctionnalité, il vaut mieux ne pas utiliser d'objets " -"modifiables comme valeurs par défaut. Il vaut mieux utiliser ``None`` comme " -"valeur par défaut et, à l'intérieur de la fonction, vérifier si le paramètre " -"est à ``None`` et créer une nouvelle liste, dictionnaire ou autre, le cas " -"échéant. Par exemple, il ne faut pas écrire ::" - -#: faq/programming.rst:369 -msgid "but::" -msgstr "mais plutôt ::" - -#: faq/programming.rst:375 -msgid "" -"This feature can be useful. When you have a function that's time-consuming " -"to compute, a common technique is to cache the parameters and the resulting " -"value of each call to the function, and return the cached value if the same " -"value is requested again. This is called \"memoizing\", and can be " -"implemented like this::" -msgstr "" -"Cette fonctionnalité a une utilité. Il est courant de mettre en cache les " -"paramètres et la valeur de retour de chacun des appels d'une fonction " -"coûteuse à exécuter, et de renvoyer la valeur stockée en cache si le même " -"appel est ré-effectué. C'est la technique dite de « mémoïsation », qui " -"s'implémente de la manière suivante ::" - -#: faq/programming.rst:390 -msgid "" -"You could use a global variable containing a dictionary instead of the " -"default value; it's a matter of taste." -msgstr "" -"Il est possible d'utiliser une variable globale contenant un dictionnaire à " -"la place de la valeur par défaut ; ce n'est qu'une question de goût." - -#: faq/programming.rst:395 -msgid "" -"How can I pass optional or keyword parameters from one function to another?" -msgstr "" -"Comment passer des paramètres optionnels ou nommés d'une fonction à l'autre ?" - -#: faq/programming.rst:397 -msgid "" -"Collect the arguments using the ``*`` and ``**`` specifiers in the " -"function's parameter list; this gives you the positional arguments as a " -"tuple and the keyword arguments as a dictionary. You can then pass these " -"arguments when calling another function by using ``*`` and ``**``::" -msgstr "" -"Il faut récupérer les arguments en utilisant les sélecteurs ``*`` et ``**`` " -"dans la liste des paramètres de la fonction ; ceci donne les arguments " -"positionnels sous la forme d'un *n*-uplet et les arguments nommés sous forme " -"de dictionnaire. Ces arguments peuvent être passés à une autre fonction en " -"utilisant ``*`` et ``**`` ::" - -#: faq/programming.rst:416 -msgid "What is the difference between arguments and parameters?" -msgstr "Quelle est la différence entre les arguments et les paramètres ?" - -#: faq/programming.rst:418 -msgid "" -":term:`Parameters ` are defined by the names that appear in a " -"function definition, whereas :term:`arguments ` are the values " -"actually passed to a function when calling it. Parameters define " -"what :term:`kind of arguments ` a function can accept. For " -"example, given the function definition::" -msgstr "" -"Les :term:`paramètres ` sont les noms qui apparaissent dans une " -"définition de fonction, alors que les :term:`arguments ` sont les " -"valeurs qui sont réellement passées à une fonction lors de l'appel de celle-" -"ci. Les paramètres définissent les :term:`types d'arguments ` " -"qu'une fonction accepte. Ainsi, avec la définition de fonction suivante ::" - -#: faq/programming.rst:427 -msgid "" -"*foo*, *bar* and *kwargs* are parameters of ``func``. However, when calling " -"``func``, for example::" -msgstr "" -"*foo*, *bar* et *kwargs* sont des paramètres de ``func``. Mais à l'appel de " -"``func`` avec, par exemple ::" - -#: faq/programming.rst:432 -msgid "the values ``42``, ``314``, and ``somevar`` are arguments." -msgstr "les valeurs ``42``, ``314``, et ``somevar`` sont des arguments." - -#: faq/programming.rst:436 -msgid "Why did changing list 'y' also change list 'x'?" -msgstr "Pourquoi modifier la liste 'y' modifie aussi la liste 'x' ?" - -#: faq/programming.rst:438 -msgid "If you wrote code like::" -msgstr "Si vous avez écrit du code comme ::" - -#: faq/programming.rst:448 -msgid "" -"you might be wondering why appending an element to ``y`` changed ``x`` too." -msgstr "" -"vous vous demandez peut-être pourquoi l'ajout d'un élément à ``y`` a aussi " -"changé ``x``." - -#: faq/programming.rst:450 -msgid "There are two factors that produce this result:" -msgstr "Il y a deux raisons qui conduisent à ce comportement :" - -#: faq/programming.rst:452 -msgid "" -"Variables are simply names that refer to objects. Doing ``y = x`` doesn't " -"create a copy of the list -- it creates a new variable ``y`` that refers to " -"the same object ``x`` refers to. This means that there is only one object " -"(the list), and both ``x`` and ``y`` refer to it." -msgstr "" -"Les variables ne sont que des noms qui font référence à des objets. La ligne " -"``y = x`` ne crée pas une copie de la liste — elle crée une nouvelle " -"variable ``y`` qui pointe sur le même objet que ``x``. Ceci signifie qu'il " -"n'existe qu'un seul objet (la liste) auquel ``x`` et ``y`` font référence." - -#: faq/programming.rst:456 -msgid "" -"Lists are :term:`mutable`, which means that you can change their content." -msgstr "" -"Les listes sont des :term:`mutable`, ce qui signifie que leur contenu peut " -"être modifié." - -#: faq/programming.rst:458 -#, fuzzy -msgid "" -"After the call to :meth:`~sequence.append`, the content of the mutable " -"object has changed from ``[]`` to ``[10]``. Since both the variables refer " -"to the same object, using either name accesses the modified value ``[10]``." -msgstr "" -"Après l'appel de :meth:`~list.append`, le contenu de l'objet mutable est " -"passé de ``[]`` à ``[10]``. Vu que les deux variables font référence au même " -"objet, il est possible d'accéder à la valeur modifiée ``[10]`` avec chacun " -"des noms." - -#: faq/programming.rst:462 -msgid "If we instead assign an immutable object to ``x``::" -msgstr "Si au contraire, on affecte un objet immuable à ``x`` ::" - -#: faq/programming.rst:472 -msgid "" -"we can see that in this case ``x`` and ``y`` are not equal anymore. This is " -"because integers are :term:`immutable`, and when we do ``x = x + 1`` we are " -"not mutating the int ``5`` by incrementing its value; instead, we are " -"creating a new object (the int ``6``) and assigning it to ``x`` (that is, " -"changing which object ``x`` refers to). After this assignment we have two " -"objects (the ints ``6`` and ``5``) and two variables that refer to them " -"(``x`` now refers to ``6`` but ``y`` still refers to ``5``)." -msgstr "" -"on observe que ``x`` et ``y`` ne sont ici plus égales. Les entiers sont des " -"immuables (:term:`immutable`), et ``x = x + 1`` ne change pas l'entier ``5`` " -"en incrémentant sa valeur. Au contraire, un nouvel objet est créé (l'entier " -"``6``) et affecté à ``x`` (c'est-à-dire qu'on change l'objet auquel fait " -"référence ``x``). Après cette affectation on a deux objets (les entiers " -"``6`` et ``5``) et deux variables qui font référence à ces deux objets " -"(``x`` fait désormais référence à ``6`` mais ``y`` fait toujours référence à " -"``5``)." - -#: faq/programming.rst:480 -msgid "" -"Some operations (for example ``y.append(10)`` and ``y.sort()``) mutate the " -"object, whereas superficially similar operations (for example ``y = y + " -"[10]`` and :func:`sorted(y) `) create a new object. In general in " -"Python (and in all cases in the standard library) a method that mutates an " -"object will return ``None`` to help avoid getting the two types of " -"operations confused. So if you mistakenly write ``y.sort()`` thinking it " -"will give you a sorted copy of ``y``, you'll instead end up with ``None``, " -"which will likely cause your program to generate an easily diagnosed error." -msgstr "" -"Certaines opérations (par exemple, ``y.append(10)`` et ``y.sort()``) " -"modifient l'objet, alors que des opérations identiques en apparence (par " -"exemple ``y = y + [10]`` et :func:`sorted(y)`) créent un nouvel objet. En " -"général, en Python, une méthode qui modifie un objet renvoie ``None`` (c'est " -"même systématique dans la bibliothèque standard) pour éviter la confusion " -"entre les deux opérations. Donc écrire par erreur ``y.sort()`` en pensant " -"obtenir une copie triée de ``y`` donne ``None``, ce qui conduit très souvent " -"le programme à générer une erreur facile à diagnostiquer." - -#: faq/programming.rst:489 -msgid "" -"However, there is one class of operations where the same operation sometimes " -"has different behaviors with different types: the augmented assignment " -"operators. For example, ``+=`` mutates lists but not tuples or ints " -"(``a_list += [1, 2, 3]`` is equivalent to ``a_list.extend([1, 2, 3])`` and " -"mutates ``a_list``, whereas ``some_tuple += (1, 2, 3)`` and ``some_int += " -"1`` create new objects)." -msgstr "" -"Il existe cependant une classe d'opérations qui se comporte différemment " -"selon le type : les opérateurs d'affectation incrémentaux. Par exemple, " -"``+=`` modifie les listes mais pas les *n*-uplets ni les entiers (``a_list " -"+= [1, 2, 3]`` équivaut à ``a_list.extend([1, 2, 3])`` et modifie " -"``a_list``, alors que ``some_tuple += (1, 2, 3)`` et ``some_int += 1`` " -"créent de nouveaux objets)." - -#: faq/programming.rst:496 -msgid "In other words:" -msgstr "En d'autres termes :" - -#: faq/programming.rst:498 -#, fuzzy -msgid "" -"If we have a mutable object (such " -"as :class:`list`, :class:`dict`, :class:`set`), we can use some specific " -"operations to mutate it and all the variables that refer to it will see the " -"change." -msgstr "" -"Il est possible d'appliquer des opérations qui modifient un objet mutable " -"(:class:`list`, :class:`dict`, :class:`set`, etc.) et toutes les variables " -"qui y font référence verront le changement." - -#: faq/programming.rst:501 -#, fuzzy -msgid "" -"If we have an immutable object (such " -"as :class:`str`, :class:`int`, :class:`tuple`), all the variables that refer " -"to it will always see the same value, but operations that transform that " -"value into a new value always return a new object." -msgstr "" -"Toutes les variables qui font référence à un objet immuable " -"(:class:`str`, :class:`int`, :class:`tuple`, etc.) renvoient la même valeur, " -"mais les opérations qui transforment cette valeur en une nouvelle valeur " -"renvoient toujours un nouvel objet." - -#: faq/programming.rst:506 -msgid "" -"If you want to know if two variables refer to the same object or not, you " -"can use the :keyword:`is` operator, or the built-in function :func:`id`." -msgstr "" -"L'opérateur :keyword:`is` ou la fonction native :func:`id` permettent de " -"savoir si deux variables font référence au même objet." - -#: faq/programming.rst:511 -msgid "How do I write a function with output parameters (call by reference)?" -msgstr "" -"Comment écrire une fonction qui modifie ses paramètres ? (passage par " -"référence)" - -#: faq/programming.rst:513 -#, fuzzy -msgid "" -"Remember that arguments are passed by assignment in Python. Since " -"assignment just creates references to objects, there's no alias between an " -"argument name in the caller and callee, and consequently no call-by-" -"reference. You can achieve the desired effect in a number of ways." -msgstr "" -"En Python, les arguments sont passés comme des affectations de variables. Vu " -"qu'une affectation crée des références à des objets, il n'y a pas de lien " -"entre un argument dans l'appel de la fonction et sa définition, et donc pas " -"de passage par référence en soi. Il y a cependant plusieurs façons d'en " -"émuler un." - -#: faq/programming.rst:518 -msgid "By returning a tuple of the results::" -msgstr "En renvoyant un *n*-uplet de résultats ::" - -#: faq/programming.rst:529 -msgid "This is almost always the clearest solution." -msgstr "C'est presque toujours la meilleure solution." - -#: faq/programming.rst:531 -msgid "" -"By using global variables. This isn't thread-safe, and is not recommended." -msgstr "" -"En utilisant des variables globales. Cette approche ne fonctionne pas dans " -"des contextes à plusieurs fils d'exécution (elle n'est pas *thread-safe*), " -"et n'est donc pas recommandée." - -#: faq/programming.rst:533 -msgid "By passing a mutable (changeable in-place) object::" -msgstr "En passant un objet mutable (modifiable sur place) ::" - -#: faq/programming.rst:544 -msgid "By passing in a dictionary that gets mutated::" -msgstr "En passant un dictionnaire, qui sera modifié ::" - -#: faq/programming.rst:555 -msgid "Or bundle up values in a class instance::" -msgstr "Ou regrouper les valeurs dans une instance de classe ::" - -#: faq/programming.rst:572 -msgid "There's almost never a good reason to get this complicated." -msgstr "Faire quelque chose d'aussi compliqué est rarement une bonne idée." - -#: faq/programming.rst:574 -msgid "Your best choice is to return a tuple containing the multiple results." -msgstr "" -"La meilleure option reste de renvoyer un *n*-uplet contenant les différents " -"résultats." - -#: faq/programming.rst:578 -msgid "How do you make a higher order function in Python?" -msgstr "Comment construire une fonction d'ordre supérieur en Python ?" - -#: faq/programming.rst:580 -msgid "" -"You have two choices: you can use nested scopes or you can use callable " -"objects. For example, suppose you wanted to define ``linear(a,b)`` which " -"returns a function ``f(x)`` that computes the value ``a*x+b``. Using nested " -"scopes::" -msgstr "" -"Deux possibilités : on peut utiliser des portées imbriquées ou bien des " -"objets appelables. Par exemple, supposons que l'on souhaite définir " -"``linear(a, b)`` qui renvoie une fonction ``f(x)`` qui calcule la valeur " -"``a*x+b``. En utilisant les portées imbriquées ::" - -#: faq/programming.rst:589 -msgid "Or using a callable object::" -msgstr "Ou en utilisant un objet appelable ::" - -#: faq/programming.rst:599 -msgid "In both cases, ::" -msgstr "Dans les deux cas ::" - -#: faq/programming.rst:603 -msgid "gives a callable object where ``taxes(10e6) == 0.3 * 10e6 + 2``." -msgstr "donne un objet appelable où ``taxes(10e6) == 0.3 * 10e6 + 2``." - -#: faq/programming.rst:605 -msgid "" -"The callable object approach has the disadvantage that it is a bit slower " -"and results in slightly longer code. However, note that a collection of " -"callables can share their signature via inheritance::" -msgstr "" -"L'approche par objet appelable a le désavantage d'être légèrement plus lente " -"et de produire un code légèrement plus long. Cependant, il faut noter qu'une " -"collection d'objet appelables peuvent partager leurs signatures par " -"héritage ::" - -#: faq/programming.rst:614 -msgid "Object can encapsulate state for several methods::" -msgstr "Les objets peuvent encapsuler un état pour plusieurs méthodes ::" - -#: faq/programming.rst:632 -msgid "" -"Here ``inc()``, ``dec()`` and ``reset()`` act like functions which share the " -"same counting variable." -msgstr "" -"Ici ``inc()``, ``dec()`` et ``reset()`` agissent comme des fonctions " -"partageant une même variable compteur." - -#: faq/programming.rst:637 -msgid "How do I copy an object in Python?" -msgstr "Comment copier un objet en Python ?" - -#: faq/programming.rst:639 -msgid "" -"In general, try :func:`copy.copy` or :func:`copy.deepcopy` for the general " -"case. Not all objects can be copied, but most can." -msgstr "" -"En général, essayez :func:`copy.copy` ou :func:`copy.deepcopy`. Tous les " -"objets ne peuvent pas être copiés, mais la plupart le peuvent." - -#: faq/programming.rst:642 -msgid "" -"Some objects can be copied more easily. Dictionaries have " -"a :meth:`~dict.copy` method::" -msgstr "" -"Certains objets peuvent être copiés plus facilement que d'autres. Les " -"dictionnaires ont une méthode :meth:`~dict.copy` ::" - -#: faq/programming.rst:647 -msgid "Sequences can be copied by slicing::" -msgstr "Les séquences peuvent être copiées via la syntaxe des tranches ::" - -#: faq/programming.rst:653 -msgid "How can I find the methods or attributes of an object?" -msgstr "Comment récupérer les méthodes ou les attributs d'un objet ?" - -#: faq/programming.rst:655 -msgid "" -"For an instance ``x`` of a user-defined class, :func:`dir(x) ` returns " -"an alphabetized list of the names containing the instance attributes and " -"methods and attributes defined by its class." -msgstr "" -"Pour une instance ``x`` d'une classe définie par un " -"utilisateur, :func:`dir(x) ` renvoie une liste alphabétique des noms " -"contenants les attributs de l'instance, et les attributs et méthodes " -"définies par sa classe." - -#: faq/programming.rst:661 -msgid "How can my code discover the name of an object?" -msgstr "Comment un code peut-il obtenir le nom d'un objet ?" - -#: faq/programming.rst:663 -msgid "" -"Generally speaking, it can't, because objects don't really have names. " -"Essentially, assignment always binds a name to a value; the same is true of " -"``def`` and ``class`` statements, but in that case the value is a callable. " -"Consider the following code::" -msgstr "" -"C'est impossible en général, parce qu'un objet n'a pas de nom à proprement " -"parler. Schématiquement, l'affectation fait correspondre un nom à une " -"valeur ; c'est vrai aussi pour les instructions ``def`` et ``class``, à la " -"différence près que, dans ce cas, la valeur est un appelable. Par exemple, " -"dans le code suivant ::" - -#: faq/programming.rst:679 -msgid "" -"Arguably the class has a name: even though it is bound to two names and " -"invoked through the name ``B`` the created instance is still reported as an " -"instance of class ``A``. However, it is impossible to say whether the " -"instance's name is ``a`` or ``b``, since both names are bound to the same " -"value." -msgstr "" -"Affirmer que la classe a un nom est discutable. Bien qu'elle soit liée à " -"deux noms, et qu'elle soit appelée via le nom ``B``, l'instance créée " -"déclare tout de même être une instance de la classe ``A``. De même, il est " -"impossible de dire si le nom de l'instance est ``a`` ou ``b``, les deux noms " -"étant attachés à la même valeur." - -#: faq/programming.rst:684 -msgid "" -"Generally speaking it should not be necessary for your code to \"know the " -"names\" of particular values. Unless you are deliberately writing " -"introspective programs, this is usually an indication that a change of " -"approach might be beneficial." -msgstr "" -"De façon générale, une application ne devrait pas avoir besoin de " -"« connaître le nom » d'une valeur particulière. À moins d'être délibérément " -"en train d'écrire un programme introspectif, c'est souvent l'indication " -"qu'un changement d'approche serait bénéfique." - -#: faq/programming.rst:689 -msgid "" -"In comp.lang.python, Fredrik Lundh once gave an excellent analogy in answer " -"to this question:" -msgstr "" -"Sur *comp.lang.python*, Fredrik Lundh a donné un jour une excellente " -"analogie pour répondre à cette question :" - -#: faq/programming.rst:692 -msgid "" -"The same way as you get the name of that cat you found on your porch: the " -"cat (object) itself cannot tell you its name, and it doesn't really care -- " -"so the only way to find out what it's called is to ask all your neighbours " -"(namespaces) if it's their cat (object)..." -msgstr "" -"C'est pareil que trouver le nom du chat qui traîne devant votre porte : le " -"chat (objet) ne peut pas vous dire lui-même son nom, et il s'en moque un peu " -"­– alors le meilleur moyen de savoir comment il s'appelle est de demander à " -"tous vos voisins (espaces de nommage) si c'est leur chat (objet)…" - -#: faq/programming.rst:697 -msgid "" -"....and don't be surprised if you'll find that it's known by many names, or " -"no name at all!" -msgstr "" -"…et ne soyez pas surpris si vous découvrez qu'il est connu sous plusieurs " -"noms, ou s'il n'a pas de nom du tout !" - -#: faq/programming.rst:702 -msgid "What's up with the comma operator's precedence?" -msgstr "Qu'en est-il de la précédence de l'opérateur virgule ?" - -#: faq/programming.rst:704 -msgid "Comma is not an operator in Python. Consider this session::" -msgstr "" -"La virgule n'est pas un opérateur en Python. Observez le code suivant ::" - -#: faq/programming.rst:709 -msgid "" -"Since the comma is not an operator, but a separator between expressions the " -"above is evaluated as if you had entered::" -msgstr "" -"Comme la virgule n'est pas un opérateur, mais un séparateur entre deux " -"expressions, l'expression ci-dessus est évaluée de la même façon que si vous " -"aviez écrit ::" - -#: faq/programming.rst:714 -msgid "not::" -msgstr "et non ::" - -#: faq/programming.rst:718 -#, fuzzy -msgid "" -"The same is true of the various assignment operators (``=``, ``+=``, and so " -"on). They are not truly operators but syntactic delimiters in assignment " -"statements." -msgstr "" -"Ceci est vrai pour tous les opérateurs d'affectation (``=``, ``+=`` etc). Ce " -"ne sont pas vraiment des opérateurs mais plutôt des délimiteurs syntaxiques " -"dans les instructions d'affectation." - -#: faq/programming.rst:723 -msgid "Is there an equivalent of C's \"?:\" ternary operator?" -msgstr "Existe-t-il un équivalent à l'opérateur ternaire « ?: » du C ?" - -#: faq/programming.rst:725 -msgid "Yes, there is. The syntax is as follows::" -msgstr "Oui. Sa syntaxe est la suivante ::" - -#: faq/programming.rst:732 -msgid "" -"Before this syntax was introduced in Python 2.5, a common idiom was to use " -"logical operators::" -msgstr "" -"Avant l'introduction de cette syntaxe dans Python 2.5, il était courant " -"d'utiliser les opérateurs de logique ::" - -#: faq/programming.rst:737 -msgid "" -"However, this idiom is unsafe, as it can give wrong results when *on_true* " -"has a false boolean value. Therefore, it is always better to use the ``... " -"if ... else ...`` form." -msgstr "" -"Cet idiome est dangereux, car il donne un résultat erroné quand *on_true* a " -"la valeur booléenne fausse. Il faut donc toujours utiliser la forme ``... " -"if ... else ...``." - -#: faq/programming.rst:743 -msgid "Is it possible to write obfuscated one-liners in Python?" -msgstr "" -"Est-il possible d'écrire des programmes obscurcis (*obfuscated*) d'une ligne " -"en Python ?" - -#: faq/programming.rst:745 -msgid "" -"Yes. Usually this is done by nesting :keyword:`lambda` within :keyword:`!" -"lambda`. See the following three examples, slightly adapted from Ulf " -"Bartelt::" -msgstr "" -"Oui. C'est souvent le cas en imbriquant des :keyword:`lambda` dans " -"des :keyword:`!lambda`. Par exemple les trois morceaux de code suivants, " -"légèrement adaptés par Ulf Bartelt ::" - -#: faq/programming.rst:772 -msgid "Don't try this at home, kids!" -msgstr "Les enfants, ne faites pas ça chez vous !" - -#: faq/programming.rst:778 -msgid "What does the slash(/) in the parameter list of a function mean?" -msgstr "" -"Que signifie la barre oblique (/) dans la liste des paramètres d'une " -"fonction ?" - -#: faq/programming.rst:780 -msgid "" -"A slash in the argument list of a function denotes that the parameters prior " -"to it are positional-only. Positional-only parameters are the ones without " -"an externally usable name. Upon calling a function that accepts positional-" -"only parameters, arguments are mapped to parameters based solely on their " -"position. For example, :func:`divmod` is a function that accepts positional-" -"only parameters. Its documentation looks like this::" -msgstr "" -"Une barre oblique dans la liste des arguments d'une fonction indique que les " -"paramètres la précédant sont uniquement positionnels. Les paramètres " -"uniquement positionnels ne peuvent pas être référencés par leur nom depuis " -"l'extérieur. Lors de l'appel d'une fonction qui accepte des paramètres " -"uniquement positionnels, les arguments sont affectés aux paramètres en " -"fonction de leur position. Par exemple, la fonction :func:`divmod` n'accepte " -"que des paramètres uniquement positionnels. Sa documentation est la " -"suivante ::" - -#: faq/programming.rst:793 -msgid "" -"The slash at the end of the parameter list means that both parameters are " -"positional-only. Thus, calling :func:`divmod` with keyword arguments would " -"lead to an error::" -msgstr "" -"La barre oblique à la fin de la liste des paramètres signifie que les trois " -"paramètres sont uniquement positionnels. Et donc, appeler :func:`divmod` " -"avec des arguments nommés provoque une erreur ::" - -#: faq/programming.rst:804 -msgid "Numbers and strings" -msgstr "Nombres et chaînes de caractères" - -#: faq/programming.rst:807 -msgid "How do I specify hexadecimal and octal integers?" -msgstr "Comment écrire des entiers hexadécimaux ou octaux ?" - -#: faq/programming.rst:809 -msgid "" -"To specify an octal digit, precede the octal value with a zero, and then a " -"lower or uppercase \"o\". For example, to set the variable \"a\" to the " -"octal value \"10\" (8 in decimal), type::" -msgstr "" -"Pour écrire un entier octal, faites précéder la valeur octale par un zéro, " -"puis un \"o\" majuscule ou minuscule. Par exemple pour affecter la valeur " -"octale \"10\" (8 en décimal) à la variable \"a\", tapez ::" - -#: faq/programming.rst:817 -msgid "" -"Hexadecimal is just as easy. Simply precede the hexadecimal number with a " -"zero, and then a lower or uppercase \"x\". Hexadecimal digits can be " -"specified in lower or uppercase. For example, in the Python interpreter::" -msgstr "" -"L'hexadécimal est tout aussi simple, faites précéder le nombre hexadécimal " -"par un zéro, puis un \"x\" majuscule ou minuscule. Les nombres hexadécimaux " -"peuvent être écrits en majuscules ou en minuscules. Par exemple, dans " -"l'interpréteur Python ::" - -#: faq/programming.rst:830 -msgid "Why does -22 // 10 return -3?" -msgstr "Pourquoi ``-22 // 10`` donne-t-il ``-3`` ?" - -#: faq/programming.rst:832 -msgid "" -"It's primarily driven by the desire that ``i % j`` have the same sign as " -"``j``. If you want that, and also want::" -msgstr "" -"Cela est principalement dû à la volonté que ``i % j`` ait le même signe que " -"j. Si vous voulez en plus que ::" - -#: faq/programming.rst:837 -msgid "" -"then integer division has to return the floor. C also requires that " -"identity to hold, and then compilers that truncate ``i // j`` need to make " -"``i % j`` have the same sign as ``i``." -msgstr "" -"alors la division entière doit renvoyer l'entier inférieur. Le C impose " -"également que cette égalité soit vérifiée, et donc les compilateurs qui " -"tronquent ``i // j`` ont besoin que ``i % j`` ait le même signe que ``i``." - -#: faq/programming.rst:841 -msgid "" -"There are few real use cases for ``i % j`` when ``j`` is negative. When " -"``j`` is positive, there are many, and in virtually all of them it's more " -"useful for ``i % j`` to be ``>= 0``. If the clock says 10 now, what did it " -"say 200 hours ago? ``-190 % 12 == 2`` is useful; ``-190 % 12 == -10`` is a " -"bug waiting to bite." -msgstr "" -"Il y a peu de cas d'utilisation réels pour ``i % j`` quand ``j`` est " -"négatif. Quand ``j`` est positif, il y en a beaucoup, et dans pratiquement " -"tous, il est plus utile que ``i % j`` soit ``>=0``. Si l'horloge affiche " -"10 h maintenant, qu'affichait-elle il y a 200 heures ? ``-190 % 12 == 2`` " -"est utile ; ``-190 % 12 == -10`` est un bogue en puissance." - -#: faq/programming.rst:849 -msgid "How do I get int literal attribute instead of SyntaxError?" -msgstr "" -"Pourquoi ai-je une erreur de syntaxe en essayant de lire un attribut d'un " -"entier littéral ?" - -#: faq/programming.rst:851 -msgid "" -"Trying to lookup an ``int`` literal attribute in the normal manner gives " -"a :exc:`SyntaxError` because the period is seen as a decimal point::" -msgstr "" -"Essayer d'utiliser l'opérateur d'accès à un attribut sur un entier littéral " -"lève une :exc:`SyntaxError` car le point est compris comme un séparateur " -"décimal en notation anglo-saxonne ::" - -#: faq/programming.rst:860 -msgid "" -"The solution is to separate the literal from the period with either a space " -"or parentheses." -msgstr "" -"Il faut séparer l'entier du point, soit avec une espace, soit avec des " -"parenthèses." - -#: faq/programming.rst:870 -msgid "How do I convert a string to a number?" -msgstr "Comment convertir une chaîne de caractères en nombre ?" - -#: faq/programming.rst:872 -#, fuzzy -msgid "" -"For integers, use the built-in :func:`int` type constructor, for example, " -"``int('144') == 144``. Similarly, :func:`float` converts to a floating-" -"point number, for example, ``float('144') == 144.0``." -msgstr "" -"Pour les entiers, utilisez le constructeur natif de :func:`int`, par exemple " -"``int('144') == 144``. De façon similaire, :func:`float` donne la valeur " -"flottante, par exemple ``float('144') == 144.0``." - -#: faq/programming.rst:876 -msgid "" -"By default, these interpret the number as decimal, so that ``int('0144') == " -"144`` holds true, and ``int('0x144')`` raises :exc:`ValueError`. " -"``int(string, base)`` takes the base to convert from as a second optional " -"argument, so ``int( '0x144', 16) == 324``. If the base is specified as 0, " -"the number is interpreted using Python's rules: a leading '0o' indicates " -"octal, and '0x' indicates a hex number." -msgstr "" -"Par défaut, ces fonctions interprètent les nombres comme des décimaux, de " -"telle façon que ``int('0144') == 144`` et ``int('0x144')`` lève " -"une :exc:`ValueError`. Le second argument (optionnel) de ``int(string, " -"base)`` est la base dans laquelle convertir, donc ``int('0x144', 16) == " -"324``. Si la base donnée est 0, le nombre est interprété selon les règles " -"Python : un préfixe ``0o`` indique de l'octal et ``0x`` indique de " -"l'hexadécimal." - -#: faq/programming.rst:883 -msgid "" -"Do not use the built-in function :func:`eval` if all you need is to convert " -"strings to numbers. :func:`eval` will be significantly slower and it " -"presents a security risk: someone could pass you a Python expression that " -"might have unwanted side effects. For example, someone could pass " -"``__import__('os').system(\"rm -rf $HOME\")`` which would erase your home " -"directory." -msgstr "" -"N'utilisez pas la fonction native :func:`eval` pour convertir des chaînes de " -"caractères en nombres. :func:`eval` est beaucoup plus lente et pose des " -"problèmes de sécurité : quelqu'un pourrait vous envoyer une expression " -"Python pouvant avoir des effets de bord indésirables. Par exemple, quelqu'un " -"pourrait passer ``__import__('os').system(\"rm -rf $HOME\")`` ce qui " -"effacerait votre répertoire personnel." - -#: faq/programming.rst:890 -#, fuzzy -msgid "" -":func:`eval` also has the effect of interpreting numbers as Python " -"expressions, so that, for example, ``eval('09')`` gives a syntax error " -"because Python does not allow leading '0' in a decimal number (except '0')." -msgstr "" -":func:`eval` a aussi pour effet d'interpréter les nombres comme des " -"expressions Python. Ainsi ``eval('09')`` produit une erreur de syntaxe, " -"parce que Python ne permet pas les '0' en tête d'un nombre décimal (à " -"l'exception du nombre '0')." - -#: faq/programming.rst:896 -msgid "How do I convert a number to a string?" -msgstr "Comment convertir un nombre en chaîne de caractères ?" - -#: faq/programming.rst:898 -#, fuzzy -msgid "" -"For example, to convert the number ``144`` to the string ``'144'``, use the " -"built-in type constructor :func:`str`. If you want a hexadecimal or octal " -"representation, use the built-in functions :func:`hex` or :func:`oct`. For " -"fancy formatting, see the :ref:`f-strings` and :ref:`formatstrings` " -"sections. For example, ``\"{:04d}\".format(144)`` yields ``'0144'`` and " -"``\"{:.3f}\".format(1.0/3.0)`` yields ``'0.333'``." -msgstr "" -"Pour transformer, par exemple, le nombre ``144`` en la chaîne de caractères " -"``'144'``, il faut utiliser la fonction native :func:`str`. Pour obtenir la " -"représentation hexadécimale ou octale, il faut utiliser les fonctions " -"natives :func:`hex` ou :func:`oct`. Pour des représentations non-" -"conventionnelles, se référer aux sections :ref:`f-strings` " -"et :ref:`formatstrings`, par exemple ``\"{:04d}\".format(144)`` produit " -"``'0144'`` et ``\"{:.3f}\".format(1.0/3.0)`` produit ``'0.333'``." - -#: faq/programming.rst:907 -msgid "How do I modify a string in place?" -msgstr "Comment modifier une chaîne de caractères « sur place » ?" - -#: faq/programming.rst:909 -#, fuzzy -msgid "" -"You can't, because strings are immutable. In most situations, you should " -"simply construct a new string from the various parts you want to assemble it " -"from. However, if you need an object with the ability to modify in-place " -"Unicode data, try using an :class:`io.StringIO` object or the :mod:`array` " -"module::" -msgstr "" -"C'est impossible car les chaînes de caractères sont immuables. Dans la " -"plupart des cas, il faut tout simplement construire une nouvelle chaîne à " -"partir des morceaux de l'ancienne. Si toutefois vous avez besoin d'un objet " -"capable de modifier de la donnée Unicode « sur place », essayez d'utiliser " -"un objet :class:`io.StringIO` ou le module :mod:`array` ::" - -#: faq/programming.rst:939 -msgid "How do I use strings to call functions/methods?" -msgstr "" -"Comment utiliser des chaînes de caractères pour appeler des fonctions/" -"méthodes ?" - -#: faq/programming.rst:941 -msgid "There are various techniques." -msgstr "Il y a plusieurs façons de faire." - -#: faq/programming.rst:943 -msgid "" -"The best is to use a dictionary that maps strings to functions. The primary " -"advantage of this technique is that the strings do not need to match the " -"names of the functions. This is also the primary technique used to emulate " -"a case construct::" -msgstr "" -"La meilleure est d'utiliser un dictionnaire qui fait correspondre les " -"chaînes de caractères à des fonctions. Le principal avantage de cette " -"technique est que les chaînes n'ont pas besoin d'être égales aux noms de " -"fonctions. C'est aussi la façon principale d'imiter la construction " -"\"case\" ::" - -#: faq/programming.rst:958 -msgid "Use the built-in function :func:`getattr`::" -msgstr "Utiliser la fonction :func:`getattr` ::" - -#: faq/programming.rst:963 -msgid "" -"Note that :func:`getattr` works on any object, including classes, class " -"instances, modules, and so on." -msgstr "" -"Notez que :func:`getattr` marche sur n'importe quel objet, ceci inclut les " -"classes, les instances de classes, les modules et ainsi de suite." - -#: faq/programming.rst:966 -msgid "This is used in several places in the standard library, like this::" -msgstr "" -"Ceci est utilisé à plusieurs reprises dans la bibliothèque standard, de " -"cette façon ::" - -#: faq/programming.rst:979 -msgid "Use :func:`locals` to resolve the function name::" -msgstr "Utilisez :func:`locals` pour résoudre le nom de la fonction ::" - -#: faq/programming.rst:991 -#, fuzzy -msgid "" -"Is there an equivalent to Perl's ``chomp()`` for removing trailing newlines " -"from strings?" -msgstr "" -"Existe-t-il un équivalent à la fonction ``chomp()`` de Perl, pour retirer " -"les caractères de fin de ligne d'une chaîne de caractères ?" - -#: faq/programming.rst:993 -msgid "" -"You can use ``S.rstrip(\"\\r\\n\")`` to remove all occurrences of any line " -"terminator from the end of the string ``S`` without removing other trailing " -"whitespace. If the string ``S`` represents more than one line, with several " -"empty lines at the end, the line terminators for all the blank lines will be " -"removed::" -msgstr "" -"Vous pouvez utiliser ``S.rstrip(\"\\r\\n\")`` pour retirer toutes les " -"occurrences de tout marqueur de fin de ligne à la fin d'une chaîne de " -"caractère ``S``, sans en enlever aucune espace. Si la chaîne ``S`` " -"représente plus d'une ligne, avec plusieurs lignes vides, les marqueurs de " -"fin de ligne de chaque ligne vide seront retirés ::" - -#: faq/programming.rst:1005 -msgid "" -"Since this is typically only desired when reading text one line at a time, " -"using ``S.rstrip()`` this way works well." -msgstr "" -"Vu que cela ne sert presque qu'à lire un texte ligne à ligne, utiliser " -"``S.rstrip()`` de cette manière fonctionne correctement." - -#: faq/programming.rst:1010 -#, fuzzy -msgid "Is there a ``scanf()`` or ``sscanf()`` equivalent?" -msgstr "Existe-t-il un équivalent à ``scanf()`` ou ``sscanf()`` ?" - -#: faq/programming.rst:1012 -msgid "Not as such." -msgstr "Pas exactement." - -#: faq/programming.rst:1014 -#, fuzzy -msgid "" -"For simple input parsing, the easiest approach is usually to split the line " -"into whitespace-delimited words using the :meth:`~str.split` method of " -"string objects and then convert decimal strings to numeric values " -"using :func:`int` or :func:`float`. :meth:`!split` supports an optional " -"\"sep\" parameter which is useful if the line uses something other than " -"whitespace as a separator." -msgstr "" -"Pour une simple analyse de chaîne, l'approche la plus simple est " -"généralement de découper la ligne en mots délimités par des espaces, en " -"utilisant la méthode :meth:`~str.split` des objets chaîne de caractères, et " -"ensuite de convertir les chaînes de décimaux en valeurs numériques en " -"utilisant la fonction :func:`int` ou :func:`float`. :meth:`!split()` possède " -"un paramètre optionnel \"sep\" qui est utile si la ligne utilise autre chose " -"que des espaces comme séparateurs." - -#: faq/programming.rst:1020 -msgid "" -"For more complicated input parsing, regular expressions are more powerful " -"than C's ``sscanf`` and better suited for the task." -msgstr "" -"Pour des analyses plus compliquées, les expressions rationnelles sont plus " -"puissantes que la fonction ``sscanf`` de C et mieux adaptées à la tâche." - -#: faq/programming.rst:1025 -#, fuzzy -msgid "What does ``UnicodeDecodeError`` or ``UnicodeEncodeError`` error mean?" -msgstr "" -"Que signifient les erreurs ``UnicodeDecodeError`` ou ``UnicodeEncodeError`` ?" - -#: faq/programming.rst:1027 -msgid "See the :ref:`unicode-howto`." -msgstr "Voir :ref:`unicode-howto`." - -#: faq/programming.rst:1033 -msgid "Can I end a raw string with an odd number of backslashes?" -msgstr "" - -#: faq/programming.rst:1035 -msgid "" -"A raw string ending with an odd number of backslashes will escape the " -"string's quote::" -msgstr "" - -#: faq/programming.rst:1043 -msgid "" -"There are several workarounds for this. One is to use regular strings and " -"double the backslashes::" -msgstr "" - -#: faq/programming.rst:1049 -msgid "" -"Another is to concatenate a regular string containing an escaped backslash " -"to the raw string::" -msgstr "" - -#: faq/programming.rst:1055 -msgid "" -"It is also possible to use :func:`os.path.join` to append a backslash on " -"Windows::" -msgstr "" - -#: faq/programming.rst:1060 -msgid "" -"Note that while a backslash will \"escape\" a quote for the purposes of " -"determining where the raw string ends, no escaping occurs when interpreting " -"the value of the raw string. That is, the backslash remains present in the " -"value of the raw string::" -msgstr "" - -#: faq/programming.rst:1068 -msgid "Also see the specification in the :ref:`language reference `." -msgstr "" - -#: faq/programming.rst:1072 -msgid "Performance" -msgstr "Performances" - -#: faq/programming.rst:1075 -msgid "My program is too slow. How do I speed it up?" -msgstr "Mon programme est trop lent. Comment l'accélérer ?" - -#: faq/programming.rst:1077 -#, fuzzy -msgid "" -"That's a tough one, in general. First, here is a list of things to remember " -"before diving further:" -msgstr "" -"Question difficile en général. Il faut garder en tête les points suivants " -"avant d'aller plus loin :" - -#: faq/programming.rst:1080 -msgid "" -"Performance characteristics vary across Python implementations. This FAQ " -"focuses on :term:`CPython`." -msgstr "" -"Les performances varient en fonction des implémentations de Python. Cette " -"FAQ ne traite que de :term:`CPython`." - -#: faq/programming.rst:1082 -msgid "" -"Behaviour can vary across operating systems, especially when talking about I/" -"O or multi-threading." -msgstr "" -"Les comportements peuvent différer d'un système d'exploitation à l'autre, " -"tout particulièrement quand il s'agit d'entrée/sortie ou de fils d'exécution " -"multiples." - -#: faq/programming.rst:1084 -msgid "" -"You should always find the hot spots in your program *before* attempting to " -"optimize any code (see the :mod:`profile` module)." -msgstr "" -"Il faut toujours essayer de trouver où sont les points de contention d'un " -"programme *avant* d'essayer d'optimiser du code (voir le " -"module :mod:`profile`)." - -#: faq/programming.rst:1086 -msgid "" -"Writing benchmark scripts will allow you to iterate quickly when searching " -"for improvements (see the :mod:`timeit` module)." -msgstr "" -"Écrire des scripts d'évaluation de performances permet de progresser " -"rapidement dans la recherche d'améliorations (voir le module :mod:`timeit`)." - -#: faq/programming.rst:1088 -msgid "" -"It is highly recommended to have good code coverage (through unit testing or " -"any other technique) before potentially introducing regressions hidden in " -"sophisticated optimizations." -msgstr "" -"Il est très fortement recommandé d'avoir une bonne couverture de code (avec " -"des tests unitaires ou autre) avant d'ajouter des erreurs dans des " -"optimisations sophistiquées." - -#: faq/programming.rst:1092 -msgid "" -"That being said, there are many tricks to speed up Python code. Here are " -"some general principles which go a long way towards reaching acceptable " -"performance levels:" -msgstr "" -"Ceci étant dit, il y a beaucoup d'astuces pour accélérer du code Python. " -"Voici quelques principes généraux qui peuvent aider à atteindre des niveaux " -"de performance satisfaisants :" - -#: faq/programming.rst:1096 -msgid "" -"Making your algorithms faster (or changing to faster ones) can yield much " -"larger benefits than trying to sprinkle micro-optimization tricks all over " -"your code." -msgstr "" -"Améliorer les algorithmes (ou en changer pour des plus performants) peut " -"produire de bien meilleurs résultats que d'optimiser çà et là de petites " -"portions du code." - -#: faq/programming.rst:1100 -msgid "" -"Use the right data structures. Study documentation for the :ref:`bltin-" -"types` and the :mod:`collections` module." -msgstr "" -"Utiliser les structures de données adaptées. Se référer à la documentation " -"des :ref:`bltin-types` et du module :mod:`collections`." - -#: faq/programming.rst:1103 -msgid "" -"When the standard library provides a primitive for doing something, it is " -"likely (although not guaranteed) to be faster than any alternative you may " -"come up with. This is doubly true for primitives written in C, such as " -"builtins and some extension types. For example, be sure to use either " -"the :meth:`list.sort` built-in method or the related :func:`sorted` function " -"to do sorting (and see the :ref:`sortinghowto` for examples of moderately " -"advanced usage)." -msgstr "" -"Quand la bibliothèque standard fournit une implémentation pour quelque " -"chose, il y a de fortes chances (même si ce n'est pas systématique) que " -"cette implémentation soit plus rapide que la vôtre. C'est d'autant plus vrai " -"pour les routines écrites en C, comme les routines natives et certaines " -"extensions de types. Par exemple, il faut utiliser la méthode " -"native :meth:`list.sort` ou la fonction :func:`sorted` similaire pour " -"classer (et se référer à la section :ref:`sortinghowto` pour des exemples " -"d'utilisation courante)." - -#: faq/programming.rst:1111 -msgid "" -"Abstractions tend to create indirections and force the interpreter to work " -"more. If the levels of indirection outweigh the amount of useful work done, " -"your program will be slower. You should avoid excessive abstraction, " -"especially under the form of tiny functions or methods (which are also often " -"detrimental to readability)." -msgstr "" -"Les abstractions ont tendance à créer des indirections et obligent " -"l'interpréteur à faire plus d'efforts. Si le niveau d'indirection dépasse la " -"quantité de travail effectif, le programme sera ralenti. Il faut toujours " -"éviter trop d'indirections, en particulier sous la forme de fonctions ou " -"méthodes trop petites (qui nuisent aussi souvent à la clarté du code)." - -#: faq/programming.rst:1117 -msgid "" -"If you have reached the limit of what pure Python can allow, there are tools " -"to take you further away. For example, `Cython `_ can " -"compile a slightly modified version of Python code into a C extension, and " -"can be used on many different platforms. Cython can take advantage of " -"compilation (and optional type annotations) to make your code significantly " -"faster than when interpreted. If you are confident in your C programming " -"skills, you can also :ref:`write a C extension module ` " -"yourself." -msgstr "" -"Si vous atteignez les limites de ce que du Python « pur » permet de faire, " -"il y a des outils qui permettent d'aller plus loin. Par exemple, `Cython " -"`_ peut compiler une version légèrement modifiée de code " -"Python en une extension C et est disponible sur de nombreuses plate-formes. " -"Cython peut bénéficier de la compilation (et de l'annotation, optionnelle, " -"des types) pour rendre votre code beaucoup plus rapide que s'il était " -"interprété. Si vous avez confiance en vos capacités de programmation en C, " -"vous pouvez aussi :ref:`écrire un module d'extension en C` " -"vous-même." - -#: faq/programming.rst:1127 -msgid "" -"The wiki page devoted to `performance tips `_." -msgstr "" -"La page wiki dédiée aux `astuces de performance `_." - -#: faq/programming.rst:1134 -msgid "What is the most efficient way to concatenate many strings together?" -msgstr "" -"Quelle est la manière la plus efficace de concaténer un grand nombre de " -"chaînes de caractères ?" - -#: faq/programming.rst:1136 -msgid "" -":class:`str` and :class:`bytes` objects are immutable, therefore " -"concatenating many strings together is inefficient as each concatenation " -"creates a new object. In the general case, the total runtime cost is " -"quadratic in the total string length." -msgstr "" -"Les objets :class:`str` et :class:`bytes` sont immuables, par conséquent " -"concaténer un grand nombre de chaînes de caractères entre elles n'est pas " -"très efficace car chaque concaténation crée un nouvel objet. Dans le cas " -"général, la complexité est quadratique par rapport à la taille totale de la " -"chaîne." - -#: faq/programming.rst:1141 -msgid "" -"To accumulate many :class:`str` objects, the recommended idiom is to place " -"them into a list and call :meth:`str.join` at the end::" -msgstr "" -"Pour mettre bout à bout un grand nombre d'objets :class:`str`, la technique " -"recommandée consiste à toutes les mettre dans une liste et appeler la " -"méthode :meth:`str.join` à la fin ::" - -#: faq/programming.rst:1149 -#, fuzzy -msgid "(Another reasonably efficient idiom is to use :class:`io.StringIO`.)" -msgstr "" -"(une autre technique relativement efficace consiste à " -"utiliser :class:`io.StringIO`)" - -#: faq/programming.rst:1151 -msgid "" -"To accumulate many :class:`bytes` objects, the recommended idiom is to " -"extend a :class:`bytearray` object using in-place concatenation (the ``+=`` " -"operator)::" -msgstr "" -"Pour concaténer un grand nombre d'objets :class:`bytes`, la technique " -"recommandée consiste à étendre un objet :class:`bytearray` en utilisant la " -"concaténation en-place (l'opérateur ``+=``) ::" - -#: faq/programming.rst:1160 -#, fuzzy -msgid "Sequences (tuples/lists)" -msgstr "Séquences (*n*-uplets / listes)" - -#: faq/programming.rst:1163 -msgid "How do I convert between tuples and lists?" -msgstr "Comment convertir les listes en *n*-uplets et inversement ?" - -#: faq/programming.rst:1165 -msgid "" -"The type constructor ``tuple(seq)`` converts any sequence (actually, any " -"iterable) into a tuple with the same items in the same order." -msgstr "" -"Le constructeur de type ``tuple(seq)`` convertit toute séquence (plus " -"précisément, tout itérable) en un *n*-uplet avec les mêmes éléments dans le " -"même ordre." - -#: faq/programming.rst:1168 -msgid "" -"For example, ``tuple([1, 2, 3])`` yields ``(1, 2, 3)`` and ``tuple('abc')`` " -"yields ``('a', 'b', 'c')``. If the argument is a tuple, it does not make a " -"copy but returns the same object, so it is cheap to call :func:`tuple` when " -"you aren't sure that an object is already a tuple." -msgstr "" -"Par exemple ``tuple([1, 2, 3])`` renvoie ``(1, 2, 3)`` et ``tuple('abc')`` " -"renvoie ``('a', 'b', 'c')``. Si l'argument est un *n*-uplet, cela ne crée " -"pas de copie, mais renvoie le même objet, ce qui fait de :func:`tuple` une " -"fonction économique à appeler quand vous ne savez pas si votre objet est " -"déjà un *n*-uplet." - -#: faq/programming.rst:1173 -msgid "" -"The type constructor ``list(seq)`` converts any sequence or iterable into a " -"list with the same items in the same order. For example, ``list((1, 2, " -"3))`` yields ``[1, 2, 3]`` and ``list('abc')`` yields ``['a', 'b', 'c']``. " -"If the argument is a list, it makes a copy just like ``seq[:]`` would." -msgstr "" -"Le constructeur de type ``list(seq)`` convertit toute séquence ou itérable " -"en liste contenant les mêmes éléments dans le même ordre. Par exemple, " -"``list((1,2,3))`` renvoie ``[1,2,3]`` et ``list('abc')`` renvoie " -"``['a','b','c']``. Si l'argument est une liste, il renvoie une copie, de la " -"même façon que ``seq[:]``." - -#: faq/programming.rst:1180 -msgid "What's a negative index?" -msgstr "Qu'est-ce qu'un indice négatif ?" - -#: faq/programming.rst:1182 -msgid "" -"Python sequences are indexed with positive numbers and negative numbers. " -"For positive numbers 0 is the first index 1 is the second index and so " -"forth. For negative indices -1 is the last index and -2 is the penultimate " -"(next to last) index and so forth. Think of ``seq[-n]`` as the same as " -"``seq[len(seq)-n]``." -msgstr "" -"Les séquences Python sont indicées avec des nombres positifs aussi bien que " -"négatifs. Pour les nombres positifs, 0 est le premier indice, 1 est le " -"deuxième, et ainsi de suite. Pour les indices négatifs, ``-1`` est le " -"dernier indice, ``-2`` est le pénultième (avant-dernier), et ainsi de suite. " -"On peut aussi dire que ``seq[-n]`` est équivalent à ``seq[len(seq)-n]``." - -#: faq/programming.rst:1187 -msgid "" -"Using negative indices can be very convenient. For example ``S[:-1]`` is " -"all of the string except for its last character, which is useful for " -"removing the trailing newline from a string." -msgstr "" -"Utiliser des indices négatifs peut être très pratique. Par exemple " -"``S[:-1]`` représente la chaîne tout entière à l'exception du dernier " -"caractère, ce qui est pratique pour retirer un caractère de fin de ligne à " -"la fin d'une chaîne." - -#: faq/programming.rst:1193 -msgid "How do I iterate over a sequence in reverse order?" -msgstr "Comment itérer à rebours sur une séquence ?" - -#: faq/programming.rst:1195 -msgid "Use the :func:`reversed` built-in function::" -msgstr "Utilisez la fonction native :func:`reversed` ::" - -#: faq/programming.rst:1200 -msgid "" -"This won't touch your original sequence, but build a new copy with reversed " -"order to iterate over." -msgstr "" -"Cela ne modifie pas la séquence initiale, mais construit à la place une " -"copie en ordre inverse pour itérer dessus." - -#: faq/programming.rst:1205 -msgid "How do you remove duplicates from a list?" -msgstr "Comment retirer les doublons d'une liste ?" - -#: faq/programming.rst:1207 -msgid "See the Python Cookbook for a long discussion of many ways to do this:" -msgstr "" -"Lisez le « livre de recettes » Python pour trouver une longue discussion sur " -"les nombreuses approches possibles :" - -#: faq/programming.rst:1209 -msgid "https://code.activestate.com/recipes/52560/" -msgstr "https://code.activestate.com/recipes/52560/" - -#: faq/programming.rst:1211 -msgid "" -"If you don't mind reordering the list, sort it and then scan from the end of " -"the list, deleting duplicates as you go::" -msgstr "" -"Si changer l'ordre de la liste ne vous dérange pas, commencez par ordonner " -"celle-ci, puis parcourez-la d'un bout à l'autre, en supprimant les doublons " -"trouvés en chemin ::" - -#: faq/programming.rst:1223 -#, fuzzy -msgid "" -"If all elements of the list may be used as set keys (that is, they are " -"all :term:`hashable`) this is often faster::" -msgstr "" -"Si tous les éléments de la liste peuvent être utilisés comme des clés de " -"dictionnaire (c'est-à-dire, qu'elles sont toutes :term:`hachables " -"`) ceci est souvent plus rapide ::" - -#: faq/programming.rst:1228 -msgid "" -"This converts the list into a set, thereby removing duplicates, and then " -"back into a list." -msgstr "" -"Ceci convertit la liste en un ensemble, ce qui supprime automatiquement les " -"doublons, puis la transforme à nouveau en liste." - -#: faq/programming.rst:1233 -#, fuzzy -msgid "How do you remove multiple items from a list?" -msgstr "Comment retirer les doublons d'une liste" - -#: faq/programming.rst:1235 -#, fuzzy -msgid "" -"As with removing duplicates, explicitly iterating in reverse with a delete " -"condition is one possibility. However, it is easier and faster to use slice " -"replacement with an implicit or explicit forward iteration. Here are three " -"variations::" -msgstr "" -"Comme pour supprimer les doublons, il est possible d’itérer explicitement à " -"l’envers avec une condition de suppression. Cependant, il est plus facile et " -"plus rapide d’utiliser le remplacement des tranches par une itération avant, " -"implicite ou explicite. Voici trois variantes ::" - -#: faq/programming.rst:1244 -msgid "The list comprehension may be fastest." -msgstr "La liste en compréhension est peut-être la plus rapide ::" - -#: faq/programming.rst:1248 -msgid "How do you make an array in Python?" -msgstr "Comment construire un tableau en Python ?" - -#: faq/programming.rst:1250 -msgid "Use a list::" -msgstr "Utilisez une liste ::" - -#: faq/programming.rst:1254 -msgid "" -"Lists are equivalent to C or Pascal arrays in their time complexity; the " -"primary difference is that a Python list can contain objects of many " -"different types." -msgstr "" -"Les listes ont un coût équivalent à celui des tableaux C ou Pascal ; la " -"principale différence est qu'une liste Python peut contenir des objets de " -"différents types." - -#: faq/programming.rst:1257 -#, fuzzy -msgid "" -"The ``array`` module also provides methods for creating arrays of fixed " -"types with compact representations, but they are slower to index than " -"lists. Also note that `NumPy `_ and other third-party " -"packages define array-like structures with various characteristics as well." -msgstr "" -"Le module ``array`` fournit des méthodes pour créer des tableaux de types " -"fixes dans une représentation compacte, mais ils sont plus lents à indexer " -"que les listes. Notez aussi que `NumPy `_ (et d'autres) " -"fournissent différentes structures de type tableaux, avec des " -"caractéristiques différentes." - -#: faq/programming.rst:1263 -msgid "" -"To get Lisp-style linked lists, you can emulate *cons cells* using tuples::" -msgstr "" -"Pour obtenir des listes chaînées à la sauce Lisp, vous pouvez émuler les " -"*cons cells* en utilisant des *n*-uplets ::" - -#: faq/programming.rst:1267 -msgid "" -"If mutability is desired, you could use lists instead of tuples. Here the " -"analogue of a Lisp *car* is ``lisp_list[0]`` and the analogue of *cdr* is " -"``lisp_list[1]``. Only do this if you're sure you really need to, because " -"it's usually a lot slower than using Python lists." -msgstr "" -"Si vous voulez pouvoir modifier les éléments, utilisez une liste plutôt " -"qu'un *n*-uplet. Ici la version équivalente du *car* de Lisp est " -"``lisp_list[0]`` et l'équivalent de *cdr* est ``lisp_list[1]``. Ne faites " -"ceci que si vous êtes réellement sûr d'en avoir besoin, cette méthode est en " -"général bien plus lente que les listes Python." - -#: faq/programming.rst:1276 -msgid "How do I create a multidimensional list?" -msgstr "Comment créer une liste à plusieurs dimensions ?" - -#: faq/programming.rst:1278 -msgid "You probably tried to make a multidimensional array like this::" -msgstr "" -"Vous avez probablement essayé de créer une liste à plusieurs dimensions de " -"cette façon ::" - -#: faq/programming.rst:1282 -msgid "This looks correct if you print it:" -msgstr "Elle semble correcte si on l'affiche :" - -#: faq/programming.rst:1293 -msgid "But when you assign a value, it shows up in multiple places:" -msgstr "" -"Mais quand vous affectez une valeur, celle-ci apparaît à plusieurs endroits :" - -#: faq/programming.rst:1305 -msgid "" -"The reason is that replicating a list with ``*`` doesn't create copies, it " -"only creates references to the existing objects. The ``*3`` creates a list " -"containing 3 references to the same list of length two. Changes to one row " -"will show in all rows, which is almost certainly not what you want." -msgstr "" -"Dupliquer une liste en utilisant ``*`` ne crée en réalité pas de copie mais " -"seulement des références aux objets existants. Le ``*3`` crée une liste " -"contenant trois références à la même liste de longueur deux. Un changement " -"dans une colonne apparaîtra donc dans toutes les colonnes, ce qui n'est très " -"probablement pas ce que vous souhaitiez." - -#: faq/programming.rst:1310 -msgid "" -"The suggested approach is to create a list of the desired length first and " -"then fill in each element with a newly created list::" -msgstr "" -"L'approche suggérée est d'abord de créer une liste de la longueur désirée, " -"puis de remplir tous les éléments avec une nouvelle chaîne ::" - -#: faq/programming.rst:1317 -msgid "" -"This generates a list containing 3 different lists of length two. You can " -"also use a list comprehension::" -msgstr "" -"Cela génère une liste contenant elle-même trois listes distinctes, de " -"longueur deux. Vous pouvez aussi utiliser la syntaxe des listes en " -"compréhension ::" - -#: faq/programming.rst:1323 -msgid "" -"Or, you can use an extension that provides a matrix datatype; `NumPy " -"`_ is the best known." -msgstr "" -"Vous pouvez aussi utiliser une extension qui fournit un type matriciel " -"natif ; `NumPy `_ est la plus répandue." - -#: faq/programming.rst:1328 -msgid "How do I apply a method or function to a sequence of objects?" -msgstr "" -"Comment appliquer une méthode ou une fonction à une séquence d'objets ?" - -#: faq/programming.rst:1330 -#, fuzzy -msgid "" -"To call a method or function and accumulate the return values in a list, " -"a :term:`list comprehension` is an elegant solution::" -msgstr "" -"Pour appeler une méthode ou une fonction et accumuler les valeurs renvoyées " -"dans une liste, une :term:`compréhension de liste ` est " -"une solution élégante ::" - -#: faq/programming.rst:1337 -msgid "" -"To just run the method or function without saving the return values, a " -"plain :keyword:`for` loop will suffice::" -msgstr "" - -#: faq/programming.rst:1350 -msgid "" -"Why does a_tuple[i] += ['item'] raise an exception when the addition works?" -msgstr "" -"Pourquoi ``a_tuple[i] += ['item']`` lève-t-il une exception alors que " -"l'addition fonctionne ?" - -#: faq/programming.rst:1352 -msgid "" -"This is because of a combination of the fact that augmented assignment " -"operators are *assignment* operators, and the difference between mutable and " -"immutable objects in Python." -msgstr "" -"Ceci est dû à la combinaison de deux facteurs : le fait que les opérateurs " -"d'affectation incrémentaux sont des opérateurs d'*affectation* et à la " -"différence entre les objets mutables et immuables en Python." - -#: faq/programming.rst:1356 -msgid "" -"This discussion applies in general when augmented assignment operators are " -"applied to elements of a tuple that point to mutable objects, but we'll use " -"a ``list`` and ``+=`` as our exemplar." -msgstr "" -"Cette discussion est valable, en général, quand des opérateurs d'affectation " -"incrémentale sont appliqués aux éléments d'un *n*-uplet qui pointe sur des " -"objets mutables, mais on prendra ``list`` et ``+=`` comme exemple." - -#: faq/programming.rst:1360 -msgid "If you wrote::" -msgstr "Si vous écrivez ::" - -#: faq/programming.rst:1368 -msgid "" -"The reason for the exception should be immediately clear: ``1`` is added to " -"the object ``a_tuple[0]`` points to (``1``), producing the result object, " -"``2``, but when we attempt to assign the result of the computation, ``2``, " -"to element ``0`` of the tuple, we get an error because we can't change what " -"an element of a tuple points to." -msgstr "" -"La cause de l'exception est claire : ``1`` est ajouté à l'objet " -"``a_tuple[0]`` qui pointe sur (``1``), ce qui produit l'objet résultant " -"``2``, mais, lorsque l'on tente d'affecter le résultat du calcul, ``2``, à " -"l'élément ``0`` du *n*-uplet, on obtient une erreur car il est impossible de " -"modifier la cible sur laquelle pointe un élément d'un *n*-uplet." - -#: faq/programming.rst:1374 -msgid "" -"Under the covers, what this augmented assignment statement is doing is " -"approximately this::" -msgstr "" -"Sous le capot, une instruction d'affectation incrémentale fait à peu près " -"ceci ::" - -#: faq/programming.rst:1383 -msgid "" -"It is the assignment part of the operation that produces the error, since a " -"tuple is immutable." -msgstr "" -"C'est la partie de l'affectation de l'opération qui génère l'erreur, vu " -"qu'un *n*-uplet est immuable." - -#: faq/programming.rst:1386 -msgid "When you write something like::" -msgstr "Quand vous écrivez un code du style ::" - -#: faq/programming.rst:1394 -msgid "" -"The exception is a bit more surprising, and even more surprising is the fact " -"that even though there was an error, the append worked::" -msgstr "" -"L'exception est un peu plus surprenante et, chose encore plus étrange, " -"malgré l'erreur, l'ajout a fonctionné ::" - -#: faq/programming.rst:1400 -#, fuzzy -msgid "" -"To see why this happens, you need to know that (a) if an object implements " -"an :meth:`~object.__iadd__` magic method, it gets called when the ``+=`` " -"augmented assignment is executed, and its return value is what gets used in " -"the assignment statement; and (b) for lists, :meth:`!__iadd__` is equivalent " -"to calling :meth:`~sequence.extend` on the list and returning the list. " -"That's why we say that for lists, ``+=`` is a \"shorthand\" " -"for :meth:`list.extend`::" -msgstr "" -"Pour comprendre ce qui se passe, il faut savoir que, premièrement, si un " -"objet implémente la méthode magique :meth:`~object.__iadd__` , celle-ci est " -"appelée quand l'affectation incrémentale ``+=`` est exécutée et sa valeur de " -"retour est utilisée dans l'instruction d'affectation ; et que, deuxièmement, " -"pour les listes, :meth:`!__iadd__` équivaut à appeler :meth:`~list.extend` " -"sur la liste et à renvoyer celle-ci. C'est pour cette raison que l'on dit " -"que pour les listes, ``+=`` est un \"raccourci\" pour :meth:`!list.extend` ::" - -#: faq/programming.rst:1413 -msgid "This is equivalent to::" -msgstr "C’est équivalent à ::" - -#: faq/programming.rst:1418 -msgid "" -"The object pointed to by a_list has been mutated, and the pointer to the " -"mutated object is assigned back to ``a_list``. The end result of the " -"assignment is a no-op, since it is a pointer to the same object that " -"``a_list`` was previously pointing to, but the assignment still happens." -msgstr "" -"L'objet sur lequel pointe ``a_list`` a été modifié et le pointeur vers " -"l'objet modifié est réaffecté à ``a_list``. *In fine*, l'affectation ne " -"change rien, puisque c'est un pointeur vers le même objet que sur lequel " -"pointait ``a_list``, mais l'affectation a tout de même lieu." - -#: faq/programming.rst:1423 -msgid "Thus, in our tuple example what is happening is equivalent to::" -msgstr "" -"Donc, dans notre exemple avec un *n*-uplet, il se passe quelque chose " -"équivalent à ::" - -#: faq/programming.rst:1431 -msgid "" -"The :meth:`!__iadd__` succeeds, and thus the list is extended, but even " -"though ``result`` points to the same object that ``a_tuple[0]`` already " -"points to, that final assignment still results in an error, because tuples " -"are immutable." -msgstr "" -"L'appel à :meth:`!__iadd__` réussit et la liste est étendue, mais bien que " -"``result`` pointe sur le même objet que ``a_tuple[0]``, l'affectation finale " -"échoue car les *n*-uplets ne sont pas mutables." - -#: faq/programming.rst:1437 -msgid "" -"I want to do a complicated sort: can you do a Schwartzian Transform in " -"Python?" -msgstr "" -"Je souhaite faire un classement compliqué : peut-on faire une transformation " -"de Schwartz en Python ?" - -#: faq/programming.rst:1439 -msgid "" -"The technique, attributed to Randal Schwartz of the Perl community, sorts " -"the elements of a list by a metric which maps each element to its \"sort " -"value\". In Python, use the ``key`` argument for the :meth:`list.sort` " -"method::" -msgstr "" -"Cette technique, attribuée à Randal Schwartz de la communauté Perl, ordonne " -"les éléments d'une liste à l'aide une transformation qui fait correspondre " -"chaque élément à sa \"valeur de tri\". En Python, ceci est géré par " -"l'argument ``key`` de la méthode :meth:`list.sort` ::" - -#: faq/programming.rst:1448 -msgid "How can I sort one list by values from another list?" -msgstr "Comment ordonner une liste en fonction des valeurs d'une autre liste ?" - -#: faq/programming.rst:1450 -#, fuzzy -msgid "" -"Merge them into an iterator of tuples, sort the resulting list, and then " -"pick out the element you want." -msgstr "" -"Fusionnez-les dans un itérateur de *n*-uplets, ordonnez la liste obtenue, " -"puis choisissez l'élément que vous voulez ::" - -#: faq/programming.rst:1465 -msgid "Objects" -msgstr "Objets" - -#: faq/programming.rst:1468 -msgid "What is a class?" -msgstr "Qu'est-ce qu'une classe ?" - -#: faq/programming.rst:1470 -msgid "" -"A class is the particular object type created by executing a class " -"statement. Class objects are used as templates to create instance objects, " -"which embody both the data (attributes) and code (methods) specific to a " -"datatype." -msgstr "" -"Une classe est le type d'objet particulier créé par l'exécution d'une " -"déclaration de classe. Les objets de classe sont utilisés comme modèles pour " -"créer des objets, qui incarnent à la fois les données (attributs) et le code " -"(méthodes) spécifiques à un type de données." - -#: faq/programming.rst:1474 -msgid "" -"A class can be based on one or more other classes, called its base " -"class(es). It then inherits the attributes and methods of its base classes. " -"This allows an object model to be successively refined by inheritance. You " -"might have a generic ``Mailbox`` class that provides basic accessor methods " -"for a mailbox, and subclasses such as ``MboxMailbox``, ``MaildirMailbox``, " -"``OutlookMailbox`` that handle various specific mailbox formats." -msgstr "" -"Une classe peut être fondée sur une ou plusieurs autres classes, appelée sa " -"(ou ses) classe(s) de base. Elle hérite alors des attributs et des méthodes " -"de ses classes mères. Cela permet à un modèle d'objet d'être successivement " -"raffiné par héritage. Vous pourriez avoir une classe générique ``Mailbox``, " -"qui fournit des méthodes d'accès de base pour une boîte aux lettres, et des " -"sous-classes telles que ``MboxMailbox``, ``MaildirMailbox``, " -"``OutlookMailbox`` qui gèrent les plusieurs formats spécifiques de boîtes " -"aux lettres." - -#: faq/programming.rst:1483 -msgid "What is a method?" -msgstr "Qu'est-ce qu'une méthode ?" - -#: faq/programming.rst:1485 -msgid "" -"A method is a function on some object ``x`` that you normally call as " -"``x.name(arguments...)``. Methods are defined as functions inside the class " -"definition::" -msgstr "" -"Une méthode est une fonction sur un objet ``x`` qu'on appelle de manière " -"générale sous la forme ``x.name(arguments…)``. Les méthodes sont définies " -"comme des fonctions à l'intérieur de la définition de classe ::" - -#: faq/programming.rst:1495 -msgid "What is self?" -msgstr "Qu'est-ce que self ?" - -#: faq/programming.rst:1497 -msgid "" -"Self is merely a conventional name for the first argument of a method. A " -"method defined as ``meth(self, a, b, c)`` should be called as ``x.meth(a, b, " -"c)`` for some instance ``x`` of the class in which the definition occurs; " -"the called method will think it is called as ``meth(x, a, b, c)``." -msgstr "" -"Par convention, le premier argument d'une méthode est appelé self. Une " -"méthode ``meth(self, a, b, c)`` doit être appelée sous la forme ``x.meth(a, " -"b, c)`` où ``x`` est une instance de la classe dans laquelle cette méthode " -"est définie ; tout se passe comme si la méthode était appelée comme " -"``meth(x, a, b, c)``." - -#: faq/programming.rst:1502 -msgid "See also :ref:`why-self`." -msgstr "Voir aussi :ref:`why-self`." - -#: faq/programming.rst:1506 -msgid "" -"How do I check if an object is an instance of a given class or of a subclass " -"of it?" -msgstr "" -"Comment vérifier si un objet est une instance d'une classe donnée ou d'une " -"sous-classe de celle-ci ?" - -#: faq/programming.rst:1508 -#, fuzzy -msgid "" -"Use the built-in function :func:`isinstance(obj, cls) `. You " -"can check if an object is an instance of any of a number of classes by " -"providing a tuple instead of a single class, for example, ``isinstance(obj, " -"(class1, class2, ...))``, and can also check whether an object is one of " -"Python's built-in types, for example, ``isinstance(obj, str)`` or " -"``isinstance(obj, (int, float, complex))``." -msgstr "" -"Utilisez la fonction native :func:`isinstance(obj, cls) `. Vous " -"pouvez vérifier qu'un objet est une instance de plusieurs classes à la fois " -"en fournissant un *n*-uplet à la place d'une seule classe, par exemple, " -"``isinstance(obj, (class1, class2, ...))``. Vous pouvez également vérifier " -"qu'un objet est l'un des types natifs de Python, par exemple " -"``isinstance(obj, str)`` ou ``isinstance(obj, (int, float, complex))``." - -#: faq/programming.rst:1515 -#, fuzzy -msgid "" -"Note that :func:`isinstance` also checks for virtual inheritance from " -"an :term:`abstract base class`. So, the test will return ``True`` for a " -"registered class even if hasn't directly or indirectly inherited from it. " -"To test for \"true inheritance\", scan the :term:`method resolution order` " -"(MRO) of the class:" -msgstr "" -"Notez que :func:`isinstance` prend aussi en compte l'héritage virtuel " -"d'une :term:`classe abstraite `, c'est à dire " -"qu'elle renvoie ``True`` pour une classe A enregistrée auprès d'une classe " -"abstraite B même si A n'est pas directement ou indirectement une classe " -"fille de B. Pour vérifier l'héritage dans le sens plus restreint, parcourez " -"l'\\ :term:`ordre de résolution des méthodes ` de la classe :" - -#: faq/programming.rst:1551 -msgid "" -"Note that most programs do not use :func:`isinstance` on user-defined " -"classes very often. If you are developing the classes yourself, a more " -"proper object-oriented style is to define methods on the classes that " -"encapsulate a particular behaviour, instead of checking the object's class " -"and doing a different thing based on what class it is. For example, if you " -"have a function that does something::" -msgstr "" -"Notez que la plupart des programmes n'utilisent que " -"rarement :func:`isInstance` sur les classes définies par l'utilisateur. Si " -"vous développez vous-même des classes, une approche plus orientée-objet " -"consiste définir des méthodes sur les classes qui sont porteuses d'un " -"comportement particulier, plutôt que de vérifier la classe de l'objet et de " -"faire un traitement ad-hoc. Par exemple, si vous avez une fonction qui fait " -"quelque chose ::" - -#: faq/programming.rst:1565 -msgid "" -"A better approach is to define a ``search()`` method on all the classes and " -"just call it::" -msgstr "" -"Une meilleure approche est de définir une méthode ``search()`` dans toutes " -"les classes et qu'il suffit d'appeler de la manière suivante ::" - -#: faq/programming.rst:1580 -msgid "What is delegation?" -msgstr "Qu'est-ce que la délégation ?" - -#: faq/programming.rst:1582 -#, fuzzy -msgid "" -"Delegation is an object-oriented technique (also called a design pattern). " -"Let's say you have an object ``x`` and want to change the behaviour of just " -"one of its methods. You can create a new class that provides a new " -"implementation of the method you're interested in changing and delegates all " -"other methods to the corresponding method of ``x``." -msgstr "" -"La délégation est une technique orientée objet (aussi appelée « patron de " -"conception). Prenons un objet ``x`` dont on souhaite modifier le " -"comportement d'une seule de ses méthodes. On peut créer une nouvelle classe " -"qui fournit une nouvelle implémentation de la méthode qui nous intéresse " -"dans l'évolution et qui délègue toute autre méthode à la méthode " -"correspondante de ``x``." - -#: faq/programming.rst:1588 -msgid "" -"Python programmers can easily implement delegation. For example, the " -"following class implements a class that behaves like a file but converts all " -"written data to uppercase::" -msgstr "" -"Les programmeurs Python peuvent facilement mettre en œuvre la délégation. " -"Par exemple, la classe suivante implémente une classe qui se comporte comme " -"un fichier, mais convertit toutes les données écrites en majuscules ::" - -#: faq/programming.rst:1603 -#, fuzzy -msgid "" -"Here the ``UpperOut`` class redefines the ``write()`` method to convert the " -"argument string to uppercase before calling the underlying " -"``self._outfile.write()`` method. All other methods are delegated to the " -"underlying ``self._outfile`` object. The delegation is accomplished via " -"the :meth:`~object.__getattr__` method; consult :ref:`the language reference " -"` for more information about controlling attribute access." -msgstr "" -"Ici, la classe ``UpperOut`` redéfinit la méthode ``write()`` pour convertir " -"la chaîne de caractères donnée en argument en majuscules avant d'appeler la " -"méthode sous-jacente ``self._outfile.write()``. Toutes les autres méthodes " -"sont déléguées à l'objet sous-jacent ``self._outfile``. La délégation se " -"fait par la méthode ``__getattr__``, consulter :ref:`the language reference " -"` pour plus d'informations sur la personnalisation de " -"l’accès aux attributs." - -#: faq/programming.rst:1610 -#, fuzzy -msgid "" -"Note that for more general cases delegation can get trickier. When " -"attributes must be set as well as retrieved, the class must define " -"a :meth:`~object.__setattr__` method too, and it must do so carefully. The " -"basic implementation of :meth:`!__setattr__` is roughly equivalent to the " -"following::" -msgstr "" -"Notez que pour une utilisation plus générale de la délégation, les choses " -"peuvent se compliquer. Lorsque les attributs doivent être définis aussi bien " -"que récupérés, la classe doit définir une méthode :meth:`__setattr__` aussi, " -"et il doit le faire avec soin. La mise en œuvre basique de la " -"méthode :meth:`__setattr__` est à peu près équivalent à ce qui suit ::" - -#: faq/programming.rst:1621 -#, fuzzy -msgid "" -"Many :meth:`~object.__setattr__` implementations call :meth:`!" -"object.__setattr__` to set an attribute on self without causing infinite " -"recursion::" -msgstr "" -"La plupart des implémentations de :meth:`__setattr__` doivent modifier " -"``self.__dict__`` pour stocker l'état local de self sans provoquer une " -"récursion infinie." - -#: faq/programming.rst:1629 -msgid "" -"Alternatively, it is possible to set attributes by inserting entries " -"into :attr:`self.__dict__ ` directly." -msgstr "" - -#: faq/programming.rst:1634 -msgid "" -"How do I call a method defined in a base class from a derived class that " -"extends it?" -msgstr "" -"Comment appeler une méthode définie dans une classe mère depuis une classe " -"dérivée qui la surcharge ?" - -#: faq/programming.rst:1636 -msgid "Use the built-in :func:`super` function::" -msgstr "Utilisez la fonction native :func:`super` ::" - -#: faq/programming.rst:1642 -msgid "" -"In the example, :func:`super` will automatically determine the instance from " -"which it was called (the ``self`` value), look up the :term:`method " -"resolution order` (MRO) with ``type(self).__mro__``, and return the next in " -"line after ``Derived`` in the MRO: ``Base``." -msgstr "" -"Dans cet exemple, :func:`super` détermine automatiquement l'instance dont " -"une méthode l'appelle (l'objet ``self``), observe l'\\ :term:`ordre de " -"résolution des méthodes ` obtenu avec " -"``type(self).__mro__``, et renvoie la classe qui suit ``Derived`` dans cet " -"ordre, donc ``Base``." - -#: faq/programming.rst:1649 -msgid "How can I organize my code to make it easier to change the base class?" -msgstr "" -"Comment organiser un code pour permettre de changer la classe mère plus " -"facilement ?" - -#: faq/programming.rst:1651 -#, fuzzy -msgid "" -"You could assign the base class to an alias and derive from the alias. Then " -"all you have to change is the value assigned to the alias. Incidentally, " -"this trick is also handy if you want to decide dynamically (such as " -"depending on availability of resources) which base class to use. Example::" -msgstr "" -"Vous pouvez définir un alias pour la classe mère et dériver depuis l'alias. " -"Ensuite, tout ce que vous devez changer est la valeur attribuée à cet alias. " -"Accessoirement, cette astuce est également utile pour déterminer " -"dynamiquement (par exemple en fonction de la disponibilité de certaines " -"ressources) la classe mère à utiliser. Exemple ::" - -#: faq/programming.rst:1666 -msgid "How do I create static class data and static class methods?" -msgstr "" -"Comment créer des données statiques de classe et des méthodes statiques de " -"classe ?" - -#: faq/programming.rst:1668 -msgid "" -"Both static data and static methods (in the sense of C++ or Java) are " -"supported in Python." -msgstr "" -"Les données statiques et les méthodes statiques (au sens C++ ou Java) sont " -"prises en charge en Python." - -#: faq/programming.rst:1671 -msgid "" -"For static data, simply define a class attribute. To assign a new value to " -"the attribute, you have to explicitly use the class name in the assignment::" -msgstr "" -"Pour les données statiques, il suffit de définir un attribut de classe. Pour " -"attribuer une nouvelle valeur à l'attribut, vous devez explicitement " -"utiliser le nom de classe dans l'affectation ::" - -#: faq/programming.rst:1683 -msgid "" -"``c.count`` also refers to ``C.count`` for any ``c`` such that " -"``isinstance(c, C)`` holds, unless overridden by ``c`` itself or by some " -"class on the base-class search path from ``c.__class__`` back to ``C``." -msgstr "" -"``c.count`` se réfère également à ``C.count`` pour tout ``c`` tel que " -"``isInstance (c, C)`` est vrai, sauf remplacement par ``c`` lui-même ou par " -"une classe sur le chemin de recherche de classe mère de ``c.__class__`` " -"jusqu'à ``C``." - -#: faq/programming.rst:1687 -msgid "" -"Caution: within a method of C, an assignment like ``self.count = 42`` " -"creates a new and unrelated instance named \"count\" in ``self``'s own " -"dict. Rebinding of a class-static data name must always specify the class " -"whether inside a method or not::" -msgstr "" -"Attention : dans une méthode de C, une affectation comme ``self.count = 42`` " -"crée une nouvelle instance sans rapport avec le nom ``count`` dans le " -"dictionnaire de données de ``self``. La redéfinition d'une donnée statique " -"de classe doit toujours spécifier la classe, que l'on soit à l'intérieur " -"d'une méthode ou non ::" - -#: faq/programming.rst:1694 -msgid "Static methods are possible::" -msgstr "Il est possible d'utiliser des méthodes statiques ::" - -#: faq/programming.rst:1702 -msgid "" -"However, a far more straightforward way to get the effect of a static method " -"is via a simple module-level function::" -msgstr "" -"Cependant, d'une manière beaucoup plus simple pour obtenir l'effet d'une " -"méthode statique se fait par une simple fonction au niveau du module ::" - -#: faq/programming.rst:1708 -msgid "" -"If your code is structured so as to define one class (or tightly related " -"class hierarchy) per module, this supplies the desired encapsulation." -msgstr "" -"Si votre code est structuré de manière à définir une classe (ou bien la " -"hiérarchie des classes connexes) par module, ceci fournira l'encapsulation " -"souhaitée." - -#: faq/programming.rst:1713 -msgid "How can I overload constructors (or methods) in Python?" -msgstr "Comment surcharger les constructeurs (ou méthodes) en Python ?" - -#: faq/programming.rst:1715 -msgid "" -"This answer actually applies to all methods, but the question usually comes " -"up first in the context of constructors." -msgstr "" -"Cette réponse s'applique en fait à toutes les méthodes, mais la question se " -"pose généralement dans le contexte des constructeurs." - -#: faq/programming.rst:1718 -#, fuzzy -msgid "In C++ you'd write:" -msgstr "En C++, on écrirait" - -#: faq/programming.rst:1727 -msgid "" -"In Python you have to write a single constructor that catches all cases " -"using default arguments. For example::" -msgstr "" -"En Python, vous devez écrire un constructeur unique qui considère tous les " -"cas en utilisant des arguments par défaut. Par exemple ::" - -#: faq/programming.rst:1737 -msgid "This is not entirely equivalent, but close enough in practice." -msgstr "" -"Ce n'est pas tout à fait équivalent, mais suffisamment proche dans la " -"pratique." - -#: faq/programming.rst:1739 -#, fuzzy -msgid "You could also try a variable-length argument list, for example::" -msgstr "" -"Vous pouvez aussi utiliser une liste d'arguments de longueur variable, par " -"exemple ::" - -#: faq/programming.rst:1744 -msgid "The same approach works for all method definitions." -msgstr "La même approche fonctionne pour toutes les définitions de méthode." - -#: faq/programming.rst:1748 -msgid "I try to use __spam and I get an error about _SomeClassName__spam." -msgstr "" -"J'essaie d'utiliser ``__spam`` et j'obtiens une erreur à propos de " -"``_SomeClassName__spam``." - -#: faq/programming.rst:1750 -msgid "" -"Variable names with double leading underscores are \"mangled\" to provide a " -"simple but effective way to define class private variables. Any identifier " -"of the form ``__spam`` (at least two leading underscores, at most one " -"trailing underscore) is textually replaced with ``_classname__spam``, where " -"``classname`` is the current class name with any leading underscores " -"stripped." -msgstr "" -"Les noms de variables commençant avec deux tirets bas sont « déformés », " -"c'est un moyen simple mais efficace de définir des variables privées à une " -"classe. Tout identifiant de la forme ``__spam`` (commençant par au moins " -"deux tirets bas et se terminant par au plus un tiret bas) est textuellement " -"remplacé par ``_classname__spam``, où ``classname`` est le nom de la classe " -"en cours sans les éventuels tirets bas du début." - -#: faq/programming.rst:1756 -msgid "" -"The identifier can be used unchanged within the class, but to access it " -"outside the class, the mangled name must be used:" -msgstr "" - -#: faq/programming.rst:1773 -#, fuzzy -msgid "" -"In particular, this does not guarantee privacy since an outside user can " -"still deliberately access the private attribute; many Python programmers " -"never bother to use private variable names at all." -msgstr "" -"Cela ne garantit aucune protection : un utilisateur extérieur peut encore " -"délibérément accéder à l'attribut ``_classname__spam`` et les valeurs " -"privées sont visibles dans l'objet ``__dict__``. De nombreux programmeurs " -"Python ne prennent jamais la peine d'utiliser des noms de variable privés." - -#: faq/programming.rst:1779 -msgid "" -"The :ref:`private name mangling specifications ` for " -"details and special cases." -msgstr "" -"La :ref:`spécification des transformations de noms ` " -"pour les détails et cas particuliers." - -#: faq/programming.rst:1784 -msgid "My class defines __del__ but it is not called when I delete the object." -msgstr "" -"Ma classe définit ``__del__`` mais elle n'est pas appelée lorsque je " -"supprime l'objet." - -#: faq/programming.rst:1786 -msgid "There are several possible reasons for this." -msgstr "Il y a plusieurs explications possibles." - -#: faq/programming.rst:1788 -#, fuzzy -msgid "" -"The :keyword:`del` statement does not necessarily " -"call :meth:`~object.__del__` -- it simply decrements the object's reference " -"count, and if this reaches zero :meth:`!__del__` is called." -msgstr "" -"La commande *del* n'appelle pas forcément :meth:`__del__` — elle décrémente " -"simplement le compteur de références de l'objet et, si celui-ci arrive à " -"zéro, :meth:`__del__` est appelée." - -#: faq/programming.rst:1792 -#, fuzzy -msgid "" -"If your data structures contain circular links (for example, a tree where " -"each child has a parent reference and each parent has a list of children) " -"the reference counts will never go back to zero. Once in a while Python " -"runs an algorithm to detect such cycles, but the garbage collector might run " -"some time after the last reference to your data structure vanishes, so " -"your :meth:`!__del__` method may be called at an inconvenient and random " -"time. This is inconvenient if you're trying to reproduce a problem. Worse, " -"the order in which object's :meth:`!__del__` methods are executed is " -"arbitrary. You can run :func:`gc.collect` to force a collection, but there " -"*are* pathological cases where objects will never be collected." -msgstr "" -"Si la structure de données contient des références circulaires (par exemple " -"un arbre dans lequel chaque fils référence son père, et chaque père garde " -"une liste de ses fils), le compteur de références n'arrivera jamais à zéro. " -"Python exécute périodiquement un algorithme pour détecter ce genre de " -"cycles, mais il peut se passer un certain temps entre le moment où la " -"structure est référencée pour la dernière fois et l'appel du ramasse-" -"miettes, donc la méthode :meth:`__del__` peut être appelée à un moment " -"aléatoire et pas opportun. C'est gênant pour essayer reproduire un problème. " -"Pire, l'ordre dans lequel les méthodes :meth:`__del__` des objets sont " -"appelées est arbitraire. Il est possible de forcer l'appel du ramasse-" -"miettes avec la fonction :func:`gc.collect`, mais il existe certains cas où " -"les objets ne seront jamais nettoyés." - -#: faq/programming.rst:1803 -#, fuzzy -msgid "" -"Despite the cycle collector, it's still a good idea to define an explicit " -"``close()`` method on objects to be called whenever you're done with them. " -"The ``close()`` method can then remove attributes that refer to subobjects. " -"Don't call :meth:`!__del__` directly -- :meth:`!__del__` should call " -"``close()`` and ``close()`` should make sure that it can be called more than " -"once for the same object." -msgstr "" -"Bien que le ramasse-miette de cycles existe, il est tout de même recommandé " -"de définir une méthode ``close()`` explicite sur des objets, et de l'appeler " -"quand leur cycle de vie s'achève. Cette méthode ``close()`` peut alors " -"supprimer les attributs qui référencent des sous-objets. Il vaut mieux ne " -"pas appeler la méthode :meth:`__del__` directement, mais la " -"méthode :meth:`__del__` devrait appeler la méthode ``close()`` et " -"``close()`` doit pouvoir être appelée plusieurs fois sur le même objet." - -#: faq/programming.rst:1810 -msgid "" -"Another way to avoid cyclical references is to use the :mod:`weakref` " -"module, which allows you to point to objects without incrementing their " -"reference count. Tree data structures, for instance, should use weak " -"references for their parent and sibling references (if they need them!)." -msgstr "" -"Une alternative pour éviter les références cycliques consiste à utiliser le " -"module :mod:`weakref`, qui permet de faire référence à des objets sans " -"incrémenter leur compteur de références. Par exemple, les structures " -"d'arbres devraient utiliser des références faibles entre pères et fils (si " -"nécessaire !)." - -#: faq/programming.rst:1823 -#, fuzzy -msgid "" -"Finally, if your :meth:`!__del__` method raises an exception, a warning " -"message is printed to :data:`sys.stderr`." -msgstr "" -"Enfin, si la méthode :meth:`__del__` lève une exception, un message " -"d'avertissement s'affiche dans :data:`sys.stderr`." - -#: faq/programming.rst:1828 -msgid "How do I get a list of all instances of a given class?" -msgstr "Comment obtenir toutes les instances d'une classe ?" - -#: faq/programming.rst:1830 -msgid "" -"Python does not keep track of all instances of a class (or of a built-in " -"type). You can program the class's constructor to keep track of all " -"instances by keeping a list of weak references to each instance." -msgstr "" -"Python ne tient pas de registre de toutes les instances d'une classe (ni de " -"n'importe quel type natif). Il est cependant possible de programmer le " -"constructeur de la classe de façon à tenir un tel registre, en maintenant " -"une liste de références faibles vers chaque instance." - -#: faq/programming.rst:1836 -msgid "Why does the result of ``id()`` appear to be not unique?" -msgstr "" -"Pourquoi le résultat de ``id()`` peut-il être le même pour deux objets " -"différents ?" - -#: faq/programming.rst:1838 -msgid "" -"The :func:`id` builtin returns an integer that is guaranteed to be unique " -"during the lifetime of the object. Since in CPython, this is the object's " -"memory address, it happens frequently that after an object is deleted from " -"memory, the next freshly created object is allocated at the same position in " -"memory. This is illustrated by this example:" -msgstr "" -"La fonction native :func:`id` renvoie un entier dont l'unicité est garantie " -"durant toute la vie de l'objet. Vu qu'en CPython cet entier est en réalité " -"l'adresse mémoire de l'objet, il est fréquent qu'un nouvel objet soit alloué " -"à une adresse mémoire identique à celle d'un objet venant d'être supprimé. " -"Comme l'illustre le code suivant :" - -#: faq/programming.rst:1849 -msgid "" -"The two ids belong to different integer objects that are created before, and " -"deleted immediately after execution of the ``id()`` call. To be sure that " -"objects whose id you want to examine are still alive, create another " -"reference to the object:" -msgstr "" -"Les deux identifiants appartiennent à des objets entiers créés juste avant " -"l'appel à ``id()`` et détruits immédiatement après. Pour s'assurer que les " -"objets dont on veut examiner les identifiants sont toujours en vie, créons " -"une nouvelle référence à l'objet :" - -#: faq/programming.rst:1864 -msgid "When can I rely on identity tests with the *is* operator?" -msgstr "Quand puis-je raisonnablement utiliser le test d'identité *is* ?" - -#: faq/programming.rst:1866 -msgid "" -"The ``is`` operator tests for object identity. The test ``a is b`` is " -"equivalent to ``id(a) == id(b)``." -msgstr "" -"L'opérateur ``is`` détermine si deux objets sont identiques, c'est-à-dire le " -"même objet. Le test ``a is b`` est équivalent à ``id(a) == id(b)``." - -#: faq/programming.rst:1869 -msgid "" -"The most important property of an identity test is that an object is always " -"identical to itself, ``a is a`` always returns ``True``. Identity tests are " -"usually faster than equality tests. And unlike equality tests, identity " -"tests are guaranteed to return a boolean ``True`` or ``False``." -msgstr "" -"La propriété la plus importante du test d'identité est qu'un objet est " -"toujours identique à lui-même. Quelle que soit la valeur de *a*, ``a is a`` " -"vaut toujours ``True``. Un test d'identité est généralement plus rapide " -"qu'un test d'égalité. De plus, contrairement à l'opérateur ``==``, " -"l'opérateur ``is`` renvoie toujours un booléen, ``True`` ou ``False``." - -#: faq/programming.rst:1874 -msgid "" -"However, identity tests can *only* be substituted for equality tests when " -"object identity is assured. Generally, there are three circumstances where " -"identity is guaranteed:" -msgstr "" -"Cependant, les tests d'identité ne peuvent remplacer les tests d'égalité que " -"si l'identité est garantie. C'est le cas dans les trois situations " -"suivantes :" - -#: faq/programming.rst:1878 -#, fuzzy -msgid "" -"Assignments create new names but do not change object identity. After the " -"assignment ``new = old``, it is guaranteed that ``new is old``." -msgstr "" -"1) Les affectations créent de nouvelles variables, mais pas de nouveaux " -"objets. Après l'affectation ``nouveau = ancien``, ``nouveau is ancien`` vaut " -"toujours ``True``." - -#: faq/programming.rst:1881 -#, fuzzy -msgid "" -"Putting an object in a container that stores object references does not " -"change object identity. After the list assignment ``s[0] = x``, it is " -"guaranteed that ``s[0] is x``." -msgstr "" -"Le stockage d'un objet dans un conteneur qui fonctionne avec des références " -"n'altère pas l'identité. Si ``s`` est une liste, alors après l'affectation " -"de *x* à l'indice 0, ``s[0] = x``, le test ``s[0] is x`` s'évalue forcément " -"à ``True``." - -#: faq/programming.rst:1885 -#, fuzzy -msgid "" -"If an object is a singleton, it means that only one instance of that object " -"can exist. After the assignments ``a = None`` and ``b = None``, it is " -"guaranteed that ``a is b`` because ``None`` is a singleton." -msgstr "" -"3) Les singletons sont des objets spéciaux qui ne sont jamais dupliqués. " -"Après les affectations ``a = None`` et ``b = None``, on a forcément ``a is " -"b``, puisque ``None`` est un singleton." - -#: faq/programming.rst:1889 -msgid "" -"In most other circumstances, identity tests are inadvisable and equality " -"tests are preferred. In particular, identity tests should not be used to " -"check constants such as :class:`int` and :class:`str` which aren't " -"guaranteed to be singletons::" -msgstr "" -"Dans la plupart des autres cas, un test d'identité n'est pas approprié par " -"rapport à un test d'égalité. En particulier, il ne faut pas utiliser ``is`` " -"pour comparer à des constantes comme les entiers (type :class:`int`) ou des " -"chaînes de caractères (type :class:`str`) car ces valeurs ne sont pas " -"nécessairement des singletons ::" - -#: faq/programming.rst:1906 -msgid "Likewise, new instances of mutable containers are never identical::" -msgstr "" -"De même, deux instances fraîchement créées d'un type de conteneurs mutables " -"ne sont jamais identiques ::" - -#: faq/programming.rst:1913 -msgid "" -"In the standard library code, you will see several common patterns for " -"correctly using identity tests:" -msgstr "" -"Voici quelques exemples de la bibliothèque standard qui illustrent comment " -"utiliser correctement les tests d'identité dans certaines situations " -"particulières :" - -#: faq/programming.rst:1916 -#, fuzzy -msgid "" -"As recommended by :pep:`8`, an identity test is the preferred way to check " -"for ``None``. This reads like plain English in code and avoids confusion " -"with other objects that may have boolean values that evaluate to false." -msgstr "" -"1) Comme recommandé par la :pep:`8`, il est préférable de comparer avec " -"``None`` par identité. Le test se lit comme de la prose anglaise (``x is " -"None``, ``x is not None``), et cela évite des surprises avec les objets dont " -"la valeur booléenne est ``False``." - -#: faq/programming.rst:1920 -#, fuzzy -msgid "" -"Detecting optional arguments can be tricky when ``None`` is a valid input " -"value. In those situations, you can create a singleton sentinel object " -"guaranteed to be distinct from other objects. For example, here is how to " -"implement a method that behaves like :meth:`dict.pop`:" -msgstr "" -"2) Savoir si un paramètre facultatif a été passé ou pas peut nécessiter un " -"peu de subtilité lorsque ``None`` est une valeur acceptable pour le " -"paramètre. Dans ces cas, il faut créer un objet singleton dit " -"« sentinelle », distinct de toute valeur acceptable. Voici par exemple " -"comment écrire une méthode qui émule :meth:`dict.pop` :" - -#: faq/programming.rst:1938 -#, fuzzy -msgid "" -"Container implementations sometimes need to augment equality tests with " -"identity tests. This prevents the code from being confused by objects such " -"as ``float('NaN')`` that are not equal to themselves." -msgstr "" -"3) Il arrive que l'implémentation d'un type de conteneurs doive ajouter des " -"tests d'identité aux tests d'égalité, ceci afin d'éviter un comportement non " -"souhaité avec les objets comme ``float('NaN')`` qui ne sont pas égaux à eux-" -"mêmes." - -#: faq/programming.rst:1942 -#, fuzzy -msgid "" -"For example, here is the implementation of :meth:`!" -"collections.abc.Sequence.__contains__`::" -msgstr "" -"Par exemple, l'implémentation " -"de :meth:`collections.abc.Sequence.__contains__` est ::" - -#: faq/programming.rst:1953 -msgid "" -"How can a subclass control what data is stored in an immutable instance?" -msgstr "" -"Comment définir dans une classe fille les attributs d'une instance immuable ?" - -#: faq/programming.rst:1955 -#, fuzzy -msgid "" -"When subclassing an immutable type, override the :meth:`~object.__new__` " -"method instead of the :meth:`~object.__init__` method. The latter only runs " -"*after* an instance is created, which is too late to alter data in an " -"immutable instance." -msgstr "" -"Lorsque l'on crée une classe héritant d'une classe d'objets immuables, il " -"faut remplacer la méthode :meth:`__new__`, et non pas la " -"méthode :meth:`__init__`. En effet, cette dernière est exécutée seulement " -"après que l'instance soit créée, donc il y est trop tard pour modifier le " -"contenu d'une instance si elle est immuable." - -#: faq/programming.rst:1960 -msgid "" -"All of these immutable classes have a different signature than their parent " -"class:" -msgstr "" -"Toutes les classes d'objets immuables suivantes ont des signatures de " -"constructeur différentes de leur classe mère :" - -#: faq/programming.rst:1986 -msgid "The classes can be used like this:" -msgstr "Ces classes s'utilisent comme ceci :" - -#: faq/programming.rst:2003 -msgid "How do I cache method calls?" -msgstr "Comment mettre en cache le résultat d'une méthode ?" - -#: faq/programming.rst:2005 -msgid "" -"The two principal tools for caching methods " -"are :func:`functools.cached_property` and :func:`functools.lru_cache`. The " -"former stores results at the instance level and the latter at the class " -"level." -msgstr "" -"Il existe deux outils principaux pour mettre en cache la valeur de retour " -"d'une méthode, à savoir :func:`functools.cached_property`, qui stocke les " -"valeurs au niveau de l'instance, et :func:`functools.lru_cache`, qui le fait " -"au niveau de la classe." - -#: faq/programming.rst:2010 -#, fuzzy -msgid "" -"The ``cached_property`` approach only works with methods that do not take " -"any arguments. It does not create a reference to the instance. The cached " -"method result will be kept only as long as the instance is alive." -msgstr "" -"La fonction ``cached_property`` n'est applicable qu'aux méthodes sans " -"argument. Elle n'induit aucune référence vers l'instance. Le cache est " -"simplement conservé aussi longtemps que l'instance elle-même." - -#: faq/programming.rst:2014 -msgid "" -"The advantage is that when an instance is no longer used, the cached method " -"result will be released right away. The disadvantage is that if instances " -"accumulate, so too will the accumulated method results. They can grow " -"without bound." -msgstr "" -"L'avantage est que le cache est supprimé aussitôt que l'instance est " -"détruite. L'inconvénient est que les caches peuvent s'accumuler avec les " -"instances, sans limite de nombre." - -#: faq/programming.rst:2019 -#, fuzzy -msgid "" -"The ``lru_cache`` approach works with methods that have :term:`hashable` " -"arguments. It creates a reference to the instance unless special efforts " -"are made to pass in weak references." -msgstr "" -"La fonction ``lru_cache`` s'applique quant à elle aux méthodes dont les " -"arguments sont :term:`hachables `. Elle crée une référence forte à " -"l'instance, sauf à passer par des circonvolutions pour que la référence soit " -"faible." - -#: faq/programming.rst:2023 -msgid "" -"The advantage of the least recently used algorithm is that the cache is " -"bounded by the specified *maxsize*. The disadvantage is that instances are " -"kept alive until they age out of the cache or until the cache is cleared." -msgstr "" -"L'avantage de l'algorithme LRU est d'offrir une limitation sur la taille du " -"cache, que l'on peut régler avec le paramètre *maxsize* (NdT : LRU signifie " -"*Least Recently Used* en anglais, les entrées du cache les plus anciennes " -"sont évincées pour conserver la taille). L'inconvénient est qu'une référence " -"forte vers l'instance est conservée dans le cache, ce qui maintient " -"l'instance hors de portée du ramasse-miettes jusqu'à ce que l'entrée soit " -"effacée du cache ou que le cache soit remis à zéro." - -#: faq/programming.rst:2028 -msgid "This example shows the various techniques::" -msgstr "Voici une démonstration des différentes techniques ::" - -#: faq/programming.rst:2052 -#, fuzzy -msgid "" -"The above example assumes that the *station_id* never changes. If the " -"relevant instance attributes are mutable, the ``cached_property`` approach " -"can't be made to work because it cannot detect changes to the attributes." -msgstr "" -"Cet exemple suppose que l'attribut *station_id* n'est jamais changé. Si les " -"attributs utilisés par la méthode sont susceptibles d'être modifiés, " -"``cached_property`` ne peut pas fonctionner car elle ne peut pas détecter " -"les mutations pour invalider le cache." - -#: faq/programming.rst:2057 -#, fuzzy -msgid "" -"To make the ``lru_cache`` approach work when the *station_id* is mutable, " -"the class needs to define the :meth:`~object.__eq__` " -"and :meth:`~object.__hash__` methods so that the cache can detect relevant " -"attribute updates::" -msgstr "" -"En revanche, ``lru_cache`` est utilisable à condition de définir les " -"méthodes ``__eq__`` et ``__hash__`` pour que le cache soit à même de " -"détecter toute modification des attributs ::" - -#: faq/programming.rst:2083 -msgid "Modules" -msgstr "Modules" - -#: faq/programming.rst:2086 -msgid "How do I create a .pyc file?" -msgstr "Comment créer des fichiers ``.pyc`` ?" - -#: faq/programming.rst:2088 -msgid "" -"When a module is imported for the first time (or when the source file has " -"changed since the current compiled file was created) a ``.pyc`` file " -"containing the compiled code should be created in a ``__pycache__`` " -"subdirectory of the directory containing the ``.py`` file. The ``.pyc`` " -"file will have a filename that starts with the same name as the ``.py`` " -"file, and ends with ``.pyc``, with a middle component that depends on the " -"particular ``python`` binary that created it. (See :pep:`3147` for details.)" -msgstr "" -"Quand un module est importé pour la première fois (ou si le fichier source a " -"été modifié depuis la création du fichier compilé), un fichier ``.pyc`` " -"contenant le code précompilé est créé dans un sous-dossier ``__pycache__`` " -"du dossier contentant le fichier ``.py``. Le nom du fichier ``.pyc`` est " -"identique au fichier ``.py`` et se termine par ``.pyc``, avec une partie " -"centrale qui dépend du binaire ``python`` qui l'a créé (voir la :pep:`3147` " -"pour de plus amples précisions)." - -#: faq/programming.rst:2096 -msgid "" -"One reason that a ``.pyc`` file may not be created is a permissions problem " -"with the directory containing the source file, meaning that the " -"``__pycache__`` subdirectory cannot be created. This can happen, for " -"example, if you develop as one user but run as another, such as if you are " -"testing with a web server." -msgstr "" -"Une des raisons pour lesquelles un fichier ``.pyc`` peut ne pas être créé " -"est un problème de droits sur le dossier qui contient le fichier source, ce " -"qui veut dire qu'il est impossible de créer le sous-dossier ``__pycache__``. " -"Ceci peut arriver, par exemple, si vous développez en tant qu'un certain " -"utilisateur, mais que le code est exécuté en tant qu'un autre utilisateur, " -"par exemple pour tester un serveur Web." - -#: faq/programming.rst:2101 -#, fuzzy -msgid "" -"Unless the :envvar:`PYTHONDONTWRITEBYTECODE` environment variable is set, " -"creation of a .pyc file is automatic if you're importing a module and Python " -"has the ability (permissions, free space, and so on) to create a " -"``__pycache__`` subdirectory and write the compiled module to that " -"subdirectory." -msgstr "" -"La création du fichier ``.pyc`` est automatique durant l'importation d'un " -"module si Python est capable (en termes de droits, d'espace disque, etc) de " -"créer un sous-dossier ``__pycache__`` et d'écrire le module ainsi compilé " -"dans ce sous-répertoire, à moins que la variable " -"d'environnement :envvar:`PYTHONDONTWRITEBYTECODE` soit définie." - -#: faq/programming.rst:2106 -#, fuzzy -msgid "" -"Running Python on a top-level script is not considered an import and no " -"``.pyc`` will be created. For example, if you have a top-level module " -"``foo.py`` that imports another module ``xyz.py``, when you run ``foo`` (by " -"typing ``python foo.py`` as a shell command), a ``.pyc`` will be created for " -"``xyz`` because ``xyz`` is imported, but no ``.pyc`` file will be created " -"for ``foo`` since ``foo.py`` isn't being imported." -msgstr "" -"Exécuter du Python dans un script de plus haut niveau n'est pas considéré " -"comme une importation et le fichier ``.pyc`` n'est pas créé. Par exemple, si " -"un module de plus haut niveau ``foo.py`` importe un autre module ``xyz.py``, " -"alors à l'exécution de ``foo`` (en tapant ``python foo.py`` dans la " -"console), un fichier ``.pyc`` est créé pour ``xyz`` mais pas pour ``foo`` " -"car ``foo.py`` n'est pas importé." - -#: faq/programming.rst:2113 -msgid "" -"If you need to create a ``.pyc`` file for ``foo`` -- that is, to create a " -"``.pyc`` file for a module that is not imported -- you can, using " -"the :mod:`py_compile` and :mod:`compileall` modules." -msgstr "" -"Pour créer un fichier ``.pyc`` pour ``foo`` — c'est-à-dire créer un fichier " -"``.pyc`` pour un module qui n'est pas importé — il existe les " -"modules :mod:`py_compile` et :mod:`compileall`." - -#: faq/programming.rst:2117 -msgid "" -"The :mod:`py_compile` module can manually compile any module. One way is to " -"use the ``compile()`` function in that module interactively::" -msgstr "" -"Le module :mod:`py_compile` peut compiler n'importe quel module " -"manuellement. Il est ainsi possible d'appeler la fonction ``compile()`` de " -"manière interactive ::" - -#: faq/programming.rst:2123 -#, fuzzy -msgid "" -"This will write the ``.pyc`` to a ``__pycache__`` subdirectory in the same " -"location as ``foo.py`` (or you can override that with the optional parameter " -"*cfile*)." -msgstr "" -"Ces lignes écrivent le ``.pyc`` dans un sous-dossier ``__pycache__`` à côté " -"de ``foo.py`` (le paramètre optionnel ``cfile`` permet de changer ce " -"comportement)." - -#: faq/programming.rst:2127 -msgid "" -"You can also automatically compile all files in a directory or directories " -"using the :mod:`compileall` module. You can do it from the shell prompt by " -"running ``compileall.py`` and providing the path of a directory containing " -"Python files to compile::" -msgstr "" -"Tous les fichiers d'un ou plusieurs dossiers peuvent aussi être compilés " -"avec le module :mod:`compileall`. C'est possible depuis l'invite de commande " -"en exécutant ``compileall.py`` avec le chemin du dossier contenant les " -"fichiers Python à compiler ::" - -#: faq/programming.rst:2136 -msgid "How do I find the current module name?" -msgstr "Comment obtenir le nom du module actuel ?" - -#: faq/programming.rst:2138 -msgid "" -"A module can find out its own module name by looking at the predefined " -"global variable ``__name__``. If this has the value ``'__main__'``, the " -"program is running as a script. Many modules that are usually used by " -"importing them also provide a command-line interface or a self-test, and " -"only execute this code after checking ``__name__``::" -msgstr "" -"Un module peut déterminer son propre nom en examinant la variable globale " -"prédéfinie ``__name__``. Si celle-ci vaut ``'__main__'``, c'est que le " -"programme est exécuté comme un script. Beaucoup de modules qui doivent " -"normalement être importés pour pouvoir être utilisés fournissent aussi une " -"interface en ligne de commande ou un test automatique. Ils n'exécutent cette " -"portion du code qu'après avoir vérifié la valeur de ``__name__`` ::" - -#: faq/programming.rst:2153 -msgid "How can I have modules that mutually import each other?" -msgstr "Comment avoir des modules qui s'importent mutuellement ?" - -#: faq/programming.rst:2155 -msgid "Suppose you have the following modules:" -msgstr "Considérons les modules suivants :" - -#: faq/programming.rst:2157 -msgid ":file:`foo.py`::" -msgstr ":file:`foo.py` ::" - -#: faq/programming.rst:2162 -msgid ":file:`bar.py`::" -msgstr ":file:`bar.py` ::" - -#: faq/programming.rst:2167 -msgid "The problem is that the interpreter will perform the following steps:" -msgstr "Le problème réside dans les étapes que l'interpréteur va réaliser :" - -#: faq/programming.rst:2169 -msgid "main imports ``foo``" -msgstr "*main* importe *foo* ;" - -#: faq/programming.rst:2170 -msgid "Empty globals for ``foo`` are created" -msgstr "Les variables globales (vides) de *foo* sont créées ;" - -#: faq/programming.rst:2171 -msgid "``foo`` is compiled and starts executing" -msgstr "*foo* est compilé et commence à s'exécuter ;" - -#: faq/programming.rst:2172 -msgid "``foo`` imports ``bar``" -msgstr "*foo* importe *bar* ;" - -#: faq/programming.rst:2173 -msgid "Empty globals for ``bar`` are created" -msgstr "Les variables globales (vides) de *bar* sont créées ;" - -#: faq/programming.rst:2174 -msgid "``bar`` is compiled and starts executing" -msgstr "*bar* est compilé et commence à s'exécuter ;" - -#: faq/programming.rst:2175 -msgid "" -"``bar`` imports ``foo`` (which is a no-op since there already is a module " -"named ``foo``)" -msgstr "" -"*bar* importe *foo* (en réalité, rien ne passe car il y a déjà un module " -"appelé *foo*) ;" - -#: faq/programming.rst:2176 -msgid "" -"The import mechanism tries to read ``foo_var`` from ``foo`` globals, to set " -"``bar.foo_var = foo.foo_var``" -msgstr "" -"La mécanique des importations tente de lire *foo_var* dans les variables " -"globales de *foo* pour procéder à l'affectation ``bar.foo_var = " -"foo.foo_var``." - -#: faq/programming.rst:2178 -msgid "" -"The last step fails, because Python isn't done with interpreting ``foo`` yet " -"and the global symbol dictionary for ``foo`` is still empty." -msgstr "" -"La dernière étape échoue car Python n'a pas fini d'interpréter ``foo`` et le " -"dictionnaire global des symboles de ``foo`` est encore vide." - -#: faq/programming.rst:2181 -msgid "" -"The same thing happens when you use ``import foo``, and then try to access " -"``foo.foo_var`` in global code." -msgstr "" -"Le même phénomène arrive quand on utilise ``import foo``, et qu'on essaye " -"ensuite d'accéder à ``foo.foo_var`` dans le code global." - -#: faq/programming.rst:2184 -msgid "There are (at least) three possible workarounds for this problem." -msgstr "Il y a (au moins) trois façons de contourner ce problème." - -#: faq/programming.rst:2186 -msgid "" -"Guido van Rossum recommends avoiding all uses of ``from " -"import ...``, and placing all code inside functions. Initializations of " -"global variables and class variables should use constants or built-in " -"functions only. This means everything from an imported module is referenced " -"as ``.``." -msgstr "" -"Guido van Rossum déconseille d'utiliser ``from import ...`` et de " -"mettre tout le code dans des fonctions. L'initialisation des variables " -"globales et des variables de classe ne doit utiliser que des constantes ou " -"des fonctions natives. Ceci implique que tout ce qui est fourni par un " -"module soit référencé par ``.``." - -#: faq/programming.rst:2191 -msgid "" -"Jim Roskind suggests performing steps in the following order in each module:" -msgstr "" -"Jim Roskind recommande d'effectuer les étapes suivantes dans cet ordre dans " -"chaque module :" - -#: faq/programming.rst:2193 -msgid "" -"exports (globals, functions, and classes that don't need imported base " -"classes)" -msgstr "" -"les exportations (variables globales, fonctions et les classes qui ne " -"nécessitent d'importer des classes mères)" - -#: faq/programming.rst:2195 -msgid "``import`` statements" -msgstr "les instructions ``import``" - -#: faq/programming.rst:2196 -msgid "" -"active code (including globals that are initialized from imported values)." -msgstr "" -"le code (avec les variables globales qui sont initialisées à partir de " -"valeurs importées)." - -#: faq/programming.rst:2198 -msgid "" -"Van Rossum doesn't like this approach much because the imports appear in a " -"strange place, but it does work." -msgstr "" -"van Rossum désapprouve cette approche car les importations se trouvent à un " -"endroit bizarre, mais cela fonctionne." - -#: faq/programming.rst:2201 -msgid "" -"Matthias Urlichs recommends restructuring your code so that the recursive " -"import is not necessary in the first place." -msgstr "" -"Matthias Urlichs conseille de restructurer le code pour éviter les " -"importations récursives." - -#: faq/programming.rst:2204 -msgid "These solutions are not mutually exclusive." -msgstr "Ces solutions peuvent être combinées." - -#: faq/programming.rst:2208 -msgid "__import__('x.y.z') returns ; how do I get z?" -msgstr "" -"``__import__('x.y.z')`` renvoie ```` ; comment accéder à ``z`` ?" - -#: faq/programming.rst:2210 -msgid "" -"Consider using the convenience function :func:`~importlib.import_module` " -"from :mod:`importlib` instead::" -msgstr "" -"Utilisez plutôt la fonction :func:`~importlib.import_module` " -"de :mod:`importlib` ::" - -#: faq/programming.rst:2217 -msgid "" -"When I edit an imported module and reimport it, the changes don't show up. " -"Why does this happen?" -msgstr "" -"Quand j'édite un module et que je le réimporte, je ne vois pas les " -"changements. Pourquoi ?" - -#: faq/programming.rst:2219 -msgid "" -"For reasons of efficiency as well as consistency, Python only reads the " -"module file on the first time a module is imported. If it didn't, in a " -"program consisting of many modules where each one imports the same basic " -"module, the basic module would be parsed and re-parsed many times. To force " -"re-reading of a changed module, do this::" -msgstr "" -"Pour des raisons de performance et de cohérence, Python ne lit le fichier " -"d'un module que la première fois où celui-ci est importé. Si ce n'était pas " -"le cas, dans un programme composé d'un très grand nombre de modules qui " -"importent tous le même module de base, ce module de base serait analysé et " -"ré-analysé un très grand nombre de fois. Pour forcer la relecture d'un " -"module, il faut faire ::" - -#: faq/programming.rst:2229 -#, fuzzy -msgid "" -"Warning: this technique is not 100% fool-proof. In particular, modules " -"containing statements like::" -msgstr "" -"Attention, cette technique ne marche pas systématiquement. En particulier, " -"les modules qui contiennent des instructions comme ::" - -#: faq/programming.rst:2234 -msgid "" -"will continue to work with the old version of the imported objects. If the " -"module contains class definitions, existing class instances will *not* be " -"updated to use the new class definition. This can result in the following " -"paradoxical behaviour::" -msgstr "" -"continuent de fonctionner avec l'ancienne version des objets importés. Si le " -"module contient une définition de classe, les instances déjà existantes de " -"celle-ci ne sont *pas* mises à jour avec la nouvelle définition de la " -"classe. Ceci peut conduire au comportement paradoxal suivant ::" - -#: faq/programming.rst:2247 -msgid "" -"The nature of the problem is made clear if you print out the \"identity\" of " -"the class objects::" -msgstr "" -"La nature du problème apparaît clairement en affichant « l'identité » des " -"objets de la classe ::" - -#~ msgid "`Komodo IDE `_" -#~ msgstr "`Komodo IDE `_ ;" - -#~ msgid "argument" -#~ msgstr "argument" - -#~ msgid "parameter" -#~ msgstr "paramètre" - -#~ msgid "Use a list comprehension::" -#~ msgstr "Utilisez une liste en compréhension ::" - -#~ msgid "" -#~ "For version prior to 3.0, you may be using classic classes: For a class " -#~ "definition such as ``class Derived(Base): ...`` you can call method " -#~ "``meth()`` defined in ``Base`` (or one of ``Base``'s base classes) as " -#~ "``Base.meth(self, arguments...)``. Here, ``Base.meth`` is an unbound " -#~ "method, so you need to provide the ``self`` argument." -#~ msgstr "" -#~ "Pour les versions antérieures à 3.0, vous pouvez utiliser des classes " -#~ "classiques : pour une définition de classe comme ``class " -#~ "Derived(Base): ...`` vous pouvez appeler la méthode ``meth()`` définie " -#~ "dans ``Base`` (ou l'une des classes de base de ``Base``) en faisant " -#~ "``Base.meth(self, arguments...)``. Ici, ``Base.meth`` est une méthode non " -#~ "liée, il faut donc fournir l'argument ``self``." - -#~ msgid "bar.foo_var = foo.foo_var" -#~ msgstr "bar.foo_var = foo.foo_var" - -#, fuzzy -#~ msgid "" -#~ "Obviously, freeze requires a C compiler. There are several other " -#~ "utilities which don't:" -#~ msgstr "" -#~ "Bien évidemment, *freeze* nécessite un compilateur C. Il existe d'autres " -#~ "outils qui peuvent s'en passer. Un de ceux-ci est py2exe de Thomas Heller " -#~ "(pour Windows uniquement) disponible sur :" - -#~ msgid "" -#~ "Pydb is a version of the standard Python debugger pdb, modified for use " -#~ "with DDD (Data Display Debugger), a popular graphical debugger front " -#~ "end. Pydb can be found at http://bashdb.sourceforge.net/pydb/ and DDD " -#~ "can be found at https://www.gnu.org/software/ddd." -#~ msgstr "" -#~ "*Pydb* est une version du débogueur standard Python *pdb*, modifié pour " -#~ "être utilisé avec DDD (Data Display Debugger), un célèbre débogueur " -#~ "graphique. *Pydb* est disponible sur http://bashdb.sourceforge.net/pydb/ " -#~ "et DDD est disponible sur https://www.gnu.org/software/ddd." - -#~ msgid "Komodo IDE (https://komodoide.com/)" -#~ msgstr "Komodo IDE (https://komodoide.com/)" - -#~ msgid "" -#~ "Another tool is Anthony Tuininga's `cx_Freeze `_." -#~ msgstr "" -#~ "Un autre de ces outils est `cx_Freeze `_ d'Anthony Tuininga." - -#~ msgid "" -#~ "Note: Using :func:`eval` is slow and dangerous. If you don't have " -#~ "absolute control over the contents of the string, someone could pass a " -#~ "string that resulted in an arbitrary function being executed." -#~ msgstr "" -#~ "Note : utiliser :func:`eval` est lent est dangereux. Si vous n'avez pas " -#~ "un contrôle absolu sur le contenu de la chaîne de caractères, quelqu'un " -#~ "pourrait passer une chaîne de caractères pouvant appeler n'importe quelle " -#~ "fonction." - -#~ msgid "With Python 2.3, you can use an extended slice syntax::" -#~ msgstr "" -#~ "Avec Python 2.3 vous pouvez utiliser la syntaxe étendue de tranches ::" - -#~ msgid "An alternative for the last step is::" -#~ msgstr "Vous pouvez remplacer la dernière étape par ::" - -#~ msgid "" -#~ "If you find this more legible, you might prefer to use this instead of " -#~ "the final list comprehension. However, it is almost twice as slow for " -#~ "long lists. Why? First, the ``append()`` operation has to reallocate " -#~ "memory, and while it uses some tricks to avoid doing that each time, it " -#~ "still has to do it occasionally, and that costs quite a bit. Second, the " -#~ "expression \"result.append\" requires an extra attribute lookup, and " -#~ "third, there's a speed reduction from having to make all those function " -#~ "calls." -#~ msgstr "" -#~ "Si cela vous semble plus lisible, vous pouvez utiliser cette forme plutôt " -#~ "qu'une liste en compréhension. Toutefois, ce code est presque deux fois " -#~ "plus lent pour une liste de grande taille. Pourquoi ? Tout d'abord, parce " -#~ "que ``append()`` doit ré-allouer de la mémoire et, même si elle utilise " -#~ "quelques astuces pour éviter d'effectuer la ré-allocation à chaque appel, " -#~ "elle doit tout de même le faire de temps en temps, ce qui coûte assez " -#~ "cher. Deuxièmement, parce que l'expression ``result.append`` fait un " -#~ "accès supplémentaire à un attribut et, enfin, parce que tous ces appels " -#~ "de fonctions réduisent la vitesse d'exécution." - -#~ msgid "" -#~ "`Boa Constructor `_ is an IDE " -#~ "and GUI builder that uses wxWidgets. It offers visual frame creation and " -#~ "manipulation, an object inspector, many views on the source like object " -#~ "browsers, inheritance hierarchies, doc string generated html " -#~ "documentation, an advanced debugger, integrated help, and Zope support." -#~ msgstr "" -#~ "`Boa Constructor `_ est un EDI " -#~ "et un constructeur d'interface homme-machine basé sur *wxWidgets*. Il " -#~ "propose la création et la manipulation de fenêtres, un inspecteur " -#~ "d'objets, de nombreuses façons de visualiser des sources comme un " -#~ "navigateur d'objets, les hiérarchies d'héritage, la documentation html " -#~ "générée par les docstrings, un débogueur avancé, une aide intégrée et la " -#~ "prise en charge de Zope." - -#~ msgid "" -#~ "PyChecker is a static analysis tool that finds bugs in Python source code " -#~ "and warns about code complexity and style. You can get PyChecker from " -#~ "http://pychecker.sourceforge.net/." -#~ msgstr "" -#~ "*PyChecker* est un outil d'analyse statique qui trouve les bogues dans le " -#~ "code source Python et émet des avertissements relatifs à la complexité et " -#~ "au style du code. *PyChecker* est disponible sur http://" -#~ "pychecker.sourceforge.net/." - -#~ msgid "" -#~ "`Pylint `_ is another tool that checks if a " -#~ "module satisfies a coding standard, and also makes it possible to write " -#~ "plug-ins to add a custom feature. In addition to the bug checking that " -#~ "PyChecker performs, Pylint offers some additional features such as " -#~ "checking line length, whether variable names are well-formed according to " -#~ "your coding standard, whether declared interfaces are fully implemented, " -#~ "and more. https://docs.pylint.org/ provides a full list of Pylint's " -#~ "features." -#~ msgstr "" -#~ "Pylint `_ est un autre outil qui vérifie si un " -#~ "module satisfait aux normes de développement, et qui permet en plus " -#~ "d'écrire des greffons pour ajouter des fonctionnalités personnalisées. " -#~ "En plus de la vérification des bogues effectuée par PyChecker, Pylint " -#~ "effectue quelques vérifications supplémentaires comme la longueur des " -#~ "lignes, les conventions de nommage des variables, que les interfaces " -#~ "déclarées sont implémentées en totalité, et plus encore. https://" -#~ "docs.pylint.org/ fournit la liste complète des fonctionnalités de Pylint." diff --git a/faq/windows.po b/faq/windows.po deleted file mode 100644 index be45c18434..0000000000 --- a/faq/windows.po +++ /dev/null @@ -1,561 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-03-26 11:57+0200\n" -"Last-Translator: Jean Abou Samra \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 3.2.2\n" - -#: faq/windows.rst:9 -msgid "Python on Windows FAQ" -msgstr "FAQ : Python et Windows" - -#: faq/windows.rst:12 -msgid "Contents" -msgstr "Sommaire" - -#: faq/windows.rst:22 -msgid "How do I run a Python program under Windows?" -msgstr "Comment exécuter un programme Python sous Windows ?" - -#: faq/windows.rst:24 -msgid "" -"This is not necessarily a straightforward question. If you are already " -"familiar with running programs from the Windows command line then everything " -"will seem obvious; otherwise, you might need a little more guidance." -msgstr "" -"Ce n'est pas forcément une question simple. Si vous êtes déjà familier avec " -"le lancement de programmes depuis la ligne de commande de Windows alors tout " -"semblera évident ; sinon, vous pourriez avoir besoin d'être un peu guidé." - -#: faq/windows.rst:28 -msgid "" -"Unless you use some sort of integrated development environment, you will end " -"up *typing* Windows commands into what is referred to as a \"Command prompt " -"window\". Usually you can create such a window from your search bar by " -"searching for ``cmd``. You should be able to recognize when you have " -"started such a window because you will see a Windows \"command prompt\", " -"which usually looks like this:" -msgstr "" -"À moins que vous n'utilisiez une sorte d'environnement de développement, " -"vous finirez par *taper* des commandes Windows dans ce qui est appelé une " -"« invite de commande Windows ». En général vous pouvez ouvrir un telle " -"fenêtre depuis votre barre de recherche en cherchant ``cmd``. Vous devriez " -"être capable de reconnaître quand vous avez lancé une telle fenêtre parce " -"que vous verrez une « invite de commande » Windows, qui en en général " -"ressemble à ça :" - -#: faq/windows.rst:39 -msgid "" -"The letter may be different, and there might be other things after it, so " -"you might just as easily see something like:" -msgstr "" -"La lettre peut être différente, et il peut y avoir d'autres choses à la " -"suite, alors il se peut que ça ressemble également à ça :" - -#: faq/windows.rst:46 -msgid "" -"depending on how your computer has been set up and what else you have " -"recently done with it. Once you have started such a window, you are well on " -"the way to running Python programs." -msgstr "" -"selon la configuration de votre ordinateur et ce que vous avez récemment " -"fait avec. Une fois que vous avez ouvert cette fenêtre, vous êtes bien " -"partis pour pouvoir lancer des programmes Python." - -#: faq/windows.rst:50 -msgid "" -"You need to realize that your Python scripts have to be processed by another " -"program called the Python *interpreter*. The interpreter reads your script, " -"compiles it into bytecodes, and then executes the bytecodes to run your " -"program. So, how do you arrange for the interpreter to handle your Python?" -msgstr "" -"Retenez que vos scripts Python doivent être traités par un autre programme " -"appelé \"l’interpréteur\" Python. L’interpréteur lit votre script, le " -"compile en *bytecode*, et exécute le *bytecode* pour faire tourner votre " -"programme. Alors, comment faire pour donner votre code Python à " -"l'interpréteur ?" - -#: faq/windows.rst:55 -msgid "" -"First, you need to make sure that your command window recognises the word " -"\"py\" as an instruction to start the interpreter. If you have opened a " -"command window, you should try entering the command ``py`` and hitting " -"return:" -msgstr "" -"Tout d'abord, vous devez vous assurer que votre fenêtre d'invite de commande " -"reconnaît le mot \"python\" comme une instruction pour démarrer " -"l'interpréteur. Si vous avez ouvert une invite de commande, entrez la " -"commande ``py``, puis appuyez sur entrée :" - -#: faq/windows.rst:64 -msgid "You should then see something like:" -msgstr "Vous devez voir quelque chose comme ça :" - -#: faq/windows.rst:72 -msgid "" -"You have started the interpreter in \"interactive mode\". That means you can " -"enter Python statements or expressions interactively and have them executed " -"or evaluated while you wait. This is one of Python's strongest features. " -"Check it by entering a few expressions of your choice and seeing the results:" -msgstr "" -"Vous avez lancé l'interpréteur dans son \"mode interactif\". Cela signifie " -"que vous pouvez entrer des instructions ou des expressions Python de manière " -"interactive pour qu'elles soient exécutées. Il s'agit là d'une des plus " -"puissantes fonctionnalités de Python. Vous pouvez le vérifier en entrant " -"quelques commandes de votre choix et en regardant le résultat :" - -#: faq/windows.rst:84 -msgid "" -"Many people use the interactive mode as a convenient yet highly programmable " -"calculator. When you want to end your interactive Python session, call " -"the :func:`exit` function or hold the :kbd:`Ctrl` key down while you enter " -"a :kbd:`Z`, then hit the \":kbd:`Enter`\" key to get back to your Windows " -"command prompt." -msgstr "" -"Beaucoup de gens utilisent le mode interactif comme une calculatrice " -"pratique mais néanmoins hautement programmable. Lorsque vous souhaitez " -"mettre fin à votre session Python interactive, appelez la " -"fonction :func:`exit` ou maintenez la touche :kbd:`Ctrl` enfoncée pendant " -"que vous entrez un :kbd:`Z`, puis appuyez sur la touche \":kbd:`Enter`\" " -"pour revenir à votre invite de commande Windows." - -#: faq/windows.rst:90 -msgid "" -"You may also find that you have a Start-menu entry such " -"as :menuselection:`Start --> Programs --> Python 3.x --> Python (command " -"line)` that results in you seeing the ``>>>`` prompt in a new window. If " -"so, the window will disappear after you call the :func:`exit` function or " -"enter the :kbd:`Ctrl-Z` character; Windows is running a single \"python\" " -"command in the window, and closes it when you terminate the interpreter." -msgstr "" -"Peut-être avez-vous remarqué une nouvelle entrée dans votre menu Démarrer " -"telle que :menuselection:`Démarrer --> Programmes --> Python 3.x --> Python " -"(ligne de commande)` qui a pour résultat que vous voyez l'invite ``>>>`` " -"dans une nouvelle fenêtre. Si oui, la fenêtre va disparaître quand vous " -"appellerez la fonction :func:`exit` ou entrez le caractère :kbd:`Ctrl-Z` ; " -"Windows exécute une commande \"python\" dans la fenêtre et ferme celle-ci " -"lorsque vous fermez l'interpréteur." - -#: faq/windows.rst:97 -msgid "" -"Now that we know the ``py`` command is recognized, you can give your Python " -"script to it. You'll have to give either an absolute or a relative path to " -"the Python script. Let's say your Python script is located in your desktop " -"and is named ``hello.py``, and your command prompt is nicely opened in your " -"home directory so you're seeing something similar to::" -msgstr "" -"Maintenant que nous savons que la commande ``py`` est reconnue, vous pouvez " -"lui donner votre script Python. Vous devez donner le chemin absolu ou " -"relatif du script Python. Disons que votre script Python est situé sur votre " -"bureau et est nommé ``hello.py``, et votre invite de commande est bien " -"ouvert dans votre répertoire d’accueil, alors vous voyez quelque chose " -"comme ::" - -#: faq/windows.rst:106 -msgid "" -"So now you'll ask the ``py`` command to give your script to Python by typing " -"``py`` followed by your script path::" -msgstr "" -"Alors maintenant, vous demanderez à la commande ``py`` de donner votre " -"script à Python en tapant ``py`` suivi de votre chemin de script ::" - -#: faq/windows.rst:114 -msgid "How do I make Python scripts executable?" -msgstr "Comment rendre des scripts Python exécutables ?" - -#: faq/windows.rst:116 -msgid "" -"On Windows, the standard Python installer already associates the .py " -"extension with a file type (Python.File) and gives that file type an open " -"command that runs the interpreter (``D:\\Program Files\\Python\\python.exe " -"\"%1\" %*``). This is enough to make scripts executable from the command " -"prompt as 'foo.py'. If you'd rather be able to execute the script by simple " -"typing 'foo' with no extension you need to add .py to the PATHEXT " -"environment variable." -msgstr "" -"Sous Windows, l'installateur Python associe l'extension *.py* avec un type " -"de fichier (Python.File) et une commande qui lance l’interpréteur (``D:" -"\\Program Files\\Python\\python.exe \"%1\" %*``). Cela suffit pour pouvoir " -"exécuter les scripts Python depuis la ligne de commande en saisissant " -"*foo.py*. Si vous souhaitez pouvoir exécuter les scripts en saisissant " -"simplement *foo* sans l’extension, vous devez ajouter *.py* au paramètre " -"d’environnement PATHEXT." - -#: faq/windows.rst:124 -msgid "Why does Python sometimes take so long to start?" -msgstr "Pourquoi Python met-il du temps à démarrer ?" - -#: faq/windows.rst:126 -msgid "" -"Usually Python starts very quickly on Windows, but occasionally there are " -"bug reports that Python suddenly begins to take a long time to start up. " -"This is made even more puzzling because Python will work fine on other " -"Windows systems which appear to be configured identically." -msgstr "" -"Normalement, sous Windows, Python se lance très rapidement, mais parfois des " -"rapports d'erreurs indiquent que Python commence soudain à prendre beaucoup " -"de temps pour démarrer. C'est d'autant plus intrigant que Python fonctionne " -"correctement avec d'autres Windows configurés de façon similaire." - -#: faq/windows.rst:131 -msgid "" -"The problem may be caused by a misconfiguration of virus checking software " -"on the problem machine. Some virus scanners have been known to introduce " -"startup overhead of two orders of magnitude when the scanner is configured " -"to monitor all reads from the filesystem. Try checking the configuration of " -"virus scanning software on your systems to ensure that they are indeed " -"configured identically. McAfee, when configured to scan all file system read " -"activity, is a particular offender." -msgstr "" -"Le problème peut venir d'un antivirus mal configuré. Certains antivirus sont " -"connus pour doubler le temps de démarrage lorsqu'ils sont configurés pour " -"surveiller toutes les lectures du système de fichiers. Essayez de regarder " -"si les antivirus des deux machines sont bien paramétrés à l'identique. " -"*McAfee* est particulièrement problématique lorsqu'il est paramétré pour " -"surveiller toutes les lectures du système de fichiers." - -#: faq/windows.rst:141 -msgid "How do I make an executable from a Python script?" -msgstr "Comment construire un exécutable depuis un script Python ?" - -#: faq/windows.rst:143 -msgid "" -"See :ref:`faq-create-standalone-binary` for a list of tools that can be used " -"to make executables." -msgstr "" -"Voir :ref:`faq-create-standalone-binary` pour une liste d'outils qui créent " -"des exécutables." - -#: faq/windows.rst:148 -msgid "Is a ``*.pyd`` file the same as a DLL?" -msgstr "Est-ce qu'un fichier ``*.pyd`` est la même chose qu'une DLL ?" - -#: faq/windows.rst:150 -msgid "" -"Yes, .pyd files are dll's, but there are a few differences. If you have a " -"DLL named ``foo.pyd``, then it must have a function ``PyInit_foo()``. You " -"can then write Python \"import foo\", and Python will search for foo.pyd (as " -"well as foo.py, foo.pyc) and if it finds it, will attempt to call " -"``PyInit_foo()`` to initialize it. You do not link your .exe with foo.lib, " -"as that would cause Windows to require the DLL to be present." -msgstr "" -"Oui, les fichiers *.pyd* sont des fichiers *dll*, mais il y a quelques " -"différences. Si vous avez une *DLL* ``foo.pyd``, celle-ci doit posséder une " -"fonction ``PyInit_foo()``. Vous pouvez alors écrire en Python « *import " -"foo* » et Python recherchera le fichier *foo.pyd* (ainsi que *foo.py* et " -"*foo.pyc*); s'il le trouve, il tentera d'appeler ``PyInit_foo()`` pour " -"l'initialiser. Ne liez pas votre *.exe* avec *foo.lib* car dans ce cas " -"Windows aura besoin de la DLL." - -#: faq/windows.rst:157 -msgid "" -"Note that the search path for foo.pyd is PYTHONPATH, not the same as the " -"path that Windows uses to search for foo.dll. Also, foo.pyd need not be " -"present to run your program, whereas if you linked your program with a dll, " -"the dll is required. Of course, foo.pyd is required if you want to say " -"``import foo``. In a DLL, linkage is declared in the source code with " -"``__declspec(dllexport)``. In a .pyd, linkage is defined in a list of " -"available functions." -msgstr "" -"Notez que le chemin de recherche pour *foo.pyd* est *PYTHONPATH*, il est " -"différent de celui qu'utilise Windows pour rechercher *foo.dll*. De plus, " -"*foo.pyd* n'a pas besoin d'être présent pour que votre programme s'exécute " -"alors que si vous avez lié votre programme avec une *dll* celle-ci est " -"requise. Bien sûr *foo.pyd* est nécessaire si vous écrivez ``import foo``. " -"Dans une *DLL* le lien est déclaré dans le code source avec " -"``__declspec(dllexport)``. Dans un *.pyd* la liaison est définie dans une " -"liste de fonctions disponibles." - -#: faq/windows.rst:166 -msgid "How can I embed Python into a Windows application?" -msgstr "Comment puis-je intégrer Python dans une application Windows ?" - -#: faq/windows.rst:168 -msgid "" -"Embedding the Python interpreter in a Windows app can be summarized as " -"follows:" -msgstr "" -"L'intégration de l'interpréteur Python dans une application Windows peut se " -"résumer comme suit :" - -#: faq/windows.rst:170 -msgid "" -"Do **not** build Python into your .exe file directly. On Windows, Python " -"must be a DLL to handle importing modules that are themselves DLL's. (This " -"is the first key undocumented fact.) Instead, link " -"to :file:`python{NN}.dll`; it is typically installed in ``C:" -"\\Windows\\System``. *NN* is the Python version, a number such as \"33\" " -"for Python 3.3." -msgstr "" -"Ne compilez **pas** Python directement dans votre fichier *.exe*. Sous " -"Windows, Python doit être une DLL pour pouvoir importer des modules qui sont " -"eux-mêmes des DLL (ceci constitue une information de première importance non " -"documentée). Au lieu de cela faites un lien vers :file:`python{NN}.dll` qui " -"est généralement placé dans ``C:\\Windows\\System``. *NN* étant la version " -"Python, par exemple « 33 » pour Python 3.3." - -#: faq/windows.rst:176 -msgid "" -"You can link to Python in two different ways. Load-time linking means " -"linking against :file:`python{NN}.lib`, while run-time linking means linking " -"against :file:`python{NN}.dll`. (General note: :file:`python{NN}.lib` is " -"the so-called \"import lib\" corresponding to :file:`python{NN}.dll`. It " -"merely defines symbols for the linker.)" -msgstr "" -"Vous pouvez créer un lien vers Python de deux manières différentes. Un lien " -"au moment du chargement signifie pointer vers :file:`python{NN}.lib`, tandis " -"qu'un lien au moment de l'exécution signifie pointer " -"vers :file:`python{NN}.dll`. (Note générale : :file:`python{NN}.lib` est le " -"soi-disant « *import lib* » correspondant à :file:`python{NN}.dll`. Il " -"définit simplement des liens symboliques pour l'éditeur de liens.)" - -#: faq/windows.rst:182 -msgid "" -"Run-time linking greatly simplifies link options; everything happens at run " -"time. Your code must load :file:`python{NN}.dll` using the Windows " -"``LoadLibraryEx()`` routine. The code must also use access routines and " -"data in :file:`python{NN}.dll` (that is, Python's C API's) using pointers " -"obtained by the Windows ``GetProcAddress()`` routine. Macros can make using " -"these pointers transparent to any C code that calls routines in Python's C " -"API." -msgstr "" -"La liaison en temps réel simplifie grandement les options de liaison ; tout " -"se passe au moment de l'exécution. Votre code doit " -"charger :file:`python{NN}.dll` en utilisant la routine Windows " -"``LoadLibraryEx()``. Le code doit aussi utiliser des routines d'accès et " -"des données dans :file:`python{NN}.dll` (c'est-à-dire les API C de Python) " -"en utilisant des pointeurs obtenus par la routine Windows " -"``GetProcAddress()``. Les macros peuvent rendre l'utilisation de ces " -"pointeurs transparente à tout code C qui appelle des routines dans l'API C " -"de Python." - -#: faq/windows.rst:191 -msgid "" -"If you use SWIG, it is easy to create a Python \"extension module\" that " -"will make the app's data and methods available to Python. SWIG will handle " -"just about all the grungy details for you. The result is C code that you " -"link *into* your .exe file (!) You do **not** have to create a DLL file, " -"and this also simplifies linking." -msgstr "" -"Si vous utilisez SWIG, il est facile de créer un « module d'extension » " -"Python qui rendra les données et les méthodes de l'application disponibles " -"pour Python. SWIG s'occupera de tous les détails ennuyeux pour vous. Le " -"résultat est du code C que vous liez *dans* votre *fichier.exe* (!) Vous " -"n'avez **pas** besoin de créer un fichier DLL, et cela simplifie également " -"la liaison." - -#: faq/windows.rst:197 -msgid "" -"SWIG will create an init function (a C function) whose name depends on the " -"name of the extension module. For example, if the name of the module is " -"leo, the init function will be called initleo(). If you use SWIG shadow " -"classes, as you should, the init function will be called initleoc(). This " -"initializes a mostly hidden helper class used by the shadow class." -msgstr "" -"SWIG va créer une fonction d'initialisation (fonction en C) dont le nom " -"dépend du nom du module d'extension. Par exemple, si le nom du module est " -"*leo*, la fonction *init* sera appelée *initleo()*. Si vous utilisez des " -"classes *shadow* SWIG, comme vous le devriez, la fonction *init* sera " -"appelée *initleoc()*. Ceci initialise une classe auxiliaire invisible " -"utilisée par la classe *shadow*." - -#: faq/windows.rst:203 -msgid "" -"The reason you can link the C code in step 2 into your .exe file is that " -"calling the initialization function is equivalent to importing the module " -"into Python! (This is the second key undocumented fact.)" -msgstr "" -"La raison pour laquelle vous pouvez lier le code C à l'étape 2 dans votre " -"*fichier.exe* est que l'appel de la fonction d'initialisation équivaut à " -"importer le module dans Python ! (C'est le deuxième fait clé non documenté.)" - -#: faq/windows.rst:207 -msgid "" -"In short, you can use the following code to initialize the Python " -"interpreter with your extension module." -msgstr "" -"En bref, vous pouvez utiliser le code suivant pour initialiser " -"l'interpréteur Python avec votre module d'extension." - -#: faq/windows.rst:218 -msgid "" -"There are two problems with Python's C API which will become apparent if you " -"use a compiler other than MSVC, the compiler used to build pythonNN.dll." -msgstr "" -"Il y a deux problèmes avec l'API C de Python qui apparaîtront si vous " -"utilisez un compilateur autre que MSVC, le compilateur utilisé pour " -"construire *pythonNN.dll*." - -#: faq/windows.rst:221 -msgid "" -"Problem 1: The so-called \"Very High Level\" functions that take ``FILE *`` " -"arguments will not work in a multi-compiler environment because each " -"compiler's notion of a ``struct FILE`` will be different. From an " -"implementation standpoint these are very low level functions." -msgstr "" -"Problème 1 : Les fonctions dites de « Très Haut Niveau » qui prennent les " -"arguments ``FILE *`` ne fonctionneront pas dans un environnement multi-" -"compilateur car chaque compilateur aura une notion différente de ``struct " -"FILE``. Du point de vue de l'implémentation, il s'agit de fonctions de très " -"bas niveau." - -#: faq/windows.rst:226 -msgid "" -"Problem 2: SWIG generates the following code when generating wrappers to " -"void functions:" -msgstr "" -"Problème 2 : SWIG génère le code suivant lors de la génération " -"*d'encapsuleurs* pour annuler les fonctions :" - -#: faq/windows.rst:235 -msgid "" -"Alas, Py_None is a macro that expands to a reference to a complex data " -"structure called _Py_NoneStruct inside pythonNN.dll. Again, this code will " -"fail in a mult-compiler environment. Replace such code by:" -msgstr "" -"Hélas, *Py_None* est une macro qui se développe en référence à une structure " -"de données complexe appelée *_Py_NoneStruct* dans *pythonNN.dll*. Encore " -"une fois, ce code échouera dans un environnement multi-compilateur. " -"Remplacez ce code par :" - -#: faq/windows.rst:243 -msgid "" -"It may be possible to use SWIG's ``%typemap`` command to make the change " -"automatically, though I have not been able to get this to work (I'm a " -"complete SWIG newbie)." -msgstr "" -"Il est possible d'utiliser la commande ``%typemap`` de SWIG pour effectuer " -"le changement automatiquement, bien que je n'ai pas réussi à le faire " -"fonctionner (je suis un débutant complet avec SWIG)." - -#: faq/windows.rst:247 -msgid "" -"Using a Python shell script to put up a Python interpreter window from " -"inside your Windows app is not a good idea; the resulting window will be " -"independent of your app's windowing system. Rather, you (or the " -"wxPythonWindow class) should create a \"native\" interpreter window. It is " -"easy to connect that window to the Python interpreter. You can redirect " -"Python's i/o to _any_ object that supports read and write, so all you need " -"is a Python object (defined in your extension module) that contains read() " -"and write() methods." -msgstr "" -"Utiliser un script shell Python pour créer une fenêtre d'interpréteur Python " -"depuis votre application Windows n'est pas une bonne idée ; la fenêtre " -"résultante sera indépendante du système de fenêtrage de votre application. " -"Vous (ou la classe *wxPythonWindow*) devriez plutôt créer une fenêtre " -"d'interpréteur « native ». Il est facile de connecter cette fenêtre à " -"l'interpréteur Python. Vous pouvez rediriger l'entrée/sortie de Python vers " -"*n'importe quel* objet qui supporte la lecture et l'écriture, donc tout ce " -"dont vous avez besoin est un objet Python (défini dans votre module " -"d'extension) qui contient les méthodes *read()* et *write()*." - -#: faq/windows.rst:256 -msgid "How do I keep editors from inserting tabs into my Python source?" -msgstr "" -"Comment empêcher mon éditeur d'utiliser des tabulations dans mes fichiers " -"Python ?" - -#: faq/windows.rst:258 -msgid "" -"The FAQ does not recommend using tabs, and the Python style guide, :pep:`8`, " -"recommends 4 spaces for distributed Python code; this is also the Emacs " -"python-mode default." -msgstr "" -"La FAQ ne recommande pas l'utilisation des indentations et le guide " -"stylistique de Python, la :pep:`8`, recommande l'utilisation de 4 espaces " -"dans les codes Python. C'est aussi le comportement par défaut d'Emacs avec " -"Python." - -#: faq/windows.rst:262 -msgid "" -"Under any editor, mixing tabs and spaces is a bad idea. MSVC is no " -"different in this respect, and is easily configured to use spaces: " -"Take :menuselection:`Tools --> Options --> Tabs`, and for file type " -"\"Default\" set \"Tab size\" and \"Indent size\" to 4, and select the " -"\"Insert spaces\" radio button." -msgstr "" -"Quel que soit votre éditeur, mélanger des tabulations et des espaces est une " -"mauvaise idée. *Visual C++*, par exemple, peut être facilement configuré " -"pour utiliser des espaces : allez dans :menuselection:`Tools --> Options --> " -"Tabs` et pour le type de fichier par défaut, vous devez mettre *Tab size* et " -"*Indent size* à 4, puis sélectionner *Insert spaces*." - -#: faq/windows.rst:267 -msgid "" -"Python raises :exc:`IndentationError` or :exc:`TabError` if mixed tabs and " -"spaces are causing problems in leading whitespace. You may also run " -"the :mod:`tabnanny` module to check a directory tree in batch mode." -msgstr "" -"Python va lever :exc:`IndentationError` ou :exc:`TabError` si un mélange de " -"tabulation et d’indentation pose problème en début de ligne. Vous pouvez " -"aussi utiliser le module :mod:`tabnanny` pour détecter ces erreurs." - -#: faq/windows.rst:274 -msgid "How do I check for a keypress without blocking?" -msgstr "" -"Comment puis-je vérifier de manière non bloquante qu'une touche a été " -"pressée ?" - -#: faq/windows.rst:276 -msgid "" -"Use the :mod:`msvcrt` module. This is a standard Windows-specific extension " -"module. It defines a function ``kbhit()`` which checks whether a keyboard " -"hit is present, and ``getch()`` which gets one character without echoing it." -msgstr "" -"Utilisez le module :mod:`msvcrt`. C'est une extension standard spécifique à " -"Windows, qui définit une fonction ``kbhit()`` qui vérifie si une pression de " -"touche s'est produite, et ``getch()`` qui récupère le caractère sans " -"l'afficher." - -#: faq/windows.rst:281 -msgid "How do I solve the missing api-ms-win-crt-runtime-l1-1-0.dll error?" -msgstr "" -"Comment résoudre l'erreur « ``api-ms-win-crt-runtime-l1-1-0.dll`` " -"manquante » ?" - -#: faq/windows.rst:283 -msgid "" -"This can occur on Python 3.5 and later when using Windows 8.1 or earlier " -"without all updates having been installed. First ensure your operating " -"system is supported and is up to date, and if that does not resolve the " -"issue, visit the `Microsoft support page `_ for guidance on manually installing the C Runtime update." -msgstr "" -"Ce problème peut se produire avec Python 3.5 et les versions ultérieures " -"lorsque vous utilisez Windows 8.1 ou une version antérieure sans que toutes " -"les mises à jour aient été installées. Assurez-vous d'abord que votre " -"système d'exploitation est pris en charge et qu'il est à jour, et si cela ne " -"résout pas le problème, visitez la `page d’assistance de Microsoft `_ pour obtenir des conseils sur " -"l'installation manuelle de la mise à jour du *C Runtime*." - -#~ msgid "" -#~ "Borland note: convert :file:`python{NN}.lib` to OMF format using " -#~ "Coff2Omf.exe first." -#~ msgstr "" -#~ "Note Borland : convertir :file:`python{NN}.lib` au format OMF en " -#~ "utilisant *Coff2Omf.exe* en premier." - -#~ msgid "" -#~ "See `cx_Freeze `_ for a " -#~ "distutils extension that allows you to create console and GUI executables " -#~ "from Python code. `py2exe `_, the most popular " -#~ "extension for building Python 2.x-based executables, does not yet support " -#~ "Python 3 but a version that does is in development." -#~ msgstr "" -#~ "Regardez `cx_Freeze `_ pour " -#~ "une extension *distutils* qui permet de créer des exécutables console et " -#~ "IUG à partir de code Python. `py2exe `_ est " -#~ "l'extension la plus populaire pour transformer du code Python 2 en " -#~ "exécutable, mais ne elle prend pas en charge Python 3 (l'implémentation " -#~ "est en cours de développement)." diff --git a/glossary.po b/glossary.po deleted file mode 100644 index 184d18d214..0000000000 --- a/glossary.po +++ /dev/null @@ -1,3964 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2026-10-29 15:28+0100\n" -"Last-Translator: James Adjinwa \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 3.6\n" - -#: glossary.rst:5 -msgid "Glossary" -msgstr "Glossaire" - -#: glossary.rst:10 -msgid "``>>>``" -msgstr "``>>>``" - -#: glossary.rst:12 -msgid "" -"The default Python prompt of the :term:`interactive` shell. Often seen for " -"code examples which can be executed interactively in the interpreter." -msgstr "" -"L'invite de commande utilisée par défaut dans " -"l'interpréteur :term:`interactif `. On la voit souvent dans des " -"exemples de code qui peuvent être exécutés interactivement dans " -"l'interpréteur." - -#: glossary.rst:15 -msgid "``...``" -msgstr "``...``" - -#: glossary.rst:17 -msgid "Can refer to:" -msgstr "Peut faire référence à :" - -#: glossary.rst:19 -msgid "" -"The default Python prompt of the :term:`interactive` shell when entering the " -"code for an indented code block, when within a pair of matching left and " -"right delimiters (parentheses, square brackets, curly braces or triple " -"quotes), or after specifying a decorator." -msgstr "" -"L'invite de commande utilisée par défaut dans " -"l'interpréteur :term:`interactif ` lorsqu'on entre un bloc de " -"code indenté, dans des délimiteurs fonctionnant par paires (parenthèses, " -"crochets, accolades, triple guillemets), ou après un avoir spécifié un " -"décorateur." - -#: glossary.rst:26 -msgid "" -"The three dots form of the :ref:`Ellipsis ` object." -msgstr "" -"La forme en points de suspension de l'objet :ref:`ellipse `." - -#: glossary.rst:27 -msgid "abstract base class" -msgstr "classe abstraite" - -#: glossary.rst:29 -msgid "" -"Abstract base classes complement :term:`duck-typing` by providing a way to " -"define interfaces when other techniques like :func:`hasattr` would be clumsy " -"or subtly wrong (for example with :ref:`magic methods `). " -"ABCs introduce virtual subclasses, which are classes that don't inherit from " -"a class but are still recognized by :func:`isinstance` " -"and :func:`issubclass`; see the :mod:`abc` module documentation. Python " -"comes with many built-in ABCs for data structures (in " -"the :mod:`collections.abc` module), numbers (in the :mod:`numbers` module), " -"streams (in the :mod:`io` module), import finders and loaders (in " -"the :mod:`importlib.abc` module). You can create your own ABCs with " -"the :mod:`abc` module." -msgstr "" -"Les classes abstraites (ABC, suivant l'abréviation anglaise *Abstract " -"Base Class*) complètent le :term:`duck-typing` en fournissant un moyen de " -"définir des interfaces pour les cas où d'autres techniques " -"comme :func:`hasattr` seraient inélégantes ou subtilement fausses (par " -"exemple avec les :ref:`méthodes magiques `). Les ABC " -"introduisent des sous-classes virtuelles qui n'héritent pas d'une classe " -"mais qui sont quand même reconnues par :func:`isinstance` " -"ou :func:`issubclass` (voir la documentation du module :mod:`abc`). Python " -"contient de nombreuses ABC pour les structures de données (dans le " -"module :mod:`collections.abc`), les nombres (dans le module :mod:`numbers`), " -"les flux (dans le module :mod:`io`) et les chercheurs-chargeurs du système " -"d'importation (dans le module :mod:`importlib.abc`). Vous pouvez créer vos " -"propres ABC avec le module :mod:`abc`." - -#: glossary.rst:40 -msgid "annotate function" -msgstr "fonction annotate" - -#: glossary.rst:42 -msgid "" -"A callable that can be called to retrieve the :term:`annotations " -"` of an object. Annotate functions are usually :term:`functions " -"`, automatically generated as the :attr:`~object.__annotate__` " -"attribute of functions, classes, and modules. Annotate functions are a " -"subset of :term:`evaluate functions `." -msgstr "" - -#: glossary.rst:47 -msgid "annotation" -msgstr "annotation" - -#: glossary.rst:49 -msgid "" -"A label associated with a variable, a class attribute or a function " -"parameter or return value, used by convention as a :term:`type hint`." -msgstr "" -"Étiquette associée à une variable, un attribut de classe, un paramètre de " -"fonction ou une valeur de retour. Elle est utilisée par convention " -"comme :term:`type hint`." - -#: glossary.rst:53 -#, fuzzy -msgid "" -"Annotations of local variables cannot be accessed at runtime, but " -"annotations of global variables, class attributes, and functions can be " -"retrieved by calling :func:`annotationlib.get_annotations` on modules, " -"classes, and functions, respectively." -msgstr "" -"Les annotations de variables locales ne sont pas accessibles au moment de " -"l'exécution, mais les annotations de variables globales, d'attributs de " -"classe et de fonctions sont stockées dans l'attribut " -"spécial :attr:`__annotations__` des modules, classes et fonctions, " -"respectivement." - -#: glossary.rst:58 -#, fuzzy -msgid "" -"See :term:`variable annotation`, :term:`function " -"annotation`, :pep:`484`, :pep:`526`, and :pep:`649`, which describe this " -"functionality. Also see :ref:`annotations-howto` for best practices on " -"working with annotations." -msgstr "" -"Voir :term:`annotation de variable`, :term:`annotation " -"de fonction`, les :pep:`484` et :pep:`526`, qui " -"décrivent cette fonctionnalité. Voir aussi :ref:`annotations-howto` sur les " -"bonnes pratiques concernant les annotations." - -#: glossary.rst:62 -msgid "argument" -msgstr "argument" - -#: glossary.rst:64 -msgid "" -"A value passed to a :term:`function` (or :term:`method`) when calling the " -"function. There are two kinds of argument:" -msgstr "" -"Valeur, donnée à une :term:`fonction` ou à une :term:`méthode` lors de son " -"appel. Il existe deux types d'arguments :" - -#: glossary.rst:67 -msgid "" -":dfn:`keyword argument`: an argument preceded by an identifier (e.g. " -"``name=``) in a function call or passed as a value in a dictionary preceded " -"by ``**``. For example, ``3`` and ``5`` are both keyword arguments in the " -"following calls to :func:`complex`::" -msgstr "" -":dfn:`argument nommé` : un argument précédé d'un identifiant (comme " -"``name=``) ou un dictionnaire précédé de ``**``, lors d'un appel de " -"fonction. Par exemple, ``3`` et ``5`` sont tous les deux des arguments " -"nommés dans l'appel à :func:`complex` ici ::" - -#: glossary.rst:75 -msgid "" -":dfn:`positional argument`: an argument that is not a keyword argument. " -"Positional arguments can appear at the beginning of an argument list and/or " -"be passed as elements of an :term:`iterable` preceded by ``*``. For example, " -"``3`` and ``5`` are both positional arguments in the following calls::" -msgstr "" -":dfn:`argument positionnel` : un argument qui n'est pas nommé. Les arguments " -"positionnels apparaissent au début de la liste des arguments, ou donnés sous " -"forme d'un :term:`itérable` précédé par ``*``. Par exemple, ``3`` et ``5`` " -"sont tous les deux des arguments positionnels dans les appels suivants ::" - -#: glossary.rst:84 -msgid "" -"Arguments are assigned to the named local variables in a function body. See " -"the :ref:`calls` section for the rules governing this assignment. " -"Syntactically, any expression can be used to represent an argument; the " -"evaluated value is assigned to the local variable." -msgstr "" -"Les arguments se retrouvent dans le corps de la fonction appelée parmi les " -"variables locales. Voir la section :ref:`calls` à propos des règles dictant " -"cette affectation. Syntaxiquement, toute expression est acceptée comme " -"argument, et c'est la valeur résultante de l'expression qui sera affectée à " -"la variable locale." - -#: glossary.rst:89 -msgid "" -"See also the :term:`parameter` glossary entry, the FAQ question on :ref:`the " -"difference between arguments and parameters `, " -"and :pep:`362`." -msgstr "" -"Voir aussi :term:`paramètre` dans le glossaire, la " -"question :ref:`Différence entre argument et paramètre ` de la FAQ et la :pep:`362`." - -#: glossary.rst:92 -msgid "asynchronous context manager" -msgstr "gestionnaire de contexte asynchrone" - -#: glossary.rst:94 -msgid "" -"An object which controls the environment seen in an :keyword:`async with` " -"statement by defining :meth:`~object.__aenter__` " -"and :meth:`~object.__aexit__` methods. Introduced by :pep:`492`." -msgstr "" -"(*asynchronous context manager* en anglais) Objet contrôlant l'environnement " -"à l'intérieur d'une instruction :keyword:`async with` en définissant les " -"méthodes :meth:`~object.__aenter__` et :meth:`~object.__aexit__`. A été " -"Introduit par la :pep:`492`." - -#: glossary.rst:97 -msgid "asynchronous generator" -msgstr "générateur asynchrone" - -#: glossary.rst:99 -msgid "" -"A function which returns an :term:`asynchronous generator iterator`. It " -"looks like a coroutine function defined with :keyword:`async def` except " -"that it contains :keyword:`yield` expressions for producing a series of " -"values usable in an :keyword:`async for` loop." -msgstr "" -"Fonction qui renvoie un :term:`itérateur de générateur asynchrone " -"`. Cela ressemble à une coroutine définie " -"par :keyword:`async def`, sauf qu'elle contient une ou des " -"expressions :keyword:`yield` produisant ainsi uns série de valeurs " -"utilisables dans une boucle :keyword:`async for`." - -#: glossary.rst:104 -msgid "" -"Usually refers to an asynchronous generator function, but may refer to an " -"*asynchronous generator iterator* in some contexts. In cases where the " -"intended meaning isn't clear, using the full terms avoids ambiguity." -msgstr "" -"Générateur asynchrone fait généralement référence à une fonction, mais peut " -"faire référence à un *itérateur de générateur asynchrone* dans certains " -"contextes. Dans les cas où le sens voulu n'est pas clair, utiliser " -"l'ensemble des termes lève l’ambiguïté." - -#: glossary.rst:108 -msgid "" -"An asynchronous generator function may contain :keyword:`await` expressions " -"as well as :keyword:`async for`, and :keyword:`async with` statements." -msgstr "" -"Un générateur asynchrone peut contenir des expressions :keyword:`await` " -"ainsi que des instructions :keyword:`async for`, et :keyword:`async with`." - -#: glossary.rst:111 -msgid "asynchronous generator iterator" -msgstr "itérateur de générateur asynchrone" - -#: glossary.rst:113 -#, fuzzy -msgid "An object created by an :term:`asynchronous generator` function." -msgstr "" -"Objet créé par un :term:`générateur asynchrone `." - -#: glossary.rst:115 -msgid "" -"This is an :term:`asynchronous iterator` which when called using " -"the :meth:`~object.__anext__` method returns an awaitable object which will " -"execute the body of the asynchronous generator function until the " -"next :keyword:`yield` expression." -msgstr "" -"C'est un :term:`asynchronous iterator` qui, lorsqu'il est appelé via la " -"méthode :meth:`~object.__anext__` renvoie un objet *awaitable* qui exécute " -"le corps de la fonction du générateur asynchrone jusqu'au " -"prochain :keyword:`yield`." - -#: glossary.rst:120 -#, fuzzy -msgid "" -"Each :keyword:`yield` temporarily suspends processing, remembering the " -"execution state (including local variables and pending try-statements). " -"When the *asynchronous generator iterator* effectively resumes with another " -"awaitable returned by :meth:`~object.__anext__`, it picks up where it left " -"off. See :pep:`492` and :pep:`525`." -msgstr "" -"Chaque :keyword:`yield` suspend temporairement l'exécution, en gardant en " -"mémoire l'emplacement et l'état de l'exécution (ce qui inclut les variables " -"locales et les *try* en cours). Lorsque l'exécution de l'itérateur de " -"générateur asynchrone reprend avec un nouvel *awaitable* renvoyé " -"par :meth:`~object.__anext__`, elle repart de là où elle s'était arrêtée. " -"Voir les :pep:`492` et :pep:`525`." - -#: glossary.rst:125 -msgid "asynchronous iterable" -msgstr "itérable asynchrone" - -#: glossary.rst:127 -msgid "" -"An object, that can be used in an :keyword:`async for` statement. Must " -"return an :term:`asynchronous iterator` from its :meth:`~object.__aiter__` " -"method. Introduced by :pep:`492`." -msgstr "" -"Objet qui peut être utilisé dans une instruction :keyword:`async for`. Sa " -"méthode :meth:`~object.__aiter__` doit renvoyer un :term:`asynchronous " -"iterator`. A été introduit par la :pep:`492`." - -#: glossary.rst:130 -msgid "asynchronous iterator" -msgstr "itérateur asynchrone" - -#: glossary.rst:132 -msgid "" -"An object that implements the :meth:`~object.__aiter__` " -"and :meth:`~object.__anext__` methods. :meth:`~object.__anext__` must " -"return an :term:`awaitable` object. :keyword:`async for` resolves the " -"awaitables returned by an asynchronous iterator's :meth:`~object.__anext__` " -"method until it raises a :exc:`StopAsyncIteration` exception. Introduced " -"by :pep:`492`." -msgstr "" -"Objet qui implémente les méthodes :meth:`~object.__aiter__` " -"et :meth:`~object.__anext__`. :meth:`~object.__anext__` doit renvoyer un " -"objet :term:`awaitable`. Tant que la méthode :meth:`~object.__anext__` " -"produit des objets *awaitable*, le :keyword:`async for` appelant les " -"consomme. L'itérateur asynchrone lève une " -"exception :exc:`StopAsyncIteration` pour signifier la fin de l'itération. A " -"été introduit par la :pep:`492`." - -#: glossary.rst:137 -msgid "atomic operation" -msgstr "" - -#: glossary.rst:139 -msgid "" -"An operation that appears to execute as a single, indivisible step: no other " -"thread can observe it half-done, and its effects become visible all at " -"once. Python does not guarantee that high-level statements are atomic (for " -"example, ``x += 1`` performs multiple bytecode operations and is not " -"atomic). Atomicity is only guaranteed where explicitly documented. See " -"also :term:`race condition` and :term:`data race`." -msgstr "" - -#: glossary.rst:145 -msgid "attached thread state" -msgstr "" - -#: glossary.rst:148 -msgid "A :term:`thread state` that is active for the current OS thread." -msgstr "" - -#: glossary.rst:150 -msgid "" -"When a :term:`thread state` is attached, the OS thread has access to the " -"full Python C API and can safely invoke the bytecode interpreter." -msgstr "" - -#: glossary.rst:154 -msgid "" -"Unless a function explicitly notes otherwise, attempting to call the C API " -"without an attached thread state will result in a fatal error or undefined " -"behavior. A thread state can be attached and detached explicitly by the " -"user through the C API, or implicitly by the runtime, including during " -"blocking C calls and by the bytecode interpreter in between calls." -msgstr "" - -#: glossary.rst:161 -msgid "" -"On most builds of Python, having an attached thread state implies that the " -"caller holds the :term:`GIL` for the current interpreter, so only one OS " -"thread can have an attached thread state at a given moment. In :term:`free-" -"threaded builds ` of Python, threads can concurrently " -"hold an attached thread state, allowing for true parallelism of the bytecode " -"interpreter." -msgstr "" - -#: glossary.rst:167 -msgid "attribute" -msgstr "attribut" - -#: glossary.rst:169 -msgid "" -"A value associated with an object which is usually referenced by name using " -"dotted expressions. For example, if an object *o* has an attribute *a* it " -"would be referenced as *o.a*." -msgstr "" -"Valeur associée à un objet et habituellement désignée par son nom *via* une " -"notation utilisant des points. Par exemple, si un objet *o* possède un " -"attribut *a*, cet attribut est référencé par *o.a*." - -#: glossary.rst:174 -msgid "" -"It is possible to give an object an attribute whose name is not an " -"identifier as defined by :ref:`identifiers`, for example " -"using :func:`setattr`, if the object allows it. Such an attribute will not " -"be accessible using a dotted expression, and would instead need to be " -"retrieved with :func:`getattr`." -msgstr "" -"Il est possible de donner à un objet un attribut dont le nom n'est pas un " -"identifiant tel que défini pour les :ref:`identifiers`, par exemple en " -"utilisant :func:`setattr`, si l'objet le permet. Un tel attribut ne sera pas " -"accessible à l'aide d'une expression pointée et on devra y accéder " -"avec :func:`getattr`." - -#: glossary.rst:179 -msgid "awaitable" -msgstr "attendable (*awaitable*)" - -#: glossary.rst:181 -msgid "" -"An object that can be used in an :keyword:`await` expression. Can be " -"a :term:`coroutine` or an object with an :meth:`~object.__await__` method. " -"See also :pep:`492`." -msgstr "" -"Objet pouvant être utilisé dans une expression :keyword:`await`. Ce peut " -"être une :term:`coroutine` ou un objet avec une " -"méthode :meth:`~object.__await__`. Voir aussi la :pep:`492`." - -#: glossary.rst:184 -msgid "BDFL" -msgstr "BDFL" - -#: glossary.rst:186 -msgid "" -"Benevolent Dictator For Life, a.k.a. `Guido van Rossum `_, Python's creator." -msgstr "" -"Dictateur bienveillant à vie (*Benevolent Dictator For Life* en anglais). " -"Pseudonyme de `Guido van Rossum `_, le " -"créateur de Python." - -#: glossary.rst:188 -msgid "binary file" -msgstr "fichier binaire" - -#: glossary.rst:190 -#, fuzzy -msgid "" -"A :term:`file object` able to read and write :term:`bytes-like objects " -"`. Examples of binary files are files opened in binary " -"mode (``'rb'``, ``'wb'`` or ``'rb+'``), :data:`sys.stdin.buffer " -"`, :data:`sys.stdout.buffer `, and instances " -"of :class:`io.BytesIO` and :class:`gzip.GzipFile`." -msgstr "" -"Un :term:`file object` capable de lire et d'écrire des :term:`bytes-like " -"objects `. Des fichiers binaires sont, par exemple, les " -"fichiers ouverts en mode binaire (``'rb'``, ``'wb'``, ou " -"``'rb+'``), :data:`sys.stdin.buffer`, :data:`sys.stdout.buffer`, les " -"instances de :class:`io.BytesIO` ou de :class:`gzip.GzipFile`." - -#: glossary.rst:197 -msgid "" -"See also :term:`text file` for a file object able to read and " -"write :class:`str` objects." -msgstr "" -"Consultez :term:`fichier texte`, un objet fichier capable de lire et " -"d'écrire des objets :class:`str`." - -#: glossary.rst:199 -msgid "borrowed reference" -msgstr "référence empruntée" - -#: glossary.rst:201 -#, fuzzy -msgid "" -"In Python's C API, a borrowed reference is a reference to an object, where " -"the code using the object does not own the reference. It becomes a dangling " -"pointer if the object is destroyed. For example, a garbage collection can " -"remove the last :term:`strong reference` to the object and so destroy it." -msgstr "" -"Dans l'API C de Python, une référence empruntée est une référence vers un " -"objet qui n'affecte pas son compteur de référence. Elle devient invalide si " -"l'objet est supprimé, par exemple au cours d'un passage du ramasse-miettes " -"qui conduit à la disparition de la dernière :term:`référence forte` vers " -"l'objet." - -#: glossary.rst:207 -msgid "" -"Calling :c:func:`Py_INCREF` on the :term:`borrowed reference` is recommended " -"to convert it to a :term:`strong reference` in-place, except when the object " -"cannot be destroyed before the last usage of the borrowed reference. " -"The :c:func:`Py_NewRef` function can be used to create a new :term:`strong " -"reference`." -msgstr "" -"Il est recommandé d'appeler :c:func:`Py_INCREF` sur la :term:`référence " -"empruntée`, ce qui la transforme *in situ* en une :term:`référence forte`. " -"Vous pouvez faire une exception si vous êtes certain que l'objet ne peut pas " -"être supprimé avant la dernière utilisation de la référence empruntée. Voir " -"aussi la fonction :c:func:`Py_NewRef`, qui crée une " -"nouvelle :term:`référence forte`." - -#: glossary.rst:212 -msgid "bytes-like object" -msgstr "objet octet-compatible" - -#: glossary.rst:214 -msgid "" -"An object that supports the :ref:`bufferobjects` and can export a " -"C-:term:`contiguous` buffer. This includes " -"all :class:`bytes`, :class:`bytearray`, and :class:`array.array` objects, as " -"well as many common :class:`memoryview` objects. Bytes-like objects can be " -"used for various operations that work with binary data; these include " -"compression, saving to a binary file, and sending over a socket." -msgstr "" -"Un objet gérant le :ref:`protocole tampon ` et pouvant " -"exporter un tampon (*buffer* en anglais) C-:term:`contigu `. " -"Cela inclut les objets :class:`bytes`, :class:`bytearray` " -"et :class:`array.array`, ainsi que beaucoup d'objets :class:`memoryview`. " -"Les objets octets-compatibles peuvent être utilisés pour diverses opérations " -"sur des données binaires, comme la compression, la sauvegarde dans un " -"fichier binaire ou l'envoi sur le réseau." - -#: glossary.rst:221 -msgid "" -"Some operations need the binary data to be mutable. The documentation often " -"refers to these as \"read-write bytes-like objects\". Example mutable " -"buffer objects include :class:`bytearray` and a :class:`memoryview` of " -"a :class:`bytearray`. Other operations require the binary data to be stored " -"in immutable objects (\"read-only bytes-like objects\"); examples of these " -"include :class:`bytes` and a :class:`memoryview` of a :class:`bytes` object." -msgstr "" -"Certaines opérations nécessitent de travailler sur des données binaires " -"variables. La documentation parle de ceux-ci comme des *read-write bytes-" -"like objects*. Par exemple, :class:`bytearray` ou une :class:`memoryview` " -"d'un :class:`bytearray` en font partie. D'autres opérations nécessitent de " -"travailler sur des données binaires stockées dans des objets immuables " -"(« *objets octets-compatibles en lecture seule* »), par exemple " -"des :class:`bytes` ou des :class:`memoryview` d'un objet :class:`bytes`." - -#: glossary.rst:229 -msgid "bytecode" -msgstr "code intermédiaire (*bytecode*)" - -#: glossary.rst:231 -msgid "" -"Python source code is compiled into bytecode, the internal representation of " -"a Python program in the CPython interpreter. The bytecode is also cached in " -"``.pyc`` files so that executing the same file is faster the second time " -"(recompilation from source to bytecode can be avoided). This \"intermediate " -"language\" is said to run on a :term:`virtual machine` that executes the " -"machine code corresponding to each bytecode. Do note that bytecodes are not " -"expected to work between different Python virtual machines, nor to be stable " -"between Python releases." -msgstr "" -"Le code source, en Python, est compilé en un code intermédiaire (*bytecode* " -"en anglais), la représentation interne à CPython d'un programme Python. Le " -"code intermédiaire est mis en cache dans un fichier ``.pyc`` de manière à ce " -"qu'une seconde exécution soit plus rapide (la compilation en code " -"intermédiaire a déjà été faite). On dit que ce *langage intermédiaire* est " -"exécuté sur une :term:`virtual machine` qui exécute des instructions machine " -"pour chaque instruction du code intermédiaire. Notez que le code " -"intermédiaire n'a pas vocation à fonctionner sur différentes machines " -"virtuelles Python ou à être stable entre différentes versions de Python." - -#: glossary.rst:241 -msgid "" -"A list of bytecode instructions can be found in the documentation " -"for :ref:`the dis module `." -msgstr "" -"La documentation du :ref:`module dis ` fournit une liste des " -"instructions du code intermédiaire." - -#: glossary.rst:243 -msgid "callable" -msgstr "appelable (*callable*)" - -#: glossary.rst:245 -msgid "" -"A callable is an object that can be called, possibly with a set of arguments " -"(see :term:`argument`), with the following syntax::" -msgstr "" -"Un appelable est un objet qui peut être appelé, éventuellement avec un " -"ensemble d'arguments (voir :term:`argument`), avec la syntaxe suivante ::" - -#: glossary.rst:250 -msgid "" -"A :term:`function`, and by extension a :term:`method`, is a callable. An " -"instance of a class that implements the :meth:`~object.__call__` method is " -"also a callable." -msgstr "" -"Une :term:`fonction `, et par extension une :term:`méthode " -"`, est un appelable. Une instance d'une classe qui implémente la " -"méthode :meth:`~object.__call__` est également un appelable." - -#: glossary.rst:253 -msgid "callback" -msgstr "fonction de rappel (*callback*)" - -#: glossary.rst:255 -msgid "" -"A subroutine function which is passed as an argument to be executed at some " -"point in the future." -msgstr "" -"Une fonction (classique, par opposition à une coroutine) passée en argument " -"pour être exécutée plus tard." - -#: glossary.rst:257 -msgid "class" -msgstr "classe" - -#: glossary.rst:259 -msgid "" -"A template for creating user-defined objects. Class definitions normally " -"contain method definitions which operate on instances of the class." -msgstr "" -"Modèle pour créer des objets définis par l'utilisateur. Une définition de " -"classe (*class*) contient normalement des définitions de méthodes qui " -"agissent sur les instances de la classe." - -#: glossary.rst:262 -msgid "class variable" -msgstr "variable de classe" - -#: glossary.rst:264 -msgid "" -"A variable defined in a class and intended to be modified only at class " -"level (i.e., not in an instance of the class)." -msgstr "" -"Une variable définie dans une classe et destinée à être modifiée uniquement " -"au niveau de la classe (c'est-à-dire, pas dans une instance de la classe)." - -#: glossary.rst:266 -#, fuzzy -msgid "closure variable" -msgstr "variable de classe" - -#: glossary.rst:268 -msgid "" -"A :term:`free variable` referenced from a :term:`nested scope` that is " -"defined in an outer scope rather than being resolved at runtime from the " -"globals or builtin namespaces. May be explicitly defined with " -"the :keyword:`nonlocal` keyword to allow write access, or implicitly defined " -"if the variable is only being read." -msgstr "" - -#: glossary.rst:273 -msgid "" -"For example, in the ``inner`` function in the following code, both ``x`` and " -"``print`` are :term:`free variables `, but only ``x`` is a " -"*closure variable*::" -msgstr "" - -#: glossary.rst:284 -msgid "" -"Due to the :attr:`codeobject.co_freevars` attribute (which, despite its " -"name, only includes the names of closure variables rather than listing all " -"referenced free variables), the more general :term:`free variable` term is " -"sometimes used even when the intended meaning is to refer specifically to " -"closure variables." -msgstr "" - -#: glossary.rst:288 -msgid "complex number" -msgstr "nombre complexe" - -#: glossary.rst:290 -msgid "" -"An extension of the familiar real number system in which all numbers are " -"expressed as a sum of a real part and an imaginary part. Imaginary numbers " -"are real multiples of the imaginary unit (the square root of ``-1``), often " -"written ``i`` in mathematics or ``j`` in engineering. Python has built-in " -"support for complex numbers, which are written with this latter notation; " -"the imaginary part is written with a ``j`` suffix, e.g., ``3+1j``. To get " -"access to complex equivalents of the :mod:`math` module, use :mod:`cmath`. " -"Use of complex numbers is a fairly advanced mathematical feature. If you're " -"not aware of a need for them, it's almost certain you can safely ignore them." -msgstr "" -"Extension des nombres réels familiers, dans laquelle tous les nombres sont " -"exprimés sous la forme d'une somme d'une partie réelle et d'une partie " -"imaginaire. Les nombres imaginaires sont les nombres réels multipliés par " -"l'unité imaginaire (la racine carrée de ``-1``, souvent écrite ``i`` en " -"mathématiques ou ``j`` par les ingénieurs). Python comprend nativement les " -"nombres complexes, écrits avec cette dernière notation : la partie " -"imaginaire est écrite avec un suffixe ``j``, exemple, ``3+1j``. Pour " -"utiliser les équivalents complexes de :mod:`math`, utilisez :mod:`cmath`. " -"Les nombres complexes sont un concept assez avancé en mathématiques. Si vous " -"ne connaissez pas ce concept, vous pouvez tranquillement les ignorer." - -#: glossary.rst:300 -msgid "concurrency" -msgstr "" - -#: glossary.rst:302 -msgid "" -"The ability of a computer program to perform multiple tasks at the same " -"time. Python provides libraries for writing programs that make use of " -"different forms of concurrency. :mod:`asyncio` is a library for dealing " -"with asynchronous tasks and coroutines. :mod:`threading` provides access to " -"operating system threads and :mod:`multiprocessing` to operating system " -"processes. Multi-core processors can execute threads and processes on " -"different CPU cores at the same time (see :term:`parallelism`)." -msgstr "" - -#: glossary.rst:310 -msgid "concurrent modification" -msgstr "" - -#: glossary.rst:312 -msgid "" -"When multiple threads modify shared data at the same time. Concurrent " -"modification without proper synchronization can cause :term:`race conditions " -"`, and might also trigger a :term:`data race `, " -"data corruption, or both." -msgstr "" - -#: glossary.rst:316 -#, fuzzy -msgid "context" -msgstr "gestionnaire de contexte" - -#: glossary.rst:318 -msgid "" -"This term has different meanings depending on where and how it is used. Some " -"common meanings:" -msgstr "" - -#: glossary.rst:321 -msgid "" -"The temporary state or environment established by a :term:`context manager` " -"via a :keyword:`with` statement." -msgstr "" - -#: glossary.rst:323 -msgid "" -"The collection of key­value bindings associated with a " -"particular :class:`contextvars.Context` object and accessed " -"via :class:`~contextvars.ContextVar` objects. Also see :term:`context " -"variable`." -msgstr "" - -#: glossary.rst:327 -msgid "" -"A :class:`contextvars.Context` object. Also see :term:`current context`." -msgstr "" - -#: glossary.rst:329 -#, fuzzy -msgid "context management protocol" -msgstr "gestionnaire de contexte" - -#: glossary.rst:331 -msgid "" -"The :meth:`~object.__enter__` and :meth:`~object.__exit__` methods called by " -"the :keyword:`with` statement. See :pep:`343`." -msgstr "" - -#: glossary.rst:333 -msgid "context manager" -msgstr "gestionnaire de contexte" - -#: glossary.rst:335 -msgid "" -"An object which implements the :term:`context management protocol` and " -"controls the environment seen in a :keyword:`with` statement. " -"See :pep:`343`." -msgstr "" - -#: glossary.rst:338 -msgid "context variable" -msgstr "variable de contexte" - -#: glossary.rst:340 -msgid "" -"A variable whose value depends on which context is the :term:`current " -"context`. Values are accessed via :class:`contextvars.ContextVar` objects. " -"Context variables are primarily used to isolate state between concurrent " -"asynchronous tasks." -msgstr "" - -#: glossary.rst:344 -msgid "contiguous" -msgstr "contigu" - -#: glossary.rst:348 -msgid "" -"A buffer is considered contiguous exactly if it is either *C-contiguous* or " -"*Fortran contiguous*. Zero-dimensional buffers are C and Fortran " -"contiguous. In one-dimensional arrays, the items must be laid out in memory " -"next to each other, in order of increasing indexes starting from zero. In " -"multidimensional C-contiguous arrays, the last index varies the fastest when " -"visiting items in order of memory address. However, in Fortran contiguous " -"arrays, the first index varies the fastest." -msgstr "" -"Un tampon (*buffer* en anglais) est considéré comme contigu s’il est soit *C-" -"contigu* soit *Fortran-contigu*. Les tampons de dimension zéro sont C-" -"contigus et Fortran-contigus. Pour un tableau à une dimension, ses éléments " -"doivent être placés en mémoire l’un à côté de l’autre, dans l’ordre " -"croissant de leur indice, en commençant à zéro. Pour qu’un tableau " -"multidimensionnel soit C-contigu, le dernier indice doit être celui qui " -"varie le plus rapidement lors du parcours de ses éléments dans l’ordre de " -"leur adresse mémoire. À l'inverse, dans les tableaux Fortran-contigu, c’est " -"le premier indice qui doit varier le plus rapidement." - -#: glossary.rst:356 -msgid "coroutine" -msgstr "coroutine" - -#: glossary.rst:358 -msgid "" -"Coroutines are a more generalized form of subroutines. Subroutines are " -"entered at one point and exited at another point. Coroutines can be " -"entered, exited, and resumed at many different points. They can be " -"implemented with the :keyword:`async def` statement. See also :pep:`492`." -msgstr "" -"Les coroutines sont une forme généralisée des fonctions. On entre dans une " -"fonction en un point et on en sort en un autre point. On peut entrer, sortir " -"et reprendre l'exécution d'une coroutine en plusieurs points. Elles peuvent " -"être implémentées en utilisant l'instruction :keyword:`async def`. Voir " -"aussi la :pep:`492`." - -#: glossary.rst:363 -msgid "coroutine function" -msgstr "fonction coroutine" - -#: glossary.rst:365 -msgid "" -"A function which returns a :term:`coroutine` object. A coroutine function " -"may be defined with the :keyword:`async def` statement, and may " -"contain :keyword:`await`, :keyword:`async for`, and :keyword:`async with` " -"keywords. These were introduced by :pep:`492`." -msgstr "" -"Fonction qui renvoie un objet :term:`coroutine`. Une fonction coroutine peut " -"être définie par l'instruction :keyword:`async def` et peut contenir les " -"mots clés :keyword:`await`, :keyword:`async for` ainsi que :keyword:`async " -"with`. A été introduit par la :pep:`492`." - -#: glossary.rst:370 -msgid "CPython" -msgstr "CPython" - -#: glossary.rst:372 -msgid "" -"The canonical implementation of the Python programming language, as " -"distributed on `python.org `_. The term \"CPython\" " -"is used when necessary to distinguish this implementation from others such " -"as Jython or IronPython." -msgstr "" -"L'implémentation canonique du langage de programmation Python, tel que " -"distribué sur `python.org `_. Le terme \"CPython\" " -"est utilisé dans certains contextes lorsqu'il est nécessaire de distinguer " -"cette implémentation des autres comme *Jython* ou *IronPython*." - -#: glossary.rst:376 -msgid "current context" -msgstr "" - -#: glossary.rst:378 -msgid "" -"The :term:`context` (:class:`contextvars.Context` object) that is currently " -"used by :class:`~contextvars.ContextVar` objects to access (get or set) the " -"values of :term:`context variables `. Each thread has its " -"own current context. Frameworks for executing asynchronous tasks " -"(see :mod:`asyncio`) associate each task with a context which becomes the " -"current context whenever the task starts or resumes execution." -msgstr "" - -#: glossary.rst:384 -msgid "cyclic isolate" -msgstr "" - -#: glossary.rst:386 -msgid "" -"A subgroup of one or more objects that reference each other in a reference " -"cycle, but are not referenced by objects outside the group. The goal of " -"the :term:`cyclic garbage collector ` is to identify " -"these groups and break the reference cycles so that the memory can be " -"reclaimed." -msgstr "" - -#: glossary.rst:390 -msgid "data race" -msgstr "" - -#: glossary.rst:392 -msgid "" -"A situation where multiple threads access the same memory location " -"concurrently, at least one of the accesses is a write, and the threads do " -"not use any synchronization to control their access. Data races lead " -"to :term:`non-deterministic` behavior and can cause data corruption. Proper " -"use of :term:`locks ` and other :term:`synchronization primitives " -"` prevents data races. Note that data races can " -"only happen in native code, but that :term:`native code` might be exposed in " -"a Python API. See also :term:`race condition` and :term:`thread-safe`." -msgstr "" - -#: glossary.rst:401 -msgid "deadlock" -msgstr "" - -#: glossary.rst:403 -msgid "" -"A situation in which two or more tasks (threads, processes, or coroutines) " -"wait indefinitely for each other to release resources or complete actions, " -"preventing any from making progress. For example, if thread A holds lock 1 " -"and waits for lock 2, while thread B holds lock 2 and waits for lock 1, both " -"threads will wait indefinitely. In Python this often arises from acquiring " -"multiple locks in conflicting orders or from circular join/await " -"dependencies. Deadlocks can be avoided by always acquiring " -"multiple :term:`locks ` in a consistent order. See also :term:`lock` " -"and :term:`reentrant`." -msgstr "" - -#: glossary.rst:412 -msgid "decorator" -msgstr "décorateur" - -#: glossary.rst:414 -msgid "" -"A function returning another function, usually applied as a function " -"transformation using the ``@wrapper`` syntax. Common examples for " -"decorators are :func:`classmethod` and :func:`staticmethod`." -msgstr "" -"Fonction dont la valeur de retour est une autre fonction. Un décorateur est " -"habituellement utilisé pour transformer une fonction via la syntaxe " -"``@wrapper``, dont les exemples typiques sont : :func:`classmethod` " -"et :func:`staticmethod`." - -#: glossary.rst:418 -msgid "" -"The decorator syntax is merely syntactic sugar, the following two function " -"definitions are semantically equivalent::" -msgstr "" -"La syntaxe des décorateurs est simplement du sucre syntaxique, les " -"définitions des deux fonctions suivantes sont sémantiquement équivalentes ::" - -#: glossary.rst:429 -msgid "" -"The same concept exists for classes, but is less commonly used there. See " -"the documentation for :ref:`function definitions ` and :ref:`class " -"definitions ` for more about decorators." -msgstr "" -"Quoique moins fréquemment utilisé, le même concept existe pour les classes. " -"Consultez la documentation :ref:`définitions de fonctions ` " -"et :ref:`définitions de classes ` pour en savoir plus sur les " -"décorateurs." - -#: glossary.rst:432 -msgid "descriptor" -msgstr "descripteur" - -#: glossary.rst:434 -#, fuzzy -msgid "" -"Any object which defines the " -"methods :meth:`~object.__get__`, :meth:`~object.__set__`, " -"or :meth:`~object.__delete__`. When a class attribute is a descriptor, its " -"special binding behavior is triggered upon attribute lookup. Normally, " -"using *a.b* to get, set or delete an attribute looks up the object named *b* " -"in the class dictionary for *a*, but if *b* is a descriptor, the respective " -"descriptor method gets called. Understanding descriptors is a key to a deep " -"understanding of Python because they are the basis for many features " -"including functions, methods, properties, class methods, static methods, and " -"reference to super classes." -msgstr "" -"N'importe quel objet définissant les " -"méthodes :meth:`__get__`, :meth:`__set__`, ou :meth:`__delete__`. Lorsque " -"l'attribut d'une classe est un descripteur, son comportement spécial est " -"déclenché lors de la recherche des attributs. Normalement, lorsque vous " -"écrivez *a.b* pour obtenir, affecter ou effacer un attribut, Python " -"recherche l'objet nommé *b* dans le dictionnaire de la classe de *a*. Mais " -"si *b* est un descripteur, c'est la méthode de ce descripteur qui est alors " -"appelée. Comprendre les descripteurs est requis pour avoir une compréhension " -"approfondie de Python, ils sont la base de nombre de ses caractéristiques " -"notamment les fonctions, méthodes, propriétés, méthodes de classes, méthodes " -"statiques et les références aux classes parentes." - -#: glossary.rst:445 -msgid "" -"For more information about descriptors' methods, see :ref:`descriptors` or " -"the :ref:`Descriptor How To Guide `." -msgstr "" -"Pour plus d'informations sur les méthodes des descripteurs, " -"consultez :ref:`descriptors` ou le :ref:`guide pour l'utilisation des " -"descripteurs `." - -#: glossary.rst:447 -msgid "dictionary" -msgstr "dictionnaire" - -#: glossary.rst:449 -#, fuzzy -msgid "" -"An associative array, where arbitrary keys are mapped to values. The keys " -"can be any object with :meth:`~object.__hash__` and :meth:`~object.__eq__` " -"methods. Called a hash in Perl." -msgstr "" -"Structure de donnée associant des clés à des valeurs. Les clés peuvent être " -"n'importe quel objet possédant les méthodes :meth:`__hash__` " -"et :meth:`__eq__`. En Perl, les dictionnaires sont appelés \"*hash*\"." - -#: glossary.rst:453 -msgid "dictionary comprehension" -msgstr "dictionnaire en compréhension (ou dictionnaire en intension)" - -#: glossary.rst:455 -msgid "" -"A compact way to process all or part of the elements in an iterable and " -"return a dictionary with the results. ``results = {n: n ** 2 for n in " -"range(10)}`` generates a dictionary containing key ``n`` mapped to value ``n " -"** 2``. See :ref:`comprehensions`." -msgstr "" -"Écriture concise pour traiter tout ou partie des éléments d'un itérable et " -"renvoyer un dictionnaire contenant les résultats. ``results = {n: n ** 2 for " -"n in range(10)}`` génère un dictionnaire contenant des clés ``n`` liées à " -"leurs valeurs ``n ** 2``. Voir :ref:`compréhensions `." - -#: glossary.rst:459 -msgid "dictionary view" -msgstr "vue de dictionnaire" - -#: glossary.rst:461 -msgid "" -"The objects returned from :meth:`dict.keys`, :meth:`dict.values`, " -"and :meth:`dict.items` are called dictionary views. They provide a dynamic " -"view on the dictionary’s entries, which means that when the dictionary " -"changes, the view reflects these changes. To force the dictionary view to " -"become a full list use ``list(dictview)``. See :ref:`dict-views`." -msgstr "" -"Objets retournés par les méthodes :meth:`dict.keys`, :meth:`dict.values` " -"et :meth:`dict.items`. Ils fournissent des vues dynamiques des entrées du " -"dictionnaire, ce qui signifie que lorsque le dictionnaire change, la vue " -"change. Pour transformer une vue en vraie liste, utilisez " -"``list(dictview)``. Voir :ref:`dict-views`." - -#: glossary.rst:467 -msgid "docstring" -msgstr "chaîne de documentation (*docstring*)" - -#: glossary.rst:469 -#, fuzzy -msgid "" -"A string literal which appears as the first expression in a class, function " -"or module. While ignored when the suite is executed, it is recognized by " -"the compiler and put into the :attr:`~definition.__doc__` attribute of the " -"enclosing class, function or module. Since it is available via " -"introspection, it is the canonical place for documentation of the object." -msgstr "" -"Première chaîne littérale qui apparaît dans l'expression d'une classe, " -"fonction, ou module. Bien qu'ignorée à l'exécution, elle est reconnue par le " -"compilateur et placée dans l'attribut :attr:`__doc__` de la classe, de la " -"fonction ou du module. Comme cette chaîne est disponible par introspection, " -"c'est l'endroit idéal pour documenter l'objet." - -#: glossary.rst:475 -msgid "duck-typing" -msgstr "typage canard (*duck-typing*)" - -#: glossary.rst:477 -msgid "" -"A programming style which does not look at an object's type to determine if " -"it has the right interface; instead, the method or attribute is simply " -"called or used (\"If it looks like a duck and quacks like a duck, it must be " -"a duck.\") By emphasizing interfaces rather than specific types, well-" -"designed code improves its flexibility by allowing polymorphic " -"substitution. Duck-typing avoids tests using :func:`type` " -"or :func:`isinstance`. (Note, however, that duck-typing can be complemented " -"with :term:`abstract base classes `.) Instead, it " -"typically employs :func:`hasattr` tests or :term:`EAFP` programming." -msgstr "" -"Style de programmation qui ne prend pas en compte le type d'un objet pour " -"déterminer s'il respecte une interface, mais qui appelle simplement la " -"méthode ou l'attribut (*Si ça a un bec et que ça cancane, ça doit être un " -"canard*, *duck* signifie canard en anglais). En se concentrant sur les " -"interfaces plutôt que les types, du code bien construit améliore sa " -"flexibilité en autorisant des substitutions polymorphiques. Le *duck-typing* " -"évite de vérifier les types via :func:`type` ou :func:`isinstance`, Notez " -"cependant que le *duck-typing* peut travailler de pair avec " -"les :term:`classes abstraites `. À la place, le " -"*duck-typing* utilise plutôt :func:`hasattr` ou la " -"programmation :term:`EAFP`." - -#: glossary.rst:486 -#, fuzzy -msgid "dunder" -msgstr "chercheur" - -#: glossary.rst:488 -msgid "" -"An informal short-hand for \"double underscore\", used when talking about " -"a :term:`special method`. For example, ``__init__`` is often pronounced " -"\"dunder init\"." -msgstr "" - -#: glossary.rst:491 -msgid "EAFP" -msgstr "EAFP" - -#: glossary.rst:493 -msgid "" -"Easier to ask for forgiveness than permission. This common Python coding " -"style assumes the existence of valid keys or attributes and catches " -"exceptions if the assumption proves false. This clean and fast style is " -"characterized by the presence of many :keyword:`try` and :keyword:`except` " -"statements. The technique contrasts with the :term:`LBYL` style common to " -"many other languages such as C." -msgstr "" -"Il est plus simple de demander pardon que demander la permission (*Easier to " -"Ask for Forgiveness than Permission* en anglais). Ce style de développement " -"Python fait l'hypothèse que le code est valide et traite les exceptions si " -"cette hypothèse s'avère fausse. Ce style, propre et efficace, est " -"caractérisé par la présence de beaucoup de mots clés :keyword:`try` " -"et :keyword:`except`. Cette technique de programmation contraste avec le " -"style :term:`LBYL` utilisé couramment dans les langages tels que C." - -#: glossary.rst:499 -#, fuzzy -msgid "evaluate function" -msgstr "fonction clé" - -#: glossary.rst:501 -msgid "" -"A function that can be called to evaluate a lazily evaluated attribute of an " -"object, such as the value of type aliases created with the :keyword:`type` " -"statement." -msgstr "" - -#: glossary.rst:504 -msgid "expression" -msgstr "expression" - -#: glossary.rst:506 -msgid "" -"A piece of syntax which can be evaluated to some value. In other words, an " -"expression is an accumulation of expression elements like literals, names, " -"attribute access, operators or function calls which all return a value. In " -"contrast to many other languages, not all language constructs are " -"expressions. There are also :term:`statement`\\s which cannot be used as " -"expressions, such as :keyword:`while`. Assignments are also statements, not " -"expressions." -msgstr "" -"Suite logique de termes et chiffres conformes à la syntaxe Python dont " -"l'évaluation fournit une valeur. En d'autres termes, une expression est une " -"suite d'éléments tels que des noms, opérateurs, littéraux, accès " -"d'attributs, méthodes ou fonctions qui aboutissent à une valeur. " -"Contrairement à beaucoup d'autres langages, les différentes constructions du " -"langage ne sont pas toutes des expressions. On trouve également " -"des :term:`instructions ` qui ne peuvent pas être utilisées comme " -"expressions, tel que :keyword:`while`. Les affectations sont également des " -"instructions et non des expressions." - -#: glossary.rst:513 -msgid "extension module" -msgstr "module d'extension" - -#: glossary.rst:515 -msgid "" -"A module written in C or C++, using Python's C API to interact with the core " -"and with user code." -msgstr "" -"Module écrit en C ou C++, utilisant l'API C de Python pour interagir avec " -"Python et le code de l'utilisateur." - -#: glossary.rst:517 -msgid "f-string" -msgstr "f-string" - -#: glossary.rst:518 -#, fuzzy -msgid "f-strings" -msgstr "f-string" - -#: glossary.rst:520 -#, fuzzy -msgid "" -"String literals prefixed with ``f`` or ``F`` are commonly called \"f-" -"strings\" which is short for :ref:`formatted string literals `. " -"See also :pep:`498`." -msgstr "" -"Chaîne littérale préfixée de ``'f'`` ou ``'F'``. Les \"f-strings\" sont un " -"raccourci pour :ref:`formatted string literals `. Voir " -"la :pep:`498`." - -#: glossary.rst:523 -msgid "file object" -msgstr "objet fichier" - -#: glossary.rst:525 -#, fuzzy -msgid "" -"An object exposing a file-oriented API (with methods such as :meth:`!read` " -"or :meth:`!write`) to an underlying resource. Depending on the way it was " -"created, a file object can mediate access to a real on-disk file or to " -"another type of storage or communication device (for example standard input/" -"output, in-memory buffers, sockets, pipes, etc.). File objects are also " -"called :dfn:`file-like objects` or :dfn:`streams`." -msgstr "" -"Objet exposant une ressource via une API orientée fichier (avec les " -"méthodes :meth:`read()` ou :meth:`write()`). En fonction de la manière dont " -"il a été créé, un objet fichier peut interfacer l'accès à un fichier sur le " -"disque ou à un autre type de stockage ou de communication (typiquement " -"l'entrée standard, la sortie standard, un tampon en mémoire, un connecteur " -"réseau…). Les objets fichiers sont aussi appelés :dfn:`file-like-objects` " -"ou :dfn:`streams`." - -#: glossary.rst:533 -msgid "" -"There are actually three categories of file objects: raw :term:`binary files " -"`, buffered :term:`binary files ` and :term:`text " -"files `. Their interfaces are defined in the :mod:`io` module. " -"The canonical way to create a file object is by using the :func:`open` " -"function." -msgstr "" -"Il existe en réalité trois catégories de fichiers objets : " -"les :term:`fichiers binaires ` bruts, les :term:`fichiers " -"binaires ` avec tampon (*buffer*) et les :term:`fichiers " -"textes `. Leurs interfaces sont définies dans le " -"module :mod:`io`. Le moyen le plus simple et direct de créer un objet " -"fichier est d'utiliser la fonction :func:`open`." - -#: glossary.rst:538 -msgid "file-like object" -msgstr "objet fichier-compatible" - -#: glossary.rst:540 -msgid "A synonym for :term:`file object`." -msgstr "Synonyme de :term:`objet fichier`." - -#: glossary.rst:541 -msgid "filesystem encoding and error handler" -msgstr "encodage du système de fichiers et gestionnaire d'erreurs associé" - -#: glossary.rst:543 -msgid "" -"Encoding and error handler used by Python to decode bytes from the operating " -"system and encode Unicode to the operating system." -msgstr "" -"Encodage et gestionnaire d'erreurs utilisés par Python pour décoder les " -"octets fournis par le système d'exploitation et encoder les chaînes de " -"caractères Unicode afin de les passer au système." - -#: glossary.rst:546 -msgid "" -"The filesystem encoding must guarantee to successfully decode all bytes " -"below 128. If the file system encoding fails to provide this guarantee, API " -"functions can raise :exc:`UnicodeError`." -msgstr "" -"L'encodage du système de fichiers doit impérativement pouvoir décoder tous " -"les octets jusqu'à 128. Si ce n'est pas le cas, certaines fonctions de l'API " -"lèvent :exc:`UnicodeError`." - -#: glossary.rst:550 -msgid "" -"The :func:`sys.getfilesystemencoding` " -"and :func:`sys.getfilesystemencodeerrors` functions can be used to get the " -"filesystem encoding and error handler." -msgstr "" -"Cet encodage et son gestionnaire d'erreur peuvent être obtenus à l'aide des " -"fonctions :func:`sys.getfilesystemencoding` " -"et :func:`sys.getfilesystemencodeerrors`." - -#: glossary.rst:554 -msgid "" -"The :term:`filesystem encoding and error handler` are configured at Python " -"startup by the :c:func:`PyConfig_Read` function: " -"see :c:member:`~PyConfig.filesystem_encoding` " -"and :c:member:`~PyConfig.filesystem_errors` members of :c:type:`PyConfig`." -msgstr "" -"L':term:`encodage du système de fichiers et gestionnaire d'erreurs associé " -"` sont configurés au démarrage de " -"Python par la fonction :c:func:`PyConfig_Read` : " -"regardez :c:member:`~PyConfig.filesystem_encoding` " -"et :c:member:`~PyConfig.filesystem_errors` dans les membres " -"de :c:type:`PyConfig`." - -#: glossary.rst:559 -msgid "See also the :term:`locale encoding`." -msgstr "Voir aussi :term:`encodage régional`." - -#: glossary.rst:560 -msgid "finder" -msgstr "chercheur" - -#: glossary.rst:562 -msgid "" -"An object that tries to find the :term:`loader` for a module that is being " -"imported." -msgstr "" -"Objet qui essaie de trouver un :term:`chargeur ` pour le module en " -"cours d'importation." - -#: glossary.rst:565 -#, fuzzy -msgid "" -"There are two types of finder: :term:`meta path finders ` " -"for use with :data:`sys.meta_path`, and :term:`path entry finders ` for use with :data:`sys.path_hooks`." -msgstr "" -"Depuis Python 3.3, il existe deux types de chercheurs : " -"les :term:`chercheurs dans les méta-chemins ` à utiliser " -"avec :data:`sys.meta_path` ; les :term:`chercheurs d'entrée dans path ` à utiliser avec :data:`sys.path_hooks`." - -#: glossary.rst:569 -#, fuzzy -msgid "" -"See :ref:`finders-and-loaders` and :mod:`importlib` for much more detail." -msgstr "Voir les :pep:`302`, :pep:`420` et :pep:`451` pour plus de détails." - -#: glossary.rst:570 -msgid "floor division" -msgstr "division entière" - -#: glossary.rst:572 -msgid "" -"Mathematical division that rounds down to nearest integer. The floor " -"division operator is ``//``. For example, the expression ``11 // 4`` " -"evaluates to ``2`` in contrast to the ``2.75`` returned by float true " -"division. Note that ``(-11) // 4`` is ``-3`` because that is ``-2.75`` " -"rounded *downward*. See :pep:`238`." -msgstr "" -"Division mathématique arrondissant à l'entier inférieur. L'opérateur de la " -"division entière est ``//``. Par exemple l'expression ``11 // 4`` vaut " -"``2``, contrairement à ``11 / 4`` qui vaut ``2.75``. Notez que ``(-11) // " -"4`` vaut ``-3`` car l'arrondi se fait à l'entier inférieur. Voir " -"la :pep:`328`." - -#: glossary.rst:577 -msgid "free threading" -msgstr "" - -#: glossary.rst:579 -msgid "" -"A threading model where multiple threads can run Python bytecode " -"simultaneously within the same interpreter. This is in contrast to " -"the :term:`global interpreter lock` which allows only one thread to execute " -"Python bytecode at a time. See :pep:`703`." -msgstr "" - -#: glossary.rst:583 -msgid "free-threaded build" -msgstr "" - -#: glossary.rst:586 -msgid "" -"A build of :term:`CPython` that supports :term:`free threading`, configured " -"using the :option:`--disable-gil` option before compilation." -msgstr "" - -#: glossary.rst:589 -msgid "See :ref:`freethreading-python-howto`." -msgstr "" - -#: glossary.rst:590 -#, fuzzy -msgid "free variable" -msgstr "variable de contexte" - -#: glossary.rst:592 -msgid "" -"Formally, as defined in the :ref:`language execution model `, a " -"free variable is any variable used in a namespace which is not a local " -"variable in that namespace. See :term:`closure variable` for an example. " -"Pragmatically, due to the name of the :attr:`codeobject.co_freevars` " -"attribute, the term is also sometimes used as a synonym for :term:`closure " -"variable`." -msgstr "" - -#: glossary.rst:597 -msgid "function" -msgstr "fonction" - -#: glossary.rst:599 -msgid "" -"A series of statements which returns some value to a caller. It can also be " -"passed zero or more :term:`arguments ` which may be used in the " -"execution of the body. See also :term:`parameter`, :term:`method`, and " -"the :ref:`function` section." -msgstr "" -"Suite d'instructions qui renvoie une valeur à son appelant. On peut lui " -"passer des :term:`arguments ` qui pourront être utilisés dans le " -"corps de la fonction. Voir aussi :term:`paramètre`, :term:`méthode` " -"et :ref:`function`." - -#: glossary.rst:603 -msgid "function annotation" -msgstr "annotation de fonction" - -#: glossary.rst:605 -msgid "An :term:`annotation` of a function parameter or return value." -msgstr ":term:`annotation` d'un paramètre de fonction ou valeur de retour." - -#: glossary.rst:607 -msgid "" -"Function annotations are usually used for :term:`type hints `: " -"for example, this function is expected to take two :class:`int` arguments " -"and is also expected to have an :class:`int` return value::" -msgstr "" -"Les annotations de fonctions sont généralement utilisées pour " -"des :term:`indications de types ` : par exemple, cette fonction " -"devrait prendre deux arguments :class:`int` et devrait également avoir une " -"valeur de retour de type :class:`int` ::" - -#: glossary.rst:615 -msgid "Function annotation syntax is explained in section :ref:`function`." -msgstr "" -"L'annotation syntaxique de la fonction est expliquée dans la " -"section :ref:`function`." - -#: glossary.rst:617 -msgid "" -"See :term:`variable annotation` and :pep:`484`, which describe this " -"functionality. Also see :ref:`annotations-howto` for best practices on " -"working with annotations." -msgstr "" -"Voir :term:`annotation de variable` et la :pep:`484`, " -"qui décrivent cette fonctionnalité. Voir aussi :ref:`annotations-howto` sur " -"les bonnes pratiques concernant les annotations." - -#: glossary.rst:621 -msgid "__future__" -msgstr "__future__" - -#: glossary.rst:623 -msgid "" -"A :ref:`future statement `, ``from __future__ import ``, " -"directs the compiler to compile the current module using syntax or semantics " -"that will become standard in a future release of Python. " -"The :mod:`__future__` module documents the possible values of *feature*. By " -"importing this module and evaluating its variables, you can see when a new " -"feature was first added to the language and when it will (or did) become the " -"default::" -msgstr "" -"Une :ref:`importation depuis le futur ` s'écrit ``from __future__ " -"import ``. Lorsqu'une importation du futur est active dans " -"un module, Python compile ce module avec une certaine modification de la " -"syntaxe ou du comportement qui est vouée à devenir standard dans une version " -"ultérieure. Le module :mod:`__future__` documente les possibilités pour " -"*fonctionnalité*. L'importation a aussi l'effet normal d'importer une " -"variable du module. Cette variable contient des informations utiles sur la " -"fonctionnalité en question, notamment la version de Python dans laquelle " -"elle a été ajoutée, et celle dans laquelle elle deviendra standard ::" - -#: glossary.rst:634 -msgid "garbage collection" -msgstr "ramasse-miettes" - -#: glossary.rst:636 -msgid "" -"The process of freeing memory when it is not used anymore. Python performs " -"garbage collection via reference counting and a cyclic garbage collector " -"that is able to detect and break reference cycles. The garbage collector " -"can be controlled using the :mod:`gc` module." -msgstr "" -"(*garbage collection* en anglais) Mécanisme permettant de libérer de la " -"mémoire lorsqu'elle n'est plus utilisée. Python utilise un ramasse-miettes " -"par comptage de référence et un ramasse-miettes cyclique capable de détecter " -"et casser les références circulaires. Le ramasse-miettes peut être contrôlé " -"en utilisant le module :mod:`gc`." - -#: glossary.rst:642 -msgid "generator" -msgstr "générateur" - -#: glossary.rst:644 -msgid "" -"A function which returns a :term:`generator iterator`. It looks like a " -"normal function except that it contains :keyword:`yield` expressions for " -"producing a series of values usable in a for-loop or that can be retrieved " -"one at a time with the :func:`next` function." -msgstr "" -"Fonction qui renvoie un :term:`itérateur de générateur`. Cela ressemble à " -"une fonction normale, en dehors du fait qu'elle contient une ou des " -"expressions :keyword:`yield` produisant une série de valeurs utilisable dans " -"une boucle *for* ou récupérées une à une via la fonction :func:`next`." - -#: glossary.rst:649 -msgid "" -"Usually refers to a generator function, but may refer to a *generator " -"iterator* in some contexts. In cases where the intended meaning isn't " -"clear, using the full terms avoids ambiguity." -msgstr "" -"Fait généralement référence à une fonction génératrice mais peut faire " -"référence à un *itérateur de générateur* dans certains contextes. Dans les " -"cas où le sens voulu n'est pas clair, utiliser les termes complets lève " -"l’ambiguïté." - -#: glossary.rst:652 -msgid "generator iterator" -msgstr "itérateur de générateur" - -#: glossary.rst:654 -msgid "An object created by a :term:`generator` function." -msgstr "Objet créé par une fonction :term:`générateur`." - -#: glossary.rst:656 -#, fuzzy -msgid "" -"Each :keyword:`yield` temporarily suspends processing, remembering the " -"execution state (including local variables and pending try-statements). " -"When the *generator iterator* resumes, it picks up where it left off (in " -"contrast to functions which start fresh on every invocation)." -msgstr "" -"Chaque :keyword:`yield` suspend temporairement l'exécution, en se rappelant " -"l'endroit et l'état de l'exécution (y compris les variables locales et les " -"*try* en cours). Lorsque l'itérateur de générateur reprend, il repart là où " -"il en était (contrairement à une fonction qui prendrait un nouveau départ à " -"chaque invocation)." - -#: glossary.rst:663 -msgid "generator expression" -msgstr "expression génératrice" - -#: glossary.rst:665 -#, fuzzy -msgid "" -"An :term:`expression` that returns an :term:`iterator`. It looks like a " -"normal expression followed by a :keyword:`!for` clause defining a loop " -"variable, range, and an optional :keyword:`!if` clause. The combined " -"expression generates values for an enclosing function::" -msgstr "" -"Expression qui donne un itérateur. Elle ressemble à une expression normale, " -"suivie d'une clause :keyword:`!for` définissant une variable de boucle, un " -"intervalle et une clause :keyword:`!if` optionnelle. Toute cette expression " -"génère des valeurs pour la fonction qui l'entoure ::" - -#: glossary.rst:672 -msgid "generic function" -msgstr "fonction générique" - -#: glossary.rst:674 -msgid "" -"A function composed of multiple functions implementing the same operation " -"for different types. Which implementation should be used during a call is " -"determined by the dispatch algorithm." -msgstr "" -"Fonction composée de plusieurs fonctions implémentant les mêmes opérations " -"pour différents types. L'implémentation à utiliser est déterminée lors de " -"l'appel par l'algorithme de répartition." - -#: glossary.rst:678 -msgid "" -"See also the :term:`single dispatch` glossary entry, " -"the :func:`functools.singledispatch` decorator, and :pep:`443`." -msgstr "" -"Voir aussi :term:`single dispatch`, le " -"décorateur :func:`functools.singledispatch` et la :pep:`443`." - -#: glossary.rst:680 -msgid "generic type" -msgstr "type générique" - -#: glossary.rst:682 -msgid "" -"A :term:`type` that can be parameterized; typically a :ref:`container " -"class` such as :class:`list` or :class:`dict`. Used " -"for :term:`type hints ` and :term:`annotations `." -msgstr "" -"Un :term:`type` qui peut être paramétré ; généralement un :ref:`conteneur " -"` comme :class:`list` ou :class:`dict`. Utilisé pour " -"les :term:`indications de type ` et les :term:`annotations " -"`." - -#: glossary.rst:687 -msgid "" -"For more details, see :ref:`generic alias types`, :pep:`483`, :pep:`484`, :pep:`585`, and the :mod:`typing` " -"module." -msgstr "" -"Pour plus de détails, voir :ref:`types alias génériques ` et le module :mod:`typing`. On trouvera l'historique de " -"cette fonctionnalité dans les :pep:`483`, :pep:`484` et :pep:`585`." - -#: glossary.rst:689 -msgid "GIL" -msgstr "GIL" - -#: glossary.rst:691 -msgid "See :term:`global interpreter lock`." -msgstr "Voir :term:`global interpreter lock`." - -#: glossary.rst:692 -msgid "global interpreter lock" -msgstr "verrou global de l'interpréteur" - -#: glossary.rst:694 -msgid "" -"The mechanism used by the :term:`CPython` interpreter to assure that only " -"one thread executes Python :term:`bytecode` at a time. This simplifies the " -"CPython implementation by making the object model (including critical built-" -"in types such as :class:`dict`) implicitly safe against concurrent access. " -"Locking the entire interpreter makes it easier for the interpreter to be " -"multi-threaded, at the expense of much of the parallelism afforded by multi-" -"processor machines." -msgstr "" -"(*global interpreter lock* en anglais) Mécanisme utilisé par " -"l'interpréteur :term:`CPython` pour s'assurer qu'un seul fil d'exécution " -"(*thread* en anglais) n'exécute le :term:`bytecode` à la fois. Cela " -"simplifie l'implémentation de CPython en rendant le modèle objet (incluant " -"des parties critiques comme la classe native :class:`dict`) implicitement " -"protégé contre les accès concourants. Verrouiller l'interpréteur entier rend " -"plus facile l'implémentation de multiples fils d'exécution (*multi-thread* " -"en anglais), au détriment malheureusement de beaucoup du parallélisme " -"possible sur les machines ayant plusieurs processeurs." - -#: glossary.rst:703 -msgid "" -"However, some extension modules, either standard or third-party, are " -"designed so as to release the GIL when doing computationally intensive tasks " -"such as compression or hashing. Also, the GIL is always released when doing " -"I/O." -msgstr "" -"Cependant, certains modules d'extension, standards ou non, sont conçus de " -"manière à libérer le GIL lorsqu'ils effectuent des tâches lourdes tel que la " -"compression ou le hachage. De la même manière, le GIL est toujours libéré " -"lors des entrées-sorties." - -#: glossary.rst:708 -msgid "" -"As of Python 3.13, the GIL can be disabled using the :option:`--disable-gil` " -"build configuration. After building Python with this option, code must be " -"run with :option:`-X gil=0 <-X>` or after setting the :envvar:`PYTHON_GIL=0 " -"` environment variable. This feature enables improved " -"performance for multi-threaded applications and makes it easier to use multi-" -"core CPUs efficiently. For more details, see :pep:`703`." -msgstr "" - -#: glossary.rst:715 -msgid "" -"In prior versions of Python's C API, a function might declare that it " -"requires the GIL to be held in order to use it. This refers to having " -"an :term:`attached thread state`." -msgstr "" - -#: glossary.rst:718 -msgid "global state" -msgstr "" - -#: glossary.rst:720 -msgid "" -"Data that is accessible throughout a program, such as module-level " -"variables, class variables, or C static variables in :term:`extension " -"modules `. In multi-threaded programs, global state " -"shared between threads typically requires synchronization to " -"avoid :term:`race conditions ` and :term:`data races `." -msgstr "" - -#: glossary.rst:726 -msgid "hash-based pyc" -msgstr "*pyc* utilisant le hachage" - -#: glossary.rst:728 -msgid "" -"A bytecode cache file that uses the hash rather than the last-modified time " -"of the corresponding source file to determine its validity. See :ref:`pyc-" -"invalidation`." -msgstr "" -"Un fichier de cache de code intermédiaire (*bytecode* en anglais) qui " -"utilise le hachage plutôt que l'heure de dernière modification du fichier " -"source correspondant pour déterminer sa validité. Voir :ref:`pyc-" -"invalidation`." - -#: glossary.rst:731 -msgid "hashable" -msgstr "hachable" - -#: glossary.rst:733 -#, fuzzy -msgid "" -"An object is *hashable* if it has a hash value which never changes during " -"its lifetime (it needs a :meth:`~object.__hash__` method), and can be " -"compared to other objects (it needs an :meth:`~object.__eq__` method). " -"Hashable objects which compare equal must have the same hash value." -msgstr "" -"Un objet est *hachable* s'il a une empreinte (*hash*) qui ne change jamais " -"(il doit donc implémenter une méthode :meth:`__hash__`) et s'il peut être " -"comparé à d'autres objets (avec la méthode :meth:`__eq__`). Les objets " -"hachables dont la comparaison par ``__eq__`` est vraie doivent avoir la même " -"empreinte." - -#: glossary.rst:739 -msgid "" -"Hashability makes an object usable as a dictionary key and a set member, " -"because these data structures use the hash value internally." -msgstr "" -"La hachabilité permet à un objet d'être utilisé comme clé de dictionnaire ou " -"en tant que membre d'un ensemble (type *set*), car ces structures de données " -"utilisent ce *hash*." - -#: glossary.rst:742 -msgid "" -"Most of Python's immutable built-in objects are hashable; mutable containers " -"(such as lists or dictionaries) are not; immutable containers (such as " -"tuples and frozensets) are only hashable if their elements are hashable. " -"Objects which are instances of user-defined classes are hashable by " -"default. They all compare unequal (except with themselves), and their hash " -"value is derived from their :func:`id`." -msgstr "" -"La plupart des types immuables natifs de Python sont hachables, mais les " -"conteneurs mutables (comme les listes ou les dictionnaires) ne le sont pas ; " -"les conteneurs immuables (comme les n-uplets ou les ensembles figés) ne sont " -"hachables que si leurs éléments sont hachables. Les instances de classes " -"définies par les utilisateurs sont hachables par défaut. Elles sont toutes " -"considérées différentes (sauf avec elles-mêmes) et leur valeur de hachage " -"est calculée à partir de leur :func:`id`." - -#: glossary.rst:749 -msgid "IDLE" -msgstr "IDLE" - -#: glossary.rst:751 -msgid "" -"An Integrated Development and Learning Environment for Python. :ref:`idle` " -"is a basic editor and interpreter environment which ships with the standard " -"distribution of Python." -msgstr "" -"Environnement d'apprentissage et de développement intégré pour " -"Python. :ref:`IDLE ` est un éditeur basique et un interpréteur livré " -"avec la distribution standard de Python." - -#: glossary.rst:754 -msgid "immortal" -msgstr "" - -#: glossary.rst:756 -msgid "" -"*Immortal objects* are a CPython implementation detail introduced " -"in :pep:`683`." -msgstr "" - -#: glossary.rst:759 -msgid "" -"If an object is immortal, its :term:`reference count` is never modified, and " -"therefore it is never deallocated while the interpreter is running. For " -"example, :const:`True` and :const:`None` are immortal in CPython." -msgstr "" - -#: glossary.rst:763 -msgid "" -"Immortal objects can be identified via :func:`sys._is_immortal`, or " -"via :c:func:`PyUnstable_IsImmortal` in the C API." -msgstr "" - -#: glossary.rst:765 -msgid "immutable" -msgstr "immuable" - -#: glossary.rst:767 -#, fuzzy -msgid "" -"An object with a fixed value. Immutable objects include numbers, strings " -"and tuples. Such an object cannot be altered. A new object has to be " -"created if a different value has to be stored. They play an important role " -"in places where a constant hash value is needed, for example as a key in a " -"dictionary. Immutable objects are inherently :term:`thread-safe` because " -"their state cannot be modified after creation, eliminating concerns about " -"improperly synchronized :term:`concurrent modification`." -msgstr "" -"Objet dont la valeur ne change pas. Les nombres, les chaînes et les *n*-" -"uplets sont immuables. Ils ne peuvent être modifiés. Un nouvel objet doit " -"être créé si une valeur différente doit être stockée. Ils jouent un rôle " -"important quand une valeur de *hash* constante est requise, typiquement en " -"clé de dictionnaire." - -#: glossary.rst:774 -msgid "import path" -msgstr "chemin des importations" - -#: glossary.rst:776 -msgid "" -"A list of locations (or :term:`path entries `) that are searched " -"by the :term:`path based finder` for modules to import. During import, this " -"list of locations usually comes from :data:`sys.path`, but for subpackages " -"it may also come from the parent package's ``__path__`` attribute." -msgstr "" -"Liste de :term:`entrées ` dans lesquelles le :term:`chercheur " -"basé sur les chemins ` cherche les modules à importer. " -"Typiquement, lors d'une importation, cette liste vient de :data:`sys.path` ; " -"pour les sous-paquets, elle peut aussi venir de l'attribut ``__path__`` du " -"paquet parent." - -#: glossary.rst:781 -msgid "importing" -msgstr "importation" - -#: glossary.rst:783 -msgid "" -"The process by which Python code in one module is made available to Python " -"code in another module." -msgstr "Processus rendant le code Python d'un module disponible dans un autre." - -#: glossary.rst:785 -msgid "importer" -msgstr "importateur" - -#: glossary.rst:787 -msgid "" -"An object that both finds and loads a module; both a :term:`finder` " -"and :term:`loader` object." -msgstr "" -"Objet qui trouve et charge un module, en même temps un :term:`chercheur " -"` et un :term:`chargeur `." - -#: glossary.rst:789 -#, fuzzy -msgid "index" -msgstr "chercheur" - -#: glossary.rst:791 -msgid "" -"A numeric value that represents the position of an element in " -"a :term:`sequence`." -msgstr "" - -#: glossary.rst:794 -msgid "" -"In Python, indexing starts at zero. For example, ``things[0]`` names the " -"*first* element of ``things``; ``things[1]`` names the second one." -msgstr "" - -#: glossary.rst:798 -msgid "" -"In some contexts, Python allows negative indexes for counting from the end " -"of a sequence, and indexing using :term:`slices `." -msgstr "" - -#: glossary.rst:801 -#, fuzzy -msgid "See also :term:`subscript`." -msgstr "Voir aussi :term:`module`." - -#: glossary.rst:802 -msgid "interactive" -msgstr "interactif" - -#: glossary.rst:804 -#, fuzzy -msgid "" -"Python has an interactive interpreter which means you can enter statements " -"and expressions at the interpreter prompt, immediately execute them and see " -"their results. Just launch ``python`` with no arguments (possibly by " -"selecting it from your computer's main menu). It is a very powerful way to " -"test out new ideas or inspect modules and packages (remember ``help(x)``). " -"For more on interactive mode, see :ref:`tut-interac`." -msgstr "" -"Python a un interpréteur :term:`interactif `, ce qui signifie " -"que vous pouvez écrire des expressions et des instructions à l'invite de " -"l'interpréteur. L'interpréteur Python va les exécuter immédiatement et vous " -"en présenter le résultat. Démarrez juste ``python`` (probablement depuis le " -"menu principal de votre ordinateur). C'est un moyen puissant pour tester de " -"nouvelles idées ou étudier de nouveaux modules (souvenez-vous de " -"``help(x)``)." - -#: glossary.rst:811 -msgid "interpreted" -msgstr "interprété" - -#: glossary.rst:813 -msgid "" -"Python is an interpreted language, as opposed to a compiled one, though the " -"distinction can be blurry because of the presence of the bytecode compiler. " -"This means that source files can be run directly without explicitly creating " -"an executable which is then run. Interpreted languages typically have a " -"shorter development/debug cycle than compiled ones, though their programs " -"generally also run more slowly. See also :term:`interactive`." -msgstr "" -"Python est un langage interprété, en opposition aux langages compilés, bien " -"que la frontière soit floue en raison de la présence d'un compilateur en " -"code intermédiaire. Cela signifie que les fichiers sources peuvent être " -"exécutés directement, sans avoir à compiler un fichier exécutable " -"intermédiaire. Les langages interprétés ont généralement un cycle de " -"développement / débogage plus court que les langages compilés. Cependant, " -"ils s'exécutent généralement plus lentement. Voir aussi :term:`interactif " -"`." - -#: glossary.rst:820 -msgid "interpreter shutdown" -msgstr "arrêt de l'interpréteur" - -#: glossary.rst:822 -msgid "" -"When asked to shut down, the Python interpreter enters a special phase where " -"it gradually releases all allocated resources, such as modules and various " -"critical internal structures. It also makes several calls to " -"the :term:`garbage collector `. This can trigger the " -"execution of code in user-defined destructors or weakref callbacks. Code " -"executed during the shutdown phase can encounter various exceptions as the " -"resources it relies on may not function anymore (common examples are library " -"modules or the warnings machinery)." -msgstr "" -"Lorsqu'on lui demande de s'arrêter, l'interpréteur Python entre dans une " -"phase spéciale où il libère graduellement les ressources allouées, comme les " -"modules ou quelques structures de données internes. Il fait aussi quelques " -"appels au :term:`ramasse-miettes`. Cela peut déclencher l'exécution de code " -"dans des destructeurs ou des fonctions de rappels de *weakrefs*. Le code " -"exécuté lors de l'arrêt peut rencontrer des exceptions puisque les " -"ressources auxquelles il fait appel sont susceptibles de ne plus " -"fonctionner, (typiquement les modules des bibliothèques ou le mécanisme de " -"*warning*)." - -#: glossary.rst:831 -msgid "" -"The main reason for interpreter shutdown is that the ``__main__`` module or " -"the script being run has finished executing." -msgstr "" -"La principale raison d'arrêt de l'interpréteur est que le module " -"``__main__`` ou le script en cours d'exécution a terminé de s'exécuter." - -#: glossary.rst:833 -msgid "iterable" -msgstr "itérable" - -#: glossary.rst:835 -#, fuzzy -msgid "" -"An object capable of returning its members one at a time. Examples of " -"iterables include all sequence types (such as :class:`list`, :class:`str`, " -"and :class:`tuple`) and some non-sequence types " -"like :class:`dict`, :term:`file objects `, and objects of any " -"classes you define with an :meth:`~object.__iter__` method or with " -"a :meth:`~object.__getitem__` method that implements :term:`sequence` " -"semantics." -msgstr "" -"Objet capable de renvoyer ses éléments un à un. Par exemple, tous les types " -"de séquences (comme :class:`list`, :class:`str`, et :class:`tuple`), " -"quelques autres types comme :class:`dict`, les :term:`objets fichiers ` ou tout objet d'une classe ayant une méthode :meth:`__iter__` " -"ou :meth:`__getitem__` qui implémente la sémantique d'une :term:`séquence " -"`." - -#: glossary.rst:843 -#, fuzzy -msgid "" -"Iterables can be used in a :keyword:`for` loop and in many other places " -"where a sequence is needed (:func:`zip`, :func:`map`, ...). When an " -"iterable object is passed as an argument to the built-in " -"function :func:`iter`, it returns an iterator for the object. This iterator " -"is good for one pass over the set of values. When using iterables, it is " -"usually not necessary to call :func:`iter` or deal with iterator objects " -"yourself. The :keyword:`for` statement does that automatically for you, " -"creating a temporary unnamed variable to hold the iterator for the duration " -"of the loop. See also :term:`iterator`, :term:`sequence`, " -"and :term:`generator`." -msgstr "" -"Les itérables peuvent être utilisés dans des boucles :keyword:`for` et à " -"beaucoup d'autres endroits où une séquence est requise " -"(:func:`zip`, :func:`map`…). Lorsqu'un itérable est passé comme argument à " -"la fonction native :func:`iter`, celle-ci fournit en retour un itérateur sur " -"cet itérable. Cet itérateur n'est valable que pour une seule passe sur le " -"jeu de valeurs. Lors de l'utilisation d'itérables, il n'est habituellement " -"pas nécessaire d'appeler :func:`iter` ou de s'occuper soi-même des objets " -"itérateurs. L'instruction ``for`` le fait automatiquement pour vous, créant " -"une variable temporaire anonyme pour garder l'itérateur durant la boucle. " -"Voir aussi :term:`itérateur`, :term:`séquence` et :term:`générateur`." - -#: glossary.rst:853 -msgid "iterator" -msgstr "itérateur" - -#: glossary.rst:855 -#, fuzzy -msgid "" -"An object representing a stream of data. Repeated calls to the " -"iterator's :meth:`~iterator.__next__` method (or passing it to the built-in " -"function :func:`next`) return successive items in the stream. When no more " -"data are available a :exc:`StopIteration` exception is raised instead. At " -"this point, the iterator object is exhausted and any further calls to " -"its :meth:`!__next__` method just raise :exc:`StopIteration` again. " -"Iterators are required to have an :meth:`~iterator.__iter__` method that " -"returns the iterator object itself so every iterator is also iterable and " -"may be used in most places where other iterables are accepted. One notable " -"exception is code which attempts multiple iteration passes. A container " -"object (such as a :class:`list`) produces a fresh new iterator each time you " -"pass it to the :func:`iter` function or use it in a :keyword:`for` loop. " -"Attempting this with an iterator will just return the same exhausted " -"iterator object used in the previous iteration pass, making it appear like " -"an empty container." -msgstr "" -"Objet représentant un flux de donnée. Des appels successifs à la " -"méthode :meth:`~iterator.__next__` de l'itérateur (ou le passer à la " -"fonction native :func:`next`) donne successivement les objets du flux. " -"Lorsque plus aucune donnée n'est disponible, une " -"exception :exc:`StopIteration` est levée. À ce point, l'itérateur est épuisé " -"et tous les appels suivants à sa méthode :meth:`__next__` lèveront encore " -"une exception :exc:`StopIteration`. Les itérateurs doivent avoir une " -"méthode :meth:`__iter__` qui renvoie l'objet itérateur lui-même, de façon à " -"ce que chaque itérateur soit aussi itérable et puisse être utilisé dans la " -"plupart des endroits où d'autres itérables sont attendus. Une exception " -"notable est un code qui tente plusieurs itérations complètes. Un objet " -"conteneur, (tel que :class:`list`) produit un nouvel itérateur neuf à chaque " -"fois qu'il est passé à la fonction :func:`iter` ou s'il est utilisé dans une " -"boucle :keyword:`for`. Faire ceci sur un itérateur donnerait simplement le " -"même objet itérateur épuisé utilisé dans son itération précédente, le " -"faisant ressembler à un conteneur vide." - -#: glossary.rst:870 -msgid "More information can be found in :ref:`typeiter`." -msgstr "Vous trouverez davantage d'informations dans :ref:`typeiter`." - -#: glossary.rst:874 -#, fuzzy -msgid "" -"CPython does not consistently apply the requirement that an iterator " -"define :meth:`~iterator.__iter__`. And also please note that :term:`free-" -"threaded ` CPython does not guarantee :term:`thread-safe` " -"behavior of iterator operations." -msgstr "" -"CPython n'est pas toujours cohérent sur le fait de demander ou non à un " -"itérateur de définir :meth:`__iter__`." - -#: glossary.rst:879 -msgid "key" -msgstr "" - -#: glossary.rst:881 -msgid "" -"A value that identifies an entry in a :term:`mapping`. See " -"also :term:`subscript`." -msgstr "" - -#: glossary.rst:883 -msgid "key function" -msgstr "fonction clé" - -#: glossary.rst:885 -msgid "" -"A key function or collation function is a callable that returns a value used " -"for sorting or ordering. For example, :func:`locale.strxfrm` is used to " -"produce a sort key that is aware of locale specific sort conventions." -msgstr "" -"Une fonction clé est un objet appelable qui renvoie une valeur à fins de tri " -"ou de classement. Par exemple, la fonction :func:`locale.strxfrm` est " -"utilisée pour générer une clé de classement prenant en compte les " -"conventions de classement spécifiques aux paramètres régionaux courants." - -#: glossary.rst:890 -msgid "" -"A number of tools in Python accept key functions to control how elements are " -"ordered or grouped. They " -"include :func:`min`, :func:`max`, :func:`sorted`, :meth:`list.sort`, :func:`heapq.merge`, :func:`heapq.nsmallest`, :func:`heapq.nlargest`, " -"and :func:`itertools.groupby`." -msgstr "" -"Plusieurs outils dans Python acceptent des fonctions clés pour déterminer " -"comment les éléments sont classés ou groupés. On peut citer les " -"fonctions :func:`min`, :func:`max`, :func:`sorted`, :meth:`list.sort`, :func:`heapq.merge`, :func:`heapq.nsmallest`, :func:`heapq.nlargest` " -"et :func:`itertools.groupby`." - -#: glossary.rst:896 -#, fuzzy -msgid "" -"There are several ways to create a key function. For example. " -"the :meth:`str.casefold` method can serve as a key function for case " -"insensitive sorts. Alternatively, a key function can be built from " -"a :keyword:`lambda` expression such as ``lambda r: (r[0], r[2])``. " -"Also, :func:`operator.attrgetter`, :func:`operator.itemgetter`, " -"and :func:`operator.methodcaller` are three key function constructors. See " -"the :ref:`Sorting HOW TO ` for examples of how to create and " -"use key functions." -msgstr "" -"Il existe plusieurs moyens de créer une fonction clé. Par exemple, la " -"méthode :meth:`str.lower` peut servir de fonction clé pour effectuer des " -"recherches insensibles à la casse. Aussi, il est possible de créer des " -"fonctions clés avec des expressions :keyword:`lambda`, comme ``lambda r: " -"(r[0], r[2])``. Par " -"ailleurs :func:`~operator.attrgetter`, :func:`~operator.itemgetter` " -"et :func:`~operator.methodcaller` permettent de créer des fonctions clés. " -"Voir :ref:`le guide pour le tri ` pour des exemples de " -"création et d'utilisation de fonctions clefs." - -#: glossary.rst:903 -msgid "keyword argument" -msgstr "argument nommé" - -#: glossary.rst:1292 -msgid "See :term:`argument`." -msgstr "Voir :term:`argument`." - -#: glossary.rst:906 -msgid "lambda" -msgstr "lambda" - -#: glossary.rst:908 -msgid "" -"An anonymous inline function consisting of a single :term:`expression` which " -"is evaluated when the function is called. The syntax to create a lambda " -"function is ``lambda [parameters]: expression``" -msgstr "" -"Fonction anonyme sous la forme d'une :term:`expression` et ne contenant " -"qu'une seule expression, exécutée lorsque la fonction est appelée. La " -"syntaxe pour créer des fonctions lambda est : ``lambda [parameters]: " -"expression``" - -#: glossary.rst:911 -msgid "LBYL" -msgstr "LBYL" - -#: glossary.rst:913 -msgid "" -"Look before you leap. This coding style explicitly tests for pre-conditions " -"before making calls or lookups. This style contrasts with the :term:`EAFP` " -"approach and is characterized by the presence of many :keyword:`if` " -"statements." -msgstr "" -"Regarde avant de sauter, (*Look before you leap* en anglais). Ce style de " -"programmation consiste à vérifier des conditions avant d'effectuer des " -"appels ou des accès. Ce style contraste avec le style :term:`EAFP` et se " -"caractérise par la présence de beaucoup d'instructions :keyword:`if`." - -#: glossary.rst:918 -#, fuzzy -msgid "" -"In a multi-threaded environment, the LBYL approach can risk introducing " -"a :term:`race condition` between \"the looking\" and \"the leaping\". For " -"example, the code, ``if key in mapping: return mapping[key]`` can fail if " -"another thread removes *key* from *mapping* after the test, but before the " -"lookup. This issue can be solved with :term:`locks ` or by using " -"the :term:`EAFP` approach. See also :term:`thread-safe`." -msgstr "" -"Dans un environnement avec plusieurs fils d'exécution (*multi-threaded* en " -"anglais), le style *LBYL* peut engendrer un séquencement critique (*race " -"condition* en anglais) entre le \"regarde\" et le \"sauter\". Par exemple, " -"le code ``if key in mapping: return mapping[key]`` peut échouer si un autre " -"fil d'exécution supprime la clé *key* du *mapping* après le test mais avant " -"l'accès. Ce problème peut être résolu avec des verrous (*locks*) ou avec " -"l'approche EAFP." - -#: glossary.rst:924 -msgid "lexical analyzer" -msgstr "" - -#: glossary.rst:927 -msgid "Formal name for the *tokenizer*; see :term:`token`." -msgstr "" - -#: glossary.rst:928 -msgid "list" -msgstr "liste" - -#: glossary.rst:930 -#, fuzzy -msgid "" -"A built-in Python :term:`sequence`. Despite its name it is more akin to an " -"array in other languages than to a linked list since access to elements is " -"*O*\\ (1)." -msgstr "" -"Un type natif de :term:`sequence` dans Python. En dépit de son nom, une " -"``list`` ressemble plus à un tableau (*array* dans la plupart des langages) " -"qu'à une liste chaînée puisque les accès se font en O(1)." - -#: glossary.rst:933 -msgid "list comprehension" -msgstr "liste en compréhension (ou liste en intension)" - -#: glossary.rst:935 -msgid "" -"A compact way to process all or part of the elements in a sequence and " -"return a list with the results. ``result = ['{:#04x}'.format(x) for x in " -"range(256) if x % 2 == 0]`` generates a list of strings containing even hex " -"numbers (0x..) in the range from 0 to 255. The :keyword:`if` clause is " -"optional. If omitted, all elements in ``range(256)`` are processed." -msgstr "" -"Écriture concise pour manipuler tout ou partie des éléments d'une séquence " -"et renvoyer une liste contenant les résultats. ``result = " -"['{:#04x}'.format(x) for x in range(256) if x % 2 == 0]`` génère la liste " -"composée des nombres pairs de 0 à 255 écrits sous formes de chaînes de " -"caractères et en hexadécimal (``0x…``). La clause :keyword:`if` est " -"optionnelle. Si elle est omise, tous les éléments du ``range(256)`` seront " -"utilisés." - -#: glossary.rst:941 -msgid "lock" -msgstr "" - -#: glossary.rst:943 -msgid "" -"A :term:`synchronization primitive` that allows only one thread at a time to " -"access a shared resource. A thread must acquire a lock before accessing the " -"protected resource and release it afterward. If a thread attempts to " -"acquire a lock that is already held by another thread, it will block until " -"the lock becomes available. Python's :mod:`threading` module " -"provides :class:`~threading.Lock` (a basic lock) " -"and :class:`~threading.RLock` (a :term:`reentrant` lock). Locks are used to " -"prevent :term:`race conditions ` and ensure :term:`thread-" -"safe` access to shared data. Alternative design patterns to locks exist " -"such as queues, producer/consumer patterns, and thread-local state. See " -"also :term:`deadlock`, and :term:`reentrant`." -msgstr "" - -#: glossary.rst:954 -msgid "lock-free" -msgstr "" - -#: glossary.rst:956 -msgid "" -"An operation that does not acquire any :term:`lock` and uses atomic CPU " -"instructions to ensure correctness. Lock-free operations can execute " -"concurrently without blocking each other and cannot be blocked by operations " -"that hold locks. In :term:`free-threaded ` Python, built-in " -"types like :class:`dict` and :class:`list` provide lock-free read " -"operations, which means other threads may observe intermediate states during " -"multi-step modifications even when those modifications hold the :term:`per-" -"object lock`." -msgstr "" - -#: glossary.rst:964 -msgid "loader" -msgstr "chargeur" - -#: glossary.rst:966 -#, fuzzy -msgid "" -"An object that loads a module. It must define the :meth:`!exec_module` " -"and :meth:`!create_module` methods to implement " -"the :class:`~importlib.abc.Loader` interface. A loader is typically returned " -"by a :term:`finder`. See also:" -msgstr "" -"Objet qui charge un module. Il doit définir une méthode " -"nommée :meth:`load_module`. Un chargeur est typiquement donné par " -"un :term:`chercheur `. Voir la :pep:`302` pour plus de détails " -"et :class:`importlib.ABC.Loader` pour sa :term:`classe abstraite " -"`." - -#: glossary.rst:972 -msgid ":ref:`finders-and-loaders`" -msgstr "" - -#: glossary.rst:973 -msgid ":class:`importlib.abc.Loader`" -msgstr "" - -#: glossary.rst:974 -#, fuzzy -msgid ":pep:`302`" -msgstr "Voir la :pep:`1`." - -#: glossary.rst:975 -msgid "locale encoding" -msgstr "encodage régional" - -#: glossary.rst:977 -msgid "" -"On Unix, it is the encoding of the LC_CTYPE locale. It can be set " -"with :func:`locale.setlocale(locale.LC_CTYPE, new_locale) " -"`." -msgstr "" -"Sous Unix, il est défini par la variable régionale LC_CTYPE. Il peut être " -"modifié par :func:`locale.setlocale(locale.LC_CTYPE, new_locale) " -"`." - -#: glossary.rst:980 -msgid "On Windows, it is the ANSI code page (ex: ``\"cp1252\"``)." -msgstr "Sous Windows, c'est un encodage ANSI (par ex. : ``\"cp1252\"``)." - -#: glossary.rst:982 -msgid "" -"On Android and VxWorks, Python uses ``\"utf-8\"`` as the locale encoding." -msgstr "" -"Sous Android et VxWorks, Python utilise ``\"utf-8\"`` comme encodage " -"régional." - -#: glossary.rst:984 -#, fuzzy -msgid ":func:`locale.getencoding` can be used to get the locale encoding." -msgstr "``locale.getencoding()`` permet de récupérer l'encodage régional." - -#: glossary.rst:986 -msgid "See also the :term:`filesystem encoding and error handler`." -msgstr "" -"Voir aussi l':term:`encodage du systèmes de fichiers et gestionnaire " -"d'erreurs associé `." - -#: glossary.rst:987 -msgid "magic method" -msgstr "méthode magique" - -#: glossary.rst:991 -msgid "An informal synonym for :term:`special method`." -msgstr "Un synonyme informel de :term:`special method`." - -#: glossary.rst:992 -msgid "mapping" -msgstr "tableau de correspondances (*mapping* en anglais)" - -# Obligé de garder l'ordre des références... -#: glossary.rst:994 -msgid "" -"A container object that supports arbitrary key lookups and implements the " -"methods specified in the :class:`collections.abc.Mapping` " -"or :class:`collections.abc.MutableMapping` :ref:`abstract base classes " -"`. Examples " -"include :class:`dict`, :class:`collections.defaultdict`, :class:`collections.OrderedDict` " -"and :class:`collections.Counter`." -msgstr "" -"Conteneur permettant de rechercher des éléments à partir de clés et " -"implémentant les méthodes spécifiées dans les classes abstraites " -"des :class:`tableaux de correspondances ` " -"(immuables) ou :class:`tableaux de correspondances mutables " -"` (voir les :ref:`classes abstraites " -"`). Les classes suivantes sont des " -"exemples de tableaux de " -"correspondances : :class:`dict`, :class:`collections.defaultdict`, :class:`collections.OrderedDict` " -"et :class:`collections.Counter`." - -#: glossary.rst:1000 -msgid "meta path finder" -msgstr "chercheur dans les méta-chemins" - -#: glossary.rst:1002 -msgid "" -"A :term:`finder` returned by a search of :data:`sys.meta_path`. Meta path " -"finders are related to, but different from :term:`path entry finders `." -msgstr "" -"Un :term:`chercheur ` renvoyé par une recherche " -"dans :data:`sys.meta_path`. Les chercheurs dans les méta-chemins " -"ressemblent, mais sont différents des :term:`chercheurs d'entrée dans path " -"`." - -#: glossary.rst:1006 -msgid "" -"See :class:`importlib.abc.MetaPathFinder` for the methods that meta path " -"finders implement." -msgstr "" -"Voir :class:`importlib.abc.MetaPathFinder` pour les méthodes que les " -"chercheurs dans les méta-chemins doivent implémenter." - -#: glossary.rst:1008 -msgid "metaclass" -msgstr "métaclasse" - -#: glossary.rst:1010 -msgid "" -"The class of a class. Class definitions create a class name, a class " -"dictionary, and a list of base classes. The metaclass is responsible for " -"taking those three arguments and creating the class. Most object oriented " -"programming languages provide a default implementation. What makes Python " -"special is that it is possible to create custom metaclasses. Most users " -"never need this tool, but when the need arises, metaclasses can provide " -"powerful, elegant solutions. They have been used for logging attribute " -"access, adding thread-safety, tracking object creation, implementing " -"singletons, and many other tasks." -msgstr "" -"Classe d'une classe. Les définitions de classe créent un nom pour la classe, " -"un dictionnaire de classe et une liste de classes parentes. La métaclasse a " -"pour rôle de réunir ces trois paramètres pour construire la classe. La " -"plupart des langages orientés objet fournissent une implémentation par " -"défaut. La particularité de Python est la possibilité de créer des " -"métaclasses personnalisées. La plupart des utilisateurs n'auront jamais " -"besoin de cet outil, mais lorsque le besoin survient, les métaclasses " -"offrent des solutions élégantes et puissantes. Elles sont utilisées pour " -"journaliser les accès à des propriétés, rendre sûrs les environnements " -"*multi-threads*, suivre la création d'objets, implémenter des singletons et " -"bien d'autres tâches." - -#: glossary.rst:1020 -msgid "More information can be found in :ref:`metaclasses`." -msgstr "Plus d'informations sont disponibles dans : :ref:`metaclasses`." - -#: glossary.rst:1021 -msgid "method" -msgstr "méthode" - -#: glossary.rst:1023 -msgid "" -"A function which is defined inside a class body. If called as an attribute " -"of an instance of that class, the method will get the instance object as its " -"first :term:`argument` (which is usually called ``self``). " -"See :term:`function` and :term:`nested scope`." -msgstr "" -"Fonction définie à l'intérieur d'une classe. Lorsqu'elle est appelée comme " -"un attribut d'une instance de cette classe, la méthode reçoit l'instance en " -"premier :term:`argument` (qui, par convention, est habituellement nommé " -"``self``). Voir :term:`function` et :term:`nested scope`." - -#: glossary.rst:1027 -msgid "method resolution order" -msgstr "ordre de résolution des méthodes" - -#: glossary.rst:1029 -#, fuzzy -msgid "" -"Method Resolution Order is the order in which base classes are searched for " -"a member during lookup. See :ref:`python_2.3_mro` for details of the " -"algorithm used by the Python interpreter since the 2.3 release." -msgstr "" -"L'ordre de résolution des méthodes (*MRO* pour *Method Resolution Order* en " -"anglais) est, lors de la recherche d'un attribut dans les classes parentes, " -"la façon dont l'interpréteur Python classe ces classes parentes. Voir `The " -"Python 2.3 Method Resolution Order `_ pour plus de détails sur l'algorithme utilisé par l'interpréteur " -"Python depuis la version 2.3." - -#: glossary.rst:1032 -msgid "module" -msgstr "module" - -#: glossary.rst:1034 -msgid "" -"An object that serves as an organizational unit of Python code. Modules " -"have a namespace containing arbitrary Python objects. Modules are loaded " -"into Python by the process of :term:`importing`." -msgstr "" -"Objet utilisé pour organiser une portion unitaire de code en Python. Les " -"modules ont un espace de nommage et peuvent contenir n'importe quels objets " -"Python. Charger des modules est appelé :term:`importer `." - -#: glossary.rst:1038 -msgid "See also :term:`package`." -msgstr "Voir aussi :term:`paquet`." - -#: glossary.rst:1039 -msgid "module spec" -msgstr "spécificateur de module" - -#: glossary.rst:1041 -msgid "" -"A namespace containing the import-related information used to load a module. " -"An instance of :class:`importlib.machinery.ModuleSpec`." -msgstr "" -"Espace de nommage contenant les informations, relatives à l'importation, " -"utilisées pour charger un module. C'est une instance de la " -"classe :class:`importlib.machinery.ModuleSpec`." - -#: glossary.rst:1044 -#, fuzzy -msgid "See also :ref:`module-specs`." -msgstr "Voir aussi :term:`module`." - -#: glossary.rst:1045 -msgid "MRO" -msgstr "MRO" - -#: glossary.rst:1047 -msgid "See :term:`method resolution order`." -msgstr "Voir :term:`ordre de résolution des méthodes`." - -#: glossary.rst:1048 -msgid "mutable" -msgstr "mutable" - -#: glossary.rst:1050 -msgid "" -"An :term:`object` with state that is allowed to change during the course of " -"the program. In multi-threaded programs, mutable objects that are shared " -"between threads require careful synchronization to avoid :term:`race " -"conditions `. See also :term:`immutable`, :term:`thread-" -"safe`, and :term:`concurrent modification`." -msgstr "" - -#: glossary.rst:1055 -msgid "named tuple" -msgstr "*n*-uplet nommé" - -#: glossary.rst:1057 -msgid "" -"The term \"named tuple\" applies to any type or class that inherits from " -"tuple and whose indexable elements are also accessible using named " -"attributes. The type or class may have other features as well." -msgstr "" -"Le terme \"n-uplet nommé\" s'applique à tous les types ou classes qui " -"héritent de la classe ``tuple`` et dont les éléments indexables sont aussi " -"accessibles en utilisant des attributs nommés. Les types et classes peuvent " -"avoir aussi d'autres caractéristiques." - -#: glossary.rst:1061 -msgid "" -"Several built-in types are named tuples, including the values returned " -"by :func:`time.localtime` and :func:`os.stat`. Another example " -"is :data:`sys.float_info`::" -msgstr "" -"Plusieurs types natifs sont appelés n-uplets, y compris les valeurs " -"retournées par :func:`time.localtime` et :func:`os.stat`. Un autre exemple " -"est :data:`sys.float_info` ::" - -#: glossary.rst:1072 -#, fuzzy -msgid "" -"Some named tuples are built-in types (such as the above examples). " -"Alternatively, a named tuple can be created from a regular class definition " -"that inherits from :class:`tuple` and that defines named fields. Such a " -"class can be written by hand, or it can be created by " -"inheriting :class:`typing.NamedTuple`, or with the factory " -"function :func:`collections.namedtuple`. The latter techniques also add " -"some extra methods that may not be found in hand-written or built-in named " -"tuples." -msgstr "" -"Certains *n-uplets nommés* sont des types natifs (comme les exemples ci-" -"dessus). Sinon, un *n-uplet nommé* peut être créé à partir d'une définition " -"de classe habituelle qui hérite de :class:`tuple` et qui définit les champs " -"nommés. Une telle classe peut être écrite à la main ou être créée avec la " -"fonction :func:`collections.namedtuple`. Cette dernière méthode ajoute des " -"méthodes supplémentaires qui ne seront pas trouvées dans celles écrites à la " -"main ni dans les n-uplets nommés natifs." - -#: glossary.rst:1080 -msgid "namespace" -msgstr "espace de nommage" - -#: glossary.rst:1082 -msgid "" -"The place where a variable is stored. Namespaces are implemented as " -"dictionaries. There are the local, global and built-in namespaces as well " -"as nested namespaces in objects (in methods). Namespaces support modularity " -"by preventing naming conflicts. For instance, the " -"functions :func:`builtins.open <.open>` and :func:`os.open` are " -"distinguished by their namespaces. Namespaces also aid readability and " -"maintainability by making it clear which module implements a function. For " -"instance, writing :func:`random.seed` or :func:`itertools.islice` makes it " -"clear that those functions are implemented by the :mod:`random` " -"and :mod:`itertools` modules, respectively." -msgstr "" -"L'endroit où une variable est stockée. Les espaces de nommage sont " -"implémentés avec des dictionnaires. Il existe des espaces de nommage " -"globaux, natifs ou imbriqués dans les objets (dans les méthodes). Les " -"espaces de nommage favorisent la modularité car ils permettent d'éviter les " -"conflits de noms. Par exemple, les fonctions :func:`builtins.open <.open>` " -"et :func:`os.open` sont différenciées par leurs espaces de nom. Les espaces " -"de nommage aident aussi à la lisibilité et la maintenabilité en rendant " -"clair quel module implémente une fonction. Par exemple, " -"écrire :func:`random.seed` ou :func:`itertools.islice` affiche clairement " -"que ces fonctions sont implémentées respectivement dans les " -"modules :mod:`random` et :mod:`itertools`." - -#: glossary.rst:1092 -msgid "namespace package" -msgstr "paquet-espace de nommage" - -#: glossary.rst:1094 -#, fuzzy -msgid "" -"A :term:`package` which serves only as a container for subpackages. " -"Namespace packages may have no physical representation, and specifically are " -"not like a :term:`regular package` because they have no ``__init__.py`` file." -msgstr "" -"Un :term:`paquet` tel que défini dans la :pep:`421` qui ne sert qu'à " -"contenir des sous-paquets. Les paquets-espace de nommage peuvent n'avoir " -"aucune représentation physique et, plus spécifiquement, ne sont pas comme " -"un :term:`paquet classique` puisqu'ils n'ont pas de fichier ``__init__.py``." - -#: glossary.rst:1099 -msgid "" -"Namespace packages allow several individually installable packages to have a " -"common parent package. Otherwise, it is recommended to use a :term:`regular " -"package`." -msgstr "" - -#: glossary.rst:1102 -msgid "" -"For more information, see :pep:`420` and :ref:`reference-namespace-package`." -msgstr "" - -#: glossary.rst:1104 -msgid "See also :term:`module`." -msgstr "Voir aussi :term:`module`." - -#: glossary.rst:1105 -#, fuzzy -msgid "native code" -msgstr "code intermédiaire (*bytecode*)" - -#: glossary.rst:1107 -msgid "" -"Code that is compiled to machine instructions and runs directly on the " -"processor, as opposed to code that is interpreted or runs in a virtual " -"machine. In the context of Python, native code typically refers to C, C++, " -"Rust or Fortran code in :term:`extension modules ` that " -"can be called from Python. See also :term:`extension module`." -msgstr "" - -#: glossary.rst:1112 -msgid "nested scope" -msgstr "portée imbriquée" - -#: glossary.rst:1114 -msgid "" -"The ability to refer to a variable in an enclosing definition. For " -"instance, a function defined inside another function can refer to variables " -"in the outer function. Note that nested scopes by default work only for " -"reference and not for assignment. Local variables both read and write in " -"the innermost scope. Likewise, global variables read and write to the " -"global namespace. The :keyword:`nonlocal` allows writing to outer scopes." -msgstr "" -"Possibilité de faire référence à une variable déclarée dans une définition " -"englobante. Typiquement, une fonction définie à l'intérieur d'une autre " -"fonction a accès aux variables de cette dernière. Souvenez-vous cependant " -"que cela ne fonctionne que pour accéder à des variables, pas pour les " -"assigner. Les variables locales sont lues et assignées dans l'espace de " -"nommage le plus proche. Tout comme les variables globales qui sont stockés " -"dans l'espace de nommage global, le mot clef :keyword:`nonlocal` permet " -"d'écrire dans l'espace de nommage dans lequel est déclarée la variable." - -#: glossary.rst:1121 -msgid "new-style class" -msgstr "nouvelle classe" - -#: glossary.rst:1123 -#, fuzzy -msgid "" -"Old name for the flavor of classes now used for all class objects. In " -"earlier Python versions, only new-style classes could use Python's newer, " -"versatile features like :attr:`~object.__slots__`, descriptors, " -"properties, :meth:`~object.__getattribute__`, class methods, and static " -"methods." -msgstr "" -"Ancien nom pour l'implémentation actuelle des classes, pour tous les objets. " -"Dans les anciennes versions de Python, seules les nouvelles classes " -"pouvaient utiliser les nouvelles fonctionnalités telles " -"que :attr:`~object.__slots__`, les descripteurs, les " -"propriétés, :meth:`__getattribute__`, les méthodes de classe et les méthodes " -"statiques." - -#: glossary.rst:1128 -msgid "non-deterministic" -msgstr "" - -#: glossary.rst:1130 -msgid "" -"Behavior where the outcome of a program can vary between executions with the " -"same inputs. In multi-threaded programs, non-deterministic behavior often " -"results from :term:`race conditions ` where the relative " -"timing or interleaving of threads affects the result. Proper synchronization " -"using :term:`locks ` and other :term:`synchronization primitives " -"` helps ensure deterministic behavior." -msgstr "" - -#: glossary.rst:1137 -msgid "object" -msgstr "objet" - -#: glossary.rst:1139 -msgid "" -"Any data with state (attributes or value) and defined behavior (methods). " -"Also the ultimate base class of any :term:`new-style class`." -msgstr "" -"N'importe quelle donnée comportant des états (sous forme d'attributs ou " -"d'une valeur) et un comportement (des méthodes). C'est aussi (``object``) " -"l'ancêtre commun à absolument toutes les :term:`nouvelles classes `." - -#: glossary.rst:1142 -#, fuzzy -msgid "optimized scope" -msgstr "portée imbriquée" - -#: glossary.rst:1144 -msgid "" -"A scope where target local variable names are reliably known to the compiler " -"when the code is compiled, allowing optimization of read and write access to " -"these names. The local namespaces for functions, generators, coroutines, " -"comprehensions, and generator expressions are optimized in this fashion. " -"Note: most interpreter optimizations are applied to all scopes, only those " -"relying on a known set of local and nonlocal variable names are restricted " -"to optimized scopes." -msgstr "" - -#: glossary.rst:1151 -#, fuzzy -msgid "optional module" -msgstr "module d'extension" - -#: glossary.rst:1153 -msgid "" -"An :term:`extension module` that is part of the :term:`standard library`, " -"but may be absent in some builds of :term:`CPython`, usually due to missing " -"third-party libraries or because the module is not available for a given " -"platform." -msgstr "" - -#: glossary.rst:1158 -msgid "" -"See :ref:`optional-module-requirements` for a list of optional modules that " -"require third-party libraries." -msgstr "" - -#: glossary.rst:1160 -msgid "package" -msgstr "paquet" - -#: glossary.rst:1162 -msgid "" -"A Python :term:`module` which can contain submodules or recursively, " -"subpackages. Technically, a package is a Python module with a ``__path__`` " -"attribute." -msgstr "" -":term:`module` Python qui peut contenir des sous-modules ou des sous-" -"paquets. Techniquement, un paquet est un module qui possède un attribut " -"``__path__``." - -#: glossary.rst:1166 -msgid "See also :term:`regular package` and :term:`namespace package`." -msgstr "Voir aussi :term:`paquet classique` et :term:`namespace package`." - -#: glossary.rst:1167 -msgid "parallelism" -msgstr "" - -#: glossary.rst:1169 -msgid "" -"Executing multiple operations at the same time (e.g. on multiple CPU " -"cores). In Python builds with the :term:`global interpreter lock (GIL) " -"`, only one thread runs Python bytecode at a time, " -"so taking advantage of multiple CPU cores typically involves multiple " -"processes (e.g. :mod:`multiprocessing`) or native extensions that release " -"the GIL. In :term:`free-threaded ` Python, multiple Python " -"threads can run Python code simultaneously on different cores." -msgstr "" - -#: glossary.rst:1177 -msgid "parameter" -msgstr "paramètre" - -#: glossary.rst:1179 -msgid "" -"A named entity in a :term:`function` (or method) definition that specifies " -"an :term:`argument` (or in some cases, arguments) that the function can " -"accept. There are five kinds of parameter:" -msgstr "" -"Entité nommée dans la définition d'une :term:`fonction` (ou méthode), " -"décrivant un :term:`argument` (ou dans certains cas des arguments) que la " -"fonction accepte. Il existe cinq sortes de paramètres :" - -#: glossary.rst:1183 -msgid "" -":dfn:`positional-or-keyword`: specifies an argument that can be passed " -"either :term:`positionally ` or as a :term:`keyword argument " -"`. This is the default kind of parameter, for example *foo* and " -"*bar* in the following::" -msgstr "" -":dfn:`positional-or-keyword` : l'argument peut être passé soit par " -"sa :term:`position `, soit en tant que :term:`argument nommé " -"`. C'est le type de paramètre par défaut. Par exemple, *foo* et " -"*bar* dans l'exemple suivant ::" - -#: glossary.rst:1192 -msgid "" -":dfn:`positional-only`: specifies an argument that can be supplied only by " -"position. Positional-only parameters can be defined by including a ``/`` " -"character in the parameter list of the function definition after them, for " -"example *posonly1* and *posonly2* in the following::" -msgstr "" -":dfn:`positional-only` : définit un argument qui ne peut être fourni que par " -"position. Les paramètres *positional-only* peuvent être définis en insérant " -"un caractère \"/\" dans la liste de paramètres de la définition de fonction " -"après eux. Par exemple : *posonly1* et *posonly2* dans le code suivant ::" - -#: glossary.rst:1201 -msgid "" -":dfn:`keyword-only`: specifies an argument that can be supplied only by " -"keyword. Keyword-only parameters can be defined by including a single var-" -"positional parameter or bare ``*`` in the parameter list of the function " -"definition before them, for example *kw_only1* and *kw_only2* in the " -"following::" -msgstr "" -":dfn:`keyword-only` : l'argument ne peut être fourni que nommé. Les " -"paramètres *keyword-only* peuvent être définis en utilisant un seul " -"paramètre *var-positional*, ou en ajoutant une étoile (``*``) seule dans la " -"liste des paramètres avant eux. Par exemple, *kw_only1* et *kw_only2* dans " -"le code suivant ::" - -#: glossary.rst:1209 -msgid "" -":dfn:`var-positional`: specifies that an arbitrary sequence of positional " -"arguments can be provided (in addition to any positional arguments already " -"accepted by other parameters). Such a parameter can be defined by " -"prepending the parameter name with ``*``, for example *args* in the " -"following::" -msgstr "" -":dfn:`var-positional` : une séquence d'arguments positionnels peut être " -"fournie (en plus de tous les arguments positionnels déjà acceptés par " -"d'autres paramètres). Un tel paramètre peut être défini en préfixant son nom " -"par une ``*``. Par exemple *args* ci-après ::" - -#: glossary.rst:1217 -msgid "" -":dfn:`var-keyword`: specifies that arbitrarily many keyword arguments can be " -"provided (in addition to any keyword arguments already accepted by other " -"parameters). Such a parameter can be defined by prepending the parameter " -"name with ``**``, for example *kwargs* in the example above." -msgstr "" -":dfn:`var-keyword` : une quantité arbitraire d'arguments peut être passée, " -"chacun étant nommé (en plus de tous les arguments nommés déjà acceptés par " -"d'autres paramètres). Un tel paramètre est défini en préfixant le nom du " -"paramètre par ``**``. Par exemple, *kwargs* ci-dessus." - -#: glossary.rst:1223 -msgid "" -"Parameters can specify both optional and required arguments, as well as " -"default values for some optional arguments." -msgstr "" -"Les paramètres peuvent spécifier des arguments obligatoires ou optionnels, " -"ainsi que des valeurs par défaut pour les arguments optionnels." - -#: glossary.rst:1226 -msgid "" -"See also the :term:`argument` glossary entry, the FAQ question on :ref:`the " -"difference between arguments and parameters `, " -"the :class:`inspect.Parameter` class, the :ref:`function` section, " -"and :pep:`362`." -msgstr "" -"Voir aussi :term:`argument` dans le glossaire, la question sur :ref:`la " -"différence entre les arguments et les paramètres ` dans la FAQ, la classe :class:`inspect.Parameter`, la " -"section :ref:`function` et la :pep:`362`." - -#: glossary.rst:1230 -msgid "per-object lock" -msgstr "" - -#: glossary.rst:1232 -msgid "" -"A :term:`lock` associated with an individual object instance rather than a " -"global lock shared across all objects. In :term:`free-threaded ` Python, built-in types like :class:`dict` and :class:`list` use " -"per-object locks to allow concurrent operations on different objects while " -"serializing operations on the same object. Operations that hold the per-" -"object lock prevent other locking operations on the same object from " -"proceeding, but do not block :term:`lock-free` operations." -msgstr "" - -#: glossary.rst:1240 -msgid "path entry" -msgstr "entrée de chemin" - -#: glossary.rst:1242 -msgid "" -"A single location on the :term:`import path` which the :term:`path based " -"finder` consults to find modules for importing." -msgstr "" -"Emplacement dans le :term:`chemin des importations ` (*import " -"path* en anglais, d'où le *path*) que le :term:`chercheur basé sur les " -"chemins ` consulte pour trouver des modules à importer." - -#: glossary.rst:1244 -msgid "path entry finder" -msgstr "chercheur de chemins" - -#: glossary.rst:1246 -msgid "" -"A :term:`finder` returned by a callable on :data:`sys.path_hooks` (i.e. " -"a :term:`path entry hook`) which knows how to locate modules given " -"a :term:`path entry`." -msgstr "" -":term:`chercheur ` renvoyé par un appelable sur " -"un :data:`sys.path_hooks` (c'est-à-dire un :term:`point d'entrée pour la " -"recherche dans path `) qui sait où trouver des modules " -"lorsqu'on lui donne une :term:`entrée de path `." - -#: glossary.rst:1250 -msgid "" -"See :class:`importlib.abc.PathEntryFinder` for the methods that path entry " -"finders implement." -msgstr "" -"Voir :class:`importlib.abc.PathEntryFinder` pour les méthodes qu'un " -"chercheur d'entrée dans *path* doit implémenter." - -#: glossary.rst:1252 -msgid "path entry hook" -msgstr "point d'entrée pour la recherche dans *path*" - -#: glossary.rst:1254 -#, fuzzy -msgid "" -"A callable on the :data:`sys.path_hooks` list which returns a :term:`path " -"entry finder` if it knows how to find modules on a specific :term:`path " -"entry`." -msgstr "" -"Appelable dans la liste :data:`sys.path_hook` qui donne un :term:`chercheur " -"d'entrée dans path ` s'il sait où trouver des modules " -"pour une :term:`entrée dans path ` donnée." - -#: glossary.rst:1257 -msgid "path based finder" -msgstr "chercheur basé sur les chemins" - -#: glossary.rst:1259 -msgid "" -"One of the default :term:`meta path finders ` which " -"searches an :term:`import path` for modules." -msgstr "" -"L'un des :term:`chercheurs dans les méta-chemins ` par " -"défaut qui cherche des modules dans un :term:`chemin des importations " -"`." - -#: glossary.rst:1261 -msgid "path-like object" -msgstr "objet simili-chemin" - -#: glossary.rst:1263 -msgid "" -"An object representing a file system path. A path-like object is either " -"a :class:`str` or :class:`bytes` object representing a path, or an object " -"implementing the :class:`os.PathLike` protocol. An object that supports " -"the :class:`os.PathLike` protocol can be converted to a :class:`str` " -"or :class:`bytes` file system path by calling the :func:`os.fspath` " -"function; :func:`os.fsdecode` and :func:`os.fsencode` can be used to " -"guarantee a :class:`str` or :class:`bytes` result instead, respectively. " -"Introduced by :pep:`519`." -msgstr "" -"Objet représentant un chemin du système de fichiers. Un objet simili-chemin " -"est un objet :class:`str` ou un objet :class:`bytes` représentant un chemin " -"ou un objet implémentant le protocole :class:`os.PathLike`. Un objet qui " -"accepte le protocole :class:`os.PathLike` peut être converti en un " -"chemin :class:`str` ou :class:`bytes` du système de fichiers en appelant la " -"fonction :func:`os.fspath`. :func:`os.fsdecode` et :func:`os.fsencode` " -"peuvent être utilisées, respectivement, pour garantir un résultat de " -"type :class:`str` ou :class:`bytes` à la place. A été Introduit par " -"la :pep:`519`." - -#: glossary.rst:1271 -msgid "PEP" -msgstr "PEP" - -#: glossary.rst:1273 -msgid "" -"Python Enhancement Proposal. A PEP is a design document providing " -"information to the Python community, or describing a new feature for Python " -"or its processes or environment. PEPs should provide a concise technical " -"specification and a rationale for proposed features." -msgstr "" -"*Python Enhancement Proposal* (Proposition d'amélioration de Python). Une " -"PEP est un document de conception fournissant des informations à la " -"communauté Python ou décrivant une nouvelle fonctionnalité pour Python, ses " -"processus ou son environnement. Les PEP doivent fournir une spécification " -"technique concise et une justification des fonctionnalités proposées." - -#: glossary.rst:1279 -msgid "" -"PEPs are intended to be the primary mechanisms for proposing major new " -"features, for collecting community input on an issue, and for documenting " -"the design decisions that have gone into Python. The PEP author is " -"responsible for building consensus within the community and documenting " -"dissenting opinions." -msgstr "" -"Les PEP sont censées être les principaux mécanismes pour proposer de " -"nouvelles fonctionnalités majeures, pour recueillir les commentaires de la " -"communauté sur une question et pour documenter les décisions de conception " -"qui sont intégrées en Python. L’auteur du PEP est responsable de " -"l’établissement d’un consensus au sein de la communauté et de documenter les " -"opinions contradictoires." - -#: glossary.rst:1285 -msgid "See :pep:`1`." -msgstr "Voir la :pep:`1`." - -#: glossary.rst:1286 -msgid "portion" -msgstr "portion" - -#: glossary.rst:1288 -msgid "" -"A set of files in a single directory (possibly stored in a zip file) that " -"contribute to a namespace package, as defined in :pep:`420`." -msgstr "" -"Jeu de fichiers dans un seul dossier (pouvant être stocké sous forme de " -"fichier zip) qui contribue à l'espace de nommage d'un paquet, tel que défini " -"dans la :pep:`420`." - -#: glossary.rst:1290 -msgid "positional argument" -msgstr "argument positionnel" - -#: glossary.rst:1293 -msgid "provisional API" -msgstr "API provisoire" - -#: glossary.rst:1295 -msgid "" -"A provisional API is one which has been deliberately excluded from the " -"standard library's backwards compatibility guarantees. While major changes " -"to such interfaces are not expected, as long as they are marked provisional, " -"backwards incompatible changes (up to and including removal of the " -"interface) may occur if deemed necessary by core developers. Such changes " -"will not be made gratuitously -- they will occur only if serious fundamental " -"flaws are uncovered that were missed prior to the inclusion of the API." -msgstr "" -"Une API provisoire est une API qui n'offre aucune garantie de " -"rétrocompatibilité (la bibliothèque standard exige la rétrocompatibilité). " -"Bien que des changements majeurs d'une telle interface ne soient pas " -"attendus, tant qu'elle est étiquetée provisoire, des changements cassant la " -"rétrocompatibilité (y compris sa suppression complète) peuvent survenir si " -"les développeurs principaux le jugent nécessaire. Ces modifications ne " -"surviendront que si de sérieux problèmes sont découverts et qu'ils n'avaient " -"pas été identifiés avant l'ajout de l'API." - -#: glossary.rst:1304 -msgid "" -"Even for provisional APIs, backwards incompatible changes are seen as a " -"\"solution of last resort\" - every attempt will still be made to find a " -"backwards compatible resolution to any identified problems." -msgstr "" -"Même pour les API provisoires, les changements cassant la rétrocompatibilité " -"sont considérés comme des \"solutions de dernier recours\". Tout ce qui est " -"possible sera fait pour tenter de résoudre les problèmes en conservant la " -"rétrocompatibilité." - -#: glossary.rst:1308 -msgid "" -"This process allows the standard library to continue to evolve over time, " -"without locking in problematic design errors for extended periods of time. " -"See :pep:`411` for more details." -msgstr "" -"Ce processus permet à la bibliothèque standard de continuer à évoluer avec " -"le temps, sans se bloquer longtemps sur des erreurs d'architecture. Voir " -"la :pep:`411` pour plus de détails." - -#: glossary.rst:1311 -msgid "provisional package" -msgstr "paquet provisoire" - -#: glossary.rst:1313 -msgid "See :term:`provisional API`." -msgstr "Voir :term:`provisional API`." - -#: glossary.rst:1314 -msgid "Python 3000" -msgstr "Python 3000" - -#: glossary.rst:1316 -msgid "" -"Nickname for the Python 3.x release line (coined long ago when the release " -"of version 3 was something in the distant future.) This is also abbreviated " -"\"Py3k\"." -msgstr "" -"Surnom donné à la série des Python 3.x (très vieux surnom donné à l'époque " -"où Python 3 représentait un futur lointain). Aussi abrégé *Py3k*." - -#: glossary.rst:1319 -msgid "Pythonic" -msgstr "*Pythonique*" - -#: glossary.rst:1321 -msgid "" -"An idea or piece of code which closely follows the most common idioms of the " -"Python language, rather than implementing code using concepts common to " -"other languages. For example, a common idiom in Python is to loop over all " -"elements of an iterable using a :keyword:`for` statement. Many other " -"languages don't have this type of construct, so people unfamiliar with " -"Python sometimes use a numerical counter instead::" -msgstr "" -"Idée, ou bout de code, qui colle aux idiomes de Python plutôt qu'aux " -"concepts communs rencontrés dans d'autres langages. Par exemple, il est " -"idiomatique en Python de parcourir les éléments d'un itérable en " -"utilisant :keyword:`for`. Beaucoup d'autres langages n'ont pas cette " -"possibilité, donc les gens qui ne sont pas habitués à Python utilisent " -"parfois un compteur numérique à la place ::" - -#: glossary.rst:1331 -msgid "As opposed to the cleaner, Pythonic method::" -msgstr "" -"Plutôt qu'utiliser la méthode, plus propre et élégante, donc *Pythonique* ::" - -#: glossary.rst:1335 -msgid "qualified name" -msgstr "nom qualifié" - -#: glossary.rst:1337 -msgid "" -"A dotted name showing the \"path\" from a module's global scope to a class, " -"function or method defined in that module, as defined in :pep:`3155`. For " -"top-level functions and classes, the qualified name is the same as the " -"object's name::" -msgstr "" -"Nom, comprenant des points, montrant le \"chemin\" de l'espace de nommage " -"global d'un module vers une classe, fonction ou méthode définie dans ce " -"module, tel que défini dans la :pep:`3155`. Pour les fonctions et classes de " -"premier niveau, le nom qualifié est le même que le nom de l'objet ::" - -#: glossary.rst:1354 -msgid "" -"When used to refer to modules, the *fully qualified name* means the entire " -"dotted path to the module, including any parent packages, e.g. " -"``email.mime.text``::" -msgstr "" -"Lorsqu'il est utilisé pour nommer des modules, le *nom qualifié complet* " -"(*fully qualified name - FQN* en anglais) signifie le chemin complet (séparé " -"par des points) vers le module, incluant tous les paquets parents. Par " -"exemple : ``email.mime.text`` ::" - -#: glossary.rst:1361 -#, fuzzy -msgid "race condition" -msgstr "ramasse-miettes" - -#: glossary.rst:1363 -msgid "" -"A condition of a program where the behavior depends on the relative timing " -"or ordering of events, particularly in multi-threaded programs. Race " -"conditions can lead to :term:`non-deterministic` behavior and bugs that are " -"difficult to reproduce. A :term:`data race` is a specific type of race " -"condition involving unsynchronized access to shared memory. " -"The :term:`LBYL` coding style is particularly susceptible to race conditions " -"in multi-threaded code. Using :term:`locks ` and " -"other :term:`synchronization primitives ` helps " -"prevent race conditions." -msgstr "" - -#: glossary.rst:1373 -msgid "reference count" -msgstr "nombre de références" - -#: glossary.rst:1375 -#, fuzzy -msgid "" -"The number of references to an object. When the reference count of an " -"object drops to zero, it is deallocated. Some objects are :term:`immortal` " -"and have reference counts that are never modified, and therefore the objects " -"are never deallocated. Reference counting is generally not visible to " -"Python code, but it is a key element of the :term:`CPython` implementation. " -"Programmers can call the :func:`sys.getrefcount` function to return the " -"reference count for a particular object." -msgstr "" -"Nombre de références à un objet. Lorsque le nombre de références à un objet " -"descend à zéro, l'objet est désalloué. Le comptage de référence n'est " -"généralement pas visible dans le code Python, mais c'est un élément clé de " -"l'implémentation :term:`CPython`. Les développeurs peuvent utiliser la " -"fonction :func:`sys.getrefcount` pour obtenir le nombre de références à un " -"objet donné." - -#: glossary.rst:1384 -msgid "" -"In :term:`CPython`, reference counts are not considered to be stable or well-" -"defined values; the number of references to an object, and how that number " -"is affected by Python code, may be different between versions." -msgstr "" - -#: glossary.rst:1388 -msgid "regular package" -msgstr "paquet classique" - -#: glossary.rst:1390 -msgid "" -"A traditional :term:`package`, such as a directory containing an " -"``__init__.py`` file." -msgstr "" -":term:`paquet` traditionnel, tel qu'un dossier contenant un fichier " -"``__init__.py``." - -#: glossary.rst:1393 -msgid "See also :term:`namespace package`." -msgstr "Voir aussi :term:`paquet-espace de nommage `." - -#: glossary.rst:1394 -msgid "reentrant" -msgstr "" - -#: glossary.rst:1396 -msgid "" -"A property of a function or :term:`lock` that allows it to be called or " -"acquired multiple times by the same thread without causing errors or " -"a :term:`deadlock`." -msgstr "" - -#: glossary.rst:1400 -msgid "" -"For functions, reentrancy means the function can be safely called again " -"before a previous invocation has completed, which is important when " -"functions may be called recursively or from signal handlers. Thread-unsafe " -"functions may be :term:`non-deterministic` if they're called reentrantly in " -"a multithreaded program." -msgstr "" - -#: glossary.rst:1406 -msgid "" -"For locks, Python's :class:`threading.RLock` (reentrant lock) is reentrant, " -"meaning a thread that already holds the lock can acquire it again without " -"blocking. In contrast, :class:`threading.Lock` is not reentrant - " -"attempting to acquire it twice from the same thread will cause a deadlock." -msgstr "" - -#: glossary.rst:1412 -#, fuzzy -msgid "See also :term:`lock` and :term:`deadlock`." -msgstr "Voir aussi :term:`paquet classique` et :term:`namespace package`." - -#: glossary.rst:1413 -msgid "REPL" -msgstr "REPL" - -#: glossary.rst:1415 -msgid "" -"An acronym for the \"read–eval–print loop\", another name for " -"the :term:`interactive` interpreter shell." -msgstr "" -"Un acronyme pour \"*read–eval–print loop*\", un autre terme pour " -"l’interpréteur :term:`interactif `." - -#: glossary.rst:1417 -msgid "__slots__" -msgstr "__slots__" - -#: glossary.rst:1419 -msgid "" -"A declaration inside a class that saves memory by pre-declaring space for " -"instance attributes and eliminating instance dictionaries. Though popular, " -"the technique is somewhat tricky to get right and is best reserved for rare " -"cases where there are large numbers of instances in a memory-critical " -"application." -msgstr "" -"Déclaration dans une classe qui économise de la mémoire en pré-allouant de " -"l'espace pour les attributs des instances et qui élimine le dictionnaire " -"(des attributs) des instances. Bien que populaire, cette technique est " -"difficile à maîtriser et devrait être réservée à de rares cas où un grand " -"nombre d'instances dans une application devient un sujet critique pour la " -"mémoire." - -#: glossary.rst:1424 -msgid "sequence" -msgstr "séquence" - -#: glossary.rst:1426 -#, fuzzy -msgid "" -"An :term:`iterable` which supports efficient element access using integer " -"indices via the :meth:`~object.__getitem__` special method and defines " -"a :meth:`~object.__len__` method that returns the length of the sequence. " -"Some built-in sequence types " -"are :class:`list`, :class:`str`, :class:`tuple`, and :class:`bytes`. Note " -"that :class:`dict` also supports :meth:`~object.__getitem__` and :meth:`!" -"__len__`, but is considered a mapping rather than a sequence because the " -"lookups use arbitrary :term:`hashable` keys rather than integers." -msgstr "" -":term:`itérable` qui offre un accès efficace à ses éléments par un indice " -"sous forme de nombre entier via la méthode spéciale :meth:`__getitem__` et " -"qui définit une méthode :meth:`__len__` donnant sa taille. Voici quelques " -"séquences natives : :class:`list`, :class:`str`, :class:`tuple`, " -"et :class:`bytes`. Notez que :class:`dict` possède aussi une " -"méthode :meth:`__getitem__` et une méthode :meth:`__len__`, mais il est " -"considéré comme un *mapping* plutôt qu'une séquence, car ses accès se font " -"par une clé arbitraire :term:`immuable` plutôt qu'un nombre entier." - -#: glossary.rst:1435 -#, fuzzy -msgid "" -"The :class:`collections.abc.Sequence` abstract base class defines a much " -"richer interface that goes beyond just :meth:`~object.__getitem__` " -"and :meth:`~object.__len__`, " -"adding :meth:`~sequence.count`, :meth:`~sequence.index`, :meth:`~object.__contains__`, " -"and :meth:`~object.__reversed__`. Types that implement this expanded " -"interface can be registered explicitly using :func:`~abc.ABCMeta.register`. " -"For more documentation on sequence methods generally, see :ref:`Common " -"Sequence Operations `." -msgstr "" -"La classe abstraite de base :class:`collections.abc.Sequence` définit une " -"interface plus riche qui va au-delà des simples :meth:`__getitem__` " -"et :meth:`__len__`, en " -"ajoutant :meth:`count`, :meth:`index`, :meth:`__contains__` " -"et :meth:`__reversed__`. Les types qui implémentent cette interface étendue " -"peuvent s'enregistrer explicitement en utilisant :func:`~abc.register`." - -#: glossary.rst:1445 -msgid "set comprehension" -msgstr "ensemble en compréhension (ou ensemble en intension)" - -#: glossary.rst:1447 -msgid "" -"A compact way to process all or part of the elements in an iterable and " -"return a set with the results. ``results = {c for c in 'abracadabra' if c " -"not in 'abc'}`` generates the set of strings ``{'r', 'd'}``. " -"See :ref:`comprehensions`." -msgstr "" -"Une façon compacte de traiter tout ou partie des éléments d'un itérable et " -"de renvoyer un *set* avec les résultats. ``results = {c for c in " -"'abracadabra' if c not in 'abc'}`` génère l'ensemble contenant les lettres " -"« r » et « d » ``{'r', 'd'}``. Voir :ref:`comprehensions`." - -#: glossary.rst:1451 -msgid "single dispatch" -msgstr "distribution simple" - -#: glossary.rst:1453 -msgid "" -"A form of :term:`generic function` dispatch where the implementation is " -"chosen based on the type of a single argument." -msgstr "" -"Forme de distribution, comme les :term:`fonction génériques `, où l'implémentation est choisie en fonction du type d'un seul " -"argument." - -#: glossary.rst:1455 -msgid "slice" -msgstr "tranche" - -#: glossary.rst:1457 -msgid "" -"An object of type :class:`slice`, used to describe a portion of " -"a :term:`sequence`. A slice object is created when using the :ref:`slicing " -"` form of :ref:`subscript notation `, with colons " -"inside square brackets, such as in ``variable_name[1:3:5]``." -msgstr "" - -#: glossary.rst:1462 -msgid "soft deprecated" -msgstr "" - -#: glossary.rst:1464 -msgid "" -"A soft deprecated API should not be used in new code, but it is safe for " -"already existing code to use it. The API remains documented and tested, but " -"will not be enhanced further." -msgstr "" - -#: glossary.rst:1468 -msgid "" -"Soft deprecation, unlike normal deprecation, does not plan on removing the " -"API and will not emit warnings." -msgstr "" - -#: glossary.rst:1471 -msgid "" -"See `PEP 387: Soft Deprecation `_." -msgstr "" - -#: glossary.rst:1473 -msgid "special method" -msgstr "méthode spéciale" - -#: glossary.rst:1477 -msgid "" -"A method that is called implicitly by Python to execute a certain operation " -"on a type, such as addition. Such methods have names starting and ending " -"with double underscores. Special methods are documented " -"in :ref:`specialnames`." -msgstr "" -"(*special method* en anglais) Méthode appelée implicitement par Python pour " -"exécuter une opération sur un type, comme une addition. De telles méthodes " -"ont des noms commençant et terminant par des doubles tirets bas. Les " -"méthodes spéciales sont documentées dans :ref:`specialnames`." - -#: glossary.rst:1481 -msgid "standard library" -msgstr "" - -#: glossary.rst:1483 -msgid "" -"The collection of :term:`packages `, :term:`modules ` " -"and :term:`extension modules ` distributed as a part of " -"the official Python interpreter package. The exact membership of the " -"collection may vary based on platform, available system libraries, or other " -"criteria. Documentation can be found at :ref:`library-index`." -msgstr "" - -#: glossary.rst:1489 -msgid "" -"See also :data:`sys.stdlib_module_names` for a list of all possible standard " -"library module names." -msgstr "" - -#: glossary.rst:1491 -msgid "statement" -msgstr "instruction" - -#: glossary.rst:1493 -msgid "" -"A statement is part of a suite (a \"block\" of code). A statement is either " -"an :term:`expression` or one of several constructs with a keyword, such " -"as :keyword:`if`, :keyword:`while` or :keyword:`for`." -msgstr "" -"Une instruction (*statement* en anglais) est un composant d'un \"bloc\" de " -"code. Une instruction est soit une :term:`expression`, soit une ou plusieurs " -"constructions basées sur un mot-clé, comme :keyword:`if`, :keyword:`while` " -"ou :keyword:`for`." - -#: glossary.rst:1496 -msgid "static type checker" -msgstr "" - -#: glossary.rst:1498 -msgid "" -"An external tool that reads Python code and analyzes it, looking for issues " -"such as incorrect types. See also :term:`type hints ` and " -"the :mod:`typing` module." -msgstr "" - -#: glossary.rst:1501 -msgid "stdlib" -msgstr "" - -#: glossary.rst:1503 -msgid "An abbreviation of :term:`standard library`." -msgstr "" - -#: glossary.rst:1504 -msgid "strong reference" -msgstr "référence forte" - -#: glossary.rst:1506 -#, fuzzy -msgid "" -"In Python's C API, a strong reference is a reference to an object which is " -"owned by the code holding the reference. The strong reference is taken by " -"calling :c:func:`Py_INCREF` when the reference is created and released " -"with :c:func:`Py_DECREF` when the reference is deleted." -msgstr "" -"Dans l'API C de Python, une référence forte est une référence vers un objet " -"qui incrémente son compteur de références lorsqu'elle est créée et le " -"décrémente lorsqu'elle est effacée." - -#: glossary.rst:1512 -msgid "" -"The :c:func:`Py_NewRef` function can be used to create a strong reference to " -"an object. Usually, the :c:func:`Py_DECREF` function must be called on the " -"strong reference before exiting the scope of the strong reference, to avoid " -"leaking one reference." -msgstr "" -"Une référence forte est créée à l'aide de la fonction :c:func:`Py_NewRef`. " -"Il faut normalement appeler :c:func:`Py_DECREF` dessus avant de sortir de sa " -"portée lexicale, sans quoi il y a une fuite de référence." - -#: glossary.rst:1517 -msgid "See also :term:`borrowed reference`." -msgstr "Voir aussi :term:`référence empruntée`." - -#: glossary.rst:1518 -#, fuzzy -msgid "subscript" -msgstr "descripteur" - -#: glossary.rst:1520 -msgid "" -"The expression in square brackets of a :ref:`subscription expression " -"`, for example, the ``3`` in ``items[3]``. Usually used to " -"select an element of a container. Also called a :term:`key` when " -"subscripting a :term:`mapping`, or an :term:`index` when subscripting " -"a :term:`sequence`." -msgstr "" - -#: glossary.rst:1526 -msgid "synchronization primitive" -msgstr "" - -#: glossary.rst:1528 -msgid "" -"A basic building block for coordinating (synchronizing) the execution of " -"multiple threads to ensure :term:`thread-safe` access to shared resources. " -"Python's :mod:`threading` module provides several synchronization primitives " -"including :class:`~threading.Lock`, :class:`~threading.RLock`, :class:`~threading.Semaphore`, :class:`~threading.Condition`, :class:`~threading.Event`, " -"and :class:`~threading.Barrier`. Additionally, the :mod:`queue` module " -"provides multi-producer, multi-consumer queues that are especially useful in " -"multithreaded programs. These primitives help prevent :term:`race conditions " -"` and coordinate thread execution. See also :term:`lock`." -msgstr "" - -#: glossary.rst:1538 -#, fuzzy -msgid "t-string" -msgstr "f-string" - -#: glossary.rst:1539 -#, fuzzy -msgid "t-strings" -msgstr "f-string" - -#: glossary.rst:1541 -#, fuzzy -msgid "" -"String literals prefixed with ``t`` or ``T`` are commonly called \"t-" -"strings\" which is short for :ref:`template string literals `." -msgstr "" -"Chaîne littérale préfixée de ``'f'`` ou ``'F'``. Les \"f-strings\" sont un " -"raccourci pour :ref:`formatted string literals `. Voir " -"la :pep:`498`." - -#: glossary.rst:1544 -msgid "text encoding" -msgstr "encodages de texte" - -#: glossary.rst:1546 -msgid "" -"A string in Python is a sequence of Unicode code points (in range " -"``U+0000``--``U+10FFFF``). To store or transfer a string, it needs to be " -"serialized as a sequence of bytes." -msgstr "" -"Une chaîne de caractères en Python est une suite de points de code Unicode " -"(dans l'intervalle ``U+0000``--``U+10FFFF``). Pour stocker ou transmettre " -"une chaîne, il est nécessaire de la sérialiser en suite d'octets." - -#: glossary.rst:1550 -msgid "" -"Serializing a string into a sequence of bytes is known as \"encoding\", and " -"recreating the string from the sequence of bytes is known as \"decoding\"." -msgstr "" -"Sérialiser une chaîne de caractères en une suite d'octets s'appelle " -"« encoder » et recréer la chaîne à partir de la suite d'octets s'appelle " -"« décoder »." - -#: glossary.rst:1553 -msgid "" -"There are a variety of different text serialization :ref:`codecs `, which are collectively referred to as \"text encodings\"." -msgstr "" -"Il existe de multiples :ref:`codecs ` pour la " -"sérialisation de texte, que l'on regroupe sous l'expression « encodages de " -"texte »." - -#: glossary.rst:1556 -msgid "text file" -msgstr "fichier texte" - -#: glossary.rst:1558 -msgid "" -"A :term:`file object` able to read and write :class:`str` objects. Often, a " -"text file actually accesses a byte-oriented datastream and handles " -"the :term:`text encoding` automatically. Examples of text files are files " -"opened in text mode (``'r'`` or " -"``'w'``), :data:`sys.stdin`, :data:`sys.stdout`, and instances " -"of :class:`io.StringIO`." -msgstr "" -":term:`Objet fichier ` capable de lire et d'écrire des " -"objets :class:`str`. Souvent, un fichier texte (*text file* en anglais) " -"accède en fait à un flux de donnée en octets et gère l':term:`encodage de " -"texte ` automatiquement. Des exemples de fichiers textes sont " -"les fichiers ouverts en mode texte (``'r'`` ou " -"``'w'``), :data:`sys.stdin`, :data:`sys.stdout` et les instances " -"de :class:`io.StringIO`." - -#: glossary.rst:1565 -msgid "" -"See also :term:`binary file` for a file object able to read and " -"write :term:`bytes-like objects `." -msgstr "" -"Voir aussi :term:`fichier binaire ` pour un objet fichier " -"capable de lire et d'écrire des :term:`objets octets-compatibles `." - -#: glossary.rst:1567 -msgid "thread state" -msgstr "" - -#: glossary.rst:1570 -msgid "" -"The information used by the :term:`CPython` runtime to run in an OS thread. " -"For example, this includes the current exception, if any, and the state of " -"the bytecode interpreter." -msgstr "" - -#: glossary.rst:1574 -msgid "" -"Each thread state is bound to a single OS thread, but threads may have many " -"thread states available. At most, one of them may be :term:`attached " -"` at once." -msgstr "" - -#: glossary.rst:1578 -msgid "" -"An :term:`attached thread state` is required to call most of Python's C API, " -"unless a function explicitly documents otherwise. The bytecode interpreter " -"only runs under an attached thread state." -msgstr "" - -#: glossary.rst:1582 -msgid "" -"Each thread state belongs to a single interpreter, but each interpreter may " -"have many thread states, including multiple for the same OS thread. Thread " -"states from multiple interpreters may be bound to the same thread, but only " -"one can be :term:`attached ` in that thread at any " -"given moment." -msgstr "" - -#: glossary.rst:1588 -msgid "" -"See :ref:`Thread State and the Global Interpreter Lock ` for more " -"information." -msgstr "" - -#: glossary.rst:1590 -msgid "thread-safe" -msgstr "" - -#: glossary.rst:1592 -msgid "" -"A module, function, or class that behaves correctly when used by multiple " -"threads concurrently. Thread-safe code uses " -"appropriate :term:`synchronization primitives ` " -"like :term:`locks ` to protect shared mutable state, or is designed to " -"avoid shared mutable state entirely. In the :term:`free-threaded ` build, built-in types like :class:`dict`, :class:`list`, " -"and :class:`set` use internal locking to make many operations thread-safe, " -"although thread safety is not necessarily guaranteed. Code that is not " -"thread-safe may experience :term:`race conditions ` " -"and :term:`data races ` when used in multi-threaded programs." -msgstr "" - -#: glossary.rst:1603 -msgid "token" -msgstr "" - -#: glossary.rst:1606 -msgid "" -"A small unit of source code, generated by the :ref:`lexical analyzer " -"` (also called the *tokenizer*). Names, numbers, strings, " -"operators, newlines and similar are represented by tokens." -msgstr "" - -#: glossary.rst:1611 -msgid "" -"The :mod:`tokenize` module exposes Python's lexical analyzer. " -"The :mod:`token` module contains information on the various types of tokens." -msgstr "" - -#: glossary.rst:1614 -msgid "triple-quoted string" -msgstr "chaîne entre triple guillemets" - -#: glossary.rst:1616 -msgid "" -"A string which is bound by three instances of either a quotation mark (\") " -"or an apostrophe ('). While they don't provide any functionality not " -"available with single-quoted strings, they are useful for a number of " -"reasons. They allow you to include unescaped single and double quotes " -"within a string and they can span multiple lines without the use of the " -"continuation character, making them especially useful when writing " -"docstrings." -msgstr "" -"Chaîne qui est délimitée par trois guillemets simples (``'``) ou trois " -"guillemets doubles (``\"``). Bien qu'elle ne fournisse aucune fonctionnalité " -"qui ne soit pas disponible avec une chaîne entre guillemets, elle est utile " -"pour de nombreuses raisons. Elle vous autorise à insérer des guillemets " -"simples et doubles dans une chaîne sans avoir à les protéger et elle peut " -"s'étendre sur plusieurs lignes sans avoir à terminer chaque ligne par un " -"``\\``. Elle est ainsi particulièrement utile pour les chaînes de " -"documentation (*docstrings*)." - -#: glossary.rst:1623 -msgid "type" -msgstr "type" - -#: glossary.rst:1625 -#, fuzzy -msgid "" -"The type of a Python object determines what kind of object it is; every " -"object has a type. An object's type is accessible as " -"its :attr:`~object.__class__` attribute or can be retrieved with " -"``type(obj)``." -msgstr "" -"Le type d'un objet Python détermine quel genre d'objet c'est. Tous les " -"objets ont un type. Le type d'un objet peut être obtenu via son " -"attribut :attr:`~instance.__class__` ou via ``type(obj)``." - -#: glossary.rst:1629 -msgid "type alias" -msgstr "alias de type" - -#: glossary.rst:1631 -msgid "A synonym for a type, created by assigning the type to an identifier." -msgstr "Synonyme d'un type, créé en affectant le type à un identifiant." - -#: glossary.rst:1633 -msgid "" -"Type aliases are useful for simplifying :term:`type hints `. For " -"example::" -msgstr "" -"Les alias de types sont utiles pour simplifier les :term:`indications de " -"types `. Par exemple ::" - -#: glossary.rst:1640 -msgid "could be made more readable like this::" -msgstr "pourrait être rendu plus lisible comme ceci ::" - -#: glossary.rst:1661 -msgid "See :mod:`typing` and :pep:`484`, which describe this functionality." -msgstr "" -"Voir :mod:`typing` et la :pep:`484`, qui décrivent cette fonctionnalité." - -#: glossary.rst:1648 -msgid "type hint" -msgstr "indication de type" - -#: glossary.rst:1650 -msgid "" -"An :term:`annotation` that specifies the expected type for a variable, a " -"class attribute, or a function parameter or return value." -msgstr "" -"L':term:`annotation ` qui spécifie le type attendu pour une " -"variable, un attribut de classe, un paramètre de fonction ou une valeur de " -"retour." - -#: glossary.rst:1653 -#, fuzzy -msgid "" -"Type hints are optional and are not enforced by Python but they are useful " -"to :term:`static type checkers `. They can also aid " -"IDEs with code completion and refactoring." -msgstr "" -"Les indications de type sont facultatives et ne sont pas indispensables à " -"l'interpréteur Python, mais elles sont utiles aux outils d'analyse de type " -"statique et aident les IDE à compléter et à réusiner (*code refactoring* en " -"anglais) le code." - -#: glossary.rst:1657 -msgid "" -"Type hints of global variables, class attributes, and functions, but not " -"local variables, can be accessed using :func:`typing.get_type_hints`." -msgstr "" -"Les indications de type de variables globales, d'attributs de classe et de " -"fonctions, mais pas de variables locales, peuvent être consultées en " -"utilisant :func:`typing.get_type_hints`." - -#: glossary.rst:1662 -msgid "universal newlines" -msgstr "retours à la ligne universels" - -#: glossary.rst:1664 -msgid "" -"A manner of interpreting text streams in which all of the following are " -"recognized as ending a line: the Unix end-of-line convention ``'\\n'``, the " -"Windows convention ``'\\r\\n'``, and the old Macintosh convention " -"``'\\r'``. See :pep:`278` and :pep:`3116`, as well " -"as :func:`bytes.splitlines` for an additional use." -msgstr "" -"Une manière d'interpréter des flux de texte dans lesquels sont reconnues " -"toutes les fins de ligne suivantes : la convention Unix ``'\\n'``, la " -"convention Windows ``'\\r\\n'`` et l'ancienne convention Macintosh " -"``'\\r'``. Voir la :pep:`278` et la :pep:`3116`, ainsi que la " -"fonction :func:`bytes.splitlines` pour d'autres usages." - -#: glossary.rst:1669 -msgid "variable annotation" -msgstr "annotation de variable" - -#: glossary.rst:1671 -msgid "An :term:`annotation` of a variable or a class attribute." -msgstr ":term:`annotation` d'une variable ou d'un attribut de classe." - -#: glossary.rst:1673 -msgid "" -"When annotating a variable or a class attribute, assignment is optional::" -msgstr "" -"Lorsque vous annotez une variable ou un attribut de classe, l'affectation " -"est facultative ::" - -#: glossary.rst:1678 -msgid "" -"Variable annotations are usually used for :term:`type hints `: " -"for example this variable is expected to take :class:`int` values::" -msgstr "" -"Les annotations de variables sont généralement utilisées pour " -"des :term:`indications de types ` : par exemple, cette variable " -"devrait prendre des valeurs de type :class:`int` ::" - -#: glossary.rst:1684 -msgid "Variable annotation syntax is explained in section :ref:`annassign`." -msgstr "" -"La syntaxe d'annotation de variable est expliquée dans la " -"section :ref:`annassign`." - -#: glossary.rst:1686 -msgid "" -"See :term:`function annotation`, :pep:`484` and :pep:`526`, which describe " -"this functionality. Also see :ref:`annotations-howto` for best practices on " -"working with annotations." -msgstr "" -"Reportez-vous à :term:`annotation de fonction`, à " -"la :pep:`484` et à la :pep:`526` qui décrivent cette fonctionnalité. Voir " -"aussi :ref:`annotations-howto` sur les bonnes pratiques concernant les " -"annotations." - -#: glossary.rst:1690 -msgid "virtual environment" -msgstr "environnement virtuel" - -#: glossary.rst:1692 -msgid "" -"A cooperatively isolated runtime environment that allows Python users and " -"applications to install and upgrade Python distribution packages without " -"interfering with the behaviour of other Python applications running on the " -"same system." -msgstr "" -"Environnement d'exécution isolé (en mode coopératif) qui permet aux " -"utilisateurs de Python et aux applications d'installer et de mettre à jour " -"des paquets sans interférer avec d'autres applications Python fonctionnant " -"sur le même système." - -#: glossary.rst:1697 -msgid "See also :mod:`venv`." -msgstr "Voir aussi :mod:`venv`." - -#: glossary.rst:1698 -msgid "virtual machine" -msgstr "machine virtuelle" - -#: glossary.rst:1700 -msgid "" -"A computer defined entirely in software. Python's virtual machine executes " -"the :term:`bytecode` emitted by the bytecode compiler." -msgstr "" -"Ordinateur défini entièrement par du logiciel. La machine virtuelle " -"(*virtual machine*) de Python exécute le :term:`code intermédiaire " -"` produit par le compilateur de *bytecode*." - -#: glossary.rst:1702 -#, fuzzy -msgid "walrus operator" -msgstr "itérateur asynchrone" - -#: glossary.rst:1704 -msgid "" -"A light-hearted way to refer to the :ref:`assignment expression ` operator ``:=`` because it looks a bit like a walrus if you " -"turn your head." -msgstr "" - -#: glossary.rst:1707 -msgid "Zen of Python" -msgstr "Le zen de Python" - -#: glossary.rst:1709 -msgid "" -"Listing of Python design principles and philosophies that are helpful in " -"understanding and using the language. The listing can be found by typing " -"\"``import this``\" at the interactive prompt." -msgstr "" -"Liste de principes et de préceptes utiles pour comprendre et utiliser le " -"langage. Cette liste peut être obtenue en tapant \"``import this``\" dans " -"une invite Python interactive." - -#~ msgid "" -#~ "Mutable objects can change their value but keep their :func:`id`. See " -#~ "also :term:`immutable`." -#~ msgstr "" -#~ "Un objet mutable peut changer de valeur tout en gardant le " -#~ "même :func:`id`. Voir aussi :term:`immuable`." - -#~ msgid "" -#~ "An object usually containing a portion of a :term:`sequence`. A slice is " -#~ "created using the subscript notation, ``[]`` with colons between numbers " -#~ "when several are given, such as in ``variable_name[1:3:5]``. The bracket " -#~ "(subscript) notation uses :class:`slice` objects internally." -#~ msgstr "" -#~ "(*slice* en anglais), un objet contenant habituellement une portion " -#~ "de :term:`séquence`. Une tranche est créée en utilisant la notation " -#~ "``[]`` avec des ``:`` entre les nombres lorsque plusieurs sont fournis, " -#~ "comme dans ``variable_name[1:3:5]``. Cette notation utilise des " -#~ "objets :class:`slice` en interne." - -#~ msgid "The :const:`Ellipsis` built-in constant." -#~ msgstr "La constante :const:`Ellipsis`." - -#, fuzzy -#~ msgid "" -#~ "An object which controls the environment seen in a :keyword:`with` " -#~ "statement by defining :meth:`~object.__enter__` " -#~ "and :meth:`~object.__exit__` methods. See :pep:`343`." -#~ msgstr "" -#~ "Objet contrôlant l'environnement à l'intérieur d'un bloc :keyword:`with` " -#~ "en définissant les méthodes :meth:`__enter__` et :meth:`__exit__`. " -#~ "Consultez la :pep:`343`." - -#~ msgid "" -#~ "A variable which can have different values depending on its context. This " -#~ "is similar to Thread-Local Storage in which each execution thread may " -#~ "have a different value for a variable. However, with context variables, " -#~ "there may be several contexts in one execution thread and the main usage " -#~ "for context variables is to keep track of variables in concurrent " -#~ "asynchronous tasks. See :mod:`contextvars`." -#~ msgstr "" -#~ "Une variable qui peut avoir des valeurs différentes en fonction de son " -#~ "contexte. Cela est similaire au stockage par fil d’exécution (*Thread " -#~ "Local Storage* en anglais) dans lequel chaque fil d’exécution peut avoir " -#~ "une valeur différente pour une variable. Toutefois, avec les variables de " -#~ "contexte, il peut y avoir plusieurs contextes dans un fil d’exécution et " -#~ "l’utilisation principale pour les variables de contexte est de garder une " -#~ "trace des variables dans les tâches asynchrones concourantes. " -#~ "Voir :mod:`contextvars`." - -#, fuzzy -#~ msgid "C-contiguous" -#~ msgstr "contigu" - -#, fuzzy -#~ msgid "Fortran contiguous" -#~ msgstr "contigu" - -#, fuzzy -#~ msgid "special" -#~ msgstr "méthode spéciale" - -#~ msgid "2to3" -#~ msgstr "2to3" - -#~ msgid "" -#~ "A tool that tries to convert Python 2.x code to Python 3.x code by " -#~ "handling most of the incompatibilities which can be detected by parsing " -#~ "the source and traversing the parse tree." -#~ msgstr "" -#~ "Outil qui essaie de convertir du code pour Python 2.x en code pour Python " -#~ "3.x en gérant la plupart des incompatibilités qui peuvent être détectées " -#~ "en analysant la source et parcourant son arbre syntaxique." - -#~ msgid "" -#~ "2to3 is available in the standard library as :mod:`lib2to3`; a standalone " -#~ "entry point is provided as :file:`Tools/scripts/2to3`. See :ref:`2to3-" -#~ "reference`." -#~ msgstr "" -#~ "*2to3* est disponible dans la bibliothèque standard sous le nom " -#~ "de :mod:`lib2to3` ; un point d’entrée indépendant est fourni " -#~ "via :file:`Tools/scripts/2to3`. Cf. :ref:`2to3-reference`." - -#~ msgid "" -#~ "Past efforts to create a \"free-threaded\" interpreter (one which locks " -#~ "shared data at a much finer granularity) have not been successful because " -#~ "performance suffered in the common single-processor case. It is believed " -#~ "that overcoming this performance issue would make the implementation much " -#~ "more complicated and therefore costlier to maintain." -#~ msgstr "" -#~ "Les tentatives précédentes d'implémenter un interpréteur Python avec une " -#~ "granularité de verrouillage plus fine ont toutes échouées, à cause de " -#~ "leurs mauvaises performances dans le cas d'un processeur unique. Il est " -#~ "admis que corriger ce problème de performance induit mènerait à une " -#~ "implémentation beaucoup plus compliquée et donc plus coûteuse à maintenir." - -#~ msgid "" -#~ "Python uses the :term:`filesystem encoding and error handler` to convert " -#~ "between Unicode filenames and bytes filenames." -#~ msgstr "" -#~ "Python utilise l':term:`encodage du système de fichier et gestionnaire " -#~ "d'erreur` pour les conversions de " -#~ "noms de fichier entre Unicode et octets." - -#~ msgid "A codec which encodes Unicode strings to bytes." -#~ msgstr "" -#~ "Codec (codeur-décodeur) qui convertit des chaînes de caractères Unicode " -#~ "en octets (classe *bytes*)." - -#~ msgid "coercion" -#~ msgstr "coercition" - -#~ msgid "" -#~ "The implicit conversion of an instance of one type to another during an " -#~ "operation which involves two arguments of the same type. For example, " -#~ "``int(3.15)`` converts the floating point number to the integer ``3``, " -#~ "but in ``3+4.5``, each argument is of a different type (one int, one " -#~ "float), and both must be converted to the same type before they can be " -#~ "added or it will raise a :exc:`TypeError`. Without coercion, all " -#~ "arguments of even compatible types would have to be normalized to the " -#~ "same value by the programmer, e.g., ``float(3)+4.5`` rather than just " -#~ "``3+4.5``." -#~ msgstr "" -#~ "Conversion implicite d'une instance d'un type vers un autre lors d'une " -#~ "opération dont les deux opérandes doivent être de même type. Par exemple " -#~ "``int(3.15)`` convertit explicitement le nombre à virgule flottante en " -#~ "nombre entier ``3``. Mais dans l'opération ``3 + 4.5``, les deux " -#~ "opérandes sont d'un type différent (un entier et un nombre à virgule " -#~ "flottante), alors qu'ils doivent avoir le même type pour être additionnés " -#~ "(sinon une exception :exc:`TypeError` serait levée). Sans coercition, " -#~ "tous les opérandes, même de types compatibles, devraient être convertis " -#~ "(on parle aussi de *cast*) explicitement par le développeur, par " -#~ "exemple : ``float(3) + 4.5`` au lieu du simple ``3 + 4.5``." - -#~ msgid "" -#~ "See :pep:`483` for more details, and :mod:`typing` or :ref:`generic alias " -#~ "type ` for its uses." -#~ msgstr "" -#~ "Voir la :pep:`483` pour plus de détails, et :mod:`typing` ou :ref:`alias " -#~ "générique de type ` pour ses utilisations." - -#~ msgid "" -#~ "A pseudo-module which programmers can use to enable new language features " -#~ "which are not compatible with the current interpreter." -#~ msgstr "" -#~ "Pseudo-module que les développeurs peuvent utiliser pour activer de " -#~ "nouvelles fonctionnalités du langage qui ne sont pas compatibles avec " -#~ "l'interpréteur utilisé." - -#~ msgid "" -#~ "By importing the :mod:`__future__` module and evaluating its variables, " -#~ "you can see when a new feature was first added to the language and when " -#~ "it becomes the default::" -#~ msgstr "" -#~ "En important le module :mod:`__future__` et en affichant ses variables, " -#~ "vous pouvez voir à quel moment une nouvelle fonctionnalité a été rajoutée " -#~ "dans le langage et quand elle devient le comportement par défaut ::" diff --git a/howto/a-conceptual-overview-of-asyncio.po b/howto/a-conceptual-overview-of-asyncio.po deleted file mode 100644 index 878910a847..0000000000 --- a/howto/a-conceptual-overview-of-asyncio.po +++ /dev/null @@ -1,547 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: howto/a-conceptual-overview-of-asyncio.rst:5 -msgid "A conceptual overview of :mod:`!asyncio`" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:7 -msgid "" -"This :ref:`HOWTO ` article seeks to help you build a sturdy mental " -"model of how :mod:`asyncio` fundamentally works, helping you understand the " -"how and why behind the recommended patterns." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:11 -msgid "" -"You might be curious about some key :mod:`!asyncio` concepts. By the end of " -"this article, you'll be able to comfortably answer these questions:" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:14 -msgid "What's happening behind the scenes when an object is awaited?" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:15 -msgid "" -"How does :mod:`!asyncio` differentiate between a task which doesn't need CPU " -"time (such as a network request or file read) as opposed to a task that does " -"(such as computing n-factorial)?" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:18 -msgid "" -"How to write an asynchronous variant of an operation, such as an async sleep " -"or database request." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:23 -msgid "" -"The `guide `_ that inspired this HOWTO article, by Alexander Nordin." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:25 -msgid "" -"This in-depth `YouTube tutorial series `_ on ``asyncio`` " -"created by Python core team member, Łukasz Langa." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:28 -msgid "" -"`500 Lines or Less: A Web Crawler With asyncio Coroutines `_ by A. " -"Jesse Jiryu Davis and Guido van Rossum." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:34 -msgid "A conceptual overview part 1: the high-level" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:36 -msgid "" -"In part 1, we'll cover the main, high-level building blocks of :mod:`!" -"asyncio`: the event loop, coroutine functions, coroutine objects, tasks, and " -"``await``." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:41 -#, fuzzy -msgid "Event loop" -msgstr "Boucle d'évènements" - -#: howto/a-conceptual-overview-of-asyncio.rst:43 -msgid "" -"Everything in :mod:`!asyncio` happens relative to the event loop. It's the " -"star of the show, but prefers to work behind the scenes, managing and " -"coordinating resources. It's like an orchestra conductor. Some power is " -"explicitly granted to it, but a lot of its ability to get things done comes " -"from the respect and cooperation of its band members." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:50 -msgid "" -"In more technical terms, the event loop contains a collection of jobs to be " -"run. Some jobs are added directly by you, and some indirectly by :mod:`!" -"asyncio`. The event loop takes a job from its backlog of work and invokes it " -"(or \"gives it control\"), similar to calling a function, and then that job " -"runs. Once it pauses or completes, it returns control to the event loop. The " -"event loop will then select another job from its pool and invoke it. You can " -"*roughly* think of the collection of jobs as a queue: jobs are added and " -"then processed one at a time, generally (but not always) in order. This " -"process repeats indefinitely, with the event loop cycling endlessly onwards. " -"If there are no more jobs pending execution, the event loop is smart enough " -"to rest and avoid needlessly wasting CPU cycles, and will come back when " -"there's more work to be done, such as when I/O operations complete or timers " -"expire." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:64 -msgid "" -"Effective execution relies on jobs sharing well and cooperating; a greedy " -"job could hog control and leave the other jobs to starve, rendering the " -"overall event loop approach rather useless." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:79 -msgid "Asynchronous functions and coroutines" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:81 -msgid "This is a basic, boring Python function::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:90 -msgid "Calling a regular function invokes its logic or body::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:96 -msgid "" -"The :ref:`async def `, as opposed to just a plain ``def``, makes " -"this an asynchronous function (or \"coroutine function\"). Calling it " -"creates and returns a :ref:`coroutine ` object." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:108 -msgid "" -"Calling the async function, ``loudmouth_penguin``, does not execute the " -"print statement; instead, it creates a coroutine object::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:114 -msgid "" -"The terms \"coroutine function\" and \"coroutine object\" are often " -"conflated as coroutine. That can be confusing! In this article, coroutine " -"specifically refers to a coroutine object, or more precisely, an instance " -"of :class:`types.CoroutineType` (native coroutine). Note that coroutines can " -"also exist as instances of :class:`collections.abc.Coroutine` -- a " -"distinction that matters for type checking." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:123 -msgid "" -"A coroutine represents the function's body or logic. A coroutine has to be " -"explicitly started; again, merely creating the coroutine does not start it. " -"Notably, the coroutine can be paused and resumed at various points within " -"the function's body. That pausing and resuming ability is what allows for " -"asynchronous behavior!" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:130 -msgid "" -"Coroutines and coroutine functions were built by leveraging the " -"functionality of :term:`generators ` " -"and :term:`generator functions `. Recall, a generator function is " -"a function that :keyword:`yield`\\s, like this one::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:146 -msgid "" -"Similar to a coroutine function, calling a generator function does not run " -"it. Instead, it creates a generator object::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:152 -msgid "" -"You can proceed to the next ``yield`` of a generator by using the built-in " -"function :func:`next`. In other words, the generator runs, then pauses. For " -"example::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:167 -msgid "Tasks" -msgstr "Tâches" - -#: howto/a-conceptual-overview-of-asyncio.rst:169 -msgid "" -"Roughly speaking, :ref:`tasks ` are coroutines (not " -"coroutine functions) tied to an event loop. A task also maintains a list of " -"callback functions whose importance will become clear in a moment when we " -"discuss :keyword:`await`." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:174 -msgid "" -"Creating a task automatically schedules it for execution (by adding a " -"callback to run it in the event loop's to-do list, that is, collection of " -"jobs). The recommended way to create tasks is " -"via :func:`asyncio.create_task`." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:178 -msgid "" -":mod:`!asyncio` automatically associates tasks with the event loop for you. " -"This automatic association was purposely designed into :mod:`!asyncio` for " -"the sake of simplicity. Without it, you'd have to keep track of the event " -"loop object and pass it to any coroutine function that wants to create " -"tasks, adding redundant clutter to your code." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:191 -msgid "" -"Earlier, we manually created the event loop and set it to run forever. In " -"practice, it's recommended to use (and common to see) :func:`asyncio.run`, " -"which takes care of managing the event loop and ensuring the provided " -"coroutine finishes before advancing. For example, many async programs follow " -"this setup::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:209 -msgid "" -"It's important to be aware that the task itself is not added to the event " -"loop, only a callback to the task is. This matters if the task object you " -"created is garbage collected before it's called by the event loop. For " -"example, consider this program:" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:229 -msgid "" -"Because there's no reference to the task object created on line 5, it " -"*might* be garbage collected before the event loop invokes it. Later " -"instructions in the coroutine ``main()`` hand control back to the event loop " -"so it can invoke other jobs. When the event loop eventually tries to run the " -"task, it might fail and discover the task object does not exist! This can " -"also happen even if a coroutine keeps a reference to a task but completes " -"before that task finishes. When the coroutine exits, local variables go out " -"of scope and may be subject to garbage collection. In practice, ``asyncio`` " -"and Python's garbage collector work pretty hard to ensure this sort of thing " -"doesn't happen. But that's no reason to be reckless!" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:245 -msgid "await" -msgstr "await" - -#: howto/a-conceptual-overview-of-asyncio.rst:247 -msgid "" -":keyword:`await` is a Python keyword that's commonly used in one of two " -"different ways::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:253 -msgid "" -"In a crucial way, the behavior of ``await`` depends on the type of object " -"being awaited." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:258 -msgid "Awaiting tasks" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:260 -msgid "" -"Awaiting a task will cede control from the current task or coroutine to the " -"event loop. In the process of relinquishing control, a few important things " -"happen. We'll use the following code example to illustrate::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:272 -msgid "" -"In this example, imagine the event loop has passed control to the start of " -"the coroutine ``plant_a_tree()``. As seen above, the coroutine creates a " -"task and then awaits it. The ``await dig_the_hole_task`` instruction adds a " -"callback (which will resume ``plant_a_tree()``) to the ``dig_the_hole_task`` " -"object's list of callbacks. And then, the instruction cedes control to the " -"event loop. Some time later, the event loop will pass control to " -"``dig_the_hole_task`` and the task will finish whatever it needs to do. Once " -"the task finishes, it will add its various callbacks to the event loop, in " -"this case, a call to resume ``plant_a_tree()``." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:283 -msgid "" -"Generally speaking, when the awaited task finishes (``dig_the_hole_task``), " -"the original task or coroutine (``plant_a_tree()``) is added back to the " -"event loop's to-do list to be resumed." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:287 -msgid "" -"This is a basic, yet reliable mental model. In practice, the control " -"handoffs are slightly more complex, but not by much. In part 2, we'll walk " -"through the details that make this possible." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:293 -msgid "Awaiting coroutines" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:295 -msgid "" -"**Unlike tasks, awaiting a coroutine does not hand control back to the event " -"loop!** Wrapping a coroutine in a task first, then awaiting that would cede " -"control. The behavior of ``await coroutine`` is effectively the same as " -"invoking a regular, synchronous Python function. Consider this program::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:320 -msgid "" -"The first statement in the coroutine ``main()`` creates ``task_b`` and " -"schedules it for execution via the event loop. Then, ``coro_a()`` is " -"repeatedly awaited. Control never cedes to the event loop, which is why we " -"see the output of all three ``coro_a()`` invocations before ``coro_b()``'s " -"output:" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:333 -msgid "" -"If we change ``await coro_a()`` to ``await asyncio.create_task(coro_a())``, " -"the behavior changes. The coroutine ``main()`` cedes control to the event " -"loop with that statement. The event loop then proceeds through its backlog " -"of work, calling ``task_b`` and then the task which wraps ``coro_a()`` " -"before resuming the coroutine ``main()``." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:347 -msgid "" -"This behavior of ``await coroutine`` can trip a lot of people up! That " -"example highlights how using only ``await coroutine`` could unintentionally " -"hog control from other tasks and effectively stall the event " -"loop. :func:`asyncio.run` can help you detect such occurrences via the " -"``debug=True`` flag, which enables :ref:`debug mode `. " -"Among other things, it will log any coroutines that monopolize execution for " -"100ms or longer." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:357 -msgid "" -"The design intentionally trades off some conceptual clarity around usage of " -"``await`` for improved performance. Each time a task is awaited, control " -"needs to be passed all the way up the call stack to the event loop. Then, " -"the event loop needs to manage its internal state and work through its " -"processing logic to resume the next job. That might sound minor, but in a " -"large program with many ``await``\\ s, that overhead can add up to a non-" -"negligible performance drag." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:368 -msgid "A conceptual overview part 2: the nuts and bolts" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:370 -msgid "" -"Part 2 goes into detail on the mechanisms :mod:`!asyncio` uses to manage " -"control flow. This is where the magic happens. You'll come away from this " -"section knowing what ``await`` does behind the scenes and how to make your " -"own asynchronous operators." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:378 -msgid "The inner workings of coroutines" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:380 -msgid "" -":mod:`!asyncio` leverages four components of Python to pass around control." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:383 -msgid "" -":meth:`coroutine.send(arg) ` is the method used to start or " -"resume a coroutine. If the coroutine was paused and is now being resumed, " -"the argument ``arg`` will be sent in as the return value of the ``yield`` " -"statement which originally paused it. If the coroutine is being used for the " -"first time (as opposed to being resumed), ``arg`` must be ``None``." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:419 -msgid "" -":ref:`yield `, as usual, pauses execution and returns control to " -"the caller. In the example above, the ``yield``, on line 3, is called by " -"``... = await rock`` on line 11. More broadly speaking, ``await`` calls " -"the :meth:`~object.__await__` method of the given object. ``await`` also " -"does one more very special thing: it propagates (or \"passes along\") any " -"``yield``\\ s it receives up the call chain. In this case, that's back to " -"``... = coroutine.send(None)`` on line 16." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:429 -msgid "" -"The coroutine is resumed via the ``coroutine.send(42)`` call on line 21. The " -"coroutine picks back up from where it ``yield``\\ ed (or paused) on line 3 " -"and executes the remaining statements in its body. When a coroutine " -"finishes, it raises a :exc:`StopIteration` exception with the return value " -"attached in the :attr:`~StopIteration.value` attribute." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:435 -msgid "That snippet produces this output:" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:447 -msgid "" -"It's worth pausing for a moment here and making sure you followed the " -"various ways that control flow and values were passed. A lot of important " -"ideas were covered and it's worth ensuring your understanding is firm." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:451 -msgid "" -"The only way to yield (or effectively cede control) from a coroutine is to " -"``await`` an object that ``yield``\\ s in its ``__await__`` method. That " -"might sound odd to you. You might be thinking:" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:455 -msgid "" -"1. What about a ``yield`` directly within the coroutine function? The " -"coroutine function becomes an :ref:`async generator function `, a different beast entirely." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:460 -msgid "" -"2. What about a :ref:`yield from ` within the coroutine function " -"to a (plain) generator? That causes the error: ``SyntaxError: yield from not " -"allowed in a coroutine.`` This was intentionally designed for the sake of " -"simplicity -- mandating only one way of using coroutines. Despite that, " -"``yield from`` and ``await`` effectively do the same thing. Initially " -"``yield`` was barred as well, but was re-accepted to allow for async " -"generators." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:471 -msgid "Futures" -msgstr "Futurs" - -#: howto/a-conceptual-overview-of-asyncio.rst:473 -msgid "" -"A :ref:`future ` is an object meant to represent a " -"computation's status and result. The term is a nod to the idea of something " -"still to come or not yet happened, and the object is a way to keep an eye on " -"that something." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:478 -msgid "" -"A future has a few important attributes. One is its state, which can be " -"either \"pending\", \"cancelled\", or \"done\". Another is its result, which " -"is set when the state transitions to done. Unlike a coroutine, a future does " -"not represent the actual computation to be done; instead, it represents the " -"status and result of that computation, kind of like a status light (red, " -"yellow, or green) or indicator." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:485 -msgid "" -":class:`asyncio.Task` subclasses :class:`asyncio.Future` in order to gain " -"these various capabilities. The prior section said tasks store a list of " -"callbacks, which wasn't entirely accurate. It's actually the ``Future`` " -"class that implements this logic, which ``Task`` inherits." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:492 -msgid "" -"Futures may also be used directly (not via tasks). Tasks mark themselves as " -"done when their coroutine is complete. Futures are much more versatile and " -"will be marked as done when you say so. In this way, they're the flexible " -"interface for you to make your own conditions for waiting and resuming." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:500 -msgid "A homemade asyncio.sleep" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:502 -msgid "" -"We'll go through an example of how you could leverage a future to create " -"your own variant of asynchronous sleep (``async_sleep``) which " -"mimics :func:`asyncio.sleep`." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:506 -msgid "" -"This snippet registers a few tasks with the event loop and then awaits the " -"task created by ``asyncio.create_task``, which wraps the ``async_sleep(3)`` " -"coroutine. We want that task to finish only after three seconds have " -"elapsed, but without preventing other tasks from running." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:537 -msgid "" -"Below, we use a future to enable custom control over when that task will be " -"marked as done. If :meth:`future.set_result() ` " -"(the method responsible for marking that future as done) is never called, " -"then this task will never finish. We've also enlisted the help of another " -"task, which we'll see in a moment, that will monitor how much time has " -"elapsed and, accordingly, call ``future.set_result()``." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:556 -msgid "" -"Below, we use a rather bare ``YieldToEventLoop()`` object to ``yield`` from " -"its ``__await__`` method, ceding control to the event loop. This is " -"effectively the same as calling ``asyncio.sleep(0)``, but this approach " -"offers more clarity, not to mention it's somewhat cheating to use " -"``asyncio.sleep`` when showcasing how to implement it!" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:562 -msgid "" -"As usual, the event loop cycles through its tasks, giving them control and " -"receiving control back when they pause or finish. The ``watcher_task``, " -"which runs the coroutine ``_sleep_watcher(...)``, will be invoked once per " -"full cycle of the event loop. On each resumption, it'll check the time and " -"if not enough has elapsed, then it'll pause once again and hand control back " -"to the event loop. Once enough time has elapsed, ``_sleep_watcher(...)`` " -"marks the future as done and completes by exiting its infinite ``while`` " -"loop. Given this helper task is only invoked once per cycle of the event " -"loop, you'd be correct to note that this asynchronous sleep will sleep *at " -"least* three seconds, rather than exactly three seconds. Note this is also " -"true of ``asyncio.sleep``." -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:591 -msgid "Here is the full program's output:" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:602 -msgid "" -"You might feel this implementation of asynchronous sleep was unnecessarily " -"convoluted. And, well, it was. The example was meant to showcase the " -"versatility of futures with a simple example that could be mimicked for more " -"complex needs. For reference, you could implement it without futures, like " -"so::" -msgstr "" - -#: howto/a-conceptual-overview-of-asyncio.rst:617 -msgid "" -"But that's all for now. Hopefully you're ready to more confidently dive into " -"some async programming or check out advanced topics in the :mod:`rest of the " -"documentation `." -msgstr "" diff --git a/howto/abi3t-migration.po b/howto/abi3t-migration.po deleted file mode 100644 index f89f363c29..0000000000 --- a/howto/abi3t-migration.po +++ /dev/null @@ -1,766 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: howto/abi3t-migration.rst:7 -msgid "Migrating to Stable ABI for free threading (``abi3t``)" -msgstr "" - -#: howto/abi3t-migration.rst:9 -msgid "" -"Starting with the 3.15 release, CPython supports a variant of the Stable ABI " -"that supports :term:`free-threaded ` Python: Stable ABI for " -"Free-Threaded Builds, or ``abi3t`` for short. This document describes how to " -"adapt C API extensions to support free threading." -msgstr "" - -#: howto/abi3t-migration.rst:15 -msgid "Why do this" -msgstr "" - -#: howto/abi3t-migration.rst:17 -msgid "" -"The typical reason to use Stable ABI is to reduce the number of artifacts " -"that you need to build and distribute for each version of your library." -msgstr "" - -#: howto/abi3t-migration.rst:20 -msgid "" -"Without the Stable ABI, you must build a separate shared library, and " -"typically a *wheel* distribution, for each feature version of CPython you " -"wish to support. For example, each tag in the following table represents a " -"separate library/wheel:" -msgstr "" - -#: howto/abi3t-migration.rst:49 howto/abi3t-migration.rst:69 -msgid "CPython version" -msgstr "" - -#: howto/abi3t-migration.rst:49 howto/abi3t-migration.rst:69 -msgid "Non-free-threaded" -msgstr "" - -#: howto/abi3t-migration.rst:49 howto/abi3t-migration.rst:69 -msgid "Free-threaded" -msgstr "" - -#: howto/abi3t-migration.rst:51 howto/abi3t-migration.rst:71 -msgid "3.12" -msgstr "" - -#: howto/abi3t-migration.rst:29 -msgid "``cpython-312``" -msgstr "" - -#: howto/abi3t-migration.rst:51 howto/abi3t-migration.rst:71 -msgid "---" -msgstr "" - -#: howto/abi3t-migration.rst:53 howto/abi3t-migration.rst:73 -msgid "3.13" -msgstr "" - -#: howto/abi3t-migration.rst:31 -msgid "``cpython-313``" -msgstr "" - -#: howto/abi3t-migration.rst:53 howto/abi3t-migration.rst:73 -msgid "``cpython-313t``" -msgstr "" - -#: howto/abi3t-migration.rst:55 howto/abi3t-migration.rst:75 -msgid "3.14" -msgstr "" - -#: howto/abi3t-migration.rst:33 -msgid "``cpython-314``" -msgstr "" - -#: howto/abi3t-migration.rst:55 howto/abi3t-migration.rst:75 -msgid "``cpython-314t``" -msgstr "" - -#: howto/abi3t-migration.rst:57 howto/abi3t-migration.rst:77 -msgid "3.15" -msgstr "" - -#: howto/abi3t-migration.rst:35 -msgid "``cpython-315``" -msgstr "" - -#: howto/abi3t-migration.rst:57 -msgid "``cpython-315t``" -msgstr "" - -#: howto/abi3t-migration.rst:59 howto/abi3t-migration.rst:79 -msgid "3.16" -msgstr "" - -#: howto/abi3t-migration.rst:37 -msgid "``cpython-316``" -msgstr "" - -#: howto/abi3t-migration.rst:59 -msgid "``cpython-316t``" -msgstr "" - -#: howto/abi3t-migration.rst:61 howto/abi3t-migration.rst:81 -msgid "Later versions" -msgstr "" - -#: howto/abi3t-migration.rst:39 -msgid ":samp:`cpython-3{XX}`" -msgstr "" - -#: howto/abi3t-migration.rst:61 -msgid ":samp:`cpython-3{XX}t`" -msgstr "" - -#: howto/abi3t-migration.rst:42 -msgid "" -"That's a lot of builds, especially when multiplied by the number of " -"supported platforms." -msgstr "" - -#: howto/abi3t-migration.rst:45 -msgid "" -"With the Stable ABI (``abi3``, introduced in CPython 3.2), a single " -"extension (per platform) can cover all *non-free-threaded* builds of CPython:" -msgstr "" - -#: howto/abi3t-migration.rst:51 -msgid "``abi3``" -msgstr "" - -#: howto/abi3t-migration.rst:64 -msgid "" -"The Stable ABI for free-threaded builds (``abi3t``), introduced in CPython " -"3.15, does the same for free-threaded builds. And it's compatible with non-" -"free-threaded ones as well:" -msgstr "" - -#: howto/abi3t-migration.rst:71 -msgid "``abi3`` *" -msgstr "" - -#: howto/abi3t-migration.rst:77 -msgid "``abi3t``" -msgstr "" - -#: howto/abi3t-migration.rst:84 -msgid "" -"\\* (As above, the ``abi3`` extension is compatible with all non-free-" -"threaded builds; even the 3.15+ ones that this table \"attributes\" to " -"``abi3t``.)" -msgstr "" - -#: howto/abi3t-migration.rst:88 -msgid "Why *not* do this" -msgstr "" - -#: howto/abi3t-migration.rst:90 -msgid "There are two main downsides to Stable ABI." -msgstr "" - -#: howto/abi3t-migration.rst:92 -msgid "" -"First, you extension may become slower, since Stable ABI prioritizes " -"compatibility over performance. The difference is usually not noticeable, " -"and often can be mitigated by using the same source to build both a Stable " -"ABI build and a few version-specific ones for \"tier 1\" CPython versions." -msgstr "" - -#: howto/abi3t-migration.rst:98 -msgid "" -"Second, not all of the C API is available. Extensions need to be ported to " -"build for Stable ABI, which may be difficult or, in rare cases, impossible." -msgstr "" - -#: howto/abi3t-migration.rst:102 -msgid "" -"Specifically, ``abi3t`` requires APIs added in CPython 3.15. If you want to " -"build your extension for older versions of CPython from the same source, you " -"have two main options:" -msgstr "" - -#: howto/abi3t-migration.rst:106 -msgid "Use preprocessor conditionals." -msgstr "" - -#: howto/abi3t-migration.rst:108 -msgid "" -"When following this guide, use ``#ifdef Py_TARGET_ABI3T`` blocks whenever " -"you are told to do a change that breaks the build on CPython versions you " -"care about. Keep the pre-existing code in ``#else`` blocks." -msgstr "" - -#: howto/abi3t-migration.rst:112 -msgid "" -"For hand-written C extensions, this approach is reasonable down to CPython " -"3.12, due to additions introduced in :pep:`697`. Keeping compatibility with " -"3.11 and below may be worth it for code generators (for example, Cython)." -msgstr "" - -#: howto/abi3t-migration.rst:117 -msgid "" -"Do not port to ``abi3t``, and continue building separate extensions for each " -"version of CPython, until you can drop support for the older versions." -msgstr "" - -#: howto/abi3t-migration.rst:120 -msgid "" -"This is a valid approach. Not all extensions need to switch to ``abi3t`` " -"right now." -msgstr "" - -#: howto/abi3t-migration.rst:125 -msgid "Prerequisites" -msgstr "" - -#: howto/abi3t-migration.rst:127 -msgid "" -"This guide assumes that you have an extension written directly in C (or C+" -"+), which you want to port to ``abi3t``." -msgstr "" - -#: howto/abi3t-migration.rst:130 -msgid "" -"If your extenstion uses a code generator (like Cython) or language binding " -"(like PyO3), it's best to wait until that tool has support for ``abi3t``. If " -"you maintain such a tool, you might be able to adapt the instructions here " -"for your tool." -msgstr "" - -#: howto/abi3t-migration.rst:136 -msgid "Non-free-threaded Stable ABI" -msgstr "" - -#: howto/abi3t-migration.rst:138 -msgid "" -"Your extension should support the Stable ABI (``abi3t``). If not, either " -"port it first, or follow this guide but be prepared to fix issues it does " -"not mention." -msgstr "" - -#: howto/abi3t-migration.rst:143 -msgid "Free-threading support" -msgstr "" - -#: howto/abi3t-migration.rst:145 -msgid "" -"While it's technically not a hard prerequisite, you will most likely want to " -"prepare your extension for free threading before you port it to ``abi3t``. " -"See :ref:`freethreading-extensions-howto` for instructions." -msgstr "" - -#: howto/abi3t-migration.rst:151 -msgid "" -"`Porting Extension Modules to Support Free-Threading `__: A community-maintained porting guide for " -"extension authors." -msgstr "" - -#: howto/abi3t-migration.rst:156 -msgid "Isolating extension modules" -msgstr "" - -#: howto/abi3t-migration.rst:158 -msgid "" -"Your module should use :ref:`multi-phase initialization `, and it should either be isolated or limit itself to be " -"loaded at most once per process. If it is not your case, " -"follow :ref:`isolating-extensions-howto` first. (See the :ref:`opt-out " -"section ` for a shortcut.)" -msgstr "" - -#: howto/abi3t-migration.rst:165 -msgid "Avoiding variable-sized types" -msgstr "" - -#: howto/abi3t-migration.rst:167 -msgid "" -"If your extension defines variable-sized types " -"(using :c:macro:`Py_tp_itemsize` or :c:member:`PyTypeObject.tp_itemsize`), " -"it cannot be ported to ``abi3t`` 3.15." -msgstr "" - -#: howto/abi3t-migration.rst:173 -msgid "Setting up the build" -msgstr "" - -#: howto/abi3t-migration.rst:175 -msgid "" -"If you use a build tool (such as setuptools, meson-python, scikit-build-" -"core), search its documentation for a way to select ``abi3t``. At the time " -"of writing, not all of them have this; but if your tool does, use it. You " -"may want to verify that it set the right flag by temporarily adding the " -"following just after ``#include ``::" -msgstr "" - -#: howto/abi3t-migration.rst:186 -msgid "" -"This should result in a different error than \"``abt3t`` define is not set\"." -msgstr "" - -#: howto/abi3t-migration.rst:190 -msgid "" -"If your build tool doesn't support ``abi3t`` yet, set the following macro " -"before including ``Python.h``::" -msgstr "" - -#: howto/abi3t-migration.rst:195 -msgid "or specify it as a compiler flag, for example::" -msgstr "" - -#: howto/abi3t-migration.rst:199 -msgid "" -"Once your extension builds with this setting, it will be compatible with " -"CPython 3.15 and above." -msgstr "" - -#: howto/abi3t-migration.rst:202 -msgid "" -"If you set this macro manually, you will later need to name and tag the " -"resulting extension manually as well. This is covered in :ref:`abi3t-" -"migration-tagging` below." -msgstr "" - -#: howto/abi3t-migration.rst:206 -msgid "" -"This guide will ask you to make a series of changes. After each one, verify " -"that your extension still builds in the original (non-``abi3t``) " -"configuration, and ideally run tests on all Python versions you support. " -"This will ensure that nothing breaks as you are porting." -msgstr "" - -#: howto/abi3t-migration.rst:214 -msgid "Module export hook" -msgstr "" - -#: howto/abi3t-migration.rst:216 -msgid "" -"Unless you've done this step already, your extension module defines " -"a :ref:`module initialization function ` " -"named :samp:`PyInit_{}`. You will need to port it to " -"a :ref:`module export hook `, :samp:`PyModExport_{}`, a feature added in CPython 3.15 " -"in :pep:`793`." -msgstr "" - -#: howto/abi3t-migration.rst:223 -msgid "" -"Your existing init function should look like this (with your own names for " -"```` and ````):" -msgstr "" - -#: howto/abi3t-migration.rst:235 -msgid "" -"If there is some code before the ``return``, move it to " -"a :c:macro:`Py_mod_create` or :c:macro:`Py_mod_exec` slot function. See " -"the :ref:`PyInit documentation ` for related information." -msgstr "" - -#: howto/abi3t-migration.rst:239 -msgid "" -"The function references a ``PyModuleDef`` object (```` in the code " -"above). Its definition should be similar to the following, with different " -"values and perhaps some fields unnnamed or left out:" -msgstr "" - -#: howto/abi3t-migration.rst:259 -msgid "" -"Remove this definition and the ``PyInit`` function (or put them in an " -"``#ifndef Py_TARGET_ABI3T`` block, to retain backwards compatibility), and " -"replace them with the following:" -msgstr "" - -#: howto/abi3t-migration.rst:287 -msgid "" -"Leave out any fields that were missing (except the " -"new :c:macro:`Py_mod_abi`), and substitute your own values." -msgstr "" - -#: howto/abi3t-migration.rst:290 -msgid "" -"See the :c:type:`PySlot` and :c:ref:`export hook ` " -"documentation for details on this API." -msgstr "" - -#: howto/abi3t-migration.rst:294 -msgid "Associated ``PyModuleDef``" -msgstr "" - -#: howto/abi3t-migration.rst:296 -msgid "" -"Since the new API does not use a :c:type:`!PyModuleDef` structure, a " -"definition will not be associated with the resulting module. This changes " -"the behavior of the following functions:" -msgstr "" - -#: howto/abi3t-migration.rst:300 -msgid ":c:func:`PyModule_GetDef`" -msgstr "" - -#: howto/abi3t-migration.rst:301 -msgid ":c:func:`PyType_GetModuleByDef`" -msgstr "" - -#: howto/abi3t-migration.rst:303 -msgid "" -"Check your code for these. If you do not use them, you can skip this section." -msgstr "" - -#: howto/abi3t-migration.rst:306 -msgid "These functions are typically used for two purposes:" -msgstr "" - -#: howto/abi3t-migration.rst:308 -msgid "" -"To get the definition the module was created with. This is no longer " -"possible using the new API. Modules no longer keep a reference to the " -"definition, so you will need to figure out a different way to pass the " -"relevant data around." -msgstr "" - -#: howto/abi3t-migration.rst:315 -msgid "" -"To check if a given module object is “yours”. This use case is now served " -"by :ref:`module tokens ` -- opaque pointers that identify " -"a module. To use a token, declare (or reuse) a unique static variable, for " -"example:" -msgstr "" - -#: howto/abi3t-migration.rst:325 -msgid "" -"and add a pointer to it in a new entry to your module's ``PySlot`` array:" -msgstr "" - -#: howto/abi3t-migration.rst:337 -msgid "Then, switch from :c:func:`PyModule_GetDef` calls such as:" -msgstr "" - -#: howto/abi3t-migration.rst:344 -msgid "" -"to :c:func:`PyModule_GetToken` (which uses an output argument and may fail " -"with an exception):" -msgstr "" - -#: howto/abi3t-migration.rst:355 -msgid "and from :c:func:`PyType_GetModuleByDef` calls such as:" -msgstr "" - -#: howto/abi3t-migration.rst:363 -msgid "" -"to :c:func:`PyType_GetModuleByToken` (which returns a strong reference):" -msgstr "" - -#: howto/abi3t-migration.rst:373 -msgid "``PyObject`` opaqueness" -msgstr "" - -#: howto/abi3t-migration.rst:375 -msgid "" -"The :c:type:`PyObject` and :c:type:`PyVarObject` structures are opaque in " -"``abi3t``." -msgstr "" - -#: howto/abi3t-migration.rst:378 -msgid "" -"Accessing their members is prohibited. If you do this, switch to getter/" -"setter functions mentioned in their documentation:" -msgstr "" - -#: howto/abi3t-migration.rst:382 -msgid ":c:member:`PyObject.ob_type`" -msgstr "" - -#: howto/abi3t-migration.rst:383 -msgid ":c:member:`PyObject.ob_refcnt`" -msgstr "" - -#: howto/abi3t-migration.rst:384 -msgid ":c:member:`PyVarObject.ob_size`" -msgstr "" - -#: howto/abi3t-migration.rst:386 -msgid "" -"Also, the *size* of the :c:type:`PyObject` structures is unknown to the " -"compiler. It can -- and *does* -- change between different CPython builds." -msgstr "" - -#: howto/abi3t-migration.rst:392 -msgid "" -"While the size is available at runtime (for example as " -"``sys.getsizeof(object())`` in Python code), you should resist the " -"temptation to calculate pointer offsets from it. The object memory layout is " -"subject to change in future ``abi3t`` implementations." -msgstr "" - -#: howto/abi3t-migration.rst:400 -msgid "Custom type definitions" -msgstr "" - -#: howto/abi3t-migration.rst:402 -msgid "" -"Since :c:type:`!PyObject` is opaque, the traditional way of defining custom " -"types no longer works:" -msgstr "" - -#: howto/abi3t-migration.rst:420 -msgid "" -"Most likely, all your class definitions, *and* all code that accesses your " -"classes' data, will need to be rewritten. This will probably be the biggest " -"change you need to support ``abi3t``." -msgstr "" - -#: howto/abi3t-migration.rst:424 -msgid "" -"For each such type, instead of defining a ``struct`` for the entire " -"instance, define one with only the “additional” fields -- ones specific to " -"your class, not its superclasses:" -msgstr "" - -#: howto/abi3t-migration.rst:435 -msgid "" -"Change the name. Almost all code that uses the struct will need to change " -"(notably, pointers to the new structure cannot be cast to/from " -"``PyObject*``), and changing the name will highlight the usages as compiler " -"errors. (If you use ``typeof``, C++ ``auto``, or similar ways to avoid " -"typing the type name, this won't work. Be extra careful, and consider " -"running tools to detect undefined behavior.)" -msgstr "" - -#: howto/abi3t-migration.rst:443 -msgid "" -"Then, to create the class, use *negative* ``basicsize`` to indicate “extra” " -"storage space rather than *total* instance size:" -msgstr "" - -#: howto/abi3t-migration.rst:455 -msgid "" -"If you use :c:macro:`Py_tp_members`, set the :c:macro:`Py_RELATIVE_OFFSET` " -"flag on each member and specify the :c:member:`~PyMemberDef.offset` relative " -"to your new struct." -msgstr "" - -#: howto/abi3t-migration.rst:461 -msgid "Custom type data access" -msgstr "" - -#: howto/abi3t-migration.rst:463 -msgid "" -"Then comes the hard part: in all code that needs to access this struct, you " -"will need an additional :c:func:`PyObject_GetTypeData` call to retrieve a " -"``CustomObjectData *`` pointer from ``PyObject *``:" -msgstr "" - -#: howto/abi3t-migration.rst:473 -msgid "" -"Note that this call requires the *type object* for your class (``cls``)." -msgstr "" - -#: howto/abi3t-migration.rst:475 -msgid "" -"If your class is not subclassable (that is, it does not use " -"the :c:macro:`Py_TPFLAGS_BASETYPE` flag), ``cls`` will be ``Py_TYPE(obj)``. " -"Otherwise, **DO NOT USE** ``Py_TYPE`` with :c:func:`!PyObject_GetTypeData`: " -"it might return memory reserved to an unrelated subclass! For example, if a " -"user makes a subclass like this:" -msgstr "" - -#: howto/abi3t-migration.rst:486 -msgid "" -"then ``Py_TYPE(obj)`` is ``YourCustomClass``, and the underlying memory may " -"look like this:" -msgstr "" - -#: howto/abi3t-migration.rst:499 -msgid "" -"(Ellipses indicate possible padding. Note that this memory layout is not " -"guaranteed: future versions of Python may add different padding or even " -"switch the order of the structures.)" -msgstr "" - -#: howto/abi3t-migration.rst:503 -msgid "There are two main ways to get the right class:" -msgstr "" - -#: howto/abi3t-migration.rst:505 -msgid "" -"In instance methods, your implementation may use the :c:type:`PyCMethod` " -"signature (and the :c:macro:`METH_METHOD` bit " -"in :c:member:`PyMethodDef.ml_flags`), and get the class as the " -"``defining_class`` argument." -msgstr "" - -#: howto/abi3t-migration.rst:509 -msgid "" -"Otherwise, give your class a unique static token using " -"the :c:macro:`Py_tp_token` slot, and use:" -msgstr "" - -#: howto/abi3t-migration.rst:521 -msgid "" -"Type tokens work similarly to module tokens covered :ref:`earlier in this " -"guide `." -msgstr "" - -#: howto/abi3t-migration.rst:527 -msgid "Avoid build-time conditionals" -msgstr "" - -#: howto/abi3t-migration.rst:529 -msgid "" -"Check your code for API that identifies the version of Python used to " -"*build* your extension. This no longer corresponds to the Python your " -"extension runs on, so code that uses this information often needs changing. " -"The macros to check for are:" -msgstr "" - -#: howto/abi3t-migration.rst:535 -msgid ":c:macro:`PY_VERSION_HEX`, :c:macro:`PY_MAJOR_VERSION`, :c:macro:`PY_MINOR_VERSION`:" -msgstr "" - -#: howto/abi3t-migration.rst:538 -msgid "to get the run-time version, use :c:data:`Py_Version`;" -msgstr "" - -#: howto/abi3t-migration.rst:539 -msgid "" -"to determine what C API is available, use :c:macro:`Py_TARGET_ABI3T`. This " -"macro is set to the minimum supported version." -msgstr "" - -#: howto/abi3t-migration.rst:542 -msgid "" -":c:macro:`Py_GIL_DISABLED`: under ``abi3t``, this macro is always defined. " -"Code that works with free-threaded Python *should* also work with the GIL " -"enabled (since the GIL can be enabled at run time), and usually *does* " -"(unless it, for some reason, requires more than one :term:`attached thread " -"state ` at one time)." -msgstr "" - -#: howto/abi3t-migration.rst:550 -msgid "Further code changes" -msgstr "" - -#: howto/abi3t-migration.rst:552 -msgid "" -"If you are still left with compiler errors or warnings, find a way to fix " -"them. Alas, this guide is limited, and cannot cover all possible code " -"changes extensions may need." -msgstr "" - -#: howto/abi3t-migration.rst:556 -msgid "" -"If you find a problem that other extension authors might run into, " -"consider :ref:`reporting an issue ` (or " -"sending a pull request) for this guide." -msgstr "" - -#: howto/abi3t-migration.rst:560 -msgid "" -"It is possible your issue cannot be fixed for the current version of " -"``abi3t``. In that case, reporting it may help it get prioritized for the " -"next version of CPython." -msgstr "" - -#: howto/abi3t-migration.rst:568 -msgid "Tagging and distribution" -msgstr "" - -#: howto/abi3t-migration.rst:570 -msgid "" -"If you are using a build tool with ``abi3t`` support, your extension is " -"ready, but you might want to check that it was built correctly." -msgstr "" - -#: howto/abi3t-migration.rst:573 -msgid "Extensions built with ``abi3t`` should have the following extension:" -msgstr "" - -#: howto/abi3t-migration.rst:575 -msgid "On Windows: ``.pyd`` (like any other extension);" -msgstr "" - -#: howto/abi3t-migration.rst:576 -msgid "" -"Linux, macOS, and other systems that use the ``.so`` suffix: ``.abi3t.so`` " -"(**not** ``.cpython-315t.so`` or ``.abi3.so``). Note that both free-threaded " -"and non-free-threaded builds will load ``.abi3t.so`` extensions;" -msgstr "" - -#: howto/abi3t-migration.rst:580 -msgid "Other systems: consult your distributor, and perhaps update this guide." -msgstr "" - -#: howto/abi3t-migration.rst:582 -msgid "If you distribute the extension as a *wheel*, use the following tags:" -msgstr "" - -#: howto/abi3t-migration.rst:584 -msgid "" -"Python tag: :samp:`cp3{XX}`, where *XX* is the minimum Python version the " -"extension is built for. (For example, ``cp315`` if you set " -"``Py_TARGET_ABI3T`` to ``0x30f0000``. See :ref:`abi3-compiling` for more " -"values.)" -msgstr "" - -#: howto/abi3t-migration.rst:588 -msgid "" -"ABI tag: ``abi3.abi3t``. This is a *compressed tag set* that indicates " -"support for both non-free-threaded and free-threaded builds." -msgstr "" - -#: howto/abi3t-migration.rst:591 -msgid "For example, the wheel filename may look like this:" -msgstr "" - -#: howto/abi3t-migration.rst:597 -msgid "" -"`Platform Compatibility Tags `__ in the PyPA package " -"distribution metadata." -msgstr "" - -#: howto/abi3t-migration.rst:599 -msgid "If the filename or tags are incorrect, fix them." -msgstr "" - -#: howto/abi3t-migration.rst:603 -msgid "Testing" -msgstr "" - -#: howto/abi3t-migration.rst:605 -msgid "" -"Note that when you build an extension compatible with multiple versions of " -"CPython, you should always *test* it with each version it supports (for " -"example, 3.15, 3.16, and so on). Stable ABI only guarantees *ABI* " -"compatibility; there may also be behavior changes -- both intentional ones " -"(covered by :pep:`387`) and bugs." -msgstr "" - -#: howto/abi3t-migration.rst:611 -msgid "" -"Be sure to run tests on both free-threaded and non-free-threaded builds of " -"CPython." -msgstr "" - -#: howto/abi3t-migration.rst:614 -msgid "If they pass, congratulations! You have an ``abi3t`` extension." -msgstr "" diff --git a/howto/annotations.po b/howto/annotations.po deleted file mode 100644 index a347bbc25a..0000000000 --- a/howto/annotations.po +++ /dev/null @@ -1,514 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-02-17 10:44+0100\n" -"Last-Translator: CédricM \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 3.2.2\n" - -#: howto/annotations.rst:5 -msgid "Annotations Best Practices" -msgstr "Bonnes pratiques concernant les annotations" - -#: howto/annotations.rst:0 -msgid "author" -msgstr "auteur" - -#: howto/annotations.rst:7 -msgid "Larry Hastings" -msgstr "Larry Hastings" - -#: howto/annotations.rst:9 -msgid "Abstract" -msgstr "Résumé" - -#: howto/annotations.rst:11 -msgid "" -"This document is designed to encapsulate the best practices for working with " -"annotations dicts. If you write Python code that examines " -"``__annotations__`` on Python objects, we encourage you to follow the " -"guidelines described below." -msgstr "" -"Ce document a pour but de regrouper les bonnes pratiques de travail avec le " -"dictionnaire d'annotations. Si vous écrivez du code Python qui examine les " -"``__annotations__`` des objets, nous vous encourageons à suivre les " -"recommandations décrites dans la suite." - -#: howto/annotations.rst:16 -msgid "" -"The document is organized into four sections: best practices for accessing " -"the annotations of an object in Python versions 3.10 and newer, best " -"practices for accessing the annotations of an object in Python versions 3.9 " -"and older, other best practices for ``__annotations__`` that apply to any " -"Python version, and quirks of ``__annotations__``." -msgstr "" -"Ce document est organisé en quatre sections : bonnes pratiques pour accéder " -"aux annotations d'un objet en Python 3.10 et plus récent, bonnes pratiques " -"pour accéder aux annotations d'un objet en Python 3.9 et antérieur, autres " -"bonnes pratiques pour ``__annotations__`` à appliquer quelle que soit la " -"version de Python, et enfin les curiosités concernant ``__annotations__``." - -#: howto/annotations.rst:26 -msgid "" -"Note that this document is specifically about working with " -"``__annotations__``, not uses *for* annotations. If you're looking for " -"information on how to use \"type hints\" in your code, please see " -"the :mod:`typing` module." -msgstr "" -"Notez que ce document traite spécifiquement du traitement des " -"``__annotations__``, et non de l'*utilisation* des annotations. Si vous " -"cherchez des informations sur la façon d'utiliser les « indications de " -"type » dans votre code, veuillez consulter le module :mod:`typing`." - -#: howto/annotations.rst:33 -msgid "Accessing The Annotations Dict Of An Object In Python 3.10 And Newer" -msgstr "" -"Accès au dictionnaire des annotations d'un objet dans Python 3.10 et plus " -"récent" - -#: howto/annotations.rst:35 -#, fuzzy -msgid "" -"Python 3.10 adds a new function to the standard " -"library: :func:`inspect.get_annotations`. In Python versions 3.10 through " -"3.13, calling this function is the best practice for accessing the " -"annotations dict of any object that supports annotations. This function can " -"also \"un-stringize\" stringized annotations for you." -msgstr "" -"Python 3.10 ajoute une nouvelle fonction à la bibliothèque " -"standard : :func:`inspect.get_annotations`. Dans les versions Python 3.10 " -"et plus récentes, l'appel à cette fonction est la meilleure pratique pour " -"accéder au dictionnaire d'annotations de tout objet qui prend en charge les " -"annotations. Cette fonction peut également convertir pour vous les " -"annotations contenues dans des chaînes de caractères en objets." - -#: howto/annotations.rst:42 -msgid "" -"In Python 3.14, there is a new :mod:`annotationlib` module with " -"functionality for working with annotations. This includes " -"a :func:`annotationlib.get_annotations` function, which " -"supersedes :func:`inspect.get_annotations`." -msgstr "" - -#: howto/annotations.rst:47 -msgid "" -"If for some reason :func:`inspect.get_annotations` isn't viable for your use " -"case, you may access the ``__annotations__`` data member manually. Best " -"practice for this changed in Python 3.10 as well: as of Python 3.10, " -"``o.__annotations__`` is guaranteed to *always* work on Python functions, " -"classes, and modules. If you're certain the object you're examining is one " -"of these three *specific* objects, you may simply use ``o.__annotations__`` " -"to get at the object's annotations dict." -msgstr "" -"Si pour une raison quelconque, :func:`inspect.get_annotations` n'est pas " -"viable pour votre cas d'utilisation, vous pouvez accéder à l'attribut de " -"données ``__annotations__`` manuellement. La bonne pratique pour cela a " -"également changé en Python 3.10 : à partir de Python 3.10, le fonctionnement " -"de ``o.__annotations__`` est *toujours* garanti sur les fonctions, classes " -"et modules Python. Si vous êtes certain que l'objet que vous examinez est " -"l'un de ces trois objets *spécifiques*, vous pouvez simplement utiliser " -"``o.__annotations__`` pour accéder au dictionnaire d'annotations de l'objet." - -#: howto/annotations.rst:57 -msgid "" -"However, other types of callables--for example, callables created " -"by :func:`functools.partial`--may not have an ``__annotations__`` attribute " -"defined. When accessing the ``__annotations__`` of a possibly unknown " -"object, best practice in Python versions 3.10 and newer is to " -"call :func:`getattr` with three arguments, for example ``getattr(o, " -"'__annotations__', None)``." -msgstr "" -"Cependant, d'autres types d'objets appelables – par exemple, les objets " -"appelables créés par :func:`functools.partial` – peuvent ne pas avoir " -"d'attribut ``__annotations__`` défini. Pour accéder à l'attribut " -"``__annotations__`` d'un objet éventuellement inconnu, la meilleure " -"pratique, à partir de la version 3.10 de Python, est " -"d'appeler :func:`getattr` avec trois arguments, par exemple ``getattr(o, " -"'__annotations__', None)``." - -#: howto/annotations.rst:65 -msgid "" -"Before Python 3.10, accessing ``__annotations__`` on a class that defines no " -"annotations but that has a parent class with annotations would return the " -"parent's ``__annotations__``. In Python 3.10 and newer, the child class's " -"annotations will be an empty dict instead." -msgstr "" -"Dans les versions antérieures à Python 3.10, l'accès aux ``__annotations__`` " -"d'une classe qui n'a pas d'annotation mais dont un parent de cette classe en " -"a, aurait renvoyé les ``__annotations__`` de la classe parent. Dans les " -"versions 3.10 et plus récentes, le résultat d'annotations de la classe " -"enfant est un dictionnaire vide." - -#: howto/annotations.rst:73 -msgid "Accessing The Annotations Dict Of An Object In Python 3.9 And Older" -msgstr "" -"Accès au dictionnaire des annotations d'un objet en Python 3.9 et antérieur" - -#: howto/annotations.rst:75 -msgid "" -"In Python 3.9 and older, accessing the annotations dict of an object is much " -"more complicated than in newer versions. The problem is a design flaw in " -"these older versions of Python, specifically to do with class annotations." -msgstr "" -"En Python 3.9 et antérieur, l'accès au dictionnaire des annotations d'un " -"objet est beaucoup plus compliqué que dans les versions plus récentes. Le " -"problème est dû à un défaut de conception de ces anciennes versions de " -"Python, notamment en ce qui concerne les annotations de classe." - -#: howto/annotations.rst:80 -msgid "" -"Best practice for accessing the annotations dict of other objects--" -"functions, other callables, and modules--is the same as best practice for " -"3.10, assuming you aren't calling :func:`inspect.get_annotations`: you " -"should use three-argument :func:`getattr` to access the object's " -"``__annotations__`` attribute." -msgstr "" -"La bonne pratique pour accéder au dictionnaire d'annotations d'autres objets " -"– fonctions, autres objets appelables et modules – est la même que pour la " -"3.10, en supposant que vous n'appelez pas :func:`inspect.get_annotations` : " -"vous devez utiliser la forme à trois arguments de :func:`getattr` pour " -"accéder à l'attribut ``__annotations__`` de l'objet." - -#: howto/annotations.rst:87 -msgid "" -"Unfortunately, this isn't best practice for classes. The problem is that, " -"since ``__annotations__`` is optional on classes, and because classes can " -"inherit attributes from their base classes, accessing the " -"``__annotations__`` attribute of a class may inadvertently return the " -"annotations dict of a *base class.* As an example::" -msgstr "" -"Malheureusement, ce n'est pas la bonne pratique pour les classes. Le " -"problème est que, puisque ``__annotations__`` est optionnel sur les classes " -"et que les classes peuvent hériter des attributs de leurs classes de base, " -"accéder à l'attribut ``__annotations__`` d'une classe peut par inadvertance " -"renvoyer le dictionnaire d'annotations d'une *classe de base.* Par exemple ::" - -#: howto/annotations.rst:103 -msgid "This will print the annotations dict from ``Base``, not ``Derived``." -msgstr "" -"Ceci affiche le dictionnaire d'annotations de ``Base``, pas de ``Derived``." - -#: howto/annotations.rst:106 -#, fuzzy -msgid "" -"Your code will have to have a separate code path if the object you're " -"examining is a class (``isinstance(o, type)``). In that case, best practice " -"relies on an implementation detail of Python 3.9 and before: if a class has " -"annotations defined, they are stored in the class's :attr:`~type.__dict__` " -"dictionary. Since the class may or may not have annotations defined, best " -"practice is to call the :meth:`~dict.get` method on the class dict." -msgstr "" -"Votre code doit gérer les différentes options si l'objet que vous examinez " -"est une classe (``isinstance(o, type)``). Dans ce cas, la bonne pratique " -"repose sur un détail d'implémentation de Python 3.9 et antérieur : si une " -"classe a des annotations définies, elles sont stockées dans le dictionnaire " -"``__dict__`` de la classe. Puisque la classe peut avoir ou non des " -"annotations définies, la bonne pratique est d'appeler la méthode ``get`` sur " -"le dictionnaire de la classe." - -#: howto/annotations.rst:114 -msgid "" -"To put it all together, here is some sample code that safely accesses the " -"``__annotations__`` attribute on an arbitrary object in Python 3.9 and " -"before::" -msgstr "" -"Pour résumer, voici un exemple de code qui accède en toute sécurité à " -"l'attribut ``__annotations__`` d'un objet quelconque en Python 3.9 et " -"antérieur ::" - -#: howto/annotations.rst:123 -msgid "" -"After running this code, ``ann`` should be either a dictionary or ``None``. " -"You're encouraged to double-check the type of ``ann`` " -"using :func:`isinstance` before further examination." -msgstr "" -"Après avoir exécuté ce code, ``ann`` pourra être soit un dictionnaire, soit " -"``None``. Nous vous conseillons de vérifier le type de ``ann`` en " -"utilisant :func:`isinstance` avant de poursuivre l'analyse." - -#: howto/annotations.rst:128 -#, fuzzy -msgid "" -"Note that some exotic or malformed type objects may not have " -"a :attr:`~type.__dict__` attribute, so for extra safety you may also wish to " -"use :func:`getattr` to access :attr:`!__dict__`." -msgstr "" -"Notez que certains objets de type exotique ou malformé peuvent ne pas avoir " -"d'attribut ``__dict__`` donc, pour plus de sécurité, vous pouvez également " -"utiliser :func:`getattr` pour accéder à ``__dict__``." - -#: howto/annotations.rst:134 -msgid "Manually Un-Stringizing Stringized Annotations" -msgstr "" -"Conversion manuelle des annotations contenues dans une chaîne de caractères" - -#: howto/annotations.rst:136 -msgid "" -"In situations where some annotations may be \"stringized\", and you wish to " -"evaluate those strings to produce the Python values they represent, it " -"really is best to call :func:`inspect.get_annotations` to do this work for " -"you." -msgstr "" -"Dans les situations où certaines annotations peuvent se présenter sous forme " -"de chaînes de caractères brutes, et que vous souhaitez évaluer ces chaînes " -"pour trouver les valeurs Python qu'elles représentent, il est vraiment " -"préférable d'appeler :func:`inspect.get_annotations` pour faire ce travail à " -"votre place." - -#: howto/annotations.rst:142 -msgid "" -"If you're using Python 3.9 or older, or if for some reason you can't " -"use :func:`inspect.get_annotations`, you'll need to duplicate its logic. " -"You're encouraged to examine the implementation " -"of :func:`inspect.get_annotations` in the current Python version and follow " -"a similar approach." -msgstr "" -"Si vous utilisez Python 3.9 ou antérieur ou, si pour une raison quelconque, " -"vous ne pouvez pas utiliser :func:`inspect.get_annotations`, vous devrez " -"dupliquer son principe de fonctionnement. Nous vous encourageons à examiner " -"l'implémentation de :func:`inspect.get_annotations` dans la version actuelle " -"de Python et à suivre une approche similaire." - -#: howto/annotations.rst:148 -msgid "" -"In a nutshell, if you wish to evaluate a stringized annotation on an " -"arbitrary object ``o``:" -msgstr "" -"En bref, si vous souhaitez évaluer une annotation empaquetée en chaîne de " -"caractères sur un objet arbitraire ``o`` :" - -#: howto/annotations.rst:151 -msgid "" -"If ``o`` is a module, use ``o.__dict__`` as the ``globals`` when " -"calling :func:`eval`." -msgstr "" -"Si ``o`` est un module, utilisez ``o.__dict__`` pour accéder aux noms " -"``globals`` lors de l'appel à :func:`eval`." - -#: howto/annotations.rst:153 -msgid "" -"If ``o`` is a class, use ``sys.modules[o.__module__].__dict__`` as the " -"``globals``, and ``dict(vars(o))`` as the ``locals``, when " -"calling :func:`eval`." -msgstr "" -"Si ``o`` est une classe, utilisez ``sys.modules[o.__module__].__dict__`` " -"pour désigner les noms ``globals``, et ``dict(vars(o))`` pour désigner les " -"``locals``, lorsque vous appelez :func:`eval`." - -#: howto/annotations.rst:156 -msgid "" -"If ``o`` is a wrapped callable " -"using :func:`functools.update_wrapper`, :func:`functools.wraps`, " -"or :func:`functools.partial`, iteratively unwrap it by accessing either " -"``o.__wrapped__`` or ``o.func`` as appropriate, until you have found the " -"root unwrapped function." -msgstr "" -"Si ``o`` est un appelable encapsulé à l'aide " -"de :func:`functools.update_wrapper`, :func:`functools.wraps`, " -"ou :func:`functools.partial`, dés-encapsulez-le itérativement en accédant à " -"``o.__wrapped__`` ou ``o.func`` selon le cas, jusqu'à ce que vous ayez " -"trouvé la fonction racine." - -#: howto/annotations.rst:160 -#, fuzzy -msgid "" -"If ``o`` is a callable (but not a class), use :attr:`o.__globals__ " -"` as the globals when calling :func:`eval`." -msgstr "" -"Si ``o`` est un objet appelable (mais pas une classe), utilisez " -"``o.__globals__`` pour désigner les globales lors de l'appel de :func:`eval`." - -#: howto/annotations.rst:164 -msgid "" -"However, not all string values used as annotations can be successfully " -"turned into Python values by :func:`eval`. String values could theoretically " -"contain any valid string, and in practice there are valid use cases for type " -"hints that require annotating with string values that specifically *can't* " -"be evaluated. For example:" -msgstr "" -"Cependant, toutes les valeurs de chaîne utilisées comme annotations ne " -"peuvent pas être transformées avec succès en valeurs Python " -"par :func:`eval`. Les valeurs de chaîne peuvent théoriquement contenir des " -"chaînes valides et, en pratique, il existe des cas d'utilisation valables " -"pour les indications de type qui nécessitent d'annoter avec des valeurs de " -"chaîne qui *ne peuvent pas* être évaluées. Par exemple :" - -#: howto/annotations.rst:171 -msgid "" -":pep:`604` union types using ``|``, before support for this was added to " -"Python 3.10." -msgstr "" -"Les types d'union de style :pep:`604` avec ``|``, avant que cette prise en " -"charge ne soit ajoutée à Python 3.10." - -#: howto/annotations.rst:173 -msgid "" -"Definitions that aren't needed at runtime, only imported " -"when :const:`typing.TYPE_CHECKING` is true." -msgstr "" -"Les définitions qui ne sont pas nécessaires à l'exécution, importées " -"uniquement lorsque :const:`typing.TYPE_CHECKING` est vrai." - -#: howto/annotations.rst:176 -msgid "" -"If :func:`eval` attempts to evaluate such values, it will fail and raise an " -"exception. So, when designing a library API that works with annotations, " -"it's recommended to only attempt to evaluate string values when explicitly " -"requested to by the caller." -msgstr "" -"Si :func:`eval` tente d'évaluer de telles valeurs, elle échoue et lève une " -"exception. Ainsi, lors de la conception d'une API de bibliothèque " -"fonctionnant avec des annotations, il est recommandé de ne tenter d'évaluer " -"des valeurs de type chaîne que si l'appelant le demande explicitement." - -#: howto/annotations.rst:184 -msgid "Best Practices For ``__annotations__`` In Any Python Version" -msgstr "" -"Bonnes pratiques pour ``__annotations__`` dans toutes les versions de Python" - -#: howto/annotations.rst:186 -msgid "" -"You should avoid assigning to the ``__annotations__`` member of objects " -"directly. Let Python manage setting ``__annotations__``." -msgstr "" -"Évitez d'assigner directement des objets à l'élément ``__annotations__``. " -"Laissez Python gérer le paramétrage de ``__annotations__``." - -#: howto/annotations.rst:189 -msgid "" -"If you do assign directly to the ``__annotations__`` member of an object, " -"you should always set it to a ``dict`` object." -msgstr "" -"Si vous assignez directement à l'élément ``__annotations__`` d'un objet, " -"vous devez toujours le définir comme un ``dict``." - -#: howto/annotations.rst:192 -msgid "" -"You should avoid accessing ``__annotations__`` directly on any object. " -"Instead, use :func:`annotationlib.get_annotations` (Python 3.14+) " -"or :func:`inspect.get_annotations` (Python 3.10+)." -msgstr "" - -#: howto/annotations.rst:196 -#, fuzzy -msgid "" -"If you do directly access the ``__annotations__`` member of an object, you " -"should ensure that it's a dictionary before attempting to examine its " -"contents." -msgstr "" -"Si vous accédez directement à l'élément ``__annotations__`` d'un objet, vous " -"devez vous assurer qu'il s'agit d'un dictionnaire avant de tenter d'examiner " -"son contenu." - -#: howto/annotations.rst:200 -msgid "You should avoid modifying ``__annotations__`` dicts." -msgstr "Évitez de modifier les dictionnaires ``__annotations__``." - -#: howto/annotations.rst:202 -msgid "" -"You should avoid deleting the ``__annotations__`` attribute of an object." -msgstr "Évitez de supprimer l'attribut ``__annotations__`` d'un objet." - -#: howto/annotations.rst:207 -msgid "``__annotations__`` Quirks" -msgstr "Les curiosités concernant ``__annotations__``" - -#: howto/annotations.rst:209 -msgid "" -"In all versions of Python 3, function objects lazy-create an annotations " -"dict if no annotations are defined on that object. You can delete the " -"``__annotations__`` attribute using ``del fn.__annotations__``, but if you " -"then access ``fn.__annotations__`` the object will create a new empty dict " -"that it will store and return as its annotations. Deleting the annotations " -"on a function before it has lazily created its annotations dict will throw " -"an ``AttributeError``; using ``del fn.__annotations__`` twice in a row is " -"guaranteed to always throw an ``AttributeError``." -msgstr "" -"Dans toutes les versions de Python 3, les fonctions créent paresseusement un " -"dictionnaire d'annotations si aucune annotation n'est définie sur cet " -"objet. Vous pouvez supprimer l'attribut ``__annotations__`` en utilisant " -"``del fn.__annotations__``, mais si vous accédez ensuite à " -"``fn.__annotations__``, l'objet créera un nouveau dictionnaire vide qu'il " -"stockera et renverra quand on lui demande ses annotations. Si vous " -"supprimez les annotations d'une fonction avant qu'elle n'ait créé " -"paresseusement son dictionnaire d'annotations, vous obtiendrez une exception " -"``AttributeError`` ; si vous utilisez ``del fn.__annotations__`` deux fois " -"de suite, vous êtes sûr de toujours obtenir ``AttributeError``." - -#: howto/annotations.rst:219 -msgid "" -"Everything in the above paragraph also applies to class and module objects " -"in Python 3.10 and newer." -msgstr "" -"Tout ce qui est dit dans le paragraphe précédent s'applique également aux " -"objets de type classe et module en Python 3.10 et suivants." - -#: howto/annotations.rst:222 -msgid "" -"In all versions of Python 3, you can set ``__annotations__`` on a function " -"object to ``None``. However, subsequently accessing the annotations on that " -"object using ``fn.__annotations__`` will lazy-create an empty dictionary as " -"per the first paragraph of this section. This is *not* true of modules and " -"classes, in any Python version; those objects permit setting " -"``__annotations__`` to any Python value, and will retain whatever value is " -"set." -msgstr "" -"Dans toutes les versions de Python 3, vous pouvez définir à ``None`` " -"l'élément ``__annotations__`` sur un objet fonction. Cependant, si vous " -"accédez ensuite aux annotations de cet objet en utilisant " -"``fn.__annotations__``, un dictionnaire vide sera créé paresseusement, comme " -"indiqué dans le premier paragraphe de cette section. Ce *n'est pas* le cas " -"des modules et des classes, quelle que soit la version de Python ; ces " -"objets permettent de définir ``__annotations__`` à n'importe quelle valeur " -"Python, et conserveront la valeur définie." - -#: howto/annotations.rst:230 -msgid "" -"If Python stringizes your annotations for you (using ``from __future__ " -"import annotations``), and you specify a string as an annotation, the string " -"will itself be quoted. In effect the annotation is quoted *twice.* For " -"example::" -msgstr "" -"Si Python convertit vos annotations en chaînes de caractères (en utilisant " -"``from __future__ import annotations``), et que vous spécifiez une chaîne de " -"caractères comme annotation, la chaîne sera elle-même entre guillemets. En " -"fait, l'annotation est mise entre guillemets *deux fois*. Par exemple ::" - -#: howto/annotations.rst:241 -msgid "" -"This prints ``{'a': \"'str'\"}``. This shouldn't really be considered a " -"\"quirk\"; it's mentioned here simply because it might be surprising." -msgstr "" -"Ceci renvoie : ``{'a': \"'str'\"}``. Cela ne devrait pas vraiment être " -"considéré comme une « bizarrerie » ; nous le mentionnons ici simplement " -"parce que cela peut être surprenant." - -#: howto/annotations.rst:244 -msgid "" -"If you use a class with a custom metaclass and access ``__annotations__`` on " -"the class, you may observe unexpected behavior; see :pep:`749 <749#pep749-" -"metaclasses>` for some examples. You can avoid these quirks by " -"using :func:`annotationlib.get_annotations` on Python 3.14+ " -"or :func:`inspect.get_annotations` on Python 3.10+. On earlier versions of " -"Python, you can avoid these bugs by accessing the annotations from the " -"class's :attr:`~type.__dict__` (for example, " -"``cls.__dict__.get('__annotations__', None)``)." -msgstr "" - -#: howto/annotations.rst:253 -msgid "" -"In some versions of Python, instances of classes may have an " -"``__annotations__`` attribute. However, this is not supported functionality. " -"If you need the annotations of an instance, you can use :func:`type` to " -"access its class (for example, " -"``annotationlib.get_annotations(type(myinstance))`` on Python 3.14+)." -msgstr "" diff --git a/howto/argparse-optparse.po b/howto/argparse-optparse.po deleted file mode 100644 index 50a99dde6b..0000000000 --- a/howto/argparse-optparse.po +++ /dev/null @@ -1,166 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: howto/argparse-optparse.rst:8 -#, fuzzy -msgid "Migrating ``optparse`` code to ``argparse``" -msgstr "Mettre à jour du code ``optparse``" - -#: howto/argparse-optparse.rst:10 -msgid "" -"The :mod:`argparse` module offers several higher level features not natively " -"provided by the :mod:`optparse` module, including:" -msgstr "" - -#: howto/argparse-optparse.rst:13 -msgid "Handling positional arguments." -msgstr "gère les arguments positionnels ;" - -#: howto/argparse-optparse.rst:14 -msgid "Supporting subcommands." -msgstr "" - -#: howto/argparse-optparse.rst:15 -msgid "Allowing alternative option prefixes like ``+`` and ``/``." -msgstr "" -"permet d'utiliser les alternatives ``+`` ou ``/`` comme préfixes d'option ;" - -#: howto/argparse-optparse.rst:16 -msgid "Handling zero-or-more and one-or-more style arguments." -msgstr "prend en charge la répétition de valeurs (zéro ou plus, un ou plus) ;" - -#: howto/argparse-optparse.rst:17 -msgid "Producing more informative usage messages." -msgstr "fournit des messages d'aide plus complets ;" - -#: howto/argparse-optparse.rst:18 -msgid "Providing a much simpler interface for custom ``type`` and ``action``." -msgstr "" -"fournit une interface plus simple pour les types et les actions " -"personnalisés." - -#: howto/argparse-optparse.rst:20 -msgid "" -"Originally, the :mod:`argparse` module attempted to maintain compatibility " -"with :mod:`optparse`. However, the fundamental design differences between " -"supporting declarative command line option processing (while leaving " -"positional argument processing to application code), and supporting both " -"named options and positional arguments in the declarative interface mean " -"that the API has diverged from that of ``optparse`` over time." -msgstr "" - -#: howto/argparse-optparse.rst:27 -msgid "" -"As described in :ref:`choosing-an-argument-parser`, applications that are " -"currently using :mod:`optparse` and are happy with the way it works can just " -"continue to use ``optparse``." -msgstr "" - -#: howto/argparse-optparse.rst:31 -msgid "" -"Application developers that are considering migrating should also review the " -"list of intrinsic behavioural differences described in that section before " -"deciding whether or not migration is desirable." -msgstr "" - -#: howto/argparse-optparse.rst:35 -msgid "" -"For applications that do choose to migrate from :mod:`optparse` " -"to :mod:`argparse`, the following suggestions should be helpful:" -msgstr "" - -#: howto/argparse-optparse.rst:38 -msgid "" -"Replace all :meth:`optparse.OptionParser.add_option` calls " -"with :meth:`ArgumentParser.add_argument` calls." -msgstr "" -"remplacer tous les appels à :meth:`optparse.OptionParser.add_option` par des " -"appels à :meth:`ArgumentParser.add_argument` ;" - -#: howto/argparse-optparse.rst:41 -msgid "" -"Replace ``(options, args) = parser.parse_args()`` with ``args = " -"parser.parse_args()`` and add additional :meth:`ArgumentParser.add_argument` " -"calls for the positional arguments. Keep in mind that what was previously " -"called ``options``, now in the :mod:`argparse` context is called ``args``." -msgstr "" -"remplacer ``(options, args) = parser.parse_args()`` par ``args = " -"parser.parse_args()`` et ajouter des appels " -"à :meth:`ArgumentParser.add_argument` pour les arguments positionnels. " -"Prenez note que les valeurs précédemment appelées ``options`` sont appelées " -"``args`` dans le contexte d':mod:`argparse` ;" - -#: howto/argparse-optparse.rst:46 -msgid "" -"Replace :meth:`optparse.OptionParser.disable_interspersed_args` by " -"using :meth:`~ArgumentParser.parse_intermixed_args` instead " -"of :meth:`~ArgumentParser.parse_args`." -msgstr "" -"remplacer :meth:`optparse.OptionParser.disable_interspersed_args` en " -"appelant :meth:`~ArgumentParser.parse_intermixed_args` plutôt " -"que :meth:`~ArgumentParser.parse_args` ;" - -#: howto/argparse-optparse.rst:50 -msgid "" -"Replace callback actions and the ``callback_*`` keyword arguments with " -"``type`` or ``action`` arguments." -msgstr "" -"remplacer les actions de rappel (*callback actions* en anglais) et les " -"arguments nommés ``callback_*`` par des arguments ``type`` et ``actions`` ;" - -#: howto/argparse-optparse.rst:53 -msgid "" -"Replace string names for ``type`` keyword arguments with the corresponding " -"type objects (e.g. int, float, complex, etc)." -msgstr "" -"remplacer les chaînes représentant le nom des types pour l'argument nommé " -"``type`` par les objets types correspondants (par exemple : ``int``, " -"``float``, ``complex``, etc) ;" - -#: howto/argparse-optparse.rst:56 -msgid "" -"Replace :class:`optparse.Values` with :class:`Namespace` " -"and :exc:`optparse.OptionError` and :exc:`optparse.OptionValueError` " -"with :exc:`ArgumentError`." -msgstr "" -"remplacer :class:`optparse.Values` par :class:`Namespace` ; " -"et :exc:`optparse.OptionError` et :exc:`optparse.OptionValueError` " -"par :exc:`ArgumentError` ;" - -#: howto/argparse-optparse.rst:60 -msgid "" -"Replace strings with implicit arguments such as ``%default`` or ``%prog`` " -"with the standard Python syntax to use dictionaries to format strings, that " -"is, ``%(default)s`` and ``%(prog)s``." -msgstr "" -"remplacer les chaînes avec des arguments de formatage implicite (tels que " -"``%default`` ou ``%prog``) par la syntaxe standard de Python pour " -"l'interpolation d'un dictionnaire dans les chaînes de formatage (c'est-à-" -"dire ``%(default)s`` et ``%(prog)s``) ;" - -#: howto/argparse-optparse.rst:64 -msgid "" -"Replace the OptionParser constructor ``version`` argument with a call to " -"``parser.add_argument('--version', action='version', version='')``." -msgstr "" -"remplacer l'argument ``version`` du constructeur d'``OptionParser`` par un " -"appel à ``parser.add_argument('--version', action='version', version='')``." - -#~ msgid "A partial upgrade path from :mod:`optparse` to :mod:`argparse`:" -#~ msgstr "Le portage partiel d':mod:`optparse` à :mod:`argparse` :" diff --git a/howto/argparse.po b/howto/argparse.po deleted file mode 100644 index eac42bf7bb..0000000000 --- a/howto/argparse.po +++ /dev/null @@ -1,772 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2022-10-18 12:22+0200\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: howto/argparse.rst:5 -msgid "Argparse Tutorial" -msgstr "Tutoriel *argparse*" - -#: howto/argparse.rst:0 -msgid "author" -msgstr "auteur" - -#: howto/argparse.rst:7 -msgid "Tshepang Mbambo" -msgstr "" - -#: howto/argparse.rst:11 -msgid "" -"This tutorial is intended to be a gentle introduction to :mod:`argparse`, " -"the recommended command-line parsing module in the Python standard library." -msgstr "" -"Ce tutoriel est destiné à être une introduction en douceur " -"à :mod:`argparse`, le module d'analyse de ligne de commande recommandé dans " -"la bibliothèque standard de Python." - -#: howto/argparse.rst:16 -msgid "" -"The standard library includes two other libraries directly related to " -"command-line parameter processing: the lower level :mod:`optparse` module " -"(which may require more code to configure for a given application, but also " -"allows an application to request behaviors that ``argparse`` doesn't " -"support), and the very low level :mod:`getopt` (which specifically serves as " -"an equivalent to the :c:func:`!getopt` family of functions available to C " -"programmers). While neither of those modules is covered directly in this " -"guide, many of the core concepts in ``argparse`` first originated in " -"``optparse``, so some aspects of this tutorial will also be relevant to " -"``optparse`` users." -msgstr "" - -#: howto/argparse.rst:29 -msgid "Concepts" -msgstr "Concepts" - -#: howto/argparse.rst:31 -msgid "" -"Let's show the sort of functionality that we are going to explore in this " -"introductory tutorial by making use of the :command:`ls` command:" -msgstr "" -"Commençons par l'utilisation de la commande :command:`ls` pour voir le type " -"de fonctionnalité que nous allons étudier dans ce tutoriel d'introduction :" - -#: howto/argparse.rst:53 -msgid "A few concepts we can learn from the four commands:" -msgstr "Quelques concepts que l'on peut apprendre avec les quatre commandes :" - -#: howto/argparse.rst:55 -msgid "" -"The :command:`ls` command is useful when run without any options at all. It " -"defaults to displaying the contents of the current directory." -msgstr "" -"La commande :command:`ls` est utile quand elle est exécutée sans aucun " -"paramètre. Elle affiche par défaut le contenu du dossier courant." - -#: howto/argparse.rst:58 -msgid "" -"If we want beyond what it provides by default, we tell it a bit more. In " -"this case, we want it to display a different directory, ``pypy``. What we " -"did is specify what is known as a positional argument. It's named so because " -"the program should know what to do with the value, solely based on where it " -"appears on the command line. This concept is more relevant to a command " -"like :command:`cp`, whose most basic usage is ``cp SRC DEST``. The first " -"position is *what you want copied,* and the second position is *where you " -"want it copied to*." -msgstr "" -"Si l'on veut plus que ce qui est proposé par défaut, il faut l'indiquer. " -"Dans le cas présent, on veut afficher un dossier différent : ``pypy``. Ce " -"que l'on a fait c'est spécifier un argument positionnel. C'est appelé ainsi " -"car cela permet au programme de savoir quoi faire avec la valeur en se " -"basant seulement sur sa position dans la ligne de commande. Ce concept est " -"plus pertinent pour une commande comme :command:`cp` dont l'usage de base " -"est ``cp SRC DEST``. Le premier argument est *ce que vous voulez copier* et " -"le second est *où vous voulez le copier*." - -#: howto/argparse.rst:67 -msgid "" -"Now, say we want to change behaviour of the program. In our example, we " -"display more info for each file instead of just showing the file names. The " -"``-l`` in that case is known as an optional argument." -msgstr "" -"Maintenant, supposons que l'on veuille changer la façon dont le programme " -"agit. Dans notre exemple, on affiche plus d'information pour chaque ficher " -"que simplement leur nom. Dans ce cas, ``-l`` est un argument facultatif." - -#: howto/argparse.rst:71 -msgid "" -"That's a snippet of the help text. It's very useful in that you can come " -"across a program you have never used before, and can figure out how it works " -"simply by reading its help text." -msgstr "" -"C'est un fragment du texte d'aide. Cela peut être très utile quand on tombe " -"sur un programme que l'on à jamais utilisé auparavant car on peut comprendre " -"son fonctionnement simplement en lisant l'aide associée." - -#: howto/argparse.rst:77 -msgid "The basics" -msgstr "Les bases" - -#: howto/argparse.rst:79 -msgid "Let us start with a very simple example which does (almost) nothing::" -msgstr "Commençons par un exemple très simple qui ne fait (quasiment) rien ::" - -#: howto/argparse.rst:193 howto/argparse.rst:214 -msgid "Following is a result of running the code:" -msgstr "Ce qui suit est le résultat de l'exécution du code :" - -#: howto/argparse.rst:259 howto/argparse.rst:303 -msgid "Here is what is happening:" -msgstr "Voilà ce qu'il se passe :" - -#: howto/argparse.rst:104 -msgid "" -"Running the script without any options results in nothing displayed to " -"stdout. Not so useful." -msgstr "" -"Exécuter le script sans aucun paramètre a pour effet de ne rien afficher sur " -"la sortie d'erreur. Ce n'est pas très utile." - -#: howto/argparse.rst:107 -msgid "" -"The second one starts to display the usefulness of the :mod:`argparse` " -"module. We have done almost nothing, but already we get a nice help message." -msgstr "" -"Le deuxième commence à montrer l'intérêt du module :mod:`argparse`. On n'a " -"quasiment rien fait mais on a déjà un beau message d'aide." - -#: howto/argparse.rst:110 -msgid "" -"The ``--help`` option, which can also be shortened to ``-h``, is the only " -"option we get for free (i.e. no need to specify it). Specifying anything " -"else results in an error. But even then, we do get a useful usage message, " -"also for free." -msgstr "" -"L'option ``--help``, que l'on peut aussi raccourcir en ``-h``, est la seule " -"option que l'on a gratuitement (pas besoin de la préciser). Préciser quoi " -"que ce soit d'autre entraîne une erreur. Mais même dans ce cas, on reçoit " -"aussi un message utile, toujours gratuitement." - -#: howto/argparse.rst:117 -msgid "Introducing Positional arguments" -msgstr "Introduction aux arguments positionnels" - -#: howto/argparse.rst:119 -msgid "An example::" -msgstr "Un exemple ::" - -#: howto/argparse.rst:127 -msgid "And running the code:" -msgstr "On exécute le code :" - -#: howto/argparse.rst:145 -msgid "Here is what's happening:" -msgstr "Voilà ce qu'il se passe :" - -#: howto/argparse.rst:147 -#, fuzzy -msgid "" -"We've added the :meth:`~ArgumentParser.add_argument` method, which is what " -"we use to specify which command-line options the program is willing to " -"accept. In this case, I've named it ``echo`` so that it's in line with its " -"function." -msgstr "" -"On a ajouté la méthode :meth:`add_argument` que l'on utilise pour préciser " -"quels paramètre de lignes de commandes le programme peut accepter. Dans le " -"cas présent, je l'ai appelé ``echo`` pour que cela corresponde à sa fonction." - -#: howto/argparse.rst:151 -msgid "Calling our program now requires us to specify an option." -msgstr "" -"Utiliser le programme nécessite maintenant que l'on précise un paramètre." - -#: howto/argparse.rst:153 -#, fuzzy -msgid "" -"The :meth:`~ArgumentParser.parse_args` method actually returns some data " -"from the options specified, in this case, ``echo``." -msgstr "" -"La méthode :meth:`parse_args` renvoie en réalité certaines données des " -"paramètres précisés, dans le cas présent : ``echo``." - -#: howto/argparse.rst:156 -msgid "" -"The variable is some form of 'magic' that :mod:`argparse` performs for free " -"(i.e. no need to specify which variable that value is stored in). You will " -"also notice that its name matches the string argument given to the method, " -"``echo``." -msgstr "" -"La variable est comme une forme de 'magie' que :mod:`argparse` effectue " -"gratuitement (c.-à-d. pas besoin de préciser dans quelle variable la valeur " -"est stockée). Vous aurez aussi remarqué que le nom est le même que " -"l'argument en chaîne de caractères donné à la méthode : ``echo``." - -#: howto/argparse.rst:161 -msgid "" -"Note however that, although the help display looks nice and all, it " -"currently is not as helpful as it can be. For example we see that we got " -"``echo`` as a positional argument, but we don't know what it does, other " -"than by guessing or by reading the source code. So, let's make it a bit more " -"useful::" -msgstr "" -"Notez cependant que, même si l'affichage d'aide paraît bien , il n'est pas " -"aussi utile qu'il pourrait l'être. Par exemple, on peut lire que ``echo`` " -"est un argument positionnel mais on ne peut pas savoir ce que cela fait " -"autrement qu'en le devinant ou en lisant le code source. Donc, rendons-le un " -"peu plus utile ::" - -#: howto/argparse.rst:172 -msgid "And we get:" -msgstr "Et on obtient :" - -#: howto/argparse.rst:185 -msgid "Now, how about doing something even more useful::" -msgstr "" -"À présent, que diriez-vous de faire quelque chose d'encore plus utile ::" - -#: howto/argparse.rst:203 -msgid "" -"That didn't go so well. That's because :mod:`argparse` treats the options we " -"give it as strings, unless we tell it otherwise. So, let's " -"tell :mod:`argparse` to treat that input as an integer::" -msgstr "" -"Cela n'a pas très bien fonctionné. C'est parce que :mod:`argparse` traite " -"les paramètres que l'on donne comme des chaînes de caractères à moins qu'on " -"ne lui indique de faire autrement. Donc, disons à :mod:`argparse` de traiter " -"cette entrée comme un entier ::" - -#: howto/argparse.rst:224 -msgid "" -"That went well. The program now even helpfully quits on bad illegal input " -"before proceeding." -msgstr "" -"Cela a bien fonctionné. Maintenant le programme va même s'arrêter si " -"l'entrée n'est pas légale avant de procéder à l'exécution." - -#: howto/argparse.rst:229 -msgid "Introducing Optional arguments" -msgstr "Introduction aux arguments optionnels" - -#: howto/argparse.rst:231 -msgid "" -"So far we have been playing with positional arguments. Let us have a look on " -"how to add optional ones::" -msgstr "" -"Jusqu'à maintenant, on a joué avec les arguments positionnels. Regardons " -"comment ajouter des paramètres optionnels ::" - -#: howto/argparse.rst:287 howto/argparse.rst:437 -msgid "And the output:" -msgstr "Et le résultat :" - -#: howto/argparse.rst:261 -msgid "" -"The program is written so as to display something when ``--verbosity`` is " -"specified and display nothing when not." -msgstr "" -"Le programme est écrit de sorte qu'il n'affiche rien sauf si l'option ``--" -"verbosity`` est précisée." - -#: howto/argparse.rst:264 -#, fuzzy -msgid "" -"To show that the option is actually optional, there is no error when running " -"the program without it. Note that by default, if an optional argument isn't " -"used, the relevant variable, in this case ``args.verbosity``, is given " -"``None`` as a value, which is the reason it fails the truth test of " -"the :keyword:`if` statement." -msgstr "" -"Pour montrer que l'option est bien optionnelle il n'y aura pas d'erreur s'il " -"on exécute le programme sans celle-ci. Notez que par défaut, si une option " -"n'est pas utilisée, la variable associée, dans le cas " -"présent : :attr:`args.verbosity`, prend la valeur ``None`` c'est pourquoi " -"elle échoue le test de vérité de l'assertion :keyword:`if`." - -#: howto/argparse.rst:270 -msgid "The help message is a bit different." -msgstr "Le message d'aide est quelque peu différent." - -#: howto/argparse.rst:272 -msgid "" -"When using the ``--verbosity`` option, one must also specify some value, any " -"value." -msgstr "" -"Quand on utilise l'option ``--verbosity`` on doit aussi préciser une valeur, " -"n'importe laquelle." - -#: howto/argparse.rst:275 -msgid "" -"The above example accepts arbitrary integer values for ``--verbosity``, but " -"for our simple program, only two values are actually useful, ``True`` or " -"``False``. Let's modify the code accordingly::" -msgstr "" -"L'exemple ci-dessus accepte des valeurs entières arbitraires pour ``--" -"verbosity`` mais pour notre programme simple seule deux valeurs sont " -"réellement utiles : ``True`` et ``False``. Modifions le code en accord avec " -"cela ::" - -#: howto/argparse.rst:305 -#, fuzzy -msgid "" -"The option is now more of a flag than something that requires a value. We " -"even changed the name of the option to match that idea. Note that we now " -"specify a new keyword, ``action``, and give it the value ``\"store_true\"``. " -"This means that, if the option is specified, assign the value ``True`` to " -"``args.verbose``. Not specifying it implies ``False``." -msgstr "" -"Maintenant le paramètre est plus une option que quelque chose qui nécessite " -"une valeur. On a même changé le nom du paramètre pour qu'il corresponde à " -"cette idée. Notez que maintenant on précise une nouvelle ``action`` clavier " -"et qu'on lui donne la valeur ``\"store_true\"``. Cela signifie que si " -"l'option est précisée la valeur ``True`` est assignée " -"à :data:`args.verbose`. Ne rien préciser implique la valeur ``False``." - -#: howto/argparse.rst:312 -msgid "" -"It complains when you specify a value, in true spirit of what flags actually " -"are." -msgstr "" -"Dans l'esprit de ce que sont vraiment les options, pas des paramètres, il se " -"plaint quand vous tentez de préciser une valeur." - -#: howto/argparse.rst:315 -msgid "Notice the different help text." -msgstr "Notez que l'aide est différente." - -#: howto/argparse.rst:319 -msgid "Short options" -msgstr "Les paramètres raccourcis" - -#: howto/argparse.rst:321 -msgid "" -"If you are familiar with command line usage, you will notice that I haven't " -"yet touched on the topic of short versions of the options. It's quite " -"simple::" -msgstr "" -"Si vous êtes familier avec l'utilisation de la ligne de commande, vous avez " -"dû remarquer que je n'ai pour l'instant rien dit au sujet des versions " -"raccourcies des paramètres. C'est très simple ::" - -#: howto/argparse.rst:333 -msgid "And here goes:" -msgstr "Et voilà :" - -#: howto/argparse.rst:346 -msgid "Note that the new ability is also reflected in the help text." -msgstr "Notez que la nouvelle option est aussi indiquée dans l'aide." - -#: howto/argparse.rst:350 -msgid "Combining Positional and Optional arguments" -msgstr "Combinaison d'arguments positionnels et optionnels" - -#: howto/argparse.rst:352 -msgid "Our program keeps growing in complexity::" -msgstr "Notre programme continue de croître en complexité ::" - -#: howto/argparse.rst:367 -msgid "And now the output:" -msgstr "Et voilà le résultat :" - -#: howto/argparse.rst:381 -msgid "We've brought back a positional argument, hence the complaint." -msgstr "Nous avons ajouté un argument nommé, d'où le message d'erreur." - -#: howto/argparse.rst:383 -msgid "Note that the order does not matter." -msgstr "Notez que l'ordre importe peu." - -#: howto/argparse.rst:385 -msgid "" -"How about we give this program of ours back the ability to have multiple " -"verbosity values, and actually get to use them::" -msgstr "" -"Qu'en est-il si nous donnons à ce programme la possibilité d'avoir plusieurs " -"niveaux de verbosité, et que celui-ci les prend en compte ::" - -#: howto/argparse.rst:419 -msgid "" -"These all look good except the last one, which exposes a bug in our program. " -"Let's fix it by restricting the values the ``--verbosity`` option can " -"accept::" -msgstr "" -"Tout semble bon sauf le dernier, qui montre que notre programme contient un " -"bogue. Corrigeons cela en restreignant les valeurs que ``--verbosity`` " -"accepte ::" - -#: howto/argparse.rst:455 -msgid "" -"Note that the change also reflects both in the error message as well as the " -"help string." -msgstr "" -"Notez que ce changement est pris en compte à la fois dans le message " -"d'erreur et dans le texte d'aide." - -#: howto/argparse.rst:458 -msgid "" -"Now, let's use a different approach of playing with verbosity, which is " -"pretty common. It also matches the way the CPython executable handles its " -"own verbosity argument (check the output of ``python --help``)::" -msgstr "" -"Essayons maintenant une approche différente pour jouer sur la verbosité, ce " -"qui arrive fréquemment. Cela correspond également à comment le programme " -"CPython gère ses propres paramètres de verbosité (jetez un œil sur la sortie " -"de la commande ``python --help``) ::" - -#: howto/argparse.rst:477 -msgid "" -"We have introduced another action, \"count\", to count the number of " -"occurrences of specific options." -msgstr "" -"Nous avons introduit une autre action, ``\"count\"``, pour compter le nombre " -"d’occurrences d'une option en particulier :" - -#: howto/argparse.rst:506 -msgid "" -"Yes, it's now more of a flag (similar to ``action=\"store_true\"``) in the " -"previous version of our script. That should explain the complaint." -msgstr "" -"Oui, c'est maintenant d'avantage une option (similaire à " -"``action=\"store_true\"``) de la version précédente de notre script. Cela " -"devrait expliquer le message d'erreur." - -#: howto/argparse.rst:509 -msgid "It also behaves similar to \"store_true\" action." -msgstr "Cela se comporte de la même manière que l'action ``\"store_true\"``." - -#: howto/argparse.rst:511 -msgid "" -"Now here's a demonstration of what the \"count\" action gives. You've " -"probably seen this sort of usage before." -msgstr "" -"Maintenant voici une démonstration de ce que l'action ``\"count\"`` fait. " -"Vous avez sûrement vu ce genre d'utilisation auparavant." - -#: howto/argparse.rst:514 -msgid "" -"And if you don't specify the ``-v`` flag, that flag is considered to have " -"``None`` value." -msgstr "" -"Et si vous ne spécifiez pas l'option ``-v``, cette option prendra la valeur " -"``None``." - -#: howto/argparse.rst:517 -msgid "" -"As should be expected, specifying the long form of the flag, we should get " -"the same output." -msgstr "" -"Comme on s'y attend, en spécifiant l'option dans sa forme longue, on devrait " -"obtenir la même sortie." - -#: howto/argparse.rst:520 -msgid "" -"Sadly, our help output isn't very informative on the new ability our script " -"has acquired, but that can always be fixed by improving the documentation " -"for our script (e.g. via the ``help`` keyword argument)." -msgstr "" -"Malheureusement, notre sortie d'aide n'est pas très informative à propos des " -"nouvelles possibilités de notre programme, mais cela peut toujours être " -"corrigé en améliorant sa documentation (en utilisant l'argument ``help``)." - -#: howto/argparse.rst:524 -msgid "That last output exposes a bug in our program." -msgstr "La dernière sortie du programme montre que celui-ci contient un bogue." - -#: howto/argparse.rst:527 -msgid "Let's fix::" -msgstr "Corrigeons ::" - -#: howto/argparse.rst:546 -msgid "And this is what it gives:" -msgstr "Et c'est ce que ça donne :" - -#: howto/argparse.rst:561 -msgid "" -"First output went well, and fixes the bug we had before. That is, we want " -"any value >= 2 to be as verbose as possible." -msgstr "" -"Les premières exécutions du programme sont correctes, et le bogue que nous " -"avons eu est corrigé. Cela dit, nous voulons que n'importe quelle valeur >= " -"2 rende le programme aussi verbeux que possible." - -#: howto/argparse.rst:564 -msgid "Third output not so good." -msgstr "La troisième sortie de programme n'est pas si bien que ça." - -#: howto/argparse.rst:566 -msgid "Let's fix that bug::" -msgstr "Corrigeons ce bogue ::" - -#: howto/argparse.rst:583 -msgid "" -"We've just introduced yet another keyword, ``default``. We've set it to " -"``0`` in order to make it comparable to the other int values. Remember that " -"by default, if an optional argument isn't specified, it gets the ``None`` " -"value, and that cannot be compared to an int value (hence " -"the :exc:`TypeError` exception)." -msgstr "" -"Nous venons juste d'introduire un nouveau mot clef, ``default``. Nous " -"l'avons définit à ``0`` pour le rendre comparable aux autres valeurs. " -"Rappelez-vous que par défaut, si un argument optionnel n'est pas spécifié, " -"il sera définit à ``None``, et ne pourra pas être comparé à une valeur de " -"type entier (une erreur :exc:`TypeError` serait alors levée)." - -#: howto/argparse.rst:590 -msgid "And:" -msgstr "Et :" - -#: howto/argparse.rst:597 -msgid "" -"You can go quite far just with what we've learned so far, and we have only " -"scratched the surface. The :mod:`argparse` module is very powerful, and " -"we'll explore a bit more of it before we end this tutorial." -msgstr "" -"Vous pouvez aller assez loin seulement avec ce que nous avons appris jusqu'à " -"maintenant, et nous n'avons qu’aperçu la surface. Le module :mod:`argparse` " -"est très puissant, et nous allons l'explorer un peu plus avant la fin de ce " -"tutoriel." - -#: howto/argparse.rst:604 -msgid "Getting a little more advanced" -msgstr "Aller un peu plus loin" - -#: howto/argparse.rst:606 -msgid "" -"What if we wanted to expand our tiny program to perform other powers, not " -"just squares::" -msgstr "" -"Qu'en est-il si nous souhaitons étendre notre mini programme pour le rendre " -"capable de calculer d'autres puissances, et pas seulement des carrés ::" - -#: howto/argparse.rst:661 howto/argparse.rst:877 -msgid "Output:" -msgstr "Sortie :" - -#: howto/argparse.rst:644 -msgid "" -"Notice that so far we've been using verbosity level to *change* the text " -"that gets displayed. The following example instead uses verbosity level to " -"display *more* text instead::" -msgstr "" -"Il est à noter que jusqu'à présent nous avons utilisé le niveau de verbosité " -"pour *changer* le texte qui est affiché. L'exemple suivant au contraire " -"utilise le niveau de verbosité pour afficher *plus* de texte à la place ::" - -#: howto/argparse.rst:677 -msgid "Specifying ambiguous arguments" -msgstr "" - -#: howto/argparse.rst:679 -msgid "" -"When there is ambiguity in deciding whether an argument is positional or for " -"an argument, ``--`` can be used to tell :meth:`~ArgumentParser.parse_args` " -"that everything after that is a positional argument::" -msgstr "" - -#: howto/argparse.rst:704 -msgid "Conflicting options" -msgstr "Paramètres en conflit" - -#: howto/argparse.rst:706 -#, fuzzy -msgid "" -"So far, we have been working with two methods of " -"an :class:`argparse.ArgumentParser` instance. Let's introduce a third " -"one, :meth:`~ArgumentParser.add_mutually_exclusive_group`. It allows for us " -"to specify options that conflict with each other. Let's also change the rest " -"of the program so that the new functionality makes more sense: we'll " -"introduce the ``--quiet`` option, which will be the opposite of the ``--" -"verbose`` one::" -msgstr "" -"Jusque là, nous avons travaillé avec deux méthodes d'une instance " -"de :class:`argparse.ArgumentParser`. En voici une " -"troisième, :meth:`add_mutually_exclusive_group`. Elle nous permet de " -"spécifier des paramètres qui sont en conflit entre eux. Changeons aussi le " -"reste du programme de telle sorte que la nouvelle fonctionnalité fasse " -"sens : nous allons introduire l'option ``--quiet``, qui va avoir l'effet " -"opposé de l'option ``--verbose`` ::" - -#: howto/argparse.rst:732 -msgid "" -"Our program is now simpler, and we've lost some functionality for the sake " -"of demonstration. Anyways, here's the output:" -msgstr "" -"Notre programme est maintenant plus simple, et nous avons perdu des " -"fonctionnalités pour faire cette démonstration. Peu importe, voici la sortie " -"du programme :" - -#: howto/argparse.rst:750 -msgid "" -"That should be easy to follow. I've added that last output so you can see " -"the sort of flexibility you get, i.e. mixing long form options with short " -"form ones." -msgstr "" -"Cela devrait être facile à suivre. J'ai ajouté cette dernière sortie pour " -"que vous puissiez voir le genre de flexibilité que vous pouvez avoir, par " -"exemple pour faire un mélange entre des paramètres courts et longs." - -#: howto/argparse.rst:754 -msgid "" -"Before we conclude, you probably want to tell your users the main purpose of " -"your program, just in case they don't know::" -msgstr "" -"Avant d'en finir, vous voudrez certainement dire à vos utilisateurs quel est " -"le but principal de votre programme, juste dans le cas ou ils ne le " -"sauraient pas ::" - -#: howto/argparse.rst:775 -msgid "" -"Note that slight difference in the usage text. Note the ``[-v | -q]``, which " -"tells us that we can either use ``-v`` or ``-q``, but not both at the same " -"time:" -msgstr "" -"Notez cette nuance dans le texte d'utilisation. Les options ``[-v | -q]`` " -"nous disent que nous pouvons utiliser au choix ``-v`` ou ``-q``, mais pas " -"les deux ensemble :" - -#: howto/argparse.rst:797 -msgid "How to translate the argparse output" -msgstr "" - -#: howto/argparse.rst:799 -msgid "" -"The output of the :mod:`argparse` module such as its help text and error " -"messages are all made translatable using the :mod:`gettext` module. This " -"allows applications to easily localize messages produced by :mod:`argparse`. " -"See also :ref:`i18n-howto`." -msgstr "" - -#: howto/argparse.rst:804 -msgid "For instance, in this :mod:`argparse` output:" -msgstr "" - -#: howto/argparse.rst:822 -msgid "" -"The strings ``usage:``, ``positional arguments:``, ``options:`` and ``show " -"this help message and exit`` are all translatable." -msgstr "" - -#: howto/argparse.rst:825 -msgid "" -"In order to translate these strings, they must first be extracted into a " -"``.po`` file. For example, using `Babel `__, run " -"this command:" -msgstr "" - -#: howto/argparse.rst:833 -msgid "" -"This command will extract all translatable strings from the :mod:`argparse` " -"module and output them into a file named ``messages.po``. This command " -"assumes that your Python installation is in ``/usr/lib``." -msgstr "" - -#: howto/argparse.rst:837 -msgid "" -"You can find out the location of the :mod:`argparse` module on your system " -"using this script::" -msgstr "" - -#: howto/argparse.rst:843 -msgid "" -"Once the messages in the ``.po`` file are translated and the translations " -"are installed using :mod:`gettext`, :mod:`argparse` will be able to display " -"the translated messages." -msgstr "" - -#: howto/argparse.rst:847 -msgid "" -"To translate your own strings in the :mod:`argparse` output, " -"use :mod:`gettext`." -msgstr "" - -#: howto/argparse.rst:850 -msgid "Custom type converters" -msgstr "" - -#: howto/argparse.rst:852 -msgid "" -"The :mod:`argparse` module allows you to specify custom type converters for " -"your command-line arguments. This allows you to modify user input before " -"it's stored in the :class:`argparse.Namespace`. This can be useful when you " -"need to pre-process the input before it is used in your program." -msgstr "" - -#: howto/argparse.rst:857 -msgid "" -"When using a custom type converter, you can use any callable that takes a " -"single string argument (the argument value) and returns the converted value. " -"However, if you need to handle more complex scenarios, you can use a custom " -"action class with the **action** parameter instead." -msgstr "" - -#: howto/argparse.rst:862 -msgid "" -"For example, let's say you want to handle arguments with different prefixes " -"and process them accordingly::" -msgstr "" - -#: howto/argparse.rst:884 -#, fuzzy -msgid "In this example, we:" -msgstr "Un exemple ::" - -#: howto/argparse.rst:886 -msgid "" -"Created a parser with custom prefix characters using the ``prefix_chars`` " -"parameter." -msgstr "" - -#: howto/argparse.rst:889 -msgid "" -"Defined two arguments, ``-a`` and ``+a``, which used the ``type`` parameter " -"to create custom type converters to store the value in a tuple with the " -"prefix." -msgstr "" - -#: howto/argparse.rst:892 -msgid "" -"Without the custom type converters, the arguments would have treated the ``-" -"a`` and ``+a`` as the same argument, which would have been undesirable. By " -"using custom type converters, we were able to differentiate between the two " -"arguments." -msgstr "" - -#: howto/argparse.rst:897 -msgid "Conclusion" -msgstr "Conclusion" - -#: howto/argparse.rst:899 -msgid "" -"The :mod:`argparse` module offers a lot more than shown here. Its docs are " -"quite detailed and thorough, and full of examples. Having gone through this " -"tutorial, you should easily digest them without feeling overwhelmed." -msgstr "" -"Le module :mod:`argparse` offre bien plus que ce qui est montré ici. Sa " -"documentation est assez détaillée, complète et pleine d'exemples. En ayant " -"accompli ce tutoriel, vous pourrez facilement comprendre cette documentation " -"sans vous sentir dépassé." - -#, fuzzy -#~ msgid "" -#~ "There are two other modules that fulfill the same task, " -#~ "namely :mod:`getopt` (an equivalent for ``getopt()`` from the C language) " -#~ "and the deprecated :mod:`optparse`. Note also that :mod:`argparse` is " -#~ "based on :mod:`optparse`, and therefore very similar in terms of usage." -#~ msgstr "" -#~ "Il y a deux autres modules qui remplissent le même rôle : :mod:`getopt` " -#~ "(un équivalent de :c:func:`getopt` du langage C) et :mod:`optparse` qui " -#~ "est obsolète. Il faut noter que :mod:`argparse` est basé " -#~ "sur :mod:`optparse` et donc s'utilise de manière très similaire." - -#~ msgid "Tshepang Lekhonkhobe" -#~ msgstr "Tshepang Lekhonkhobe" diff --git a/howto/clinic.po b/howto/clinic.po deleted file mode 100644 index 3d7349c664..0000000000 --- a/howto/clinic.po +++ /dev/null @@ -1,1729 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2022-10-18 12:29+0200\n" -"Last-Translator: Mindiell \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" - -#: howto/clinic.rst:8 -msgid "Argument Clinic How-To" -msgstr "Guide Argument Clinic" - -#: howto/clinic.rst:13 -msgid "" -"The Argument Clinic How-TO has been moved to the `Python Developer's Guide " -"`__." -msgstr "" - -#~ msgid "author" -#~ msgstr "auteur" - -#~ msgid "Larry Hastings" -#~ msgstr "Larry Hastings" - -#~ msgid "Abstract" -#~ msgstr "Résumé" - -#, fuzzy -#~ msgid "" -#~ "Argument Clinic is a preprocessor for CPython C files. Its purpose is to " -#~ "automate all the boilerplate involved with writing argument parsing code " -#~ "for \"builtins\", module level functions, and class methods. This " -#~ "document is divided in three major sections:" -#~ msgstr "" -#~ "Argument Clinic est un préprocesseur pour les fichiers C de CPython. Il " -#~ "permet d'automatiser les tâches répétitives lors de la rédaction du code " -#~ "d'analyse d'arguments pour les modules natifs. Ce document vous montre " -#~ "comment convertir votre première fonction C de façon à ce qu'elle " -#~ "fonctionne avec Argument Clinic, avant d'introduire des usages plus " -#~ "avancés d'Argument Clinic." - -#, fuzzy -#~ msgid "" -#~ "Argument Clinic is considered internal-only for CPython. Its use is not " -#~ "supported for files outside CPython, and no guarantees are made regarding " -#~ "backwards compatibility for future versions. In other words: if you " -#~ "maintain an external C extension for CPython, you're welcome to " -#~ "experiment with Argument Clinic in your own code. But the version of " -#~ "Argument Clinic that ships with the next version of CPython *could* be " -#~ "totally incompatible and break all your code." -#~ msgstr "" -#~ "Argument Clinic est pour le moment considéré comme un outil interne à " -#~ "CPython. Il n'est pas conçu pour gérer des fichiers à l'extérieur de " -#~ "CPython, et sa compatibilité ascendante n'est pas garantie pour les " -#~ "versions futures. En d'autres termes, si vous êtes mainteneur d'une " -#~ "extension C pour CPython, vous pouvez bien sûr expérimenter avec Argument " -#~ "Clinic sur votre propre code. Mais la version d'Argument Clinic livrée " -#~ "avec la prochaine version de CPython *pourrait* être totalement " -#~ "incompatible et casser tout votre code." - -#, fuzzy -#~ msgid "The goals of Argument Clinic" -#~ msgstr "Les objectifs d'Argument Clinic" - -#~ msgid "" -#~ "Argument Clinic's primary goal is to take over responsibility for all " -#~ "argument parsing code inside CPython. This means that, when you convert " -#~ "a function to work with Argument Clinic, that function should no longer " -#~ "do any of its own argument parsing—the code generated by Argument Clinic " -#~ "should be a \"black box\" to you, where CPython calls in at the top, and " -#~ "your code gets called at the bottom, with ``PyObject *args`` (and maybe " -#~ "``PyObject *kwargs``) magically converted into the C variables and types " -#~ "you need." -#~ msgstr "" -#~ "Le premier objectif d'Argument Clinic est de prendre en charge toute " -#~ "l'analyse d'arguments à l'intérieur de CPython. Cela signifie que si vous " -#~ "convertissez une fonction pour utiliser Argument Clinic, cette fonction " -#~ "n'a plus du tout besoin d'analyser ses propres arguments. Le code généré " -#~ "par Argument Clinic doit être une « boîte noire » avec en entrée l'appel " -#~ "de CPython, et en sortie l'appel à votre code. Entre les deux, ``PyObject " -#~ "*args`` (et éventuellement ``PyObject *kwargs``) sont convertis " -#~ "magiquement dans les variables et types C dont vous avez besoin." - -#~ msgid "" -#~ "In order for Argument Clinic to accomplish its primary goal, it must be " -#~ "easy to use. Currently, working with CPython's argument parsing library " -#~ "is a chore, requiring maintaining redundant information in a surprising " -#~ "number of places. When you use Argument Clinic, you don't have to repeat " -#~ "yourself." -#~ msgstr "" -#~ "Pour que le premier objectif d'Argument Clinic soit atteint, il faut " -#~ "qu'il soit facile à utiliser. Actuellement, travailler avec la " -#~ "bibliothèque d'analyse d'arguments de CPython est une corvée. Il faut " -#~ "maintenir une quantité surprenante d'informations redondantes. En " -#~ "utilisant Argument Clinic, il n'est plus nécessaire de se répéter." - -#~ msgid "" -#~ "Obviously, no one would want to use Argument Clinic unless it's solving " -#~ "their problem—and without creating new problems of its own. So it's " -#~ "paramount that Argument Clinic generate correct code. It'd be nice if the " -#~ "code was faster, too, but at the very least it should not introduce a " -#~ "major speed regression. (Eventually Argument Clinic *should* make a " -#~ "major speedup possible—we could rewrite its code generator to produce " -#~ "tailor-made argument parsing code, rather than calling the general-" -#~ "purpose CPython argument parsing library. That would make for the " -#~ "fastest argument parsing possible!)" -#~ msgstr "" -#~ "Certainement, personne ne voudrait utiliser Argument Clinic s'il ne " -#~ "réglait pas son problème sans en créer de nouveaux. Il est donc de la " -#~ "première importance qu'Argument Clinic génère du code correct. Il est " -#~ "aussi souhaitable que le code soit aussi plus rapide. Au minimum, il ne " -#~ "doit pas introduire de régression significative sur la vitesse " -#~ "d'exécution. (Au bout du compte, Argument Clinic *devrait* permettre une " -#~ "accélération importante, on pourrait ré-écrire son générateur de code " -#~ "pour produire du code d'analyse d'arguments adapté au mieux, plutôt que " -#~ "d'utiliser la bibliothèque d'analyse d'arguments générique. On aurait " -#~ "ainsi l'analyse d'arguments la plus rapide possible !)" - -#~ msgid "" -#~ "Additionally, Argument Clinic must be flexible enough to work with any " -#~ "approach to argument parsing. Python has some functions with some very " -#~ "strange parsing behaviors; Argument Clinic's goal is to support all of " -#~ "them." -#~ msgstr "" -#~ "De plus, Argument Clinic doit être suffisamment flexible pour " -#~ "s'accommoder d'approches différentes de l'analyse d'arguments. Il y a des " -#~ "fonctions dans Python dont le traitement des arguments est très étrange ; " -#~ "le but d'Argument Clinic est de les gérer toutes." - -#~ msgid "" -#~ "Finally, the original motivation for Argument Clinic was to provide " -#~ "introspection \"signatures\" for CPython builtins. It used to be, the " -#~ "introspection query functions would throw an exception if you passed in a " -#~ "builtin. With Argument Clinic, that's a thing of the past!" -#~ msgstr "" -#~ "Finalement, la motivation première d'Argument Clinic était de fournir des " -#~ "« signatures » pour l'introspection des composants natifs de CPython. " -#~ "Précédemment, les fonctions d'introspection levaient une exception si " -#~ "vous passiez un composant natif. Grâce à Argument Clinic, ce comportement " -#~ "appartient au passé !" - -#~ msgid "" -#~ "One idea you should keep in mind, as you work with Argument Clinic: the " -#~ "more information you give it, the better job it'll be able to do. " -#~ "Argument Clinic is admittedly relatively simple right now. But as it " -#~ "evolves it will get more sophisticated, and it should be able to do many " -#~ "interesting and smart things with all the information you give it." -#~ msgstr "" -#~ "En travaillant avec Argument Clinic, il faut garder à l'esprit que plus " -#~ "vous lui donnez de détails, meilleur sera son boulot. Argument Clinic est " -#~ "bien sûr assez simple pour le moment. Mais à mesure qu'il évoluera et " -#~ "deviendra plus sophistiqué, il sera capable de faire beaucoup de choses " -#~ "intéressantes et intelligentes à partir de l'information à sa disposition." - -#, fuzzy -#~ msgid "Basic concepts and usage" -#~ msgstr "Concepts de base et utilisation" - -#~ msgid "" -#~ "Argument Clinic ships with CPython; you'll find it in ``Tools/clinic/" -#~ "clinic.py``. If you run that script, specifying a C file as an argument:" -#~ msgstr "" -#~ "Argument Clinic est livré avec CPython ; vous le trouverez dans ``Tools/" -#~ "clinic/clinic.py``. Si vous exécutez ce script, en spécifiant un fichier " -#~ "C comme argument :" - -#~ msgid "" -#~ "Argument Clinic will scan over the file looking for lines that look " -#~ "exactly like this:" -#~ msgstr "Argument Clinic va parcourir le fichier en cherchant cette ligne :" - -#~ msgid "" -#~ "When it finds one, it reads everything up to a line that looks exactly " -#~ "like this:" -#~ msgstr "" -#~ "Lorsqu'il en trouve une, il lit tout ce qui suit, jusqu'à cette ligne :" - -#~ msgid "" -#~ "Everything in between these two lines is input for Argument Clinic. All " -#~ "of these lines, including the beginning and ending comment lines, are " -#~ "collectively called an Argument Clinic \"block\"." -#~ msgstr "" -#~ "Tout ce qui se trouve entre ces deux lignes est une entrée pour Argument " -#~ "Clinic. Toutes ces lignes, en incluant les commentaires de début et de " -#~ "fin, sont appelées collectivement un « bloc » d'Argument Clinic." - -#~ msgid "" -#~ "When Argument Clinic parses one of these blocks, it generates output. " -#~ "This output is rewritten into the C file immediately after the block, " -#~ "followed by a comment containing a checksum. The Argument Clinic block " -#~ "now looks like this:" -#~ msgstr "" -#~ "Lorsque *Argument Clinic* analyse l'un de ces blocs, il produit une " -#~ "sortie. Cette sortie est réécrite dans le fichier C immédiatement après " -#~ "le bloc, suivie par un commentaire contenant une somme de contrôle. Le " -#~ "bloc Argument Clinic ressemble maintenant à cela :" - -#~ msgid "" -#~ "If you run Argument Clinic on the same file a second time, Argument " -#~ "Clinic will discard the old output and write out the new output with a " -#~ "fresh checksum line. However, if the input hasn't changed, the output " -#~ "won't change either." -#~ msgstr "" -#~ "Si vous exécutez de nouveau Argument Clinic sur ce même fichier, Argument " -#~ "Clinic supprime la vieille sortie, et écrit la nouvelle sortie avec une " -#~ "ligne de somme de contrôle mise à jour. Cependant, si l'entrée n'a pas " -#~ "changé, la sortie ne change pas non plus." - -#~ msgid "" -#~ "You should never modify the output portion of an Argument Clinic block. " -#~ "Instead, change the input until it produces the output you want. (That's " -#~ "the purpose of the checksum—to detect if someone changed the output, as " -#~ "these edits would be lost the next time Argument Clinic writes out fresh " -#~ "output.)" -#~ msgstr "" -#~ "Vous ne devez jamais modifier la sortie d'un bloc Argument Clinic. " -#~ "Changez plutôt l'entrée jusqu'à obtenir la sortie souhaitée (c'est " -#~ "précisément le but de la somme de contrôle, détecter si la sortie a été " -#~ "changée. En effet, ces modifications seront perdues après que Argument " -#~ "Clinic a écrit une nouvelle sortie)." - -#~ msgid "" -#~ "For the sake of clarity, here's the terminology we'll use with Argument " -#~ "Clinic:" -#~ msgstr "Par souci de clarté, voilà la terminologie que nous emploierons :" - -#~ msgid "" -#~ "The first line of the comment (``/*[clinic input]``) is the *start line*." -#~ msgstr "" -#~ "La première ligne du commentaire (``/*[clinic input]``) est la *ligne de " -#~ "début*." - -#~ msgid "" -#~ "The last line of the initial comment (``[clinic start generated code]*/" -#~ "``) is the *end line*." -#~ msgstr "" -#~ "La dernière ligne du commentaire initial (``[clinic start generated " -#~ "code]*/``) est la *ligne de fin*." - -#~ msgid "" -#~ "The last line (``/*[clinic end generated code: checksum=...]*/``) is the " -#~ "*checksum line*." -#~ msgstr "" -#~ "La dernière ligne (``/*[clinic end generated code: checksum=...]*/``) est " -#~ "la *ligne de contrôle*." - -#~ msgid "In between the start line and the end line is the *input*." -#~ msgstr "" -#~ "On appelle *entrée* ce qui se trouve entre la ligne de début et la ligne " -#~ "de fin." - -#~ msgid "In between the end line and the checksum line is the *output*." -#~ msgstr "" -#~ "Et on appelle *sortie* ce qui se trouve entre la ligne de fin et la ligne " -#~ "de contrôle." - -#~ msgid "" -#~ "All the text collectively, from the start line to the checksum line " -#~ "inclusively, is the *block*. (A block that hasn't been successfully " -#~ "processed by Argument Clinic yet doesn't have output or a checksum line, " -#~ "but it's still considered a block.)" -#~ msgstr "" -#~ "L'ensemble du texte, depuis la ligne de début jusqu'à la ligne de " -#~ "contrôle incluse s'appelle le *bloc*. (Un bloc qui n'a pas encore été " -#~ "traité avec succès par Argument Clinic n'a pas encore de sortie ni de " -#~ "ligne de contrôle mais est quand même considéré comme un bloc)" - -#~ msgid "" -#~ "The best way to get a sense of how Argument Clinic works is to convert a " -#~ "function to work with it. Here, then, are the bare minimum steps you'd " -#~ "need to follow to convert a function to work with Argument Clinic. Note " -#~ "that for code you plan to check in to CPython, you really should take the " -#~ "conversion farther, using some of the advanced concepts you'll see later " -#~ "on in the document (like \"return converters\" and \"self converters\"). " -#~ "But we'll keep it simple for this walkthrough so you can learn." -#~ msgstr "" -#~ "La meilleure manière de comprendre le fonctionnement d'Argument Clinic " -#~ "est de convertir une fonction. Voici donc les étapes minimales que vous " -#~ "devez suivre pour convertir une fonction de manière à ce qu'elle " -#~ "fonctionne avec Argument Clinic. Remarquez que pour du code que vous " -#~ "comptez inclure dans CPython, vous devrez certainement pousser plus loin " -#~ "la conversion, en utilisant les concepts avancés que nous verrons plus " -#~ "loin dans ce document (comme ``return converters`` et ``self " -#~ "converters``). Mais concentrons nous pour le moment sur les choses " -#~ "simples." - -#~ msgid "Let's dive in!" -#~ msgstr "En route !" - -#~ msgid "" -#~ "Make sure you're working with a freshly updated checkout of the CPython " -#~ "trunk." -#~ msgstr "" -#~ "Assurez-vous que vous travaillez sur une copie récemment mise à jour du " -#~ "code de CPython." - -#~ msgid "" -#~ "Find a Python builtin that calls either :c:func:`PyArg_ParseTuple` " -#~ "or :c:func:`PyArg_ParseTupleAndKeywords`, and hasn't been converted to " -#~ "work with Argument Clinic yet. For my example I'm using " -#~ "``_pickle.Pickler.dump()``." -#~ msgstr "" -#~ "Trouvez une fonction native de Python qui fait appel " -#~ "à :c:func:`PyArg_ParseTuple` ou :c:func:`PyArg_ParseTupleAndKeywords`, et " -#~ "n'a pas encore été convertie par Argument Clinic. Pour cet exemple, " -#~ "j'utilise ``_pickle.Pickler.dump()``." - -#~ msgid "" -#~ "If the call to the ``PyArg_Parse`` function uses any of the following " -#~ "format units:" -#~ msgstr "Si l'appel à ``PyArg_Parse`` utilise l'un des formats suivants :" - -#~ msgid "" -#~ "or if it has multiple calls to :c:func:`PyArg_ParseTuple`, you should " -#~ "choose a different function. Argument Clinic *does* support all of these " -#~ "scenarios. But these are advanced topics—let's do something simpler for " -#~ "your first function." -#~ msgstr "" -#~ "ou s'il y a de multiples appels à :c:func:`PyArg_ParseTuple`, choisissez " -#~ "une fonction différente. Argument Clinic gère tous ces scénarios, mais ce " -#~ "sont des sujets trop avancés pour notre première fonction." - -#~ msgid "" -#~ "Also, if the function has multiple calls to :c:func:`PyArg_ParseTuple` " -#~ "or :c:func:`PyArg_ParseTupleAndKeywords` where it supports different " -#~ "types for the same argument, or if the function uses something besides " -#~ "PyArg_Parse functions to parse its arguments, it probably isn't suitable " -#~ "for conversion to Argument Clinic. Argument Clinic doesn't support " -#~ "generic functions or polymorphic parameters." -#~ msgstr "" -#~ "Par ailleurs, si la fonction a des appels multiples " -#~ "à :c:func:`PyArg_ParseTuple` ou :c:func:`PyArg_ParseTupleAndKeywords` " -#~ "dans lesquels elle permet différents types pour les mêmes arguments, il " -#~ "n'est probablement pas possible de la convertir pour Argument Clinic. " -#~ "Argument Clinic ne gère pas les fonctions génériques ou les paramètres " -#~ "polymorphes." - -#~ msgid "" -#~ "Add the following boilerplate above the function, creating our block::" -#~ msgstr "" -#~ "Ajoutez les lignes standard suivantes au-dessus de votre fonction pour " -#~ "créer notre bloc ::" - -#~ msgid "" -#~ "Cut the docstring and paste it in between the ``[clinic]`` lines, " -#~ "removing all the junk that makes it a properly quoted C string. When " -#~ "you're done you should have just the text, based at the left margin, with " -#~ "no line wider than 80 characters. (Argument Clinic will preserve indents " -#~ "inside the docstring.)" -#~ msgstr "" -#~ "Coupez la *docstring* et collez-la entre les lignes commençant par " -#~ "``[clinic]``, en enlevant tout le bazar qui en fait une chaîne de " -#~ "caractères correcte en C. Une fois que c'est fait, vous devez avoir " -#~ "seulement le texte, aligné à gauche, sans ligne plus longue que 80 " -#~ "caractères (Argument Clinic préserve l'indentation à l'intérieur de la " -#~ "*docstring*)." - -#~ msgid "" -#~ "If the old docstring had a first line that looked like a function " -#~ "signature, throw that line away. (The docstring doesn't need it anymore—" -#~ "when you use ``help()`` on your builtin in the future, the first line " -#~ "will be built automatically based on the function's signature.)" -#~ msgstr "" -#~ "Si l'ancienne *docstring* commençait par une ligne qui ressemble à une " -#~ "signature de fonction, supprimez cette ligne. (Elle n'est plus nécessaire " -#~ "pour la *docstring*. Dans le futur, quand vous utiliserez ``help()`` pour " -#~ "une fonction native, la première ligne sera construite automatiquement à " -#~ "partir de la signature de la fonction.)" - -#~ msgid "Sample::" -#~ msgstr "Échantillon ::" - -#~ msgid "" -#~ "If your docstring doesn't have a \"summary\" line, Argument Clinic will " -#~ "complain. So let's make sure it has one. The \"summary\" line should be " -#~ "a paragraph consisting of a single 80-column line at the beginning of the " -#~ "docstring." -#~ msgstr "" -#~ "Si votre *docstring* ne contient pas de ligne « résumé », Argument Clinic " -#~ "va se plaindre. Assurons-nous donc qu'il y en a une. La ligne « résumé » " -#~ "doit être un paragraphe consistant en une seule ligne de 80 colonnes au " -#~ "début de la *docstring*." - -#~ msgid "" -#~ "(Our example docstring consists solely of a summary line, so the sample " -#~ "code doesn't have to change for this step.)" -#~ msgstr "" -#~ "Dans notre exemple, la *docstring* est seulement composée d'une ligne de " -#~ "résumé, donc le code ne change pas à cette étape." - -#~ msgid "" -#~ "Above the docstring, enter the name of the function, followed by a blank " -#~ "line. This should be the Python name of the function, and should be the " -#~ "full dotted path to the function—it should start with the name of the " -#~ "module, include any sub-modules, and if the function is a method on a " -#~ "class it should include the class name too." -#~ msgstr "" -#~ "Au-dessus de la *docstring*, entrez le nom de la fonction, suivi d'une " -#~ "ligne vide. Ce doit être le nom de la fonction en Python et être le " -#~ "chemin complet jusqu'à la fonction. Il doit commencer par le nom du " -#~ "module, suivi de tous les sous-modules, puis, si la fonction est une " -#~ "méthode de classe, inclure aussi le nom de la classe." - -#~ msgid "" -#~ "If this is the first time that module or class has been used with " -#~ "Argument Clinic in this C file, you must declare the module and/or " -#~ "class. Proper Argument Clinic hygiene prefers declaring these in a " -#~ "separate block somewhere near the top of the C file, in the same way that " -#~ "include files and statics go at the top. (In our sample code we'll just " -#~ "show the two blocks next to each other.)" -#~ msgstr "" -#~ "Si c'est la première fois que ce module ou cette classe est utilisée avec " -#~ "Argument Clinic dans ce fichier C, vous devez déclarer votre module et/ou " -#~ "votre classe. Pour suivre de bonnes pratiques avec Argument Clinic, il " -#~ "vaut mieux faire ces déclarations quelque part en tête du fichier C, " -#~ "comme les fichiers inclus et les statiques (dans cet extrait, nous " -#~ "montrons les deux blocs à côté l'un de l'autre)." - -#~ msgid "" -#~ "The name of the class and module should be the same as the one seen by " -#~ "Python. Check the name defined in the :c:type:`PyModuleDef` " -#~ "or :c:type:`PyTypeObject` as appropriate." -#~ msgstr "" -#~ "Le nom de la classe et du module doivent être les mêmes que ceux vus par " -#~ "Python. Selon le cas, référez-vous à :c:type:`PyModuleDef` " -#~ "ou :c:type:`PyTypeObject`" - -#~ msgid "" -#~ "When you declare a class, you must also specify two aspects of its type " -#~ "in C: the type declaration you'd use for a pointer to an instance of this " -#~ "class, and a pointer to the :c:type:`PyTypeObject` for this class." -#~ msgstr "" -#~ "Quand vous déclarez une classe, vous devez aussi spécifier deux aspects " -#~ "de son type en C : la déclaration de type que vous utiliseriez pour un " -#~ "pointeur vers une instance de cette classe et un pointeur vers " -#~ "le :c:type:`PyTypeObject` de cette classe." - -#~ msgid "" -#~ "Declare each of the parameters to the function. Each parameter should " -#~ "get its own line. All the parameter lines should be indented from the " -#~ "function name and the docstring." -#~ msgstr "" -#~ "Déclarez chacun des paramètres de la fonction. Chaque paramètre doit être " -#~ "sur une ligne séparée. Tous les paramètres doivent être indentés par " -#~ "rapport au nom de la fonction et à la *docstring*." - -#~ msgid "The general form of these parameter lines is as follows:" -#~ msgstr "La forme générale de ces paramètres est la suivante :" - -#~ msgid "If the parameter has a default value, add that after the converter:" -#~ msgstr "" -#~ "Si le paramètre a une valeur par défaut, ajoutez ceci après le " -#~ "convertisseur :" - -#~ msgid "" -#~ "Argument Clinic's support for \"default values\" is quite sophisticated; " -#~ "please see :ref:`the section below on default values ` " -#~ "for more information." -#~ msgstr "" -#~ "Argument Clinic peut traiter les « valeurs par défaut » de manière assez " -#~ "sophistiquée ; voyez :ref:`la section ci-dessous sur les valeurs par " -#~ "défaut ` pour plus de détails." - -#~ msgid "Add a blank line below the parameters." -#~ msgstr "Ajoutez une ligne vide sous les paramètres." - -#~ msgid "" -#~ "What's a \"converter\"? It establishes both the type of the variable " -#~ "used in C, and the method to convert the Python value into a C value at " -#~ "runtime. For now you're going to use what's called a \"legacy converter\"—" -#~ "a convenience syntax intended to make porting old code into Argument " -#~ "Clinic easier." -#~ msgstr "" -#~ "Que fait le « convertisseur » ? Il établit à la fois le type de variable " -#~ "utilisé en C et la méthode pour convertir la valeur Python en valeur C " -#~ "lors de l'exécution. Pour le moment, vous allez utiliser ce qui " -#~ "s'appelle un « convertisseur hérité », une syntaxe de convenance qui " -#~ "facilite le portage de vieux code dans Argument Clinic." - -#~ msgid "" -#~ "For each parameter, copy the \"format unit\" for that parameter from the " -#~ "``PyArg_Parse()`` format argument and specify *that* as its converter, as " -#~ "a quoted string. (\"format unit\" is the formal name for the one-to-" -#~ "three character substring of the ``format`` parameter that tells the " -#~ "argument parsing function what the type of the variable is and how to " -#~ "convert it. For more on format units please see :ref:`arg-parsing`.)" -#~ msgstr "" -#~ "Pour chaque paramètre, copiez la « spécification de format » de ce " -#~ "paramètre à partir de l'argument de ``PyArg_Parse()`` et spécifiez *ça* " -#~ "comme convertisseur, entre guillemets. (la « spécification de format » " -#~ "est le nom formel pour la partie du paramètre ``format``, de un à trois " -#~ "caractères, qui indique à la fonction d'analyse d'arguments quel est le " -#~ "type de la variable et comment la convertir. Pour plus d'information sur " -#~ "les spécifications de format, voyez :ref:`arg-parsing`.)" - -#~ msgid "" -#~ "For multicharacter format units like ``z#``, use the entire two-or-three " -#~ "character string." -#~ msgstr "" -#~ "Pour des spécifications de format de plusieurs caractères, comme ``z#``, " -#~ "utilisez l'ensemble des 2 ou 3 caractères de la chaîne." - -#~ msgid "" -#~ "If your function has ``|`` in the format string, meaning some parameters " -#~ "have default values, you can ignore it. Argument Clinic infers which " -#~ "parameters are optional based on whether or not they have default values." -#~ msgstr "" -#~ "Si votre fonction a le caractère ``|`` dans son format, parce que " -#~ "certains paramètres ont des valeurs par défaut, vous pouvez l'ignorer. " -#~ "Argument Clinic infère quels paramètres sont optionnels selon s'ils ont " -#~ "ou non une valeur par défaut." - -#~ msgid "" -#~ "If your function has ``$`` in the format string, meaning it takes keyword-" -#~ "only arguments, specify ``*`` on a line by itself before the first " -#~ "keyword-only argument, indented the same as the parameter lines." -#~ msgstr "" -#~ "Si votre fonction a le caractère ``$`` dans son format, parce qu'elle " -#~ "n'accepte que des arguments nommés, spécifiez ``*`` sur une ligne à part, " -#~ "avant le premier argument nommé, avec la même indentation que les lignes " -#~ "de paramètres." - -#~ msgid "(``_pickle.Pickler.dump`` has neither, so our sample is unchanged.)" -#~ msgstr "" -#~ "(``_pickle.Pickler.dump`` n'a ni l'un ni l'autre, donc notre exemple est " -#~ "inchangé.)" - -#~ msgid "" -#~ "If the existing C function calls :c:func:`PyArg_ParseTuple` (as opposed " -#~ "to :c:func:`PyArg_ParseTupleAndKeywords`), then all its arguments are " -#~ "positional-only." -#~ msgstr "" -#~ "Si la fonction C existante appelle :c:func:`PyArg_ParseTuple` (et " -#~ "pas :c:func:`PyArg_ParseTupleAndKeywords`), alors tous ses arguments sont " -#~ "uniquement positionnels." - -#~ msgid "" -#~ "To mark all parameters as positional-only in Argument Clinic, add a ``/`` " -#~ "on a line by itself after the last parameter, indented the same as the " -#~ "parameter lines." -#~ msgstr "" -#~ "Pour marquer tous les paramètres comme uniquement positionnels dans " -#~ "Argument Clinic, ajoutez ``/`` sur une ligne à part après le dernier " -#~ "paramètre, avec la même indentation que les lignes de paramètres." - -#~ msgid "" -#~ "Currently this is all-or-nothing; either all parameters are positional-" -#~ "only, or none of them are. (In the future Argument Clinic may relax this " -#~ "restriction.)" -#~ msgstr "" -#~ "Pour le moment, c'est tout ou rien ; soit tous les paramètres sont " -#~ "uniquement positionnels, ou aucun ne l'est. (Dans le futur, Argument " -#~ "Clinic supprimera peut-être cette restriction.)" - -#~ msgid "" -#~ "It's helpful to write a per-parameter docstring for each parameter. But " -#~ "per-parameter docstrings are optional; you can skip this step if you " -#~ "prefer." -#~ msgstr "" -#~ "Il est utile d'ajouter une *docstring* pour chaque paramètre, mais c'est " -#~ "optionnel ; vous pouvez passer cette étape si vous préférez." - -#~ msgid "" -#~ "Here's how to add a per-parameter docstring. The first line of the per-" -#~ "parameter docstring must be indented further than the parameter " -#~ "definition. The left margin of this first line establishes the left " -#~ "margin for the whole per-parameter docstring; all the text you write will " -#~ "be outdented by this amount. You can write as much text as you like, " -#~ "across multiple lines if you wish." -#~ msgstr "" -#~ "Voici comment ajouter la *docstring* d'un paramètre. La première ligne " -#~ "doit être plus indentée que la définition du paramètre. La marge gauche " -#~ "de cette première ligne établit la marge gauche pour l'ensemble de la " -#~ "*docstring* de ce paramètre ; tout le texte que vous écrivez sera indenté " -#~ "de cette quantité. Vous pouvez écrire autant de texte que vous le " -#~ "souhaitez, sur plusieurs lignes." - -#~ msgid "" -#~ "Save and close the file, then run ``Tools/clinic/clinic.py`` on it. With " -#~ "luck everything worked---your block now has output, and a ``.c.h`` file " -#~ "has been generated! Reopen the file in your text editor to see::" -#~ msgstr "" -#~ "Enregistrez puis fermez le fichier, puis exécutez ``Tools/clinic/" -#~ "clinic.py`` dessus. Avec un peu de chance tout a fonctionné, votre bloc a " -#~ "maintenant une sortie, et un fichier ``.c.h`` a été généré ! Ré-ouvrez le " -#~ "fichier dans votre éditeur pour voir ::" - -#~ msgid "" -#~ "Obviously, if Argument Clinic didn't produce any output, it's because it " -#~ "found an error in your input. Keep fixing your errors and retrying until " -#~ "Argument Clinic processes your file without complaint." -#~ msgstr "" -#~ "Bien sûr, si Argument Clinic n'a pas produit de sortie, c'est qu'il a " -#~ "rencontré une erreur dans votre entrée. Corrigez vos erreurs et réessayez " -#~ "jusqu'à ce qu'Argument Clinic traite votre fichier sans problème." - -#~ msgid "" -#~ "For readability, most of the glue code has been generated to a ``.c.h`` " -#~ "file. You'll need to include that in your original ``.c`` file, " -#~ "typically right after the clinic module block::" -#~ msgstr "" -#~ "Pour plus de visibilité, la plupart du code a été écrit dans un fichier " -#~ "``.c.h``. Vous devez l'inclure dans votre fichier ``.c`` original, " -#~ "typiquement juste après le bloc du module *clinic* ::" - -#~ msgid "" -#~ "Double-check that the argument-parsing code Argument Clinic generated " -#~ "looks basically the same as the existing code." -#~ msgstr "" -#~ "Vérifiez bien que le code d'analyse d'arguments généré par Argument " -#~ "Clinic ressemble bien au code existant." - -#~ msgid "" -#~ "First, ensure both places use the same argument-parsing function. The " -#~ "existing code must call either :c:func:`PyArg_ParseTuple` " -#~ "or :c:func:`PyArg_ParseTupleAndKeywords`; ensure that the code generated " -#~ "by Argument Clinic calls the *exact* same function." -#~ msgstr "" -#~ "Assurez vous premièrement que les deux codes utilisent la même fonction " -#~ "pour analyser les arguments. Le code existant doit appeler " -#~ "soit :c:func:`PyArg_ParseTuple` " -#~ "soit :c:func:`PyArg_ParseTupleAndKeywords` ; assurez vous que le code " -#~ "généré par Argument Clinic appelle *exactement* la même fonction." - -#~ msgid "" -#~ "Second, the format string passed in to :c:func:`PyArg_ParseTuple` " -#~ "or :c:func:`PyArg_ParseTupleAndKeywords` should be *exactly* the same as " -#~ "the hand-written one in the existing function, up to the colon or semi-" -#~ "colon." -#~ msgstr "" -#~ "Deuxièmement, la chaîne de caractère du format passée " -#~ "dans :c:func:`PyArg_ParseTuple` ou :c:func:`PyArg_ParseTupleAndKeywords` " -#~ "doit être *exactement* la même que celle écrite à la main, jusqu'aux deux " -#~ "points ou au point virgule." - -#~ msgid "" -#~ "(Argument Clinic always generates its format strings with a ``:`` " -#~ "followed by the name of the function. If the existing code's format " -#~ "string ends with ``;``, to provide usage help, this change is harmless—" -#~ "don't worry about it.)" -#~ msgstr "" -#~ "(Argument Clinic génère toujours ses chaînes de format avec ``:`` suivi " -#~ "du nom de la fonction. Si la chaîne de format du code existant termine " -#~ "par ``;``, pour fournir une aide sur l'utilisation, ce changement n'a " -#~ "aucun effet, ne vous en souciez pas.)" - -#~ msgid "" -#~ "Third, for parameters whose format units require two arguments (like a " -#~ "length variable, or an encoding string, or a pointer to a conversion " -#~ "function), ensure that the second argument is *exactly* the same between " -#~ "the two invocations." -#~ msgstr "" -#~ "Troisièmement, pour des paramètres dont la spécification de format " -#~ "nécessite deux arguments (comme une variable de longueur, ou une chaîne " -#~ "d'encodage, ou un pointeur vers une fonction de conversion), assurez vous " -#~ "que ce deuxième argument est *exactement* le même entre les deux " -#~ "invocations." - -#~ msgid "" -#~ "Fourth, inside the output portion of the block you'll find a preprocessor " -#~ "macro defining the appropriate static :c:type:`PyMethodDef` structure for " -#~ "this builtin::" -#~ msgstr "" -#~ "Quatrièmement, à l'intérieur de la section sortie du bloc, vous trouverez " -#~ "une macro pré-processeur qui définit les structures " -#~ "statiques :c:type:`PyMethodDef` appropriées pour ce module natif ::" - -#~ msgid "" -#~ "This static structure should be *exactly* the same as the existing " -#~ "static :c:type:`PyMethodDef` structure for this builtin." -#~ msgstr "" -#~ "Cette structure statique doit être *exactement* la même que la structure " -#~ "statique :c:type:`PyMethodDef` existante pour ce module natif." - -#~ msgid "" -#~ "If any of these items differ in *any way*, adjust your Argument Clinic " -#~ "function specification and rerun ``Tools/clinic/clinic.py`` until they " -#~ "*are* the same." -#~ msgstr "" -#~ "Si l'un de ces éléments diffère *de quelque façon que se soit*, ajustez " -#~ "la spécification de fonction d'Argument Clinic et exécutez de nouveau " -#~ "``Tools/clinic/clinic.py`` jusqu'à ce qu'elles soient identiques." - -#~ msgid "" -#~ "Notice that the last line of its output is the declaration of your " -#~ "\"impl\" function. This is where the builtin's implementation goes. " -#~ "Delete the existing prototype of the function you're modifying, but leave " -#~ "the opening curly brace. Now delete its argument parsing code and the " -#~ "declarations of all the variables it dumps the arguments into. Notice how " -#~ "the Python arguments are now arguments to this impl function; if the " -#~ "implementation used different names for these variables, fix it." -#~ msgstr "" -#~ "Notez que la dernière ligne de cette sortie est la déclaration de votre " -#~ "fonction ``impl``. C'est là que se trouve l'implémentation de la fonction " -#~ "native. Supprimez le prototype de la fonction que vous modifiez, mais " -#~ "laissez l'accolade ouverte. Maintenant, supprimez tout le code d'analyse " -#~ "d'arguments et les déclarations de toutes les variables auxquelles il " -#~ "assigne les arguments. Vous voyez que désormais les arguments Python sont " -#~ "ceux de cette fonction ``impl`` ; si l'implémentation utilise des noms " -#~ "différents pour ces variables, corrigez-les." - -#~ msgid "" -#~ "Let's reiterate, just because it's kind of weird. Your code should now " -#~ "look like this::" -#~ msgstr "" -#~ "Comme c'est un peu bizarre, ça vaut la peine de répéter. Votre fonction " -#~ "doit ressembler à ça ::" - -#~ msgid "" -#~ "Argument Clinic generated the checksum line and the function prototype " -#~ "just above it. You should write the opening (and closing) curly braces " -#~ "for the function, and the implementation inside." -#~ msgstr "" -#~ "Argument Clinic génère une ligne de contrôle et la fonction prototype " -#~ "juste au-dessus. Vous devez écrire les accolades d'ouverture (et de " -#~ "fermeture) pour la fonction, et l’implémentation à l'intérieur." - -#~ msgid "" -#~ "Remember the macro with the :c:type:`PyMethodDef` structure for this " -#~ "function? Find the existing :c:type:`PyMethodDef` structure for this " -#~ "function and replace it with a reference to the macro. (If the builtin " -#~ "is at module scope, this will probably be very near the end of the file; " -#~ "if the builtin is a class method, this will probably be below but " -#~ "relatively near to the implementation.)" -#~ msgstr "" -#~ "Vous vous souvenez de la macro avec la structure :c:type:`PyMethodDef` " -#~ "pour cette fonction ? Trouvez la structure :c:type:`PyMethodDef` " -#~ "existante pour cette fonction et remplacez là par une référence à cette " -#~ "macro. (Si la fonction native est définie au niveau d'un module, vous le " -#~ "trouverez certainement vers la fin du fichier ; s'il s'agit d'une méthode " -#~ "de classe, se sera sans doute plus bas, mais relativement près de " -#~ "l'implémentation.)" - -#~ msgid "" -#~ "Note that the body of the macro contains a trailing comma. So when you " -#~ "replace the existing static :c:type:`PyMethodDef` structure with the " -#~ "macro, *don't* add a comma to the end." -#~ msgstr "" -#~ "Notez que le corps de la macro contient une virgule finale. Donc, lorsque " -#~ "vous remplacez la structure statique :c:type:`PyMethodDef` par la macro, " -#~ "*n'ajoutez pas* de virgule à la fin." - -#, fuzzy -#~ msgid "" -#~ "Compile, then run the relevant portions of the regression-test suite. " -#~ "This change should not introduce any new compile-time warnings or errors, " -#~ "and there should be no externally visible change to Python's behavior." -#~ msgstr "" -#~ "Compilez, puis faites tourner les portions idoines de la suite de tests " -#~ "de régressions. Ce changement ne doit introduire aucun nouveau message " -#~ "d'erreur ou avertissement à la compilation, et il ne devrait y avoir " -#~ "aucun changement visible de l'extérieur au comportement de Python." - -#~ msgid "" -#~ "Well, except for one difference: ``inspect.signature()`` run on your " -#~ "function should now provide a valid signature!" -#~ msgstr "" -#~ "Enfin, à part pour une différence : si vous exécutez " -#~ "``inspect.signature()`` sur votre fonction, vous obtiendrez maintenant " -#~ "une signature valide !" - -#~ msgid "" -#~ "Congratulations, you've ported your first function to work with Argument " -#~ "Clinic!" -#~ msgstr "" -#~ "Félicitations, vous avez adapté votre première fonction pour qu'elle " -#~ "utilise Argument Clinic !" - -#, fuzzy -#~ msgid "" -#~ "How to to rename C functions and variables generated by Argument Clinic" -#~ msgstr "Renommer les fonctions et variables C générées par Argument Clinic" - -#~ msgid "" -#~ "Argument Clinic automatically names the functions it generates for you. " -#~ "Occasionally this may cause a problem, if the generated name collides " -#~ "with the name of an existing C function. There's an easy solution: " -#~ "override the names used for the C functions. Just add the keyword " -#~ "``\"as\"`` to your function declaration line, followed by the function " -#~ "name you wish to use. Argument Clinic will use that function name for the " -#~ "base (generated) function, then add ``\"_impl\"`` to the end and use that " -#~ "for the name of the impl function." -#~ msgstr "" -#~ "Argument Clinic nomme automatiquement les fonctions qu'il génère. " -#~ "Parfois, cela peut poser des problèmes, si le nom généré entre en " -#~ "collision avec le nom d'une fonction C existante. Il y a une solution " -#~ "simple : surcharger les noms utilisés par les fonctions C. Ajoutez " -#~ "simplement le mot clef ``\"as\"`` sur la ligne de la déclaration de la " -#~ "fonction, suivi par le nom de la fonction que vous souhaitez utiliser. " -#~ "Argument Clinic utilisera ce nom de fonction pour la fonction de base " -#~ "(celle générée), et ajoutera ``\"_impl\"`` à la fin et utilisera ce nom " -#~ "pour la fonction ``impl``." - -#~ msgid "" -#~ "For example, if we wanted to rename the C function names generated for " -#~ "``pickle.Pickler.dump``, it'd look like this::" -#~ msgstr "" -#~ "Par exemple, si nous voulons renommer les noms de fonction C générés pour " -#~ "``pickle.Pickler.dump``, ça ressemblerait à ça ::" - -#~ msgid "" -#~ "The base function would now be named ``pickler_dumper()``, and the impl " -#~ "function would now be named ``pickler_dumper_impl()``." -#~ msgstr "" -#~ "La fonction de base sera maintenant nommée ``pickler_dumper()``, et la " -#~ "fonction ``impl`` sera maintenant nommée ``pickler_dumper_impl()``." - -#~ msgid "" -#~ "Similarly, you may have a problem where you want to give a parameter a " -#~ "specific Python name, but that name may be inconvenient in C. Argument " -#~ "Clinic allows you to give a parameter different names in Python and in C, " -#~ "using the same ``\"as\"`` syntax::" -#~ msgstr "" -#~ "De même, vous pouvez avoir un problème quand vous souhaiterez donner à un " -#~ "paramètre un nom spécifique à Python, mais ce nom peut être gênant en C. " -#~ "Argument Clinic vous permet de donner à un paramètre des noms différents " -#~ "en Python et en C ::" - -#~ msgid "" -#~ "Here, the name used in Python (in the signature and the ``keywords`` " -#~ "array) would be ``file``, but the C variable would be named ``file_obj``." -#~ msgstr "" -#~ "Ici, le nom utilisé en Python (dans la signature ainsi que le tableau des " -#~ "``keywords``) sera ``file``, et la variable C s'appellera ``file_obj``." - -#~ msgid "You can use this to rename the ``self`` parameter too!" -#~ msgstr "Vous pouvez utiliser ceci pour renommer aussi le paramètre ``self``" - -#, fuzzy -#~ msgid "How to convert functions using ``PyArg_UnpackTuple``" -#~ msgstr "Conversion des fonctions en utilisant *PyArg_UnpackTuple*" - -#~ msgid "" -#~ "To convert a function parsing its arguments " -#~ "with :c:func:`PyArg_UnpackTuple`, simply write out all the arguments, " -#~ "specifying each as an ``object``. You may specify the ``type`` argument " -#~ "to cast the type as appropriate. All arguments should be marked " -#~ "positional-only (add a ``/`` on a line by itself after the last argument)." -#~ msgstr "" -#~ "Afin de convertir une fonction analysant ses arguments " -#~ "via :c:func:`PyArg_UnpackTuple`, écrivez simplement tous les arguments, " -#~ "en les spécifiant comme des ``object``. Vous pouvez spécifier également " -#~ "le ``type`` d'argument afin de le forcer au type approprié. Tous les " -#~ "arguments devraient être marqués comme seulement positionnels (ajoutez un " -#~ "``/`` seul sur la ligne après le dernier argument)." - -#~ msgid "" -#~ "Currently the generated code will use :c:func:`PyArg_ParseTuple`, but " -#~ "this will change soon." -#~ msgstr "" -#~ "Actuellement, le code généré utilise :c:func:`PyArg_ParseTuple`, mais " -#~ "cela va bientôt changer." - -#, fuzzy -#~ msgid "How to use optional groups" -#~ msgstr "Groupes optionnels" - -#~ msgid "" -#~ "Some legacy functions have a tricky approach to parsing their arguments: " -#~ "they count the number of positional arguments, then use a ``switch`` " -#~ "statement to call one of several different :c:func:`PyArg_ParseTuple` " -#~ "calls depending on how many positional arguments there are. (These " -#~ "functions cannot accept keyword-only arguments.) This approach was used " -#~ "to simulate optional arguments back " -#~ "before :c:func:`PyArg_ParseTupleAndKeywords` was created." -#~ msgstr "" -#~ "Certaines fonctions de base ont une approche particulière pour analyser " -#~ "leurs arguments : elles comptent le nombre d'arguments positionnels, puis " -#~ "elles utilisent une condition ``switch`` basée sur le nombre d'arguments " -#~ "présents pour appeler différentes :c:func:`PyArg_ParseTuple` disponibles " -#~ "(ces fonctions ne peuvent pas avoir des arguments passés uniquement en " -#~ "tant qu'arguments nommés). Cette approche était utilisée pour simuler des " -#~ "arguments optionnels avant que :c:func:`PyArg_ParseTupleAndKeywords` ne " -#~ "soit créée." - -#~ msgid "" -#~ "While functions using this approach can often be converted to " -#~ "use :c:func:`PyArg_ParseTupleAndKeywords`, optional arguments, and " -#~ "default values, it's not always possible. Some of these legacy functions " -#~ "have behaviors :c:func:`PyArg_ParseTupleAndKeywords` doesn't directly " -#~ "support. The most obvious example is the builtin function ``range()``, " -#~ "which has an optional argument on the *left* side of its required " -#~ "argument! Another example is ``curses.window.addch()``, which has a group " -#~ "of two arguments that must always be specified together. (The arguments " -#~ "are called ``x`` and ``y``; if you call the function passing in ``x``, " -#~ "you must also pass in ``y``—and if you don't pass in ``x`` you may not " -#~ "pass in ``y`` either.)" -#~ msgstr "" -#~ "Alors que les fonctions utilisant cette approche peuvent normalement être " -#~ "converties pour utiliser :c:func:`PyArg_ParseTupleAndKeywords`, des " -#~ "arguments optionnels et des valeurs par défaut, ce n'est pas toujours " -#~ "possible. Certaines fonctions classiques ne peuvent pas être gérées " -#~ "par :c:func:`PyArg_ParseTupleAndKeywords`. L'exemple le plus évident est " -#~ "la fonction native ``range()``, qui possède un argument optionnel à " -#~ "*gauche* de ses arguments requis ! Un autre exemple est la fonction " -#~ "``curses.window.addch()``, qui possède un groupe de deux arguments qui " -#~ "doivent toujours être spécifiés ensemble (ces arguments s'appellent ``x`` " -#~ "et ``y`` ; si vous appelez la fonction en passant ``x``, vous devez " -#~ "passer ``y`` et si vous ne passez pas ``x``, vous ne devez pas passer " -#~ "``y`` non plus)." - -#~ msgid "" -#~ "In any case, the goal of Argument Clinic is to support argument parsing " -#~ "for all existing CPython builtins without changing their semantics. " -#~ "Therefore Argument Clinic supports this alternate approach to parsing, " -#~ "using what are called *optional groups*. Optional groups are groups of " -#~ "arguments that must all be passed in together. They can be to the left or " -#~ "the right of the required arguments. They can *only* be used with " -#~ "positional-only parameters." -#~ msgstr "" -#~ "Dans tous les cas, le but d'Argument Clinic est de prendre en charge " -#~ "l'analyse des arguments pour toutes les fonctions natives de CPython sans " -#~ "avoir besoin de les modifier. C'est pourquoi Argument Clinic propose " -#~ "cette autre approche pour l'analyse, en utilisant ce qu'on appelle les " -#~ "*groupes optionnels*. Les groupes optionnels sont des groupes d'arguments " -#~ "qui doivent tous être transmis ensemble. Ils peuvent être situés à droite " -#~ "ou à gauche des arguments requis. Ils ne peuvent être utilisés " -#~ "*seulement* qu'en tant que paramètres positionnels." - -#~ msgid "" -#~ "Optional groups are *only* intended for use when converting functions " -#~ "that make multiple calls to :c:func:`PyArg_ParseTuple`! Functions that " -#~ "use *any* other approach for parsing arguments should *almost never* be " -#~ "converted to Argument Clinic using optional groups. Functions using " -#~ "optional groups currently cannot have accurate signatures in Python, " -#~ "because Python just doesn't understand the concept. Please avoid using " -#~ "optional groups wherever possible." -#~ msgstr "" -#~ "Les groupes optionnels sont *uniquement* prévus pour convertir les " -#~ "fonctions faisant des appels multiples à :c:func:`PyArg_ParseTuple` ! Les " -#~ "fonctions qui utilisent *au moins une* des autres approches ne doivent " -#~ "*presque jamais* être converties à Argument Clinic en utilisant les " -#~ "groupes optionnels. Les fonctions utilisant ces groupes n'ont pas " -#~ "actuellement de signature précise en Python, parce que celui-ci ne peut " -#~ "simplement pas comprendre ce concept. Tâchez d'éviter au maximum " -#~ "d'utiliser ces groupes optionnels si possible." - -#~ msgid "" -#~ "To specify an optional group, add a ``[`` on a line by itself before the " -#~ "parameters you wish to group together, and a ``]`` on a line by itself " -#~ "after these parameters. As an example, here's how " -#~ "``curses.window.addch`` uses optional groups to make the first two " -#~ "parameters and the last parameter optional::" -#~ msgstr "" -#~ "Afin de signaler un groupe optionnel, ajoutez un ``[`` seul sur une ligne " -#~ "avant les paramètres que vous souhaitez inclure dans le groupe, puis un " -#~ "``]`` seul sur une ligne après ces paramètres. Voici, par exemple, " -#~ "comment ``curses.window.addch`` utilise les groupes optionnels pour " -#~ "rendre optionnel les deux premiers paramètres ainsi que le dernier ::" - -#~ msgid "Notes:" -#~ msgstr "Notes :" - -#~ msgid "" -#~ "For every optional group, one additional parameter will be passed into " -#~ "the impl function representing the group. The parameter will be an int " -#~ "named ``group_{direction}_{number}``, where ``{direction}`` is either " -#~ "``right`` or ``left`` depending on whether the group is before or after " -#~ "the required parameters, and ``{number}`` is a monotonically increasing " -#~ "number (starting at 1) indicating how far away the group is from the " -#~ "required parameters. When the impl is called, this parameter will be set " -#~ "to zero if this group was unused, and set to non-zero if this group was " -#~ "used. (By used or unused, I mean whether or not the parameters received " -#~ "arguments in this invocation.)" -#~ msgstr "" -#~ "Pour chaque groupe optionnel, un paramètre additionnel sera passé à la " -#~ "fonction ``impl`` représentant le groupe. Ce paramètre sera un entier " -#~ "nommé ``group_{direction}_{number}``, où ``{direction}`` peut être soit " -#~ "``right`` ou ``left`` suivant que le groupe est situé avant ou après les " -#~ "paramètres requis, et ``{number}`` sera un entier incrémenté (débutant à " -#~ "1) indiquant la distance entre le groupe et les paramètres requis. Quand " -#~ "la fonction ``impl`` est appelée, ce paramètre est positionné à zéro si " -#~ "le groupe n'a pas été utilisé, et positionné à un nombre entier positif " -#~ "sinon (par inutilisé, on entend que les paramètres n'ont pas reçu de " -#~ "valeur lors de cet appel)." - -#~ msgid "" -#~ "If there are no required arguments, the optional groups will behave as if " -#~ "they're to the right of the required arguments." -#~ msgstr "" -#~ "S'il n'y a pas d'arguments requis, les groupes optionnels se comportent " -#~ "comme s'ils étaient à droite des arguments requis." - -#~ msgid "" -#~ "In the case of ambiguity, the argument parsing code favors parameters on " -#~ "the left (before the required parameters)." -#~ msgstr "" -#~ "En cas d'ambiguïté, le code d'analyse des arguments favorise ceux situés " -#~ "à gauche (avant les paramètres obligatoires)." - -#~ msgid "Optional groups can only contain positional-only parameters." -#~ msgstr "" -#~ "Les groupes optionnels ne peuvent contenir que des arguments positionnels." - -#~ msgid "" -#~ "Optional groups are *only* intended for legacy code. Please do not use " -#~ "optional groups for new code." -#~ msgstr "" -#~ "Les groupes optionnels sont *seulement* destinés au code hérité. Ne les " -#~ "utilisez pas dans du nouveau code." - -#, fuzzy -#~ msgid "" -#~ "How to use real Argument Clinic converters, instead of \"legacy " -#~ "converters\"" -#~ msgstr "" -#~ "Utilisation des adaptateurs d'Argument Clinic, en lieu et place des " -#~ "« adaptateurs de base »" - -#~ msgid "" -#~ "To save time, and to minimize how much you need to learn to achieve your " -#~ "first port to Argument Clinic, the walkthrough above tells you to use " -#~ "\"legacy converters\". \"Legacy converters\" are a convenience, designed " -#~ "explicitly to make porting existing code to Argument Clinic easier. And " -#~ "to be clear, their use is acceptable when porting code for Python 3.4." -#~ msgstr "" -#~ "Afin de gagner du temps, et pour minimiser la courbe d'apprentissage pour " -#~ "pouvoir utiliser Argument Clinic, le guide ci-dessus préconise les " -#~ "« adaptateurs de base ». Ceux-ci sont un moyen simple conçu pour porter " -#~ "facilement du code existant sous Argument Clinic. Et pour être clair, " -#~ "leur utilisation est tout à fait acceptable pour porter du code Python " -#~ "3.4." - -#~ msgid "" -#~ "However, in the long term we probably want all our blocks to use Argument " -#~ "Clinic's real syntax for converters. Why? A couple reasons:" -#~ msgstr "" -#~ "Cependant, sur le long terme, il est certainement préférable que tous vos " -#~ "blocs utilisent la syntaxe réelle des adaptateurs d'Argument Clinic. " -#~ "Pourquoi ? Voici quelques raisons :" - -#~ msgid "" -#~ "The proper converters are far easier to read and clearer in their intent." -#~ msgstr "Les adaptateurs sont plus simples et plus clairs." - -#~ msgid "" -#~ "There are some format units that are unsupported as \"legacy " -#~ "converters\", because they require arguments, and the legacy converter " -#~ "syntax doesn't support specifying arguments." -#~ msgstr "" -#~ "Il existe des formats qui ne sont pas gérés par les « adaptateurs de " -#~ "base », parce qu'ils nécessitent des arguments, et la syntaxe de ces " -#~ "adaptateurs ne supporte pas cela." - -#~ msgid "" -#~ "In the future we may have a new argument parsing library that isn't " -#~ "restricted to what :c:func:`PyArg_ParseTuple` supports; this flexibility " -#~ "won't be available to parameters using legacy converters." -#~ msgstr "" -#~ "Dans le futur, on pourrait avoir une nouvelle bibliothèque d'analyse des " -#~ "arguments qui ne serait pas limitée à ce que :c:func:`PyArg_ParseTuple` " -#~ "accepte ; cette flexibilité ne serait pas accessible aux paramètres " -#~ "utilisant des adaptateurs de base." - -#~ msgid "" -#~ "Therefore, if you don't mind a little extra effort, please use the normal " -#~ "converters instead of legacy converters." -#~ msgstr "" -#~ "Ainsi, si vous n'êtes pas contre un petit effort supplémentaire, vous " -#~ "devriez utiliser les adaptateurs normaux plutôt que ceux de base." - -#~ msgid "" -#~ "In a nutshell, the syntax for Argument Clinic (non-legacy) converters " -#~ "looks like a Python function call. However, if there are no explicit " -#~ "arguments to the function (all functions take their default values), you " -#~ "may omit the parentheses. Thus ``bool`` and ``bool()`` are exactly the " -#~ "same converters." -#~ msgstr "" -#~ "En bref, la syntaxe des adaptateurs d'Argument Clinic ressemble à un " -#~ "appel de fonction Python. Mais, s'il n'y a pas d'argument explicite à la " -#~ "fonction (celle-ci utilisant ses valeurs par défaut), vous pouvez omettre " -#~ "les parenthèses. Ainsi ``bool`` et ``bool()`` représentent le même " -#~ "adaptateur." - -#~ msgid "" -#~ "All arguments to Argument Clinic converters are keyword-only. All " -#~ "Argument Clinic converters accept the following arguments:" -#~ msgstr "" -#~ "Tous les arguments passés aux adaptateurs d'Argument Clinic sont nommés. " -#~ "Tous les adaptateurs d'Argument Clinic acceptent les arguments suivants :" - -#~ msgid "``c_default``" -#~ msgstr "``c_default``" - -#~ msgid "" -#~ "The default value for this parameter when defined in C. Specifically, " -#~ "this will be the initializer for the variable declared in the \"parse " -#~ "function\". See :ref:`the section on default values ` " -#~ "for how to use this. Specified as a string." -#~ msgstr "" -#~ "La valeur par défaut de cet argument lorsqu'il est défini en C. " -#~ "Typiquement, il servira à initialiser la variable déclarée dans la " -#~ "« fonction d'analyse ». Voir la section relative aux :ref:`valeurs par " -#~ "défaut ` pour apprendre à l'utiliser. Spécifié en tant " -#~ "que chaîne de caractères." - -#~ msgid "``annotation``" -#~ msgstr "``annotation``" - -#~ msgid "" -#~ "The annotation value for this parameter. Not currently supported, " -#~ "because :pep:`8` mandates that the Python library may not use annotations." -#~ msgstr "" -#~ "La valeur annotée pour ce paramètre. Actuellement non géré, car " -#~ "la :pep:`8` exige que les bibliothèques Python n'utilisent pas " -#~ "d'annotations." - -#~ msgid "" -#~ "In addition, some converters accept additional arguments. Here is a list " -#~ "of these arguments, along with their meanings:" -#~ msgstr "" -#~ "De plus, certains adaptateurs acceptent des arguments additionnels. Voici " -#~ "la liste de ces arguments, avec leur explication :" - -#~ msgid "``accept``" -#~ msgstr "``accept``" - -#~ msgid "" -#~ "A set of Python types (and possibly pseudo-types); this restricts the " -#~ "allowable Python argument to values of these types. (This is not a " -#~ "general-purpose facility; as a rule it only supports specific lists of " -#~ "types as shown in the legacy converter table.)" -#~ msgstr "" -#~ "Un ensemble de types Python (et potentiellement des pseudo-types) ; cela " -#~ "restreint l'argument Python autorisé aux valeurs de ces types (ce n'est " -#~ "pas destiné à une utilisation généralisée ; en fait, il gère seulement " -#~ "les types listés dans la table des adaptateurs de base)." - -#~ msgid "To accept ``None``, add ``NoneType`` to this set." -#~ msgstr "Pour accepter ``None``, ajouter ``NoneType`` à cet ensemble." - -#~ msgid "``bitwise``" -#~ msgstr "``bitwise``" - -#~ msgid "" -#~ "Only supported for unsigned integers. The native integer value of this " -#~ "Python argument will be written to the parameter without any range " -#~ "checking, even for negative values." -#~ msgstr "" -#~ "Autorisé seulement pour les entiers non signés. La valeur native de cet " -#~ "argument Python sera transcrite dans le paramètre sans aucune " -#~ "vérification de plage, même pour des valeurs négatives." - -#~ msgid "``converter``" -#~ msgstr "``converter``" - -#~ msgid "" -#~ "Only supported by the ``object`` converter. Specifies the name of " -#~ "a :ref:`C \"converter function\" ` to use to convert this " -#~ "object to a native type." -#~ msgstr "" -#~ "Autorisé seulement pour l'adaptateur ``object``. Spécifie le nom " -#~ "d'une :ref:`« fonction de conversion » depuis C ` à utiliser " -#~ "pour convertir cet objet en type natif." - -#~ msgid "``encoding``" -#~ msgstr "``encoding``" - -#~ msgid "" -#~ "Only supported for strings. Specifies the encoding to use when " -#~ "converting this string from a Python str (Unicode) value into a C ``char " -#~ "*`` value." -#~ msgstr "" -#~ "Autorisé seulement pour les chaînes de caractères. Spécifie l'encodage à " -#~ "utiliser lors de la conversion de cette chaîne depuis une valeur de type " -#~ "Python ``str`` (Unicode) en valeur C ``char *``." - -#~ msgid "``subclass_of``" -#~ msgstr "``subclass_of``" - -#~ msgid "" -#~ "Only supported for the ``object`` converter. Requires that the Python " -#~ "value be a subclass of a Python type, as expressed in C." -#~ msgstr "" -#~ "Autorisé seulement pour l'adaptateur ``object``. Nécessite que la valeur " -#~ "Python soit une sous-classe d'un type Python, telle qu'exprimée en C." - -#~ msgid "``type``" -#~ msgstr "``type``" - -#~ msgid "" -#~ "Only supported for the ``object`` and ``self`` converters. Specifies the " -#~ "C type that will be used to declare the variable. Default value is " -#~ "``\"PyObject *\"``." -#~ msgstr "" -#~ "Autorisé seulement pour les adaptateurs ``object`` et ``self``. Spécifie " -#~ "le type C qui sera utilisé pour déclarer la variable. La valeur par " -#~ "défaut est ``\"PyObject *\"``." - -#~ msgid "``zeroes``" -#~ msgstr "``zeroes``" - -#~ msgid "" -#~ "Only supported for strings. If true, embedded NUL bytes (``'\\\\0'``) " -#~ "are permitted inside the value. The length of the string will be passed " -#~ "in to the impl function, just after the string parameter, as a parameter " -#~ "named ``_length``." -#~ msgstr "" -#~ "Autorisé seulement pour les chaînes de caractères. Si vrai, les octets " -#~ "NUL (``'\\\\0'``) sont permis au sein de la valeur. La taille de la " -#~ "chaîne sera passée à la fonction ``impl``, juste après le paramètre " -#~ "chaîne, en tant que paramètre nommé ``_length``." - -#~ msgid "" -#~ "Please note, not every possible combination of arguments will work. " -#~ "Usually these arguments are implemented by specific ``PyArg_ParseTuple`` " -#~ "*format units*, with specific behavior. For example, currently you " -#~ "cannot call ``unsigned_short`` without also specifying ``bitwise=True``. " -#~ "Although it's perfectly reasonable to think this would work, these " -#~ "semantics don't map to any existing format unit. So Argument Clinic " -#~ "doesn't support it. (Or, at least, not yet.)" -#~ msgstr "" -#~ "Attention de bien noter que toutes les combinaisons d'arguments ne " -#~ "fonctionnent pas. Normalement, ces arguments sont mis en place via des " -#~ "*formats* ``PyArg_ParseTuple`` au comportement spécifique. Par exemple, à " -#~ "l'heure actuelle vous ne pouvez pas appeler ``unsigned_short`` sans " -#~ "spécifier également ``bitwise=True``. Bien qu'il soit parfaitement " -#~ "raisonnable de penser que ça puisse fonctionner, cette écriture ne " -#~ "correspond à aucun format. Donc Argument Clinic ne le gère pas (en tous " -#~ "cas, pas pour le moment)." - -#~ msgid "" -#~ "Below is a table showing the mapping of legacy converters into real " -#~ "Argument Clinic converters. On the left is the legacy converter, on the " -#~ "right is the text you'd replace it with." -#~ msgstr "" -#~ "Vous pouvez voir, ci-dessous, une table présentant la correspondance " -#~ "entre les adaptateurs de base et ceux d'Argument Clinic. À gauche, sont " -#~ "listés les adaptateurs de base et, à droite, le texte qui les remplace." - -#~ msgid "``'B'``" -#~ msgstr "``'B'``" - -#~ msgid "``unsigned_char(bitwise=True)``" -#~ msgstr "``unsigned_char(bitwise=True)``" - -#~ msgid "``'b'``" -#~ msgstr "``'b'``" - -#~ msgid "``unsigned_char``" -#~ msgstr "``unsigned_char``" - -#~ msgid "``'c'``" -#~ msgstr "``'c'``" - -#~ msgid "``char``" -#~ msgstr "``char``" - -#~ msgid "``'C'``" -#~ msgstr "``'C'``" - -#~ msgid "``int(accept={str})``" -#~ msgstr "``int(accept={str})``" - -#~ msgid "``'d'``" -#~ msgstr "``'d'``" - -#~ msgid "``double``" -#~ msgstr "``double``" - -#~ msgid "``'D'``" -#~ msgstr "``'D'``" - -#~ msgid "``Py_complex``" -#~ msgstr "``Py_complex``" - -#~ msgid "``'es'``" -#~ msgstr "``'es'``" - -#~ msgid "``str(encoding='name_of_encoding')``" -#~ msgstr "``str(encoding='name_of_encoding')``" - -#~ msgid "``'es#'``" -#~ msgstr "``'es#'``" - -#~ msgid "``str(encoding='name_of_encoding', zeroes=True)``" -#~ msgstr "``str(encoding='name_of_encoding', zeroes=True)``" - -#~ msgid "``'et'``" -#~ msgstr "``'et'``" - -#~ msgid "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" -#~ msgstr "" -#~ "``str(encoding='name_of_encoding', accept={bytes, bytearray, str})``" - -#~ msgid "``'et#'``" -#~ msgstr "``'et#'``" - -#~ msgid "" -#~ "``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " -#~ "zeroes=True)``" -#~ msgstr "" -#~ "``str(encoding='name_of_encoding', accept={bytes, bytearray, str}, " -#~ "zeroes=True)``" - -#~ msgid "``'f'``" -#~ msgstr "``'f'``" - -#~ msgid "``float``" -#~ msgstr "``float``" - -#~ msgid "``'h'``" -#~ msgstr "``'h'``" - -#~ msgid "``short``" -#~ msgstr "``short``" - -#~ msgid "``'H'``" -#~ msgstr "``'H'``" - -#~ msgid "``unsigned_short(bitwise=True)``" -#~ msgstr "``unsigned_short(bitwise=True)``" - -#~ msgid "``'i'``" -#~ msgstr "``'i'``" - -#~ msgid "``int``" -#~ msgstr "``int``" - -#~ msgid "``'I'``" -#~ msgstr "``'I'``" - -#~ msgid "``unsigned_int(bitwise=True)``" -#~ msgstr "``unsigned_int(bitwise=True)``" - -#~ msgid "``'k'``" -#~ msgstr "``'k'``" - -#~ msgid "``unsigned_long(bitwise=True)``" -#~ msgstr "``unsigned_long(bitwise=True)``" - -#~ msgid "``'K'``" -#~ msgstr "``'K'``" - -#~ msgid "``unsigned_long_long(bitwise=True)``" -#~ msgstr "``unsigned_long_long(bitwise=True)``" - -#~ msgid "``'l'``" -#~ msgstr "``'l'``" - -#~ msgid "``long``" -#~ msgstr "``long``" - -#~ msgid "``'L'``" -#~ msgstr "``'L'``" - -#~ msgid "``long long``" -#~ msgstr "``long long``" - -#~ msgid "``'n'``" -#~ msgstr "``'n'``" - -#~ msgid "``Py_ssize_t``" -#~ msgstr "``Py_ssize_t``" - -#~ msgid "``'O'``" -#~ msgstr "``'O'``" - -#~ msgid "``object``" -#~ msgstr "``object``" - -#~ msgid "``'O!'``" -#~ msgstr "``'O!'``" - -#~ msgid "``object(subclass_of='&PySomething_Type')``" -#~ msgstr "``object(subclass_of='&PySomething_Type')``" - -#~ msgid "``'O&'``" -#~ msgstr "``'O&'``" - -#~ msgid "``object(converter='name_of_c_function')``" -#~ msgstr "``object(converter='name_of_c_function')``" - -#~ msgid "``'p'``" -#~ msgstr "``'p'``" - -#~ msgid "``bool``" -#~ msgstr "``bool``" - -#~ msgid "``'S'``" -#~ msgstr "``'S'``" - -#~ msgid "``PyBytesObject``" -#~ msgstr "``PyBytesObject``" - -#~ msgid "``'s'``" -#~ msgstr "``'s'``" - -#~ msgid "``str``" -#~ msgstr "``str``" - -#~ msgid "``'s#'``" -#~ msgstr "``'s#'``" - -#~ msgid "``str(zeroes=True)``" -#~ msgstr "``str(zeroes=True)``" - -#~ msgid "``'s*'``" -#~ msgstr "``'s*'``" - -#~ msgid "``Py_buffer(accept={buffer, str})``" -#~ msgstr "``Py_buffer(accept={buffer, str})``" - -#~ msgid "``'U'``" -#~ msgstr "``'U'``" - -#~ msgid "``unicode``" -#~ msgstr "``unicode``" - -#~ msgid "``'u'``" -#~ msgstr "``'u'``" - -#~ msgid "``Py_UNICODE``" -#~ msgstr "``Py_UNICODE``" - -#~ msgid "``'u#'``" -#~ msgstr "``'u#'``" - -#~ msgid "``Py_UNICODE(zeroes=True)``" -#~ msgstr "``Py_UNICODE(zeroes=True)``" - -#~ msgid "``'w*'``" -#~ msgstr "``'w*'``" - -#~ msgid "``Py_buffer(accept={rwbuffer})``" -#~ msgstr "``Py_buffer(accept={rwbuffer})``" - -#~ msgid "``'Y'``" -#~ msgstr "``'Y'``" - -#~ msgid "``PyByteArrayObject``" -#~ msgstr "``PyByteArrayObject``" - -#~ msgid "``'y'``" -#~ msgstr "``'y'``" - -#~ msgid "``str(accept={bytes})``" -#~ msgstr "``str(accept={bytes})``" - -#~ msgid "``'y#'``" -#~ msgstr "``'y#'``" - -#~ msgid "``str(accept={robuffer}, zeroes=True)``" -#~ msgstr "``str(accept={robuffer}, zeroes=True)``" - -#~ msgid "``'y*'``" -#~ msgstr "``'y*'``" - -#~ msgid "``Py_buffer``" -#~ msgstr "``Py_buffer``" - -#~ msgid "``'Z'``" -#~ msgstr "``'Z'``" - -#~ msgid "``Py_UNICODE(accept={str, NoneType})``" -#~ msgstr "``Py_UNICODE(accept={str, NoneType})``" - -#~ msgid "``'Z#'``" -#~ msgstr "``'Z#'``" - -#~ msgid "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" -#~ msgstr "``Py_UNICODE(accept={str, NoneType}, zeroes=True)``" - -#~ msgid "``'z'``" -#~ msgstr "``'z'``" - -#~ msgid "``str(accept={str, NoneType})``" -#~ msgstr "``str(accept={str, NoneType})``" - -#~ msgid "``'z#'``" -#~ msgstr "``'z#'``" - -#~ msgid "``str(accept={str, NoneType}, zeroes=True)``" -#~ msgstr "``str(accept={str, NoneType}, zeroes=True)``" - -#~ msgid "``'z*'``" -#~ msgstr "``'z*'``" - -#~ msgid "``Py_buffer(accept={buffer, str, NoneType})``" -#~ msgstr "``Py_buffer(accept={buffer, str, NoneType})``" - -#~ msgid "" -#~ "As an example, here's our sample ``pickle.Pickler.dump`` using the proper " -#~ "converter::" -#~ msgstr "" -#~ "Par exemple, voici notre code ``pickle.Pickler.dump`` via l'adaptateur " -#~ "approprié ::" - -#~ msgid "" -#~ "One advantage of real converters is that they're more flexible than " -#~ "legacy converters. For example, the ``unsigned_int`` converter (and all " -#~ "the ``unsigned_`` converters) can be specified without ``bitwise=True``. " -#~ "Their default behavior performs range checking on the value, and they " -#~ "won't accept negative numbers. You just can't do that with a legacy " -#~ "converter!" -#~ msgstr "" -#~ "Un avantage des adaptateurs réels est qu'ils sont plus flexibles que les " -#~ "adaptateurs de base. Par exemple, l'adaptateur ``unsigned_int`` (ainsi " -#~ "que tous les adaptateurs ``unsigned_``) peut être utilisé sans " -#~ "``bitwise=True``. Leur comportement par défaut contrôle la valeur, et " -#~ "n'acceptera pas de nombres négatifs. On ne peut pas faire ça avec les " -#~ "adaptateurs de base !" - -#~ msgid "" -#~ "Argument Clinic will show you all the converters it has available. For " -#~ "each converter it'll show you all the parameters it accepts, along with " -#~ "the default value for each parameter. Just run ``Tools/clinic/clinic.py --" -#~ "converters`` to see the full list." -#~ msgstr "" -#~ "Argument Clinic sait lister tous les adaptateurs disponibles. Pour chaque " -#~ "adaptateur, il vous liste également l'ensemble des paramètres qu'ils " -#~ "acceptent, ainsi que les valeurs par défaut de chacun. Utilisez " -#~ "simplement la commande ``Tools/clinic/clinic.py --converters`` pour " -#~ "afficher la liste." - -#~ msgid "" -#~ "When using the ``Py_buffer`` converter (or the ``'s*'``, ``'w*'``, " -#~ "``'*y'``, or ``'z*'`` legacy converters), you *must* not " -#~ "call :c:func:`PyBuffer_Release` on the provided buffer. Argument Clinic " -#~ "generates code that does it for you (in the parsing function)." -#~ msgstr "" -#~ "Lorsque vous utilisez l'adaptateur ``Py_buffer`` (ou bien les adaptateurs " -#~ "de base ``'s*'``, ``'w*'``, ``'*y'``, ou ``'z*'``), vous *ne devez pas* " -#~ "appeler :c:func:`PyBuffer_Release` sur le tampon fourni. Argument Clinic " -#~ "génère du code qui le fait pour vous (dans la fonction d'analyse)." - -#, fuzzy -#~ msgid "How to use advanced converters" -#~ msgstr "Adaptateurs avancés" - -#~ msgid "" -#~ "Remember those format units you skipped for your first time because they " -#~ "were advanced? Here's how to handle those too." -#~ msgstr "" -#~ "Vous vous souvenez de ces spécifications de format que vous avez laissées " -#~ "de côté la première fois parce qu'il s'agissait de notions avancées ? " -#~ "Voici comment les utiliser." - -#~ msgid "" -#~ "The trick is, all those format units take arguments—either conversion " -#~ "functions, or types, or strings specifying an encoding. (But \"legacy " -#~ "converters\" don't support arguments. That's why we skipped them for " -#~ "your first function.) The argument you specified to the format unit is " -#~ "now an argument to the converter; this argument is either ``converter`` " -#~ "(for ``O&``), ``subclass_of`` (for ``O!``), or ``encoding`` (for all the " -#~ "format units that start with ``e``)." -#~ msgstr "" -#~ "L'astuce est que toutes ces spécifications de format acceptent des " -#~ "arguments — aussi bien des fonctions de conversion que des types, ou des " -#~ "chaînes spécifiant un encodage. (mais les « adaptateurs de base » ne " -#~ "gèrent pas les arguments. C'est pourquoi nous les avions laissés de côté " -#~ "pour votre première fonction.) L'argument que vous aviez spécifié à la " -#~ "spécification de format est désormais un argument du convertisseur ; cet " -#~ "argument est soit ``converter`` (pour ``O&``), ``subclass_of`` (pour ``O!" -#~ "``), ou ``encoding`` (pour toutes les spécifications de format qui " -#~ "commencent par ``e``)." - -#~ msgid "" -#~ "When using ``subclass_of``, you may also want to use the other custom " -#~ "argument for ``object()``: ``type``, which lets you set the type actually " -#~ "used for the parameter. For example, if you want to ensure that the " -#~ "object is a subclass of ``PyUnicode_Type``, you probably want to use the " -#~ "converter ``object(type='PyUnicodeObject *', " -#~ "subclass_of='&PyUnicode_Type')``." -#~ msgstr "" -#~ "Lorsque vous utilisez ``subclass_of``, vous pouvez également vouloir " -#~ "utiliser les autres arguments usuels pour ``object()`` : ``type``, qui " -#~ "vous laisse spécifier le type à utiliser pour l'argument. Par exemple, si " -#~ "vous voulez vous assurer que l'objet est une sous-classe de " -#~ "``PyUnicode_Type``, vous utiliserez probablement le convertisseur " -#~ "``object(type='PyUnicodeObject *', subclass_of='&PyUnicode_Type')``." - -#~ msgid "" -#~ "One possible problem with using Argument Clinic: it takes away some " -#~ "possible flexibility for the format units starting with ``e``. When " -#~ "writing a ``PyArg_Parse`` call by hand, you could theoretically decide at " -#~ "runtime what encoding string to pass in to :c:func:`PyArg_ParseTuple`. " -#~ "But now this string must be hard-coded at Argument-Clinic-preprocessing-" -#~ "time. This limitation is deliberate; it made supporting this format unit " -#~ "much easier, and may allow for future optimizations. This restriction " -#~ "doesn't seem unreasonable; CPython itself always passes in static hard-" -#~ "coded encoding strings for parameters whose format units start with ``e``." -#~ msgstr "" -#~ "Mentionnons un problème potentiel d'utiliser *Argument Clinic* : cela " -#~ "retire la flexibilité des spécifications de format commençant par ``e``. " -#~ "Lorsque vous faites un appel à ``PyArg_Parse`` à la main, vous pourriez " -#~ "théoriquement décider quelle chaîne d'encodage passer " -#~ "à :c:func:`PyArg_ParseTuple`. Mais désormais cette chaîne doit être codée " -#~ "en dur au moment du pré-processus d'Argument-Clinic. Cette limitation est " -#~ "délibérée ; elle permet une gestion plus simple de cette spécification de " -#~ "format, et peut permettre de futures optimisations. Cette restriction ne " -#~ "semble pas déraisonnable ; CPython lui-même utilise toujours des chaînes " -#~ "d'encodage en dur pour les paramètres dont les spécifications de format " -#~ "commencent par ``e``." - -#~ msgid "" -#~ "Default values for parameters can be any of a number of values. At their " -#~ "simplest, they can be string, int, or float literals:" -#~ msgstr "" -#~ "Les valeurs par défaut des paramètres peuvent être n'importe quelle " -#~ "valeur. Au plus simple, ce sont des chaînes, des entiers ou des nombres " -#~ "flottants :" - -#~ msgid "They can also use any of Python's built-in constants:" -#~ msgstr "" -#~ "Vous pouvez également utiliser n'importe quelle constante native de " -#~ "Python :" - -#~ msgid "" -#~ "There's also special support for a default value of ``NULL``, and for " -#~ "simple expressions, documented in the following sections." -#~ msgstr "" -#~ "La valeur ``NULL`` est également acceptée, ainsi que des expressions " -#~ "simples, comme expliqué dans les sections suivantes." - -#~ msgid "The ``NULL`` default value" -#~ msgstr "La valeur par défaut ``NULL``" - -#~ msgid "" -#~ "For string and object parameters, you can set them to ``None`` to " -#~ "indicate that there's no default. However, that means the C variable " -#~ "will be initialized to ``Py_None``. For convenience's sakes, there's a " -#~ "special value called ``NULL`` for just this reason: from Python's " -#~ "perspective it behaves like a default value of ``None``, but the C " -#~ "variable is initialized with ``NULL``." -#~ msgstr "" -#~ "Pour les paramètres chaînes et objets, vous pouvez les positionner à " -#~ "``None`` pour indiquer qu'il n'y a pas de valeur par défaut. Pour autant, " -#~ "cela signifie que la variable C sera initialisée à ``Py_None``. Par " -#~ "commodité, il existe une valeur spécifique appelée ``NULL`` juste pour " -#~ "cette raison : du point de vue de Python, cette valeur se comporte comme " -#~ "la valeur par défaut ``None``, mais la variable C est initialisée à " -#~ "``NULL``." - -#~ msgid "Symbolic default values" -#~ msgstr "Valeurs par défaut" - -#~ msgid "" -#~ "The default value you provide for a parameter can't be any arbitrary " -#~ "expression. Currently the following are explicitly supported:" -#~ msgstr "" -#~ "La valeur par défaut que vous fournissez pour un paramètre ne peut pas " -#~ "être n'importe quelle expression. Actuellement, ce qui est géré :" - -#~ msgid "Numeric constants (integer and float)" -#~ msgstr "Constantes numériques (entier ou nombre flottant)" - -#~ msgid "String constants" -#~ msgstr "Chaînes constantes" - -#~ msgid "``True``, ``False``, and ``None``" -#~ msgstr "``True``, ``False`` et ``None``" - -#~ msgid "" -#~ "Simple symbolic constants like ``sys.maxsize``, which must start with the " -#~ "name of the module" -#~ msgstr "" -#~ "Constantes symboliques simples comme ``sys.maxsize``, qui doivent " -#~ "commencer par le nom du module" - -#~ msgid "" -#~ "(In the future, this may need to get even more elaborate, to allow full " -#~ "expressions like ``CONSTANT - 1``.)" -#~ msgstr "" -#~ "(Dans le futur, il est possible que l'on ait besoin de l'améliorer, pour " -#~ "autoriser les expressions complètes comme ``CONSTANT - 1``.)" - -#, fuzzy -#~ msgid "Expressions as default values" -#~ msgstr "Expressions spécifiées comme valeurs par défaut" - -#~ msgid "" -#~ "The default value for a parameter can be more than just a literal value. " -#~ "It can be an entire expression, using math operators and looking up " -#~ "attributes on objects. However, this support isn't exactly simple, " -#~ "because of some non-obvious semantics." -#~ msgstr "" -#~ "La valeur par défaut d'un paramètre peut être plus qu'une simple valeur " -#~ "littérale. Il peut s'agir d'une expression, utilisant des opérateurs " -#~ "mathématiques et des attributs d'objets. Cependant, cette possibilité " -#~ "n'est pas aussi simple, notamment à cause de sémantiques peu évidentes." - -#~ msgid "Consider the following example:" -#~ msgstr "Examinons l'exemple suivant :" - -#~ msgid "Function calls." -#~ msgstr "des appels de fonction." - -#~ msgid "Inline if statements (``3 if foo else 5``)." -#~ msgstr "des instructions *if* en ligne (``3 if foo else 5``) ;" - -#, fuzzy -#~ msgid "For example:" -#~ msgstr "Échantillon ::" - -#~ msgid "Converting Your First Function" -#~ msgstr "Convertissez votre première fonction" - -#~ msgid "Advanced Topics" -#~ msgstr "Sujets avancés" - -#~ msgid "" -#~ "Now that you've had some experience working with Argument Clinic, it's " -#~ "time for some advanced topics." -#~ msgstr "" -#~ "Maintenant que vous avez un peu d'expérience avec Argument Clinic, c'est " -#~ "le moment pour des sujets avancés." - -#~ msgid "Py_buffer" -#~ msgstr "Py_buffer" - -#~ msgid "Parameter default values" -#~ msgstr "Valeurs par défaut des paramètres" - -#~ msgid "" -#~ "In case you're curious, this is implemented in ``from_builtin()`` in " -#~ "``Lib/inspect.py``." -#~ msgstr "" -#~ "Si par curiosité vous voulez lire l'implémentation, c'est " -#~ "``from_builtin()`` dans ``Lib/inspect.py``." diff --git a/howto/cporting.po b/howto/cporting.po deleted file mode 100644 index 00384a3ec9..0000000000 --- a/howto/cporting.po +++ /dev/null @@ -1,59 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2021-04-27 15:29+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.3\n" - -#: howto/cporting.rst:7 -msgid "Porting Extension Modules to Python 3" -msgstr "Portage des modules d'extension vers Python 3" - -#: howto/cporting.rst:9 -msgid "" -"We recommend the following resources for porting extension modules to Python " -"3:" -msgstr "" -"Nous recommandons les ressources suivantes pour migrer les modules " -"d'extensions vers Python 3 :" - -#: howto/cporting.rst:11 -msgid "" -"The `Migrating C extensions`_ chapter from *Supporting Python 3: An in-depth " -"guide*, a book on moving from Python 2 to Python 3 in general, guides the " -"reader through porting an extension module." -msgstr "" -"Le chapitre `Migrating C extension`_ du livre *Supporting Python 3: An in-" -"depth guide* (un livre sur le portage de Python 2 à Python 3) guide le " -"lecteur souhaitant porter un module d'extension." - -#: howto/cporting.rst:15 -msgid "" -"The `Porting guide`_ from the *py3c* project provides opinionated " -"suggestions with supporting code." -msgstr "" -"Le `Porting guide`_ du projet *py3c* fournit des suggestions argumentées " -"avec le code correspondant." - -#: howto/cporting.rst:17 -#, fuzzy -msgid "" -":ref:`Recommended third party tools ` offer abstractions over " -"the Python's C API. Extensions generally need to be re-written to use one of " -"them, but the library then handles differences between various Python " -"versions and implementations." -msgstr "" -"Les bibliothèques `Cython`_ et `CFFI`_ fournissent des abstractions de l'API " -"C de Python. Les extensions ont généralement besoin d'être réécrites pour " -"profiter de ces bibliothèques, mais elles prennent en charge les différences " -"entre versions et implémentations de Python." diff --git a/howto/curses.po b/howto/curses.po deleted file mode 100644 index 06b0e3d27c..0000000000 --- a/howto/curses.po +++ /dev/null @@ -1,1125 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-12-16 14:42+0100\n" -"Last-Translator: Khaïs COLIN \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 3.2.1\n" - -#: howto/curses.rst:5 -msgid "Curses Programming with Python" -msgstr "Programmation *Curses* avec Python" - -#: howto/curses.rst:0 -msgid "Author" -msgstr "Auteur" - -#: howto/curses.rst:9 -msgid "A.M. Kuchling, Eric S. Raymond" -msgstr "A.M. Kuchling, Eric S. Raymond" - -#: howto/curses.rst:0 -msgid "Release" -msgstr "Version" - -#: howto/curses.rst:10 -msgid "2.04" -msgstr "2.04" - -#: howto/curses.rst:13 -msgid "Abstract" -msgstr "Résumé" - -#: howto/curses.rst:15 -msgid "" -"This document describes how to use the :mod:`curses` extension module to " -"control text-mode displays." -msgstr "" -"Ce document décrit comment utiliser le module d'extension :mod:`curses` pour " -"contrôler l'affichage en mode texte." - -#: howto/curses.rst:20 -msgid "What is curses?" -msgstr "Qu'est-ce que *curses* ?" - -#: howto/curses.rst:22 -msgid "" -"The curses library supplies a terminal-independent screen-painting and " -"keyboard-handling facility for text-based terminals; such terminals include " -"VT100s, the Linux console, and the simulated terminal provided by various " -"programs. Display terminals support various control codes to perform common " -"operations such as moving the cursor, scrolling the screen, and erasing " -"areas. Different terminals use widely differing codes, and often have their " -"own minor quirks." -msgstr "" -"La bibliothèque *curses* fournit une capacité de dessin à l'écran et de " -"gestion du clavier indépendante du terminal pour les terminaux textuels ; " -"ces terminaux comprennent les *VT100*, la console Linux et le terminal " -"simulé fourni par divers programmes. Les terminaux d'affichage prennent en " -"charge divers codes de commande pour effectuer des opérations courantes " -"telles que déplacer le curseur, faire défiler l'écran et effacer des zones. " -"Différents terminaux utilisent des codes très différents et ont souvent " -"leurs propres bizarreries mineures." - -#: howto/curses.rst:30 -msgid "" -"In a world of graphical displays, one might ask \"why bother\"? It's true " -"that character-cell display terminals are an obsolete technology, but there " -"are niches in which being able to do fancy things with them are still " -"valuable. One niche is on small-footprint or embedded Unixes that don't run " -"an X server. Another is tools such as OS installers and kernel " -"configurators that may have to run before any graphical support is available." -msgstr "" -"Dans un monde d'affichages graphiques, on pourrait se demander « pourquoi " -"s'embêter ? ». Il est vrai que les terminaux d'affichage caractère par " -"caractère sont une technologie obsolète, mais il existe des niches pour " -"lesquelles la possibilité de faire des choses fantaisistes est encore " -"précieuse. En exemple de niche, on peut citer les systèmes de type Unix de " -"petite taille ou embarqués qui n'utilisent pas de serveur X. Il y a aussi " -"les outils tels que les installateurs d'OS et les outils de configuration du " -"noyau qui doivent être exécutés avant qu'un support graphique ne soit " -"disponible." - -#: howto/curses.rst:38 -#, fuzzy -msgid "" -"The curses library provides fairly basic functionality, providing the " -"programmer with an abstraction of a display containing multiple non-" -"overlapping windows of text. The contents of a window can be changed in " -"various ways---adding text, erasing it, changing its appearance---and the " -"curses library will figure out what control codes need to be sent to the " -"terminal to produce the right output. curses doesn't provide many user-" -"interface concepts such as buttons, checkboxes, or dialogs; if you need such " -"features, consider a user interface library such as :pypi:`Urwid`." -msgstr "" -"La bibliothèque *curses* propose des fonctionnalités assez basiques, " -"fournissant au programmeur une abstraction d'affichage contenant plusieurs " -"fenêtres de texte qui ne se chevauchent pas. Le contenu d'une fenêtre peut " -"être modifié de différentes manières — en ajoutant du texte, en l'effaçant " -"ou en changeant son apparence — et la bibliothèque *curses* trouve quels " -"codes de contrôle doivent être envoyés au terminal pour produire le bon " -"résultat. *curses* ne fournit pas beaucoup de concepts d'interface " -"utilisateur tels que boutons, cases à cocher ou dialogues ; si vous avez " -"besoin de telles fonctionnalités, pensez à une bibliothèque d'interface " -"utilisateur comme `Urwid `_." - -#: howto/curses.rst:48 -msgid "" -"The curses library was originally written for BSD Unix; the later System V " -"versions of Unix from AT&T added many enhancements and new functions. BSD " -"curses is no longer maintained, having been replaced by ncurses, which is an " -"open-source implementation of the AT&T interface. If you're using an open-" -"source Unix such as Linux or FreeBSD, your system almost certainly uses " -"ncurses. Since most current commercial Unix versions are based on System V " -"code, all the functions described here will probably be available. The " -"older versions of curses carried by some proprietary Unixes may not support " -"everything, though." -msgstr "" -"La bibliothèque *curses* a été écrite à l'origine pour BSD Unix ; les " -"dernières versions *System V* d'Unix d'AT&T ont ajouté de nombreuses " -"améliorations et de nouvelles fonctions. BSD *curses* n'est plus maintenu, " -"ayant été remplacé par *ncurses*, qui est une implémentation open-source de " -"l'interface AT&T. Si vous utilisez un Unix open-source comme Linux ou " -"FreeBSD, votre système utilise presque certainement *ncurses*. Comme la " -"plupart des versions commerciales actuelles d'Unix sont basées sur le code " -"*System V*, toutes les fonctions décrites ici seront probablement " -"disponibles. Les anciennes versions de *curses* portées par certains Unix " -"propriétaires pourraient ne pas gérer toutes les fonctions." - -#: howto/curses.rst:58 -#, fuzzy -msgid "" -"The Windows version of Python doesn't include the :mod:`curses` module. A " -"ported version called :pypi:`UniCurses` is available." -msgstr "" -"La version Windows de Python n'inclut pas le module :mod:`curses`. Une " -"version portée appelée `UniCurses `_ est " -"disponible." - -#: howto/curses.rst:63 -msgid "The Python curses module" -msgstr "Le module *curses* de Python" - -#: howto/curses.rst:65 -#, fuzzy -msgid "" -"The Python module is a fairly simple wrapper over the C functions provided " -"by curses; if you're already familiar with curses programming in C, it's " -"really easy to transfer that knowledge to Python. The biggest difference is " -"that the Python interface makes things simpler by merging different C " -"functions such as :c:func:`!addstr`, :c:func:`!mvaddstr`, and :c:func:`!" -"mvwaddstr` into a single :meth:`~curses.window.addstr` method. You'll see " -"this covered in more detail later." -msgstr "" -"Le module Python est une surcouche assez simple enrobant les fonctions C " -"fournies par *curses* ; si vous êtes déjà familier avec la programmation " -"*curses* en C, il est très facile de transférer cette connaissance à Python. " -"La plus grande différence est que l'interface Python simplifie les choses en " -"fusionnant différentes fonctions C telles " -"que :c:func:`addstr`, :c:func:`mvaddstr` et :c:func:`mvwaddstr` en une seule " -"méthode :meth:`~curses.window.addstr`. Nous voyons cela plus en détail ci-" -"après." - -#: howto/curses.rst:73 -msgid "" -"This HOWTO is an introduction to writing text-mode programs with curses and " -"Python. It doesn't attempt to be a complete guide to the curses API; for " -"that, see the Python library guide's section on ncurses, and the C manual " -"pages for ncurses. It will, however, give you the basic ideas." -msgstr "" -"Ce guide pratique est une introduction à l'écriture de programmes en mode " -"texte avec *curses* et Python. Il n'essaie pas d'être un guide complet de " -"l'API *curses* ; pour cela, consultez la section du guide de la bibliothèque " -"Python sur *ncurses* et les pages du manuel C pour *ncurses*. Il vous donne " -"cependant les idées de base." - -#: howto/curses.rst:80 -msgid "Starting and ending a curses application" -msgstr "Lancement et arrêt une application *curses*" - -#: howto/curses.rst:82 -#, fuzzy -msgid "" -"Before doing anything, curses must be initialized. This is done by calling " -"the :func:`~curses.initscr` function, which will determine the terminal " -"type, send any required setup codes to the terminal, and create various " -"internal data structures. If successful, :func:`!initscr` returns a window " -"object representing the entire screen; this is usually called ``stdscr`` " -"after the name of the corresponding C variable. ::" -msgstr "" -"Avant de faire quoi que ce soit, *curses* doit être initialisé. Appelez pour " -"cela la fonction :func:`~curses.initscr`, elle détermine le type de " -"terminal, envoie tous les codes de configuration requis au terminal et crée " -"diverses structures de données internes. En cas de succès, :func:`initscr` " -"renvoie un objet fenêtre représentant l'écran entier ; il est généralement " -"appelé ``stdscr`` d'après le nom de la variable C correspondante. ::" - -#: howto/curses.rst:93 -msgid "" -"Usually curses applications turn off automatic echoing of keys to the " -"screen, in order to be able to read keys and only display them under certain " -"circumstances. This requires calling the :func:`~curses.noecho` function. ::" -msgstr "" -"Habituellement, les applications *curses* désactivent l'écho automatique des " -"touches à l'écran, afin de pouvoir lire les touches et ne les afficher que " -"dans certaines circonstances. Cela nécessite d'appeler la " -"fonction :func:`~curses.noecho`. ::" - -#: howto/curses.rst:100 -msgid "" -"Applications will also commonly need to react to keys instantly, without " -"requiring the Enter key to be pressed; this is called cbreak mode, as " -"opposed to the usual buffered input mode. ::" -msgstr "" -"Également, les applications réagissent généralement instantanément aux " -"touches sans qu'il soit nécessaire d'appuyer sur la touche Entrée ; c'est ce " -"qu'on appelle le mode *cbreak*, par opposition au mode d'entrée habituel " -"avec un tampon. ::" - -#: howto/curses.rst:106 -msgid "" -"Terminals usually return special keys, such as the cursor keys or navigation " -"keys such as Page Up and Home, as a multibyte escape sequence. While you " -"could write your application to expect such sequences and process them " -"accordingly, curses can do it for you, returning a special value such " -"as :const:`curses.KEY_LEFT`. To get curses to do the job, you'll have to " -"enable keypad mode. ::" -msgstr "" -"Les terminaux renvoient généralement les touches spéciales, telles que les " -"touches de curseur ou les touches de navigation (Page précédente et Accueil " -"par exemple), comme une séquence d'échappement sur plusieurs octets. Bien " -"que vous puissiez écrire votre application pour vous attendre à de telles " -"séquences et les traiter en conséquence, *curses* peut le faire pour vous, " -"renvoyant une valeur spéciale telle que :const:`curses.KEY_LEFT`. Pour que " -"*curses* fasse le travail, vous devez activer le mode *keypad*. ::" - -#: howto/curses.rst:115 -msgid "" -"Terminating a curses application is much easier than starting one. You'll " -"need to call::" -msgstr "" -"Arrêter une application *curses* est beaucoup plus facile que d'en démarrer " -"une. Appelez ::" - -#: howto/curses.rst:122 -msgid "" -"to reverse the curses-friendly terminal settings. Then call " -"the :func:`~curses.endwin` function to restore the terminal to its original " -"operating mode. ::" -msgstr "" -"pour inverser les réglages du terminal mis en place pour *curses*. Ensuite, " -"appelez la fonction :func:`~curses.enddwin` pour restaurer le terminal dans " -"son mode de fonctionnement original. ::" - -#: howto/curses.rst:128 -msgid "" -"A common problem when debugging a curses application is to get your terminal " -"messed up when the application dies without restoring the terminal to its " -"previous state. In Python this commonly happens when your code is buggy and " -"raises an uncaught exception. Keys are no longer echoed to the screen when " -"you type them, for example, which makes using the shell difficult." -msgstr "" -"Un problème courant lors du débogage d'une application *curses* est de se " -"retrouver avec un terminal sans queue ni tête lorsque l'application meurt " -"sans restaurer le terminal à son état précédent. Avec Python, cela arrive " -"souvent lorsque votre code est bogué et lève une exception non interceptée. " -"Les touches ne sont plus répétées à l'écran lorsque vous les tapez, par " -"exemple, ce qui rend l'utilisation de l'interface de commande du *shell* " -"difficile." - -#: howto/curses.rst:134 -msgid "" -"In Python you can avoid these complications and make debugging much easier " -"by importing the :func:`curses.wrapper` function and using it like this::" -msgstr "" -"En Python, vous pouvez éviter ces complications et faciliter le débogage en " -"important la fonction :func:`curses.wrapper` et en l'utilisant comme suit ::" - -#: howto/curses.rst:153 -#, fuzzy -msgid "" -"The :func:`~curses.wrapper` function takes a callable object and does the " -"initializations described above, also initializing colors if color support " -"is present. :func:`!wrapper` then runs your provided callable. Once the " -"callable returns, :func:`!wrapper` will restore the original state of the " -"terminal. The callable is called inside a :keyword:`try`..." -"\\ :keyword:`except` that catches exceptions, restores the state of the " -"terminal, and then re-raises the exception. Therefore your terminal won't " -"be left in a funny state on exception and you'll be able to read the " -"exception's message and traceback." -msgstr "" -"La fonction :func:`~curses.wrapper` prend un objet appelable et fait les " -"initialisations décrites ci-dessus, initialisant également les couleurs si " -"la gestion des couleurs est possible. :func:`wrapper` lance l'appelable " -"fourni. Une fois que l'appelable termine, :func:`wrapper` restaure l'état " -"d'origine du terminal. L'appelable est appelé à l'intérieur " -"d'un :keyword:`try`…\\ :keyword:`except` qui capture les exceptions, " -"restaure l'état du terminal, puis relève l'exception. Par conséquent, votre " -"terminal ne reste pas dans un drôle d'état au moment de l'exception et vous " -"pourrez lire le message de l'exception et la trace de la pile d'appels." - -#: howto/curses.rst:167 -msgid "Windows and Pads" -msgstr "Fenêtres et tampons (*pads* en anglais)" - -#: howto/curses.rst:169 -msgid "" -"Windows are the basic abstraction in curses. A window object represents a " -"rectangular area of the screen, and supports methods to display text, erase " -"it, allow the user to input strings, and so forth." -msgstr "" -"Les fenêtres sont l'abstraction de base de *curses*. Un objet fenêtre " -"représente une zone rectangulaire de l'écran qui gère des méthodes pour " -"afficher du texte, l'effacer, permettre à l'utilisateur de saisir des " -"chaînes, etc." - -#: howto/curses.rst:173 -msgid "" -"The ``stdscr`` object returned by the :func:`~curses.initscr` function is a " -"window object that covers the entire screen. Many programs may need only " -"this single window, but you might wish to divide the screen into smaller " -"windows, in order to redraw or clear them separately. " -"The :func:`~curses.newwin` function creates a new window of a given size, " -"returning the new window object. ::" -msgstr "" -"L'objet ``stdscr`` renvoyé par la fonction :func:`~curses.initscr` est un " -"objet fenêtre qui couvre l'écran entier. De nombreux programmes peuvent " -"n'avoir besoin que de cette fenêtre unique, mais vous pouvez diviser l'écran " -"en fenêtres plus petites, afin de les redessiner ou de les effacer " -"séparément. La fonction :func:`~curses.newwin` crée une nouvelle fenêtre " -"d'une taille donnée, renvoyant le nouvel objet fenêtre. ::" - -#: howto/curses.rst:184 -msgid "" -"Note that the coordinate system used in curses is unusual. Coordinates are " -"always passed in the order *y,x*, and the top-left corner of a window is " -"coordinate (0,0). This breaks the normal convention for handling " -"coordinates where the *x* coordinate comes first. This is an unfortunate " -"difference from most other computer applications, but it's been part of " -"curses since it was first written, and it's too late to change things now." -msgstr "" -"Notez que le système de coordonnées utilisé dans *curses* est inhabituel. " -"Les coordonnées sont toujours passées dans l'ordre *y,x* et le coin " -"supérieur gauche d'une fenêtre a pour coordonnées (0,0). Ceci rompt la " -"convention normale des coordonnées où la coordonnée *x* vient en premier. " -"C'est une différence malheureuse par rapport à la plupart des autres " -"applications informatiques, mais elle fait partie de *curses* depuis qu'il a " -"été écrit et il est trop tard pour changer les choses maintenant." - -#: howto/curses.rst:192 -msgid "" -"Your application can determine the size of the screen by using " -"the :data:`curses.LINES` and :data:`curses.COLS` variables to obtain the *y* " -"and *x* sizes. Legal coordinates will then extend from ``(0,0)`` to " -"``(curses.LINES - 1, curses.COLS - 1)``." -msgstr "" -"Votre application peut déterminer la taille de l'écran en utilisant les " -"variables :data:`curses.LINES` et :data:`curses.COLS` pour obtenir les " -"tailles *y* et *x*. Les coordonnées licites s'étendent alors de ``(0,0)`` à " -"``(curses.LINES - 1, curses.COLS - 1)``." - -#: howto/curses.rst:197 -msgid "" -"When you call a method to display or erase text, the effect doesn't " -"immediately show up on the display. Instead you must call " -"the :meth:`~curses.window.refresh` method of window objects to update the " -"screen." -msgstr "" -"Quand vous appelez une méthode pour afficher ou effacer du texte, " -"l'affichage ne le reflète pas immédiatement. Vous devez appeler la " -"méthode :meth:`~curses.window.refresh` des objets fenêtre pour mettre à jour " -"l'écran." - -#: howto/curses.rst:202 -#, fuzzy -msgid "" -"This is because curses was originally written with slow 300-baud terminal " -"connections in mind; with these terminals, minimizing the time required to " -"redraw the screen was very important. Instead curses accumulates changes to " -"the screen and displays them in the most efficient manner when you " -"call :meth:`!refresh`. For example, if your program displays some text in a " -"window and then clears the window, there's no need to send the original text " -"because they're never visible." -msgstr "" -"C'est parce que *curses* a été écrit du temps des terminaux avec une " -"connexion à 300 bauds seulement ; avec ces terminaux, il était important de " -"minimiser le temps passé à redessiner l'écran. *curses* calcule donc les " -"modifications à apporter à l'écran pour les afficher de la manière la plus " -"efficace au moment où la méthode :meth:`refresh` est appelée. Par exemple, " -"si votre programme affiche du texte dans une fenêtre puis efface cette " -"fenêtre, il n'est pas nécessaire de l'afficher puisqu'il ne sera jamais " -"visible." - -#: howto/curses.rst:211 -#, fuzzy -msgid "" -"In practice, explicitly telling curses to redraw a window doesn't really " -"complicate programming with curses much. Most programs go into a flurry of " -"activity, and then pause waiting for a keypress or some other action on the " -"part of the user. All you have to do is to be sure that the screen has been " -"redrawn before pausing to wait for user input, by first calling :meth:`!" -"stdscr.refresh` or the :meth:`!refresh` method of some other relevant window." -msgstr "" -"Pratiquement, le fait de devoir indiquer explicitement à *curses* de " -"redessiner une fenêtre ne rend pas la programmation plus compliquée. La " -"plupart des programmes effectuent une rafale de traitements puis attendent " -"qu'une touche soit pressée ou toute autre action de la part de " -"l'utilisateur. Tout ce que vous avez à faire consiste à vous assurer que " -"l'écran a bien été redessiné avant d'attendre une entrée utilisateur, en " -"appelant d'abord ``stdscr.refresh()`` ou la méthode :meth:`refresh` de la " -"fenêtre adéquate." - -#: howto/curses.rst:219 -msgid "" -"A pad is a special case of a window; it can be larger than the actual " -"display screen, and only a portion of the pad displayed at a time. Creating " -"a pad requires the pad's height and width, while refreshing a pad requires " -"giving the coordinates of the on-screen area where a subsection of the pad " -"will be displayed. ::" -msgstr "" -"Un tampon (*pad* en anglais) est une forme spéciale de fenêtre ; il peut " -"être plus grand que l'écran effectif et il est possible de n'afficher qu'une " -"partie du tampon à la fois. La création d'un tampon nécessite de fournir sa " -"hauteur et sa largeur, tandis que pour le rafraîchissement du tampon, vous " -"devez fournir les coordonnées de la zone de l'écran où une partie du tampon " -"sera affichée. ::" - -#: howto/curses.rst:240 -#, fuzzy -msgid "" -"The :meth:`!refresh` call displays a section of the pad in the rectangle " -"extending from coordinate (5,5) to coordinate (20,75) on the screen; the " -"upper left corner of the displayed section is coordinate (0,0) on the pad. " -"Beyond that difference, pads are exactly like ordinary windows and support " -"the same methods." -msgstr "" -"L'appel à :meth:`refresh` affiche une partie du tampon dans le rectangle " -"formé par les coins de coordonnées (5,5) et (20,75) de l'écran ; le coin " -"supérieur gauche de la partie affichée a pour coordonnées (0,0) dans le " -"tampon. À part cette différence, les tampons sont exactement comme les " -"fenêtres ordinaires et gèrent les mêmes méthodes." - -#: howto/curses.rst:246 -#, fuzzy -msgid "" -"If you have multiple windows and pads on screen there is a more efficient " -"way to update the screen and prevent annoying screen flicker as each part of " -"the screen gets updated. :meth:`!refresh` actually does two things:" -msgstr "" -"Si vous avez plusieurs fenêtres et tampons sur l'écran, il existe un moyen " -"plus efficace pour rafraîchir l'écran et éviter des scintillements agaçants " -"à chaque mise à jour. :meth:`refresh` effectue en fait deux choses :" - -#: howto/curses.rst:251 -msgid "" -"Calls the :meth:`~curses.window.noutrefresh` method of each window to update " -"an underlying data structure representing the desired state of the screen." -msgstr "" -"elle appelle la méthode :meth:`~curses.window.noutrefresh` de chaque fenêtre " -"pour mettre à jour les données sous-jacentes qui permettent d'obtenir " -"l'affichage voulu ;" - -#: howto/curses.rst:254 -msgid "" -"Calls the function :func:`~curses.doupdate` function to change the physical " -"screen to match the desired state recorded in the data structure." -msgstr "" -"elle appelle la fonction :func:`~curses.doupdate` pour modifier l'écran " -"physique afin de correspondre à l'état défini par les données sous-jacentes." - -#: howto/curses.rst:257 -#, fuzzy -msgid "" -"Instead you can call :meth:`!noutrefresh` on a number of windows to update " -"the data structure, and then call :func:`!doupdate` to update the screen." -msgstr "" -"Vous pouvez ainsi appeler :meth:`noutrefresh` sur les fenêtres dont vous " -"voulez mettre à jour des données, puis :func:`doupdate` pour mettre à jour " -"l'écran." - -#: howto/curses.rst:263 -msgid "Displaying Text" -msgstr "Affichage de texte" - -#: howto/curses.rst:265 -#, fuzzy -msgid "" -"From a C programmer's point of view, curses may sometimes look like a twisty " -"maze of functions, all subtly different. For example, :c:func:`!addstr` " -"displays a string at the current cursor location in the ``stdscr`` window, " -"while :c:func:`!mvaddstr` moves to a given y,x coordinate first before " -"displaying the string. :c:func:`!waddstr` is just like :c:func:`!addstr`, " -"but allows specifying a window to use instead of using ``stdscr`` by " -"default. :c:func:`!mvwaddstr` allows specifying both a window and a " -"coordinate." -msgstr "" -"D'un point de vue de programmeur C, *curses* peut parfois ressembler à un " -"enchevêtrement de fonctions, chacune ayant sa subtilité. Par " -"exemple, :c:func:`addstr` affiche une chaîne à la position actuelle du " -"curseur de la fenêtre ``stdscr``, alors que :c:func:`mvaddstr` se déplace " -"d'abord jusqu'aux coordonnées (y,x) avant d'afficher la " -"chaîne. :c:func:`waddstr` est comme :c:func:`addstr`, mais permet de " -"spécifier la fenêtre au lieu d'utiliser ``stdscr`` par " -"défaut. :c:func:`mvwaddstr` permet de spécifier à la fois les coordonnées et " -"la fenêtre." - -#: howto/curses.rst:274 -msgid "" -"Fortunately the Python interface hides all these details. ``stdscr`` is a " -"window object like any other, and methods such " -"as :meth:`~curses.window.addstr` accept multiple argument forms. Usually " -"there are four different forms." -msgstr "" -"Heureusement, l'interface Python masque tous ces détails. ``stdscr`` est un " -"objet fenêtre comme les autres et les méthodes telles " -"que :meth:`~curses.window.addstr` acceptent leurs arguments sous de " -"multiples formes, habituellement quatre." - -#: howto/curses.rst:280 -msgid "Form" -msgstr "Forme" - -#: howto/curses.rst:348 -msgid "Description" -msgstr "Description" - -#: howto/curses.rst:282 -msgid "*str* or *ch*" -msgstr "*str* ou *ch*" - -#: howto/curses.rst:282 -msgid "Display the string *str* or character *ch* at the current position" -msgstr "Affiche la chaîne *str* ou le caractère *ch* à la position actuelle" - -#: howto/curses.rst:285 -msgid "*str* or *ch*, *attr*" -msgstr "*str* ou *ch*, *attr*" - -#: howto/curses.rst:285 -msgid "" -"Display the string *str* or character *ch*, using attribute *attr* at the " -"current position" -msgstr "" -"Affiche la chaîne *str* ou le caractère *ch*, en utilisant l'attribut *attr* " -"à la position actuelle" - -#: howto/curses.rst:289 -msgid "*y*, *x*, *str* or *ch*" -msgstr "*y*, *x*, *str* ou *ch*" - -#: howto/curses.rst:289 -msgid "Move to position *y,x* within the window, and display *str* or *ch*" -msgstr "" -"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " -"le caractère *ch*" - -#: howto/curses.rst:292 -msgid "*y*, *x*, *str* or *ch*, *attr*" -msgstr "*y*, *x*, *str* ou *ch*, *attr*" - -#: howto/curses.rst:292 -msgid "" -"Move to position *y,x* within the window, and display *str* or *ch*, using " -"attribute *attr*" -msgstr "" -"Se déplace à la position *y,x* dans la fenêtre et affiche la chaîne *str* ou " -"le caractère *ch* en utilisant l'attribut *attr*" - -#: howto/curses.rst:296 -msgid "" -"Attributes allow displaying text in highlighted forms such as boldface, " -"underline, reverse code, or in color. They'll be explained in more detail " -"in the next subsection." -msgstr "" -"Les attributs permettent de mettre en valeur du texte : gras, souligné, mode " -"vidéo inversé ou en couleur. Nous les voyons plus en détail dans la section " -"suivante." - -#: howto/curses.rst:301 -#, fuzzy -msgid "" -"The :meth:`~curses.window.addstr` method takes a Python string or bytestring " -"as the value to be displayed. The contents of bytestrings are sent to the " -"terminal as-is. Strings are encoded to bytes using the value of the " -"window's :attr:`~window.encoding` attribute; this defaults to the default " -"system encoding as returned by :func:`locale.getencoding`." -msgstr "" -"La méthode :meth:`~curses.window.addstr` prend en argument une chaîne ou une " -"suite d'octets Python. Le contenu des chaînes d'octets est envoyé vers le " -"terminal tel quel. Les chaînes sont encodées en octets en utilisant la " -"valeur de l'attribut :attr:`encoding` de la fenêtre ; c'est par défaut " -"l'encodage du système tel que renvoyé par :func:`locale.getencoding`." - -#: howto/curses.rst:307 -msgid "" -"The :meth:`~curses.window.addch` methods take a character, which can be " -"either a string of length 1, a bytestring of length 1, or an integer." -msgstr "" -"Les méthodes :meth:`~curses.window.addch` prennent un caractère, soit sous " -"la forme d'une chaîne de longueur 1, d'une chaîne d'octets de longueur 1 ou " -"d'un entier." - -#: howto/curses.rst:310 -msgid "" -"Constants are provided for extension characters; these constants are " -"integers greater than 255. For example, :const:`ACS_PLMINUS` is a +/- " -"symbol, and :const:`ACS_ULCORNER` is the upper left corner of a box (handy " -"for drawing borders). You can also use the appropriate Unicode character." -msgstr "" -"Des constantes sont disponibles pour étendre les caractères ; ces constantes " -"sont des entiers supérieurs à 255. Par exemple, :const:`ACS_PLMINUS` " -"correspond au symbole +/- et :const:`ACS_ULCORNER` correspond au coin en " -"haut et à gauche d'une boîte (utile pour dessiner des encadrements). Vous " -"pouvez aussi utiliser les caractères Unicode adéquats." - -#: howto/curses.rst:316 -msgid "" -"Windows remember where the cursor was left after the last operation, so if " -"you leave out the *y,x* coordinates, the string or character will be " -"displayed wherever the last operation left off. You can also move the " -"cursor with the ``move(y,x)`` method. Because some terminals always display " -"a flashing cursor, you may want to ensure that the cursor is positioned in " -"some location where it won't be distracting; it can be confusing to have the " -"cursor blinking at some apparently random location." -msgstr "" -"Windows se souvient de l'endroit où le curseur était positionné lors de la " -"dernière opération, de manière à ce que si vous n'utilisez pas les " -"coordonnées *y,x*, l'affichage se produit au dernier endroit utilisé. Vous " -"pouvez aussi déplacer le curseur avec la méthode ``move(y,x)``. Comme " -"certains terminaux affichent un curseur clignotant, vous pouvez ainsi vous " -"assurer que celui-ci est positionné à un endroit où il ne distrait pas " -"l'utilisateur (il peut être déroutant d'avoir un curseur qui clignote à des " -"endroits apparemment aléatoires)." - -#: howto/curses.rst:324 -msgid "" -"If your application doesn't need a blinking cursor at all, you can call " -"``curs_set(False)`` to make it invisible. For compatibility with older " -"curses versions, there's a ``leaveok(bool)`` function that's a synonym " -"for :func:`~curses.curs_set`. When *bool* is true, the curses library will " -"attempt to suppress the flashing cursor, and you won't need to worry about " -"leaving it in odd locations." -msgstr "" -"Si votre application n'a pas besoin d'un curseur clignotant, vous pouvez " -"appeler ``curs_set(False)`` pour le rendre invisible. Par souci de " -"compatibilité avec les anciennes versions de *curses*, il existe la fonction " -"``leaveok(bool)`` qui est un synonyme de :func:`~curses.curs_set`. Quand " -"*bool* vaut ``True``, la bibliothèque *curses* essaie de supprimer le " -"curseur clignotant et vous n'avez plus besoin de vous soucier de le laisser " -"trainer à des endroits bizarres." - -#: howto/curses.rst:333 -msgid "Attributes and Color" -msgstr "Attributs et couleurs" - -#: howto/curses.rst:335 -msgid "" -"Characters can be displayed in different ways. Status lines in a text-based " -"application are commonly shown in reverse video, or a text viewer may need " -"to highlight certain words. curses supports this by allowing you to specify " -"an attribute for each cell on the screen." -msgstr "" -"Les caractères peuvent être affichés de différentes façons. Les lignes de " -"statut des applications en mode texte sont généralement affichées en mode " -"vidéo inversé ; vous pouvez avoir besoin de mettre en valeur certains mots. " -"À ces fins, *curses* vous permet de spécifier un attribut pour chaque " -"caractère à l'écran." - -#: howto/curses.rst:340 -msgid "" -"An attribute is an integer, each bit representing a different attribute. " -"You can try to display text with multiple attribute bits set, but curses " -"doesn't guarantee that all the possible combinations are available, or that " -"they're all visually distinct. That depends on the ability of the terminal " -"being used, so it's safest to stick to the most commonly available " -"attributes, listed here." -msgstr "" -"Un attribut est un entier dont chaque bit représente un attribut différent. " -"Vous pouvez essayer d'afficher du texte avec plusieurs attributs définis " -"simultanément mais *curses* ne garantit pas que toutes les combinaisons " -"soient prises en compte ou que le résultat soit visuellement différent. Cela " -"dépend de la capacité de chaque terminal utilisé, il est donc plus sage de " -"se cantonner aux attributs les plus communément utilisés, dont la liste est " -"fournie ci-dessous." - -#: howto/curses.rst:348 -msgid "Attribute" -msgstr "Attribut" - -#: howto/curses.rst:350 -msgid ":const:`A_BLINK`" -msgstr ":const:`A_BLINK`" - -#: howto/curses.rst:350 -msgid "Blinking text" -msgstr "Texte clignotant" - -#: howto/curses.rst:352 -msgid ":const:`A_BOLD`" -msgstr ":const:`A_BOLD`" - -#: howto/curses.rst:352 -msgid "Extra bright or bold text" -msgstr "Texte en surbrillance ou en gras" - -#: howto/curses.rst:354 -msgid ":const:`A_DIM`" -msgstr ":const:`A_DIM`" - -#: howto/curses.rst:354 -msgid "Half bright text" -msgstr "Texte en demi-ton" - -#: howto/curses.rst:356 -msgid ":const:`A_REVERSE`" -msgstr ":const:`A_REVERSE`" - -#: howto/curses.rst:356 -msgid "Reverse-video text" -msgstr "Texte en mode vidéo inversé" - -#: howto/curses.rst:358 -msgid ":const:`A_STANDOUT`" -msgstr ":const:`A_STANDOUT`" - -#: howto/curses.rst:358 -msgid "The best highlighting mode available" -msgstr "Le meilleur mode de mis en valeur pour le texte" - -#: howto/curses.rst:360 -msgid ":const:`A_UNDERLINE`" -msgstr ":const:`A_UNDERLINE`" - -#: howto/curses.rst:360 -msgid "Underlined text" -msgstr "Texte souligné" - -#: howto/curses.rst:363 -msgid "" -"So, to display a reverse-video status line on the top line of the screen, " -"you could code::" -msgstr "" -"Ainsi, pour mettre la ligne de statut située en haut de l'écran en mode " -"vidéo inversé, vous pouvez coder ::" - -#: howto/curses.rst:370 -msgid "" -"The curses library also supports color on those terminals that provide it. " -"The most common such terminal is probably the Linux console, followed by " -"color xterms." -msgstr "" -"La bibliothèque *curses* gère également les couleurs pour les terminaux " -"compatibles. Le plus répandu de ces terminaux est sûrement la console Linux, " -"suivie par *xterm* en couleurs." - -#: howto/curses.rst:374 -msgid "" -"To use color, you must call the :func:`~curses.start_color` function soon " -"after calling :func:`~curses.initscr`, to initialize the default color set " -"(the :func:`curses.wrapper` function does this automatically). Once that's " -"done, the :func:`~curses.has_colors` function returns TRUE if the terminal " -"in use can actually display color. (Note: curses uses the American spelling " -"'color', instead of the Canadian/British spelling 'colour'. If you're used " -"to the British spelling, you'll have to resign yourself to misspelling it " -"for the sake of these functions.)" -msgstr "" -"Pour utiliser les couleurs, vous devez d'abord appeler la " -"fonction :func:`~curses.start_color` juste après avoir " -"appelé :func:`~curses.initscr` afin d'initialiser (la " -"fonction :func:`curses.wrapper` le fait automatiquement). Ensuite, la " -"fonction :func:`~curses.has_colors` renvoie ``True`` si le terminal utilisé " -"gère les couleurs (note : *curses* utilise l'orthographe américaine *color* " -"et non pas l'orthographe britannique ou canadienne *colour* ; si vous êtes " -"habitué à l'orthographe britannique, vous devrez vous résigner à mal " -"l'orthographier tant que vous utilisez *curses*)." - -#: howto/curses.rst:384 -msgid "" -"The curses library maintains a finite number of color pairs, containing a " -"foreground (or text) color and a background color. You can get the " -"attribute value corresponding to a color pair with " -"the :func:`~curses.color_pair` function; this can be bitwise-OR'ed with " -"other attributes such as :const:`A_REVERSE`, but again, such combinations " -"are not guaranteed to work on all terminals." -msgstr "" -"La bibliothèque *curses* maintient un nombre restreint de paires de " -"couleurs, constituées d'une couleur de texte (*foreground*) et de fond " -"(*background*). Vous pouvez obtenir la valeur des attributs correspondant à " -"une paire de couleur avec la fonction :func:`~curses.color_pair` ; cette " -"valeur peut être combinée bit par bit (avec la fonction *OR*) avec les " -"autres attributs tels que :const:`A_REVERSE`,mais là encore, de telles " -"combinaisons risquent de ne pas fonctionner sur tous les terminaux." - -#: howto/curses.rst:391 -msgid "An example, which displays a line of text using color pair 1::" -msgstr "" -"Un exemple d'affichage d'une ligne de texte en utilisant la paire de couleur " -"1 ::" - -#: howto/curses.rst:396 -msgid "" -"As I said before, a color pair consists of a foreground and background " -"color. The ``init_pair(n, f, b)`` function changes the definition of color " -"pair *n*, to foreground color f and background color b. Color pair 0 is " -"hard-wired to white on black, and cannot be changed." -msgstr "" -"Comme indiqué auparavant, une paire de couleurs est constituée d'une couleur " -"de texte et d'une couleur de fond. La fonction ``init_pair(n, f, b)`` change " -"la définition de la paire de couleurs *n*, en définissant la couleur de " -"texte à *f* et la couleur de fond à *b*. La paire de couleurs 0 est codée en " -"dur à blanc sur noir et ne peut être modifiée." - -#: howto/curses.rst:401 -msgid "" -"Colors are numbered, and :func:`start_color` initializes 8 basic colors when " -"it activates color mode. They are: 0:black, 1:red, 2:green, 3:yellow, " -"4:blue, 5:magenta, 6:cyan, and 7:white. The :mod:`curses` module defines " -"named constants for each of these " -"colors: :const:`curses.COLOR_BLACK`, :const:`curses.COLOR_RED`, and so forth." -msgstr "" -"Les couleurs sont numérotées et :func:`start_color` initialise 8 couleurs " -"basiques lors de l'activation du mode en couleurs. Ce sont : 0 pour noir " -"(*black*), 1 pour rouge (*red*), 2 pour vert (*green*), 3 pour jaune " -"(*yellow*), 4 pour bleu *(blue*), 5 pour magenta, 6 pour cyan et 7 pour " -"blanc (*white*). Le module :mod:`curses` définit des constantes nommées pour " -"chacune de ces " -"couleurs : :const:`curses.COLOR_BLACK`, :const:`curses.COLOR_RED` et ainsi " -"de suite." - -#: howto/curses.rst:407 -msgid "" -"Let's put all this together. To change color 1 to red text on a white " -"background, you would call::" -msgstr "" -"Testons tout ça. Pour changer la couleur 1 à rouge sur fond blanc, appelez ::" - -#: howto/curses.rst:412 -msgid "" -"When you change a color pair, any text already displayed using that color " -"pair will change to the new colors. You can also display new text in this " -"color with::" -msgstr "" -"Quand vous modifiez une paire de couleurs, tout le texte déjà affiché qui " -"utilise cette paire de couleur voit les nouvelles couleurs s'appliquer à " -"lui. Vous pouvez aussi afficher du nouveau texte dans cette couleur avec ::" - -#: howto/curses.rst:418 -msgid "" -"Very fancy terminals can change the definitions of the actual colors to a " -"given RGB value. This lets you change color 1, which is usually red, to " -"purple or blue or any other color you like. Unfortunately, the Linux " -"console doesn't support this, so I'm unable to try it out, and can't provide " -"any examples. You can check if your terminal can do this by " -"calling :func:`~curses.can_change_color`, which returns ``True`` if the " -"capability is there. If you're lucky enough to have such a talented " -"terminal, consult your system's man pages for more information." -msgstr "" -"Les terminaux « de luxe » peuvent définir les couleurs avec des valeurs " -"*RGB*. Cela vous permet de modifier la couleur 1, habituellement rouge, en " -"violet ou bleu voire toute autre couleur selon votre goût. Malheureusement, " -"la console Linux ne gère pas cette fonctionnalité, je suis donc bien " -"incapable de la tester et de vous en fournir un exemple. Vous pouvez " -"vérifier si votre terminal la prend en charge en " -"appelant :func:`~curses.can_change_color`, qui renvoie ``True`` en cas de " -"succès. Si vous avez la chance d'avoir un terminal aussi perfectionné, " -"consultez les pages du manuel de votre système pour obtenir plus " -"d'informations." - -#: howto/curses.rst:429 -msgid "User Input" -msgstr "Entrées de l'utilisateur" - -#: howto/curses.rst:431 -#, fuzzy -msgid "" -"The C curses library offers only very simple input mechanisms. " -"Python's :mod:`curses` module adds a basic text-input widget. (Other " -"libraries such as :pypi:`Urwid` have more extensive collections of widgets.)" -msgstr "" -"La bibliothèque C *curses* ne propose que quelques mécanismes très simples " -"pour les entrées. Le module :mod:`curses` y ajoute un *widget* basique " -"d'entrée de texte (d'autres bibliothèques telles que `Urwid `_ ont un ensemble de *widgets* plus conséquent)." - -#: howto/curses.rst:435 -msgid "There are two methods for getting input from a window:" -msgstr "Il y a deux méthodes pour obtenir des entrées dans une fenêtre :" - -#: howto/curses.rst:437 -msgid "" -":meth:`~curses.window.getch` refreshes the screen and then waits for the " -"user to hit a key, displaying the key if :func:`~curses.echo` has been " -"called earlier. You can optionally specify a coordinate to which the cursor " -"should be moved before pausing." -msgstr "" -":meth:`~curses.window.getch` rafraîchit l'écran et attend que l'utilisateur " -"appuie sur une touche, affichant cette touche si :func:`~curses.echo` a été " -"appelé auparavant. Vous pouvez en option spécifier des coordonnées où " -"positionner le curseur avant la mise en pause ;" - -#: howto/curses.rst:442 -msgid "" -":meth:`~curses.window.getkey` does the same thing but converts the integer " -"to a string. Individual characters are returned as 1-character strings, and " -"special keys such as function keys return longer strings containing a key " -"name such as ``KEY_UP`` or ``^G``." -msgstr "" -":meth:`~curses.window.getkey` effectue la même chose mais convertit l'entier " -"en chaîne. Les caractères individuels sont renvoyés en chaînes de longueur 1 " -"alors que les touches spéciales (telles que les touches de fonction) " -"renvoient des chaînes plus longues contenant le nom de la touche (tel que " -"``KEY_UP`` ou ``^G``)." - -#: howto/curses.rst:447 -#, fuzzy -msgid "" -"It's possible to not wait for the user using " -"the :meth:`~curses.window.nodelay` window method. After " -"``nodelay(True)``, :meth:`!getch` and :meth:`!getkey` for the window become " -"non-blocking. To signal that no input is ready, :meth:`!getch` returns " -"``curses.ERR`` (a value of -1) and :meth:`!getkey` raises an exception. " -"There's also a :func:`~curses.halfdelay` function, which can be used to (in " -"effect) set a timer on each :meth:`!getch`; if no input becomes available " -"within a specified delay (measured in tenths of a second), curses raises an " -"exception." -msgstr "" -"Il est possible de ne pas attendre l'utilisateur en utilisant la méthode de " -"fenêtre :meth:`~curses.window.nodelay`. Après ``nodelay(True)``, les " -"méthodes de fenêtre :meth:`getch` et :meth:`getkey` deviennent non " -"bloquantes. Pour indiquer qu'aucune entrée n'a eu lieu, :meth:`getch` " -"renvoie ``curses.ERR`` (ayant pour valeur −1) et :meth:`getkey` lève une " -"exception. Il existe aussi la fonction :func:`~curses.halfdelay`, qui peut " -"être utilisée pour définir un délai maximal pour chaque :meth:`getch` ; si " -"aucune entrée n'est disponible dans le délai spécifié (mesuré en dixièmes de " -"seconde), *curses* lève une exception." - -#: howto/curses.rst:457 -#, fuzzy -msgid "" -"The :meth:`!getch` method returns an integer; if it's between 0 and 255, it " -"represents the ASCII code of the key pressed. Values greater than 255 are " -"special keys such as Page Up, Home, or the cursor keys. You can compare the " -"value returned to constants such " -"as :const:`curses.KEY_PPAGE`, :const:`curses.KEY_HOME`, " -"or :const:`curses.KEY_LEFT`. The main loop of your program may look " -"something like this::" -msgstr "" -"La méthode :meth:`getch` renvoie un entier ; s'il est entre 0 et 255, c'est " -"le code ASCII de la touche pressée. Les valeurs supérieures à 255 sont des " -"touches spéciales telles que Page Précédente, Accueil ou les touches du " -"curseur. Vous pouvez comparer la valeur renvoyée aux " -"constantes :const:`curses.KEY_PPAGE`, :const:`curses.KEY_HOME`, :const:`curses.KEY_LEFT`, " -"etc. La boucle principale de votre programme pourrait ressembler à quelque " -"chose comme ::" - -#: howto/curses.rst:473 -msgid "" -"The :mod:`curses.ascii` module supplies ASCII class membership functions " -"that take either integer or 1-character string arguments; these may be " -"useful in writing more readable tests for such loops. It also supplies " -"conversion functions that take either integer or 1-character-string " -"arguments and return the same type. For example, :func:`curses.ascii.ctrl` " -"returns the control character corresponding to its argument." -msgstr "" -"Le module :mod:`curses.ascii` fournit des fonctions pour déterminer si " -"l'entier ou la chaîne de longueur 1 passés en arguments font partie de la " -"classe ASCII ; elles peuvent s'avérer utile pour écrire du code plus lisible " -"dans ce genre de boucles. Il fournit également des fonctions de conversion " -"qui prennent un entier ou une chaîne de longueur 1 en entrée et renvoient le " -"type correspondant au nom de la fonction. Par " -"exemple, :func:`curses.ascii.ctrl` renvoie le caractère de contrôle " -"correspondant à son paramètre." - -#: howto/curses.rst:480 -msgid "" -"There's also a method to retrieve an entire " -"string, :meth:`~curses.window.getstr`. It isn't used very often, because " -"its functionality is quite limited; the only editing keys available are the " -"backspace key and the Enter key, which terminates the string. It can " -"optionally be limited to a fixed number of characters. ::" -msgstr "" -"Il existe aussi une méthode pour récupérer une chaîne " -"entière, :meth:`~curses.window.getstr`. Elle n'est pas beaucoup utilisée car " -"son utilité est limitée : les seules touches d'édition disponibles sont le " -"retour arrière et la touche Entrée, qui termine la chaîne. Elle peut, en " -"option, être limitée à un nombre fixé de caractères. ::" - -#: howto/curses.rst:491 -msgid "" -"The :mod:`curses.textpad` module supplies a text box that supports an Emacs-" -"like set of keybindings. Various methods of " -"the :class:`~curses.textpad.Textbox` class support editing with input " -"validation and gathering the edit results either with or without trailing " -"spaces. Here's an example::" -msgstr "" -"Le module :mod:`curses.textpad` fournit un type de boîte texte qui gère des " -"touches de fonctions à la façon d'\\ *Emacs*. Plusieurs méthodes de la " -"classe :class:`~curses.textpad.Textbox` gèrent l'édition avec la validation " -"des entrées et le regroupement de l'entrée avec ou sans les espaces de début " -"et de fin. Par exemple ::" - -#: howto/curses.rst:515 -msgid "" -"See the library documentation on :mod:`curses.textpad` for more details." -msgstr "" -"Consultez la documentation de la bibliothèque pour plus de détails " -"sur :mod:`curses.textpad`." - -#: howto/curses.rst:519 -msgid "For More Information" -msgstr "Pour aller plus loin" - -#: howto/curses.rst:521 -msgid "" -"This HOWTO doesn't cover some advanced topics, such as reading the contents " -"of the screen or capturing mouse events from an xterm instance, but the " -"Python library page for the :mod:`curses` module is now reasonably " -"complete. You should browse it next." -msgstr "" -"Ce guide pratique ne couvre pas certains sujets avancés, tels que la lecture " -"du contenu de l'écran ou la capture des événements relatifs à la souris dans " -"une instance *xterm*, mais la page de la bibliothèque Python du " -"module :mod:`curses` est maintenant suffisamment complète. Nous vous " -"encourageons à la parcourir." - -#: howto/curses.rst:526 -#, fuzzy -msgid "" -"If you're in doubt about the detailed behavior of the curses functions, " -"consult the manual pages for your curses implementation, whether it's " -"ncurses or a proprietary Unix vendor's. The manual pages will document any " -"quirks, and provide complete lists of all the functions, attributes, " -"and :ref:`ACS_\\* ` characters available to you." -msgstr "" -"Si vous vous posez des questions sur le fonctionnement précis de fonctions " -"*curses*, consultez les pages de manuel de l'implémentation *curses* de " -"votre système, que ce soit *ncurses* ou une version propriétaire Unix. Les " -"pages de manuel documentent toutes les bizarreries et vous donneront les " -"listes complètes des fonctions, attributs et codes :const:`ACS_\\*` des " -"caractères disponibles." - -#: howto/curses.rst:533 -msgid "" -"Because the curses API is so large, some functions aren't supported in the " -"Python interface. Often this isn't because they're difficult to implement, " -"but because no one has needed them yet. Also, Python doesn't yet support " -"the menu library associated with ncurses. Patches adding support for these " -"would be welcome; see `the Python Developer's Guide `_ to learn more about submitting patches to Python." -msgstr "" -"Étant donné que l'API *curses* est si volumineuse, certaines fonctions ne " -"sont pas prises en charge dans l'interface Python. Souvent, ce n'est pas " -"parce qu'elles sont difficiles à implémenter, mais parce que personne n'en a " -"eu encore besoin. De plus, Python ne prend pas encore en charge la " -"bibliothèque de gestion des menus associée à *ncurses*. Les correctifs " -"ajoutant cette prise en charge seraient bienvenus ; reportez-vous au `guide " -"du développeur Python `_ pour apprendre " -"comment soumettre des améliorations à Python." - -#: howto/curses.rst:541 -#, fuzzy -msgid "" -"`Writing Programs with NCURSES `_: a lengthy tutorial for C programmers." -msgstr "" -"`Writing Programs with NCURSES `_ : un long tutoriel pour les programmeurs C (ressource en " -"anglais)." - -#: howto/curses.rst:543 -msgid "`The ncurses man page `_" -msgstr "`La page de manuel ncurses `_" - -#: howto/curses.rst:544 -#, fuzzy -msgid "" -"`The ncurses FAQ `_" -msgstr "" -"`La FAQ ncurses `_ " -"(ressource en anglais)" - -#: howto/curses.rst:545 -msgid "" -"`\"Use curses... don't swear\" `_: video of a PyCon 2013 talk on controlling terminals using " -"curses or Urwid." -msgstr "" -"`\"Use curses... don't swear\" `_ : vidéo d'une conférence lors de la PyCon 2013 sur la " -"gestion des terminaux à l'aide de *curses* et *Urwid* (vidéo en anglais)." - -#: howto/curses.rst:547 -#, fuzzy -msgid "" -"`\"Console Applications with Urwid\" `_: video of a PyCon CA 2012 talk demonstrating some " -"applications written using Urwid." -msgstr "" -"`\"Console Applications with Urwid\" `_ : vidéo d'une conférence lors de PyCon CA " -"2012 montrant quelques applications utilisant *Urwid*." - -#~ msgid "" -#~ "The Windows version of Python doesn't include the :mod:`curses` module. " -#~ "A ported version called `UniCurses `_ " -#~ "is available. You could also try `the Console module `_ written by Fredrik Lundh, which doesn't use the " -#~ "same API as curses but provides cursor-addressable text output and full " -#~ "support for mouse and keyboard input." -#~ msgstr "" -#~ "La version Windows de Python n'inclut pas le module :mod:`curses`. Une " -#~ "version portée appelée `UniCurses `_ " -#~ "est disponible. Vous pouvez également essayer le `Windows console driver " -#~ "`_ écrit par Fredrik Lundh, qui " -#~ "n'utilise pas la même API que *curses*, mais fournit une sortie texte " -#~ "avec gestion du curseur et une prise en charge complète de la souris et " -#~ "du clavier." diff --git a/howto/descriptor.po b/howto/descriptor.po deleted file mode 100644 index 34764d2144..0000000000 --- a/howto/descriptor.po +++ /dev/null @@ -1,1619 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-03-27 16:50+0200\n" -"Last-Translator: Mathieu Dupuy\n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.2\n" - -#: howto/descriptor.rst:5 -#, fuzzy -msgid "Descriptor Guide" -msgstr "Guide pour l'utilisation des descripteurs" - -#: howto/descriptor.rst:0 -msgid "Author" -msgstr "Auteur" - -#: howto/descriptor.rst:7 -msgid "Raymond Hettinger" -msgstr "Raymond Hettinger" - -#: howto/descriptor.rst:0 -msgid "Contact" -msgstr "Contact" - -#: howto/descriptor.rst:8 -msgid "" -msgstr "" - -#: howto/descriptor.rst:11 -msgid "Contents" -msgstr "Sommaire" - -#: howto/descriptor.rst:13 -msgid "" -":term:`Descriptors ` let objects customize attribute lookup, " -"storage, and deletion." -msgstr "" -"Les :term:`descripteurs ` permettent de personnaliser la " -"recherche, le stockage et la suppression des attributs des objets." - -#: howto/descriptor.rst:16 -msgid "This guide has four major sections:" -msgstr "Ce guide comporte quatre parties principales :" - -# suit un : , début d'énumération -#: howto/descriptor.rst:18 -msgid "" -"The \"primer\" gives a basic overview, moving gently from simple examples, " -"adding one feature at a time. Start here if you're new to descriptors." -msgstr "" -"l'« introduction » donne un premier aperçu, en partant d'exemples simples, " -"puis en ajoutant une fonctionnalité à la fois. Commencez par là si vous " -"débutez avec les descripteurs ;" - -# énumération -#: howto/descriptor.rst:21 -msgid "" -"The second section shows a complete, practical descriptor example. If you " -"already know the basics, start there." -msgstr "" -"la deuxième partie montre un exemple de descripteur complet et pratique. Si " -"vous connaissez déjà les bases, commencez par là ;" - -# énumération -#: howto/descriptor.rst:24 -msgid "" -"The third section provides a more technical tutorial that goes into the " -"detailed mechanics of how descriptors work. Most people don't need this " -"level of detail." -msgstr "" -"la troisième partie fournit un didacticiel plus technique qui décrit de " -"manière détaillée comment fonctionnent les descripteurs. La plupart des gens " -"n'ont pas besoin de ce niveau de détail ;" - -# fin d'énumération -#: howto/descriptor.rst:28 -msgid "" -"The last section has pure Python equivalents for built-in descriptors that " -"are written in C. Read this if you're curious about how functions turn into " -"bound methods or about the implementation of common tools " -"like :func:`classmethod`, :func:`staticmethod`, :func:`property`, " -"and :term:`__slots__`." -msgstr "" -"la dernière partie contient des équivalents en pur Python des descripteurs " -"natifs écrits en C. Lisez ceci si vous êtes curieux de savoir comment les " -"fonctions se transforment en méthodes liées ou si vous voulez connaître " -"l'implémentation d'outils courants " -"comme :func:`classmethod`, :func:`staticmethod`, :func:`property` " -"et :term:`__slots__`." - -#: howto/descriptor.rst:36 -msgid "Primer" -msgstr "Introduction" - -#: howto/descriptor.rst:38 -msgid "" -"In this primer, we start with the most basic possible example and then we'll " -"add new capabilities one by one." -msgstr "" -"Dans cette introduction, nous commençons par l'exemple le plus simple " -"possible, puis nous ajoutons de nouvelles fonctionnalités une par une." - -#: howto/descriptor.rst:43 -msgid "Simple example: A descriptor that returns a constant" -msgstr "Un exemple simple : un descripteur qui renvoie une constante" - -#: howto/descriptor.rst:45 -#, fuzzy -msgid "" -"The :class:`!Ten` class is a descriptor whose :meth:`~object.__get__` method " -"always returns the constant ``10``:" -msgstr "" -"La classe :class:`Ten` est un descripteur dont la méthode :meth:`__get__` " -"renvoie toujours la constante ``10`` :" - -#: howto/descriptor.rst:54 -msgid "" -"To use the descriptor, it must be stored as a class variable in another " -"class:" -msgstr "" -"Pour utiliser le descripteur, il doit être stocké en tant que variable de " -"classe dans une autre classe :" - -#: howto/descriptor.rst:62 -msgid "" -"An interactive session shows the difference between normal attribute lookup " -"and descriptor lookup:" -msgstr "" -"Une session interactive montre la différence entre la recherche d'attribut " -"normale et la recherche *via* un descripteur :" - -#: howto/descriptor.rst:73 -msgid "" -"In the ``a.x`` attribute lookup, the dot operator finds ``'x': 5`` in the " -"class dictionary. In the ``a.y`` lookup, the dot operator finds a " -"descriptor instance, recognized by its ``__get__`` method. Calling that " -"method returns ``10``." -msgstr "" -"Dans la recherche d'attribut ``a.x``, l'opérateur « point » trouve ``'x': " -"5`` dans le dictionnaire de classe. Dans la recherche ``a.y``, l'opérateur " -"« point » trouve une instance de descripteur, reconnue par sa méthode " -"``__get__``. L'appel de cette méthode renvoie ``10``." - -#: howto/descriptor.rst:78 -msgid "" -"Note that the value ``10`` is not stored in either the class dictionary or " -"the instance dictionary. Instead, the value ``10`` is computed on demand." -msgstr "" -"Notez que la valeur ``10`` n'est stockée ni dans le dictionnaire de classe " -"ni dans le dictionnaire d'instance. Non, la valeur ``10`` est calculée à la " -"demande." - -#: howto/descriptor.rst:81 -msgid "" -"This example shows how a simple descriptor works, but it isn't very useful. " -"For retrieving constants, normal attribute lookup would be better." -msgstr "" -"Cet exemple montre comment fonctionne un descripteur simple, mais il n'est " -"pas très utile. Pour récupérer des constantes, une recherche d'attribut " -"normale est préférable." - -#: howto/descriptor.rst:84 -msgid "" -"In the next section, we'll create something more useful, a dynamic lookup." -msgstr "" -"Dans la section suivante, nous allons créer quelque chose de plus utile, une " -"recherche dynamique." - -#: howto/descriptor.rst:88 -msgid "Dynamic lookups" -msgstr "Recherches dynamiques" - -#: howto/descriptor.rst:90 -msgid "" -"Interesting descriptors typically run computations instead of returning " -"constants:" -msgstr "" -"Les descripteurs intéressants exécutent généralement des calculs au lieu de " -"renvoyer des constantes :" - -#: howto/descriptor.rst:109 -msgid "" -"An interactive session shows that the lookup is dynamic — it computes " -"different, updated answers each time::" -msgstr "" -"Une session interactive montre que la recherche est dynamique — elle calcule " -"des réponses différentes, mises à jour à chaque fois ::" - -#: howto/descriptor.rst:122 -#, fuzzy -msgid "" -"Besides showing how descriptors can run computations, this example also " -"reveals the purpose of the parameters to :meth:`~object.__get__`. The " -"*self* parameter is *size*, an instance of *DirectorySize*. The *obj* " -"parameter is either *g* or *s*, an instance of *Directory*. It is the *obj* " -"parameter that lets the :meth:`~object.__get__` method learn the target " -"directory. The *objtype* parameter is the class *Directory*." -msgstr "" -"En plus de montrer comment les descripteurs peuvent exécuter des calculs, " -"cet exemple révèle également le but des paramètres de :meth:`__get__`. Le " -"paramètre *self* est *size*, une instance de *DirectorySize*. Le paramètre " -"*obj* est soit *g* soit *s*, une instance de *Directory*. C'est le paramètre " -"*obj* qui permet à la méthode :meth:`__get__` de connaître le répertoire " -"cible. Le paramètre *objtype* est la classe *Directory*." - -#: howto/descriptor.rst:131 -msgid "Managed attributes" -msgstr "Attributs gérés" - -#: howto/descriptor.rst:133 -#, fuzzy -msgid "" -"A popular use for descriptors is managing access to instance data. The " -"descriptor is assigned to a public attribute in the class dictionary while " -"the actual data is stored as a private attribute in the instance " -"dictionary. The descriptor's :meth:`~object.__get__` " -"and :meth:`~object.__set__` methods are triggered when the public attribute " -"is accessed." -msgstr "" -"Une utilisation courante des descripteurs est la gestion de l'accès aux " -"données d'instances. Le descripteur est affecté à un attribut public dans le " -"dictionnaire de classe tandis que les données réelles sont stockées en tant " -"qu'attribut privé dans le dictionnaire d'instance. Les " -"méthodes :meth:`__get__` et :meth:`__set__` du descripteur sont déclenchées " -"lors de l'accès à l'attribut public." - -#: howto/descriptor.rst:139 -msgid "" -"In the following example, *age* is the public attribute and *_age* is the " -"private attribute. When the public attribute is accessed, the descriptor " -"logs the lookup or update:" -msgstr "" -"Dans l'exemple qui suit, *age* est l'attribut public et *_age* est " -"l'attribut privé. Lors de l'accès à l'attribut public, le descripteur " -"journalise la recherche ou la mise à jour :" - -#: howto/descriptor.rst:172 -msgid "" -"An interactive session shows that all access to the managed attribute *age* " -"is logged, but that the regular attribute *name* is not logged:" -msgstr "" -"Une session interactive montre que tous les accès à l'attribut géré *age* " -"sont consignés, mais que rien n'est journalisé pour l'attribut normal " -"*name* :" - -#: howto/descriptor.rst:206 -msgid "" -"One major issue with this example is that the private name *_age* is " -"hardwired in the *LoggedAgeAccess* class. That means that each instance can " -"only have one logged attribute and that its name is unchangeable. In the " -"next example, we'll fix that problem." -msgstr "" -"Un problème majeur avec cet exemple est que le nom privé *_age* est écrit en " -"dur dans la classe *LoggedAgeAccess*. Cela signifie que chaque instance ne " -"peut avoir qu'un seul attribut journalisé et que son nom est immuable. Dans " -"l'exemple suivant, nous allons résoudre ce problème." - -#: howto/descriptor.rst:213 -msgid "Customized names" -msgstr "Noms personnalisés" - -#: howto/descriptor.rst:215 -msgid "" -"When a class uses descriptors, it can inform each descriptor about which " -"variable name was used." -msgstr "" -"Lorsqu'une classe utilise des descripteurs, elle peut informer chaque " -"descripteur du nom de variable utilisé." - -#: howto/descriptor.rst:218 -#, fuzzy -msgid "" -"In this example, the :class:`!Person` class has two descriptor instances, " -"*name* and *age*. When the :class:`!Person` class is defined, it makes a " -"callback to :meth:`~object.__set_name__` in *LoggedAccess* so that the field " -"names can be recorded, giving each descriptor its own *public_name* and " -"*private_name*:" -msgstr "" -"Dans cet exemple, la classe :class:`Person` a deux instances de " -"descripteurs, *name* et *age*. Lorsque la classe :class:`Person` est " -"définie, :meth:`__set_name__` est appelée automatiquement dans " -"*LoggedAccess* afin que les noms de champs puissent être enregistrés, en " -"donnant à chaque descripteur ses propres *public_name* et *private_name* :" - -#: howto/descriptor.rst:256 -#, fuzzy -msgid "" -"An interactive session shows that the :class:`!Person` class has " -"called :meth:`~object.__set_name__` so that the field names would be " -"recorded. Here we call :func:`vars` to look up the descriptor without " -"triggering it:" -msgstr "" -"Une session interactive montre que la classe :class:`Person` a " -"appelé :meth:`__set_name__` pour que les noms des champs soient enregistrés. " -"Ici, nous appelons :func:`vars` pour rechercher le descripteur sans le " -"déclencher :" - -#: howto/descriptor.rst:267 -msgid "The new class now logs access to both *name* and *age*:" -msgstr "" -"La nouvelle classe enregistre désormais l'accès à la fois à *name* et *age* :" - -#: howto/descriptor.rst:284 -msgid "The two *Person* instances contain only the private names:" -msgstr "Les deux instances de *Person* ne contiennent que les noms privés :" - -#: howto/descriptor.rst:295 -msgid "Closing thoughts" -msgstr "Réflexions finales" - -#: howto/descriptor.rst:297 -#, fuzzy -msgid "" -"A :term:`descriptor` is what we call any object that " -"defines :meth:`~object.__get__`, :meth:`~object.__set__`, " -"or :meth:`~object.__delete__`." -msgstr "" -"Nous appelons :term:`descripteur ` tout objet qui " -"définit :meth:`__get__`, :meth:`__set__` ou :meth:`__delete__`." - -#: howto/descriptor.rst:300 -#, fuzzy -msgid "" -"Optionally, descriptors can have a :meth:`~object.__set_name__` method. " -"This is only used in cases where a descriptor needs to know either the class " -"where it was created or the name of class variable it was assigned to. " -"(This method, if present, is called even if the class is not a descriptor.)" -msgstr "" -"Facultativement, les descripteurs peuvent avoir une " -"méthode :meth:`__set_name__`. Elle n'est utile que dans les cas où un " -"descripteur doit connaître soit la classe dans laquelle il a été créé, soit " -"le nom de la variable de classe à laquelle il a été affecté (cette méthode, " -"si elle est présente, est appelée même si la classe n'est pas un " -"descripteur)." - -#: howto/descriptor.rst:305 -msgid "" -"Descriptors get invoked by the dot operator during attribute lookup. If a " -"descriptor is accessed indirectly with ``vars(some_class)" -"[descriptor_name]``, the descriptor instance is returned without invoking it." -msgstr "" -"Les descripteurs sont invoqués par l'opérateur « point » lors de la " -"recherche d'attribut. Si on accède indirectement au descripteur avec " -"``vars(some_class)[descriptor_name]``, l'instance du descripteur est " -"renvoyée sans l'invoquer." - -#: howto/descriptor.rst:309 -msgid "" -"Descriptors only work when used as class variables. When put in instances, " -"they have no effect." -msgstr "" -"Les descripteurs ne fonctionnent que lorsqu'ils sont utilisés comme " -"variables de classe. Lorsqu'ils sont placés dans des instances, ils n'ont " -"aucun effet." - -#: howto/descriptor.rst:312 -msgid "" -"The main motivation for descriptors is to provide a hook allowing objects " -"stored in class variables to control what happens during attribute lookup." -msgstr "" -"La principale raison d'être des descripteurs est de fournir un point " -"d'entrée permettant aux objets stockés dans des variables de classe de " -"contrôler ce qui se passe lors de la recherche d'attributs." - -#: howto/descriptor.rst:315 -msgid "" -"Traditionally, the calling class controls what happens during lookup. " -"Descriptors invert that relationship and allow the data being looked-up to " -"have a say in the matter." -msgstr "" -"Traditionnellement, la classe appelante contrôle ce qui se passe pendant la " -"recherche. Les descripteurs inversent cette relation et permettent aux " -"données recherchées d'avoir leur mot à dire." - -#: howto/descriptor.rst:319 -msgid "" -"Descriptors are used throughout the language. It is how functions turn into " -"bound methods. Common tools " -"like :func:`classmethod`, :func:`staticmethod`, :func:`property`, " -"and :func:`functools.cached_property` are all implemented as descriptors." -msgstr "" -"Les descripteurs sont utilisés partout dans le langage. C'est ainsi que les " -"fonctions se transforment en méthodes liées. Les outils courants tels " -"que :func:`classmethod`, :func:`staticmethod`, :func:`property` " -"et :func:`functools.cached_property` sont tous implémentés en tant que " -"descripteurs." - -#: howto/descriptor.rst:326 -msgid "Complete Practical Example" -msgstr "Exemple complet pratique" - -#: howto/descriptor.rst:328 -msgid "" -"In this example, we create a practical and powerful tool for locating " -"notoriously hard to find data corruption bugs." -msgstr "" -"Dans cet exemple, nous créons un outil pratique et puissant pour localiser " -"les bogues de corruption de données notoirement difficiles à trouver." - -#: howto/descriptor.rst:333 -msgid "Validator class" -msgstr "Classe « validateur »" - -#: howto/descriptor.rst:335 -msgid "" -"A validator is a descriptor for managed attribute access. Prior to storing " -"any data, it verifies that the new value meets various type and range " -"restrictions. If those restrictions aren't met, it raises an exception to " -"prevent data corruption at its source." -msgstr "" -"Un validateur est un descripteur pour l'accès aux attributs gérés. Avant de " -"stocker des données, il vérifie que la nouvelle valeur respecte différentes " -"restrictions de type et de plage. Si ces restrictions ne sont pas " -"respectées, il lève une exception pour empêcher la corruption des données à " -"la source." - -#: howto/descriptor.rst:340 -#, fuzzy -msgid "" -"This :class:`!Validator` class is both an :term:`abstract base class` and a " -"managed attribute descriptor:" -msgstr "" -"Cette classe :class:`Validator` est à la fois une :term:`classe mère " -"abstraite ` et un descripteur d'attributs gérés :" - -#: howto/descriptor.rst:363 -#, fuzzy -msgid "" -"Custom validators need to inherit from :class:`!Validator` and must supply " -"a :meth:`!validate` method to test various restrictions as needed." -msgstr "" -"Les validateurs personnalisés doivent hériter de :class:`Validator` et " -"doivent fournir une méthode :meth:`validate` pour tester diverses " -"restrictions adaptées aux besoins." - -#: howto/descriptor.rst:368 -msgid "Custom validators" -msgstr "Validateurs personnalisés" - -#: howto/descriptor.rst:370 -msgid "Here are three practical data validation utilities:" -msgstr "Voici trois utilitaires concrets de validation de données :" - -#: howto/descriptor.rst:372 -#, fuzzy -msgid "" -":class:`!OneOf` verifies that a value is one of a restricted set of options." -msgstr "" -":class:`OneOf` vérifie qu'une valeur fait partie d'un ensemble limité de " -"valeurs ;" - -#: howto/descriptor.rst:374 -#, fuzzy -msgid "" -":class:`!Number` verifies that a value is either an :class:`int` " -"or :class:`float`. Optionally, it verifies that a value is between a given " -"minimum or maximum." -msgstr "" -":class:`Number` vérifie qu'une valeur est soit un :class:`int` soit " -"un :class:`float`. Facultativement, il vérifie qu'une valeur se situe entre " -"un minimum ou un maximum donnés ;" - -#: howto/descriptor.rst:378 -#, fuzzy -msgid "" -":class:`!String` verifies that a value is a :class:`str`. Optionally, it " -"validates a given minimum or maximum length. It can validate a user-defined " -"`predicate `_ " -"as well." -msgstr "" -":class:`String` vérifie qu'une valeur est une :class:`chaîne de caractères " -"`. Éventuellement, il valide les longueurs minimale ou maximale " -"données. Il peut également valider un `prédicat `_ défini par l'utilisateur." - -#: howto/descriptor.rst:439 -msgid "Practical application" -msgstr "Application pratique" - -#: howto/descriptor.rst:441 -msgid "Here's how the data validators can be used in a real class:" -msgstr "" -"Voici comment les validateurs de données peuvent être utilisés par une " -"classe réelle :" - -#: howto/descriptor.rst:456 -msgid "The descriptors prevent invalid instances from being created:" -msgstr "Les descripteurs empêchent la création d'instances non valides :" - -#: howto/descriptor.rst:484 -msgid "Technical Tutorial" -msgstr "Tutoriel technique" - -#: howto/descriptor.rst:486 -msgid "" -"What follows is a more technical tutorial for the mechanics and details of " -"how descriptors work." -msgstr "" -"Ce qui suit est un tutoriel plus technique relatif aux mécanismes et détails " -"de fonctionnement des descripteurs." - -#: howto/descriptor.rst:491 -msgid "Abstract" -msgstr "Résumé" - -#: howto/descriptor.rst:493 -msgid "" -"Defines descriptors, summarizes the protocol, and shows how descriptors are " -"called. Provides an example showing how object relational mappings work." -msgstr "" -"Ce tutoriel définit des descripteurs, résume le protocole et montre comment " -"les descripteurs sont appelés. Il fournit un exemple montrant comment " -"fonctionnent les correspondances relationnelles entre objets." - -#: howto/descriptor.rst:496 -msgid "" -"Learning about descriptors not only provides access to a larger toolset, it " -"creates a deeper understanding of how Python works." -msgstr "" -"L'apprentissage des descripteurs permet non seulement d'accéder à un " -"ensemble d'outils plus vaste, mais aussi de mieux comprendre le " -"fonctionnement de Python." - -#: howto/descriptor.rst:501 -msgid "Definition and introduction" -msgstr "Définition et introduction" - -#: howto/descriptor.rst:503 -#, fuzzy -msgid "" -"In general, a descriptor is an attribute value that has one of the methods " -"in the descriptor protocol. Those methods " -"are :meth:`~object.__get__`, :meth:`~object.__set__`, " -"and :meth:`~object.__delete__`. If any of those methods are defined for an " -"attribute, it is said to be a :term:`descriptor`." -msgstr "" -"En général, un descripteur est la valeur d'un attribut qui possède une des " -"méthodes définies dans le « protocole descripteur ». Ces méthodes " -"sont : :meth:`__get__`, :meth:`__set__` et :meth:`__delete__`. Si l'une de " -"ces méthodes est définie pour un attribut, il s'agit d'un :term:`descripteur " -"`." - -#: howto/descriptor.rst:508 -msgid "" -"The default behavior for attribute access is to get, set, or delete the " -"attribute from an object's dictionary. For instance, ``a.x`` has a lookup " -"chain starting with ``a.__dict__['x']``, then ``type(a).__dict__['x']``, and " -"continuing through the method resolution order of ``type(a)``. If the looked-" -"up value is an object defining one of the descriptor methods, then Python " -"may override the default behavior and invoke the descriptor method instead. " -"Where this occurs in the precedence chain depends on which descriptor " -"methods were defined." -msgstr "" -"Le comportement par défaut pour l'accès aux attributs consiste à obtenir, " -"définir ou supprimer l'attribut dans le dictionnaire d'un objet. Par " -"exemple, pour chercher ``a.x`` Python commence par chercher " -"``a.__dict__['x']``, puis ``type(a).__dict__['x']``, et continue la " -"recherche en utilisant la MRO (l'ordre de résolution des méthodes) de " -"``type(a)``. Si la valeur recherchée est un objet définissant l'une des " -"méthodes de descripteur, Python remplace le comportement par défaut par un " -"appel à la méthode du descripteur. Le moment où cela se produit dans la " -"chaîne de recherche dépend des méthodes définies par le descripteur." - -#: howto/descriptor.rst:517 -#, fuzzy -msgid "" -"Descriptors are a powerful, general purpose protocol. They are the " -"mechanism behind properties, methods, static methods, class methods, " -"and :func:`super`. They are used throughout Python itself. Descriptors " -"simplify the underlying C code and offer a flexible set of new tools for " -"everyday Python programs." -msgstr "" -"Les descripteurs sont un protocole puissant et à usage général. Ils " -"constituent le mécanisme qui met en œuvre les propriétés, les méthodes, les " -"méthodes statiques, les méthodes de classes et :func:`super()`. Ils sont " -"utilisés dans tout Python lui-même. Les descripteurs simplifient le code C " -"sous-jacent et offrent un ensemble flexible de nouveaux outils pour les " -"programmes Python quotidiens." - -#: howto/descriptor.rst:525 -msgid "Descriptor protocol" -msgstr "Protocole descripteur" - -#: howto/descriptor.rst:527 -#, fuzzy -msgid "``descr.__get__(self, obj, type=None)``" -msgstr "``descr.__get__(self, obj, type=None) -> valeur``" - -#: howto/descriptor.rst:529 -#, fuzzy -msgid "``descr.__set__(self, obj, value)``" -msgstr "``descr.__set__(self, obj, valeur) -> None``" - -#: howto/descriptor.rst:531 -#, fuzzy -msgid "``descr.__delete__(self, obj)``" -msgstr "``descr.__delete__(self, obj) -> None``" - -#: howto/descriptor.rst:533 -msgid "" -"That is all there is to it. Define any of these methods and an object is " -"considered a descriptor and can override default behavior upon being looked " -"up as an attribute." -msgstr "" -"C'est tout ce qu'il y a à faire. Définissez n'importe laquelle de ces " -"méthodes et un objet est considéré comme un descripteur ; il peut alors " -"remplacer le comportement par défaut lorsqu'il est recherché en tant " -"qu'attribut." - -#: howto/descriptor.rst:537 -#, fuzzy -msgid "" -"If an object defines :meth:`~object.__set__` or :meth:`~object.__delete__`, " -"it is considered a data descriptor. Descriptors that only " -"define :meth:`~object.__get__` are called non-data descriptors (they are " -"often used for methods but other uses are possible)." -msgstr "" -"Si un objet définit :meth:`__set__` ou :meth:`__delete__`, il est considéré " -"comme un descripteur de données. Les descripteurs qui ne définissent " -"que :meth:`__get__` sont appelés descripteurs hors-données (ils sont " -"généralement utilisés pour des méthodes mais d'autres utilisations sont " -"possibles)." - -#: howto/descriptor.rst:542 -msgid "" -"Data and non-data descriptors differ in how overrides are calculated with " -"respect to entries in an instance's dictionary. If an instance's dictionary " -"has an entry with the same name as a data descriptor, the data descriptor " -"takes precedence. If an instance's dictionary has an entry with the same " -"name as a non-data descriptor, the dictionary entry takes precedence." -msgstr "" -"Les descripteurs de données et les descripteurs hors-données diffèrent dans " -"la façon dont les changements de comportement sont calculés en ce qui " -"concerne les entrées du dictionnaire d'une instance. Si le dictionnaire " -"d'une instance comporte une entrée portant le même nom qu'un descripteur de " -"données, le descripteur de données est prioritaire. Si le dictionnaire d'une " -"instance comporte une entrée portant le même nom qu'un descripteur hors-" -"données, l'entrée du dictionnaire a la priorité." - -#: howto/descriptor.rst:548 -#, fuzzy -msgid "" -"To make a read-only data descriptor, define both :meth:`~object.__get__` " -"and :meth:`~object.__set__` with the :meth:`~object.__set__` raising " -"an :exc:`AttributeError` when called. Defining the :meth:`~object.__set__` " -"method with an exception raising placeholder is enough to make it a data " -"descriptor." -msgstr "" -"Pour créer un descripteur de données en lecture seule, définissez à la " -"fois :meth:`__get__` et :meth:`__set__` avec :meth:`__set__` levant une " -"erreur :exc:`AttributeError` quand elle est appelée. Définir la " -"méthode :meth:`__set__` ne faisant que lever cette exception est suffisant " -"pour en faire un descripteur de données." - -#: howto/descriptor.rst:555 -msgid "Overview of descriptor invocation" -msgstr "Présentation de l'appel de descripteur" - -#: howto/descriptor.rst:557 -msgid "" -"A descriptor can be called directly with ``desc.__get__(obj)`` or " -"``desc.__get__(None, cls)``." -msgstr "" -"Un descripteur peut être appelé directement par ``desc.__get__(obj)`` ou " -"``desc.__get__(None, cls)``." - -#: howto/descriptor.rst:560 -msgid "" -"But it is more common for a descriptor to be invoked automatically from " -"attribute access." -msgstr "" -"Mais il est plus courant qu'un descripteur soit invoqué automatiquement à " -"partir d'un accès à un attribut." - -#: howto/descriptor.rst:563 -#, fuzzy -msgid "" -"The expression ``obj.x`` looks up the attribute ``x`` in the chain of " -"namespaces for ``obj``. If the search finds a descriptor outside of the " -"instance :attr:`~object.__dict__`, its :meth:`~object.__get__` method is " -"invoked according to the precedence rules listed below." -msgstr "" -"L'expression ``obj.x`` recherche l'attribut ``x`` dans les espaces de noms " -"pour ``obj``. Si la recherche trouve un descripteur en dehors de l'instance " -"``__dict__``, sa méthode :meth:`__get__` est appelée selon les règles de " -"priorité listées ci-dessous." - -#: howto/descriptor.rst:568 -msgid "" -"The details of invocation depend on whether ``obj`` is an object, class, or " -"instance of super." -msgstr "" -"Les détails de l'appel varient selon que ``obj`` est un objet, une classe ou " -"une instance de *super*." - -#: howto/descriptor.rst:573 -msgid "Invocation from an instance" -msgstr "Appel depuis une instance" - -#: howto/descriptor.rst:575 -#, fuzzy -msgid "" -"Instance lookup scans through a chain of namespaces giving data descriptors " -"the highest priority, followed by instance variables, then non-data " -"descriptors, then class variables, and lastly :meth:`~object.__getattr__` if " -"it is provided." -msgstr "" -"La recherche d'instance consiste à parcourir la liste d'espaces de noms en " -"donnant aux descripteurs de données la priorité la plus élevée, suivis des " -"variables d'instance, puis des descripteurs hors-données, puis des variables " -"de classe, et enfin :meth:`__getattr__` s'il est fourni." - -#: howto/descriptor.rst:580 -msgid "" -"If a descriptor is found for ``a.x``, then it is invoked with: " -"``desc.__get__(a, type(a))``." -msgstr "" -"Si un descripteur est trouvé pour ``a.x``, alors il est appelé par " -"``desc.__get__(a, type(a))``." - -#: howto/descriptor.rst:583 -msgid "" -"The logic for a dotted lookup is in :meth:`object.__getattribute__`. Here " -"is a pure Python equivalent:" -msgstr "" -"La logique d'une recherche « après un point » se trouve " -"dans :meth:`object.__getattribute__`. Voici un équivalent en Python pur :" - -#: howto/descriptor.rst:722 -#, fuzzy -msgid "" -"Note, there is no :meth:`~object.__getattr__` hook in " -"the :meth:`~object.__getattribute__` code. That is why " -"calling :meth:`~object.__getattribute__` directly or with " -"``super().__getattribute__`` will bypass :meth:`~object.__getattr__` " -"entirely." -msgstr "" -"Notez qu'il n'y a pas d'appel vers :meth:`__getattr__` dans le code " -"de :meth:`__getattribute__`. C'est pourquoi appeler :meth:`__getattribute__` " -"directement ou avec ``super().__getattribute__`` contourne " -"entièrement :meth:`__getattr__`." - -#: howto/descriptor.rst:726 -#, fuzzy -msgid "" -"Instead, it is the dot operator and the :func:`getattr` function that are " -"responsible for invoking :meth:`~object.__getattr__` " -"whenever :meth:`~object.__getattribute__` raises an :exc:`AttributeError`. " -"Their logic is encapsulated in a helper function:" -msgstr "" -"Au lieu, c'est l'opérateur « point » et la fonction :func:`getattr` qui sont " -"responsables de l'appel de :meth:`__getattr__` chaque fois " -"que :meth:`__getattribute__` déclenche une :exc:`AttributeError`. Cette " -"logique est présentée encapsulée dans une fonction utilitaire :" - -#: howto/descriptor.rst:776 -msgid "Invocation from a class" -msgstr "Appel depuis une classe" - -#: howto/descriptor.rst:778 -#, fuzzy -msgid "" -"The logic for a dotted lookup such as ``A.x`` is in :meth:`!" -"type.__getattribute__`. The steps are similar to those for :meth:`!" -"object.__getattribute__` but the instance dictionary lookup is replaced by a " -"search through the class's :term:`method resolution order`." -msgstr "" -"La logique pour une recherche « après un point » telle que ``A.x`` se trouve " -"dans :meth:`type.__getattribute__`. Les étapes sont similaires à celles " -"de :meth:`object.__getattribute__` mais la recherche dans le dictionnaire " -"d'instance est remplacée par une recherche suivant l':term:`ordre de " -"résolution des méthodes ` de la classe." - -#: howto/descriptor.rst:783 -msgid "If a descriptor is found, it is invoked with ``desc.__get__(None, A)``." -msgstr "" -"Si un descripteur est trouvé, il est appelé par ``desc.__get__(None, A)``." - -#: howto/descriptor.rst:785 -#, fuzzy -msgid "" -"The full C implementation can be found in :c:func:`!type_getattro` " -"and :c:func:`!_PyType_Lookup` in :source:`Objects/typeobject.c`." -msgstr "" -"L'implémentation C complète peut être trouvée dans :c:func:`type_getattro()` " -"et :c:func:`_PyType_Lookup()` dans :source:`Objects/typeobject.c`." - -#: howto/descriptor.rst:790 -msgid "Invocation from super" -msgstr "Appel depuis super" - -#: howto/descriptor.rst:792 -#, fuzzy -msgid "" -"The logic for super's dotted lookup is in " -"the :meth:`~object.__getattribute__` method for object returned " -"by :func:`super`." -msgstr "" -"La logique de la recherche « après un point » de super se trouve dans la " -"méthode :meth:`__getattribute__` de l'objet renvoyé par :class:`super()`." - -#: howto/descriptor.rst:795 -msgid "" -"A dotted lookup such as ``super(A, obj).m`` searches " -"``obj.__class__.__mro__`` for the base class ``B`` immediately following " -"``A`` and then returns ``B.__dict__['m'].__get__(obj, A)``. If not a " -"descriptor, ``m`` is returned unchanged." -msgstr "" -"La recherche d'attribut ``super(A, obj).m`` recherche dans " -"``obj.__class__.__mro__`` la classe ``B`` qui suit immédiatement A, et " -"renvoie ``B.__dict__['m'].__get__(obj, A)``. Si ce n'est pas un descripteur, " -"``m`` est renvoyé inchangé." - -#: howto/descriptor.rst:800 -#, fuzzy -msgid "" -"The full C implementation can be found in :c:func:`!super_getattro` " -"in :source:`Objects/typeobject.c`. A pure Python equivalent can be found in " -"`Guido's Tutorial `_." -msgstr "" -"L'implémentation C complète est dans :c:func:`super_getattro()` " -"dans :source:`Objects/typeobject.c`. Un équivalent Python pur peut être " -"trouvé dans `Guido's Tutorial `_ (page en anglais)." - -#: howto/descriptor.rst:807 -msgid "Summary of invocation logic" -msgstr "Résumé de la logique d'appel" - -#: howto/descriptor.rst:809 -#, fuzzy -msgid "" -"The mechanism for descriptors is embedded in " -"the :meth:`~object.__getattribute__` methods " -"for :class:`object`, :class:`type`, and :func:`super`." -msgstr "" -"Le fonctionnement des descripteurs se trouve dans les " -"méthodes :meth:`__getattribute__()` de :class:`object`, :class:`type` " -"et :func:`super`." - -#: howto/descriptor.rst:812 -msgid "The important points to remember are:" -msgstr "Les points importants à retenir sont :" - -#: howto/descriptor.rst:814 -#, fuzzy -msgid "Descriptors are invoked by the :meth:`~object.__getattribute__` method." -msgstr "" -"les descripteurs sont appelés par la méthode :meth:`__getattribute__` ;" - -#: howto/descriptor.rst:816 -msgid "" -"Classes inherit this machinery from :class:`object`, :class:`type`, " -"or :func:`super`." -msgstr "" -"les classes héritent ce mécanisme de :class:`object`, :class:`type` " -"ou :func:`super` ;" - -#: howto/descriptor.rst:819 -#, fuzzy -msgid "" -"Overriding :meth:`~object.__getattribute__` prevents automatic descriptor " -"calls because all the descriptor logic is in that method." -msgstr "" -"redéfinir :meth:`__getattribute____` empêche les appels automatiques de " -"descripteur car toute la logique des descripteurs est dans cette méthode ;" - -#: howto/descriptor.rst:822 -#, fuzzy -msgid "" -":meth:`!object.__getattribute__` and :meth:`!type.__getattribute__` make " -"different calls to :meth:`~object.__get__`. The first includes the instance " -"and may include the class. The second puts in ``None`` for the instance and " -"always includes the class." -msgstr "" -":meth:`objet.__getattribute__` et :meth:`type.__getattribute__` font " -"différents appels à :meth:`__get__`. La première inclut l'instance et peut " -"inclure la classe. La seconde met ``None`` pour l'instance et inclut " -"toujours la classe ;" - -#: howto/descriptor.rst:827 -msgid "Data descriptors always override instance dictionaries." -msgstr "" -"les descripteurs de données sont toujours prioritaires sur les dictionnaires " -"d'instances." - -#: howto/descriptor.rst:829 -msgid "Non-data descriptors may be overridden by instance dictionaries." -msgstr "" -"les descripteurs hors-données peuvent céder la priorité aux dictionnaires " -"d'instance." - -#: howto/descriptor.rst:833 -msgid "Automatic name notification" -msgstr "Notification automatique des noms" - -#: howto/descriptor.rst:835 -#, fuzzy -msgid "" -"Sometimes it is desirable for a descriptor to know what class variable name " -"it was assigned to. When a new class is created, the :class:`type` " -"metaclass scans the dictionary of the new class. If any of the entries are " -"descriptors and if they define :meth:`~object.__set_name__`, that method is " -"called with two arguments. The *owner* is the class where the descriptor is " -"used, and the *name* is the class variable the descriptor was assigned to." -msgstr "" -"Il est parfois souhaitable qu'un descripteur sache à quel nom de variable de " -"classe il a été affecté. Lorsqu'une nouvelle classe est créée, la " -"métaclasse :class:`type` parcourt le dictionnaire de la nouvelle classe. Si " -"l'une des entrées est un descripteur et si elle " -"définit :meth:`__set_name__`, cette méthode est appelée avec deux " -"arguments : *owner* (propriétaire) est la classe où le descripteur est " -"utilisé, et *name* est la variable de classe à laquelle le descripteur a été " -"assigné." - -#: howto/descriptor.rst:842 -#, fuzzy -msgid "" -"The implementation details are in :c:func:`!type_new` and :c:func:`!" -"set_names` in :source:`Objects/typeobject.c`." -msgstr "" -"Les détails d'implémentation sont dans :c:func:`type_new()` " -"et :c:func:`set_names()` dans :source:`Objects/typeobject.c`." - -#: howto/descriptor.rst:845 -#, fuzzy -msgid "" -"Since the update logic is in :meth:`!type.__new__`, notifications only take " -"place at the time of class creation. If descriptors are added to the class " -"afterwards, :meth:`~object.__set_name__` will need to be called manually." -msgstr "" -"Comme la logique de mise à jour est dans :meth:`type.__new__`, les " -"notifications n'ont lieu qu'au moment de la création de la classe. Si des " -"descripteurs sont ajoutés à la classe par la suite, :meth:`__set_name__` " -"doit être appelée manuellement." - -#: howto/descriptor.rst:851 -msgid "ORM example" -msgstr "Exemple d'ORM" - -#: howto/descriptor.rst:853 -msgid "" -"The following code is a simplified skeleton showing how data descriptors " -"could be used to implement an `object relational mapping `_." -msgstr "" -"Le code suivant est une ossature simplifiée montrant comment les " -"descripteurs de données peuvent être utilisés pour implémenter une " -"`correspondance objet-relationnel `_." - -#: howto/descriptor.rst:857 -msgid "" -"The essential idea is that the data is stored in an external database. The " -"Python instances only hold keys to the database's tables. Descriptors take " -"care of lookups or updates:" -msgstr "" -"L'idée essentielle est que les données sont stockées dans une base de " -"données externe. Les instances Python ne contiennent que les clés des tables " -"de la base de données. Les descripteurs s'occupent des recherches et des " -"mises à jour :" - -#: howto/descriptor.rst:876 -#, fuzzy -msgid "" -"We can use the :class:`!Field` class to define `models `_ that describe the schema for each " -"table in a database:" -msgstr "" -"Nous pouvons utiliser la classe :class:`Field` pour définir des `modèles " -"`_ qui décrivent le schéma de " -"chaque table d'une base de données :" - -#: howto/descriptor.rst:901 -msgid "To use the models, first connect to the database::" -msgstr "" -"Pour utiliser les modèles, connectons-nous d'abord à la base de données ::" - -#: howto/descriptor.rst:906 -msgid "" -"An interactive session shows how data is retrieved from the database and how " -"it can be updated:" -msgstr "" -"Une session interactive montre comment les données sont extraites de la base " -"de données et comment elles peuvent être mises à jour :" - -#: howto/descriptor.rst:955 -msgid "Pure Python Equivalents" -msgstr "Équivalents en Python pur" - -#: howto/descriptor.rst:957 -msgid "" -"The descriptor protocol is simple and offers exciting possibilities. " -"Several use cases are so common that they have been prepackaged into built-" -"in tools. Properties, bound methods, static methods, class methods, and " -"\\_\\_slots\\_\\_ are all based on the descriptor protocol." -msgstr "" -"Le protocole descripteur est simple et offre des possibilités très " -"intéressantes. Plusieurs cas d'utilisation sont si courants qu'ils ont été " -"regroupés dans des outils intégrés. Les propriétés, les méthodes liées, les " -"méthodes statiques et les méthodes de classe sont toutes basées sur le " -"protocole descripteur." - -#: howto/descriptor.rst:964 -msgid "Properties" -msgstr "Propriétés" - -#: howto/descriptor.rst:966 -msgid "" -"Calling :func:`property` is a succinct way of building a data descriptor " -"that triggers a function call upon access to an attribute. Its signature " -"is::" -msgstr "" -"Appeler :func:`property` construit de façon succincte un descripteur de " -"données qui déclenche un appel de fonction lors de l'accès à un attribut. Sa " -"signature est ::" - -#: howto/descriptor.rst:971 -msgid "" -"The documentation shows a typical use to define a managed attribute ``x``:" -msgstr "" -"La documentation montre une utilisation caractéristique pour définir un " -"attribut géré ``x`` :" - -#: howto/descriptor.rst:995 -#, fuzzy -msgid "" -"To see how :func:`property` is implemented in terms of the descriptor " -"protocol, here is a pure Python equivalent that implements most of the core " -"functionality:" -msgstr "" -"Pour voir comment :func:`property` est implémentée dans le protocole du " -"descripteur, voici un équivalent en Python pur :" - -#: howto/descriptor.rst:1122 -msgid "" -"The :func:`property` builtin helps whenever a user interface has granted " -"attribute access and then subsequent changes require the intervention of a " -"method." -msgstr "" -"La fonction native :func:`property` aide chaque fois qu'une interface " -"utilisateur a accordé l'accès à un attribut et que des modifications " -"ultérieures nécessitent l'intervention d'une méthode." - -#: howto/descriptor.rst:1126 -msgid "" -"For instance, a spreadsheet class may grant access to a cell value through " -"``Cell('b10').value``. Subsequent improvements to the program require the " -"cell to be recalculated on every access; however, the programmer does not " -"want to affect existing client code accessing the attribute directly. The " -"solution is to wrap access to the value attribute in a property data " -"descriptor:" -msgstr "" -"Par exemple, une classe de tableur peut donner accès à une valeur de cellule " -"via ``Cell('b10').value``. Les améliorations ultérieures du programme " -"exigent que la cellule soit recalculée à chaque accès ; cependant, le " -"programmeur ne veut pas impacter le code client existant accédant " -"directement à l'attribut. La solution consiste à envelopper l'accès à " -"l'attribut *value* dans un descripteur de données :" - -#: howto/descriptor.rst:1143 -#, fuzzy -msgid "" -"Either the built-in :func:`property` or our :func:`!Property` equivalent " -"would work in this example." -msgstr "" -"Soit la :func:`property` native, soit notre équivalent :func:`Property` " -"fonctionnent dans cet exemple." - -#: howto/descriptor.rst:1148 -msgid "Functions and methods" -msgstr "Fonctions et méthodes" - -#: howto/descriptor.rst:1150 -msgid "" -"Python's object oriented features are built upon a function based " -"environment. Using non-data descriptors, the two are merged seamlessly." -msgstr "" -"Les fonctionnalités orientées objet de Python sont construites sur un " -"environnement basé sur des fonctions. À l'aide de descripteurs hors-données, " -"les deux sont fusionnés de façon transparente." - -#: howto/descriptor.rst:1153 -msgid "" -"Functions stored in class dictionaries get turned into methods when invoked. " -"Methods only differ from regular functions in that the object instance is " -"prepended to the other arguments. By convention, the instance is called " -"*self* but could be called *this* or any other variable name." -msgstr "" -"Les fonctions placées dans les dictionnaires des classes sont transformées " -"en méthodes au moment de l'appel. Les méthodes ne diffèrent des fonctions " -"ordinaires que par le fait que le premier argument est réservé à l'instance " -"de l'objet. Par convention Python, la référence de l'instance est appelée " -"*self*, bien qu'il soit possible de l'appeler *this* ou tout autre nom de " -"variable." - -#: howto/descriptor.rst:1158 -msgid "" -"Methods can be created manually with :class:`types.MethodType` which is " -"roughly equivalent to:" -msgstr "" -"Les méthodes peuvent être créées manuellement " -"avec :class:`types.MethodType`, qui équivaut à peu près à :" - -#: howto/descriptor.rst:1189 -#, fuzzy -msgid "" -"To support automatic creation of methods, functions include " -"the :meth:`~object.__get__` method for binding methods during attribute " -"access. This means that functions are non-data descriptors that return " -"bound methods during dotted lookup from an instance. Here's how it works:" -msgstr "" -"Pour prendre en charge la création automatique des méthodes, les fonctions " -"incluent la méthode :meth:`__get__` pour lier les méthodes pendant l'accès " -"aux attributs. Cela signifie que toutes les fonctions sont des descripteurs " -"hors-données qui renvoient des méthodes liées au cours d'une recherche " -"d'attribut d'une instance. Cela fonctionne ainsi :" - -#: howto/descriptor.rst:1205 -msgid "" -"Running the following class in the interpreter shows how the function " -"descriptor works in practice:" -msgstr "" -"L'exécution de la classe suivante dans l'interpréteur montre comment le " -"descripteur de fonction se comporte en pratique :" - -#: howto/descriptor.rst:1226 -msgid "" -"The function has a :term:`qualified name` attribute to support introspection:" -msgstr "" -"La fonction possède un attribut ``__qualname__`` (:term:`nom " -"qualifié`) pour prendre en charge l'introspection :" - -#: howto/descriptor.rst:1233 -#, fuzzy -msgid "" -"Accessing the function through the class dictionary does not " -"invoke :meth:`~object.__get__`. Instead, it just returns the underlying " -"function object::" -msgstr "" -"L'accès à la fonction *via* le dictionnaire de classe n'invoque " -"pas :meth:`__get__`. À la place, il renvoie simplement l'objet de fonction " -"sous-jacent ::" - -#: howto/descriptor.rst:1239 -#, fuzzy -msgid "" -"Dotted access from a class calls :meth:`~object.__get__` which just returns " -"the underlying function unchanged::" -msgstr "" -"La recherche d'attribut depuis une classe appelle :meth:`__get__`, qui " -"renvoie simplement la fonction sous-jacente inchangée ::" - -#: howto/descriptor.rst:1245 -#, fuzzy -msgid "" -"The interesting behavior occurs during dotted access from an instance. The " -"dotted lookup calls :meth:`~object.__get__` which returns a bound method " -"object::" -msgstr "" -"Le comportement intéressant se produit lors d'une recherche d'attribut à " -"partir d'une instance. La recherche d'attribut appelle :meth:`__get__` qui " -"renvoie un objet « méthode liée » ::" - -#: howto/descriptor.rst:1252 -msgid "" -"Internally, the bound method stores the underlying function and the bound " -"instance::" -msgstr "" -"En interne, la méthode liée stocke la fonction sous-jacente et l'instance " -"liée ::" - -#: howto/descriptor.rst:1261 -msgid "" -"If you have ever wondered where *self* comes from in regular methods or " -"where *cls* comes from in class methods, this is it!" -msgstr "" -"Si vous vous êtes déjà demandé d'où vient *self* dans les méthodes " -"ordinaires ou d'où vient *cls* dans les méthodes de classe, c'est ça !" - -#: howto/descriptor.rst:1266 -msgid "Kinds of methods" -msgstr "Types de méthodes" - -#: howto/descriptor.rst:1268 -msgid "" -"Non-data descriptors provide a simple mechanism for variations on the usual " -"patterns of binding functions into methods." -msgstr "" -"Les descripteurs hors-données constituent un moyen simple pour modifier le " -"modèle usuel de transformation des fonctions en méthodes." - -#: howto/descriptor.rst:1271 -#, fuzzy -msgid "" -"To recap, functions have a :meth:`~object.__get__` method so that they can " -"be converted to a method when accessed as attributes. The non-data " -"descriptor transforms an ``obj.f(*args)`` call into ``f(obj, *args)``. " -"Calling ``cls.f(*args)`` becomes ``f(*args)``." -msgstr "" -"Pour résumer, les fonctions ont une méthode :meth:`__get__` pour qu'elles " -"puissent être converties en méthodes lorsqu'on y accède comme attributs. Le " -"descripteur hors-données transforme un appel ``obj.f(*args)`` en ``f(obj, " -"*args)``. L'appel ``cls.f(*args)`` devient ``f(*args)``." - -#: howto/descriptor.rst:1276 -msgid "This chart summarizes the binding and its two most useful variants:" -msgstr "" -"Ce tableau résume le lien classique (*binding*) et ses deux variantes les " -"plus utiles :" - -#: howto/descriptor.rst:1279 -msgid "Transformation" -msgstr "Transformation" - -#: howto/descriptor.rst:1279 -msgid "Called from an object" -msgstr "Appelée depuis un objet" - -#: howto/descriptor.rst:1279 -msgid "Called from a class" -msgstr "Appelée depuis une classe" - -#: howto/descriptor.rst:1282 -msgid "function" -msgstr "fonction" - -#: howto/descriptor.rst:1282 -msgid "f(obj, \\*args)" -msgstr "f(obj, \\*args)" - -#: howto/descriptor.rst:1284 -msgid "f(\\*args)" -msgstr "f(\\*args)" - -#: howto/descriptor.rst:1284 -msgid "staticmethod" -msgstr "méthode statique" - -#: howto/descriptor.rst:1286 -msgid "classmethod" -msgstr "méthode de classe" - -#: howto/descriptor.rst:1286 -msgid "f(type(obj), \\*args)" -msgstr "f(type(obj), \\*args)" - -#: howto/descriptor.rst:1286 -msgid "f(cls, \\*args)" -msgstr "f(cls, \\*args)" - -#: howto/descriptor.rst:1291 -msgid "Static methods" -msgstr "Méthodes statiques" - -#: howto/descriptor.rst:1293 -msgid "" -"Static methods return the underlying function without changes. Calling " -"either ``c.f`` or ``C.f`` is the equivalent of a direct lookup into " -"``object.__getattribute__(c, \"f\")`` or ``object.__getattribute__(C, " -"\"f\")``. As a result, the function becomes identically accessible from " -"either an object or a class." -msgstr "" -"Les méthodes statiques renvoient la fonction sous-jacente sans modification. " -"Appeler ``c.f`` ou ``C.f`` est l'équivalent d'une recherche directe dans " -"``objet.__getattribute__(c, \"f\")`` ou ``objet.__getattribute__(C, " -"\"f\")``. Par conséquent, l'accès à la fonction devient identique que ce " -"soit à partir d'un objet ou d'une classe." - -#: howto/descriptor.rst:1299 -msgid "" -"Good candidates for static methods are methods that do not reference the " -"``self`` variable." -msgstr "" -"Les bonnes candidates pour être méthode statique sont des méthodes qui ne " -"font pas référence à la variable ``self``." - -#: howto/descriptor.rst:1302 -#, fuzzy -msgid "" -"For instance, a statistics package may include a container class for " -"experimental data. The class provides normal methods for computing the " -"average, mean, median, and other descriptive statistics that depend on the " -"data. However, there may be useful functions which are conceptually related " -"but do not depend on the data. For instance, ``erf(x)`` is handy conversion " -"routine that comes up in statistical work but does not directly depend on a " -"particular dataset. It can be called either from an object or the class: " -"``s.erf(1.5) --> 0.9332`` or ``Sample.erf(1.5) --> 0.9332``." -msgstr "" -"Par exemple, un paquet traitant de statistiques peut inclure une classe qui " -"est un conteneur pour des données expérimentales. La classe fournit les " -"méthodes normales pour calculer la moyenne, la médiane et d'autres " -"statistiques descriptives qui dépendent des données. Cependant, il peut y " -"avoir des fonctions utiles qui sont conceptuellement liées mais qui ne " -"dépendent pas des données. Par exemple, la fonction d'erreur ``erf(x)`` est " -"souvent utile lorsqu'on travaille en statistique mais elle ne dépend pas " -"directement d'un ensemble de données particulier. Elle peut être appelée à " -"partir d'un objet ou de la classe : ``s.erf(1.5) --> .9332`` ou " -"``Sample.erf(1.5) --> .9332``." - -#: howto/descriptor.rst:1311 -msgid "" -"Since static methods return the underlying function with no changes, the " -"example calls are unexciting:" -msgstr "" -"Puisque les méthodes statiques renvoient la fonction sous-jacente sans " -"changement, les exemples d’appels sont d'une grande banalité :" - -#: howto/descriptor.rst:1328 -msgid "" -"Using the non-data descriptor protocol, a pure Python version " -"of :func:`staticmethod` would look like this:" -msgstr "" -"En utilisant le protocole de descripteur hors-données, une version Python " -"pure de :func:`staticmethod` ressemblerait à ceci :" - -#: howto/descriptor.rst:1352 -msgid "" -"The :func:`functools.update_wrapper` call adds a ``__wrapped__`` attribute " -"that refers to the underlying function. Also it carries forward the " -"attributes necessary to make the wrapper look like the wrapped function, " -"including :attr:`~function.__name__`, :attr:`~function.__qualname__`, " -"and :attr:`~function.__doc__`." -msgstr "" - -#: howto/descriptor.rst:1421 -msgid "Class methods" -msgstr "Méthodes de classe" - -#: howto/descriptor.rst:1423 -msgid "" -"Unlike static methods, class methods prepend the class reference to the " -"argument list before calling the function. This format is the same for " -"whether the caller is an object or a class:" -msgstr "" -"Contrairement aux méthodes statiques, les méthodes de classe ajoutent la " -"référence de classe en tête de la liste d'arguments, avant d'appeler la " -"fonction. C'est le même format que l'appelant soit un objet ou une classe :" - -#: howto/descriptor.rst:1441 -msgid "" -"This behavior is useful whenever the method only needs to have a class " -"reference and does not rely on data stored in a specific instance. One use " -"for class methods is to create alternate class constructors. For example, " -"the classmethod :func:`dict.fromkeys` creates a new dictionary from a list " -"of keys. The pure Python equivalent is:" -msgstr "" -"Ce comportement est utile lorsque la fonction n'a besoin que d'une référence " -"de classe et ne se soucie pas des données propres à une instance " -"particulière. Une des utilisations des méthodes de classe est de créer des " -"constructeurs de classe personnalisés. Par exemple, la méthode de " -"classe :func:`dict.fromkeys` crée un nouveau dictionnaire à partir d'une " -"liste de clés. L'équivalent Python pur est :" - -#: howto/descriptor.rst:1458 -msgid "Now a new dictionary of unique keys can be constructed like this:" -msgstr "" -"Maintenant un nouveau dictionnaire de clés uniques peut être construit comme " -"ceci :" - -#: howto/descriptor.rst:1468 -msgid "" -"Using the non-data descriptor protocol, a pure Python version " -"of :func:`classmethod` would look like this:" -msgstr "" -"En utilisant le protocole de descripteur hors-données, une version Python " -"pure de :func:`classmethod` ressemblerait à ceci :" - -#: howto/descriptor.rst:1533 -msgid "" -"The :func:`functools.update_wrapper` call in ``ClassMethod`` adds a " -"``__wrapped__`` attribute that refers to the underlying function. Also it " -"carries forward the attributes necessary to make the wrapper look like the " -"wrapped " -"function: :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__`, " -"and :attr:`~function.__annotations__`." -msgstr "" - -#: howto/descriptor.rst:1542 -msgid "Member objects and __slots__" -msgstr "Objets membres et *__slots__*" - -#: howto/descriptor.rst:1544 -msgid "" -"When a class defines ``__slots__``, it replaces instance dictionaries with a " -"fixed-length array of slot values. From a user point of view that has " -"several effects:" -msgstr "" -"Lorsqu'une classe définit ``__slots__``, Python remplace le dictionnaire " -"d'instance par un tableau de longueur fixe de créneaux prédéfinis. D'un " -"point de vue utilisateur, cela :" - -#: howto/descriptor.rst:1548 -msgid "" -"1. Provides immediate detection of bugs due to misspelled attribute " -"assignments. Only attribute names specified in ``__slots__`` are allowed:" -msgstr "" -"1/ permet une détection immédiate des bogues dus à des affectations " -"d'attributs mal orthographiés. Seuls les noms d'attribut spécifiés dans " -"``__slots__`` sont autorisés :" - -#: howto/descriptor.rst:1564 -msgid "" -"2. Helps create immutable objects where descriptors manage access to private " -"attributes stored in ``__slots__``:" -msgstr "" -"2/ aide à créer des objets immuables où les descripteurs gèrent l'accès aux " -"attributs privés stockés dans ``__slots__`` :" - -#: howto/descriptor.rst:1599 -msgid "" -"3. Saves memory. On a 64-bit Linux build, an instance with two attributes " -"takes 48 bytes with ``__slots__`` and 152 bytes without. This `flyweight " -"design pattern `_ likely " -"only matters when a large number of instances are going to be created." -msgstr "" -"3/ économise de la mémoire. Sur une version Linux 64 bits, une instance avec " -"deux attributs prend 48 octets avec ``__slots__`` et 152 octets sans. Ce " -"patron de conception `poids mouche `_ n'a probablement d'importance que si un " -"grand nombre d'instances doivent être créées ;" - -#: howto/descriptor.rst:1604 -msgid "" -"4. Improves speed. Reading instance variables is 35% faster with " -"``__slots__`` (as measured with Python 3.10 on an Apple M1 processor)." -msgstr "" -"4/ améliore la vitesse. La lecture des variables d'instance est 35 % plus " -"rapide avec ``__slots__`` (mesure effectuée avec Python 3.10 sur un " -"processeur Apple M1) ;" - -#: howto/descriptor.rst:1607 -msgid "" -"5. Blocks tools like :func:`functools.cached_property` which require an " -"instance dictionary to function correctly:" -msgstr "" -"5/ bloque les outils comme :func:`functools.cached_property` qui nécessitent " -"un dictionnaire d'instance pour fonctionner correctement :" - -#: howto/descriptor.rst:1629 -msgid "" -"It is not possible to create an exact drop-in pure Python version of " -"``__slots__`` because it requires direct access to C structures and control " -"over object memory allocation. However, we can build a mostly faithful " -"simulation where the actual C structure for slots is emulated by a private " -"``_slotvalues`` list. Reads and writes to that private structure are " -"managed by member descriptors:" -msgstr "" -"Il n'est pas possible de créer une version Python pure exacte de " -"``__slots__`` car il faut un accès direct aux structures C et un contrôle " -"sur l'allocation de la mémoire des objets. Cependant, nous pouvons " -"construire une simulation presque fidèle où la structure C réelle pour les " -"*slots* est émulée par une liste privée ``_slotvalues``. Les lectures et " -"écritures dans cette structure privée sont gérées par des descripteurs de " -"membres :" - -#: howto/descriptor.rst:1674 -#, fuzzy -msgid "" -"The :meth:`!type.__new__` method takes care of adding member objects to " -"class variables:" -msgstr "" -"La méthode :meth:`type.__new__` s'occupe d'ajouter des objets membres aux " -"variables de classe :" - -#: howto/descriptor.rst:1690 -msgid "" -"The :meth:`object.__new__` method takes care of creating instances that have " -"slots instead of an instance dictionary. Here is a rough simulation in pure " -"Python:" -msgstr "" -"La méthode :meth:`object.__new__` s'occupe de créer des instances qui ont " -"des *slots* au lieu d'un dictionnaire d'instances. Voici une simulation " -"approximative en Python pur :" - -#: howto/descriptor.rst:1725 -#, fuzzy -msgid "" -"To use the simulation in a real class, just inherit from :class:`!Object` " -"and set the :term:`metaclass` to :class:`Type`:" -msgstr "" -"Pour utiliser la simulation dans une classe réelle, héritez simplement " -"de :class:`Object` et définissez la :term:`métaclasse ` " -"à :class:`Type` :" - -#: howto/descriptor.rst:1739 -msgid "" -"At this point, the metaclass has loaded member objects for *x* and *y*::" -msgstr "" -"À ce stade, la métaclasse a chargé des objets membres pour *x* et *y* ::" - -#: howto/descriptor.rst:1760 -msgid "" -"When instances are created, they have a ``slot_values`` list where the " -"attributes are stored:" -msgstr "" -"Lorsque les instances sont créées, elles ont une liste ``slot_values`` où " -"les attributs sont stockés :" - -#: howto/descriptor.rst:1772 -msgid "Misspelled or unassigned attributes will raise an exception:" -msgstr "" -"Les attributs mal orthographiés ou non attribués lèvent une exception :" - -#~ msgid "" -#~ "The code path for ``hasattr(type(self.f), '__get__')`` was added in " -#~ "Python 3.9 and makes it possible for :func:`classmethod` to support " -#~ "chained decorators. For example, a classmethod and property could be " -#~ "chained together. In Python 3.11, this functionality was deprecated." -#~ msgstr "" -#~ "La portion de code pour ``hasattr(type(self.f), '__get__')`` a été " -#~ "ajoutée dans Python 3.9 et permet à :func:`classmethod` de prendre en " -#~ "charge les décorateurs chaînés. Par exemple, un décorateur « méthode de " -#~ "classe » peut être chaîné à un décorateur « propriété ». Dans Python " -#~ "3.11, cette fonctionnalité est devenue obsolète." - -#~ msgid "" -#~ "Defines descriptors, summarizes the protocol, and shows how descriptors " -#~ "are called. Examines a custom descriptor and several built-in Python " -#~ "descriptors including functions, properties, static methods, and class " -#~ "methods. Shows how each works by giving a pure Python equivalent and a " -#~ "sample application." -#~ msgstr "" -#~ "Définit les descripteurs, résume le protocole et montre comment les " -#~ "descripteurs sont appelés. Examine un descripteur personnalisé et " -#~ "plusieurs descripteurs Python intégrés, y compris les fonctions, les " -#~ "propriétés, les méthodes statiques et les méthodes de classe. Montre " -#~ "comment chacun fonctionne en donnant un équivalent Python pur et un " -#~ "exemple d'application." - -#~ msgid "Invoking Descriptors" -#~ msgstr "Invocation des descripteurs" - -#~ msgid "" -#~ "Alternatively, it is more common for a descriptor to be invoked " -#~ "automatically upon attribute access. For example, ``obj.d`` looks up " -#~ "``d`` in the dictionary of ``obj``. If ``d`` defines the " -#~ "method :meth:`__get__`, then ``d.__get__(obj)`` is invoked according to " -#~ "the precedence rules listed below." -#~ msgstr "" -#~ "Alternativement, il est plus courant qu'un descripteur soit invoqué " -#~ "automatiquement lors de l'accès aux attributs. Par exemple, ``obj.d`` " -#~ "recherche ``d`` dans le dictionnaire de ``obj.d``. Si ``d`` définit la " -#~ "méthode :meth:`__get__`, alors ``d.__get__(obj)`` est invoqué selon les " -#~ "règles de priorité énumérées ci-dessous." - -#~ msgid "" -#~ "For objects, the machinery is in :meth:`object.__getattribute__` which " -#~ "transforms ``b.x`` into ``type(b).__dict__['x'].__get__(b, type(b))``. " -#~ "The implementation works through a precedence chain that gives data " -#~ "descriptors priority over instance variables, instance variables priority " -#~ "over non-data descriptors, and assigns lowest priority " -#~ "to :meth:`__getattr__` if provided. The full C implementation can be " -#~ "found in :c:func:`PyObject_GenericGetAttr()` in :source:`Objects/" -#~ "object.c`." -#~ msgstr "" -#~ "Pour les objets, la machinerie est dans :meth:`object.__getattribute__` " -#~ "qui transforme ``b.x`` en ``type(b).__dict__['x'].__get__(b, type(b)]``. " -#~ "L'implémentation fonctionne à travers une chaîne de priorité qui donne la " -#~ "priorité aux descripteurs de données sur les variables d'instance, la " -#~ "priorité aux variables d'instance sur les descripteurs *non-data*, et " -#~ "attribue la priorité la plus faible à :meth:`__getattr__` si fourni. " -#~ "L'implémentation complète en C peut être trouvée " -#~ "dans :c:func:`PyObject_GenericGetAttr()` dans :source:`Objects/object.c`." - -#~ msgid "" -#~ "For classes, the machinery is in :meth:`type.__getattribute__` which " -#~ "transforms ``B.x`` into ``B.__dict__['x'].__get__(None, B)``. In pure " -#~ "Python, it looks like::" -#~ msgstr "" -#~ "Pour les classes, la machinerie est dans :meth:`type.__getattribute__` " -#~ "qui transforme ``B.x`` en ``B.__dict__['x'].__get__(None, B)``. En " -#~ "Python pur, cela ressemble à ::" - -#~ msgid "" -#~ "The details above show that the mechanism for descriptors is embedded in " -#~ "the :meth:`__getattribute__()` methods " -#~ "for :class:`object`, :class:`type`, and :func:`super`. Classes inherit " -#~ "this machinery when they derive from :class:`object` or if they have a " -#~ "meta-class providing similar functionality. Likewise, classes can turn-" -#~ "off descriptor invocation by overriding :meth:`__getattribute__()`." -#~ msgstr "" -#~ "Les détails ci-dessus montrent que le mécanisme des descripteurs est " -#~ "intégré dans les méthodes :meth:`__getattribute__()` " -#~ "pour :class:`object`, :class:`type` et :func:`super`. Les classes " -#~ "héritent de cette machinerie lorsqu'elles dérivent de :class:`object` ou " -#~ "si elles ont une méta-classe fournissant des fonctionnalités similaires. " -#~ "De même, les classes peuvent désactiver l'appel de descripteurs en " -#~ "remplaçant :meth:`__getattribute__()`." - -#~ msgid "Descriptor Example" -#~ msgstr "Exemple de descripteur" - -#~ msgid "" -#~ "The following code creates a class whose objects are data descriptors " -#~ "which print a message for each get or set. " -#~ "Overriding :meth:`__getattribute__` is alternate approach that could do " -#~ "this for every attribute. However, this descriptor is useful for " -#~ "monitoring just a few chosen attributes::" -#~ msgstr "" -#~ "Le code suivant crée une classe dont les objets sont des descripteurs de " -#~ "données qui affichent un message pour chaque lecture ou écriture. " -#~ "Redéfinir :meth:`__getattribute__` est une approche alternative qui " -#~ "pourrait le faire pour chaque attribut. Cependant, ce descripteur n'est " -#~ "utile que pour le suivi de quelques attributs choisis ::" - -#~ msgid "Static Methods and Class Methods" -#~ msgstr "Méthodes statiques et méthodes de classe" diff --git a/howto/enum.po b/howto/enum.po deleted file mode 100644 index ce022e6014..0000000000 --- a/howto/enum.po +++ /dev/null @@ -1,1777 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-07-21 12:47+0200\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.1\n" - -#: howto/enum.rst:5 -msgid "Enum HOWTO" -msgstr "Guide sur l'utilisation d'*Enum*" - -#: howto/enum.rst:11 -#, fuzzy -msgid "" -"An :class:`Enum` is a set of symbolic names bound to unique values. They " -"are similar to global variables, but they offer a more useful :func:`repr`, " -"grouping, type-safety, and a few other features." -msgstr "" -"Une :class:`Enum` est un ensemble de noms symboliques associés à des valeurs " -"uniques. Elles sont similaires aux variables globales, mais elles offrent " -"des particularités utiles telles qu'une meilleure :func:`repr()`, le " -"regroupement, une sécurité concernant le typage et quelques autres " -"fonctionnalités." - -#: howto/enum.rst:15 -msgid "" -"They are most useful when you have a variable that can take one of a limited " -"selection of values. For example, the days of the week::" -msgstr "" -"Elles sont particulièrement utiles lorsque vous avez une variable qui peut " -"prendre une valeur dans une plage limitée de valeurs. Par exemple, les jours " -"de la semaine ::" - -#: howto/enum.rst:28 -msgid "Or perhaps the RGB primary colors::" -msgstr "Ou alors les couleurs primaires *RVB* (NdT : *RGB* en anglais) ::" - -#: howto/enum.rst:36 -msgid "" -"As you can see, creating an :class:`Enum` is as simple as writing a class " -"that inherits from :class:`Enum` itself." -msgstr "" -"Comme vous pouvez le voir, créer une :class:`Enum` est très simple à écrire, " -"il suffit qu'elle hérite de :class:`Enum` elle-même." - -# suit un : -#: howto/enum.rst:39 -msgid "Case of Enum Members" -msgstr "casse des membres d'une énumération" - -#: howto/enum.rst:41 -#, fuzzy -msgid "" -"Because Enums are used to represent constants, and to help avoid issues with " -"name clashes between mixin-class methods/attributes and enum names, we " -"strongly recommend using UPPER_CASE names for members, and will be using " -"that style in our examples." -msgstr "" -"Étant donné que les énumérations sont utilisées pour représenter des " -"constantes, nous vous recommandons d'utiliser des noms en MAJUSCULES pour " -"les membres, et nous utiliserons ce style dans nos exemples." - -#: howto/enum.rst:46 -msgid "" -"Depending on the nature of the enum a member's value may or may not be " -"important, but either way that value can be used to get the corresponding " -"member::" -msgstr "" -"Selon la nature de l'énumération, il peut être important d'avoir accès à la " -"valeur d'un membre. Dans tous les cas, cette valeur peut être utilisée pour " -"obtenir le membre correspondant ::" - -#: howto/enum.rst:53 -msgid "" -"As you can see, the ``repr()`` of a member shows the enum name, the member " -"name, and the value. The ``str()`` of a member shows only the enum name and " -"member name::" -msgstr "" -"Comme vous pouvez le constater, la ``repr()`` d'un membre affiche le nom de " -"l'énumération, le nom du membre et la valeur. La ``str()`` d'un membre " -"affiche uniquement le nom de l'énumération et le nom du membre ::" - -#: howto/enum.rst:60 -msgid "The *type* of an enumeration member is the enum it belongs to::" -msgstr "" -"Le *type* d'un membre d'énumération est l'énumération à laquelle il " -"appartient ::" - -#: howto/enum.rst:67 -#, fuzzy -msgid "Enum members have an attribute that contains just their :attr:`!name`::" -msgstr "" -"Les membres d'une énumération possèdent un attribut :attr:`name` qui " -"contient leur nom ::" - -#: howto/enum.rst:72 -#, fuzzy -msgid "Likewise, they have an attribute for their :attr:`!value`::" -msgstr "De même, ils ont un attribut :attr:`value` pour leur valeur ::" - -#: howto/enum.rst:78 -#, fuzzy -msgid "" -"Unlike many languages that treat enumerations solely as name/value pairs, " -"Python Enums can have behavior added. For example, :class:`datetime.date` " -"has two methods for returning the weekday: :meth:`~datetime.date.weekday` " -"and :meth:`~datetime.date.isoweekday`. The difference is that one of them " -"counts from 0-6 and the other from 1-7. Rather than keep track of that " -"ourselves we can add a method to the :class:`!Weekday` enum to extract the " -"day from the :class:`~datetime.date` instance and return the matching enum " -"member::" -msgstr "" -"Contrairement à de nombreux langages qui traitent les énumérations " -"uniquement comme des paires nom-valeur, le comportement des énumérations " -"Python peut être augmenté. Par exemple, :class:`datetime.date` a deux " -"méthodes pour renvoyer le jour de la semaine : :meth:`weekday` " -"et :meth:`isoweekday`. La différence est que la première compte de 0 à 6 et " -"la seconde de 1 à 7. Plutôt que d'avoir à nous en rappeler nous-mêmes, nous " -"pouvons ajouter une méthode à l'énumération :class:`Weekday` pour extraire " -"le jour d'une instance :class:`date` et renvoyer le membre correspondant de " -"l'énumération ::" - -#: howto/enum.rst:91 -#, fuzzy -msgid "The complete :class:`!Weekday` enum now looks like this::" -msgstr "" -"L'énumération :class:`Weekday` en entier ressemble maintenant à ceci ::" - -#: howto/enum.rst:106 -msgid "Now we can find out what today is! Observe::" -msgstr "" -"Maintenant, nous pouvons découvrir quel jour nous sommes aujourd'hui ! " -"Regardez ::" - -#: howto/enum.rst:112 -msgid "" -"Of course, if you're reading this on some other day, you'll see that day " -"instead." -msgstr "" -"Bien sûr, si vous lisez cette page un autre jour, vous verrez ce jour-là à " -"la place." - -#: howto/enum.rst:114 -#, fuzzy -msgid "" -"This :class:`!Weekday` enum is great if our variable only needs one day, but " -"what if we need several? Maybe we're writing a function to plot chores " -"during a week, and don't want to use a :class:`list` -- we could use a " -"different type of :class:`Enum`::" -msgstr "" -"Cette énumération :class:`Weekday` est idéale si notre variable n'a besoin " -"que d'un jour, mais que se passe-t-il si nous en avons besoin de plusieurs ? " -"Par exemple si nous écrivons une fonction pour garder une trace des tâches " -"pendant une semaine, et que nous ne voulons pas utiliser une :class:`list` — " -"nous pouvons utiliser un autre type :class:`Enum` ::" - -#: howto/enum.rst:129 -msgid "" -"We've changed two things: we're inherited from :class:`Flag`, and the values " -"are all powers of 2." -msgstr "" -"Nous avons changé deux choses : nous héritons de :class:`Flag` et les " -"valeurs sont toutes des puissances de 2." - -#: howto/enum.rst:132 -#, fuzzy -msgid "" -"Just like the original :class:`!Weekday` enum above, we can have a single " -"selection::" -msgstr "" -"De la même manière que pour l'énumération originale :class:`Weekday` ci-" -"dessus, nous pouvons sélectionner un seul élément ::" - -#: howto/enum.rst:138 -msgid "" -"But :class:`Flag` also allows us to combine several members into a single " -"variable::" -msgstr "" -"Mais :class:`Flag` nous permet aussi de combiner plusieurs membres en une " -"seule variable ::" - -#: howto/enum.rst:145 -msgid "You can even iterate over a :class:`Flag` variable::" -msgstr "Nous pouvons même itérer sur une variable :class:`Flag` ::" - -#: howto/enum.rst:152 -msgid "Okay, let's get some chores set up::" -msgstr "Bien, préparons quelques corvées ::" - -#: howto/enum.rst:160 -msgid "And a function to display the chores for a given day::" -msgstr "Et une fonction pour afficher les corvées d'un jour donné ::" - -#: howto/enum.rst:170 -#, fuzzy -msgid "" -"In cases where the actual values of the members do not matter, you can save " -"yourself some work and use :func:`auto` for the values::" -msgstr "" -"Au cas où les valeurs réelles des membres n'ont pas d'importance, nous " -"pouvons nous épargner du travail et utiliser :func:`auto()` pour les " -"valeurs ::" - -#: howto/enum.rst:189 -msgid "Programmatic access to enumeration members and their attributes" -msgstr "Accès par programme aux membres de l'énumération et à leurs attributs" - -#: howto/enum.rst:191 -msgid "" -"Sometimes it's useful to access members in enumerations programmatically " -"(i.e. situations where ``Color.RED`` won't do because the exact color is not " -"known at program-writing time). ``Enum`` allows such access::" -msgstr "" -"Il est parfois utile d'accéder aux membres d'une énumération " -"programmatiquement (c'est-à-dire les cas où ``Color.RED`` ne suffit pas car " -"la couleur exacte n'est pas connue au moment de l'écriture du programme). " -"``Enum`` permet de tels accès ::" - -#: howto/enum.rst:200 -msgid "If you want to access enum members by *name*, use item access::" -msgstr "" -"Si vous souhaitez accéder aux membres d'une énumération par leur nom, " -"utilisez l'accès par indice ::" - -#: howto/enum.rst:207 -#, fuzzy -msgid "" -"If you have an enum member and need its :attr:`!name` or :attr:`!value`::" -msgstr "" -"Si vous avez un membre d'une énumération et que vous avez besoin de " -"son :attr:`nom ` ou de sa :attr:`valeur `, utilisez ses " -"attributs ::" - -#: howto/enum.rst:217 -msgid "Duplicating enum members and values" -msgstr "Duplication des membres et des valeurs d'une énumération" - -#: howto/enum.rst:219 -msgid "Having two enum members with the same name is invalid::" -msgstr "" -"Il n'est pas licite d'avoir deux membres d'une énumération avec le même " -"nom ::" - -#: howto/enum.rst:229 -msgid "" -"However, an enum member can have other names associated with it. Given two " -"entries ``A`` and ``B`` with the same value (and ``A`` defined first), ``B`` " -"is an alias for the member ``A``. By-value lookup of the value of ``A`` " -"will return the member ``A``. By-name lookup of ``A`` will return the " -"member ``A``. By-name lookup of ``B`` will also return the member ``A``::" -msgstr "" -"Cependant, un membre peut avoir d'autres noms qui lui sont associés. Étant " -"donné deux entrées ``A`` et ``B`` avec la même valeur (et ``A`` définie en " -"premier), ``B`` est un synonyme (ou alias) du membre ``A``. La recherche par " -"valeur de la valeur de ``A`` renvoie le membre ``A``. La recherche par nom " -"de ``A`` renvoie le membre ``A``. La recherche par nom de ``B`` renvoie " -"également le membre ``A`` ::" - -# suit un : -#: howto/enum.rst:250 -msgid "" -"Attempting to create a member with the same name as an already defined " -"attribute (another member, a method, etc.) or attempting to create an " -"attribute with the same name as a member is not allowed." -msgstr "" -"tenter de créer un membre portant le même nom qu'un attribut déjà défini (un " -"autre membre, une méthode, etc.) ou tenter de créer un attribut portant le " -"même nom qu'un membre n'est pas autorisé." - -#: howto/enum.rst:256 -msgid "Ensuring unique enumeration values" -msgstr "Garantie de valeurs d'énumération uniques" - -#: howto/enum.rst:258 -msgid "" -"By default, enumerations allow multiple names as aliases for the same value. " -"When this behavior isn't desired, you can use the :func:`unique` decorator::" -msgstr "" -"Par défaut, les énumérations autorisent plusieurs noms comme synonymes pour " -"la même valeur. Lorsque ce comportement n'est pas souhaité, vous pouvez " -"utiliser le décorateur :func:`unique` ::" - -#: howto/enum.rst:275 -msgid "Using automatic values" -msgstr "Utilisation de valeurs automatiques" - -#: howto/enum.rst:277 -msgid "If the exact value is unimportant you can use :class:`auto`::" -msgstr "" -"Si la valeur exacte n'est pas importante, vous pouvez " -"utiliser :class:`auto` ::" - -#: howto/enum.rst:288 -#, fuzzy -msgid "" -"The values are chosen by :func:`~Enum._generate_next_value_`, which can be " -"overridden::" -msgstr "" -"Les valeurs sont choisies par :func:`_generate_next_value_`, qui peut être " -"surchargée ::" - -# suit un : -#: howto/enum.rst:307 -#, fuzzy -msgid "" -"The :meth:`~Enum._generate_next_value_` method must be defined before any " -"members." -msgstr "" -"la méthode :meth:`_generate_next_value_` doit être définie avant tout membre." - -#: howto/enum.rst:310 -msgid "Iteration" -msgstr "Itération" - -#: howto/enum.rst:312 -msgid "Iterating over the members of an enum does not provide the aliases::" -msgstr "" -"L'itération sur les membres d'une énumération ne fournit pas les synonymes ::" - -#: howto/enum.rst:319 -msgid "" -"Note that the aliases ``Shape.ALIAS_FOR_SQUARE`` and ``Weekday.WEEKEND`` " -"aren't shown." -msgstr "" - -#: howto/enum.rst:321 -msgid "" -"The special attribute ``__members__`` is a read-only ordered mapping of " -"names to members. It includes all names defined in the enumeration, " -"including the aliases::" -msgstr "" -"L'attribut spécial ``__members__`` est un tableau de correspondances ordonné " -"en lecture seule des noms vers les membres. Il inclut tous les noms définis " -"dans l'énumération, y compris les synonymes ::" - -#: howto/enum.rst:333 -msgid "" -"The ``__members__`` attribute can be used for detailed programmatic access " -"to the enumeration members. For example, finding all the aliases::" -msgstr "" -"L'attribut ``__members__`` peut être utilisé pour un accès programmatique " -"détaillé aux membres de l'énumération. Par exemple, trouver tous les " -"synonymes ::" - -#: howto/enum.rst:341 -msgid "" -"Aliases for flags include values with multiple flags set, such as ``3``, and " -"no flags set, i.e. ``0``." -msgstr "" - -#: howto/enum.rst:346 -msgid "Comparisons" -msgstr "Comparaisons" - -#: howto/enum.rst:348 -msgid "Enumeration members are compared by identity::" -msgstr "Les membres de l'énumération sont comparés par identité ::" - -#: howto/enum.rst:357 -msgid "" -"Ordered comparisons between enumeration values are *not* supported. Enum " -"members are not integers (but see `IntEnum`_ below)::" -msgstr "" -"Les comparaisons ordonnées entre les valeurs d'énumération *ne sont pas* " -"prises en charge. Les membres d'une énumération ne sont pas des entiers " -"(mais voir `IntEnum`_ plus bas) ::" - -#: howto/enum.rst:365 -msgid "Equality comparisons are defined though::" -msgstr "Les comparaisons d'égalité sont cependant définies ::" - -#: howto/enum.rst:374 -#, fuzzy -msgid "" -"Equality comparisons against non-enumeration values will always return " -"``False`` (again, :class:`IntEnum` was explicitly designed to behave " -"differently, see below)::" -msgstr "" -"Les comparaisons avec des valeurs en dehors de l'énumération sont toujours " -"fausses (encore une fois, :class:`IntEnum` a été explicitement conçue pour " -"se comporter différemment, voir ci-dessous) ::" - -#: howto/enum.rst:383 -msgid "" -"It is possible to reload modules -- if a reloaded module contains enums, " -"they will be recreated, and the new members may not compare identical/equal " -"to the original members." -msgstr "" - -#: howto/enum.rst:388 -msgid "Allowed members and attributes of enumerations" -msgstr "Membres et attributs autorisés des énumérations" - -#: howto/enum.rst:390 -msgid "" -"Most of the examples above use integers for enumeration values. Using " -"integers is short and handy (and provided by default by the `Functional " -"API`_), but not strictly enforced. In the vast majority of use-cases, one " -"doesn't care what the actual value of an enumeration is. But if the value " -"*is* important, enumerations can have arbitrary values." -msgstr "" -"La plupart des exemples ci-dessus utilisent des nombres entiers pour les " -"valeurs d'énumération. L'utilisation d'entiers est rapide et pratique (et " -"fournie par défaut par l'`API fonctionnelle`_), mais n'est pas strictement " -"obligatoire. Dans la grande majorité des cas, on ne se soucie pas de la " -"valeur réelle des membres d'une énumération. Mais si la valeur *est* " -"importante, les énumérations peuvent avoir des valeurs arbitraires." - -#: howto/enum.rst:396 -msgid "" -"Enumerations are Python classes, and can have methods and special methods as " -"usual. If we have this enumeration::" -msgstr "" -"Les énumérations sont des classes Python et peuvent avoir des méthodes ainsi " -"que des méthodes spéciales comme d'habitude. Prenons cette énumération ::" - -#: howto/enum.rst:416 -msgid "Then::" -msgstr "alors ::" - -#: howto/enum.rst:425 -#, fuzzy -msgid "" -"The rules for what is allowed are as follows: names that start and end with " -"a single underscore are reserved by enum and cannot be used; all other " -"attributes defined within an enumeration will become members of this " -"enumeration, with the exception of special methods " -"(:meth:`~object.__str__`, :meth:`~object.__add__`, etc.), descriptors " -"(methods are also descriptors), and variable names listed " -"in :attr:`~Enum._ignore_`." -msgstr "" -"Les règles concernant ce qui est autorisé ou pas sont les suivantes : les " -"noms qui commencent et se terminent par un seul caractère de soulignement " -"sont réservés par l'énumération et ne peuvent pas être utilisés ; tous les " -"autres attributs définis dans une énumération deviendront membres de cette " -"énumération, à l'exception des méthodes spéciales " -"(:meth:`__str__`, :meth:`__add__`, etc.), des descripteurs (les méthodes " -"sont aussi des descripteurs) et des noms de variables listés " -"dans :attr:`_ignore_`." - -#: howto/enum.rst:432 -#, fuzzy -msgid "" -"Note: if your enumeration defines :meth:`~object.__new__` and/" -"or :meth:`~object.__init__`, any value(s) given to the enum member will be " -"passed into those methods. See `Planet`_ for an example." -msgstr "" -"Remarque : si votre énumération définit :meth:`__new__` ou :meth:`__init__`, " -"alors toute valeur donnée à un membre de l'énumération sera passée à ces " -"méthodes. Voir `Planète`_ pour un exemple." - -#: howto/enum.rst:438 -#, fuzzy -msgid "" -"The :meth:`~object.__new__` method, if defined, is used during creation of " -"the Enum members; it is then replaced by Enum's :meth:`~object.__new__` " -"which is used after class creation for lookup of existing members. " -"See :ref:`new-vs-init` for more details." -msgstr "" -"la méthode :meth:`__new__`, si elle est définie, est utilisée lors de la " -"création des membres de l'énumération ; elle est ensuite remplacée " -"par :meth:`__new__` de l'*Enum* qui est utilisée après la création de la " -"classe pour la recherche des membres existants." - -#: howto/enum.rst:445 -msgid "Restricted Enum subclassing" -msgstr "Restrictions sur la dérivation d'énumérations" - -#: howto/enum.rst:447 -msgid "" -"A new :class:`Enum` class must have one base enum class, up to one concrete " -"data type, and as many :class:`object`-based mixin classes as needed. The " -"order of these base classes is::" -msgstr "" -"Une nouvelle classe :class:`Enum` doit avoir une classe mère *Enum*, jusqu'à " -"un type de données concret, et autant de classes mélangées filles " -"de :class:`object` que nécessaire. L'ordre de ces classes mères est ::" - -#: howto/enum.rst:454 -msgid "" -"Also, subclassing an enumeration is allowed only if the enumeration does not " -"define any members. So this is forbidden::" -msgstr "" -"De plus, la dérivation d'une énumération n'est autorisée que si " -"l'énumération ne définit aucun membre. Donc ceci est interdit ::" - -#: howto/enum.rst:464 -msgid "But this is allowed::" -msgstr "Mais ceci est autorisé ::" - -#: howto/enum.rst:475 -msgid "" -"Allowing subclassing of enums that define members would lead to a violation " -"of some important invariants of types and instances. On the other hand, it " -"makes sense to allow sharing some common behavior between a group of " -"enumerations. (See `OrderedEnum`_ for an example.)" -msgstr "" -"Autoriser la dérivation d'énumérations qui définissent les membres " -"conduirait à une violation de certains invariants importants des types et " -"des instances. D'un autre côté, il est logique de permettre le partage d'un " -"comportement commun entre un groupe d'énumérations (voir `OrderedEnum`_ pour " -"un exemple)." - -#: howto/enum.rst:484 -msgid "Dataclass support" -msgstr "" - -#: howto/enum.rst:486 -msgid "" -"When inheriting from a :class:`~dataclasses.dataclass`, " -"the :meth:`~Enum.__repr__` omits the inherited class' name. For example::" -msgstr "" - -#: howto/enum.rst:503 -msgid "" -"Use the :func:`~dataclasses.dataclass` argument ``repr=False`` to use the " -"standard :func:`repr`." -msgstr "" - -#: howto/enum.rst:506 -msgid "" -"Only the dataclass fields are shown in the value area, not the dataclass' " -"name." -msgstr "" - -#: howto/enum.rst:512 -msgid "" -"Adding :func:`~dataclasses.dataclass` decorator to :class:`Enum` and its " -"subclasses is not supported. It will not raise any errors, but it will " -"produce very strange results at runtime, such as members being equal to each " -"other::" -msgstr "" - -#: howto/enum.rst:529 -msgid "Pickling" -msgstr "Sérialisation" - -#: howto/enum.rst:531 -msgid "Enumerations can be pickled and unpickled::" -msgstr "Les énumérations peuvent être sérialisées et désérialisées ::" - -#: howto/enum.rst:538 -msgid "" -"The usual restrictions for pickling apply: picklable enums must be defined " -"in the top level of a module, since unpickling requires them to be " -"importable from that module." -msgstr "" -"Les restrictions habituelles pour la sérialisation s'appliquent : les " -"énumérations sérialisables doivent être définies au niveau supérieur d'un " -"module, car la sérialisation nécessite qu'elles puissent être importées à " -"partir de ce module." - -# suit un : -#: howto/enum.rst:544 -msgid "" -"With pickle protocol version 4 it is possible to easily pickle enums nested " -"in other classes." -msgstr "" -"avec la version 4 du protocole *pickle*, il est possible de sérialiser " -"facilement les énumérations imbriquées dans d'autres classes." - -#: howto/enum.rst:547 -#, fuzzy -msgid "" -"It is possible to modify how enum members are pickled/unpickled by " -"defining :meth:`~object.__reduce_ex__` in the enumeration class. The " -"default method is by-value, but enums with complicated values may want to " -"use by-name::" -msgstr "" -"Il est possible de modifier la manière dont les membres de l'énumération " -"sont sérialisés-désérialisés en définissant :meth:`__reduce_ex__` dans la " -"classe d'énumération." - -#: howto/enum.rst:557 -msgid "" -"Using by-name for flags is not recommended, as unnamed aliases will not " -"unpickle." -msgstr "" - -#: howto/enum.rst:562 -msgid "Functional API" -msgstr "API fonctionnelle" - -#: howto/enum.rst:564 -msgid "" -"The :class:`Enum` class is callable, providing the following functional API::" -msgstr "" -"La classe :class:`Enum` est appelable, elle fournit l'API fonctionnelle " -"suivante ::" - -#: howto/enum.rst:574 -msgid "" -"The semantics of this API resemble :class:`~collections.namedtuple`. The " -"first argument of the call to :class:`Enum` is the name of the enumeration." -msgstr "" -"La sémantique de cette API ressemble à celle " -"des :class:`~collections.namedtuple`. Le premier argument de l'appel " -"à :class:`Enum` est le nom de l'énumération." - -#: howto/enum.rst:577 -#, fuzzy -msgid "" -"The second argument is the *source* of enumeration member names. It can be " -"a whitespace-separated string of names, a sequence of names, a sequence of 2-" -"tuples with key/value pairs, or a mapping (e.g. dictionary) of names to " -"values. The last two options enable assigning arbitrary values to " -"enumerations; the others auto-assign increasing integers starting with 1 " -"(use the ``start`` parameter to specify a different starting value). A new " -"class derived from :class:`Enum` is returned. In other words, the above " -"assignment to :class:`!Animal` is equivalent to::" -msgstr "" -"Le deuxième argument est la *source* des noms des membres de l'énumération. " -"Il peut s'agir d'une chaîne de noms séparés par des espaces, d'une séquence " -"de noms, d'une séquence de couples clé-valeur, ou d'un tableau de " -"correspondances (par exemple, un dictionnaire) de noms vers des valeurs. Les " -"deux dernières options permettent d'attribuer des valeurs arbitraires aux " -"énumérations ; les autres assignent automatiquement des entiers croissants " -"commençant à 1 (utilisez le paramètre ``start`` pour spécifier une valeur de " -"départ différente). Une nouvelle classe dérivée d':class:`Enum` est " -"renvoyée. En d'autres termes, l'affectation ci-dessus à :class:`Animal` est " -"équivalente à ::" - -#: howto/enum.rst:593 -msgid "" -"The reason for defaulting to ``1`` as the starting number and not ``0`` is " -"that ``0`` is ``False`` in a boolean sense, but by default enum members all " -"evaluate to ``True``." -msgstr "" -"La raison de la valeur par défaut de ``1`` comme numéro de départ et non de " -"``0`` est que le sens booléen de ``0`` est ``False``. Or, par défaut, les " -"membres d'une énumération s'évaluent tous à ``True``." - -#: howto/enum.rst:597 -msgid "" -"Pickling enums created with the functional API can be tricky as frame stack " -"implementation details are used to try and figure out which module the " -"enumeration is being created in (e.g. it will fail if you use a utility " -"function in a separate module, and also may not work on IronPython or " -"Jython). The solution is to specify the module name explicitly as follows::" -msgstr "" -"La sérialisation d'énumérations créées avec l'API fonctionnelle peut être " -"délicat car les détails d'implémentation de la pile d'appels sont utilisés " -"pour essayer de déterminer dans quel module l'énumération est créée (par " -"exemple, cela échoue si vous utilisez une fonction utilitaire dans un module " -"séparé, et peut également ne pas fonctionner sur *IronPython* ou *Jython*). " -"La solution consiste à spécifier explicitement le nom du module comme suit ::" - -# suit un : -#: howto/enum.rst:607 -msgid "" -"If ``module`` is not supplied, and Enum cannot determine what it is, the new " -"Enum members will not be unpicklable; to keep errors closer to the source, " -"pickling will be disabled." -msgstr "" -"si le ``module`` n'est pas fourni et qu'*Enum* ne peut pas le déterminer, " -"les nouveaux membres de l'énumération ne pourront pas être sélectionnés ; " -"pour garder les erreurs au plus près de la source, la sérialisation est " -"désactivée." - -#: howto/enum.rst:611 -#, fuzzy -msgid "" -"The new pickle protocol 4 also, in some circumstances, relies " -"on :attr:`~type.__qualname__` being set to the location where pickle will be " -"able to find the class. For example, if the class was made available in " -"class SomeData in the global scope::" -msgstr "" -"Le nouveau protocole *pickle* 4 s'appuie également, dans certaines " -"circonstances, sur :attr:`~definition.__qualname__` qui définit " -"l'emplacement où la sérialisation peut trouver la classe. Par exemple, si la " -"classe a été rendue disponible dans la classe *SomeData* avec une portée " -"globale ::" - -#: howto/enum.rst:618 -msgid "The complete signature is::" -msgstr "La signature complète est ::" - -# suit un : -#: howto/enum.rst:630 -#, fuzzy -msgid "*value*: What the new enum class will record as its name." -msgstr "ce que la nouvelle classe *enum* enregistre comme nom." - -# suit un : -#: howto/enum.rst:632 -#, fuzzy -msgid "" -"*names*: The enum members. This can be a whitespace- or comma-separated " -"string (values will start at 1 unless otherwise specified)::" -msgstr "" -"les membres de l'énumération. Il peut s'agir d'une chaîne séparée par des " -"espaces ou des virgules (les valeurs commencent à 1 sauf indication " -"contraire) ::" - -#: howto/enum.rst:637 -msgid "or an iterator of names::" -msgstr "ou un itérateur sur des noms ::" - -#: howto/enum.rst:641 -msgid "or an iterator of (name, value) pairs::" -msgstr "ou un itérateur sur des paires (nom, valeur) ::" - -#: howto/enum.rst:645 -msgid "or a mapping::" -msgstr "ou un tableau de correspondances ::" - -#: howto/enum.rst:649 -#, fuzzy -msgid "*module*: name of module where new enum class can be found." -msgstr "nom du module où la nouvelle classe *enum* peut être trouvée." - -#: howto/enum.rst:651 -#, fuzzy -msgid "*qualname*: where in module new enum class can be found." -msgstr "" -"à quel endroit dans le module la nouvelle classe *enum* peut être trouvée." - -#: howto/enum.rst:653 -#, fuzzy -msgid "*type*: type to mix in to new enum class." -msgstr "types à mélanger avec la nouvelle classe *enum*." - -#: howto/enum.rst:655 -#, fuzzy -msgid "*start*: number to start counting at if only names are passed in." -msgstr "" -"nombre à partir duquel commencer à compter si seuls les noms sont transmis." - -# suit un : -#: howto/enum.rst:657 -msgid "The *start* parameter was added." -msgstr "le paramètre *start* a été ajouté." - -#: howto/enum.rst:662 -msgid "Derived Enumerations" -msgstr "Déclinaisons d'énumérations" - -#: howto/enum.rst:665 -msgid "IntEnum" -msgstr "*IntEnum*" - -#: howto/enum.rst:667 -msgid "" -"The first variation of :class:`Enum` that is provided is also a subclass " -"of :class:`int`. Members of an :class:`IntEnum` can be compared to " -"integers; by extension, integer enumerations of different types can also be " -"compared to each other::" -msgstr "" -"La première variante de :class:`Enum` fournie est également une sous-classe " -"de :class:`int`. Les membres d'une :class:`IntEnum` peuvent être comparés à " -"des entiers ; par extension, des énumérations *IntEnum* de différents types " -"peuvent aussi être comparées ::" - -#: howto/enum.rst:688 -msgid "" -"However, they still can't be compared to standard :class:`Enum` " -"enumerations::" -msgstr "" -"Cependant, elles ne peuvent toujours pas être comparées aux énumérations " -"classiques :class:`Enum` ::" - -#: howto/enum.rst:701 -msgid "" -":class:`IntEnum` values behave like integers in other ways you'd expect::" -msgstr "" -"Les valeurs :class:`IntEnum` se comportent comme des entiers, comme vous " -"pouvez vous y attendre ::" - -#: howto/enum.rst:712 -msgid "StrEnum" -msgstr "*StrEnum*" - -#: howto/enum.rst:714 -msgid "" -"The second variation of :class:`Enum` that is provided is also a subclass " -"of :class:`str`. Members of a :class:`StrEnum` can be compared to strings; " -"by extension, string enumerations of different types can also be compared to " -"each other." -msgstr "" -"La deuxième variante de :class:`Enum` fournie est également une sous-classe " -"de :class:`str`. Les membres d'une :class:`StrEnum` peuvent être comparés à " -"des chaînes ; par extension, les énumérations *StrEnum* de différents types " -"peuvent également être comparées les unes aux autres." - -#: howto/enum.rst:723 -msgid "IntFlag" -msgstr "*IntFlag*" - -#: howto/enum.rst:725 -msgid "" -"The next variation of :class:`Enum` provided, :class:`IntFlag`, is also " -"based on :class:`int`. The difference being :class:`IntFlag` members can be " -"combined using the bitwise operators (&, \\|, ^, ~) and the result is still " -"an :class:`IntFlag` member, if possible. " -"Like :class:`IntEnum`, :class:`IntFlag` members are also integers and can be " -"used wherever an :class:`int` is used." -msgstr "" -"La variante suivante fournie d':class:`Enum` est :class:`IntFlag`, également " -"basée sur :class:`int`. La différence étant que les membres :class:`IntFlag` " -"peuvent être combinés à l'aide des opérateurs bit-à-bit (&, \\|, ^, ~) et le " -"résultat est toujours un membre :class:`IntFlag`, si possible. " -"Comme :class:`IntEnum`, les membres de :class:`IntFlag` sont aussi des " -"entiers et peuvent être utilisés partout où on utilise un :class:`int`." - -# suit un : -#: howto/enum.rst:733 -msgid "" -"Any operation on an :class:`IntFlag` member besides the bit-wise operations " -"will lose the :class:`IntFlag` membership." -msgstr "" -"toute opération sur un membre :class:`IntFlag`, en dehors des opérations bit-" -"à-bit, fait perdre l'appartenance à :class:`IntFlag`." - -#: howto/enum.rst:736 -msgid "" -"Bit-wise operations that result in invalid :class:`IntFlag` values will lose " -"the :class:`IntFlag` membership. See :class:`FlagBoundary` for details." -msgstr "" -"Les opérations bit-à-bit qui entraînent des valeurs :class:`IntFlag` " -"invalides font perdre l'appartenance à :class:`IntFlag`. " -"Voir :class:`FlagBoundary` pour plus de détails." - -#: howto/enum.rst:743 -msgid "Sample :class:`IntFlag` class::" -msgstr "Classe exemple dérivée d':class:`Intflag` ::" - -#: howto/enum.rst:759 -msgid "It is also possible to name the combinations::" -msgstr "Il est également possible de nommer les combinaisons ::" - -# suit un : -#: howto/enum.rst:776 -msgid "" -"Named combinations are considered aliases. Aliases do not show up during " -"iteration, but can be returned from by-value lookups." -msgstr "" -"les combinaisons nommées sont considérées être des synonymes (ou alias). Les " -"synonymes n'apparaissent pas dans une itération, mais peuvent être renvoyés " -"à partir de recherches par valeur." - -#: howto/enum.rst:781 -msgid "" -"Another important difference between :class:`IntFlag` and :class:`Enum` is " -"that if no flags are set (the value is 0), its boolean evaluation " -"is :data:`False`::" -msgstr "" -"Une autre différence importante entre :class:`IntFlag` et :class:`Enum` est " -"que si aucun indicateur n'est défini (la valeur est 0), son évaluation " -"booléenne est :data:`False` ::" - -#: howto/enum.rst:789 -msgid "" -"Because :class:`IntFlag` members are also subclasses of :class:`int` they " -"can be combined with them (but may lose :class:`IntFlag` membership::" -msgstr "" -"Comme les membres d'une :class:`IntFlag` sont aussi des sous-classes " -"de :class:`int`, ils peuvent être combinés avec eux (mais peuvent alors " -"perdre l'appartenance à :class:`IntFlag`) ::" - -# suit un : -#: howto/enum.rst:800 -msgid "" -"The negation operator, ``~``, always returns an :class:`IntFlag` member with " -"a positive value::" -msgstr "" -"l'opérateur de négation, ``~``, renvoie toujours un membre :class:`IntFlag` " -"avec une valeur positive ::" - -#: howto/enum.rst:806 -msgid ":class:`IntFlag` members can also be iterated over::" -msgstr "On peut aussi itérer sur les membres d'une :class:`IntFlag` ::" - -#: howto/enum.rst:815 -msgid "Flag" -msgstr "*Flag*" - -#: howto/enum.rst:817 -msgid "" -"The last variation is :class:`Flag`. Like :class:`IntFlag`, :class:`Flag` " -"members can be combined using the bitwise operators (&, \\|, ^, ~). " -"Unlike :class:`IntFlag`, they cannot be combined with, nor compared against, " -"any other :class:`Flag` enumeration, nor :class:`int`. While it is possible " -"to specify the values directly it is recommended to use :class:`auto` as the " -"value and let :class:`Flag` select an appropriate value." -msgstr "" -"La dernière variante est :class:`Flag`. Comme :class:`IntFlag`, les membres " -"de :class:`Flag` peuvent être combinés à l'aide des opérateurs bit-à-bit (&, " -"\\|, ^, ~). Contrairement à :class:`IntFlag`, ils ne peuvent être combinés " -"ni comparés à aucune autre énumération :class:`Flag`, ni à :class:`int`. " -"Bien qu'il soit possible de spécifier les valeurs directement, il est " -"recommandé d'utiliser :class:`auto` comme valeur et de laisser :class:`Flag` " -"sélectionner une valeur appropriée." - -#: howto/enum.rst:826 -msgid "" -"Like :class:`IntFlag`, if a combination of :class:`Flag` members results in " -"no flags being set, the boolean evaluation is :data:`False`::" -msgstr "" -"Comme pour :class:`IntFlag`, si une combinaison de membres :class:`Flag` " -"entraîne qu'aucun indicateur n'est défini, l'évaluation booléenne " -"est :data:`False` ::" - -#: howto/enum.rst:840 -#, fuzzy -msgid "" -"Individual flags should have values that are powers of two (1, 2, 4, " -"8, ...), while combinations of flags will not::" -msgstr "" -"Les indicateurs individuels doivent avoir des valeurs qui sont des " -"puissances de deux (1, 2, 4, 8…), tandis que les combinaisons d'indicateurs " -"ne le sont pas ::" - -#: howto/enum.rst:852 -msgid "" -"Giving a name to the \"no flags set\" condition does not change its boolean " -"value::" -msgstr "" -"Donner un nom à la condition « aucun indicateur défini » ne change pas sa " -"valeur booléenne ::" - -#: howto/enum.rst:866 -msgid ":class:`Flag` members can also be iterated over::" -msgstr "On peut aussi itérer sur les membres d'une :class:`Flag` ::" - -# suit un : -#: howto/enum.rst:876 -msgid "" -"For the majority of new code, :class:`Enum` and :class:`Flag` are strongly " -"recommended, since :class:`IntEnum` and :class:`IntFlag` break some semantic " -"promises of an enumeration (by being comparable to integers, and thus by " -"transitivity to other unrelated enumerations). :class:`IntEnum` " -"and :class:`IntFlag` should be used only in cases where :class:`Enum` " -"and :class:`Flag` will not do; for example, when integer constants are " -"replaced with enumerations, or for interoperability with other systems." -msgstr "" -"pour la majorité du code nouveau, :class:`Enum` et :class:`Flag` sont " -"fortement recommandées, car :class:`IntEnum` et :class:`IntFlag` brisent " -"certaines promesses sémantiques d'une énumération (en pouvant être comparées " -"à des entiers et donc, par transitivité, à d'autres énumérations sans " -"rapport). :class:`IntEnum` et :class:`IntFlag` ne doivent être utilisées que " -"dans les cas où :class:`Enum` et :class:`Flag` ne suffisent pas ; par " -"exemple, lorsque des constantes entières sont remplacées par des " -"énumérations, ou pour l'interopérabilité avec d'autres systèmes." - -#: howto/enum.rst:886 -msgid "Others" -msgstr "Autres énumérations" - -#: howto/enum.rst:888 -msgid "" -"While :class:`IntEnum` is part of the :mod:`enum` module, it would be very " -"simple to implement independently::" -msgstr "" -"Bien que :class:`IntEnum` fasse partie du module :mod:`enum`, il serait très " -"simple de l'implémenter indépendamment ::" - -#: howto/enum.rst:894 -#, fuzzy -msgid "" -"This demonstrates how similar derived enumerations can be defined; for " -"example a :class:`!FloatEnum` that mixes in :class:`float` instead " -"of :class:`int`." -msgstr "" -"Ceci montre comment définir des énumérations dérivées similaires ; par " -"exemple une :class:`FloatEnum` qui utilise :class:`float` au lieu " -"de :class:`int`." - -#: howto/enum.rst:897 -msgid "Some rules:" -msgstr "Quelques règles :" - -#: howto/enum.rst:899 -#, fuzzy -msgid "" -"When subclassing :class:`Enum`, mix-in types must appear before " -"the :class:`Enum` class itself in the sequence of bases, as in " -"the :class:`IntEnum` example above." -msgstr "" -"Lorsque vous dérivez :class:`Enum`, les classes mères mélangées doivent " -"apparaître avant :class:`Enum` elle-même dans la liste des classes mères, " -"comme dans l'exemple :class:`IntEnum` ci-dessus." - -#: howto/enum.rst:902 -msgid "" -"Mix-in types must be subclassable. For example, :class:`bool` " -"and :class:`range` are not subclassable and will throw an error during Enum " -"creation if used as the mix-in type." -msgstr "" -"Les types mélangés doivent pouvoir être sous-classés. Par " -"exemple, :class:`bool` et :class:`range` ne peuvent pas être sous-classés et " -"génèrent une erreur lors de la création d'une énumération s'ils sont " -"utilisés comme type de mélange." - -#: howto/enum.rst:905 -msgid "" -"While :class:`Enum` can have members of any type, once you mix in an " -"additional type, all the members must have values of that type, " -"e.g. :class:`int` above. This restriction does not apply to mix-ins which " -"only add methods and don't specify another type." -msgstr "" -"Alors qu':class:`Enum` peut avoir des membres de n'importe quel type, une " -"fois que vous avez mélangé un type supplémentaire, tous les membres doivent " -"avoir des valeurs de ce type, par exemple :class:`int` ci-dessus. Cette " -"restriction ne s'applique pas aux classes de mélange qui ajoutent uniquement " -"des méthodes et ne spécifient pas d'autre type." - -#: howto/enum.rst:909 -#, fuzzy -msgid "" -"When another data type is mixed in, the :attr:`~Enum.value` attribute is " -"*not the same* as the enum member itself, although it is equivalent and will " -"compare equal." -msgstr "" -"Lorsqu'un autre type de données est mélangé, l'attribut :attr:`value` n'est " -"*pas le même* que le membre de l'énumération en tant que tel, bien qu'il " -"soit équivalent et renvoie égal lors d'une comparaison." - -#: howto/enum.rst:912 -msgid "" -"A ``data type`` is a mixin that defines :meth:`~object.__new__`, or " -"a :class:`~dataclasses.dataclass`" -msgstr "" - -#: howto/enum.rst:914 -#, fuzzy -msgid "" -"%-style formatting: ``%s`` and ``%r`` call the :class:`Enum` " -"class's :meth:`~object.__str__` and :meth:`~object.__repr__` respectively; " -"other codes (such as ``%i`` or ``%h`` for IntEnum) treat the enum member as " -"its mixed-in type." -msgstr "" -"Formatage de style % : ``%s`` et ``%r`` appellent respectivement les " -"méthodes :meth:`__str__` et :meth:`__repr__` de la classe :class:`Enum` ; " -"d'autres codes (tels que ``%i`` ou ``%h`` pour *IntEnum*) traitent le membre " -"de l’énumération comme son type mélangé." - -#: howto/enum.rst:917 -#, fuzzy -msgid "" -":ref:`Formatted string literals `, :meth:`str.format`, " -"and :func:`format` will use the enum's :meth:`~object.__str__` method." -msgstr "" -":ref:`Les littéraux de chaîne formatés `, :meth:`str.format` " -"et :func:`format` utilisent la méthode :meth:`__str__` de l'énumération." - -# suit un : -#: howto/enum.rst:922 -#, fuzzy -msgid "" -"Because :class:`IntEnum`, :class:`IntFlag`, and :class:`StrEnum` are " -"designed to be drop-in replacements for existing constants, " -"their :meth:`~object.__str__` method has been reset to their data " -"types' :meth:`~object.__str__` method." -msgstr "" -"étant donné que :class:`IntEnum`, :class:`IntFlag` et :class:`StrEnum` sont " -"conçus pour remplacer des constantes existantes, leur " -"méthode :meth:`__str__` a été réinitialisée à la méthode :meth:`__str__` de " -"leur type de donnée." - -#: howto/enum.rst:930 -#, fuzzy -msgid "When to use :meth:`~object.__new__` vs. :meth:`~object.__init__`" -msgstr "Utilisation de :meth:`__new__` ou de :meth:`__init__`" - -#: howto/enum.rst:932 -#, fuzzy -msgid "" -":meth:`~object.__new__` must be used whenever you want to customize the " -"actual value of the :class:`Enum` member. Any other modifications may go in " -"either :meth:`~object.__new__` or :meth:`~object.__init__`, " -"with :meth:`~object.__init__` being preferred." -msgstr "" -":meth:`__new__` doit être utilisée chaque fois que vous souhaitez " -"personnaliser la valeur réelle des membres d'une :class:`Enum`. Pour les " -"autres personnalisations, elles peuvent être définies dans :meth:`__new__` " -"ou :meth:`__init__`, avec une préférence pour :meth:`__init__`." - -#: howto/enum.rst:936 -msgid "" -"For example, if you want to pass several items to the constructor, but only " -"want one of them to be the value::" -msgstr "" -"Par exemple, si vous souhaitez passer plusieurs éléments au constructeur, " -"mais que vous souhaitez qu'un seul d'entre eux soit la valeur ::" - -#: howto/enum.rst:963 -msgid "" -"*Do not* call ``super().__new__()``, as the lookup-only ``__new__`` is the " -"one that is found; instead, use the data type directly." -msgstr "" - -#: howto/enum.rst:968 -msgid "Finer Points" -msgstr "Approfondissements" - -#: howto/enum.rst:971 -#, fuzzy -msgid "Supported ``__dunder__`` and ``_sunder_`` names" -msgstr "Noms de la forme ``__dunder__`` disponibles" - -#: howto/enum.rst:973 -msgid "" -"The supported ``__dunder__`` and ``_sunder_`` names can be found in " -"the :ref:`Enum API documentation `." -msgstr "" - -#: howto/enum.rst:977 -msgid "_Private__names" -msgstr "*_Private__names*" - -#: howto/enum.rst:979 -msgid "" -":ref:`Private names ` are not converted to enum " -"members, but remain normal attributes." -msgstr "" -":ref:`Les noms privés ` ne sont pas convertis en " -"membres de l'énumération, mais restent des attributs normaux." - -#: howto/enum.rst:986 -msgid "``Enum`` member type" -msgstr "Types des membres d'une ``Enum``" - -#: howto/enum.rst:988 -#, fuzzy -msgid "" -"Enum members are instances of their enum class, and are normally accessed as " -"``EnumClass.member``. In certain situations, such as writing custom enum " -"behavior, being able to access one member directly from another is useful, " -"and is supported; however, in order to avoid name clashes between member " -"names and attributes/methods from mixed-in classes, upper-case names are " -"strongly recommended." -msgstr "" -"Les membres d'une énumération sont des instances de leur classe *Enum* et " -"sont normalement accessibles en tant que ``ClasseEnum.membre``. Dans les " -"versions Python ``3.5`` à ``3.10``, vous pouviez accéder aux membres à " -"partir d'autres membres — cette pratique était déconseillée et dans " -"``3.11`` :class:`Enum` ne l'autorise pas ::" - -#: howto/enum.rst:999 -msgid "Creating members that are mixed with other data types" -msgstr "Création de membres mélangés avec d'autres types de données" - -#: howto/enum.rst:1001 -msgid "" -"When subclassing other data types, such as :class:`int` or :class:`str`, " -"with an :class:`Enum`, all values after the ``=`` are passed to that data " -"type's constructor. For example::" -msgstr "" -"Lorsque vous dérivez d'autres types de données, tels que :class:`int` " -"ou :class:`str`, avec une :class:`Enum`, toutes les valeurs après ``=`` sont " -"passées au constructeur de ce type de données. Par exemple ::" - -#: howto/enum.rst:1013 -msgid "Boolean value of ``Enum`` classes and members" -msgstr "Valeur booléenne des classes et membres ``Enum``" - -#: howto/enum.rst:1015 -msgid "" -"Enum classes that are mixed with non-:class:`Enum` types (such " -"as :class:`int`, :class:`str`, etc.) are evaluated according to the mixed-in " -"type's rules; otherwise, all members evaluate as :data:`True`. To make your " -"own enum's boolean evaluation depend on the member's value add the following " -"to your class::" -msgstr "" -"Les classes *Enum* mélangées avec des types non-:class:`Enum` (tels " -"que :class:`int`, :class:`str`, etc.) sont évaluées selon les règles du type " -"mélangé ; sinon, tous les membres sont évalués comme :data:`True`. Pour que " -"l'évaluation booléenne de votre propre énumération dépende de la valeur du " -"membre, ajoutez ce qui suit à votre classe ::" - -#: howto/enum.rst:1024 -msgid "Plain :class:`Enum` classes always evaluate as :data:`True`." -msgstr "" -"Les classes simples :class:`Enum` sont toujours évaluées comme :data:`True`." - -#: howto/enum.rst:1028 -msgid "``Enum`` classes with methods" -msgstr "Méthodes dans les classes ``Enum``" - -#: howto/enum.rst:1030 -msgid "" -"If you give your enum subclass extra methods, like the `Planet`_ class " -"below, those methods will show up in a :func:`dir` of the member, but not of " -"the class::" -msgstr "" -"Si vous dotez votre sous-classe énumération de méthodes supplémentaires, " -"comme la classe `Planet`_ ci-dessous, ces méthodes apparaissent dans " -"le :func:`dir` des membres, mais pas dans celui de la classe ::" - -#: howto/enum.rst:1041 -msgid "Combining members of ``Flag``" -msgstr "Combinaisons de membres de ``Flag``" - -#: howto/enum.rst:1043 -msgid "" -"Iterating over a combination of :class:`Flag` members will only return the " -"members that are comprised of a single bit::" -msgstr "" -"L'itération sur une combinaison de membres :class:`Flag` ne renvoie que les " -"membres dont un seul bit est à 1 ::" - -#: howto/enum.rst:1061 -msgid "``Flag`` and ``IntFlag`` minutia" -msgstr "Précisions sur ``Flag`` et ``IntFlag``" - -#: howto/enum.rst:1063 -msgid "Using the following snippet for our examples::" -msgstr "En utilisant l'extrait suivant pour nos exemples ::" - -#: howto/enum.rst:1074 -msgid "the following are true:" -msgstr "ce qui suit est vrai :" - -#: howto/enum.rst:1076 -msgid "single-bit flags are canonical" -msgstr "les membres dont un seul bit est à 1 sont canoniques ;" - -#: howto/enum.rst:1077 -msgid "multi-bit and zero-bit flags are aliases" -msgstr "ceux qui ont plusieurs bits à 1 ou aucun bit à 1 sont des synonymes ;" - -#: howto/enum.rst:1078 -msgid "only canonical flags are returned during iteration::" -msgstr "seuls les membres canoniques sont renvoyés pendant une itération ::" - -#: howto/enum.rst:1083 -msgid "" -"negating a flag or flag set returns a new flag/flag set with the " -"corresponding positive integer value::" -msgstr "" -"la négation d'un membre ou d'une composition de membres renvoie un nouveau " -"membre (ou composition de membres) avec la valeur entière positive " -"correspondante ::" - -#: howto/enum.rst:1092 -msgid "names of pseudo-flags are constructed from their members' names::" -msgstr "" -"les noms des pseudo-membres sont construits à partir des noms de leurs " -"membres ::" - -#: howto/enum.rst:1105 -msgid "multi-bit flags, aka aliases, can be returned from operations::" -msgstr "" -"les membres avec plusieurs bits à 1 (des alias) peuvent être renvoyés par " -"les opérations ::" - -#: howto/enum.rst:1116 -msgid "" -"membership / containment checking: zero-valued flags are always considered " -"to be contained::" -msgstr "" -"pour la vérification d'appartenance, les membres dont la valeur est 0 sont " -"toujours considérés comme étant membres ::" - -#: howto/enum.rst:1122 -msgid "" -"otherwise, only if all bits of one flag are in the other flag will True be " -"returned::" -msgstr "" -"sinon, seulement si tous les bits à 1 d'un membre sont aussi à 1 dans " -"l'autre membre, renvoie *True* ::" - -#: howto/enum.rst:1131 -msgid "" -"There is a new boundary mechanism that controls how out-of-range / invalid " -"bits are handled: ``STRICT``, ``CONFORM``, ``EJECT``, and ``KEEP``:" -msgstr "" -"Il existe un nouveau mécanisme de délimitation qui contrôle la façon dont " -"les bits hors plage/invalides sont gérés : ``STRICT``, ``CONFORM``, " -"``EJECT`` et ``KEEP`` :" - -#: howto/enum.rst:1134 -msgid "STRICT --> raises an exception when presented with invalid values" -msgstr "" -"*STRICT* --> lève une exception lorsqu'on lui présente des valeurs invalides" - -#: howto/enum.rst:1135 -msgid "CONFORM --> discards any invalid bits" -msgstr "*CONFORM* --> ignore les bits invalides" - -#: howto/enum.rst:1136 -msgid "EJECT --> lose Flag status and become a normal int with the given value" -msgstr "" -"*EJECT* --> la valeur présentée perd le statut de membre et devient un " -"entier normal" - -#: howto/enum.rst:1137 -msgid "KEEP --> keep the extra bits" -msgstr "*KEEP* --> garde les bits supplémentaires" - -#: howto/enum.rst:1139 -msgid "keeps Flag status and extra bits" -msgstr "garde le statut de membre avec les bits supplémentaires" - -#: howto/enum.rst:1140 -msgid "extra bits do not show up in iteration" -msgstr "les bits supplémentaires ne sont pas produits dans une itération" - -#: howto/enum.rst:1141 -msgid "extra bits do show up in repr() and str()" -msgstr "" -"les bits supplémentaires ne sont pas représentés par *repr()* et *str()*" - -#: howto/enum.rst:1143 -msgid "" -"The default for Flag is ``STRICT``, the default for ``IntFlag`` is " -"``EJECT``, and the default for ``_convert_`` is ``KEEP`` (see " -"``ssl.Options`` for an example of when ``KEEP`` is needed)." -msgstr "" -"La valeur par défaut pour *Flag* est ``STRICT``, la valeur par défaut pour " -"``IntFlag`` est ``EJECT`` et la valeur par défaut pour ``_convert_`` est " -"``KEEP`` (voir ``ssl.Options`` pour un exemple de cas où ``KEEP`` est " -"nécessaire)." - -#: howto/enum.rst:1151 -#, fuzzy -msgid "How are Enums and Flags different?" -msgstr "En quoi les énumérations sont-elles différentes ?" - -#: howto/enum.rst:1153 -msgid "" -"Enums have a custom metaclass that affects many aspects of both " -"derived :class:`Enum` classes and their instances (members)." -msgstr "" -"Les énumérations ont une métaclasse personnalisée qui modifie de nombreux " -"aspects des classes dérivées d':class:`Enum` et de leurs instances (membres)." - -#: howto/enum.rst:1158 -msgid "Enum Classes" -msgstr "Classes *Enum*" - -#: howto/enum.rst:1160 -#, fuzzy -msgid "" -"The :class:`EnumType` metaclass is responsible for providing " -"the :meth:`~object.__contains__`, :meth:`~object.__dir__`, :meth:`~object.__iter__` " -"and other methods that allow one to do things with an :class:`Enum` class " -"that fail on a typical class, such as ``list(Color)`` or ``some_enum_var in " -"Color``. :class:`EnumType` is responsible for ensuring that various other " -"methods on the final :class:`Enum` class are correct (such " -"as :meth:`~object.__new__`, :meth:`~object.__getnewargs__`, :meth:`~object.__str__` " -"and :meth:`~object.__repr__`)." -msgstr "" -"La métaclasse :class:`EnumType` est chargée de " -"fournir :meth:`__contains__`, :meth:`__dir__`, :meth:`__iter__` et d'autres " -"méthodes qui permettent de faire des choses avec une classe :class:`Enum` et " -"qui échouent sur une classe typique, telle que ``list(Color)`` ou " -"``une_variable_enum in Color``. :class:`EnumType` est chargée de s'assurer " -"que diverses autres méthodes de la classe finale :class:`Enum` sont " -"correctes (telles " -"que :meth:`__new__`, :meth:`__getnewargs__`, :meth:`__str__` " -"et :meth:`__repr__`)." - -#: howto/enum.rst:1169 -#, fuzzy -msgid "Flag Classes" -msgstr "Classes *Enum*" - -#: howto/enum.rst:1171 -msgid "" -"Flags have an expanded view of aliasing: to be canonical, the value of a " -"flag needs to be a power-of-two value, and not a duplicate name. So, in " -"addition to the :class:`Enum` definition of alias, a flag with no value " -"(a.k.a. ``0``) or with more than one power-of-two value (e.g. ``3``) is " -"considered an alias." -msgstr "" - -#: howto/enum.rst:1177 -msgid "Enum Members (aka instances)" -msgstr "Membres d'une *Enum* (les instances)" - -#: howto/enum.rst:1179 -#, fuzzy -msgid "" -"The most interesting thing about enum members is that they are " -"singletons. :class:`EnumType` creates them all while it is creating the enum " -"class itself, and then puts a custom :meth:`~object.__new__` in place to " -"ensure that no new ones are ever instantiated by returning only the existing " -"member instances." -msgstr "" -"Le plus intéressant à propos des membres d'une énumération est que ce sont " -"des singletons. :class:`EnumType` les crée tous pendant qu'il crée la classe " -"*enum* elle-même, puis met en place une méthode :meth:`__new__` " -"personnalisée pour s'assurer qu'aucun nouveau membre n'est jamais instancié " -"(en renvoyant uniquement les instances de membres existantes)." - -#: howto/enum.rst:1185 -msgid "Flag Members" -msgstr "" - -#: howto/enum.rst:1187 -msgid "" -"Flag members can be iterated over just like the :class:`Flag` class, and " -"only the canonical members will be returned. For example::" -msgstr "" - -#: howto/enum.rst:1193 -msgid "(Note that ``BLACK``, ``PURPLE``, and ``WHITE`` do not show up.)" -msgstr "" - -#: howto/enum.rst:1195 -msgid "" -"Inverting a flag member returns the corresponding positive value, rather " -"than a negative value --- for example::" -msgstr "" - -#: howto/enum.rst:1201 -msgid "" -"Flag members have a length corresponding to the number of power-of-two " -"values they contain. For example::" -msgstr "" - -#: howto/enum.rst:1211 -msgid "Enum Cookbook" -msgstr "" - -#: howto/enum.rst:1214 -msgid "" -"While :class:`Enum`, :class:`IntEnum`, :class:`StrEnum`, :class:`Flag`, " -"and :class:`IntFlag` are expected to cover the majority of use-cases, they " -"cannot cover them all. Here are recipes for some different types of " -"enumerations that can be used directly, or as examples for creating one's " -"own." -msgstr "" -":class:`Enum`, :class:`IntEnum`, :class:`StrEnum`, :class:`Flag` " -"et :class:`IntFlag` sont censées couvrir la majorité des cas d'utilisation, " -"mais elles ne peuvent pas tout couvrir. Voici quelques recettes pour " -"différents types d'énumérations qui peuvent être utilisées directement, ou " -"pour servir d'exemples afin de créer les vôtres." - -#: howto/enum.rst:1221 -msgid "Omitting values" -msgstr "Omission de valeurs" - -#: howto/enum.rst:1223 -msgid "" -"In many use-cases, one doesn't care what the actual value of an enumeration " -"is. There are several ways to define this type of simple enumeration:" -msgstr "" -"Dans de nombreux cas d'utilisation, on ne se soucie pas de la valeur réelle " -"d'une énumération. Il existe plusieurs manières de définir ce type " -"d'énumération simple :" - -#: howto/enum.rst:1226 -msgid "use instances of :class:`auto` for the value" -msgstr "utilisez des instances d':class:`auto` pour la valeur ;" - -#: howto/enum.rst:1227 -msgid "use instances of :class:`object` as the value" -msgstr "utilisez des instances d':class:`object` comme valeur ;" - -#: howto/enum.rst:1228 -msgid "use a descriptive string as the value" -msgstr "utilisez une chaîne de caractères descriptive comme valeur ;" - -#: howto/enum.rst:1229 -#, fuzzy -msgid "" -"use a tuple as the value and a custom :meth:`~object.__new__` to replace the " -"tuple with an :class:`int` value" -msgstr "" -"utilisez un *n*-uplet comme valeur et une :meth:`__new__` personnalisée pour " -"remplacer le *n*-uplet par une valeur :class:`int`." - -#: howto/enum.rst:1232 -msgid "" -"Using any of these methods signifies to the user that these values are not " -"important, and also enables one to add, remove, or reorder members without " -"having to renumber the remaining members." -msgstr "" -"L'utilisation de l'une de ces méthodes signifie au lecteur que ces valeurs " -"ne sont pas importantes et permet également d'ajouter, de supprimer ou de " -"réorganiser des membres sans avoir à renuméroter les autres membres." - -#: howto/enum.rst:1238 -msgid "Using :class:`auto`" -msgstr "Utilisation d':class:`auto`" - -#: howto/enum.rst:1240 -msgid "Using :class:`auto` would look like::" -msgstr "Voici un exemple où nous utilisons :class:`auto` ::" - -#: howto/enum.rst:1252 -msgid "Using :class:`object`" -msgstr "Utilisation d':class:`object`" - -#: howto/enum.rst:1254 -msgid "Using :class:`object` would look like::" -msgstr "Voici un exemple où nous utilisons :class:`object` ::" - -#: howto/enum.rst:1264 -#, fuzzy -msgid "" -"This is also a good example of why you might want to write your " -"own :meth:`~object.__repr__`::" -msgstr "" -"Voici un bon exemple montrant pourquoi vouloir écrire sa " -"propre :meth:`__repr__` ::" - -#: howto/enum.rst:1280 -msgid "Using a descriptive string" -msgstr "Utilisation d'une chaîne de caractères descriptive" - -#: howto/enum.rst:1282 -msgid "Using a string as the value would look like::" -msgstr "Voici un exemple où nous utilisons une chaîne de caractères ::" - -#: howto/enum.rst:1294 -#, fuzzy -msgid "Using a custom :meth:`~object.__new__`" -msgstr "Utilisation d'une méthode :meth:`__new__` personnalisée" - -#: howto/enum.rst:1296 -#, fuzzy -msgid "Using an auto-numbering :meth:`~object.__new__` would look like::" -msgstr "Cette méthode :meth:`__new__` numérote automatiquement ::" - -#: howto/enum.rst:1313 -msgid "" -"To make a more general purpose ``AutoNumber``, add ``*args`` to the " -"signature::" -msgstr "" -"Pour créer une ``AutoNumber`` plus générale, ajoutons ``*args`` à la " -"signature ::" - -#: howto/enum.rst:1323 -msgid "" -"Then when you inherit from ``AutoNumber`` you can write your own " -"``__init__`` to handle any extra arguments::" -msgstr "" -"Ensuite, lorsque nous héritons de ``AutoNumber``, nous pouvons écrire notre " -"propre ``__init__`` pour gérer les arguments supplémentaires ::" - -#: howto/enum.rst:1342 -#, fuzzy -msgid "" -"The :meth:`~object.__new__` method, if defined, is used during creation of " -"the Enum members; it is then replaced by Enum's :meth:`~object.__new__` " -"which is used after class creation for lookup of existing members." -msgstr "" -"la méthode :meth:`__new__`, si elle est définie, est utilisée lors de la " -"création des membres de l'énumération ; elle est ensuite remplacée " -"par :meth:`__new__` de l'*Enum* qui est utilisée après la création de la " -"classe pour la recherche des membres existants." - -#: howto/enum.rst:1348 -msgid "" -"*Do not* call ``super().__new__()``, as the lookup-only ``__new__`` is the " -"one that is found; instead, use the data type directly -- e.g.::" -msgstr "" - -#: howto/enum.rst:1355 -msgid "OrderedEnum" -msgstr "Énumération ordonnée" - -#: howto/enum.rst:1357 -msgid "" -"An ordered enumeration that is not based on :class:`IntEnum` and so " -"maintains the normal :class:`Enum` invariants (such as not being comparable " -"to other enumerations)::" -msgstr "" -"Voici une énumération ordonnée qui n'est pas basée sur :class:`IntEnum` et " -"maintient donc les invariants normaux d':class:`Enum` (comme ne pas pouvoir " -"être comparée à d'autres énumérations) ::" - -#: howto/enum.rst:1391 -msgid "DuplicateFreeEnum" -msgstr "Énumération sans doublon" - -# name est bien corrigé par value dans upstream -#: howto/enum.rst:1393 -#, fuzzy -msgid "" -"Raises an error if a duplicate member value is found instead of creating an " -"alias::" -msgstr "" -"Lève une erreur si plusieurs membres ont la même valeur, au lieu de créer un " -"synonyme ::" - -# suit un : -#: howto/enum.rst:1418 -msgid "" -"This is a useful example for subclassing Enum to add or change other " -"behaviors as well as disallowing aliases. If the only desired change is " -"disallowing aliases, the :func:`unique` decorator can be used instead." -msgstr "" -"c'est un exemple utile de dérivation d'*Enum* pour ajouter ou modifier " -"d'autres comportements ainsi que pour interdire les synonymes. Si le seul " -"changement souhaité est l'interdiction des synonymes, le " -"décorateur :func:`unique` peut être utilisé à la place." - -#: howto/enum.rst:1425 -msgid "MultiValueEnum" -msgstr "" - -#: howto/enum.rst:1427 -msgid "Supports having more than one value per member::" -msgstr "" - -#: howto/enum.rst:1448 -msgid "Planet" -msgstr "Planète" - -#: howto/enum.rst:1450 -#, fuzzy -msgid "" -"If :meth:`~object.__new__` or :meth:`~object.__init__` is defined, the value " -"of the enum member will be passed to those methods::" -msgstr "" -"Si :meth:`__new__` ou :meth:`__init__` est définie, la valeur du membre de " -"l'énumération est passée à ces méthodes ::" - -#: howto/enum.rst:1479 -msgid "TimePeriod" -msgstr "Intervalle de temps" - -#: howto/enum.rst:1481 -#, fuzzy -msgid "An example to show the :attr:`~Enum._ignore_` attribute in use::" -msgstr "Exemple pour montrer l'utilisation de l'attribut :attr:`_ignore_` ::" - -#: howto/enum.rst:1500 -msgid "Subclassing EnumType" -msgstr "Dérivations d'*EnumType*" - -#: howto/enum.rst:1502 -msgid "" -"While most enum needs can be met by customizing :class:`Enum` subclasses, " -"either with class decorators or custom functions, :class:`EnumType` can be " -"subclassed to provide a different Enum experience." -msgstr "" -"Alors que la plupart des besoins d'énumérations peuvent être satisfaits en " -"sous-classant :class:`Enum`, avec des décorateurs de classe ou des fonctions " -"personnalisées, :class:`EnumType` peut être dérivée pour créer des " -"énumérations vraiment différentes." - -#, fuzzy -#~ msgid "" -#~ ":attr:`~enum.EnumType.__members__` is a read-only ordered mapping of " -#~ "``member_name``:``member`` items. It is only available on the class." -#~ msgstr "" -#~ ":attr:`__members__` est un dictionnaire ordonné d'éléments en lecture " -#~ "seule de la forme ``nom_du_membre`` : ``membre``. Il n'est disponible que " -#~ "dans la classe." - -#, fuzzy -#~ msgid "" -#~ ":meth:`~object.__new__`, if specified, must create and return the enum " -#~ "members; it is also a very good idea to set the " -#~ "member's :attr:`~Enum._value_` appropriately. Once all the members are " -#~ "created it is no longer used." -#~ msgstr "" -#~ "La méthode :meth:`__new__`, si elle est définie, doit créer et renvoyer " -#~ "les membres de l'énumération ; affecter correctement " -#~ "l'attribut :attr:`_value_` du membre est également conseillé. Une fois " -#~ "que tous les membres ont été créés, cette méthode n'est plus utilisée." - -#~ msgid "Supported ``_sunder_`` names" -#~ msgstr "Noms de la forme ``_sunder_`` disponibles" - -#, fuzzy -#~ msgid ":attr:`~Enum._name_` -- name of the member" -#~ msgstr "``_name_`` — nom du membre" - -#, fuzzy -#~ msgid "" -#~ ":attr:`~Enum._value_` -- value of the member; can be set in ``__new__``" -#~ msgstr "" -#~ "``_value_`` — valeur du membre ; il est possible d'y accéder et de la " -#~ "modifier dans ``__new__``" - -#, fuzzy -#~ msgid "" -#~ ":meth:`~Enum._missing_` -- a lookup function used when a value is not " -#~ "found; may be overridden" -#~ msgstr "" -#~ "``_missing_`` — fonction de recherche qui est appelée quand la valeur " -#~ "n'est pas trouvée ; elle peut être surchargée" - -#, fuzzy -#~ msgid "" -#~ ":attr:`~Enum._ignore_` -- a list of names, either as a :class:`list` or " -#~ "a :class:`str`, that will not be transformed into members, and will be " -#~ "removed from the final class" -#~ msgstr "" -#~ "``_ignore_`` — liste de noms, sous la forme d'une :func:`list` ou " -#~ "d'une :func:`str`, qui ne sont pas convertis en membres et sont supprimés " -#~ "de la classe résultante" - -#, fuzzy -#~ msgid "" -#~ ":meth:`~Enum._generate_next_value_` -- used to get an appropriate value " -#~ "for an enum member; may be overridden" -#~ msgstr "" -#~ "``_generate_next_value_`` — utilisé par l'`API fonctionnelle`_ et " -#~ "par :class:`auto` pour obtenir une valeur appropriée pour un membre de " -#~ "l'énumération ; elle peut être surchargée" - -# suit un : -#, fuzzy -#~ msgid "" -#~ "For standard :class:`Enum` classes the next value chosen is the highest " -#~ "value seen incremented by one." -#~ msgstr "" -#~ "pour les classes standard :class:`Enum`, la valeur choisie suivante est " -#~ "la dernière valeur vue incrémentée de un." - -#, fuzzy -#~ msgid "" -#~ "For :class:`Flag` classes the next value chosen will be the next highest " -#~ "power-of-two." -#~ msgstr "" -#~ "Pour les classes :class:`Flag`, la valeur choisie suivante est la " -#~ "prochaine puissance de deux la plus élevée, quelle que soit la dernière " -#~ "valeur vue." - -#~ msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" -#~ msgstr "``_missing_``, ``_order_``, ``_generate_next_value_``" - -#~ msgid "``_ignore_``" -#~ msgstr "``_ignore_``" - -#, fuzzy -#~ msgid "" -#~ "To help keep Python 2 / Python 3 code in sync an :attr:`~Enum._order_` " -#~ "attribute can be provided. It will be checked against the actual order " -#~ "of the enumeration and raise an error if the two do not match::" -#~ msgstr "" -#~ "Pour aider à garder le code Python 2 / Python 3 synchronisé, un " -#~ "attribut :attr:`_order_` peut être fourni. Il est vérifié par rapport à " -#~ "l'ordre réel de l'énumération et lève une erreur si les deux ne " -#~ "correspondent pas ::" - -# suit un : -#, fuzzy -#~ msgid "" -#~ "In Python 2 code the :attr:`~Enum._order_` attribute is necessary as " -#~ "definition order is lost before it can be recorded." -#~ msgstr "" -#~ "dans le code Python 2, l'attribut :attr:`_order_` est nécessaire car " -#~ "l'ordre de définition est perdu avant de pouvoir être enregistré." - -#~ msgid "" -#~ "``_order_`` -- used in Python 2/3 code to ensure member order is " -#~ "consistent (class attribute, removed during class creation)" -#~ msgstr "" -#~ "``_order_`` — utilisé en Python 2 ou 3 pour s'assurer que l'ordre des " -#~ "membres est cohérent (attribut de classe, supprimé durant la création de " -#~ "la classe)" - -#~ msgid "value" -#~ msgstr "*value*" - -#~ msgid "names" -#~ msgstr "*names*" - -#~ msgid "module" -#~ msgstr "*module*" - -#~ msgid "qualname" -#~ msgstr "*qualname*" - -#~ msgid "type" -#~ msgstr "*type*" - -#~ msgid "start" -#~ msgstr "*start*" diff --git a/howto/free-threading-extensions.po b/howto/free-threading-extensions.po deleted file mode 100644 index a683f3439c..0000000000 --- a/howto/free-threading-extensions.po +++ /dev/null @@ -1,659 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: howto/free-threading-extensions.rst:7 -msgid "C API Extension Support for Free Threading" -msgstr "" - -#: howto/free-threading-extensions.rst:9 -msgid "" -"Starting with the 3.13 release, CPython has support for running with " -"the :term:`global interpreter lock` (GIL) disabled in a configuration " -"called :term:`free threading`. This document describes how to adapt C API " -"extensions to support free threading." -msgstr "" - -#: howto/free-threading-extensions.rst:16 -msgid "Identifying the Free-Threaded Build in C" -msgstr "" - -#: howto/free-threading-extensions.rst:18 -msgid "" -"The CPython C API exposes the ``Py_GIL_DISABLED`` macro: in the free-" -"threaded build it's defined to ``1``, and in the regular build it's not " -"defined. You can use it to enable code that only runs under the free-" -"threaded build::" -msgstr "" - -#: howto/free-threading-extensions.rst:28 -msgid "" -"On Windows, this macro is not defined automatically, but must be specified " -"to the compiler when building. The :func:`sysconfig.get_config_var` function " -"can be used to determine whether the current running interpreter had the " -"macro defined." -msgstr "" - -#: howto/free-threading-extensions.rst:35 -msgid "Module Initialization" -msgstr "" - -#: howto/free-threading-extensions.rst:37 -msgid "" -"Extension modules need to explicitly indicate that they support running with " -"the GIL disabled; otherwise importing the extension will raise a warning and " -"enable the GIL at runtime." -msgstr "" - -#: howto/free-threading-extensions.rst:41 -msgid "" -"There are two ways to indicate that an extension module supports running " -"with the GIL disabled depending on whether the extension uses multi-phase or " -"single-phase initialization." -msgstr "" - -#: howto/free-threading-extensions.rst:46 -msgid "Multi-Phase Initialization" -msgstr "" - -#: howto/free-threading-extensions.rst:48 -msgid "" -"Extensions that use :ref:`multi-phase initialization ` (functions " -"like :c:func:`PyModuleDef_Init`, :c:func:`PyModExport_* " -"` export hook, :c:func:`PyModule_FromSlotsAndSpec`) " -"should add a :c:data:`Py_mod_gil` slot in the module definition. If your " -"extension supports older versions of CPython, you should guard the slot with " -"a :c:data:`PY_VERSION_HEX` check." -msgstr "" - -#: howto/free-threading-extensions.rst:68 -msgid "Single-Phase Initialization" -msgstr "" - -#: howto/free-threading-extensions.rst:70 -msgid "" -"Extensions that use legacy :ref:`single-phase initialization ` (that is, :c:func:`PyModule_Create`) should " -"call :c:func:`PyUnstable_Module_SetGIL` to indicate that they support " -"running with the GIL disabled. The function is only defined in the free-" -"threaded build, so you should guard the call with ``#ifdef Py_GIL_DISABLED`` " -"to avoid compilation errors in the regular build." -msgstr "" - -#: howto/free-threading-extensions.rst:98 -msgid "General API Guidelines" -msgstr "" - -#: howto/free-threading-extensions.rst:100 -msgid "Most of the C API is thread-safe, but there are some exceptions." -msgstr "" - -#: howto/free-threading-extensions.rst:102 -msgid "" -"**Struct Fields**: Accessing fields in Python C API objects or structs " -"directly is not thread-safe if the field may be concurrently modified." -msgstr "" - -#: howto/free-threading-extensions.rst:104 -msgid "" -"**Macros**: Accessor macros " -"like :c:macro:`PyList_GET_ITEM`, :c:macro:`PyList_SET_ITEM`, and macros " -"like :c:macro:`PySequence_Fast_GET_SIZE` that use the object returned " -"by :c:func:`PySequence_Fast` do not perform any error checking or locking. " -"These macros are not thread-safe if the container object may be modified " -"concurrently." -msgstr "" - -#: howto/free-threading-extensions.rst:110 -msgid "" -"**Borrowed References**: C API functions that return :term:`borrowed " -"references ` may not be thread-safe if the containing " -"object is modified concurrently. See the section on :ref:`borrowed " -"references ` for more information." -msgstr "" - -#: howto/free-threading-extensions.rst:117 -msgid "Container Thread Safety" -msgstr "" - -#: howto/free-threading-extensions.rst:119 -msgid "" -"Containers like :c:struct:`PyListObject`, :c:struct:`PyDictObject`, " -"and :c:struct:`PySetObject` perform internal locking in the free-threaded " -"build. For example, the :c:func:`PyList_Append` will lock the list before " -"appending an item." -msgstr "" - -#: howto/free-threading-extensions.rst:127 -msgid "``PyDict_Next``" -msgstr "" - -#: howto/free-threading-extensions.rst:129 -msgid "" -"A notable exception is :c:func:`PyDict_Next`, which does not lock the " -"dictionary. You should use :c:macro:`Py_BEGIN_CRITICAL_SECTION` to protect " -"the dictionary while iterating over it if the dictionary may be concurrently " -"modified::" -msgstr "" - -#: howto/free-threading-extensions.rst:144 -msgid "Borrowed References" -msgstr "" - -#: howto/free-threading-extensions.rst:148 -msgid "" -"Some C API functions return :term:`borrowed references `. These APIs are not thread-safe if the containing object is " -"modified concurrently. For example, it's not safe to " -"use :c:func:`PyList_GetItem` if the list may be modified concurrently." -msgstr "" - -#: howto/free-threading-extensions.rst:153 -msgid "" -"The following table lists some borrowed reference APIs and their " -"replacements that return :term:`strong references `." -msgstr "" - -#: howto/free-threading-extensions.rst:157 -msgid "Borrowed reference API" -msgstr "" - -#: howto/free-threading-extensions.rst:157 -msgid "Strong reference API" -msgstr "" - -#: howto/free-threading-extensions.rst:159 -msgid ":c:func:`PyList_GetItem`" -msgstr "" - -#: howto/free-threading-extensions.rst:159 -#: howto/free-threading-extensions.rst:161 -msgid ":c:func:`PyList_GetItemRef`" -msgstr "" - -#: howto/free-threading-extensions.rst:161 -msgid ":c:func:`PyList_GET_ITEM`" -msgstr "" - -#: howto/free-threading-extensions.rst:163 -msgid ":c:func:`PyDict_GetItem`" -msgstr "" - -#: howto/free-threading-extensions.rst:163 -#: howto/free-threading-extensions.rst:165 -msgid ":c:func:`PyDict_GetItemRef`" -msgstr "" - -#: howto/free-threading-extensions.rst:165 -msgid ":c:func:`PyDict_GetItemWithError`" -msgstr "" - -#: howto/free-threading-extensions.rst:167 -msgid ":c:func:`PyDict_GetItemString`" -msgstr "" - -#: howto/free-threading-extensions.rst:167 -msgid ":c:func:`PyDict_GetItemStringRef`" -msgstr "" - -#: howto/free-threading-extensions.rst:169 -msgid ":c:func:`PyDict_SetDefault`" -msgstr "" - -#: howto/free-threading-extensions.rst:169 -msgid ":c:func:`PyDict_SetDefaultRef`" -msgstr "" - -#: howto/free-threading-extensions.rst:171 -msgid ":c:func:`PyDict_Next`" -msgstr "" - -#: howto/free-threading-extensions.rst:171 -msgid "none (see :ref:`PyDict_Next`)" -msgstr "" - -#: howto/free-threading-extensions.rst:173 -msgid ":c:func:`!PyWeakref_GetObject`" -msgstr "" - -#: howto/free-threading-extensions.rst:173 -#: howto/free-threading-extensions.rst:175 -msgid ":c:func:`PyWeakref_GetRef`" -msgstr "" - -#: howto/free-threading-extensions.rst:175 -msgid ":c:func:`!PyWeakref_GET_OBJECT`" -msgstr "" - -#: howto/free-threading-extensions.rst:177 -msgid ":c:func:`PyImport_AddModule`" -msgstr "" - -#: howto/free-threading-extensions.rst:177 -msgid ":c:func:`PyImport_AddModuleRef`" -msgstr "" - -#: howto/free-threading-extensions.rst:179 -msgid ":c:func:`PyCell_GET`" -msgstr "" - -#: howto/free-threading-extensions.rst:179 -msgid ":c:func:`PyCell_Get`" -msgstr "" - -#: howto/free-threading-extensions.rst:182 -msgid "" -"Not all APIs that return borrowed references are problematic. For " -"example, :c:func:`PyTuple_GetItem` is safe because tuples are immutable. " -"Similarly, not all uses of the above APIs are problematic. For " -"example, :c:func:`PyDict_GetItem` is often used for parsing keyword argument " -"dictionaries in function calls; those keyword argument dictionaries are " -"effectively private (not accessible by other threads), so using borrowed " -"references in that context is safe." -msgstr "" - -#: howto/free-threading-extensions.rst:190 -msgid "" -"Some of these functions were added in Python 3.13. You can use the " -"`pythoncapi-compat `_ package " -"to provide implementations of these functions for older Python versions." -msgstr "" - -#: howto/free-threading-extensions.rst:198 -msgid "Memory Allocation APIs" -msgstr "" - -#: howto/free-threading-extensions.rst:200 -msgid "" -"Python's memory management C API provides functions in three " -"different :ref:`allocation domains `: \"raw\", \"mem\", " -"and \"object\". For thread-safety, the free-threaded build requires that " -"only Python objects are allocated using the object domain, and that all " -"Python objects are allocated using that domain. This differs from the prior " -"Python versions, where this was only a best practice and not a hard " -"requirement." -msgstr "" - -#: howto/free-threading-extensions.rst:209 -msgid "" -"Search for uses of :c:func:`PyObject_Malloc` in your extension and check " -"that the allocated memory is used for Python objects. " -"Use :c:func:`PyMem_Malloc` to allocate buffers instead " -"of :c:func:`PyObject_Malloc`." -msgstr "" - -#: howto/free-threading-extensions.rst:216 -msgid "Thread State and GIL APIs" -msgstr "" - -#: howto/free-threading-extensions.rst:218 -msgid "" -"Python provides a set of functions and macros to manage thread state and the " -"GIL, such as:" -msgstr "" - -#: howto/free-threading-extensions.rst:221 -msgid "" -":c:func:`PyThreadState_Ensure`, :c:func:`PyThreadState_EnsureFromView`, " -"and :c:func:`PyThreadState_Release`" -msgstr "" - -#: howto/free-threading-extensions.rst:223 -msgid ":c:func:`PyGILState_Ensure` and :c:func:`PyGILState_Release`" -msgstr "" - -#: howto/free-threading-extensions.rst:224 -msgid ":c:func:`PyEval_SaveThread` and :c:func:`PyEval_RestoreThread`" -msgstr "" - -#: howto/free-threading-extensions.rst:225 -msgid ":c:macro:`Py_BEGIN_ALLOW_THREADS` and :c:macro:`Py_END_ALLOW_THREADS`" -msgstr "" - -#: howto/free-threading-extensions.rst:227 -msgid "" -"These functions should still be used in the free-threaded build to manage " -"thread state even when the :term:`GIL` is disabled. For example, if you " -"create a thread outside of Python, you must " -"call :c:func:`PyThreadState_Ensure` before calling into the Python API to " -"ensure that the thread has a valid Python thread state." -msgstr "" - -#: howto/free-threading-extensions.rst:233 -msgid "" -"You should continue to call :c:func:`PyEval_SaveThread` " -"or :c:macro:`Py_BEGIN_ALLOW_THREADS` around blocking operations, such as I/O " -"or lock acquisitions, to allow other threads to run the :term:`cyclic " -"garbage collector `." -msgstr "" - -#: howto/free-threading-extensions.rst:240 -msgid "Protecting Internal Extension State" -msgstr "" - -#: howto/free-threading-extensions.rst:242 -msgid "" -"Your extension may have internal state that was previously protected by the " -"GIL. You may need to add locking to protect this state. The approach will " -"depend on your extension, but some common patterns include:" -msgstr "" - -#: howto/free-threading-extensions.rst:246 -msgid "" -"**Caches**: global caches are a common source of shared state. Consider " -"using a lock to protect the cache or disabling it in the free-threaded build " -"if the cache is not critical for performance." -msgstr "" - -#: howto/free-threading-extensions.rst:249 -msgid "" -"**Global State**: global state may need to be protected by a lock or moved " -"to thread local storage. C11 and C++11 provide the ``thread_local`` or " -"``_Thread_local`` for `thread-local storage `_." -msgstr "" - -#: howto/free-threading-extensions.rst:256 -msgid "Critical Sections" -msgstr "" - -#: howto/free-threading-extensions.rst:260 -msgid "" -"In the free-threaded build, CPython provides a mechanism called \"critical " -"sections\" to protect data that would otherwise be protected by the GIL. " -"While extension authors may not interact with the internal critical section " -"implementation directly, understanding their behavior is crucial when using " -"certain C API functions or managing shared state in the free-threaded build." -msgstr "" - -#: howto/free-threading-extensions.rst:267 -msgid "What Are Critical Sections?" -msgstr "" - -#: howto/free-threading-extensions.rst:269 -msgid "" -"Conceptually, critical sections act as a deadlock avoidance layer built on " -"top of simple mutexes. Each thread maintains a stack of active critical " -"sections. When a thread needs to acquire a lock associated with a critical " -"section (e.g., implicitly when calling a thread-safe C API function " -"like :c:func:`PyDict_SetItem`, or explicitly using macros), it attempts to " -"acquire the underlying mutex." -msgstr "" - -#: howto/free-threading-extensions.rst:277 -msgid "Using Critical Sections" -msgstr "" - -#: howto/free-threading-extensions.rst:279 -msgid "The primary APIs for using critical sections are:" -msgstr "" - -#: howto/free-threading-extensions.rst:281 -msgid "" -":c:macro:`Py_BEGIN_CRITICAL_SECTION` and :c:macro:`Py_END_CRITICAL_SECTION` " -"- For locking a single object" -msgstr "" - -#: howto/free-threading-extensions.rst:284 -msgid "" -":c:macro:`Py_BEGIN_CRITICAL_SECTION2` " -"and :c:macro:`Py_END_CRITICAL_SECTION2` - For locking two objects " -"simultaneously" -msgstr "" - -#: howto/free-threading-extensions.rst:287 -msgid "" -"These macros must be used in matching pairs and must appear in the same C " -"scope, since they establish a new local scope. These macros are no-ops in " -"non-free-threaded builds, so they can be safely added to code that needs to " -"support both build types." -msgstr "" - -#: howto/free-threading-extensions.rst:292 -msgid "" -"A common use of a critical section would be to lock an object while " -"accessing an internal attribute of it. For example, if an extension type " -"has an internal count field, you could use a critical section while reading " -"or writing that field::" -msgstr "" - -#: howto/free-threading-extensions.rst:311 -msgid "How Critical Sections Work" -msgstr "" - -#: howto/free-threading-extensions.rst:313 -msgid "" -"Unlike traditional locks, critical sections do not guarantee exclusive " -"access throughout their entire duration. If a thread would block while " -"holding a critical section (e.g., by acquiring another lock or performing I/" -"O), the critical section is temporarily suspended—all locks are released—and " -"then resumed when the blocking operation completes." -msgstr "" - -#: howto/free-threading-extensions.rst:319 -msgid "" -"This behavior is similar to what happens with the GIL when a thread makes a " -"blocking call. The key differences are:" -msgstr "" - -#: howto/free-threading-extensions.rst:322 -msgid "Critical sections operate on a per-object basis rather than globally" -msgstr "" - -#: howto/free-threading-extensions.rst:324 -msgid "" -"Critical sections follow a stack discipline within each thread (the " -"\"begin\" and \"end\" macros enforce this since they must be paired and " -"within the same scope)" -msgstr "" - -#: howto/free-threading-extensions.rst:327 -msgid "" -"Critical sections automatically release and reacquire locks around potential " -"blocking operations" -msgstr "" - -#: howto/free-threading-extensions.rst:331 -msgid "Deadlock Avoidance" -msgstr "" - -#: howto/free-threading-extensions.rst:333 -msgid "Critical sections help avoid deadlocks in two ways:" -msgstr "" - -#: howto/free-threading-extensions.rst:335 -msgid "" -"If a thread tries to acquire a lock that's already held by another thread, " -"it first suspends all of its active critical sections, temporarily releasing " -"their locks" -msgstr "" - -#: howto/free-threading-extensions.rst:339 -msgid "" -"When the blocking operation completes, only the top-most critical section is " -"reacquired first" -msgstr "" - -#: howto/free-threading-extensions.rst:342 -msgid "" -"This means you cannot rely on nested critical sections to lock multiple " -"objects at once, as the inner critical section may suspend the outer ones. " -"Instead, use :c:macro:`Py_BEGIN_CRITICAL_SECTION2` to lock two objects " -"simultaneously." -msgstr "" - -#: howto/free-threading-extensions.rst:346 -msgid "" -"Note that the locks described above are only :c:type:`PyMutex` based locks. " -"The critical section implementation does not know about or affect other " -"locking mechanisms that might be in use, like POSIX mutexes. Also note that " -"while blocking on any :c:type:`PyMutex` causes the critical sections to be " -"suspended, only the mutexes that are part of the critical sections are " -"released. If :c:type:`PyMutex` is used without a critical section, it will " -"not be released and therefore does not get the same deadlock avoidance." -msgstr "" - -#: howto/free-threading-extensions.rst:355 -msgid "Important Considerations" -msgstr "" - -#: howto/free-threading-extensions.rst:357 -msgid "" -"Critical sections may temporarily release their locks, allowing other " -"threads to modify the protected data. Be careful about making assumptions " -"about the state of the data after operations that might block." -msgstr "" - -#: howto/free-threading-extensions.rst:361 -msgid "" -"Because locks can be temporarily released (suspended), entering a critical " -"section does not guarantee exclusive access to the protected resource " -"throughout the section's duration. If code within a critical section calls " -"another function that blocks (e.g., acquires another lock, performs blocking " -"I/O), all locks held by the thread via critical sections will be released. " -"This is similar to how the GIL can be released during blocking calls." -msgstr "" - -#: howto/free-threading-extensions.rst:368 -msgid "" -"Only the lock(s) associated with the most recently entered (top-most) " -"critical section are guaranteed to be held at any given time. Locks for " -"outer, nested critical sections might have been suspended." -msgstr "" - -#: howto/free-threading-extensions.rst:372 -msgid "" -"You can lock at most two objects simultaneously with these APIs. If you need " -"to lock more objects, you'll need to restructure your code." -msgstr "" - -#: howto/free-threading-extensions.rst:375 -msgid "" -"While critical sections will not deadlock if you attempt to lock the same " -"object twice, they are less efficient than purpose-built reentrant locks for " -"this use case." -msgstr "" - -#: howto/free-threading-extensions.rst:379 -msgid "" -"When using :c:macro:`Py_BEGIN_CRITICAL_SECTION2`, the order of the objects " -"doesn't affect correctness (the implementation handles deadlock avoidance), " -"but it's good practice to always lock objects in a consistent order." -msgstr "" - -#: howto/free-threading-extensions.rst:383 -msgid "" -"Remember that the critical section macros are primarily for protecting " -"access to *Python objects* that might be involved in internal CPython " -"operations susceptible to the deadlock scenarios described above. For " -"protecting purely internal extension state, standard mutexes or other " -"synchronization primitives might be more appropriate." -msgstr "" - -#: howto/free-threading-extensions.rst:392 -msgid "Per-Object Locks (``ob_mutex``)" -msgstr "" - -#: howto/free-threading-extensions.rst:394 -msgid "" -"In the free-threaded build, each Python object contains " -"a :c:member:`~PyObject.ob_mutex` field of type :c:type:`PyMutex`. This " -"mutex is **reserved for use by the critical section API** " -"(:c:macro:`Py_BEGIN_CRITICAL_SECTION` / :c:macro:`Py_END_CRITICAL_SECTION`)." -msgstr "" - -#: howto/free-threading-extensions.rst:401 -msgid "" -"Do **not** lock ``ob_mutex`` directly with ``PyMutex_Lock(&obj->ob_mutex)``. " -"Mixing direct ``PyMutex_Lock`` calls with the critical section API on the " -"same mutex can cause deadlocks." -msgstr "" - -#: howto/free-threading-extensions.rst:405 -msgid "" -"Even if your own code never uses critical sections on a particular object " -"type, **CPython internals may use the critical section API on any Python " -"object**." -msgstr "" - -#: howto/free-threading-extensions.rst:408 -msgid "" -"If your extension type needs its own lock, add a separate :c:type:`PyMutex` " -"field (or another synchronization primitive) to your object " -"struct. :c:type:`PyMutex` is very lightweight, so there is negligible cost " -"to having an additional one." -msgstr "" - -#: howto/free-threading-extensions.rst:415 -msgid "Building Extensions for the Free-Threaded Build" -msgstr "" - -#: howto/free-threading-extensions.rst:417 -msgid "" -"C API extensions need to be built specifically for the free-threaded build. " -"The wheels, shared libraries, and binaries are indicated by a ``t`` suffix." -msgstr "" - -#: howto/free-threading-extensions.rst:420 -msgid "" -"`pypa/manylinux `_ supports the free-" -"threaded build, with the ``t`` suffix, such as ``python3.14t``." -msgstr "" - -#: howto/free-threading-extensions.rst:422 -msgid "" -"`pypa/cibuildwheel `_ supports " -"building wheels for the free-threaded build of Python 3.14 and newer." -msgstr "" - -#: howto/free-threading-extensions.rst:426 -msgid "Limited C API and Stable ABI" -msgstr "" - -#: howto/free-threading-extensions.rst:428 -msgid "" -"The free-threaded build does not currently support the :ref:`Limited C API " -"` or the stable ABI. If you use `setuptools `_ to build your extension and " -"currently set ``py_limited_api=True`` you can use ``py_limited_api=not " -"sysconfig.get_config_var(\"Py_GIL_DISABLED\")`` to opt out of the limited " -"API when building with the free-threaded build." -msgstr "" - -#: howto/free-threading-extensions.rst:436 -msgid "" -"You will need to build separate wheels specifically for the free-threaded " -"build. If you currently use the stable ABI, you can continue to build a " -"single wheel for multiple non-free-threaded Python versions." -msgstr "" - -#: howto/free-threading-extensions.rst:442 -msgid "Windows" -msgstr "Windows" - -#: howto/free-threading-extensions.rst:444 -msgid "" -"Due to a limitation of the official Windows installer, you will need to " -"manually define ``Py_GIL_DISABLED=1`` when building extensions from source." -msgstr "" - -#: howto/free-threading-extensions.rst:449 -msgid "" -"`Porting Extension Modules to Support Free-Threading `_: A community-maintained porting guide for " -"extension authors." -msgstr "" diff --git a/howto/free-threading-python.po b/howto/free-threading-python.po deleted file mode 100644 index 247ef6de78..0000000000 --- a/howto/free-threading-python.po +++ /dev/null @@ -1,453 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: howto/free-threading-python.rst:5 -msgid "Python support for free threading" -msgstr "" - -#: howto/free-threading-python.rst:7 -msgid "" -"Starting with the 3.13 release, CPython has support for a build of Python " -"called :term:`free threading` where the :term:`global interpreter lock` " -"(GIL) is disabled. Free-threaded execution allows for full utilization of " -"the available processing power by running threads in parallel on available " -"CPU cores. While not all software will benefit from this automatically, " -"programs designed with threading in mind will run faster on multi-core " -"hardware." -msgstr "" - -#: howto/free-threading-python.rst:14 -msgid "" -"Some third-party packages, in particular ones with an :term:`extension " -"module`, may not be ready for use in a free-threaded build, and will re-" -"enable the :term:`GIL`." -msgstr "" - -#: howto/free-threading-python.rst:18 -msgid "" -"This document describes the implications of free threading for Python code. " -"See :ref:`freethreading-extensions-howto` for information on how to write C " -"extensions that support the free-threaded build." -msgstr "" - -#: howto/free-threading-python.rst:24 -msgid "" -":pep:`703` – Making the Global Interpreter Lock Optional in CPython for an " -"overall description of free-threaded Python." -msgstr "" - -#: howto/free-threading-python.rst:29 -msgid "Installation" -msgstr "" - -#: howto/free-threading-python.rst:31 -msgid "" -"Starting with Python 3.13, the official macOS and Windows installers " -"optionally support installing free-threaded Python binaries. The installers " -"are available at https://www.python.org/downloads/." -msgstr "" - -#: howto/free-threading-python.rst:35 -msgid "" -"For information on other platforms, see the `Installing a Free-Threaded " -"Python `_, a " -"community-maintained installation guide for installing free-threaded Python." -msgstr "" - -#: howto/free-threading-python.rst:39 -msgid "" -"When building CPython from source, the :option:`--disable-gil` configure " -"option should be used to build a free-threaded Python interpreter." -msgstr "" - -#: howto/free-threading-python.rst:44 -msgid "Identifying free-threaded Python" -msgstr "" - -#: howto/free-threading-python.rst:46 -msgid "" -"To check if the current interpreter supports free-threading, :option:`python " -"-VV <-V>` and :data:`sys.version` contain \"free-threading build\". The " -"new :func:`sys._is_gil_enabled` function can be used to check whether the " -"GIL is actually disabled in the running process." -msgstr "" - -#: howto/free-threading-python.rst:51 -msgid "" -"The ``sysconfig.get_config_var(\"Py_GIL_DISABLED\")`` configuration variable " -"can be used to determine whether the build supports free threading. If the " -"variable is set to ``1``, then the build supports free threading. This is " -"the recommended mechanism for decisions related to the build configuration." -msgstr "" - -#: howto/free-threading-python.rst:58 -msgid "The global interpreter lock in free-threaded Python" -msgstr "" - -#: howto/free-threading-python.rst:60 -msgid "" -"Free-threaded builds of CPython support optionally running with the GIL " -"enabled at runtime using the environment variable :envvar:`PYTHON_GIL` or " -"the command-line option :option:`-X gil`." -msgstr "" - -#: howto/free-threading-python.rst:64 -msgid "" -"The GIL may also automatically be enabled when importing a C-API extension " -"module that is not explicitly marked as supporting free threading. A " -"warning will be printed in this case." -msgstr "" - -#: howto/free-threading-python.rst:68 -msgid "" -"In addition to individual package documentation, the following websites " -"track the status of popular packages support for free threading:" -msgstr "" - -#: howto/free-threading-python.rst:71 -msgid "https://py-free-threading.github.io/tracking/" -msgstr "" - -#: howto/free-threading-python.rst:72 -msgid "https://hugovk.github.io/free-threaded-wheels/" -msgstr "" - -#: howto/free-threading-python.rst:76 -msgid "Thread safety" -msgstr "" - -#: howto/free-threading-python.rst:78 -msgid "" -"The free-threaded build of CPython aims to provide similar thread-safety " -"behavior at the Python level to the default GIL-enabled build. Built-in " -"types like :class:`dict`, :class:`list`, and :class:`set` use internal locks " -"to protect against concurrent modifications in ways that behave similarly to " -"the GIL. However, Python has not historically guaranteed specific behavior " -"for concurrent modifications to these built-in types, so this should be " -"treated as a description of the current implementation, not a guarantee of " -"current or future behavior." -msgstr "" - -#: howto/free-threading-python.rst:89 -msgid "" -"It's recommended to use the :class:`threading.Lock` or other synchronization " -"primitives instead of relying on the internal locks of built-in types, when " -"possible." -msgstr "" - -#: howto/free-threading-python.rst:95 -msgid "Known limitations" -msgstr "" - -#: howto/free-threading-python.rst:97 -msgid "" -"This section describes known limitations of the free-threaded CPython build." -msgstr "" - -#: howto/free-threading-python.rst:100 -msgid "Immortalization" -msgstr "" - -#: howto/free-threading-python.rst:102 -msgid "" -"In the free-threaded build, some objects are :term:`immortal`. Immortal " -"objects are not deallocated and have reference counts that are never " -"modified. This is done to avoid reference count contention that would " -"prevent efficient multi-threaded scaling." -msgstr "" - -#: howto/free-threading-python.rst:107 -msgid "As of the 3.14 release, immortalization is limited to:" -msgstr "" - -#: howto/free-threading-python.rst:109 -msgid "" -"Code constants: numeric literals, string literals, and tuple literals " -"composed of other constants." -msgstr "" - -#: howto/free-threading-python.rst:111 -msgid "Strings interned by :func:`sys.intern`." -msgstr "" - -#: howto/free-threading-python.rst:115 -msgid "Frame objects" -msgstr "Objets cadres" - -#: howto/free-threading-python.rst:117 -msgid "" -"It is not safe to access :attr:`frame.f_locals` from a :ref:`frame ` object if that frame is currently executing in another thread, and " -"doing so may crash the interpreter." -msgstr "" - -#: howto/free-threading-python.rst:123 -msgid "Iterators" -msgstr "Itérateurs" - -#: howto/free-threading-python.rst:125 -msgid "" -"It is generally not thread-safe to access the same iterator object from " -"multiple threads concurrently, and threads may see duplicate or missing " -"elements." -msgstr "" - -#: howto/free-threading-python.rst:131 -msgid "Single-threaded performance" -msgstr "" - -#: howto/free-threading-python.rst:133 -msgid "" -"The free-threaded build has additional overhead when executing Python code " -"compared to the default GIL-enabled build. The amount of overhead depends " -"on the workload and hardware. On the pyperformance benchmark suite, the " -"average overhead ranges from about 1% on macOS aarch64 to 8% on x86-64 Linux " -"systems." -msgstr "" - -#: howto/free-threading-python.rst:141 -msgid "Behavioral changes" -msgstr "" - -#: howto/free-threading-python.rst:143 -msgid "" -"This section describes CPython behavioural changes with the free-threaded " -"build." -msgstr "" - -#: howto/free-threading-python.rst:148 -msgid "Context variables" -msgstr "" - -#: howto/free-threading-python.rst:150 -msgid "" -"In the free-threaded build, the " -"flag :data:`~sys.flags.thread_inherit_context` is set to true by default " -"which causes threads created with :class:`threading.Thread` to start with a " -"copy of the :class:`~contextvars.Context()` of the caller " -"of :meth:`~threading.Thread.start`. In the default GIL-enabled build, the " -"flag defaults to false so threads start with an " -"empty :class:`~contextvars.Context()`." -msgstr "" - -#: howto/free-threading-python.rst:160 -msgid "Warning filters" -msgstr "" - -#: howto/free-threading-python.rst:162 -msgid "" -"In the free-threaded build, the " -"flag :data:`~sys.flags.context_aware_warnings` is set to true by default. " -"In the default GIL-enabled build, the flag defaults to false. If the flag " -"is true then the :class:`warnings.catch_warnings` context manager uses a " -"context variable for warning filters. If the flag is false " -"then :class:`~warnings.catch_warnings` modifies the global filters list, " -"which is not thread-safe. See the :mod:`warnings` module for more details." -msgstr "" - -#: howto/free-threading-python.rst:171 -msgid "Increased memory usage" -msgstr "" - -#: howto/free-threading-python.rst:173 -msgid "" -"The free-threaded build will typically use more memory compared to the " -"default build. There are multiple reasons for this, mostly due to design " -"decisions." -msgstr "" - -#: howto/free-threading-python.rst:178 -msgid "All interned strings are immortal" -msgstr "" - -#: howto/free-threading-python.rst:180 -msgid "" -"For modern Python versions (since version 2.3), interning a string (e.g. " -"with :func:`sys.intern`) does not cause it to become immortal. Instead, if " -"the last reference to that string disappears, it will be removed from the " -"interned string table. This is not the case for the free-threaded build and " -"any interned string will become immortal, surviving until interpreter " -"shutdown." -msgstr "" - -#: howto/free-threading-python.rst:188 -msgid "Non-GC objects have a larger object header" -msgstr "" - -#: howto/free-threading-python.rst:190 -msgid "" -"The free-threaded build uses a different :c:type:`PyObject` structure. " -"Instead of having the GC related information allocated before " -"the :c:type:`PyObject` structure, like in the default build, the GC related " -"info is part of the normal object header. For example, on the AMD64 " -"platform, ``None`` uses 32 bytes on the free-threaded build vs 16 bytes for " -"the default build. GC objects (such as dicts and lists) are the same size " -"for both builds since the free-threaded build does not use additional space " -"for the GC info." -msgstr "" - -#: howto/free-threading-python.rst:200 -msgid "QSBR can delay freeing of memory" -msgstr "" - -#: howto/free-threading-python.rst:202 -msgid "" -"In order to safely implement lock-free data structures, a safe memory " -"reclamation (SMR) scheme is used, known as quiescent state-based reclamation " -"(QSBR). This means that the memory backing data structures allowing lock-" -"free access will use QSBR, which defers the free operation, rather than " -"immediately freeing the memory. Two examples of these data structures are " -"the list object and the dictionary keys object. See ``InternalDocs/" -"qsbr.md`` in the CPython source tree for more details on how QSBR is " -"implemented. Running :func:`gc.collect` should cause all memory being held " -"by QSBR to be actually freed. Note that even when QSBR frees the memory, " -"the underlying memory allocator may not immediately return that memory to " -"the OS and so the resident set size (RSS) of the process might not decrease." -msgstr "" - -#: howto/free-threading-python.rst:216 -msgid "mimalloc allocator vs pymalloc" -msgstr "" - -#: howto/free-threading-python.rst:218 -msgid "" -"The default build will normally use the \"pymalloc\" memory allocator for " -"small allocations (512 bytes or smaller). The free-threaded build does not " -"use pymalloc and allocates all Python objects using the \"mimalloc\" " -"allocator. The pymalloc allocator has the following properties that help " -"keep memory usage low: small per-allocated-block overhead, effective memory " -"fragmentation prevention, and quick return of free memory to the operating " -"system. The mimalloc allocator does quite well in these respects as well " -"but can have some more overhead." -msgstr "" - -#: howto/free-threading-python.rst:227 -msgid "" -"In the free-threaded build, mimalloc manages memory in a number of separate " -"heaps (currently four). For example, all GC supporting objects are " -"allocated from their own heap. Using separate heaps means that free memory " -"in one heap cannot be used for an allocation that uses another heap. Also, " -"some heaps are configured to use QSBR (quiescent-state based reclamation) " -"when freeing the memory that backs up the heap (known as \"pages\" in " -"mimalloc terminology). The use of QSBR creates a delay between all memory " -"blocks for a page being freed and the memory page being released, either for " -"new allocations or back to the OS." -msgstr "" - -#: howto/free-threading-python.rst:237 -msgid "" -"The mimalloc allocator also defers returning freed memory back to the OS. " -"You can reduce that delay by setting the environment variable :envvar:`!" -"MIMALLOC_PURGE_DELAY` to ``0``. Note that this will likely reduce the " -"performance of the allocator." -msgstr "" - -#: howto/free-threading-python.rst:244 -msgid "Free-threaded reference counting can cause objects to live longer" -msgstr "" - -#: howto/free-threading-python.rst:246 -msgid "" -"In the default build, when an object's reference count reaches zero, it is " -"normally deallocated. The free-threaded build uses \"biased reference " -"counting\", with a fast-path for objects \"owned\" by the current thread and " -"a slow path for other objects. See :pep:`703` for additional details. Any " -"time an object's reference count ends up in a \"queued\" state, deallocation " -"can be deferred. The queued state is cleared from the \"eval breaker\" " -"section of the bytecode evaluator." -msgstr "" - -#: howto/free-threading-python.rst:254 -msgid "" -"The free-threaded build also allows a different mode of reference counting, " -"known as \"deferred reference counting\". This mode is enabled by setting a " -"flag on a per-object basis. Deferred reference counting is enabled for the " -"following types:" -msgstr "" - -#: howto/free-threading-python.rst:259 -#, fuzzy -msgid "module objects" -msgstr "Objets cadres" - -#: howto/free-threading-python.rst:260 -msgid "module top-level functions" -msgstr "" - -#: howto/free-threading-python.rst:261 -msgid "class methods defined in the class scope" -msgstr "" - -#: howto/free-threading-python.rst:262 -msgid "descriptor objects" -msgstr "" - -#: howto/free-threading-python.rst:263 -msgid "thread-local objects, created by :class:`threading.local`" -msgstr "" - -#: howto/free-threading-python.rst:265 -msgid "" -"When deferred reference counting is enabled, references from Python function " -"stacks are not added to the reference count. This scheme reduces the " -"overhead of reference counting, especially for objects used from multiple " -"threads. Because the stack references are not counted, objects with deferred " -"reference counting are not immediately freed when their internal reference " -"count goes to zero. Instead, they are examined by the next GC run and, if " -"no stack references to them are found, they are freed. This means these " -"objects are freed by the GC and not when their reference count goes to zero, " -"as is typical." -msgstr "" - -#: howto/free-threading-python.rst:276 -msgid "Per-thread reference counting can delay freeing objects" -msgstr "" - -#: howto/free-threading-python.rst:278 -msgid "" -"To avoid contention on the reference count fields of frequently shared " -"objects, the free-threaded build also uses \"per-thread reference counting\" " -"for a few selected object types. Rather than updating a single shared " -"reference count, each thread maintains its own local reference count array, " -"indexed by a unique id assigned to the object. The true reference count is " -"only computed by summing the per-thread counts when the object's local count " -"drops to zero. Per-thread reference counting is currently used for:" -msgstr "" - -#: howto/free-threading-python.rst:286 -msgid "heap type objects (classes created in Python)" -msgstr "" - -#: howto/free-threading-python.rst:287 -#, fuzzy -msgid "code objects" -msgstr "Objets cadres" - -#: howto/free-threading-python.rst:288 -msgid "the ``__dict__`` of module objects" -msgstr "" - -#: howto/free-threading-python.rst:290 -msgid "" -"Because the per-thread counts must be merged back to the object before it " -"can be deallocated, objects using per-thread reference counting are " -"typically freed later than they would be in the default build. In " -"particular, such an object is usually not freed until the thread that " -"referenced it reaches a safe point (for example, in the \"eval breaker\" " -"section of the bytecode evaluator) or exits. Running :func:`gc.collect` " -"will merge the per-thread counts and allow these objects to be freed." -msgstr "" diff --git a/howto/functional.po b/howto/functional.po deleted file mode 100644 index 8f094ef062..0000000000 --- a/howto/functional.po +++ /dev/null @@ -1,2036 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-25 13:54+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: howto/functional.rst:5 -msgid "Functional Programming HOWTO" -msgstr "Guide pratique : programmation fonctionnelle" - -#: howto/functional.rst:0 -msgid "Author" -msgstr "Auteur" - -#: howto/functional.rst:7 -#, fuzzy -msgid "\\A. M. Kuchling" -msgstr "A. M. Kuchling" - -#: howto/functional.rst:0 -msgid "Release" -msgstr "Version" - -#: howto/functional.rst:8 -msgid "0.32" -msgstr "0.32" - -#: howto/functional.rst:10 -msgid "" -"In this document, we'll take a tour of Python's features suitable for " -"implementing programs in a functional style. After an introduction to the " -"concepts of functional programming, we'll look at language features such " -"as :term:`iterator`\\s and :term:`generator`\\s and relevant library modules " -"such as :mod:`itertools` and :mod:`functools`." -msgstr "" -"Dans ce document, nous allons faire un tour des fonctionnalités de Python " -"adaptées à la réalisation d'un programme dans un style fonctionnel. Après " -"une introduction à la programmation fonctionnelle, nous aborderons des " -"outils tels que les :term:`iterator`\\s et les :term:`generator`\\s ainsi " -"que les modules :mod:`itertools` et :mod:`functools`." - -#: howto/functional.rst:18 -msgid "Introduction" -msgstr "Introduction" - -#: howto/functional.rst:20 -msgid "" -"This section explains the basic concept of functional programming; if you're " -"just interested in learning about Python language features, skip to the next " -"section on :ref:`functional-howto-iterators`." -msgstr "" -"Cette section détaille les fondamentaux de la programmation fonctionnelle. " -"Si seules les fonctionnalités de Python vous intéressent, vous pouvez sauter " -"cette partie et lire la section suivante sur les :ref:`functional-howto-" -"iterators`." - -#: howto/functional.rst:24 -msgid "" -"Programming languages support decomposing problems in several different ways:" -msgstr "" -"Les langages de programmation permettent de traiter des problèmes selon " -"différentes approches :" - -# Énumération -#: howto/functional.rst:26 -msgid "" -"Most programming languages are **procedural**: programs are lists of " -"instructions that tell the computer what to do with the program's input. C, " -"Pascal, and even Unix shells are procedural languages." -msgstr "" -"la plupart des langages de programmation suivent une logique " -"**procédurale** : les programmes sont constitués de listes d'instructions " -"qui détaillent les opérations que l'ordinateur doit appliquer aux entrées du " -"programme. C, Pascal ou encore les interpréteurs de commandes Unix sont des " -"langages procéduraux ;" - -# Énumération -#: howto/functional.rst:30 -msgid "" -"In **declarative** languages, you write a specification that describes the " -"problem to be solved, and the language implementation figures out how to " -"perform the computation efficiently. SQL is the declarative language you're " -"most likely to be familiar with; a SQL query describes the data set you want " -"to retrieve, and the SQL engine decides whether to scan tables or use " -"indexes, which subclauses should be performed first, etc." -msgstr "" -"les langages **déclaratifs** permettent d'écrire la spécification du " -"problème et laissent l'implémentation du langage trouver une façon efficace " -"de réaliser les calculs nécessaires à sa résolution. SQL est un langage " -"déclaratif que vous êtes susceptible de connaître ; une requête SQL décrit " -"le jeu de données que vous souhaitez récupérer et le moteur SQL choisit de " -"parcourir les tables ou d'utiliser les index, l'ordre de résolution des sous-" -"clauses, etc. ;" - -# Énumération -#: howto/functional.rst:37 -msgid "" -"**Object-oriented** programs manipulate collections of objects. Objects " -"have internal state and support methods that query or modify this internal " -"state in some way. Smalltalk and Java are object-oriented languages. C++ " -"and Python are languages that support object-oriented programming, but don't " -"force the use of object-oriented features." -msgstr "" -"les programmes **orientés objet** manipulent des ensembles d'objets. Ceux-ci " -"possèdent un état interne et des méthodes qui interrogent ou modifient cet " -"état d'une façon ou d'une autre. Smalltalk et Java sont deux langages " -"orientés objet. C++ et Python gèrent la programmation orientée objet mais " -"n'imposent pas l'utilisation de telles fonctionnalités ;" - -# Énumération -#: howto/functional.rst:43 -msgid "" -"**Functional** programming decomposes a problem into a set of functions. " -"Ideally, functions only take inputs and produce outputs, and don't have any " -"internal state that affects the output produced for a given input. Well-" -"known functional languages include the ML family (Standard ML, OCaml, and " -"other variants) and Haskell." -msgstr "" -"la programmation **fonctionnelle** implique de décomposer un problème en un " -"ensemble de fonctions. Dans l'idéal, les fonctions produisent des sorties à " -"partir d'entrées et ne possède pas d'état interne qui soit susceptible de " -"modifier la sortie pour une entrée donnée. Les langages fonctionnels les " -"plus connus sont ceux de la famille ML (Standard ML, OCaml et autres) et " -"Haskell ;" - -#: howto/functional.rst:49 -msgid "" -"The designers of some computer languages choose to emphasize one particular " -"approach to programming. This often makes it difficult to write programs " -"that use a different approach. Other languages are multi-paradigm languages " -"that support several different approaches. Lisp, C++, and Python are multi-" -"paradigm; you can write programs or libraries that are largely procedural, " -"object-oriented, or functional in all of these languages. In a large " -"program, different sections might be written using different approaches; the " -"GUI might be object-oriented while the processing logic is procedural or " -"functional, for example." -msgstr "" -"Les personnes qui conçoivent des langages de programmation peuvent choisir " -"de privilégier une approche par rapport à une autre. Cela complexifie " -"l'écriture de programmes appliquant un paradigme différent de celui " -"considéré. Certains langages sont multi-paradigmes et gère plusieurs " -"approches différentes. Lisp, C++ et Python sont de tels langages ; vous " -"pouvez écrire des programmes ou des bibliothèques dans un style procédural, " -"orienté objet ou fonctionnel dans chacun d'entre eux. Différentes parties " -"d'une application peuvent être écrites selon des approches différentes ; par " -"exemple, l'interface graphique peut suivre le paradigme orienté objet tandis " -"que la logique de traitement est procédurale ou fonctionnelle." - -#: howto/functional.rst:60 -msgid "" -"In a functional program, input flows through a set of functions. Each " -"function operates on its input and produces some output. Functional style " -"discourages functions with side effects that modify internal state or make " -"other changes that aren't visible in the function's return value. Functions " -"that have no side effects at all are called **purely functional**. Avoiding " -"side effects means not using data structures that get updated as a program " -"runs; every function's output must only depend on its input." -msgstr "" -"Dans un programme fonctionnel, l'entrée traverse un ensemble de fonctions. " -"Chaque fonction opère sur son entrée et produit une sortie. Le style " -"fonctionnel préconise de ne pas écrire de fonctions ayant des effets de " -"bord, c'est-à-dire qui modifient un état interne ou réalisent d'autres " -"changements qui ne sont pas visibles dans la valeur de sortie de la " -"fonction. Les fonctions qui ne présentent aucun effet de bord sont dites " -"**purement fonctionnelles**. L'interdiction des effets de bord signifie " -"qu'aucune structure de données n'est mise à jour lors de l'exécution du " -"programme ; chaque sortie d'une fonction ne dépend que de son entrée." - -#: howto/functional.rst:68 -msgid "" -"Some languages are very strict about purity and don't even have assignment " -"statements such as ``a=3`` or ``c = a + b``, but it's difficult to avoid all " -"side effects, such as printing to the screen or writing to a disk file. " -"Another example is a call to the :func:`print` or :func:`time.sleep` " -"function, neither of which returns a useful value. Both are called only for " -"their side effects of sending some text to the screen or pausing execution " -"for a second." -msgstr "" -"Certains langages sont très stricts en ce qui concerne la pureté des " -"fonctions et ne laissent même pas la possibilité d'assigner des variables " -"avec des expressions telles que ``a = 3`` ou ``c = a + b``, cependant il est " -"difficile d'éviter tous les effets de bord. Afficher un message sur l'écran " -"ou écrire un fichier sur le disque sont des effets de bord. Pour prendre un " -"autre exemple, un appel aux fonctions :func:`print` ou :func:`time.sleep` en " -"Python ne renvoie aucune valeur utile ; ces fonctions ne sont appelées que " -"pour leur effet de bord (afficher du texte sur l'écran ou mettre en pause " -"l'exécution du programme)." - -#: howto/functional.rst:75 -msgid "" -"Python programs written in functional style usually won't go to the extreme " -"of avoiding all I/O or all assignments; instead, they'll provide a " -"functional-appearing interface but will use non-functional features " -"internally. For example, the implementation of a function will still use " -"assignments to local variables, but won't modify global variables or have " -"other side effects." -msgstr "" -"Les programmes Python écrits dans un style fonctionnel ne poussent " -"généralement pas le curseur de la pureté à l'extrême en interdisant toute " -"entrée-sortie ou les assignations ; ils exhibent une interface fonctionnelle " -"en apparence mais utilisent des fonctionnalités impures en interne. Par " -"exemple, l'implémentation d'une fonction peut assigner dans des variables " -"locales mais ne modifiera pas de variable globale et n'aura pas d'autre " -"effet de bord." - -#: howto/functional.rst:81 -msgid "" -"Functional programming can be considered the opposite of object-oriented " -"programming. Objects are little capsules containing some internal state " -"along with a collection of method calls that let you modify this state, and " -"programs consist of making the right set of state changes. Functional " -"programming wants to avoid state changes as much as possible and works with " -"data flowing between functions. In Python you might combine the two " -"approaches by writing functions that take and return instances representing " -"objects in your application (e-mail messages, transactions, etc.)." -msgstr "" -"La programmation fonctionnelle peut être considérée comme l'opposé de la " -"programmation orientée objet. Les objets encapsulent un état interne ainsi " -"qu'une collection de méthodes qui permettent de modifier cet état. Les " -"programmes consistent à appliquer les bons changements à ces états. La " -"programmation fonctionnelle vous impose d'éviter au maximum ces changements " -"d'états en travaillant sur des données qui traversent un flux de fonctions. " -"En Python, vous pouvez combiner ces deux approches en écrivant des fonctions " -"qui prennent en argument et renvoient des instances représentants des objets " -"de votre application (courriers électroniques, transactions, etc.)." - -#: howto/functional.rst:90 -msgid "" -"Functional design may seem like an odd constraint to work under. Why should " -"you avoid objects and side effects? There are theoretical and practical " -"advantages to the functional style:" -msgstr "" -"Programmer sous la contrainte du paradigme fonctionnel peut sembler étrange. " -"Pourquoi vouloir éviter les objets et les effets de bord ? Il existe des " -"avantages théoriques et pratiques au style fonctionnel :" - -# Énumération -#: howto/functional.rst:94 -msgid "Formal provability." -msgstr "preuves formelles ;" - -# Énumération -#: howto/functional.rst:95 -msgid "Modularity." -msgstr "modularité ;" - -# Énumération -#: howto/functional.rst:96 -msgid "Composability." -msgstr "composabilité ;" - -# Énumération -#: howto/functional.rst:97 -msgid "Ease of debugging and testing." -msgstr "facilité de débogage et de test." - -#: howto/functional.rst:101 -msgid "Formal provability" -msgstr "Preuves formelles" - -#: howto/functional.rst:103 -msgid "" -"A theoretical benefit is that it's easier to construct a mathematical proof " -"that a functional program is correct." -msgstr "" -"Un avantage théorique est qu'il est plus facile de construire une preuve " -"mathématique de l'exactitude d'un programme fonctionnel." - -#: howto/functional.rst:106 -msgid "" -"For a long time researchers have been interested in finding ways to " -"mathematically prove programs correct. This is different from testing a " -"program on numerous inputs and concluding that its output is usually " -"correct, or reading a program's source code and concluding that the code " -"looks right; the goal is instead a rigorous proof that a program produces " -"the right result for all possible inputs." -msgstr "" -"Les chercheurs ont longtemps souhaité trouver des façons de prouver " -"mathématiquement qu'un programme est correct. Cela ne se borne pas à tester " -"si la sortie d'un programme est correcte sur de nombreuses entrées ou lire " -"le code source et en conclure que le celui-ci semble juste. L'objectif est " -"d'établir une preuve rigoureuse que le programme produit le bon résultat " -"pour toutes les entrées possibles." - -#: howto/functional.rst:113 -msgid "" -"The technique used to prove programs correct is to write down " -"**invariants**, properties of the input data and of the program's variables " -"that are always true. For each line of code, you then show that if " -"invariants X and Y are true **before** the line is executed, the slightly " -"different invariants X' and Y' are true **after** the line is executed. " -"This continues until you reach the end of the program, at which point the " -"invariants should match the desired conditions on the program's output." -msgstr "" -"La technique utilisée pour prouver l'exactitude d'un programme est d'écrire " -"des **invariants**, c'est-à-dire des propriétés de l'entrée et des variables " -"du programme qui sont toujours vérifiées. Pour chaque ligne de code, il " -"suffit de montrer que si les invariants X et Y sont vrais **avant** " -"l'exécution de cette ligne, les invariants légèrement modifiés X' et Y' sont " -"vérifiés **après** son exécution. Ceci se répète jusqu'à atteindre la fin du " -"programme. À ce stade, les invariants doivent alors correspondre aux " -"propriétés que l'on souhaite que la sortie du programme vérifie." - -#: howto/functional.rst:121 -msgid "" -"Functional programming's avoidance of assignments arose because assignments " -"are difficult to handle with this technique; assignments can break " -"invariants that were true before the assignment without producing any new " -"invariants that can be propagated onward." -msgstr "" -"L'aversion du style fonctionnel envers les assignations de variable est " -"apparue car celles-ci sont difficiles à gérer avec cette méthode. Les " -"assignations peuvent rompre des invariants qui étaient vrais auparavant sans " -"pour autant produire de nouveaux invariants qui pourraient être propagés." - -#: howto/functional.rst:126 -msgid "" -"Unfortunately, proving programs correct is largely impractical and not " -"relevant to Python software. Even trivial programs require proofs that are " -"several pages long; the proof of correctness for a moderately complicated " -"program would be enormous, and few or none of the programs you use daily " -"(the Python interpreter, your XML parser, your web browser) could be proven " -"correct. Even if you wrote down or generated a proof, there would then be " -"the question of verifying the proof; maybe there's an error in it, and you " -"wrongly believe you've proved the program correct." -msgstr "" -"Malheureusement, prouver l'exactitude d'un programme est très peu commode et " -"ne concerne que rarement des logiciels en Python. Même des programmes " -"triviaux nécessitent souvent des preuves s'étalant sur plusieurs pages ; la " -"preuve de l'exactitude d'un programme relativement gros serait gigantesque. " -"Peu, voire aucun, des programmes que vous utilisez quotidiennement " -"(l'interpréteur Python, votre analyseur syntaxique XML, votre navigateur " -"web) ne peuvent être prouvés exacts. Même si vous écriviez ou généreriez une " -"preuve, il faudrait encore vérifier celle-ci. Peut-être qu'elle contient une " -"erreur et que vous pensez désormais, à tort, que vous avez prouvé que votre " -"programme est correct." - -#: howto/functional.rst:137 -msgid "Modularity" -msgstr "Modularité" - -#: howto/functional.rst:139 -msgid "" -"A more practical benefit of functional programming is that it forces you to " -"break apart your problem into small pieces. Programs are more modular as a " -"result. It's easier to specify and write a small function that does one " -"thing than a large function that performs a complicated transformation. " -"Small functions are also easier to read and to check for errors." -msgstr "" -"Un intérêt plus pratique de la programmation fonctionnelle est qu'elle " -"impose de décomposer le problème en petits morceaux. Les programmes qui en " -"résultent sont souvent plus modulaires. Il est plus simple de spécifier et " -"d'écrire une petite fonction qui ne fait qu'une seule tâche plutôt qu'une " -"grosse fonction qui réalise une transformation complexe. Les petites " -"fonctions sont plus faciles à lire et à vérifier." - -#: howto/functional.rst:147 -msgid "Ease of debugging and testing" -msgstr "Facilité de débogage et de test" - -#: howto/functional.rst:149 -msgid "Testing and debugging a functional-style program is easier." -msgstr "Tester et déboguer un programme fonctionnel est plus facile." - -#: howto/functional.rst:151 -msgid "" -"Debugging is simplified because functions are generally small and clearly " -"specified. When a program doesn't work, each function is an interface point " -"where you can check that the data are correct. You can look at the " -"intermediate inputs and outputs to quickly isolate the function that's " -"responsible for a bug." -msgstr "" -"Déboguer est plus simple car les fonctions sont généralement petites et bien " -"spécifiées. Lorsqu'un programme ne fonctionne pas, chaque fonction constitue " -"une étape au niveau de laquelle vous pouvez vérifier que les valeurs sont " -"justes. Vous pouvez observer les entrées intermédiaires et les sorties afin " -"d'isoler rapidement la fonction qui est à l'origine du bogue." - -#: howto/functional.rst:156 -msgid "" -"Testing is easier because each function is a potential subject for a unit " -"test. Functions don't depend on system state that needs to be replicated " -"before running a test; instead you only have to synthesize the right input " -"and then check that the output matches expectations." -msgstr "" -"Les tests sont plus faciles, car chaque fonction est désormais un sujet " -"potentiel pour un test unitaire. Les fonctions ne dépendent pas d'un état " -"particulier du système qui devrait être répliqué avant d'exécuter un test ; " -"à la place vous n'avez qu'à produire une entrée synthétique et vérifier que " -"le résultat correspond à ce que vous attendez." - -#: howto/functional.rst:163 -msgid "Composability" -msgstr "Composabilité" - -#: howto/functional.rst:165 -msgid "" -"As you work on a functional-style program, you'll write a number of " -"functions with varying inputs and outputs. Some of these functions will be " -"unavoidably specialized to a particular application, but others will be " -"useful in a wide variety of programs. For example, a function that takes a " -"directory path and returns all the XML files in the directory, or a function " -"that takes a filename and returns its contents, can be applied to many " -"different situations." -msgstr "" -"En travaillant sur un programme dans le style fonctionnel, vous écrivez un " -"certain nombre de fonctions avec des entrées et des sorties variables. " -"Certaines de ces fonctions sont inévitablement spécifiques à une application " -"en particulier, mais d'autres peuvent s'appliquer à de nombreux cas d'usage. " -"Par exemple, une fonction qui liste l'ensemble des fichiers XML d'un " -"répertoire à partir du chemin de celui-ci ou une fonction qui renvoie le " -"contenu d'un fichier à partir de son nom peuvent être utiles dans de " -"nombreuses situations." - -#: howto/functional.rst:172 -msgid "" -"Over time you'll form a personal library of utilities. Often you'll " -"assemble new programs by arranging existing functions in a new configuration " -"and writing a few functions specialized for the current task." -msgstr "" -"Au fur et à mesure, vous constituez ainsi une bibliothèque personnelle " -"d'utilitaires. Souvent, vous pourrez construire de nouveaux programmes en " -"agençant des fonctions existantes dans une nouvelle configuration et en " -"écrivant quelques fonctions spécifiques à votre objectif en cours." - -#: howto/functional.rst:180 -msgid "Iterators" -msgstr "Itérateurs" - -#: howto/functional.rst:182 -msgid "" -"I'll start by looking at a Python language feature that's an important " -"foundation for writing functional-style programs: iterators." -msgstr "" -"Commençons par jeter un œil à une des fonctionnalités les plus importantes " -"pour écrire en style fonctionnel avec Python : les itérateurs." - -#: howto/functional.rst:185 -msgid "" -"An iterator is an object representing a stream of data; this object returns " -"the data one element at a time. A Python iterator must support a method " -"called :meth:`~iterator.__next__` that takes no arguments and always returns " -"the next element of the stream. If there are no more elements in the " -"stream, :meth:`~iterator.__next__` must raise the :exc:`StopIteration` " -"exception. Iterators don't have to be finite, though; it's perfectly " -"reasonable to write an iterator that produces an infinite stream of data." -msgstr "" -"Un itérateur est un objet qui représente un flux de données ; cet objet " -"renvoie les données un élément à la fois. Un itérateur Python doit posséder " -"une méthode :meth:`~iterator.__next__` qui ne prend pas d'argument et " -"renvoie toujours l'élément suivant du flux. S'il n'y a plus d'élément dans " -"le flux, :meth:`~iterator.__next__` doit lever une " -"exception :exc:`StopIteration`. Toutefois, ce n'est pas indispensable ; il " -"est envisageable d'écrire un itérateur qui produit un flux infini de données." - -#: howto/functional.rst:193 -msgid "" -"The built-in :func:`iter` function takes an arbitrary object and tries to " -"return an iterator that will return the object's contents or elements, " -"raising :exc:`TypeError` if the object doesn't support iteration. Several " -"of Python's built-in data types support iteration, the most common being " -"lists and dictionaries. An object is called :term:`iterable` if you can get " -"an iterator for it." -msgstr "" -"La fonction native :func:`iter` prend un objet arbitraire et tente de " -"construire un itérateur qui renvoie le contenu de l'objet (ou ses éléments) " -"en levant une exception :exc:`TypeError` si l'objet ne gère pas l'itération. " -"Plusieurs types de données natifs à Python gèrent l'itération, notamment les " -"listes et les dictionnaires. On appelle :term:`itérable ` un objet " -"pour lequel il est possible de construire un itérateur." - -#: howto/functional.rst:200 -msgid "You can experiment with the iteration interface manually:" -msgstr "Vous pouvez expérimenter avec l'interface d'itération manuellement :" - -#: howto/functional.rst:218 -msgid "" -"Python expects iterable objects in several different contexts, the most " -"important being the :keyword:`for` statement. In the statement ``for X in " -"Y``, Y must be an iterator or some object for which :func:`iter` can create " -"an iterator. These two statements are equivalent::" -msgstr "" -"Python s'attend à travailler sur des objets itérables dans divers contextes " -"et tout particulièrement dans une boucle :keyword:`for`. Dans l'expression " -"``for X in Y``, Y doit être un itérateur ou un objet pour " -"lequel :func:`iter` peut générer un itérateur. Ces deux expressions sont " -"équivalentes ::" - -#: howto/functional.rst:230 -msgid "" -"Iterators can be materialized as lists or tuples by using the :func:`list` " -"or :func:`tuple` constructor functions:" -msgstr "" -"Les itérateurs peuvent être transformés en listes ou en *n*-uplets en " -"appelant les constructeurs respectifs :func:`list` et :func:`tuple` :" - -#: howto/functional.rst:239 -msgid "" -"Sequence unpacking also supports iterators: if you know an iterator will " -"return N elements, you can unpack them into an N-tuple:" -msgstr "" -"Le dépaquetage de séquences fonctionne également sur les itérateurs : si " -"vous savez qu'un itérateur renvoie N éléments, vous pouvez les dépaqueter " -"dans un *n*-uplet :" - -#: howto/functional.rst:248 -msgid "" -"Built-in functions such as :func:`max` and :func:`min` can take a single " -"iterator argument and will return the largest or smallest element. The " -"``\"in\"`` and ``\"not in\"`` operators also support iterators: ``X in " -"iterator`` is true if X is found in the stream returned by the iterator. " -"You'll run into obvious problems if the iterator is " -"infinite; :func:`max`, :func:`min` will never return, and if the element X " -"never appears in the stream, the ``\"in\"`` and ``\"not in\"`` operators " -"won't return either." -msgstr "" -"Certaines fonctions natives telles que :func:`max` et :func:`min` prennent " -"un itérateur en argument et en renvoie le plus grand ou le plus petit " -"élément. Les opérateurs ``\"in\"`` et ``\"not in\"`` gèrent également les " -"itérateurs : ``X in iterator`` est vrai si X a été trouvé dans le flux " -"renvoyé par l'itérateur. Vous rencontrerez bien sûr des problèmes si " -"l'itérateur est infini : :func:`max`, :func:`min` ne termineront jamais et, " -"si l'élément X n'apparaît pas dans le flux, les opérateurs ``\"in\"`` et " -"``\"not in\"`` non plus." - -#: howto/functional.rst:256 -msgid "" -"Note that you can only go forward in an iterator; there's no way to get the " -"previous element, reset the iterator, or make a copy of it. Iterator " -"objects can optionally provide these additional capabilities, but the " -"iterator protocol only specifies the :meth:`~iterator.__next__` method. " -"Functions may therefore consume all of the iterator's output, and if you " -"need to do something different with the same stream, you'll have to create a " -"new iterator." -msgstr "" -"Notez qu'il n'est possible de parcourir un itérateur que vers l'avant et " -"qu'il est impossible de récupérer l'élément précédent, de réinitialiser " -"l'itérateur ou d'en créer une copie. Des objets itérateurs peuvent offrir " -"ces possibilités de façon facultative, mais le protocole d'itération ne " -"spécifie que la méthode :meth:`~iterator.__next__`. Certaines fonctions " -"peuvent ainsi consommer l'entièreté de la sortie d'un itérateur et, si vous " -"devez utiliser le même flux pour autre chose, vous devrez en créer un " -"nouveau." - -#: howto/functional.rst:266 -msgid "Data Types That Support Iterators" -msgstr "Types de données itérables" - -#: howto/functional.rst:268 -msgid "" -"We've already seen how lists and tuples support iterators. In fact, any " -"Python sequence type, such as strings, will automatically support creation " -"of an iterator." -msgstr "" -"Nous avons vu précédemment comment les listes et les *n*-uplets gèrent les " -"itérateurs. En réalité, n'importe quel type de séquence en Python, par " -"exemple les chaînes de caractères, sont itérables." - -#: howto/functional.rst:272 -msgid "" -"Calling :func:`iter` on a dictionary returns an iterator that will loop over " -"the dictionary's keys::" -msgstr "" -"Appeler :func:`iter` sur un dictionnaire renvoie un itérateur qui parcourt " -"l'ensemble de ses clés ::" - -#: howto/functional.rst:292 -msgid "" -"Note that starting with Python 3.7, dictionary iteration order is guaranteed " -"to be the same as the insertion order. In earlier versions, the behaviour " -"was unspecified and could vary between implementations." -msgstr "" -"Notez qu'à partir de la version 3.7, Python garantit que l'ordre de " -"l'itération sur un dictionnaire est identique à l'ordre d'insertion des " -"clés. Dans les versions précédentes, ce comportement n'était pas spécifié et " -"pouvait varier en fonction de l'implémentation." - -#: howto/functional.rst:296 -msgid "" -"Applying :func:`iter` to a dictionary always loops over the keys, but " -"dictionaries have methods that return other iterators. If you want to " -"iterate over values or key/value pairs, you can explicitly call " -"the :meth:`~dict.values` or :meth:`~dict.items` methods to get an " -"appropriate iterator." -msgstr "" -"Appliquer :func:`iter` sur un dictionnaire produit un itérateur sur ses " -"clés, mais il est possible d'obtenir d'autres itérateurs par d'autres " -"méthodes. Si vous souhaitez itérer sur les valeurs ou les paires clé/valeur " -"du dictionnaire, vous pouvez explicitement appeler les " -"méthodes :meth:`~dict.values` ou :meth:`~dict.items` pour obtenir " -"l'itérateur idoine." - -#: howto/functional.rst:302 -msgid "" -"The :func:`dict` constructor can accept an iterator that returns a finite " -"stream of ``(key, value)`` tuples:" -msgstr "" -"Le constructeur :func:`dict` accepte de prendre un itérateur en argument qui " -"renvoie un flux fini de pairs ``(clé, valeur)`` :" - -#: howto/functional.rst:309 -msgid "" -"Files also support iteration by calling the :meth:`~io.TextIOBase.readline` " -"method until there are no more lines in the file. This means you can read " -"each line of a file like this::" -msgstr "" -"Les fichiers gèrent aussi l'itération en appelant la " -"méthode :meth:`~io.TextIOBase.readline` jusqu'à ce qu'il n'y ait plus " -"d'autre ligne dans le fichier. Cela signifie que vous pouvez lire " -"l'intégralité d'un fichier de la façon suivante ::" - -#: howto/functional.rst:317 -msgid "" -"Sets can take their contents from an iterable and let you iterate over the " -"set's elements::" -msgstr "" -"Les ensembles peuvent être créés à partir d'un itérable et autorisent " -"l'itération sur les éléments de l'ensemble ::" - -#: howto/functional.rst:333 -msgid "Generator expressions and list comprehensions" -msgstr "Expressions génératrices et compréhension de listes" - -#: howto/functional.rst:335 -msgid "" -"Two common operations on an iterator's output are 1) performing some " -"operation for every element, 2) selecting a subset of elements that meet " -"some condition. For example, given a list of strings, you might want to " -"strip off trailing whitespace from each line or extract all the strings " -"containing a given substring." -msgstr "" -"Deux opérations courantes réalisables sur la sortie d'un itérateur sont 1) " -"effectuer une opération pour chaque élément, 2) extraire le sous-ensemble " -"des éléments qui vérifient une certaine condition. Par exemple, pour une " -"liste de chaînes de caractères, vous pouvez choisir de retirer tous les " -"caractères blancs à la fin de chaque ligne ou extraire toutes les chaînes " -"contenant une sous-chaîne précise." - -#: howto/functional.rst:341 -msgid "" -"List comprehensions and generator expressions (short form: \"listcomps\" and " -"\"genexps\") are a concise notation for such operations, borrowed from the " -"functional programming language Haskell (https://www.haskell.org/). You can " -"strip all the whitespace from a stream of strings with the following code::" -msgstr "" -"Les compréhensions de listes et les expressions génératrices sont des façons " -"concises d'exprimer de telles opérations, inspirées du langage de " -"programmation fonctionnel Haskell (https://www.haskell.org/). Vous pouvez " -"retirer tous les caractères blancs initiaux et finaux d'un flux de chaînes " -"de caractères à l'aide du code suivant ::" - -#: howto/functional.rst:354 -msgid "" -"You can select only certain elements by adding an ``\"if\"`` condition::" -msgstr "" -"Vous pouvez ne sélectionner que certains éléments en ajoutant une condition " -"« ``if`` » ::" - -#: howto/functional.rst:359 -msgid "" -"With a list comprehension, you get back a Python list; ``stripped_list`` is " -"a list containing the resulting lines, not an iterator. Generator " -"expressions return an iterator that computes the values as necessary, not " -"needing to materialize all the values at once. This means that list " -"comprehensions aren't useful if you're working with iterators that return an " -"infinite stream or a very large amount of data. Generator expressions are " -"preferable in these situations." -msgstr "" -"La compréhension de liste renvoie une liste Python ; ``stripped_list`` est " -"une liste contenant les lignes après transformation, pas un itérateur. Les " -"expressions génératrices renvoient un itérateur qui calcule les valeurs au " -"fur et à mesure sans toutes les matérialiser d'un seul coup. Cela signifie " -"que les compréhensions de listes ne sont pas très utiles si vous travaillez " -"sur des itérateurs infinis ou produisant une très grande quantité de " -"données. Les expressions génératrices sont préférables dans ce cas." - -#: howto/functional.rst:366 -msgid "" -"Generator expressions are surrounded by parentheses (\"()\") and list " -"comprehensions are surrounded by square brackets (\"[]\"). Generator " -"expressions have the form::" -msgstr "" -"Les expressions génératrices sont écrites entre parenthèses (« () ») et les " -"compréhensions de listes entre crochets (« [] »). Les expressions " -"génératrices sont de la forme ::" - -#: howto/functional.rst:380 -msgid "" -"Again, for a list comprehension only the outside brackets are different " -"(square brackets instead of parentheses)." -msgstr "" -"La compréhension de liste équivalente s'écrit de la même manière, utilisez " -"juste des crochets à la place des parenthèses." - -#: howto/functional.rst:383 -msgid "" -"The elements of the generated output will be the successive values of " -"``expression``. The ``if`` clauses are all optional; if present, " -"``expression`` is only evaluated and added to the result when ``condition`` " -"is true." -msgstr "" -"Les éléments de la sortie sont les valeurs successives de ``expression``. La " -"clause ``if`` est facultative ; si elle est présente, ``expression`` n'est " -"évaluée et ajoutée au résultat que si ``condition`` est vérifiée." - -#: howto/functional.rst:387 -msgid "" -"Generator expressions always have to be written inside parentheses, but the " -"parentheses signalling a function call also count. If you want to create an " -"iterator that will be immediately passed to a function you can write::" -msgstr "" -"Les expressions génératrices doivent toujours être écrites entre " -"parenthèses, mais les parenthèses qui encadrent un appel de fonction " -"comptent aussi. Si vous souhaitez créer un itérateur qui soit immédiatement " -"passé à une fonction, vous pouvez écrire ::" - -#: howto/functional.rst:393 -msgid "" -"The ``for...in`` clauses contain the sequences to be iterated over. The " -"sequences do not have to be the same length, because they are iterated over " -"from left to right, **not** in parallel. For each element in ``sequence1``, " -"``sequence2`` is looped over from the beginning. ``sequence3`` is then " -"looped over for each resulting pair of elements from ``sequence1`` and " -"``sequence2``." -msgstr "" -"Les clauses ``for ... in`` indiquent les séquences sur lesquelles itérer. " -"Celles-ci peuvent être de longueurs différentes, car l'itération est " -"réalisée de gauche à droite et non en parallèle. ``sequence2`` est parcourue " -"entièrement pour chaque élément de ``sequence1``. ``sequence3`` est ensuite " -"parcourue dans son intégralité pour chaque paire d'éléments de ``sequence1`` " -"et ``sequence2``." - -#: howto/functional.rst:399 -msgid "" -"To put it another way, a list comprehension or generator expression is " -"equivalent to the following Python code::" -msgstr "" -"Autrement dit, une compréhension de liste ou une expression génératrice est " -"équivalente au code Python ci-dessous ::" - -#: howto/functional.rst:416 -msgid "" -"This means that when there are multiple ``for...in`` clauses but no ``if`` " -"clauses, the length of the resulting output will be equal to the product of " -"the lengths of all the sequences. If you have two lists of length 3, the " -"output list is 9 elements long:" -msgstr "" -"Ainsi lorsque plusieurs clauses ``for ... in`` sont présentes mais sans " -"condition ``if``, la longueur totale de la nouvelle séquence est égale au " -"produit des longueurs des séquences itérées. Si vous travaillez sur deux " -"listes de longueur 3, la sortie contiendra 9 éléments :" - -#: howto/functional.rst:428 -msgid "" -"To avoid introducing an ambiguity into Python's grammar, if ``expression`` " -"is creating a tuple, it must be surrounded with parentheses. The first list " -"comprehension below is a syntax error, while the second one is correct::" -msgstr "" -"Afin de ne pas créer une ambiguïté dans la grammaire de Python, " -"``expression`` doit être encadrée par des parenthèses si elle produit un n-" -"uplet. La première compréhension de liste ci-dessous n'est pas valide " -"syntaxiquement, tandis que la seconde l'est ::" - -#: howto/functional.rst:439 -msgid "Generators" -msgstr "Générateurs" - -#: howto/functional.rst:441 -msgid "" -"Generators are a special class of functions that simplify the task of " -"writing iterators. Regular functions compute a value and return it, but " -"generators return an iterator that returns a stream of values." -msgstr "" -"Les générateurs forment une classe spéciale de fonctions qui simplifie la " -"création d'itérateurs. Les fonctions habituelles calculent une valeur et la " -"renvoie, tandis que les générateurs renvoient un itérateur qui produit un " -"flux de valeurs." - -#: howto/functional.rst:445 -msgid "" -"You're doubtless familiar with how regular function calls work in Python or " -"C. When you call a function, it gets a private namespace where its local " -"variables are created. When the function reaches a ``return`` statement, " -"the local variables are destroyed and the value is returned to the caller. " -"A later call to the same function creates a new private namespace and a " -"fresh set of local variables. But, what if the local variables weren't " -"thrown away on exiting a function? What if you could later resume the " -"function where it left off? This is what generators provide; they can be " -"thought of as resumable functions." -msgstr "" -"Vous connaissez sans doute le fonctionnement des appels de fonctions en " -"Python ou en C. Lorsqu'une fonction est appelée, un espace de nommage privé " -"lui est associé pour ses variables locales. Lorsque le programme atteint une " -"instruction ``return``, les variables locales sont détruites et la valeur " -"est renvoyée à l'appelant. Les appels postérieurs à la même fonction créent " -"un nouvel espace de nommage privé et de nouvelles variables locales. " -"Cependant, que se passerait-il si les variables locales n'étaient pas " -"détruites lors de la sortie d'une fonction ? Et s'il était possible de " -"reprendre l'exécution de la fonction là où elle s'était arrêtée ? Les " -"générateurs sont une réponse à ces questions ; vous pouvez considérer qu'il " -"s'agit de fonctions qu'il est possible d'interrompre, puis de relancer sans " -"perdre leur progression." - -#: howto/functional.rst:454 -msgid "Here's the simplest example of a generator function:" -msgstr "Voici un exemple simple de fonction génératrice :" - -#: howto/functional.rst:460 -msgid "" -"Any function containing a :keyword:`yield` keyword is a generator function; " -"this is detected by Python's :term:`bytecode` compiler which compiles the " -"function specially as a result." -msgstr "" -"N'importe quelle fonction contenant le mot-clé :keyword:`yield` est un " -"générateur ; le compilateur :term:`bytecode` de Python détecte ce mot-clé et " -"prend en compte cette particularité de la fonction." - -#: howto/functional.rst:464 -msgid "" -"When you call a generator function, it doesn't return a single value; " -"instead it returns a generator object that supports the iterator protocol. " -"On executing the ``yield`` expression, the generator outputs the value of " -"``i``, similar to a ``return`` statement. The big difference between " -"``yield`` and a ``return`` statement is that on reaching a ``yield`` the " -"generator's state of execution is suspended and local variables are " -"preserved. On the next call to the generator's :meth:`~generator.__next__` " -"method, the function will resume executing." -msgstr "" -"Lorsque vous appelez une fonction génératrice, celle-ci ne renvoie pas une " -"unique valeur ; elle renvoie un objet générateur qui implémente le protocole " -"d'itération. Lorsque l'expression ``yield`` est exécutée, le générateur " -"renvoie la valeur de ``i``, d'une façon similaire à un ``return``. La " -"différence principale entre ``yield`` et ``return`` est qu'en atteignant " -"l'instruction ``yield``, l'état du générateur est suspendu et les variables " -"locales sont conservées. Lors de l'appel suivant à la " -"méthode :meth:`~generator.__next__` du générateur, la fonction reprend son " -"exécution." - -#: howto/functional.rst:473 -msgid "Here's a sample usage of the ``generate_ints()`` generator:" -msgstr "Voici un exemple d'utilisation du générateur ``generate_ints()`` :" - -#: howto/functional.rst:490 -msgid "" -"You could equally write ``for i in generate_ints(5)``, or ``a, b, c = " -"generate_ints(3)``." -msgstr "" -"Vous pourriez de façon équivalente écrire ``for i in generate_ints(5)`` ou " -"``a, b, c = generate_ints(3)``." - -#: howto/functional.rst:493 -msgid "" -"Inside a generator function, ``return value`` causes " -"``StopIteration(value)`` to be raised from the :meth:`~generator.__next__` " -"method. Once this happens, or the bottom of the function is reached, the " -"procession of values ends and the generator cannot yield any further values." -msgstr "" -"Dans une fonction génératrice, une instruction ``return value`` entraîne la " -"levée d'une exception ``StopIteration(value)`` dans la " -"méthode :meth:`~generator.__next__`. Lorsque cela se produit (ou que la fin " -"de la fonction est atteinte), le flot de nouvelles valeurs s'arrête et le " -"générateur ne peut plus rien produire." - -#: howto/functional.rst:498 -msgid "" -"You could achieve the effect of generators manually by writing your own " -"class and storing all the local variables of the generator as instance " -"variables. For example, returning a list of integers could be done by " -"setting ``self.count`` to 0, and having the :meth:`~iterator.__next__` " -"method increment ``self.count`` and return it. However, for a moderately " -"complicated generator, writing a corresponding class can be much messier." -msgstr "" -"Vous pouvez obtenir le même comportement que celui des générateurs en " -"écrivant votre propre classe qui stocke les variables locales du générateur " -"comme variables d'instance. Pour renvoyer une liste d'entiers, par exemple, " -"vous pouvez initialiser ``self.count`` à 0 et écrire la " -"méthode :meth:`~iterator.__next__` de telle sorte qu'elle incrémente " -"``self.count`` puis le renvoie. Cependant, cela devient beaucoup plus " -"complexe pour des générateurs relativement sophistiqués." - -#: howto/functional.rst:506 -msgid "" -"The test suite included with Python's library, :source:`Lib/test/" -"test_generators.py`, contains a number of more interesting examples. Here's " -"one generator that implements an in-order traversal of a tree using " -"generators recursively. ::" -msgstr "" -":source:`Lib/test/test_generators.py`, la suite de test de la bibliothèque " -"Python, contient de nombreux exemples intéressants. Voici un générateur qui " -"implémente le parcours d'un arbre dans l'ordre en utilisant des générateurs " -"de façon récursive. ::" - -#: howto/functional.rst:522 -msgid "" -"Two other examples in ``test_generators.py`` produce solutions for the N-" -"Queens problem (placing N queens on an NxN chess board so that no queen " -"threatens another) and the Knight's Tour (finding a route that takes a " -"knight to every square of an NxN chessboard without visiting any square " -"twice)." -msgstr "" -"Deux autres exemples de ``test_generators.py`` permettent de résoudre le " -"problème des N Reines (placer *N* reines sur un échiquier de dimensions " -"*NxN* de telle sorte qu'aucune reine ne soit en position d'en prendre une " -"autre) et le problème du cavalier (trouver un chemin permettant au cavalier " -"de visiter toutes les cases d'un échiquier *NxN* sans jamais visiter la même " -"case deux fois)." - -#: howto/functional.rst:530 -msgid "Passing values into a generator" -msgstr "Transmettre des valeurs au générateur" - -#: howto/functional.rst:532 -msgid "" -"In Python 2.4 and earlier, generators only produced output. Once a " -"generator's code was invoked to create an iterator, there was no way to pass " -"any new information into the function when its execution is resumed. You " -"could hack together this ability by making the generator look at a global " -"variable or by passing in some mutable object that callers then modify, but " -"these approaches are messy." -msgstr "" -"Avant Python 2.5, les générateurs ne pouvaient que produire des sorties. Une " -"fois le code du générateur exécuté pour créer un itérateur, il était " -"impossible d'introduire de l'information nouvelle dans la fonction mise en " -"pause. Une astuce consistait à obtenir cette fonctionnalité en autorisant le " -"générateur à consulter des variables globales ou en lui passant des objets " -"mutables modifiés hors du générateur, mais ces approches étaient compliquées." - -#: howto/functional.rst:539 -msgid "" -"In Python 2.5 there's a simple way to pass values into a " -"generator. :keyword:`yield` became an expression, returning a value that can " -"be assigned to a variable or otherwise operated on::" -msgstr "" -"À partir de Python 2.5, il existe une méthode simple pour transmettre des " -"valeurs à un générateur. Le mot-clé :keyword:`yield` est devenu une " -"expression qui renvoie une valeur sur laquelle il est possible d'opérer et " -"que vous pouvez assigner à une variable ::" - -#: howto/functional.rst:545 -msgid "" -"I recommend that you **always** put parentheses around a ``yield`` " -"expression when you're doing something with the returned value, as in the " -"above example. The parentheses aren't always necessary, but it's easier to " -"always add them instead of having to remember when they're needed." -msgstr "" -"Comme dans l'exemple ci-dessus, nous vous recommandons de **toujours** " -"encadrer les expressions ``yield`` par des parenthèses lorsque vous utilisez " -"leur valeur de retour. Elles ne sont pas toujours indispensables mais mieux " -"vaut prévenir que guérir : il est plus facile de les ajouter " -"systématiquement que de prendre le risque de les oublier là où elles sont " -"requises." - -#: howto/functional.rst:550 -msgid "" -"(:pep:`342` explains the exact rules, which are that a ``yield``-expression " -"must always be parenthesized except when it occurs at the top-level " -"expression on the right-hand side of an assignment. This means you can " -"write ``val = yield i`` but have to use parentheses when there's an " -"operation, as in ``val = (yield i) + 12``.)" -msgstr "" -"(Les règles exactes de parenthésage sont spécifiées dans la :pep:`342` : une " -"expression ``yield`` doit toujours être parenthésée sauf s'il s'agit de " -"l'expression la plus externe du côté droit d'une assignation. Cela signifie " -"que vous pouvez écrire ``val = yield i`` mais que les parenthèses sont " -"requises s'il y a une opération, comme dans ``val = (yield i) + 12``.)" - -#: howto/functional.rst:556 -msgid "" -"Values are sent into a generator by calling its :meth:`send(value) " -"` method. This method resumes the generator's code and the " -"``yield`` expression returns the specified value. If the " -"regular :meth:`~generator.__next__` method is called, the ``yield`` returns " -"``None``." -msgstr "" -"Des valeurs peuvent être transmises à un générateur en appelant sa " -"méthode :meth:`send(value) `. Celle-ci reprend l'exécution " -"du générateur et l'expression ``yield`` renvoie la valeur spécifiée. Si " -"c'est la méthode :meth:`~generator.__next__` habituelle qui est appelée, " -"alors ``yield`` renvoie ``None``." - -#: howto/functional.rst:561 -msgid "" -"Here's a simple counter that increments by 1 and allows changing the value " -"of the internal counter." -msgstr "" -"Voici un exemple de compteur qui s'incrémente de 1 mais dont il est possible " -"de modifier le compte interne." - -#: howto/functional.rst:576 -msgid "And here's an example of changing the counter:" -msgstr "Et voici comment il est possible de modifier le compteur :" - -#: howto/functional.rst:593 -msgid "" -"Because ``yield`` will often be returning ``None``, you should always check " -"for this case. Don't just use its value in expressions unless you're sure " -"that the :meth:`~generator.send` method will be the only method used to " -"resume your generator function." -msgstr "" -"Puisque ``yield`` renvoie souvent ``None``, vous devez toujours vérifier si " -"c'est le cas. N'utilisez pas la valeur de retour à moins d'être certain que " -"seule la méthode :meth:`~generator.send` sera utilisée pour reprendre " -"l'exécution de la fonction génératrice." - -#: howto/functional.rst:598 -msgid "" -"In addition to :meth:`~generator.send`, there are two other methods on " -"generators:" -msgstr "" -"En plus de :meth:`~generator.send`, il existe deux autres méthodes " -"s'appliquant aux générateurs :" - -# Énumération -#: howto/functional.rst:601 -msgid "" -":meth:`throw(value) ` is used to raise an exception inside " -"the generator; the exception is raised by the ``yield`` expression where the " -"generator's execution is paused." -msgstr "" -":meth:`throw(value) ` permet de lever une exception dans le " -"générateur ; celle-ci est levée par l'expression ``yield`` à l'endroit où " -"l'exécution a été mise en pause." - -#: howto/functional.rst:605 -#, fuzzy -msgid "" -":meth:`~generator.close` sends a :exc:`GeneratorExit` exception to the " -"generator to terminate the iteration. On receiving this exception, the " -"generator's code must either raise :exc:`GeneratorExit` " -"or :exc:`StopIteration`; catching the exception and doing anything else is " -"illegal and will trigger a :exc:`RuntimeError`. :meth:`~generator.close` " -"will also be called by Python's garbage collector when the generator is " -"garbage-collected." -msgstr "" -":meth:`~generator.close` lève une exception :exc:`GeneratorExit` dans le " -"générateur afin de terminer l'itération. Le code du générateur qui reçoit " -"cette exception doit lever à son tour :exc:`GeneratorExit` " -"ou :exc:`StopIteration`. Il est illégal d'attraper cette exception et de " -"faire quoi que ce soit d'autre, ceci déclenche une " -"erreur :exc:`RuntimeError`. Lorsque le ramasse-miette de Python collecte le " -"générateur, il appelle sa méthode :meth:`~generator.close`." - -#: howto/functional.rst:613 -msgid "" -"If you need to run cleanup code when a :exc:`GeneratorExit` occurs, I " -"suggest using a ``try: ... finally:`` suite instead of " -"catching :exc:`GeneratorExit`." -msgstr "" -"Si vous devez exécuter du code pour faire le ménage lors " -"d'une :exc:`GeneratorExit`, nous vous suggérons d'utiliser une structure " -"``try: ... finally`` plutôt que d'attraper :exc:`GeneratorExit`." - -#: howto/functional.rst:616 -msgid "" -"The cumulative effect of these changes is to turn generators from one-way " -"producers of information into both producers and consumers." -msgstr "" -"Ces changements cumulés transforment les générateurs de producteurs " -"unidirectionnels d'information vers un statut hybride à la fois producteur " -"et consommateur." - -#: howto/functional.rst:619 -msgid "" -"Generators also become **coroutines**, a more generalized form of " -"subroutines. Subroutines are entered at one point and exited at another " -"point (the top of the function, and a ``return`` statement), but coroutines " -"can be entered, exited, and resumed at many different points (the ``yield`` " -"statements)." -msgstr "" -"Les générateurs sont également devenus des **coroutines**, une forme " -"généralisée de sous-routine. L'exécution des sous-routines démarre à un " -"endroit et se termine à un autre (au début de la fonction et au niveau de " -"l'instruction ``return``), tandis qu'il est possible d'entrer, de sortir ou " -"de reprendre une coroutine à différents endroits (les instructions " -"``yield``)." - -#: howto/functional.rst:626 -msgid "Built-in functions" -msgstr "Fonctions natives" - -#: howto/functional.rst:628 -msgid "" -"Let's look in more detail at built-in functions often used with iterators." -msgstr "" -"Voyons un peu plus en détail les fonctions natives souvent utilisées de " -"concert avec les itérateurs." - -#: howto/functional.rst:630 -msgid "" -"Two of Python's built-in functions, :func:`map` and :func:`filter` duplicate " -"the features of generator expressions:" -msgstr "" -":func:`map` et :func:`filter` sont deux fonctions natives de Python qui " -"clonent les propriétés des expressions génératrices :" - -#: howto/functional.rst:633 -msgid "" -":func:`map(f, iterA, iterB, ...) ` returns an iterator over the sequence" -msgstr "" -":func:`map(f, iterA, iterB, ...) ` renvoie un itérateur sur une séquence" - -#: howto/functional.rst:634 -msgid "" -"``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." -msgstr "" -"``f(iterA[0], iterB[0]), f(iterA[1], iterB[1]), f(iterA[2], iterB[2]), ...``." - -#: howto/functional.rst:644 -msgid "You can of course achieve the same effect with a list comprehension." -msgstr "" -"Vous pouvez obtenir le même comportement à l'aide d'une compréhension de " -"liste." - -#: howto/functional.rst:646 -msgid "" -":func:`filter(predicate, iter) ` returns an iterator over all the " -"sequence elements that meet a certain condition, and is similarly duplicated " -"by list comprehensions. A **predicate** is a function that returns the " -"truth value of some condition; for use with :func:`filter`, the predicate " -"must take a single value." -msgstr "" -":func:`filter(predicate, iter) ` renvoie un itérateur sur l'ensemble " -"des éléments de la séquence qui vérifient une certaine condition. Son " -"comportement peut également être reproduit par une compréhension de liste. " -"Un **prédicat** est une fonction qui renvoie vrai ou faux en fonction d'une " -"certaine condition. Dans le cas de :func:`filter`, le prédicat ne doit " -"prendre qu'un seul argument." - -#: howto/functional.rst:659 -msgid "This can also be written as a list comprehension:" -msgstr "Cela peut se réécrire sous la forme d'une compréhension de liste :" - -#: howto/functional.rst:665 -msgid "" -":func:`enumerate(iter, start=0) ` counts off the elements in the " -"iterable returning 2-tuples containing the count (from *start*) and each " -"element. ::" -msgstr "" -":func:`enumerate(iter, start=0) ` énumère les éléments de " -"l'itérable en renvoyant des paires contenant le nombre d'éléments déjà " -"listés (depuis le *début*) et l'élément en cours ::" - -#: howto/functional.rst:675 -msgid "" -":func:`enumerate` is often used when looping through a list and recording " -"the indexes at which certain conditions are met::" -msgstr "" -":func:`enumerate` est souvent utilisée lorsque l'on souhaite boucler sur une " -"liste tout en listant les indices pour lesquels une certaine condition est " -"vérifiée ::" - -#: howto/functional.rst:683 -msgid "" -":func:`sorted(iterable, key=None, reverse=False) ` collects all the " -"elements of the iterable into a list, sorts the list, and returns the sorted " -"result. The *key* and *reverse* arguments are passed through to the " -"constructed list's :meth:`~list.sort` method. ::" -msgstr "" -":func:`sorted(iterable, key=None, reverse=False) ` rassemble tous " -"les éléments de l'itérable dans une liste, les classe et renvoie le résultat " -"classé. Les arguments *key* et *reverse* sont passés à la " -"méthode :meth:`~list.sort` de la liste ainsi construite. ::" - -#: howto/functional.rst:698 -msgid "" -"(For a more detailed discussion of sorting, see the :ref:`sortinghowto`.)" -msgstr "" -"(Pour plus de détails sur les algorithmes de tri, se référer " -"à :ref:`sortinghowto`.)" - -#: howto/functional.rst:701 -msgid "" -"The :func:`any(iter) ` and :func:`all(iter) ` built-ins look at " -"the truth values of an iterable's contents. :func:`any` returns ``True`` if " -"any element in the iterable is a true value, and :func:`all` returns " -"``True`` if all of the elements are true values:" -msgstr "" -"Les fonctions natives :func:`any(iter) ` et :func:`all(iter) ` " -"permettent d'observer les valeurs de vérité des éléments d'un " -"itérable. :func:`any` renvoie ``True`` si au moins un élément de l'itérable " -"s'évalue comme vrai et :func:`all` renvoie ``True`` si tous les éléments " -"s'évaluent comme vrai :" - -#: howto/functional.rst:720 -msgid "" -":func:`zip(iterA, iterB, ...) ` takes one element from each iterable " -"and returns them in a tuple::" -msgstr "" -":func:`zip(iterA, iterB, ...) ` rassemble un élément de chaque itérable " -"dans un *n*-uplet ::" - -#: howto/functional.rst:726 -msgid "" -"It doesn't construct an in-memory list and exhaust all the input iterators " -"before returning; instead tuples are constructed and returned only if " -"they're requested. (The technical term for this behaviour is `lazy " -"evaluation `__.)" -msgstr "" -"Cela ne construit pas de liste stockée en mémoire, ni ne vide les itérateurs " -"d'entrée avant de renvoyer sa valeur ; en réalité les *n*-uplets sont " -"construits et renvoyés au fur et à mesure (il s'agit techniquement parlant " -"d'un comportement d'`évaluation paresseuse `__)." - -#: howto/functional.rst:731 -msgid "" -"This iterator is intended to be used with iterables that are all of the same " -"length. If the iterables are of different lengths, the resulting stream " -"will be the same length as the shortest iterable. ::" -msgstr "" -"Cet itérateur suppose qu'il opère sur des itérables de même longueur. Si la " -"longueur des itérables diffère, le flux résultant a la même longueur que le " -"plus court des itérables. ::" - -#: howto/functional.rst:738 -msgid "" -"You should avoid doing this, though, because an element may be taken from " -"the longer iterators and discarded. This means you can't go on to use the " -"iterators further because you risk skipping a discarded element." -msgstr "" -"Toutefois, vous devez éviter de dépendre de ce comportement. En effet un " -"élément d'un des itérables les plus longs peut être retiré puis jeté (car " -"l'autre itérable est trop court). Cela signifie que vous ne pouvez alors " -"plus utiliser cet itérable car vous allez sauter l'élément qui vient d'être " -"jeté." - -#: howto/functional.rst:744 -msgid "The itertools module" -msgstr "Le module *itertools*" - -#: howto/functional.rst:746 -msgid "" -"The :mod:`itertools` module contains a number of commonly used iterators as " -"well as functions for combining several iterators. This section will " -"introduce the module's contents by showing small examples." -msgstr "" -"Le module :mod:`itertools` contient de nombreux itérateurs très utilisés, " -"ainsi que des fonctions pour combiner plusieurs itérateurs. Cette section " -"présente le contenu du module au travers de quelques exemples." - -#: howto/functional.rst:750 -msgid "The module's functions fall into a few broad classes:" -msgstr "Les fonctions du module se divisent en quelques grandes catégories :" - -# Énumération -#: howto/functional.rst:752 -msgid "Functions that create a new iterator based on an existing iterator." -msgstr "" -"les fonctions qui transforment un itérateur existant en un nouvel itérateur ;" - -# Énumération -#: howto/functional.rst:753 -msgid "Functions for treating an iterator's elements as function arguments." -msgstr "" -"les fonctions qui traitent les éléments d'un itérateur comme les arguments " -"d'une fonction ;" - -# Énumération -#: howto/functional.rst:754 -msgid "Functions for selecting portions of an iterator's output." -msgstr "" -"les fonctions qui permettent de sélectionner des portions de la sortie d'un " -"itérateur ;" - -# Énumération -#: howto/functional.rst:755 -msgid "A function for grouping an iterator's output." -msgstr "une fonction qui permet de grouper la sortie d'un itérateur." - -#: howto/functional.rst:758 -msgid "Creating new iterators" -msgstr "Créer de nouveaux itérateurs" - -#: howto/functional.rst:760 -msgid "" -":func:`itertools.count(start, step) ` returns an infinite " -"stream of evenly spaced values. You can optionally supply the starting " -"number, which defaults to 0, and the interval between numbers, which " -"defaults to 1::" -msgstr "" -":func:`itertools.count(start, step) ` renvoie un flux " -"infini de valeurs régulièrement espacées. Vous pouvez spécifier la valeur de " -"départ (par défaut, 0) et l'intervalle entre les nombres (par défaut, 1) ::" - -#: howto/functional.rst:771 -msgid "" -":func:`itertools.cycle(iter) ` saves a copy of the contents " -"of a provided iterable and returns a new iterator that returns its elements " -"from first to last. The new iterator will repeat these elements " -"infinitely. ::" -msgstr "" -":func:`itertools.cycle(iter) ` sauvegarde une copie du " -"contenu de l'itérable passé en argument et renvoie un nouvel itérateur qui " -"produit tous les éléments du premier au dernier et se répète indéfiniment. ::" - -#: howto/functional.rst:778 -msgid "" -":func:`itertools.repeat(elem, [n]) ` returns the provided " -"element *n* times, or returns the element endlessly if *n* is not " -"provided. ::" -msgstr "" -":func:`itertools.repeat(elem, [n]) ` renvoie l'élément " -"passé en argument *n* fois ou répète l'élément à l'infini si *n* n'est pas " -"spécifié. ::" - -#: howto/functional.rst:786 -msgid "" -":func:`itertools.chain(iterA, iterB, ...) ` takes an " -"arbitrary number of iterables as input, and returns all the elements of the " -"first iterator, then all the elements of the second, and so on, until all of " -"the iterables have been exhausted. ::" -msgstr "" -":func:`itertools.chain(iterA, iterB, ...) ` reçoit un " -"nombre arbitraire d'itérables en entrée et les concatène, renvoyant tous les " -"éléments du premier itérateur, puis tous ceux du second et ainsi de suite " -"jusqu'à ce que tous les itérables aient été épuisés. ::" - -#: howto/functional.rst:794 -msgid "" -":func:`itertools.islice(iter, [start], stop, [step]) ` " -"returns a stream that's a slice of the iterator. With a single *stop* " -"argument, it will return the first *stop* elements. If you supply a " -"starting index, you'll get *stop-start* elements, and if you supply a value " -"for *step*, elements will be skipped accordingly. Unlike Python's string " -"and list slicing, you can't use negative values for *start*, *stop*, or " -"*step*. ::" -msgstr "" -":func:`itertools.islice(iter, [start], stop, [step]) ` " -"renvoie une portion de l'itérateur. En passant seulement l'argument *stop*, " -"il renvoie les *stop* premiers éléments. En spécifiant un indice de début, " -"vous récupérez *stop - start* éléments ; utilisez *step* pour spécifier une " -"valeur de pas. Cependant vous ne pouvez pas utiliser de valeurs négatives " -"pour *start*, *stop* ou *step* (contrairement aux listes et chaînes de " -"caractères de Python). ::" - -#: howto/functional.rst:808 -msgid "" -":func:`itertools.tee(iter, [n]) ` replicates an iterator; it " -"returns *n* independent iterators that will all return the contents of the " -"source iterator. If you don't supply a value for *n*, the default is 2. " -"Replicating iterators requires saving some of the contents of the source " -"iterator, so this can consume significant memory if the iterator is large " -"and one of the new iterators is consumed more than the others. ::" -msgstr "" -":func:`itertools.tee(iter, [n]) ` duplique un itérateur et " -"renvoie *n* itérateurs indépendants, chacun copiant le contenu de " -"l'itérateur source. La valeur par défaut pour *n* est 2. La réplication des " -"itérateurs nécessite la sauvegarde d'une partie du contenu de l'itérateur " -"source, ce qui peut consommer beaucoup de mémoire si l'itérateur est grand " -"et que l'un des nouveaux itérateurs est plus consommé que les autres. ::" - -#: howto/functional.rst:827 -msgid "Calling functions on elements" -msgstr "Appliquer des fonctions au contenu des itérateurs" - -#: howto/functional.rst:829 -msgid "" -"The :mod:`operator` module contains a set of functions corresponding to " -"Python's operators. Some examples are :func:`operator.add(a, b) " -"` (adds two values), :func:`operator.ne(a, b) ` " -"(same as ``a != b``), and :func:`operator.attrgetter('id') " -"` (returns a callable that fetches the ``.id`` " -"attribute)." -msgstr "" -"Le module :mod:`operator` rassemble des fonctions équivalentes aux " -"opérateurs Python. Par exemple, :func:`operator.add(a,b) ` " -"additionne deux valeurs, :func:`operator.ne(a, b) ` est " -"équivalent à ``a != b`` et :func:`operator.attrgetter('id') " -"` renvoie un objet appelable qui récupère l'attribut " -"``.id``." - -#: howto/functional.rst:835 -msgid "" -":func:`itertools.starmap(func, iter) ` assumes that the " -"iterable will return a stream of tuples, and calls *func* using these tuples " -"as the arguments::" -msgstr "" -":func:`itertools.starmap(func, iter) ` suppose que " -"l'itérable renvoie une séquence de *n*-uplets et appelle *func* en utilisant " -"tous les *n*-uplets comme arguments ::" - -#: howto/functional.rst:847 -msgid "Selecting elements" -msgstr "Sélectionner des éléments" - -#: howto/functional.rst:849 -msgid "" -"Another group of functions chooses a subset of an iterator's elements based " -"on a predicate." -msgstr "" -"Une autre catégorie de fonctions est celle permettant de sélectionner un " -"sous-ensemble des éléments de l'itérateur selon un prédicat donné." - -#: howto/functional.rst:852 -msgid "" -":func:`itertools.filterfalse(predicate, iter) ` is " -"the opposite of :func:`filter`, returning all elements for which the " -"predicate returns false::" -msgstr "" -":func:`itertools.filterfalse(predicate, iter) ` est " -"l'opposé de :func:`filter` et renvoie tous les éléments pour lesquels le " -"prédicat est faux ::" - -#: howto/functional.rst:859 -msgid "" -":func:`itertools.takewhile(predicate, iter) ` returns " -"elements for as long as the predicate returns true. Once the predicate " -"returns false, the iterator will signal the end of its results. ::" -msgstr "" -":func:`itertools.takewhile(predicate, iter) ` renvoie " -"les éléments de l'itérateur tant que ceux-ci vérifient le prédicat. Dès lors " -"que le prédicat renvoie faux, l'itération s'arrête. ::" - -#: howto/functional.rst:872 -msgid "" -":func:`itertools.dropwhile(predicate, iter) ` discards " -"elements while the predicate returns true, and then returns the rest of the " -"iterable's results. ::" -msgstr "" -":func:`itertools.dropwhile(predicate, iter) ` supprime " -"des éléments tant que le prédicat renvoie vrai puis renvoie le reste des " -"éléments de l'itérable. ::" - -#: howto/functional.rst:882 -msgid "" -":func:`itertools.compress(data, selectors) ` takes two " -"iterators and returns only those elements of *data* for which the " -"corresponding element of *selectors* is true, stopping whenever either one " -"is exhausted::" -msgstr "" -":func:`itertools.compress(data, selectors) ` prend un " -"itérateur *data* et un itérateur *selectors* et renvoie les éléments de " -"*data* pour lesquels l'élément correspondant de *selectors* est évalué à " -"vrai. L'itération s'arrête lorsque l'un des deux itérateurs est épuisé ::" - -#: howto/functional.rst:891 -msgid "Combinatoric functions" -msgstr "Fonctions combinatoires" - -#: howto/functional.rst:893 -msgid "" -"The :func:`itertools.combinations(iterable, r) ` " -"returns an iterator giving all possible *r*-tuple combinations of the " -"elements contained in *iterable*. ::" -msgstr "" -":func:`itertools.combinations(iterable, r) ` renvoie " -"un itérateur qui produit toutes les combinaisons possibles de *r*-uplets des " -"éléments de *iterable*. ::" - -#: howto/functional.rst:908 -msgid "" -"The elements within each tuple remain in the same order as *iterable* " -"returned them. For example, the number 1 is always before 2, 3, 4, or 5 in " -"the examples above. A similar " -"function, :func:`itertools.permutations(iterable, r=None) " -"`, removes this constraint on the order, returning " -"all possible arrangements of length *r*::" -msgstr "" -"Les éléments de chaque *n*-uplet sont ordonnés dans le même ordre que leur " -"apparition dans *iterable*. Ainsi, dans les exemples ci-dessus, le nombre 1 " -"se trouve toujours avant 2, 3, 4 ou 5. La " -"fonction :func:`itertools.permutations(iterable, r=None) " -"` supprime la contrainte sur l'ordre et renvoie tous " -"les arrangements possibles de longueur *r* ::" - -#: howto/functional.rst:927 -msgid "" -"If you don't supply a value for *r* the length of the iterable is used, " -"meaning that all the elements are permuted." -msgstr "" -"Si vous ne spécifiez pas de valeur pour *r*, la longueur de l'itérable est " -"utilisée par défaut, c'est-à-dire que toutes les permutations de la séquence " -"sont renvoyées." - -#: howto/functional.rst:930 -msgid "" -"Note that these functions produce all of the possible combinations by " -"position and don't require that the contents of *iterable* are unique::" -msgstr "" -"Notez que ces fonctions génèrent toutes les combinaisons possibles en se " -"basant sur la position des éléments et ne requièrent pas que les éléments de " -"*iterable* soient uniques ::" - -#: howto/functional.rst:937 -msgid "" -"The identical tuple ``('a', 'a', 'b')`` occurs twice, but the two 'a' " -"strings came from different positions." -msgstr "" -"Le triplet ``('a', 'a', 'b')`` apparaît deux fois mais les deux chaînes de " -"caractères ``'a'`` proviennent de deux positions différentes." - -#: howto/functional.rst:940 -msgid "" -"The :func:`itertools.combinations_with_replacement(iterable, r) " -"` function relaxes a different " -"constraint: elements can be repeated within a single tuple. Conceptually an " -"element is selected for the first position of each tuple and then is " -"replaced before the second element is selected. ::" -msgstr "" -"La fonction :func:`itertools.combinations_with_replacement(iterable, r) " -"` assouplit une autre contrainte : " -"les éléments peuvent être répétés au sein du même *n*-uplet. Il s'agit d'un " -"tirage avec remise : le premier élément sélectionné pour chaque *n*-uplet " -"est replacé dans la séquence avant le tirage du deuxième. ::" - -#: howto/functional.rst:955 -msgid "Grouping elements" -msgstr "Grouper les éléments" - -#: howto/functional.rst:957 -msgid "" -"The last function I'll discuss, :func:`itertools.groupby(iter, " -"key_func=None) `, is the most complicated. " -"``key_func(elem)`` is a function that can compute a key value for each " -"element returned by the iterable. If you don't supply a key function, the " -"key is simply each element itself." -msgstr "" -"La dernière fonction que allons voir, :func:`itertools.groupby(iter, " -"key_func=None) ` est la plus complexe. ``key_func(elem)`` " -"est une fonction qui produit une clé pour chaque élément renvoyé par " -"l'itérable. Si vous ne spécifiez pas de fonction *key*, alors celle-ci est " -"l'identité par défaut (c'est-à-dire que la clé d'un élément est l'élément " -"lui-même)." - -#: howto/functional.rst:962 -msgid "" -":func:`~itertools.groupby` collects all the consecutive elements from the " -"underlying iterable that have the same key value, and returns a stream of 2-" -"tuples containing a key value and an iterator for the elements with that key." -msgstr "" -":func:`~itertools.groupby` rassemble tous éléments consécutifs de l'itérable " -"sous-jacent qui ont la même clé et renvoie un flux de paires contenant la " -"clé et un itérateur produisant la liste des éléments pour cette clé." - -#: howto/functional.rst:990 -msgid "" -":func:`~itertools.groupby` assumes that the underlying iterable's contents " -"will already be sorted based on the key. Note that the returned iterators " -"also use the underlying iterable, so you have to consume the results of " -"iterator-1 before requesting iterator-2 and its corresponding key." -msgstr "" -":func:`~itertools.groupby` fait l'hypothèse que le contenu de l'itérable " -"sous-jacent est d'ores et déjà ordonné en fonction de la clé. Notez que les " -"itérateurs générés utilisent également l'itérable sous-jacent. Vous devez " -"donc consommer l'intégralité des résultats du premier itérateur renvoyé " -"(*iterator-1* dans l'exemple ci-dessus) avant de récupérer le deuxième " -"itérateur (*iterator-2* dans l'exemple ci-dessus) et la clé à laquelle il " -"est associé." - -#: howto/functional.rst:997 -msgid "The functools module" -msgstr "Le module *functools*" - -#: howto/functional.rst:999 -msgid "" -"The :mod:`functools` module contains some higher-order functions. A **higher-" -"order function** takes one or more functions as input and returns a new " -"function. The most useful tool in this module is " -"the :func:`functools.partial` function." -msgstr "" -"Le module :mod:`functools` contient quelques fonctions d'ordre supérieur. " -"Une **fonction d'ordre supérieur** prend une ou plusieurs fonctions en " -"entrée et renvoie une nouvelle fonction. L'outil le plus important de ce " -"module est la fonction :func:`functools.partial`." - -#: howto/functional.rst:1004 -msgid "" -"For programs written in a functional style, you'll sometimes want to " -"construct variants of existing functions that have some of the parameters " -"filled in. Consider a Python function ``f(a, b, c)``; you may wish to create " -"a new function ``g(b, c)`` that's equivalent to ``f(1, b, c)``; you're " -"filling in a value for one of ``f()``'s parameters. This is called " -"\"partial function application\"." -msgstr "" -"En programmant dans un style fonctionnel, il est courant de vouloir " -"construire des variantes de fonctions existantes dont certains paramètres " -"sont prédéfinis. Par exemple, considérons une fonction Python ``f(a, b, " -"c)``. Si vous voulez une nouvelle fonction ``g(b, c)`` équivalente à ``f(1, " -"b, c)``, c'est-à-dire fixer le premier paramètre de ``f()``. La fonction " -"``g()`` est une appelée « application partielle » de ``f()``." - -#: howto/functional.rst:1010 -msgid "" -"The constructor for :func:`~functools.partial` takes the arguments " -"``(function, arg1, arg2, ..., kwarg1=value1, kwarg2=value2)``. The " -"resulting object is callable, so you can just call it to invoke ``function`` " -"with the filled-in arguments." -msgstr "" -"Le constructeur de :func:`~functools.partial` prend en argument ``(fonction, " -"arg1, arg2, ..., kwarg1=value1, kwarg2=value2, ...)``. Un appel à l'objet " -"ainsi créé invoque la fonction ``fonction`` avec les arguments spécifiés." - -#: howto/functional.rst:1015 -msgid "Here's a small but realistic example::" -msgstr "Voici un exemple court mais réaliste ::" - -#: howto/functional.rst:1027 -msgid "" -":func:`functools.reduce(func, iter, [initial_value]) ` " -"cumulatively performs an operation on all the iterable's elements and, " -"therefore, can't be applied to infinite iterables. *func* must be a function " -"that takes two elements and returns a single " -"value. :func:`functools.reduce` takes the first two elements A and B " -"returned by the iterator and calculates ``func(A, B)``. It then requests " -"the third element, C, calculates ``func(func(A, B), C)``, combines this " -"result with the fourth element returned, and continues until the iterable is " -"exhausted. If the iterable returns no values at all, a :exc:`TypeError` " -"exception is raised. If the initial value is supplied, it's used as a " -"starting point and ``func(initial_value, A)`` is the first calculation. ::" -msgstr "" -":func:`functools.reduce(func, iter, [initial_value]) ` " -"applique une opération cumulative à tous les éléments d'un itérable et ne " -"peut donc être appliquée à des itérables infinis. *func* doit être une " -"fonction qui prend deux éléments et renvoie une seule " -"valeur. :func:`functools.reduce` prend les deux premiers éléments A et B " -"renvoyés par l'itérateur et calcule ``func(A, B)``. Elle extrait ensuite le " -"troisième élément C et calcule ``func(func(A, B), C)`` puis combine ce " -"résultat avec le quatrième élément renvoyé etc. jusqu'à épuisement de " -"l'itérable. Une exception :exc:`TypeError` est levée si l'itérable ne " -"renvoie aucune valeur. La valeur initiale *initial_value*, si spécifiée, est " -"utilisée comme point de départ et le premier calcul est alors " -"``func(inital_value, A)``. ::" - -#: howto/functional.rst:1051 -msgid "" -"If you use :func:`operator.add` with :func:`functools.reduce`, you'll add up " -"all the elements of the iterable. This case is so common that there's a " -"special built-in called :func:`sum` to compute it:" -msgstr "" -"Si vous combinez :func:`operator.add` avec :func:`functools.reduce`, vous " -"allez additionner tous les éléments de l'itérable. Ce cas est suffisamment " -"courant pour qu'il existe une fonction native :func:`sum` qui lui est " -"équivalent :" - -#: howto/functional.rst:1063 -msgid "" -"For many uses of :func:`functools.reduce`, though, it can be clearer to just " -"write the obvious :keyword:`for` loop::" -msgstr "" -"Cependant, il peut être plus lisible dans de nombreuses situations " -"impliquant :func:`functools.reduce` de simplement écrire la " -"boucle :keyword:`for` ::" - -#: howto/functional.rst:1075 -msgid "" -"A related function is :func:`itertools.accumulate(iterable, " -"func=operator.add) `. It performs the same " -"calculation, but instead of returning only the final " -"result, :func:`~itertools.accumulate` returns an iterator that also yields " -"each partial result::" -msgstr "" -":func:`itertools.accumulate(iterable, func=operator.add) " -"` est une fonction similaire qui réalise le même " -"calcul mais, plutôt que de renvoyer seulement le résultat " -"final, :func:`~itertools.accumulate` renvoie un itérateur qui génère la " -"séquence de tous les résultats intermédiaires ::" - -#: howto/functional.rst:1088 -msgid "The operator module" -msgstr "Le module *operator*" - -#: howto/functional.rst:1090 -msgid "" -"The :mod:`operator` module was mentioned earlier. It contains a set of " -"functions corresponding to Python's operators. These functions are often " -"useful in functional-style code because they save you from writing trivial " -"functions that perform a single operation." -msgstr "" -"Le module :mod:`operator` mentionné précédemment contient un ensemble de " -"fonctions reproduisant les opérateurs de Python. Ces fonctions sont souvent " -"utiles en programmation fonctionnelle car elles permettent de ne pas avoir à " -"écrire des fonctions triviales qui ne réalisent qu'une seule opération." - -#: howto/functional.rst:1095 -msgid "Some of the functions in this module are:" -msgstr "Voici quelques fonctions de ce module :" - -# Énumération -#: howto/functional.rst:1097 -msgid "" -"Math operations: ``add()``, ``sub()``, ``mul()``, ``floordiv()``, " -"``abs()``, ..." -msgstr "" -"les opérations mathématiques : ``add()``, ``sub()``, ``mul()``, " -"``floordiv()``, ``abs()``… ;" - -# Énumération -#: howto/functional.rst:1098 -msgid "Logical operations: ``not_()``, ``truth()``." -msgstr "les opérations logiques : ``not_()``, ``truth()`` ;" - -# Énumération -#: howto/functional.rst:1099 -msgid "Bitwise operations: ``and_()``, ``or_()``, ``invert()``." -msgstr "les opérations bit à bit : ``and_()``, ``or_()``, ``invert()`` ;" - -# Énumération -#: howto/functional.rst:1100 -msgid "" -"Comparisons: ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, and ``ge()``." -msgstr "" -"les comparaisons : ``eq()``, ``ne()``, ``lt()``, ``le()``, ``gt()``, et " -"``ge()`` ;" - -# Énumération -#: howto/functional.rst:1101 -msgid "Object identity: ``is_()``, ``is_not()``." -msgstr "l'identification des objets : ``is_()``, ``is_not()``." - -#: howto/functional.rst:1103 -msgid "Consult the operator module's documentation for a complete list." -msgstr "" -"Veuillez vous référer à la documentation du module *operator* pour une liste " -"complète." - -#: howto/functional.rst:1107 -msgid "Small functions and the lambda expression" -msgstr "Expressions lambda et fonctions courtes" - -#: howto/functional.rst:1109 -msgid "" -"When writing functional-style programs, you'll often need little functions " -"that act as predicates or that combine elements in some way." -msgstr "" -"Dans un style de programmation fonctionnel, il est courant d'avoir besoin de " -"petites fonctions utilisées comme prédicats ou pour combiner des éléments " -"d'une façon ou d'une autre." - -#: howto/functional.rst:1112 -msgid "" -"If there's a Python built-in or a module function that's suitable, you don't " -"need to define a new function at all::" -msgstr "" -"S'il existe une fonction native Python ou une fonction d'un module qui " -"convient, vous n'avez pas besoin de définir de nouvelle fonction ::" - -#: howto/functional.rst:1118 -msgid "" -"If the function you need doesn't exist, you need to write it. One way to " -"write small functions is to use the :keyword:`lambda` expression. " -"``lambda`` takes a number of parameters and an expression combining these " -"parameters, and creates an anonymous function that returns the value of the " -"expression::" -msgstr "" -"Si la fonction dont vous avez besoin n'existe pas, vous devez l'écrire. Une " -"façon d'écrire des fonctions courtes consiste à utiliser les " -"expressions :keyword:`lambda`. ``lambda`` prend plusieurs paramètres et une " -"expression combinant ces derniers afin de créer une fonction anonyme qui " -"renvoie la valeur de cette expression ::" - -#: howto/functional.rst:1127 -msgid "" -"An alternative is to just use the ``def`` statement and define a function in " -"the usual way::" -msgstr "" -"Une autre façon de faire est de simplement utiliser l'instruction ``def`` " -"afin de définir une fonction de la manière habituelle ::" - -#: howto/functional.rst:1136 -msgid "" -"Which alternative is preferable? That's a style question; my usual course " -"is to avoid using ``lambda``." -msgstr "" -"La méthode à préférer est une question de style, en général l'auteur évite " -"l'utilisation de ``lambda``." - -#: howto/functional.rst:1139 -msgid "" -"One reason for my preference is that ``lambda`` is quite limited in the " -"functions it can define. The result has to be computable as a single " -"expression, which means you can't have multiway ``if... elif... else`` " -"comparisons or ``try... except`` statements. If you try to do too much in a " -"``lambda`` statement, you'll end up with an overly complicated expression " -"that's hard to read. Quick, what's the following code doing? ::" -msgstr "" -"Une des raisons est que ``lambda`` ne peut pas définir toutes les fonctions. " -"Le résultat doit pouvoir se calculer en une seule expression, ce qui " -"signifie qu'il est impossible d'avoir des comparaisons ``if ... elif ... " -"else`` à plusieurs branches ou des structures ``try ... except``. Si vous " -"essayez de trop en faire dans une expression ``lambda``, vous finirez avec " -"une expression illisible. Par exemple, pouvez-vous dire du premier coup " -"d’œil ce que fait le code ci-dessous ? ::" - -#: howto/functional.rst:1149 -msgid "" -"You can figure it out, but it takes time to disentangle the expression to " -"figure out what's going on. Using a short nested ``def`` statements makes " -"things a little bit better::" -msgstr "" -"Vous pouvez sûrement comprendre ce que fait ce code mais cela prend du temps " -"de démêler l'expression pour y voir plus clair. Une clause ``def`` concise " -"améliore la situation ::" - -#: howto/functional.rst:1159 -msgid "But it would be best of all if I had simply used a ``for`` loop::" -msgstr "" -"Toutefois l'idéal aurait été de simplement se contenter d'une boucle " -"``for`` ::" - -#: howto/functional.rst:1165 -msgid "Or the :func:`sum` built-in and a generator expression::" -msgstr "" -"ou de la fonction native :func:`sum` et d'une expression génératrice ::" - -#: howto/functional.rst:1169 -msgid "" -"Many uses of :func:`functools.reduce` are clearer when written as ``for`` " -"loops." -msgstr "" -"Les boucles ``for`` sont souvent plus lisibles que la " -"fonction :func:`functools.reduce`." - -#: howto/functional.rst:1171 -msgid "" -"Fredrik Lundh once suggested the following set of rules for refactoring uses " -"of ``lambda``:" -msgstr "" -"Frederik Lundh a suggéré quelques règles pour le réusinage de code " -"impliquant les expressions ``lambda`` :" - -#: howto/functional.rst:1174 -msgid "Write a lambda function." -msgstr "Écrire une fonction lambda." - -#: howto/functional.rst:1175 -msgid "Write a comment explaining what the heck that lambda does." -msgstr "" -"Écrire un commentaire qui explique ce que fait cette satanée fonction lambda." - -#: howto/functional.rst:1176 -msgid "" -"Study the comment for a while, and think of a name that captures the essence " -"of the comment." -msgstr "" -"Scruter le commentaire pendant quelque temps et réfléchir à un nom qui " -"synthétise son essence." - -#: howto/functional.rst:1178 -msgid "Convert the lambda to a def statement, using that name." -msgstr "" -"Réécrire la fonction lambda en une définition *def* en utilisant ce nom." - -#: howto/functional.rst:1179 -msgid "Remove the comment." -msgstr "Effacer le commentaire." - -#: howto/functional.rst:1181 -msgid "" -"I really like these rules, but you're free to disagree about whether this " -"lambda-free style is better." -msgstr "" -"J'aime beaucoup ces règles, mais vous êtes libre de ne pas être d'accord et " -"de préférer un style avec des lambdas." - -#: howto/functional.rst:1186 -msgid "Revision History and Acknowledgements" -msgstr "Historique des modifications et remerciements" - -#: howto/functional.rst:1188 -msgid "" -"The author would like to thank the following people for offering " -"suggestions, corrections and assistance with various drafts of this article: " -"Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim Jewett, Mike " -"Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake Winton." -msgstr "" -"L'auteur souhaiterait remercier les personnes suivantes pour leurs " -"suggestions, leurs corrections et leur aide sur les premières versions de " -"cet article : Ian Bicking, Nick Coghlan, Nick Efford, Raymond Hettinger, Jim " -"Jewett, Mike Krell, Leandro Lameiro, Jussi Salmela, Collin Winter, Blake " -"Winton." - -#: howto/functional.rst:1193 -msgid "Version 0.1: posted June 30 2006." -msgstr "Version 0.1 : publiée le 30 juin 2006." - -#: howto/functional.rst:1195 -msgid "Version 0.11: posted July 1 2006. Typo fixes." -msgstr "" -"Version 0.11 : publiée le 1\\ :sup:`er` juillet 2006. Correction " -"orthographique." - -#: howto/functional.rst:1197 -msgid "" -"Version 0.2: posted July 10 2006. Merged genexp and listcomp sections into " -"one. Typo fixes." -msgstr "" -"Version 0.2 : publiée le 10 juillet 2006. Fusion des sections *genexp* et " -"*listcomp*. Correction orthographique." - -#: howto/functional.rst:1200 -msgid "" -"Version 0.21: Added more references suggested on the tutor mailing list." -msgstr "" -"Version 0.21 : ajout de plusieurs références suggérées sur la liste de " -"diffusion *tutor*." - -#: howto/functional.rst:1202 -msgid "" -"Version 0.30: Adds a section on the ``functional`` module written by Collin " -"Winter; adds short section on the operator module; a few other edits." -msgstr "" -"Version 0.30 : ajout d'une section sur le module ``functional`` écrite par " -"Collin Winter ; ajout d'une courte section sur le module ``operator`` ; " -"quelques autres modifications." - -#: howto/functional.rst:1207 -msgid "References" -msgstr "Références" - -#: howto/functional.rst:1210 -msgid "General" -msgstr "Général" - -#: howto/functional.rst:1212 -msgid "" -"**Structure and Interpretation of Computer Programs**, by Harold Abelson and " -"Gerald Jay Sussman with Julie Sussman. The book can be found at https://" -"mitpress.mit.edu/sicp. In this classic textbook of computer science, " -"chapters 2 and 3 discuss the use of sequences and streams to organize the " -"data flow inside a program. The book uses Scheme for its examples, but many " -"of the design approaches described in these chapters are applicable to " -"functional-style Python code." -msgstr "" -"**Structure and Interpretation of Computer Programs** par Harold Abelson et " -"Gerald Jay Sussman avec Julie Sussman. Disponible à l'adresse https://" -"mitpress.mit.edu/sicp. Les chapitres 2 et 3 de ce classique en informatique " -"décrivent l'utilisation des séquences et des flux pour organiser le flot de " -"données dans un programme. Les exemples du livre utilisent le langage Scheme " -"mais la plupart des approches décrites dans ces chapitres s'appliquent au " -"style fonctionnel de Python." - -#: howto/functional.rst:1220 -msgid "" -"https://defmacro.org/2006/06/19/fp.html: A general introduction to " -"functional programming that uses Java examples and has a lengthy historical " -"introduction." -msgstr "" -"https://defmacro.org/2006/06/19/fp.html : une présentation générale de la " -"programmation fonctionnelle avec une longue introduction historique et des " -"exemples en Java." - -#: howto/functional.rst:1223 -msgid "" -"https://en.wikipedia.org/wiki/Functional_programming: General Wikipedia " -"entry describing functional programming." -msgstr "" -"https://fr.wikipedia.org/wiki/Programmation_fonctionnelle : l'entrée " -"Wikipédia qui décrit la programmation fonctionnelle." - -#: howto/functional.rst:1226 -msgid "https://en.wikipedia.org/wiki/Coroutine: Entry for coroutines." -msgstr "" -"https://fr.wikipedia.org/wiki/Coroutine : l'entrée pour les coroutines." - -#: howto/functional.rst:1228 -msgid "" -"https://en.wikipedia.org/wiki/Partial_application: Entry for the concept of " -"partial function application." -msgstr "" -"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de " -"*curryfication* (application partielle de fonctions)." - -#: howto/functional.rst:1230 -msgid "" -"https://en.wikipedia.org/wiki/Currying: Entry for the concept of currying." -msgstr "" -"https://fr.wikipedia.org/wiki/Curryfication : l'entrée pour le concept de " -"curryfication (création d'applications partielles)." - -#: howto/functional.rst:1233 -msgid "Python-specific" -msgstr "Spécifique à Python" - -#: howto/functional.rst:1235 -msgid "" -"https://gnosis.cx/TPiP/: The first chapter of David Mertz's book :title-" -"reference:`Text Processing in Python` discusses functional programming for " -"text processing, in the section titled \"Utilizing Higher-Order Functions in " -"Text Processing\"." -msgstr "" -"https://gnosis.cx/TPiP/ : le premier chapitre du livre de David Mertz :title-" -"reference:`Text Processing in Python` présente l'utilisation de la " -"programmation fonctionnelle pour le traitement de texte dans la section " -"« Utilisation des fonctions d'ordre supérieur pour le traitement de texte »." - -#: howto/functional.rst:1240 -msgid "" -"Mertz also wrote a 3-part series of articles on functional programming for " -"IBM's DeveloperWorks site; see `part 1 `__, `part 2 `__, and " -"`part 3 `__," -msgstr "" -"Mertz a également écrit une série de 3 articles (en anglais) sur la " -"programmation fonctionnelle pour le site DeveloperWorks d'IBM. Voir `partie " -"1 `__, `partie 2 `__ et `partie 3 `__," - -#: howto/functional.rst:1248 -msgid "Python documentation" -msgstr "Documentation Python" - -#: howto/functional.rst:1250 -msgid "Documentation for the :mod:`itertools` module." -msgstr "Documentation du module :mod:`itertools`." - -#: howto/functional.rst:1252 -msgid "Documentation for the :mod:`functools` module." -msgstr "Documentation du module :mod:`functools`." - -#: howto/functional.rst:1254 -msgid "Documentation for the :mod:`operator` module." -msgstr "Documentation du module :mod:`operator`." - -#: howto/functional.rst:1256 -msgid ":pep:`289`: \"Generator Expressions\"" -msgstr ":pep:`289`: *\"Generator Expressions\"*" - -#: howto/functional.rst:1258 -msgid "" -":pep:`342`: \"Coroutines via Enhanced Generators\" describes the new " -"generator features in Python 2.5." -msgstr "" -":pep:`342`: *\"Coroutines via Enhanced Generators\"* décrit les nouvelles " -"fonctionnalités des générateurs en Python 2.5." diff --git a/howto/gdb_helpers.po b/howto/gdb_helpers.po deleted file mode 100644 index fd7bef82f6..0000000000 --- a/howto/gdb_helpers.po +++ /dev/null @@ -1,388 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: howto/gdb_helpers.rst:5 -msgid "Debugging C API extensions and CPython Internals with GDB" -msgstr "" - -#: howto/gdb_helpers.rst:9 -msgid "" -"This document explains how the Python GDB extension, ``python-gdb.py``, can " -"be used with the GDB debugger to debug CPython extensions and the CPython " -"interpreter itself." -msgstr "" - -#: howto/gdb_helpers.rst:13 -msgid "" -"When debugging low-level problems such as crashes or deadlocks, a low-level " -"debugger, such as GDB, is useful to diagnose and correct the issue. By " -"default, GDB (or any of its front-ends) doesn't support high-level " -"information specific to the CPython interpreter." -msgstr "" - -#: howto/gdb_helpers.rst:18 -msgid "" -"The ``python-gdb.py`` extension adds CPython interpreter information to GDB. " -"The extension helps introspect the stack of currently executing Python " -"functions. Given a Python object represented by a :c:expr:`PyObject *` " -"pointer, the extension surfaces the type and value of the object." -msgstr "" - -#: howto/gdb_helpers.rst:23 -msgid "" -"Developers who are working on CPython extensions or tinkering with parts of " -"CPython that are written in C can use this document to learn how to use the " -"``python-gdb.py`` extension with GDB." -msgstr "" - -#: howto/gdb_helpers.rst:29 -msgid "" -"This document assumes that you are familiar with the basics of GDB and the " -"CPython C API. It consolidates guidance from the `devguide `_ and the `Python wiki `_." -msgstr "" - -#: howto/gdb_helpers.rst:36 -msgid "Prerequisites" -msgstr "" - -#: howto/gdb_helpers.rst:38 -msgid "You need to have:" -msgstr "" - -#: howto/gdb_helpers.rst:40 -msgid "" -"GDB 7 or later. (For earlier versions of GDB, see ``Misc/gdbinit`` in the " -"sources of Python 3.11 or earlier.)" -msgstr "" - -#: howto/gdb_helpers.rst:42 -msgid "" -"GDB-compatible debugging information for Python and any extension you are " -"debugging." -msgstr "" - -#: howto/gdb_helpers.rst:44 -msgid "The ``python-gdb.py`` extension." -msgstr "" - -#: howto/gdb_helpers.rst:46 -msgid "" -"The extension is built with Python, but might be distributed separately or " -"not at all. Below, we include tips for a few common systems as examples. " -"Note that even if the instructions match your system, they might be outdated." -msgstr "" - -#: howto/gdb_helpers.rst:52 -msgid "Setup with Python built from source" -msgstr "" - -#: howto/gdb_helpers.rst:54 -msgid "" -"When you build CPython from source, debugging information should be " -"available, and the build should add a ``python-gdb.py`` file to the root " -"directory of your repository." -msgstr "" - -#: howto/gdb_helpers.rst:58 -msgid "" -"To activate support, you must add the directory containing ``python-gdb.py`` " -"to GDB's \"auto-load-safe-path\". If you haven't done this, recent versions " -"of GDB will print out a warning with instructions on how to do this." -msgstr "" - -#: howto/gdb_helpers.rst:65 -msgid "" -"If you do not see instructions for your version of GDB, put this in your " -"configuration file (``~/.gdbinit`` or ``~/.config/gdb/gdbinit``)::" -msgstr "" - -#: howto/gdb_helpers.rst:70 -msgid "You can also add multiple paths, separated by ``:``." -msgstr "" - -#: howto/gdb_helpers.rst:74 -msgid "Setup for Python from a Linux distro" -msgstr "" - -#: howto/gdb_helpers.rst:76 -msgid "" -"Most Linux systems provide debug information for the system Python in a " -"package called ``python-debuginfo``, ``python-dbg`` or similar. For example:" -msgstr "" - -#: howto/gdb_helpers.rst:80 -msgid "Fedora:" -msgstr "" - -#: howto/gdb_helpers.rst:87 -msgid "Ubuntu:" -msgstr "" - -#: howto/gdb_helpers.rst:93 -msgid "" -"On several recent Linux systems, GDB can download debugging symbols " -"automatically using *debuginfod*. However, this will not install the " -"``python-gdb.py`` extension; you generally do need to install the debug info " -"package separately." -msgstr "" - -#: howto/gdb_helpers.rst:100 -msgid "Using the Debug build and Development mode" -msgstr "" - -#: howto/gdb_helpers.rst:102 -msgid "For easier debugging, you might want to:" -msgstr "" - -#: howto/gdb_helpers.rst:104 -msgid "" -"Use a :ref:`debug build ` of Python. (When building from " -"source, use ``configure --with-pydebug``. On Linux distros, install and run " -"a package like ``python-debug`` or ``python-dbg``, if available.)" -msgstr "" - -#: howto/gdb_helpers.rst:107 -msgid "Use the runtime :ref:`development mode ` (``-X dev``)." -msgstr "" - -#: howto/gdb_helpers.rst:109 -msgid "" -"Both enable extra assertions and disable some optimizations. Sometimes this " -"hides the bug you are trying to find, but in most cases they make the " -"process easier." -msgstr "" - -#: howto/gdb_helpers.rst:115 -msgid "Using the ``python-gdb`` extension" -msgstr "" - -#: howto/gdb_helpers.rst:117 -msgid "" -"When the extension is loaded, it provides two main features: pretty printers " -"for Python values, and additional commands." -msgstr "" - -#: howto/gdb_helpers.rst:121 -msgid "Pretty-printers" -msgstr "" - -#: howto/gdb_helpers.rst:123 -msgid "" -"This is what a GDB backtrace looks like (truncated) when this extension is " -"enabled::" -msgstr "" - -#: howto/gdb_helpers.rst:142 -msgid "" -"Notice how the dictionary argument to ``PyDict_GetItemString`` is displayed " -"as its ``repr()``, rather than an opaque ``PyObject *`` pointer." -msgstr "" - -#: howto/gdb_helpers.rst:145 -msgid "" -"The extension works by supplying a custom printing routine for values of " -"type ``PyObject *``. If you need to access lower-level details of an " -"object, then cast the value to a pointer of the appropriate type. For " -"example::" -msgstr "" - -#: howto/gdb_helpers.rst:168 -msgid "" -"Note that the pretty-printers do not actually call ``repr()``. For basic " -"types, they try to match its result closely." -msgstr "" - -#: howto/gdb_helpers.rst:171 -msgid "" -"An area that can be confusing is that the custom printer for some types look " -"a lot like GDB's built-in printer for standard types. For example, the " -"pretty-printer for a Python ``int`` (:c:expr:`PyLongObject *`) gives a " -"representation that is not distinguishable from one of a regular machine-" -"level integer::" -msgstr "" - -#: howto/gdb_helpers.rst:183 -msgid "" -"The internal structure can be revealed with a cast to :c:expr:`PyLongObject " -"*`::" -msgstr "" - -#: howto/gdb_helpers.rst:189 -msgid "" -"A similar confusion can arise with the ``str`` type, where the output looks " -"a lot like gdb's built-in printer for ``char *``::" -msgstr "" - -#: howto/gdb_helpers.rst:195 -msgid "" -"The pretty-printer for ``str`` instances defaults to using single-quotes (as " -"does Python's ``repr`` for strings) whereas the standard printer for ``char " -"*`` values uses double-quotes and contains a hexadecimal address::" -msgstr "" - -#: howto/gdb_helpers.rst:202 -msgid "" -"Again, the implementation details can be revealed with a cast " -"to :c:expr:`PyUnicodeObject *`::" -msgstr "" - -#: howto/gdb_helpers.rst:210 -msgid "``py-list``" -msgstr "" - -#: howto/gdb_helpers.rst:212 -msgid "" -"The extension adds a ``py-list`` command, which lists the Python source code " -"(if any) for the current frame in the selected thread. The current line is " -"marked with a \">\"::" -msgstr "" - -#: howto/gdb_helpers.rst:229 -msgid "" -"Use ``py-list START`` to list at a different line number within the Python " -"source, and ``py-list START,END`` to list a specific range of lines within " -"the Python source." -msgstr "" - -#: howto/gdb_helpers.rst:234 -msgid "``py-up`` and ``py-down``" -msgstr "" - -#: howto/gdb_helpers.rst:236 -msgid "" -"The ``py-up`` and ``py-down`` commands are analogous to GDB's regular ``up`` " -"and ``down`` commands, but try to move at the level of CPython frames, " -"rather than C frames." -msgstr "" - -#: howto/gdb_helpers.rst:240 -msgid "" -"GDB is not always able to read the relevant frame information, depending on " -"the optimization level with which CPython was compiled. Internally, the " -"commands look for C frames that are executing the default frame evaluation " -"function (that is, the core bytecode interpreter loop within CPython) and " -"look up the value of the related ``PyFrameObject *``." -msgstr "" - -#: howto/gdb_helpers.rst:246 -msgid "They emit the frame number (at the C level) within the thread." -msgstr "" - -#: howto/gdb_helpers.rst:320 -msgid "For example::" -msgstr "Par exemple ::" - -#: howto/gdb_helpers.rst:261 -msgid "so we're at the top of the Python stack." -msgstr "" - -#: howto/gdb_helpers.rst:263 -msgid "" -"The frame numbers correspond to those displayed by GDB's standard " -"``backtrace`` command. The command skips C frames which are not executing " -"Python code." -msgstr "" - -#: howto/gdb_helpers.rst:267 -msgid "Going back down::" -msgstr "" - -#: howto/gdb_helpers.rst:289 -msgid "and we're at the bottom of the Python stack." -msgstr "" - -#: howto/gdb_helpers.rst:291 -msgid "" -"Note that in Python 3.12 and newer, the same C stack frame can be used for " -"multiple Python stack frames. This means that ``py-up`` and ``py-down`` may " -"move multiple Python frames at once. For example::" -msgstr "" - -#: howto/gdb_helpers.rst:315 -msgid "``py-bt``" -msgstr "" - -#: howto/gdb_helpers.rst:317 -msgid "" -"The ``py-bt`` command attempts to display a Python-level backtrace of the " -"current thread." -msgstr "" - -#: howto/gdb_helpers.rst:336 -msgid "" -"The frame numbers correspond to those displayed by GDB's standard " -"``backtrace`` command." -msgstr "" - -#: howto/gdb_helpers.rst:340 -msgid "``py-print``" -msgstr "" - -#: howto/gdb_helpers.rst:342 -msgid "" -"The ``py-print`` command looks up a Python name and tries to print it. It " -"looks in locals within the current thread, then globals, then finally " -"builtins::" -msgstr "" - -#: howto/gdb_helpers.rst:356 -msgid "" -"If the current C frame corresponds to multiple Python frames, ``py-print`` " -"only considers the first one." -msgstr "" - -#: howto/gdb_helpers.rst:360 -msgid "``py-locals``" -msgstr "" - -#: howto/gdb_helpers.rst:362 -msgid "" -"The ``py-locals`` command looks up all Python locals within the current " -"Python frame in the selected thread, and prints their representations::" -msgstr "" - -#: howto/gdb_helpers.rst:370 -msgid "" -"If the current C frame corresponds to multiple Python frames, locals from " -"all of them will be shown::" -msgstr "" - -#: howto/gdb_helpers.rst:390 -msgid "Use with GDB commands" -msgstr "" - -#: howto/gdb_helpers.rst:392 -msgid "" -"The extension commands complement GDB's built-in commands. For example, you " -"can use a frame numbers shown by ``py-bt`` with the ``frame`` command to go " -"a specific frame within the selected thread, like this::" -msgstr "" - -#: howto/gdb_helpers.rst:411 -msgid "" -"The ``info threads`` command will give you a list of the threads within the " -"process, and you can use the ``thread`` command to select a different one::" -msgstr "" - -#: howto/gdb_helpers.rst:419 -msgid "" -"You can use ``thread apply all COMMAND`` or (``t a a COMMAND`` for short) to " -"run a command on all threads. With ``py-bt``, this lets you see what every " -"thread is doing at the Python level::" -msgstr "" diff --git a/howto/index.po b/howto/index.po deleted file mode 100644 index 9d9cfb3b71..0000000000 --- a/howto/index.po +++ /dev/null @@ -1,153 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-25 13:56+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: howto/index.rst:5 -msgid "Python HOWTOs" -msgstr "Les guides pratiques (*Howto*) de Python" - -#: howto/index.rst:7 -msgid "" -"Python HOWTOs are documents that cover a specific topic in-depth. Modeled on " -"the Linux Documentation Project's HOWTO collection, this collection is an " -"effort to foster documentation that's more detailed than the Python Library " -"Reference." -msgstr "" -"Les Guides pratiques de Python sont des documents traitant un sujet " -"spécifique de la manière la plus complète possible. Inspirés des guides " -"pratiques de *The Linux Documentation Project* (projet de documentation de " -"Linux), cette section essaie de promouvoir des documentations plus " -"détaillées que la référence de la bibliothèque Python." - -#: howto/index.rst:43 -msgid "General:" -msgstr "Général :" - -#: howto/index.rst:45 -msgid ":ref:`a-conceptual-overview-of-asyncio`" -msgstr "" - -#: howto/index.rst:46 -msgid ":ref:`annotations-howto`" -msgstr ":ref:`annotations-howto`" - -#: howto/index.rst:47 -msgid ":ref:`argparse-tutorial`" -msgstr ":ref:`argparse-tutorial`" - -#: howto/index.rst:48 -msgid ":ref:`descriptorhowto`" -msgstr ":ref:`descriptorhowto`" - -#: howto/index.rst:49 -msgid ":ref:`enum-howto`" -msgstr ":ref:`enum-howto`" - -#: howto/index.rst:50 -msgid ":ref:`functional-howto`" -msgstr ":ref:`functional-howto`" - -#: howto/index.rst:51 -msgid ":ref:`ipaddress-howto`" -msgstr ":ref:`ipaddress-howto`" - -#: howto/index.rst:52 -msgid ":ref:`logging-howto`" -msgstr ":ref:`logging-howto`" - -#: howto/index.rst:53 -msgid ":ref:`logging-cookbook`" -msgstr ":ref:`logging-cookbook`" - -#: howto/index.rst:54 -msgid ":ref:`regex-howto`" -msgstr ":ref:`regex-howto`" - -#: howto/index.rst:55 -msgid ":ref:`sortinghowto`" -msgstr ":ref:`sortinghowto`" - -#: howto/index.rst:56 -msgid ":ref:`unicode-howto`" -msgstr ":ref:`unicode-howto`" - -#: howto/index.rst:57 -msgid ":ref:`urllib-howto`" -msgstr ":ref:`urllib-howto`" - -#: howto/index.rst:59 -msgid "Advanced development:" -msgstr "Développement avancé :" - -#: howto/index.rst:61 -msgid ":ref:`curses-howto`" -msgstr ":ref:`curses-howto`" - -#: howto/index.rst:62 -msgid ":ref:`freethreading-python-howto`" -msgstr ":ref:`freethreading-python-howto`" - -#: howto/index.rst:63 -msgid ":ref:`freethreading-extensions-howto`" -msgstr ":ref:`freethreading-extensions-howto`" - -#: howto/index.rst:64 -msgid ":ref:`isolating-extensions-howto`" -msgstr ":ref:`isolating-extensions-howto`" - -#: howto/index.rst:65 -#, fuzzy -msgid ":ref:`abi3t-migration-howto`" -msgstr ":ref:`annotations-howto`" - -#: howto/index.rst:66 -msgid ":ref:`python_2.3_mro`" -msgstr ":ref:`isolating-extensions-howto`" - -#: howto/index.rst:67 -msgid ":ref:`socket-howto`" -msgstr ":ref:`socket-howto`" - -#: howto/index.rst:68 -msgid ":ref:`timerfd-howto`" -msgstr ":ref:`timerfd-howto`" - -#: howto/index.rst:69 -msgid ":ref:`cporting-howto`" -msgstr ":ref:`cporting-howto`" - -#: howto/index.rst:71 -msgid "Debugging and profiling:" -msgstr "Débogage et profilage :" - -#: howto/index.rst:73 -msgid ":ref:`gdb`" -msgstr ":ref:`gdb`" - -#: howto/index.rst:74 -msgid ":ref:`instrumentation`" -msgstr ":ref:`instrumentation`" - -#: howto/index.rst:75 -msgid ":ref:`perf_profiling`" -msgstr ":ref:`perf_profiling`" - -#: howto/index.rst:76 -msgid ":ref:`remote-debugging`" -msgstr "" - -#~ msgid "Currently, the HOWTOs are:" -#~ msgstr "Actuellement, les HOWTOs sont :" diff --git a/howto/instrumentation.po b/howto/instrumentation.po deleted file mode 100644 index 897ff71d91..0000000000 --- a/howto/instrumentation.po +++ /dev/null @@ -1,538 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-11-06 19:31+0100\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: howto/instrumentation.rst:7 -msgid "Instrumenting CPython with DTrace and SystemTap" -msgstr "Instrumenter CPython avec DTrace et SystemTap" - -#: howto/instrumentation.rst:0 -msgid "author" -msgstr "auteur" - -#: howto/instrumentation.rst:9 -msgid "David Malcolm" -msgstr "David Malcolm" - -#: howto/instrumentation.rst:10 -msgid "Łukasz Langa" -msgstr "Łukasz Langa" - -#: howto/instrumentation.rst:12 -msgid "" -"DTrace and SystemTap are monitoring tools, each providing a way to inspect " -"what the processes on a computer system are doing. They both use domain-" -"specific languages allowing a user to write scripts which:" -msgstr "" -"*DTrace* et *SystemTap* sont des outils de surveillance, chacun fournissant " -"un moyen de d'inspecter ce que font les processus d'un système informatique. " -"Ils utilisent tous les deux des langages dédiés permettant à un utilisateur " -"d'écrire des scripts qui permettent de :" - -#: howto/instrumentation.rst:16 -msgid "filter which processes are to be observed" -msgstr "Filtrer les processus à observer." - -#: howto/instrumentation.rst:17 -msgid "gather data from the processes of interest" -msgstr "Recueillir des données sur le processus choisi." - -#: howto/instrumentation.rst:18 -msgid "generate reports on the data" -msgstr "Générer des rapports sur les données." - -#: howto/instrumentation.rst:20 -msgid "" -"As of Python 3.6, CPython can be built with embedded \"markers\", also known " -"as \"probes\", that can be observed by a DTrace or SystemTap script, making " -"it easier to monitor what the CPython processes on a system are doing." -msgstr "" -"À partir de Python 3.6, CPython peut être compilé avec des « marqueurs » " -"intégrés, aussi appelés « sondes », qui peuvent être observés par un script " -"*DTrace* ou *SystemTap*, ce qui facilite le suivi des processus CPython." - -#: howto/instrumentation.rst:27 -msgid "" -"DTrace markers are implementation details of the CPython interpreter. No " -"guarantees are made about probe compatibility between versions of CPython. " -"DTrace scripts can stop working or work incorrectly without warning when " -"changing CPython versions." -msgstr "" -"Les marqueurs DTrace sont des détails d'implémentation de l'interpréteur " -"CPython. Aucune garantie n'est donnée quant à la compatibilité des sondes " -"entre les versions de CPython. Les scripts DTrace peuvent s'arrêter de " -"fonctionner ou fonctionner incorrectement sans avertissement lors du " -"changement de version de CPython." - -#: howto/instrumentation.rst:34 -msgid "Enabling the static markers" -msgstr "Activer les marqueurs statiques" - -#: howto/instrumentation.rst:36 -msgid "" -"macOS comes with built-in support for DTrace. On Linux, in order to build " -"CPython with the embedded markers for SystemTap, the SystemTap development " -"tools must be installed." -msgstr "" -"macOS est livré avec un support intégré pour *DTrace*. Sous Linux, pour " -"construire CPython avec les marqueurs embarqués pour *SystemTap*, les outils " -"de développement *SystemTap* doivent être installés." - -#: howto/instrumentation.rst:40 -msgid "On a Linux machine, this can be done via::" -msgstr "Sur une machine Linux, cela se fait via ::" - -#: howto/instrumentation.rst:44 -msgid "or::" -msgstr "ou ::" - -#: howto/instrumentation.rst:49 -msgid "" -"CPython must then be :option:`configured with the --with-dtrace option <--" -"with-dtrace>`:" -msgstr "CPython doit être configuré avec l'option :option:`--with-dtrace` :" - -#: howto/instrumentation.rst:56 -msgid "" -"On macOS, you can list available DTrace probes by running a Python process " -"in the background and listing all probes made available by the Python " -"provider::" -msgstr "" -"Sous macOS, vous pouvez lister les sondes *DTrace* disponibles en exécutant " -"un processus Python en arrière-plan et en listant toutes les sondes mises à " -"disposition par le fournisseur Python ::" - -#: howto/instrumentation.rst:73 -msgid "" -"On Linux, you can verify if the SystemTap static markers are present in the " -"built binary by seeing if it contains a \".note.stapsdt\" section." -msgstr "" -"Sous Linux, pour vérifier que les marqueurs statiques *SystemTap* sont " -"présents dans le binaire compilé, il suffit de regarder s'il contient une " -"section ``.note.stapsdt``." - -#: howto/instrumentation.rst:81 -msgid "" -"If you've built Python as a shared library (with the :option:`--enable-" -"shared` configure option), you need to look instead within the shared " -"library. For example::" -msgstr "" -"Si vous avez compilé Python en tant que bibliothèque partagée (avec " -"l'option :option:`--enable-shared` du script ``configure``), vous devez " -"plutôt regarder dans la bibliothèque partagée. Par exemple ::" - -#: howto/instrumentation.rst:88 -msgid "Sufficiently modern readelf can print the metadata::" -msgstr "" -"Une version suffisamment moderne de *readelf* peut afficher les " -"métadonnées ::" - -#: howto/instrumentation.rst:125 -#, fuzzy -msgid "" -"The above metadata contains information for SystemTap describing how it can " -"patch strategically placed machine code instructions to enable the tracing " -"hooks used by a SystemTap script." -msgstr "" -"Les métadonnées ci-dessus contiennent des informations pour *SystemTap* " -"décrivant comment il peut mettre à jour des instructions de code machine " -"stratégiquement placées pour activer les crochets de traçage utilisés par un " -"script *SystemTap*." - -#: howto/instrumentation.rst:131 -msgid "Static DTrace probes" -msgstr "Sondes DTrace statiques" - -#: howto/instrumentation.rst:133 -msgid "" -"The following example DTrace script can be used to show the call/return " -"hierarchy of a Python script, only tracing within the invocation of a " -"function called \"start\". In other words, import-time function invocations " -"are not going to be listed:" -msgstr "" -"L'exemple suivant de script *DTrace* montre la hiérarchie d'appel/retour " -"d'un script Python, en ne traçant que l'invocation d'une fonction ``start``. " -"En d'autres termes, les appels de fonctions lors de la phase d'import ne " -"seront pas répertoriées :" - -#: howto/instrumentation.rst:230 -msgid "It can be invoked like this::" -msgstr "Il peut être utilisé de cette manière ::" - -#: howto/instrumentation.rst:236 -msgid "The output looks like this:" -msgstr "La sortie ressemble à ceci :" - -#: howto/instrumentation.rst:201 -msgid "Static SystemTap markers" -msgstr "Marqueurs statiques *SystemTap*" - -#: howto/instrumentation.rst:203 -msgid "" -"The low-level way to use the SystemTap integration is to use the static " -"markers directly. This requires you to explicitly state the binary file " -"containing them." -msgstr "" -"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " -"directement les marqueurs statiques. Pour cela vous devez pointer " -"explicitement le fichier binaire qui les contient." - -#: howto/instrumentation.rst:207 -msgid "" -"For example, this SystemTap script can be used to show the call/return " -"hierarchy of a Python script:" -msgstr "" -"Par exemple, ce script *SystemTap* peut être utilisé pour afficher la " -"hiérarchie d'appel/retour d'un script Python :" - -#: howto/instrumentation.rst:247 -msgid "where the columns are:" -msgstr "où les colonnes sont :" - -#: howto/instrumentation.rst:249 -msgid "time in microseconds since start of script" -msgstr "temps en microsecondes depuis le début du script" - -#: howto/instrumentation.rst:250 -msgid "name of executable" -msgstr "nom de l'exécutable" - -#: howto/instrumentation.rst:251 -msgid "PID of process" -msgstr "PID du processus" - -#: howto/instrumentation.rst:253 -msgid "" -"and the remainder indicates the call/return hierarchy as the script executes." -msgstr "" -"et le reste indique la hiérarchie d'appel/retour lorsque le script s'exécute." - -#: howto/instrumentation.rst:255 -msgid "" -"For a :option:`--enable-shared` build of CPython, the markers are contained " -"within the libpython shared library, and the probe's dotted path needs to " -"reflect this. For example, this line from the above example:" -msgstr "" -"Pour une compilation :option:`--enable-shared` de CPython, les marqueurs " -"sont contenus dans la bibliothèque partagée *libpython*, et le chemin du " -"module de la sonde doit le refléter. Par exemple, la ligne de l'exemple ci-" -"dessus :" - -#: howto/instrumentation.rst:263 -msgid "should instead read:" -msgstr "doit plutôt se lire comme :" - -#: howto/instrumentation.rst:269 -msgid "(assuming a :ref:`debug build ` of CPython 3.6)" -msgstr "" -"(en supposant une version de CPython 3.6 compilée avec le :ref:`débogage " -"` activé)" - -#: howto/instrumentation.rst:275 -msgid "Available static markers" -msgstr "Marqueurs statiques disponibles" - -#: howto/instrumentation.rst:279 -msgid "" -"This marker indicates that execution of a Python function has begun. It is " -"only triggered for pure-Python (bytecode) functions." -msgstr "" -"Ce marqueur indique que l'exécution d'une fonction Python a commencé. Il " -"n'est déclenché que pour les fonctions en Python pur (code intermédiaire)." - -#: howto/instrumentation.rst:282 -msgid "" -"The filename, function name, and line number are provided back to the " -"tracing script as positional arguments, which must be accessed using " -"``$arg1``, ``$arg2``, ``$arg3``:" -msgstr "" -"Le nom de fichier, le nom de la fonction et le numéro de ligne sont renvoyés " -"au script de traçage sous forme d'arguments positionnels, auxquels il faut " -"accéder en utilisant ``$arg1``, ``$arg2``, ``$arg3`` :" - -#: howto/instrumentation.rst:286 -msgid "" -"``$arg1`` : ``(const char *)`` filename, accessible using " -"``user_string($arg1)``" -msgstr "" -"``$arg1`` : ``(const char *)`` nom de fichier, accessible via " -"``user_string($arg1)``" - -#: howto/instrumentation.rst:288 -msgid "" -"``$arg2`` : ``(const char *)`` function name, accessible using " -"``user_string($arg2)``" -msgstr "" -"``$arg2`` : ``(const char *)`` nom de la fonction, accessible via " -"``user_string($arg2)``" - -#: howto/instrumentation.rst:291 -msgid "``$arg3`` : ``int`` line number" -msgstr "``$arg3`` : numéro de ligne ``int``" - -#: howto/instrumentation.rst:295 -#, fuzzy -msgid "" -"This marker is the converse of :c:func:`!function__entry`, and indicates " -"that execution of a Python function has ended (either via ``return``, or via " -"an exception). It is only triggered for pure-Python (bytecode) functions." -msgstr "" -"Ce marqueur est l'inverse de :c:func:`function__entry`, et indique que " -"l'exécution d'une fonction Python est terminée (soit via ``return``, soit " -"via une exception). Il n'est déclenché que pour les fonctions en Python pur " -"(code intermédiaire)." - -#: howto/instrumentation.rst:299 -#, fuzzy -msgid "The arguments are the same as for :c:func:`!function__entry`" -msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`" - -#: howto/instrumentation.rst:303 -msgid "" -"This marker indicates a Python line is about to be executed. It is the " -"equivalent of line-by-line tracing with a Python profiler. It is not " -"triggered within C functions." -msgstr "" -"Ce marqueur indique qu'une ligne Python est sur le point d'être exécutée. " -"C'est l'équivalent du traçage ligne par ligne avec un profileur Python. Il " -"n'est pas déclenché dans les fonctions C." - -#: howto/instrumentation.rst:307 -#, fuzzy -msgid "The arguments are the same as for :c:func:`!function__entry`." -msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`." - -#: howto/instrumentation.rst:311 -#, fuzzy -msgid "" -"Fires when the Python interpreter starts a garbage collection cycle. " -"``arg0`` is the generation to scan, like :func:`gc.collect`." -msgstr "" -"Fonction appelée lorsque l'interpréteur Python lance un cycle de collecte du " -"ramasse-miettes. ``arg0`` est la génération à scanner, " -"comme :func:`gc.collect()`." - -#: howto/instrumentation.rst:316 -msgid "" -"Fires when the Python interpreter finishes a garbage collection cycle. " -"``arg0`` is the number of collected objects." -msgstr "" -"Fonction appelée lorsque l'interpréteur Python termine un cycle de collecte " -"du ramasse-miettes. ``Arg0`` est le nombre d'objets collectés." - -#: howto/instrumentation.rst:321 -msgid "" -"Fires before :mod:`importlib` attempts to find and load the module. ``arg0`` " -"is the module name." -msgstr "" -"Fonction appelée avant que :mod:`importlib` essaye de trouver et de charger " -"le module. ``arg0`` est le nom du module." - -#: howto/instrumentation.rst:328 -msgid "" -"Fires after :mod:`importlib`'s find_and_load function is called. ``arg0`` is " -"the module name, ``arg1`` indicates if module was successfully loaded." -msgstr "" -"Fonction appelée après que la fonction ``find_and_load`` du " -"module :mod:`importlib` soit appelée. ``arg0`` est le nom du module, " -"``arg1`` indique si le module a été chargé avec succès." - -#: howto/instrumentation.rst:337 -msgid "" -"Fires when :func:`sys.audit` or :c:func:`PySys_Audit` is called. ``arg0`` is " -"the event name as C string, ``arg1`` is a :c:type:`PyObject` pointer to a " -"tuple object." -msgstr "" -"Fonction appelée quand les fonctions :func:`sys.audit` " -"ou :c:func:`PySys_Audit` sont appelées. ``arg0`` est le nom de l'évènement " -"de type chaîne de caractère C. ``arg1`` est un pointeur sur un *n*-uplet " -"d'objet de type :c:type:`PyObject`." - -#: howto/instrumentation.rst:345 -msgid "C Entry Points" -msgstr "" - -#: howto/instrumentation.rst:347 -msgid "" -"To simplify triggering of DTrace markers, Python's C API comes with a number " -"of helper functions that mirror each static marker. On builds of Python " -"without DTrace enabled, these do nothing." -msgstr "" - -#: howto/instrumentation.rst:351 -msgid "" -"In general, it is not necessary to call these yourself, as Python will do it " -"for you." -msgstr "" - -#: howto/instrumentation.rst:358 -msgid "C API Function" -msgstr "" - -#: howto/instrumentation.rst:359 -#, fuzzy -msgid "Static Marker" -msgstr "Marqueurs statiques *SystemTap*" - -#: howto/instrumentation.rst:360 -msgid "Notes" -msgstr "" - -#: howto/instrumentation.rst:362 -msgid ":c:func:`!line`" -msgstr "" - -#: howto/instrumentation.rst:365 -#, fuzzy -msgid ":c:func:`!function__entry`" -msgstr "Les arguments sont les mêmes que pour :c:func:`function__entry`" - -#: howto/instrumentation.rst:368 -msgid ":c:func:`!function__return`" -msgstr "" - -#: howto/instrumentation.rst:371 -msgid ":c:func:`!gc__start`" -msgstr "" - -#: howto/instrumentation.rst:374 -msgid ":c:func:`!gc__done`" -msgstr "" - -#: howto/instrumentation.rst:377 -msgid ":c:func:`!instance__new__start`" -msgstr "" - -#: howto/instrumentation.rst:381 howto/instrumentation.rst:387 -msgid "Not used by Python" -msgstr "" - -#: howto/instrumentation.rst:380 -msgid ":c:func:`!instance__new__done`" -msgstr "" - -#: howto/instrumentation.rst:383 -msgid ":c:func:`!instance__delete__start`" -msgstr "" - -#: howto/instrumentation.rst:386 -msgid ":c:func:`!instance__delete__done`" -msgstr "" - -#: howto/instrumentation.rst:389 -msgid ":c:func:`!import__find__load__start`" -msgstr "" - -#: howto/instrumentation.rst:392 -msgid ":c:func:`!import__find__load__done`" -msgstr "" - -#: howto/instrumentation.rst:395 -msgid ":c:func:`!audit`" -msgstr "" - -#: howto/instrumentation.rst:400 -msgid "C Probing Checks" -msgstr "" - -#: howto/instrumentation.rst:415 -msgid "" -"All calls to ``PyDTrace`` functions must be guarded by a call to one of " -"these functions. This allows Python to minimize performance impact when " -"probing is disabled." -msgstr "" - -#: howto/instrumentation.rst:419 -msgid "" -"On builds without DTrace enabled, these functions do nothing and return " -"``0``." -msgstr "" - -#: howto/instrumentation.rst:423 -msgid "SystemTap Tapsets" -msgstr "*Tapsets* de *SystemTap*" - -#: howto/instrumentation.rst:425 -msgid "" -"The higher-level way to use the SystemTap integration is to use a " -"\"tapset\": SystemTap's equivalent of a library, which hides some of the " -"lower-level details of the static markers." -msgstr "" -"La façon la plus simple d'utiliser l'intégration *SystemTap* est d'utiliser " -"un *« tapset »*. L'équivalent pour *SystemTap* d'une bibliothèque, qui " -"permet de masquer les détails de niveau inférieur des marqueurs statiques." - -#: howto/instrumentation.rst:429 -msgid "Here is a tapset file, based on a non-shared build of CPython:" -msgstr "" -"Voici un fichier *tapset*, basé sur une version non partagée compilée de " -"CPython :" - -#: howto/instrumentation.rst:452 -msgid "" -"If this file is installed in SystemTap's tapset directory (e.g. ``/usr/share/" -"systemtap/tapset``), then these additional probepoints become available:" -msgstr "" -"Si ce fichier est installé dans le répertoire *tapset* de *SystemTap* (par " -"exemple ``/usr/share/systemtap/tapset``), alors ces sondes supplémentaires " -"deviennent disponibles :" - -#: howto/instrumentation.rst:458 -msgid "" -"This probe point indicates that execution of a Python function has begun. It " -"is only triggered for pure-Python (bytecode) functions." -msgstr "" -"Cette sonde indique que l'exécution d'une fonction Python a commencé. Elle " -"n'est déclenchée que pour les fonctions en Python pur (code intermédiaire)." - -#: howto/instrumentation.rst:463 -msgid "" -"This probe point is the converse of ``python.function.return``, and " -"indicates that execution of a Python function has ended (either via " -"``return``, or via an exception). It is only triggered for pure-Python " -"(bytecode) functions." -msgstr "" -"Cette sonde est l'inverse de ``python.function.return``, et indique que " -"l'exécution d'une fonction Python est terminée (soit via ``return``, soit " -"via une exception). Elle est uniquement déclenchée pour les fonctions en " -"Python pur (code intermédiaire ou *bytecode*)." - -#: howto/instrumentation.rst:470 -msgid "Examples" -msgstr "Exemples" - -#: howto/instrumentation.rst:471 -msgid "" -"This SystemTap script uses the tapset above to more cleanly implement the " -"example given above of tracing the Python function-call hierarchy, without " -"needing to directly name the static markers:" -msgstr "" -"Ce script *SystemTap* utilise le *tapset* ci-dessus pour implémenter plus " -"proprement l'exemple précédent de traçage de la hiérarchie des appels de " -"fonctions Python, sans avoir besoin de nommer directement les marqueurs " -"statiques :" - -#: howto/instrumentation.rst:490 -#, fuzzy -msgid "" -"The following script uses the tapset above to provide a top-like view of all " -"running CPython code, showing the top 20 most frequently entered bytecode " -"frames, each second, across the whole system:" -msgstr "" -"Le script suivant utilise le *tapset* ci-dessus pour fournir une vue de " -"l'ensemble du code CPython en cours d'exécution, montrant les 20 cadres de " -"la pile d'appel (*stack frames*) les plus fréquemment utilisées du code " -"intermédiaire, chaque seconde, sur l'ensemble du système :" diff --git a/howto/ipaddress.po b/howto/ipaddress.po deleted file mode 100644 index 625f2df79d..0000000000 --- a/howto/ipaddress.po +++ /dev/null @@ -1,425 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-05-12 09:42+0200\n" -"Last-Translator: BAILLY Geoffroy \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 3.0.1\n" - -#: howto/ipaddress.rst:9 -msgid "An introduction to the ipaddress module" -msgstr "Introduction au module ``ipaddress``" - -#: howto/ipaddress.rst:0 -msgid "author" -msgstr "auteur" - -#: howto/ipaddress.rst:11 -msgid "Peter Moody" -msgstr "Peter Moody" - -#: howto/ipaddress.rst:12 -msgid "Nick Coghlan" -msgstr "Nick Coghlan" - -#: howto/ipaddress.rst:14 -msgid "Overview" -msgstr "Aperçu" - -#: howto/ipaddress.rst:16 -msgid "" -"This document aims to provide a gentle introduction to the :mod:`ipaddress` " -"module. It is aimed primarily at users that aren't already familiar with IP " -"networking terminology, but may also be useful to network engineers wanting " -"an overview of how :mod:`ipaddress` represents IP network addressing " -"concepts." -msgstr "" -"Ce document vise à fournir une introduction rapide au " -"module :mod:`ipaddress`. Il est destiné aux utilisateurs qui ne sont pas " -"familiers avec la terminologie des réseaux IP, mais il peut aussi être utile " -"aux ingénieurs réseaux qui cherchent un aperçu de la représentation des " -"concepts d'adressage IP avec le module :mod:`ipaddress`." - -#: howto/ipaddress.rst:24 -msgid "Creating Address/Network/Interface objects" -msgstr "Créer un objet Adresse/Réseau/Interface" - -#: howto/ipaddress.rst:26 -msgid "" -"Since :mod:`ipaddress` is a module for inspecting and manipulating IP " -"addresses, the first thing you'll want to do is create some objects. You " -"can use :mod:`ipaddress` to create objects from strings and integers." -msgstr "" -"Vu que :mod:`ipaddress` est un module pour inspecter et manipuler des " -"adresses IP, la première chose que vous voudrez faire est de créer quelques " -"objets. Vous pouvez utiliser :mod:`ipaddress` pour créer des objets à partir " -"de chaînes de caractères et d'entiers." - -#: howto/ipaddress.rst:32 -msgid "A Note on IP Versions" -msgstr "Note sur les versions d'IP" - -#: howto/ipaddress.rst:34 -msgid "" -"For readers that aren't particularly familiar with IP addressing, it's " -"important to know that the Internet Protocol (IP) is currently in the " -"process of moving from version 4 of the protocol to version 6. This " -"transition is occurring largely because version 4 of the protocol doesn't " -"provide enough addresses to handle the needs of the whole world, especially " -"given the increasing number of devices with direct connections to the " -"internet." -msgstr "" -"Pour les lecteurs qui ne sont pas particulièrement familiers avec " -"l'adressage IP il est important de savoir que le *protocole Internet* (IP) " -"est actuellement en évolution de la version 4 du protocole vers la version " -"6. Cette transition est largement due au fait que la version 4 du protocole " -"ne fournit pas assez d'adresses pour gérer les besoins du monde entier, " -"particulièrement à cause de la croissance des périphériques directement " -"connectés à Internet." - -#: howto/ipaddress.rst:41 -msgid "" -"Explaining the details of the differences between the two versions of the " -"protocol is beyond the scope of this introduction, but readers need to at " -"least be aware that these two versions exist, and it will sometimes be " -"necessary to force the use of one version or the other." -msgstr "" -"Expliquer les détails des différences entre les deux versions du protocole " -"est au-delà du périmètre de cette introduction, mais les lecteurs doivent au " -"moins être avertis de l'existence de ces deux versions et qu'il sera " -"nécessaire de forcer l'utilisation d'une version ou de l'autre." - -#: howto/ipaddress.rst:48 -msgid "IP Host Addresses" -msgstr "Adresses IP des hôtes" - -#: howto/ipaddress.rst:50 -msgid "" -"Addresses, often referred to as \"host addresses\" are the most basic unit " -"when working with IP addressing. The simplest way to create addresses is to " -"use the :func:`ipaddress.ip_address` factory function, which automatically " -"determines whether to create an IPv4 or IPv6 address based on the passed in " -"value:" -msgstr "" -"Les adresses, souvent dénommées \"adresses hôtes\" sont les unités les plus " -"basiques quand on travaille avec l'adressage IP. Le moyen le plus simple de " -"créer des adresses est d'utiliser la fonction de " -"fabrication :func:`ipaddress.ip_address` qui va automatiquement déterminer " -"quoi créer entre une adresse IPv4 ou une adresse IPv6 en fonction de la " -"valeur qui est transmise :" - -#: howto/ipaddress.rst:61 -msgid "" -"Addresses can also be created directly from integers. Values that will fit " -"within 32 bits are assumed to be IPv4 addresses::" -msgstr "" -"Les adresses peuvent être créées directement depuis des entiers. Les valeurs " -"qui correspondent à des entiers 32 bits sont assimilées à des adresses " -"IPv4 ::" - -#: howto/ipaddress.rst:69 -msgid "" -"To force the use of IPv4 or IPv6 addresses, the relevant classes can be " -"invoked directly. This is particularly useful to force creation of IPv6 " -"addresses for small integers::" -msgstr "" -"Pour forcer l'utilisation d'IPv4 ou d'IPv6, la classe appropriée peut être " -"invoquée directement. C'est particulièrement utile pour forcer la création " -"d'adresse IPv6 pour de petits entiers ::" - -#: howto/ipaddress.rst:82 -msgid "Defining Networks" -msgstr "Définir des réseaux" - -#: howto/ipaddress.rst:84 -msgid "" -"Host addresses are usually grouped together into IP networks, " -"so :mod:`ipaddress` provides a way to create, inspect and manipulate network " -"definitions. IP network objects are constructed from strings that define the " -"range of host addresses that are part of that network. The simplest form for " -"that information is a \"network address/network prefix\" pair, where the " -"prefix defines the number of leading bits that are compared to determine " -"whether or not an address is part of the network and the network address " -"defines the expected value of those bits." -msgstr "" -"Les adresses hôtes sont souvent regroupées dans des réseaux IP, " -"donc :mod:`ipaddress` fournit un moyen de créer, d'inspecter et de manipuler " -"les définitions des réseaux. Les objets correspondants aux réseaux IP sont " -"construits à partir de chaînes de caractères qui définissent le périmètre " -"des adresses hôtes qui font partie de ce réseau. La forme la plus simple de " -"cette information est un couple \"adresse réseau/préfixe réseau\" , où le " -"préfixe définit le nombre de bits de tête qui sont comparés pour déterminer " -"si l'adresse fait ou ne fait pas partie de ce réseau et l'adresse réseau " -"définit la valeur attendue pour ces bits." - -#: howto/ipaddress.rst:93 -msgid "" -"As for addresses, a factory function is provided that determines the correct " -"IP version automatically::" -msgstr "" -"Tout comme pour les adresses, une fonction de fabrication est disponible et " -"détermine automatiquement la version correcte d'IP ::" - -#: howto/ipaddress.rst:101 -msgid "" -"Network objects cannot have any host bits set. The practical effect of this " -"is that ``192.0.2.1/24`` does not describe a network. Such definitions are " -"referred to as interface objects since the ip-on-a-network notation is " -"commonly used to describe network interfaces of a computer on a given " -"network and are described further in the next section." -msgstr "" -"Il est interdit pour des objets réseaux d'avoir des bits affectés à leurs " -"hôtes mis à 1. Ainsi la chaîne de caractères ``192.0.2.1/24`` ne peut " -"définir un réseau. Ces objets réseaux sont aussi appelés objets d'interfaces " -"car la notation ``adresse ip / réseau`` est couramment utilisée pour décrire " -"les interfaces réseau d'un ordinateur sur un réseau donné (nous les " -"détaillons plus loin dans cette section)." - -#: howto/ipaddress.rst:107 -msgid "" -"By default, attempting to create a network object with host bits set will " -"result in :exc:`ValueError` being raised. To request that the additional " -"bits instead be coerced to zero, the flag ``strict=False`` can be passed to " -"the constructor::" -msgstr "" -"Par défaut, tenter de créer un objet réseau avec des bits d'hôtes mis à 1 " -"lève une :exc:`ValueError`. Pour demander que les bits supplémentaires " -"soient plutôt forcés à zéro, l'attribut ``strict=False`` peut être passé au " -"constructeur ::" - -#: howto/ipaddress.rst:119 -msgid "" -"While the string form offers significantly more flexibility, networks can " -"also be defined with integers, just like host addresses. In this case, the " -"network is considered to contain only the single address identified by the " -"integer, so the network prefix includes the entire network address::" -msgstr "" -"Alors que la forme textuelle offre davantage de flexibilité les réseaux " -"peuvent aussi être définis avec des entiers, tout comme les adresses hôtes. " -"Dans ce cas le réseau est considéré comme contenant uniquement l'adresse " -"identifiée par l'entier, donc le préfixe réseau inclut l'adresse du réseau " -"complet ::" - -#: howto/ipaddress.rst:129 -msgid "" -"As with addresses, creation of a particular kind of network can be forced by " -"calling the class constructor directly instead of using the factory function." -msgstr "" -"Comme avec les adresses, la création d'un type de réseau particulier peut " -"être forcée en appelant directement le constructeur de la classe plutôt que " -"d'utiliser la fonction de fabrication." - -#: howto/ipaddress.rst:135 -msgid "Host Interfaces" -msgstr "Interfaces des hôtes" - -#: howto/ipaddress.rst:137 -msgid "" -"As mentioned just above, if you need to describe an address on a particular " -"network, neither the address nor the network classes are sufficient. " -"Notation like ``192.0.2.1/24`` is commonly used by network engineers and the " -"people who write tools for firewalls and routers as shorthand for \"the host " -"``192.0.2.1`` on the network ``192.0.2.0/24``\", " -"Accordingly, :mod:`ipaddress` provides a set of hybrid classes that " -"associate an address with a particular network. The interface for creation " -"is identical to that for defining network objects, except that the address " -"portion isn't constrained to being a network address." -msgstr "" -"Comme mentionné ci-dessus, si vous avez besoin de décrire une adresse sur un " -"réseau particulier, ni l'adresse ni les classes réseaux ne sont suffisantes. " -"Les notations comme ``192.0.2.1/24`` sont généralement utilisées par les " -"ingénieurs réseaux et les personnes qui écrivent des outils pour les pare-" -"feu et les routeurs comme raccourci pour \" l'hôte ``192.0.2.1`` sur le " -"réseau ``192.0.2.0/24``\", par conséquent, :mod:`ipaddress` fournit un " -"ensemble de classes hybrides qui associent une adresse à un réseau " -"particulier. L'interface pour la création est identique à celle pour la " -"définition des objets réseaux, excepté que la partie adresse n'est pas " -"contrainte d'être une adresse réseau." - -#: howto/ipaddress.rst:152 -msgid "" -"Integer inputs are accepted (as with networks), and use of a particular IP " -"version can be forced by calling the relevant constructor directly." -msgstr "" -"Les entiers sont acceptés en entrée (comme avec les réseaux) et " -"l'utilisation d'une version d'IP peut être forcée en appelant directement le " -"constructeur adapté." - -#: howto/ipaddress.rst:157 -msgid "Inspecting Address/Network/Interface Objects" -msgstr "Inspecter les objets Address/Network/Interface" - -#: howto/ipaddress.rst:159 -msgid "" -"You've gone to the trouble of creating an IPv(4|6)(Address|Network|" -"Interface) object, so you probably want to get information about " -"it. :mod:`ipaddress` tries to make doing this easy and intuitive." -msgstr "" -"Vous vous êtes donné la peine de créer un objet (adresse|réseau|" -"interface)IPv(4|6), donc vous voudrez probablement des informations sur " -"celui-ci. :mod:`ipaddress` essaie de rendre ceci facile et intuitif." - -#: howto/ipaddress.rst:163 -msgid "Extracting the IP version::" -msgstr "Extraire la version du protocole IP ::" - -#: howto/ipaddress.rst:172 -msgid "Obtaining the network from an interface::" -msgstr "Obtenir le réseau à partir de l'interface ::" - -#: howto/ipaddress.rst:181 -msgid "Finding out how many individual addresses are in a network::" -msgstr "Trouver combien d'adresses individuelles sont dans un réseau ::" - -#: howto/ipaddress.rst:190 -msgid "Iterating through the \"usable\" addresses on a network::" -msgstr "Itération sur chacune des adresses \"utilisables\" d'un réseau ::" - -#: howto/ipaddress.rst:205 -msgid "" -"Obtaining the netmask (i.e. set bits corresponding to the network prefix) or " -"the hostmask (any bits that are not part of the netmask):" -msgstr "" -"Obtenir le masque réseau (définit les bits correspondant au préfixe du " -"réseau) ou le masque de l'hôte (tous les bits qui ne sont pas dans le masque " -"du réseau) :" - -#: howto/ipaddress.rst:220 -msgid "Exploding or compressing the address::" -msgstr "Éclater ou compresser l'adresse ::" - -#: howto/ipaddress.rst:231 -msgid "" -"While IPv4 doesn't support explosion or compression, the associated objects " -"still provide the relevant properties so that version neutral code can " -"easily ensure the most concise or most verbose form is used for IPv6 " -"addresses while still correctly handling IPv4 addresses." -msgstr "" -"Alors que IPv4 ne gère pas l'éclatement ou la compression, les objets " -"associés fournissent toujours les propriétés adaptées pour que du code, le " -"plus neutre possible vis-à-vis de la version, puisse facilement s'assurer " -"que la forme la plus concise ou la plus verbeuse utilisée pour des adresses " -"IPv6 va aussi fonctionner pour gérer des adresses IPv4." - -#: howto/ipaddress.rst:238 -msgid "Networks as lists of Addresses" -msgstr "Réseaux en tant que listes d'adresses" - -#: howto/ipaddress.rst:240 -msgid "" -"It's sometimes useful to treat networks as lists. This means it is possible " -"to index them like this::" -msgstr "" -"Il est parfois utile de traiter les réseaux en tant que listes. Cela " -"signifie qu'il est possible de les indexer comme ça ::" - -#: howto/ipaddress.rst:253 -msgid "" -"It also means that network objects lend themselves to using the list " -"membership test syntax like this::" -msgstr "" -"Cela signifie aussi que les objets réseaux se prêtent bien à l'utilisation " -"de la syntaxe suivante pour le test d'appartenance à la liste ::" - -#: howto/ipaddress.rst:259 -msgid "Containment testing is done efficiently based on the network prefix::" -msgstr "" -"En se basant sur le préfixe réseau on peut efficacement tester " -"l'appartenance ::" - -#: howto/ipaddress.rst:269 -msgid "Comparisons" -msgstr "Comparaisons" - -#: howto/ipaddress.rst:271 -msgid "" -":mod:`ipaddress` provides some simple, hopefully intuitive ways to compare " -"objects, where it makes sense::" -msgstr "" -":mod:`ipaddress` fournit des moyens simples et intuitifs (du moins nous " -"l'espérons) pour comparer les objets, quand cela fait sens ::" - -#: howto/ipaddress.rst:277 -msgid "" -"A :exc:`TypeError` exception is raised if you try to compare objects of " -"different versions or different types." -msgstr "" -"Une exception :exc:`TypeError` est levée si vous tentez de comparer des " -"objets de différentes versions ou de types différents." - -#: howto/ipaddress.rst:282 -msgid "Using IP Addresses with other modules" -msgstr "Utiliser des adresse IP avec d'autre modules" - -#: howto/ipaddress.rst:284 -msgid "" -"Other modules that use IP addresses (such as :mod:`socket`) usually won't " -"accept objects from this module directly. Instead, they must be coerced to " -"an integer or string that the other module will accept::" -msgstr "" -"Les autres modules qui utilisent des adresses IP (comme :mod:`socket`) " -"n'acceptent généralement pas les objets de ce module directement. Au lieu de " -"cela, ils doivent être convertis en entiers ou en chaînes de caractères que " -"l'autre module va accepter ::" - -#: howto/ipaddress.rst:296 -msgid "Getting more detail when instance creation fails" -msgstr "Obtenir plus de détails lors de l'échec de la création de l'instance" - -#: howto/ipaddress.rst:298 -msgid "" -"When creating address/network/interface objects using the version-agnostic " -"factory functions, any errors will be reported as :exc:`ValueError` with a " -"generic error message that simply says the passed in value was not " -"recognized as an object of that type. The lack of a specific error is " -"because it's necessary to know whether the value is *supposed* to be IPv4 or " -"IPv6 in order to provide more detail on why it has been rejected." -msgstr "" -"Lors de la création des objets Adresse/Réseau/Interface en utilisant les " -"fonctions de fabrication agnostiques à la version, n'importe quelle erreur " -"va être signalée en tant que :exc:`ValueError` avec un message d'erreur " -"générique qui dit simplement que la valeur entrée n'a pas été reconnue en " -"tant qu'objet de ce type. Pour fournir plus de détails sur la cause du " -"rejet, il faudrait reconnaître si la valeur est *supposée* être une adresse " -"IPv4 ou IPv6." - -#: howto/ipaddress.rst:305 -msgid "" -"To support use cases where it is useful to have access to this additional " -"detail, the individual class constructors actually raise " -"the :exc:`ValueError` subclasses :exc:`ipaddress.AddressValueError` " -"and :exc:`ipaddress.NetmaskValueError` to indicate exactly which part of the " -"definition failed to parse correctly." -msgstr "" -"Pour gérer les cas d'usage où il est utile d'avoir accès à ces détails, les " -"constructeurs individuels des classes lèvent actuellement les sous-classes " -"de :exc:`ValueError`, :exc:`ipaddress.AddressValueError` " -"et :exc:`ipaddress.NetmaskValueError` pour indiquer précisément quelle " -"partie de la définition n'a pas pu être correctement traitée." - -#: howto/ipaddress.rst:311 -msgid "" -"The error messages are significantly more detailed when using the class " -"constructors directly. For example::" -msgstr "" -"Les messages d'erreur sont particulièrement plus détaillés lors de " -"l'utilisation directe du constructeur. Par exemple ::" - -#: howto/ipaddress.rst:332 -msgid "" -"However, both of the module specific exceptions have :exc:`ValueError` as " -"their parent class, so if you're not concerned with the particular type of " -"error, you can still write code like the following::" -msgstr "" -"Cependant, les exceptions spécifiques des deux modules ont :exc:`ValueError` " -"comme classe parent ; donc si vous n'êtes pas intéressé par le type " -"particulier d'erreur remontée, vous pouvez écrire votre code comme suit ::" diff --git a/howto/isolating-extensions.po b/howto/isolating-extensions.po deleted file mode 100644 index ea71278697..0000000000 --- a/howto/isolating-extensions.po +++ /dev/null @@ -1,751 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: howto/isolating-extensions.rst:7 -msgid "Isolating Extension Modules" -msgstr "" - -#: howto/isolating-extensions.rst:9 -msgid "Abstract" -msgstr "Résumé" - -#: howto/isolating-extensions.rst:11 -msgid "" -"Traditionally, state belonging to Python extension modules was kept in C " -"``static`` variables, which have process-wide scope. This document describes " -"problems of such per-process state and shows a safer way: per-module state." -msgstr "" - -#: howto/isolating-extensions.rst:16 -msgid "" -"The document also describes how to switch to per-module state where " -"possible. This transition involves allocating space for that state, " -"potentially switching from static types to heap types, and—perhaps most " -"importantly—accessing per-module state from code." -msgstr "" - -#: howto/isolating-extensions.rst:23 -msgid "Who should read this" -msgstr "" - -#: howto/isolating-extensions.rst:25 -msgid "" -"This guide is written for maintainers of :ref:`C-API ` " -"extensions who would like to make that extension safer to use in " -"applications where Python itself is used as a library." -msgstr "" - -#: howto/isolating-extensions.rst:31 -msgid "Background" -msgstr "" - -#: howto/isolating-extensions.rst:33 -msgid "" -"An *interpreter* is the context in which Python code runs. It contains " -"configuration (e.g. the import path) and runtime state (e.g. the set of " -"imported modules)." -msgstr "" - -#: howto/isolating-extensions.rst:37 -msgid "" -"Python supports running multiple interpreters in one process. There are two " -"cases to think about—users may run interpreters:" -msgstr "" - -#: howto/isolating-extensions.rst:40 -msgid "" -"in sequence, with several :c:func:`Py_InitializeEx`/:c:func:`Py_FinalizeEx` " -"cycles, and" -msgstr "" - -#: howto/isolating-extensions.rst:42 -msgid "" -"in parallel, managing \"sub-interpreters\" " -"using :c:func:`Py_NewInterpreter`/:c:func:`Py_EndInterpreter`." -msgstr "" - -#: howto/isolating-extensions.rst:45 -msgid "" -"Both cases (and combinations of them) would be most useful when embedding " -"Python within a library. Libraries generally shouldn't make assumptions " -"about the application that uses them, which include assuming a process-wide " -"\"main Python interpreter\"." -msgstr "" - -#: howto/isolating-extensions.rst:50 -msgid "" -"Historically, Python extension modules don't handle this use case well. Many " -"extension modules (and even some stdlib modules) use *per-process* global " -"state, because C ``static`` variables are extremely easy to use. Thus, data " -"that should be specific to an interpreter ends up being shared between " -"interpreters. Unless the extension developer is careful, it is very easy to " -"introduce edge cases that lead to crashes when a module is loaded in more " -"than one interpreter in the same process." -msgstr "" - -#: howto/isolating-extensions.rst:58 -msgid "" -"Unfortunately, *per-interpreter* state is not easy to achieve. Extension " -"authors tend to not keep multiple interpreters in mind when developing, and " -"it is currently cumbersome to test the behavior." -msgstr "" - -#: howto/isolating-extensions.rst:63 -msgid "Enter Per-Module State" -msgstr "" - -#: howto/isolating-extensions.rst:65 -msgid "" -"Instead of focusing on per-interpreter state, Python's C API is evolving to " -"better support the more granular *per-module* state. This means that C-level " -"data should be attached to a *module object*. Each interpreter creates its " -"own module object, keeping the data separate. For testing the isolation, " -"multiple module objects corresponding to a single extension can even be " -"loaded in a single interpreter." -msgstr "" - -#: howto/isolating-extensions.rst:72 -msgid "" -"Per-module state provides an easy way to think about lifetime and resource " -"ownership: the extension module will initialize when a module object is " -"created, and clean up when it's freed. In this regard, a module is just like " -"any other :c:expr:`PyObject *`; there are no \"on interpreter shutdown\" " -"hooks to think—or forget—about." -msgstr "" - -#: howto/isolating-extensions.rst:78 -msgid "" -"Note that there are use cases for different kinds of \"globals\": per-" -"process, per-interpreter, per-thread or per-task state. With per-module " -"state as the default, these are still possible, but you should treat them as " -"exceptional cases: if you need them, you should give them additional care " -"and testing. (Note that this guide does not cover them.)" -msgstr "" - -#: howto/isolating-extensions.rst:87 -msgid "Isolated Module Objects" -msgstr "" - -#: howto/isolating-extensions.rst:89 -msgid "" -"The key point to keep in mind when developing an extension module is that " -"several module objects can be created from a single shared library. For " -"example:" -msgstr "" - -#: howto/isolating-extensions.rst:103 -msgid "" -"As a rule of thumb, the two modules should be completely independent. All " -"objects and state specific to the module should be encapsulated within the " -"module object, not shared with other module objects, and cleaned up when the " -"module object is deallocated. Since this just is a rule of thumb, exceptions " -"are possible (see `Managing Global State`_), but they will need more thought " -"and attention to edge cases." -msgstr "" - -#: howto/isolating-extensions.rst:111 -msgid "" -"While some modules could do with less stringent restrictions, isolated " -"modules make it easier to set clear expectations and guidelines that work " -"across a variety of use cases." -msgstr "" - -#: howto/isolating-extensions.rst:117 -msgid "Surprising Edge Cases" -msgstr "" - -#: howto/isolating-extensions.rst:119 -msgid "" -"Note that isolated modules do create some surprising edge cases. Most " -"notably, each module object will typically not share its classes and " -"exceptions with other similar modules. Continuing from the `example above " -"`__, note that ``old_binascii.Error`` and " -"``binascii.Error`` are separate objects. In the following code, the " -"exception is *not* caught:" -msgstr "" - -#: howto/isolating-extensions.rst:139 -msgid "" -"This is expected. Notice that pure-Python modules behave the same way: it is " -"a part of how Python works." -msgstr "" - -#: howto/isolating-extensions.rst:142 -msgid "" -"The goal is to make extension modules safe at the C level, not to make hacks " -"behave intuitively. Mutating ``sys.modules`` \"manually\" counts as a hack." -msgstr "" - -#: howto/isolating-extensions.rst:148 -msgid "Making Modules Safe with Multiple Interpreters" -msgstr "" - -#: howto/isolating-extensions.rst:152 -msgid "Managing Global State" -msgstr "" - -#: howto/isolating-extensions.rst:154 -msgid "" -"Sometimes, the state associated with a Python module is not specific to that " -"module, but to the entire process (or something else \"more global\" than a " -"module). For example:" -msgstr "" - -#: howto/isolating-extensions.rst:158 -msgid "The ``readline`` module manages *the* terminal." -msgstr "" - -#: howto/isolating-extensions.rst:159 -msgid "" -"A module running on a circuit board wants to control *the* on-board LED." -msgstr "" - -#: howto/isolating-extensions.rst:162 -msgid "" -"In these cases, the Python module should provide *access* to the global " -"state, rather than *own* it. If possible, write the module so that multiple " -"copies of it can access the state independently (along with other libraries, " -"whether for Python or other languages). If that is not possible, consider " -"explicit locking." -msgstr "" - -#: howto/isolating-extensions.rst:168 -msgid "" -"If it is necessary to use process-global state, the simplest way to avoid " -"issues with multiple interpreters is to explicitly prevent a module from " -"being loaded more than once per process—see :ref:`isolating-extensions-" -"optout`." -msgstr "" - -#: howto/isolating-extensions.rst:175 -msgid "Managing Per-Module State" -msgstr "" - -#: howto/isolating-extensions.rst:177 -msgid "" -"To use per-module state, use :ref:`multi-phase extension module " -"initialization `. This signals that your module " -"supports multiple interpreters correctly." -msgstr "" - -#: howto/isolating-extensions.rst:181 -msgid "" -"Set ``PyModuleDef.m_size`` to a positive number to request that many bytes " -"of storage local to the module. Usually, this will be set to the size of " -"some module-specific ``struct``, which can store all of the module's C-level " -"state. In particular, it is where you should put pointers to classes " -"(including exceptions, but excluding static types) and settings (e.g. " -"``csv``'s :py:data:`~csv.field_size_limit`) which the C code needs to " -"function." -msgstr "" - -#: howto/isolating-extensions.rst:190 -msgid "" -"Another option is to store state in the module's ``__dict__``, but you must " -"avoid crashing when users modify ``__dict__`` from Python code. This usually " -"means error- and type-checking at the C level, which is easy to get wrong " -"and hard to test sufficiently." -msgstr "" - -#: howto/isolating-extensions.rst:195 -msgid "" -"However, if module state is not needed in C code, storing it in ``__dict__`` " -"only is a good idea." -msgstr "" - -#: howto/isolating-extensions.rst:198 -msgid "" -"If the module state includes ``PyObject`` pointers, the module object must " -"hold references to those objects and implement the module-level hooks " -"``m_traverse``, ``m_clear`` and ``m_free``. These work like ``tp_traverse``, " -"``tp_clear`` and ``tp_free`` of a class. Adding them will require some work " -"and make the code longer; this is the price for modules which can be " -"unloaded cleanly." -msgstr "" - -#: howto/isolating-extensions.rst:205 -msgid "" -"An example of a module with per-module state is currently available as " -"`xxlimited `__; example module initialization shown at the bottom of the " -"file." -msgstr "" - -#: howto/isolating-extensions.rst:213 -msgid "Opt-Out: Limiting to One Module Object per Process" -msgstr "" - -#: howto/isolating-extensions.rst:215 -msgid "" -"A non-negative ``PyModuleDef.m_size`` signals that a module supports " -"multiple interpreters correctly. If this is not yet the case for your " -"module, you can explicitly make your module loadable only once per process. " -"For example::" -msgstr "" - -#: howto/isolating-extensions.rst:242 -msgid "" -"If your module's :c:member:`PyModuleDef.m_clear` function is able to prepare " -"for future re-initialization, it should clear the ``loaded`` flag. In this " -"case, your module won't support multiple instances existing *concurrently*, " -"but it will, for example, support being loaded after Python runtime shutdown " -"(:c:func:`Py_FinalizeEx`) and re-initialization (:c:func:`Py_Initialize`)." -msgstr "" - -#: howto/isolating-extensions.rst:251 -msgid "Module State Access from Functions" -msgstr "" - -#: howto/isolating-extensions.rst:253 -msgid "" -"Accessing the state from module-level functions is straightforward. " -"Functions get the module object as their first argument; for extracting the " -"state, you can use ``PyModule_GetState``::" -msgstr "" - -#: howto/isolating-extensions.rst:268 -msgid "" -"``PyModule_GetState`` may return ``NULL`` without setting an exception if " -"there is no module state, i.e. ``PyModuleDef.m_size`` was zero. In your own " -"module, you're in control of ``m_size``, so this is easy to prevent." -msgstr "" - -#: howto/isolating-extensions.rst:275 -msgid "Heap Types" -msgstr "" - -#: howto/isolating-extensions.rst:277 -msgid "" -"Traditionally, types defined in C code are *static*; that is, ``static " -"PyTypeObject`` structures defined directly in code and initialized using " -"``PyType_Ready()``." -msgstr "" - -#: howto/isolating-extensions.rst:281 -msgid "" -"Such types are necessarily shared across the process. Sharing them between " -"module objects requires paying attention to any state they own or access. To " -"limit the possible issues, static types are immutable at the Python level: " -"for example, you can't set ``str.myattribute = 123``." -msgstr "" - -#: howto/isolating-extensions.rst:287 -msgid "" -"Sharing truly immutable objects between interpreters is fine, as long as " -"they don't provide access to mutable objects. However, in CPython, every " -"Python object has a mutable implementation detail: the reference count. " -"Changes to the refcount are guarded by the GIL. Thus, code that shares any " -"Python objects across interpreters implicitly depends on CPython's current, " -"process-wide GIL." -msgstr "" - -#: howto/isolating-extensions.rst:294 -msgid "" -"Because they are immutable and process-global, static types cannot access " -"\"their\" module state. If any method of such a type requires access to " -"module state, the type must be converted to a *heap-allocated type*, or " -"*heap type* for short. These correspond more closely to classes created by " -"Python's ``class`` statement." -msgstr "" - -#: howto/isolating-extensions.rst:301 -msgid "For new modules, using heap types by default is a good rule of thumb." -msgstr "" - -#: howto/isolating-extensions.rst:305 -msgid "Changing Static Types to Heap Types" -msgstr "" - -#: howto/isolating-extensions.rst:307 -msgid "" -"Static types can be converted to heap types, but note that the heap type API " -"was not designed for \"lossless\" conversion from static types—that is, " -"creating a type that works exactly like a given static type. So, when " -"rewriting the class definition in a new API, you are likely to " -"unintentionally change a few details (e.g. pickleability or inherited " -"slots). Always test the details that are important to you." -msgstr "" - -#: howto/isolating-extensions.rst:316 -msgid "" -"Watch out for the following two points in particular (but note that this is " -"not a comprehensive list):" -msgstr "" - -#: howto/isolating-extensions.rst:319 -msgid "" -"Unlike static types, heap type objects are mutable by default. Use " -"the :c:macro:`Py_TPFLAGS_IMMUTABLETYPE` flag to prevent mutability." -msgstr "" - -#: howto/isolating-extensions.rst:321 -msgid "" -"Heap types inherit :c:member:`~PyTypeObject.tp_new` by default, so it may " -"become possible to instantiate them from Python code. You can prevent this " -"with the :c:macro:`Py_TPFLAGS_DISALLOW_INSTANTIATION` flag." -msgstr "" - -#: howto/isolating-extensions.rst:327 -msgid "Defining Heap Types" -msgstr "" - -#: howto/isolating-extensions.rst:329 -msgid "" -"Heap types can be created by filling a :c:struct:`PyType_Spec` structure, a " -"description or \"blueprint\" of a class, and " -"calling :c:func:`PyType_FromModuleAndSpec` to construct a new class object." -msgstr "" - -#: howto/isolating-extensions.rst:334 -msgid "" -"Other functions, like :c:func:`PyType_FromSpec`, can also create heap types, " -"but :c:func:`PyType_FromModuleAndSpec` associates the module with the class, " -"allowing access to the module state from methods." -msgstr "" - -#: howto/isolating-extensions.rst:338 -msgid "" -"The class should generally be stored in *both* the module state (for safe " -"access from C) and the module's ``__dict__`` (for access from Python code)." -msgstr "" - -#: howto/isolating-extensions.rst:344 -msgid "Garbage-Collection Protocol" -msgstr "" - -#: howto/isolating-extensions.rst:346 -msgid "" -"Instances of heap types hold a reference to their type. This ensures that " -"the type isn't destroyed before all its instances are, but may result in " -"reference cycles that need to be broken by the garbage collector." -msgstr "" - -#: howto/isolating-extensions.rst:351 -msgid "" -"To avoid memory leaks, instances of heap types must implement the garbage " -"collection protocol. That is, heap types should:" -msgstr "" - -#: howto/isolating-extensions.rst:355 -msgid "Have the :c:macro:`Py_TPFLAGS_HAVE_GC` flag." -msgstr "" - -#: howto/isolating-extensions.rst:356 -msgid "" -"Define a traverse function using :c:data:`Py_tp_traverse`, which visits the " -"type (e.g. using ``Py_VISIT(Py_TYPE(self))``)." -msgstr "" - -#: howto/isolating-extensions.rst:359 -msgid "" -"Please refer to the documentation of :c:macro:`Py_TPFLAGS_HAVE_GC` " -"and :c:member:`~PyTypeObject.tp_traverse` for additional considerations." -msgstr "" - -#: howto/isolating-extensions.rst:363 -msgid "" -"The API for defining heap types grew organically, leaving it somewhat " -"awkward to use in its current state. The following sections will guide you " -"through common issues." -msgstr "" - -#: howto/isolating-extensions.rst:369 -msgid "``tp_traverse`` in Python 3.8 and lower" -msgstr "" - -#: howto/isolating-extensions.rst:371 -msgid "" -"The requirement to visit the type from ``tp_traverse`` was added in Python " -"3.9. If you support Python 3.8 and lower, the traverse function must *not* " -"visit the type, so it must be more complicated::" -msgstr "" - -#: howto/isolating-extensions.rst:383 -msgid "" -"Unfortunately, :c:data:`Py_Version` was only added in Python 3.11. As a " -"replacement, use:" -msgstr "" - -#: howto/isolating-extensions.rst:386 -msgid ":c:macro:`PY_VERSION_HEX`, if not using the stable ABI, or" -msgstr "" - -#: howto/isolating-extensions.rst:387 -msgid "" -":py:data:`sys.version_info` (via :c:func:`PySys_GetObject` " -"and :c:func:`PyArg_ParseTuple`)." -msgstr "" - -#: howto/isolating-extensions.rst:392 -msgid "Delegating ``tp_traverse``" -msgstr "" - -#: howto/isolating-extensions.rst:394 -msgid "" -"If your traverse function delegates to " -"the :c:member:`~PyTypeObject.tp_traverse` of its base class (or another " -"type), ensure that ``Py_TYPE(self)`` is visited only once. Note that only " -"heap type are expected to visit the type in ``tp_traverse``." -msgstr "" - -#: howto/isolating-extensions.rst:399 -msgid "For example, if your traverse function includes::" -msgstr "" - -#: howto/isolating-extensions.rst:403 -msgid "...and ``base`` may be a static type, then it should also include::" -msgstr "" - -#: howto/isolating-extensions.rst:413 -msgid "" -"It is not necessary to handle the type's reference count " -"in :c:member:`~PyTypeObject.tp_new` and :c:member:`~PyTypeObject.tp_clear`." -msgstr "" - -#: howto/isolating-extensions.rst:418 -msgid "Defining ``tp_dealloc``" -msgstr "" - -#: howto/isolating-extensions.rst:420 -msgid "" -"If your type has a custom :c:member:`~PyTypeObject.tp_dealloc` function, it " -"needs to:" -msgstr "" - -#: howto/isolating-extensions.rst:423 -msgid "" -"call :c:func:`PyObject_GC_UnTrack` before any fields are invalidated, and" -msgstr "" - -#: howto/isolating-extensions.rst:424 -msgid "decrement the reference count of the type." -msgstr "" - -#: howto/isolating-extensions.rst:426 -msgid "" -"To keep the type valid while ``tp_free`` is called, the type's refcount " -"needs to be decremented *after* the instance is deallocated. For example::" -msgstr "" - -#: howto/isolating-extensions.rst:438 -msgid "" -"The default ``tp_dealloc`` function does this, so if your type does *not* " -"override ``tp_dealloc`` you don't need to add it." -msgstr "" - -#: howto/isolating-extensions.rst:444 -msgid "Not overriding ``tp_free``" -msgstr "" - -#: howto/isolating-extensions.rst:446 -msgid "" -"The :c:member:`~PyTypeObject.tp_free` slot of a heap type must be set " -"to :c:func:`PyObject_GC_Del`. This is the default; do not override it." -msgstr "" - -#: howto/isolating-extensions.rst:452 -msgid "Avoiding ``PyObject_New``" -msgstr "" - -#: howto/isolating-extensions.rst:454 -msgid "GC-tracked objects need to be allocated using GC-aware functions." -msgstr "" - -#: howto/isolating-extensions.rst:456 -msgid "If you use :c:func:`PyObject_New` or :c:func:`PyObject_NewVar`:" -msgstr "" - -#: howto/isolating-extensions.rst:458 -msgid "" -"Get and call type's :c:member:`~PyTypeObject.tp_alloc` slot, if possible. " -"That is, replace ``TYPE *o = PyObject_New(TYPE, typeobj)`` with::" -msgstr "" - -#: howto/isolating-extensions.rst:463 -msgid "" -"Replace ``o = PyObject_NewVar(TYPE, typeobj, size)`` with the same, but use " -"size instead of the 0." -msgstr "" - -#: howto/isolating-extensions.rst:466 -msgid "" -"If the above is not possible (e.g. inside a custom ``tp_alloc``), " -"call :c:func:`PyObject_GC_New` or :c:func:`PyObject_GC_NewVar`::" -msgstr "" - -#: howto/isolating-extensions.rst:475 -msgid "Module State Access from Classes" -msgstr "" - -#: howto/isolating-extensions.rst:477 -msgid "" -"If you have a type object defined with :c:func:`PyType_FromModuleAndSpec`, " -"you can call :c:func:`PyType_GetModule` to get the associated module, and " -"then :c:func:`PyModule_GetState` to get the module's state." -msgstr "" - -#: howto/isolating-extensions.rst:481 -msgid "" -"To save a some tedious error-handling boilerplate code, you can combine " -"these two steps with :c:func:`PyType_GetModuleState`, resulting in::" -msgstr "" - -#: howto/isolating-extensions.rst:491 -msgid "Module State Access from Regular Methods" -msgstr "" - -#: howto/isolating-extensions.rst:493 -msgid "" -"Accessing the module-level state from methods of a class is somewhat more " -"complicated, but is possible thanks to API introduced in Python 3.9. To get " -"the state, you need to first get the *defining class*, and then get the " -"module state from it." -msgstr "" - -#: howto/isolating-extensions.rst:498 -msgid "" -"The largest roadblock is getting *the class a method was defined in*, or " -"that method's \"defining class\" for short. The defining class can have a " -"reference to the module it is part of." -msgstr "" - -#: howto/isolating-extensions.rst:502 -msgid "" -"Do not confuse the defining class with ``Py_TYPE(self)``. If the method is " -"called on a *subclass* of your type, ``Py_TYPE(self)`` will refer to that " -"subclass, which may be defined in different module than yours." -msgstr "" - -#: howto/isolating-extensions.rst:507 -msgid "" -"The following Python code can illustrate the concept. " -"``Base.get_defining_class`` returns ``Base`` even if ``type(self) == Sub``:" -msgstr "" - -#: howto/isolating-extensions.rst:523 -msgid "" -"For a method to get its \"defining class\", it must use " -"the :ref:`METH_METHOD | METH_FASTCALL | METH_KEYWORDS ` :c:type:`calling convention ` and " -"the corresponding :c:type:`PyCMethod` signature::" -msgstr "" - -#: howto/isolating-extensions.rst:535 -msgid "" -"Once you have the defining class, call :c:func:`PyType_GetModuleState` to " -"get the state of its associated module." -msgstr "" - -#: howto/isolating-extensions.rst:538 -msgid "For example::" -msgstr "Par exemple ::" - -#: howto/isolating-extensions.rst:566 -msgid "Module State Access from Slot Methods, Getters and Setters" -msgstr "" - -#: howto/isolating-extensions.rst:570 -msgid "This is new in Python 3.11." -msgstr "" - -#: howto/isolating-extensions.rst:578 -msgid "" -"Slot methods—the fast C equivalents for special methods, such " -"as :c:member:`~PyNumberMethods.nb_add` for :py:attr:`~object.__add__` " -"or :c:member:`~PyTypeObject.tp_new` for initialization—have a very simple " -"API that doesn't allow passing in the defining class, unlike " -"with :c:type:`PyCMethod`. The same goes for getters and setters defined " -"with :c:type:`PyGetSetDef`." -msgstr "" - -#: howto/isolating-extensions.rst:585 -msgid "" -"To access the module state in these cases, use " -"the :c:func:`PyType_GetModuleByDef` function, and pass in the module " -"definition. Once you have the module, call :c:func:`PyModule_GetState` to " -"get the state::" -msgstr "" - -#: howto/isolating-extensions.rst:596 -msgid "" -":c:func:`!PyType_GetModuleByDef` works by searching the :term:`method " -"resolution order` (i.e. all superclasses) for the first superclass that has " -"a corresponding module." -msgstr "" - -#: howto/isolating-extensions.rst:602 -msgid "" -"In very exotic cases (inheritance chains spanning multiple modules created " -"from the same definition), :c:func:`!PyType_GetModuleByDef` might not return " -"the module of the true defining class. However, it will always return a " -"module with the same definition, ensuring a compatible C memory layout." -msgstr "" - -#: howto/isolating-extensions.rst:610 -msgid "Lifetime of the Module State" -msgstr "" - -#: howto/isolating-extensions.rst:612 -msgid "" -"When a module object is garbage-collected, its module state is freed. For " -"each pointer to (a part of) the module state, you must hold a reference to " -"the module object." -msgstr "" - -#: howto/isolating-extensions.rst:616 -msgid "" -"Usually this is not an issue, because types created " -"with :c:func:`PyType_FromModuleAndSpec`, and their instances, hold a " -"reference to the module. However, you must be careful in reference counting " -"when you reference module state from other places, such as callbacks for " -"external libraries." -msgstr "" - -#: howto/isolating-extensions.rst:625 -msgid "Open Issues" -msgstr "" - -#: howto/isolating-extensions.rst:627 -msgid "Several issues around per-module state and heap types are still open." -msgstr "" - -#: howto/isolating-extensions.rst:629 -msgid "" -"Discussions about improving the situation are best held on the `discuss " -"forum under c-api tag `__." -msgstr "" - -#: howto/isolating-extensions.rst:633 -msgid "Per-Class Scope" -msgstr "" - -#: howto/isolating-extensions.rst:635 -msgid "" -"It is currently (as of Python 3.11) not possible to attach state to " -"individual *types* without relying on CPython implementation details (which " -"may change in the future—perhaps, ironically, to allow a proper solution for " -"per-class scope)." -msgstr "" - -#: howto/isolating-extensions.rst:642 -msgid "Lossless Conversion to Heap Types" -msgstr "" - -#: howto/isolating-extensions.rst:644 -msgid "" -"The heap type API was not designed for \"lossless\" conversion from static " -"types; that is, creating a type that works exactly like a given static type." -msgstr "" diff --git a/howto/logging-cookbook.po b/howto/logging-cookbook.po deleted file mode 100644 index eade5938b9..0000000000 --- a/howto/logging-cookbook.po +++ /dev/null @@ -1,2855 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-02-01 22:16+0100\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.1\n" - -#: howto/logging-cookbook.rst:5 -msgid "Logging Cookbook" -msgstr "Recettes pour la journalisation" - -#: howto/logging-cookbook.rst:0 -msgid "Author" -msgstr "Auteur" - -#: howto/logging-cookbook.rst:7 -msgid "Vinay Sajip " -msgstr "Vinay Sajip " - -#: howto/logging-cookbook.rst:9 -msgid "" -"This page contains a number of recipes related to logging, which have been " -"found useful in the past. For links to tutorial and reference information, " -"please see :ref:`cookbook-ref-links`." -msgstr "" -"Cette page contient des recettes relatives à la journalisation qui se sont " -"avérées utiles par le passé. Pour des liens vers le tutoriel et des " -"informations de référence, consultez :ref:`ces autres ressources `." - -#: howto/logging-cookbook.rst:16 -msgid "Using logging in multiple modules" -msgstr "Journalisation dans plusieurs modules" - -#: howto/logging-cookbook.rst:18 -msgid "" -"Multiple calls to ``logging.getLogger('someLogger')`` return a reference to " -"the same logger object. This is true not only within the same module, but " -"also across modules as long as it is in the same Python interpreter " -"process. It is true for references to the same object; additionally, " -"application code can define and configure a parent logger in one module and " -"create (but not configure) a child logger in a separate module, and all " -"logger calls to the child will pass up to the parent. Here is a main " -"module::" -msgstr "" -"Deux appels à ``logging.getLogger('unLogger')`` renvoient toujours une " -"référence vers le même objet de journalisation. C’est valable à l’intérieur " -"d’un module, mais aussi dans des modules différents pour autant que ce soit " -"le même processus de l’interpréteur Python. En plus, le code d’une " -"application peut définir et configurer une journalisation parente dans un " -"module et créer (mais pas configurer) une journalisation fille dans un " -"module séparé. Les appels à la journalisation fille passeront alors à la " -"journalisation parente. Voici un module principal ::" - -#: howto/logging-cookbook.rst:56 -msgid "Here is the auxiliary module::" -msgstr "Voici un module auxiliaire ::" - -#: howto/logging-cookbook.rst:76 -msgid "The output looks like this:" -msgstr "La sortie ressemble à ceci :" - -#: howto/logging-cookbook.rst:102 -msgid "Logging from multiple threads" -msgstr "Journalisation avec des fils d’exécution multiples" - -#: howto/logging-cookbook.rst:104 -msgid "" -"Logging from multiple threads requires no special effort. The following " -"example shows logging from the main (initial) thread and another thread::" -msgstr "" -"La journalisation avec des fils d’exécution multiples ne requiert pas " -"d’effort particulier. L’exemple suivant montre comment journaliser depuis le " -"fil principal (c.-à-d. initial) et un autre fil ::" - -#: howto/logging-cookbook.rst:133 -msgid "When run, the script should print something like the following:" -msgstr "À l’exécution, le script doit afficher quelque chose comme ça :" - -#: howto/logging-cookbook.rst:155 -msgid "" -"This shows the logging output interspersed as one might expect. This " -"approach works for more threads than shown here, of course." -msgstr "" -"Les entrées de journalisation sont entrelacées, comme on pouvait s’y " -"attendre. Cette approche fonctionne aussi avec plus de fils que dans " -"l’exemple, bien sûr." - -#: howto/logging-cookbook.rst:159 -msgid "Multiple handlers and formatters" -msgstr "Plusieurs gestionnaires et formateurs" - -#: howto/logging-cookbook.rst:161 -msgid "" -"Loggers are plain Python objects. The :meth:`~Logger.addHandler` method has " -"no minimum or maximum quota for the number of handlers you may add. " -"Sometimes it will be beneficial for an application to log all messages of " -"all severities to a text file while simultaneously logging errors or above " -"to the console. To set this up, simply configure the appropriate handlers. " -"The logging calls in the application code will remain unchanged. Here is a " -"slight modification to the previous simple module-based configuration " -"example::" -msgstr "" -"Les gestionnaires de journalisation sont des objets Python ordinaires. La " -"méthode :meth:`~Logger.addHandler` n’est pas limitée, en nombre minimum ou " -"maximum, en gestionnaires que vous pouvez ajouter. Parfois, il peut être " -"utile pour une application de journaliser tous les messages quels que soient " -"leurs niveaux vers un fichier texte, tout en journalisant les erreurs (et " -"plus grave) dans la console. Pour ce faire, configurez simplement les " -"gestionnaires de manière adéquate. Les appels de journalisation dans le code " -"de l’application resteront les mêmes. Voici une légère modification de " -"l’exemple précédent dans une configuration au niveau du module ::" - -#: howto/logging-cookbook.rst:194 -msgid "" -"Notice that the 'application' code does not care about multiple handlers. " -"All that changed was the addition and configuration of a new handler named " -"*fh*." -msgstr "" -"Notez que le code de « l’application » ignore la multiplicité des " -"gestionnaires. Les modifications consistent simplement en l’ajout et la " -"configuration d’un nouveau gestionnaire appelé *fh*." - -#: howto/logging-cookbook.rst:197 -msgid "" -"The ability to create new handlers with higher- or lower-severity filters " -"can be very helpful when writing and testing an application. Instead of " -"using many ``print`` statements for debugging, use ``logger.debug``: Unlike " -"the print statements, which you will have to delete or comment out later, " -"the logger.debug statements can remain intact in the source code and remain " -"dormant until you need them again. At that time, the only change that needs " -"to happen is to modify the severity level of the logger and/or handler to " -"debug." -msgstr "" -"La possibilité de créer de nouveaux gestionnaires avec des filtres sur un " -"niveau de gravité supérieur ou inférieur peut être très utile lors de " -"l’écriture ou du test d’une application. Au lieu d’utiliser de nombreuses " -"instructions ``print`` pour le débogage, utilisez ``logger.debug`` : " -"contrairement aux instructions ``print``, que vous devrez supprimer ou " -"commenter plus tard, les instructions ``logger.debug`` peuvent demeurer " -"telles quelles dans le code source et restent dormantes jusqu’à ce que vous " -"en ayez à nouveau besoin. À ce moment-là, il suffit de modifier le niveau de " -"gravité de la journalisation ou du gestionnaire pour déboguer." - -#: howto/logging-cookbook.rst:208 -msgid "Logging to multiple destinations" -msgstr "Journalisation vers plusieurs destinations" - -#: howto/logging-cookbook.rst:210 -msgid "" -"Let's say you want to log to console and file with different message formats " -"and in differing circumstances. Say you want to log messages with levels of " -"DEBUG and higher to file, and those messages at level INFO and higher to the " -"console. Let's also assume that the file should contain timestamps, but the " -"console messages should not. Here's how you can achieve this::" -msgstr "" -"Supposons que vous souhaitiez journaliser dans la console et dans un fichier " -"avec différents formats de messages et avec différents critères. Supposons " -"que vous souhaitiez consigner les messages de niveau DEBUG et supérieur dans " -"le fichier, et les messages de niveau INFO et supérieur dans la console. " -"Supposons également que le fichier doive contenir des horodatages, mais pas " -"les messages de la console. Voici comment y parvenir ::" - -#: howto/logging-cookbook.rst:248 -msgid "When you run this, on the console you will see" -msgstr "Quand vous le lancez, vous devez voir" - -#: howto/logging-cookbook.rst:257 -msgid "and in the file you will see something like" -msgstr "et, dans le fichier, vous devez trouver" - -#: howto/logging-cookbook.rst:267 -msgid "" -"As you can see, the DEBUG message only shows up in the file. The other " -"messages are sent to both destinations." -msgstr "" -"Comme vous pouvez le constater, le message DEBUG n’apparaît que dans le " -"fichier. Les autres messages sont envoyés vers les deux destinations." - -#: howto/logging-cookbook.rst:270 -msgid "" -"This example uses console and file handlers, but you can use any number and " -"combination of handlers you choose." -msgstr "" -"Cet exemple utilise la console et des gestionnaires de fichier, mais vous " -"pouvez utiliser et combiner autant de gestionnaires que de besoin." - -#: howto/logging-cookbook.rst:273 -msgid "" -"Note that the above choice of log filename ``/tmp/myapp.log`` implies use of " -"a standard location for temporary files on POSIX systems. On Windows, you " -"may need to choose a different directory name for the log - just ensure that " -"the directory exists and that you have the permissions to create and update " -"files in it." -msgstr "" -"Notez que le choix du nom de fichier journal ``/tmp/myapp.log`` ci-dessus " -"implique l'utilisation d'un emplacement standard pour les fichiers " -"temporaires sur les systèmes POSIX. Sous Windows, vous devrez peut-être " -"choisir un nom de répertoire différent pour le journal – assurez-vous " -"simplement que le répertoire existe et que vous disposez des autorisations " -"nécessaires pour créer et mettre à jour des fichiers dans celui-ci." - -#: howto/logging-cookbook.rst:282 -msgid "Custom handling of levels" -msgstr "Personnalisation du niveau de journalisation" - -#: howto/logging-cookbook.rst:284 -msgid "" -"Sometimes, you might want to do something slightly different from the " -"standard handling of levels in handlers, where all levels above a threshold " -"get processed by a handler. To do this, you need to use filters. Let's look " -"at a scenario where you want to arrange things as follows:" -msgstr "" -"Il peut arriver que vous souhaitiez que vos gestionnaires journalisent " -"légèrement différemment de la gestion standard des niveaux, où tous les " -"niveaux au-dessus d'un seuil sont traités par un gestionnaire. Pour ce " -"faire, vous devez utiliser des filtres. Examinons un scénario dans lequel " -"vous souhaitez organiser les choses comme suit :" - -# énumération -#: howto/logging-cookbook.rst:289 -msgid "Send messages of severity ``INFO`` and ``WARNING`` to ``sys.stdout``" -msgstr "" -"envoyer les messages de niveau ``INFO`` et ``WARNING`` à ``sys.stdout`` ;" - -# énumération -#: howto/logging-cookbook.rst:290 -msgid "Send messages of severity ``ERROR`` and above to ``sys.stderr``" -msgstr "" -"envoyer les messages de niveau ``ERROR`` et au-dessus à ``sys.stderr`` ;" - -# énumération -#: howto/logging-cookbook.rst:291 -msgid "Send messages of severity ``DEBUG`` and above to file ``app.log``" -msgstr "" -"envoyer les messages de niveau ``DEBUG`` et au-dessus vers le fichier " -"``app.log``." - -#: howto/logging-cookbook.rst:293 -msgid "Suppose you configure logging with the following JSON:" -msgstr "" -"Supposons que vous configurez la journalisation avec le contenu au format " -"JSON suivant :" - -#: howto/logging-cookbook.rst:335 -#, fuzzy -msgid "" -"This configuration does *almost* what we want, except that ``sys.stdout`` " -"would show messages of severity ``ERROR`` and only events of this severity " -"and higher will be tracked as well as ``INFO`` and ``WARNING`` messages. To " -"prevent this, we can set up a filter which excludes those messages and add " -"it to the relevant handler. This can be configured by adding a ``filters`` " -"section parallel to ``formatters`` and ``handlers``:" -msgstr "" -"Cette configuration fait *presque* ce que nous voulons, sauf que " -"``sys.stdout`` affiche les messages de gravité ``ERROR`` et supérieurs ainsi " -"que les messages ``INFO`` et ``WARNING``. Pour éviter cela, nous pouvons " -"configurer un filtre qui exclut ces messages et l'ajouter au gestionnaire " -"approprié. Effectuons la configuration en ajoutant une section ``filters`` " -"parallèle à ``formatters`` et ``handlers`` :" - -#: howto/logging-cookbook.rst:352 -msgid "and changing the section on the ``stdout`` handler to add it:" -msgstr "" -"et en changeant la section du gestionnaire ``stdout`` pour ajouter le " -"filtre :" - -#: howto/logging-cookbook.rst:366 -msgid "" -"A filter is just a function, so we can define the ``filter_maker`` (a " -"factory function) as follows:" -msgstr "" -"Un filtre n'est qu'une fonction, nous pouvons donc définir un " -"``filter_maker`` (une fonction fabrique) comme suit :" - -#: howto/logging-cookbook.rst:379 -msgid "" -"This converts the string argument passed in to a numeric level, and returns " -"a function which only returns ``True`` if the level of the passed in record " -"is at or below the specified level. Note that in this example I have defined " -"the ``filter_maker`` in a test script ``main.py`` that I run from the " -"command line, so its module will be ``__main__`` - hence the " -"``__main__.filter_maker`` in the filter configuration. You will need to " -"change that if you define it in a different module." -msgstr "" -"Elle convertit la chaîne transmise en argument vers un niveau numérique puis " -"renvoie une fonction qui ne renvoie ``True`` que si le niveau de " -"l'enregistrement transmis est inférieur ou égal au niveau spécifié. Notez " -"que dans cet exemple, nous avons défini ``filter_maker`` dans un script de " -"test ``main.py`` qui est exécuté depuis la ligne de commande, donc son " -"module est ``__main__`` – d'où le ``__main__.filter_maker`` dans la " -"configuration du filtre. Vous devez le changer si vous la définissez dans un " -"module différent." - -#: howto/logging-cookbook.rst:387 -msgid "With the filter added, we can run ``main.py``, which in full is:" -msgstr "" -"Avec le filtre, nous pouvons exécuter ``main.py`` dont voici la version " -"complète :" - -#: howto/logging-cookbook.rst:457 -msgid "And after running it like this:" -msgstr "Et après l'avoir exécuté comme ceci :" - -#: howto/logging-cookbook.rst:463 -msgid "We can see the results are as expected:" -msgstr "Nous obtenons le résultat attendu :" - -#: howto/logging-cookbook.rst:489 -msgid "Configuration server example" -msgstr "Exemple d’un serveur de configuration" - -#: howto/logging-cookbook.rst:491 -msgid "Here is an example of a module using the logging configuration server::" -msgstr "" -"Voici un exemple de module mettant en œuvre la configuration de la " -"journalisation *via* un serveur ::" - -#: howto/logging-cookbook.rst:522 -msgid "" -"And here is a script that takes a filename and sends that file to the " -"server, properly preceded with the binary-encoded length, as the new logging " -"configuration::" -msgstr "" -"Et voici un script qui, à partir d’un nom de fichier, commence par envoyer " -"la taille du fichier encodée en binaire (comme il se doit), puis envoie ce " -"fichier au serveur pour définir la nouvelle configuration de " -"journalisation ::" - -#: howto/logging-cookbook.rst:547 -msgid "Dealing with handlers that block" -msgstr "Utilisation de gestionnaires bloquants" - -#: howto/logging-cookbook.rst:551 -msgid "" -"Sometimes you have to get your logging handlers to do their work without " -"blocking the thread you're logging from. This is common in web applications, " -"though of course it also occurs in other scenarios." -msgstr "" -"Parfois, il est nécessaire que les gestionnaires de journalisation fassent " -"leur travail sans bloquer le fil d’exécution qui émet des événements. C’est " -"généralement le cas dans les applications Web, mais aussi bien sûr dans " -"d’autres scénarios." - -#: howto/logging-cookbook.rst:555 -msgid "" -"A common culprit which demonstrates sluggish behaviour is " -"the :class:`SMTPHandler`: sending emails can take a long time, for a number " -"of reasons outside the developer's control (for example, a poorly performing " -"mail or network infrastructure). But almost any network-based handler can " -"block: Even a :class:`SocketHandler` operation may do a DNS query under the " -"hood which is too slow (and this query can be deep in the socket library " -"code, below the Python layer, and outside your control)." -msgstr "" -"Un gestionnaire classiquement lent est le :class:`SMTPHandler` : l’envoi d’e-" -"mails peut prendre beaucoup de temps, pour un certain nombre de raisons " -"indépendantes du développeur (par exemple, une infrastructure de messagerie " -"ou de réseau peu performante). Mais n’importe quel autre gestionnaire " -"utilisant le réseau ou presque peut aussi s’avérer bloquant : même une " -"simple opération :class:`SocketHandler` peut faire une requête DNS implicite " -"et être ainsi très lente (cette requête peut être enfouie profondément dans " -"le code de la bibliothèque d’accès réseau, sous la couche Python, et hors de " -"votre contrôle)." - -#: howto/logging-cookbook.rst:563 -msgid "" -"One solution is to use a two-part approach. For the first part, attach only " -"a :class:`QueueHandler` to those loggers which are accessed from performance-" -"critical threads. They simply write to their queue, which can be sized to a " -"large enough capacity or initialized with no upper bound to their size. The " -"write to the queue will typically be accepted quickly, though you will " -"probably need to catch the :exc:`queue.Full` exception as a precaution in " -"your code. If you are a library developer who has performance-critical " -"threads in their code, be sure to document this (together with a suggestion " -"to attach only ``QueueHandlers`` to your loggers) for the benefit of other " -"developers who will use your code." -msgstr "" -"Une solution consiste à utiliser une approche en deux parties. Pour la " -"première partie, affectez un seul :class:`QueueHandler` à la journalisation " -"des fils d’exécution critiques pour les performances. Ils écrivent " -"simplement dans leur file d’attente, qui peut être dimensionnée à une " -"capacité suffisamment grande ou initialisée sans limite supérieure en " -"taille. L’écriture dans la file d’attente est généralement acceptée " -"rapidement, mais nous vous conseillons quand même de prévoir d’intercepter " -"l’exception :exc:`queue.Full` par précaution dans votre code. Si vous " -"développez une bibliothèque avec des fils d’exécution critiques pour les " -"performances, documentez-le bien (avec une suggestion de n’affecter que des " -"``QueueHandlers`` à votre journalisation) pour faciliter le travail des " -"développeurs qui utilisent votre code." - -#: howto/logging-cookbook.rst:574 -msgid "" -"The second part of the solution is :class:`QueueListener`, which has been " -"designed as the counterpart to :class:`QueueHandler`. " -"A :class:`QueueListener` is very simple: it's passed a queue and some " -"handlers, and it fires up an internal thread which listens to its queue for " -"LogRecords sent from ``QueueHandlers`` (or any other source of " -"``LogRecords``, for that matter). The ``LogRecords`` are removed from the " -"queue and passed to the handlers for processing." -msgstr "" -"La deuxième partie de la solution est la classe :class:`QueueListener`, " -"conçue comme l’homologue de :class:`QueueHandler`. Un :class:`QueueListener` " -"est très simple : vous lui passez une file d’attente et des gestionnaires, " -"et il lance un fil d’exécution interne qui scrute la file d’attente pour " -"récupérer les événements envoyés par les ``QueueHandlers`` (ou toute autre " -"source de ``LogRecords``, d’ailleurs). Les ``LogRecords`` sont supprimés de " -"la file d’attente et transmis aux gestionnaires pour traitement." - -#: howto/logging-cookbook.rst:582 -msgid "" -"The advantage of having a separate :class:`QueueListener` class is that you " -"can use the same instance to service multiple ``QueueHandlers``. This is " -"more resource-friendly than, say, having threaded versions of the existing " -"handler classes, which would eat up one thread per handler for no particular " -"benefit." -msgstr "" -"L’avantage d’avoir une classe :class:`QueueListener` séparée est que vous " -"pouvez utiliser la même instance pour servir plusieurs ``QueueHandlers``. " -"Cela consomme moins de ressources que des instances de gestionnaires " -"réparties chacune dans un fil d’exécution séparé." - -#: howto/logging-cookbook.rst:587 -msgid "An example of using these two classes follows (imports omitted)::" -msgstr "" -"Voici un exemple d’utilisation de ces deux classes (les importations sont " -"omises) ::" - -#: howto/logging-cookbook.rst:605 -msgid "which, when run, will produce:" -msgstr "ce qui produit ceci à l’exécution :" - -# suit un : -#: howto/logging-cookbook.rst:611 -msgid "" -"Although the earlier discussion wasn't specifically talking about async " -"code, but rather about slow logging handlers, it should be noted that when " -"logging from async code, network and even file handlers could lead to " -"problems (blocking the event loop) because some logging is done " -"from :mod:`asyncio` internals. It might be best, if any async code is used " -"in an application, to use the above approach for logging, so that any " -"blocking code runs only in the ``QueueListener`` thread." -msgstr "" -"bien que la discussion précédente n'aborde pas spécifiquement l'utilisation " -"de code asynchrone, mais concerne les gestionnaires de journalisation lents, " -"notez que lors de la journalisation à partir de code asynchrone, les " -"gestionnaires qui écrivent vers le réseau ou même dans des fichiers peuvent " -"entraîner des problèmes (blocage de la boucle d'événements) car une certaine " -"journalisation est faite à partir du code natif de :mod:`asyncio`. Il peut " -"être préférable, si un code asynchrone est utilisé dans une application, " -"d'utiliser l'approche ci-dessus pour la journalisation, de sorte que tout ce " -"qui utilise du code bloquant ne s'exécute que dans le thread " -"``QueueListener``." - -# suit un : -#: howto/logging-cookbook.rst:619 -msgid "" -"Prior to Python 3.5, the :class:`QueueListener` always passed every message " -"received from the queue to every handler it was initialized with. (This was " -"because it was assumed that level filtering was all done on the other side, " -"where the queue is filled.) From 3.5 onwards, this behaviour can be changed " -"by passing a keyword argument ``respect_handler_level=True`` to the " -"listener's constructor. When this is done, the listener compares the level " -"of each message with the handler's level, and only passes a message to a " -"handler if it's appropriate to do so." -msgstr "" -"avant Python 3.5, la classe :class:`QueueListener` passait chaque message " -"reçu de la file d’attente à chaque gestionnaire avec lequel l’instance avait " -"été initialisée (on supposait que le filtrage de niveau était entièrement " -"effectué de l’autre côté, au niveau de l’alimentation de la file d’attente). " -"Depuis Python 3.5, le comportement peut être modifié en passant l’argument " -"par mot-clé ``respect_handler_level=True`` au constructeur. Dans ce cas, la " -"``QueueListener`` compare le niveau de chaque message avec le niveau défini " -"dans chaque gestionnaire et ne transmet le message que si c’est opportun." - -#: howto/logging-cookbook.rst:629 -msgid "" -"The :class:`QueueListener` can be started (and stopped) via " -"the :keyword:`with` statement. For example:" -msgstr "" - -#: howto/logging-cookbook.rst:645 -msgid "Sending and receiving logging events across a network" -msgstr "Envoi et réception d’événements de journalisation à travers le réseau" - -#: howto/logging-cookbook.rst:647 -msgid "" -"Let's say you want to send logging events across a network, and handle them " -"at the receiving end. A simple way of doing this is attaching " -"a :class:`SocketHandler` instance to the root logger at the sending end::" -msgstr "" -"Supposons que vous souhaitiez envoyer des événements de journalisation sur " -"un réseau et les traiter à la réception. Une façon simple de faire est " -"d’attacher une instance :class:`SocketHandler` à la journalisation racine de " -"l’émetteur ::" - -#: howto/logging-cookbook.rst:675 -msgid "" -"At the receiving end, you can set up a receiver using " -"the :mod:`socketserver` module. Here is a basic working example::" -msgstr "" -"Vous pouvez configurer le récepteur en utilisant le " -"module :mod:`socketserver`. Voici un exemple élémentaire ::" - -#: howto/logging-cookbook.rst:763 -msgid "" -"First run the server, and then the client. On the client side, nothing is " -"printed on the console; on the server side, you should see something like:" -msgstr "" -"Lancez d’abord le serveur, puis le client. Côté client, rien ne s’affiche " -"sur la console ; côté serveur, vous devez voir quelque chose comme ça :" - -#: howto/logging-cookbook.rst:775 -#, fuzzy -msgid "" -"Note that there are some security issues with pickle in some scenarios. If " -"these affect you, you can use an alternative serialization scheme by " -"overriding the :meth:`~SocketHandler.makePickle` method and implementing " -"your alternative there, as well as adapting the above script to use your " -"alternative serialization." -msgstr "" -"Notez que ``pickle`` introduit des problèmes de sécurité dans certains " -"scénarios. Si vous êtes concerné, vous pouvez utiliser une sérialisation " -"alternative en surchargeant la " -"méthode :meth:`~handlers.SocketHandler.makePickle` par votre propre " -"implémentation, ainsi qu’en adaptant le script ci-dessus pour utiliser votre " -"sérialisation." - -#: howto/logging-cookbook.rst:783 -msgid "Running a logging socket listener in production" -msgstr "" -"Journalisation en production à l’aide d’un connecteur en écoute sur le réseau" - -#: howto/logging-cookbook.rst:787 -msgid "" -"To run a logging listener in production, you may need to use a process-" -"management tool such as `Supervisor `_. `Here is a " -"Gist `__ which provides the bare-bones files to run " -"the above functionality using Supervisor. It consists of the following files:" -msgstr "" -"Pour de la journalisation en production *via* un connecteur réseau en " -"écoute, il est probable que vous ayez besoin d’utiliser un outil de " -"surveillance tel que `Supervisor `_. Vous trouverez " -"dans ce `Gist `__ des gabarits pour assurer cette " -"fonction avec *Supervisor*. Il est composé des fichiers suivants :" - -#: howto/logging-cookbook.rst:794 -msgid "File" -msgstr "Fichier" - -#: howto/logging-cookbook.rst:794 -msgid "Purpose" -msgstr "Objectif" - -#: howto/logging-cookbook.rst:796 -msgid ":file:`prepare.sh`" -msgstr ":file:`prepare.sh`" - -#: howto/logging-cookbook.rst:796 -msgid "A Bash script to prepare the environment for testing" -msgstr "Script Bash pour préparer l'environnement de test" - -#: howto/logging-cookbook.rst:799 -msgid ":file:`supervisor.conf`" -msgstr ":file:`supervisor.conf`" - -#: howto/logging-cookbook.rst:799 -msgid "" -"The Supervisor configuration file, which has entries for the listener and a " -"multi-process web application" -msgstr "" -"Fichier de configuration de *Supervisor*, avec les entrées pour le " -"connecteur en écoute et l'application web multi-processus" - -#: howto/logging-cookbook.rst:803 -msgid ":file:`ensure_app.sh`" -msgstr ":file:`ensure_app.sh`" - -#: howto/logging-cookbook.rst:803 -msgid "" -"A Bash script to ensure that Supervisor is running with the above " -"configuration" -msgstr "" -"Script Bash pour s'assurer que *Supervisor* fonctionne bien avec la " -"configuration ci-dessus" - -#: howto/logging-cookbook.rst:806 -msgid ":file:`log_listener.py`" -msgstr ":file:`log_listener.py`" - -#: howto/logging-cookbook.rst:806 -msgid "" -"The socket listener program which receives log events and records them to a " -"file" -msgstr "" -"Programme en écoute sur le réseau qui reçoit les événements de " -"journalisation et les enregistre dans un fichier" - -#: howto/logging-cookbook.rst:809 -msgid ":file:`main.py`" -msgstr ":file:`main.py`" - -#: howto/logging-cookbook.rst:809 -msgid "" -"A simple web application which performs logging via a socket connected to " -"the listener" -msgstr "Application web simple qui journalise *via* un connecteur réseau" - -#: howto/logging-cookbook.rst:812 -msgid ":file:`webapp.json`" -msgstr ":file:`webapp.json`" - -#: howto/logging-cookbook.rst:812 -msgid "A JSON configuration file for the web application" -msgstr "Fichier JSON de configuration de l'application web" - -#: howto/logging-cookbook.rst:814 -msgid ":file:`client.py`" -msgstr ":file:`client.py`" - -#: howto/logging-cookbook.rst:814 -msgid "A Python script to exercise the web application" -msgstr "" -"Script Python qui interagit avec l'application web pour effectuer des appels " -"à la journalisation" - -#: howto/logging-cookbook.rst:817 -msgid "" -"The web application uses `Gunicorn `_, which is a " -"popular web application server that starts multiple worker processes to " -"handle requests. This example setup shows how the workers can write to the " -"same log file without conflicting with one another --- they all go through " -"the socket listener." -msgstr "" -"L'application Web utilise `Gunicorn `_, qui est un " -"serveur d'applications Web populaire qui démarre plusieurs processus de " -"travail pour gérer les demandes. Cet exemple de configuration montre comment " -"les processus peuvent écrire dans le même fichier journal sans entrer en " -"conflit les uns avec les autres — ils passent tous par le connecteur en " -"écoute." - -#: howto/logging-cookbook.rst:822 -msgid "To test these files, do the following in a POSIX environment:" -msgstr "" -"Pour tester ces fichiers, suivez cette procédure dans un environnement " -"POSIX :" - -#: howto/logging-cookbook.rst:824 -msgid "" -"Download `the Gist `__ as a ZIP archive using " -"the :guilabel:`Download ZIP` button." -msgstr "" -"Téléchargez l'archive ZIP du `Gist `__ à l'aide du " -"bouton :guilabel:`Download ZIP`." - -#: howto/logging-cookbook.rst:827 -msgid "Unzip the above files from the archive into a scratch directory." -msgstr "Décompressez les fichiers de l'archive dans un répertoire de travail." - -#: howto/logging-cookbook.rst:829 -msgid "" -"In the scratch directory, run ``bash prepare.sh`` to get things ready. This " -"creates a :file:`run` subdirectory to contain Supervisor-related and log " -"files, and a :file:`venv` subdirectory to contain a virtual environment into " -"which ``bottle``, ``gunicorn`` and ``supervisor`` are installed." -msgstr "" -"Dans le répertoire de travail, exécutez le script de préparation par ``bash " -"prepare.sh``. Cela crée un sous-répertoire :file:`run` pour contenir les " -"fichiers journaux et ceux relatifs à *Supervisor*, ainsi qu'un sous-" -"répertoire :file:`venv` pour contenir un environnement virtuel dans lequel " -"``bottle``, ``gunicorn`` et ``supervisor`` sont installés." - -#: howto/logging-cookbook.rst:834 -msgid "" -"Run ``bash ensure_app.sh`` to ensure that Supervisor is running with the " -"above configuration." -msgstr "" -"Exécutez ``bash ensure_app.sh`` pour vous assurer que *Supervisor* s'exécute " -"avec la configuration ci-dessus." - -#: howto/logging-cookbook.rst:837 -msgid "" -"Run ``venv/bin/python client.py`` to exercise the web application, which " -"will lead to records being written to the log." -msgstr "" -"Exécutez ``venv/bin/python client.py`` pour tester l'application Web, ce qui " -"entraîne l'écriture d'enregistrements dans le journal." - -#: howto/logging-cookbook.rst:840 -msgid "" -"Inspect the log files in the :file:`run` subdirectory. You should see the " -"most recent log lines in files matching the pattern :file:`app.log*`. They " -"won't be in any particular order, since they have been handled concurrently " -"by different worker processes in a non-deterministic way." -msgstr "" -"Inspectez les fichiers journaux dans le sous-répertoire :file:`run`. Vous " -"devriez voir les lignes de journal les plus récentes dans les fichiers de " -"type :file:`app.log*`. Ils ne seront pas dans un ordre particulier, car ils " -"ont été traités par les différents processus de travail de manière non " -"déterministe." - -#: howto/logging-cookbook.rst:845 -msgid "" -"You can shut down the listener and the web application by running ``venv/bin/" -"supervisorctl -c supervisor.conf shutdown``." -msgstr "" -"Vous pouvez arrêter le connecteur en écoute et l'application Web en " -"exécutant ``venv/bin/supervisorctl -c supervisor.conf shutdown``." - -#: howto/logging-cookbook.rst:848 -msgid "" -"You may need to tweak the configuration files in the unlikely event that the " -"configured ports clash with something else in your test environment." -msgstr "" -"Vous devrez peut-être modifier les fichiers de configuration dans le cas peu " -"probable où les ports configurés entrent en conflit avec autre chose dans " -"votre environnement de test." - -#: howto/logging-cookbook.rst:851 -msgid "" -"The default configuration uses a TCP socket on port 9020. You can use a Unix " -"Domain socket instead of a TCP socket by doing the following:" -msgstr "" - -#: howto/logging-cookbook.rst:854 -msgid "" -"In :file:`listener.json`, add a ``socket`` key with the path to the domain " -"socket you want to use. If this key is present, the listener listens on the " -"corresponding domain socket and not on a TCP socket (the ``port`` key is " -"ignored)." -msgstr "" - -#: howto/logging-cookbook.rst:859 -msgid "" -"In :file:`webapp.json`, change the socket handler configuration dictionary " -"so that the ``host`` value is the path to the domain socket, and set the " -"``port`` value to ``null``." -msgstr "" - -#: howto/logging-cookbook.rst:869 -msgid "Adding contextual information to your logging output" -msgstr "Ajout d’informations contextuelles dans la journalisation" - -# #no-qa -#: howto/logging-cookbook.rst:871 -msgid "" -"Sometimes you want logging output to contain contextual information in " -"addition to the parameters passed to the logging call. For example, in a " -"networked application, it may be desirable to log client-specific " -"information in the log (e.g. remote client's username, or IP address). " -"Although you could use the *extra* parameter to achieve this, it's not " -"always convenient to pass the information in this way. While it might be " -"tempting to create :class:`Logger` instances on a per-connection basis, this " -"is not a good idea because these instances are not garbage collected. While " -"this is not a problem in practice, when the number of :class:`Logger` " -"instances is dependent on the level of granularity you want to use in " -"logging an application, it could be hard to manage if the number " -"of :class:`Logger` instances becomes effectively unbounded." -msgstr "" -"Dans certains cas, vous pouvez souhaiter que la journalisation contienne des " -"informations contextuelles en plus des paramètres transmis à l’appel de " -"journalisation. Par exemple, dans une application réseau, il peut être " -"souhaitable de consigner des informations spécifiques au client dans le " -"journal (par exemple, le nom d’utilisateur ou l’adresse IP du client " -"distant). Bien que vous puissiez utiliser le paramètre *extra* pour y " -"parvenir, il n’est pas toujours pratique de transmettre les informations de " -"cette manière. Il peut être aussi tentant de créer des " -"instances :class:`Logger` connexion par connexion, mais ce n’est pas une " -"bonne idée car ces instances :class:`Logger` ne sont pas éliminées par le " -"ramasse-miettes. Même si ce point n’est pas problématique en soi si la " -"journalisation est configurée avec plusieurs niveaux de granularité, cela " -"peut devenir difficile de gérer un nombre potentiellement illimité " -"d’instances de :class:`Logger`." - -#: howto/logging-cookbook.rst:886 -msgid "Using LoggerAdapters to impart contextual information" -msgstr "" -"Utilisation d’adaptateurs de journalisation pour transmettre des " -"informations contextuelles" - -#: howto/logging-cookbook.rst:888 -msgid "" -"An easy way in which you can pass contextual information to be output along " -"with logging event information is to use the :class:`LoggerAdapter` class. " -"This class is designed to look like a :class:`Logger`, so that you can " -"call :meth:`debug`, :meth:`info`, :meth:`warning`, :meth:`error`, :meth:`exception`, :meth:`critical` " -"and :meth:`log`. These methods have the same signatures as their " -"counterparts in :class:`Logger`, so you can use the two types of instances " -"interchangeably." -msgstr "" -"Un moyen simple de transmettre des informations contextuelles accompagnant " -"les informations de journalisation consiste à utiliser la " -"classe :class:`LoggerAdapter`. Cette classe est conçue pour ressembler à " -"un :class:`Logger`, de sorte que vous pouvez " -"appeler :meth:`debug`, :meth:`info`, :meth:`warning`, :meth:`error`, :meth:`exception`, :meth:`critical` " -"et :meth:`log`. Ces méthodes ont les mêmes signatures que leurs homologues " -"dans :class:`Logger`, vous pouvez donc utiliser les deux types d’instances " -"de manière interchangeable." - -#: howto/logging-cookbook.rst:896 -msgid "" -"When you create an instance of :class:`LoggerAdapter`, you pass it " -"a :class:`Logger` instance and a dict-like object which contains your " -"contextual information. When you call one of the logging methods on an " -"instance of :class:`LoggerAdapter`, it delegates the call to the underlying " -"instance of :class:`Logger` passed to its constructor, and arranges to pass " -"the contextual information in the delegated call. Here's a snippet from the " -"code of :class:`LoggerAdapter`::" -msgstr "" -"Lorsque vous créez une instance de :class:`LoggerAdapter`, vous lui " -"transmettez une instance de :class:`Logger` et un objet dictionnaire qui " -"contient vos informations contextuelles. Lorsque vous appelez l’une des " -"méthodes de journalisation sur une instance de :class:`LoggerAdapter`, elle " -"délègue l’appel à l’instance sous-jacente de :class:`Logger` transmise à son " -"constructeur et s’arrange pour intégrer les informations contextuelles dans " -"l’appel délégué. Voici un extrait du code de :class:`LoggerAdapter` ::" - -#: howto/logging-cookbook.rst:912 -msgid "" -"The :meth:`~LoggerAdapter.process` method of :class:`LoggerAdapter` is where " -"the contextual information is added to the logging output. It's passed the " -"message and keyword arguments of the logging call, and it passes back " -"(potentially) modified versions of these to use in the call to the " -"underlying logger. The default implementation of this method leaves the " -"message alone, but inserts an 'extra' key in the keyword argument whose " -"value is the dict-like object passed to the constructor. Of course, if you " -"had passed an 'extra' keyword argument in the call to the adapter, it will " -"be silently overwritten." -msgstr "" -"Les informations contextuelles sont ajoutées dans la " -"méthode :meth:`~LoggerAdapter.process` de :class:`LoggerAdapter`. On lui " -"passe le message et les arguments par mot-clé de l’appel de journalisation, " -"et elle en renvoie des versions (potentiellement) modifiées à utiliser pour " -"la journalisation sous-jacente. L’implémentation par défaut de cette méthode " -"laisse le message seul, mais insère une clé ``extra`` dans l’argument par " -"mot-clé dont la valeur est l’objet dictionnaire passé au constructeur. Bien " -"sûr, si vous avez passé un argument par mot-clé ``extra`` dans l’appel à " -"l’adaptateur, il est écrasé silencieusement." - -#: howto/logging-cookbook.rst:921 -msgid "" -"The advantage of using 'extra' is that the values in the dict-like object " -"are merged into the :class:`LogRecord` instance's __dict__, allowing you to " -"use customized strings with your :class:`Formatter` instances which know " -"about the keys of the dict-like object. If you need a different method, e.g. " -"if you want to prepend or append the contextual information to the message " -"string, you just need to subclass :class:`LoggerAdapter` and " -"override :meth:`~LoggerAdapter.process` to do what you need. Here is a " -"simple example::" -msgstr "" -"L’avantage d’utiliser ``extra`` est que les valeurs de l’objet dictionnaire " -"sont fusionnées dans le ``__dict__`` de l’instance :class:`LogRecord`, ce " -"qui vous permet d’utiliser des chaînes personnalisées avec vos " -"instances :class:`Formatter` qui connaissent les clés de l’objet " -"dictionnaire. Si vous avez besoin d’une méthode différente, par exemple si " -"vous souhaitez ajouter des informations contextuelles avant ou après la " -"chaîne de message, il vous suffit de surcharger :class:`LoggerAdapter` et de " -"remplacer :meth:`~LoggerAdapter.process` pour faire ce dont vous avez " -"besoin. Voici un exemple simple ::" - -#: howto/logging-cookbook.rst:937 -msgid "which you can use like this::" -msgstr "que vous pouvez utiliser comme ceci ::" - -#: howto/logging-cookbook.rst:942 -msgid "" -"Then any events that you log to the adapter will have the value of " -"``some_conn_id`` prepended to the log messages." -msgstr "" -"Ainsi, tout événement journalisé aura la valeur de ``some_conn_id`` insérée " -"en début de message de journalisation." - -#: howto/logging-cookbook.rst:946 -msgid "Using objects other than dicts to pass contextual information" -msgstr "" -"Utilisation d’objets autres que les dictionnaires pour passer des " -"informations contextuelles" - -#: howto/logging-cookbook.rst:948 -msgid "" -"You don't need to pass an actual dict to a :class:`LoggerAdapter` - you " -"could pass an instance of a class which implements ``__getitem__`` and " -"``__iter__`` so that it looks like a dict to logging. This would be useful " -"if you want to generate values dynamically (whereas the values in a dict " -"would be constant)." -msgstr "" -"Il n’est pas obligatoire de passer un dictionnaire réel à " -"un :class:`LoggerAdapter`, vous pouvez passer une instance d’une classe qui " -"implémente ``__getitem__`` et ``__iter__`` pour qu’il ressemble à un " -"dictionnaire du point de vue de la journalisation. C’est utile si vous " -"souhaitez générer des valeurs de manière dynamique (alors que les valeurs " -"d’un dictionnaire seraient constantes)." - -#: howto/logging-cookbook.rst:957 -msgid "Using Filters to impart contextual information" -msgstr "Utilisation de filtres pour transmettre des informations contextuelles" - -#: howto/logging-cookbook.rst:959 -msgid "" -"You can also add contextual information to log output using a user-" -"defined :class:`Filter`. ``Filter`` instances are allowed to modify the " -"``LogRecords`` passed to them, including adding additional attributes which " -"can then be output using a suitable format string, or if needed a " -"custom :class:`Formatter`." -msgstr "" -"Un :class:`Filter` défini par l’utilisateur peut aussi ajouter des " -"informations contextuelles à la journalisation. Les instances de ``Filter`` " -"sont autorisées à modifier les ``LogRecords`` qui leur sont transmis, y " -"compris par l’ajout d’attributs supplémentaires qui peuvent ensuite être " -"intégrés à la journalisation en utilisant une chaîne de formatage appropriée " -"ou, si nécessaire, un :class:`Formatter` personnalisé." - -#: howto/logging-cookbook.rst:964 -msgid "" -"For example in a web application, the request being processed (or at least, " -"the interesting parts of it) can be stored in a threadlocal " -"(:class:`threading.local`) variable, and then accessed from a ``Filter`` to " -"add, say, information from the request - say, the remote IP address and " -"remote user's username - to the ``LogRecord``, using the attribute names " -"'ip' and 'user' as in the ``LoggerAdapter`` example above. In that case, the " -"same format string can be used to get similar output to that shown above. " -"Here's an example script::" -msgstr "" -"Par exemple, dans une application Web, la requête en cours de traitement (ou " -"du moins ce qu’elle contient d’intéressant) peut être stockée dans une " -"variable locale au fil d’exécution (:class:`threading.local`), puis utilisée " -"dans un ``Filter`` pour ajouter, par exemple, des informations relatives à " -"la requête (par exemple, l’adresse IP distante et le nom de l’utilisateur) " -"au ``LogRecord``, en utilisant les noms d’attribut ``ip`` et ``user`` comme " -"dans l’exemple ``LoggerAdapter`` ci-dessus. Dans ce cas, la même chaîne de " -"formatage peut être utilisée pour obtenir une sortie similaire à celle " -"indiquée ci-dessus. Voici un exemple de script ::" - -#: howto/logging-cookbook.rst:1010 -msgid "which, when run, produces something like:" -msgstr "qui, à l’exécution, produit quelque chose comme ça :" - -#: howto/logging-cookbook.rst:1028 -msgid "Use of ``contextvars``" -msgstr "" - -#: howto/logging-cookbook.rst:1030 -msgid "" -"Since Python 3.7, the :mod:`contextvars` module has provided context-local " -"storage which works for both :mod:`threading` and :mod:`asyncio` processing " -"needs. This type of storage may thus be generally preferable to thread-" -"locals. The following example shows how, in a multi-threaded environment, " -"logs can populated with contextual information such as, for example, request " -"attributes handled by web applications." -msgstr "" - -#: howto/logging-cookbook.rst:1036 -msgid "" -"For the purposes of illustration, say that you have different web " -"applications, each independent of the other but running in the same Python " -"process and using a library common to them. How can each of these " -"applications have their own log, where all logging messages from the library " -"(and other request processing code) are directed to the appropriate " -"application's log file, while including in the log additional contextual " -"information such as client IP, HTTP request method and client username?" -msgstr "" - -#: howto/logging-cookbook.rst:1043 -msgid "Let's assume that the library can be simulated by the following code:" -msgstr "" - -#: howto/logging-cookbook.rst:1059 -msgid "" -"We can simulate the multiple web applications by means of two simple " -"classes, ``Request`` and ``WebApp``. These simulate how real threaded web " -"applications work - each request is handled by a thread:" -msgstr "" - -#: howto/logging-cookbook.rst:1203 -msgid "" -"If you run the above, you should find that roughly half the requests go " -"into :file:`app1.log` and the rest into :file:`app2.log`, and the all the " -"requests are logged to :file:`app.log`. Each webapp-specific log will " -"contain only log entries for only that webapp, and the request information " -"will be displayed consistently in the log (i.e. the information in each " -"dummy request will always appear together in a log line). This is " -"illustrated by the following shell output:" -msgstr "" - -#: howto/logging-cookbook.rst:1250 -msgid "Imparting contextual information in handlers" -msgstr "Ajout d'informations contextuelles dans la journalisation" - -#: howto/logging-cookbook.rst:1252 -msgid "" -"Each :class:`~Handler` has its own chain of filters. If you want to add " -"contextual information to a :class:`LogRecord` without leaking it to other " -"handlers, you can use a filter that returns a new :class:`~LogRecord` " -"instead of modifying it in-place, as shown in the following script::" -msgstr "" -"Chaque :class:`~Handler` possède sa propre chaîne de filtres. Si vous " -"souhaitez ajouter des informations contextuelles à un :class:`LogRecord` " -"sans impacter d'autres gestionnaires, vous pouvez utiliser un filtre qui " -"renvoie un nouveau :class:`~LogRecord` au lieu de le modifier sur place, " -"comme dans le script suivant ::" - -#: howto/logging-cookbook.rst:1279 -msgid "Logging to a single file from multiple processes" -msgstr "Journalisation vers un fichier unique à partir de plusieurs processus" - -#: howto/logging-cookbook.rst:1281 -msgid "" -"Although logging is thread-safe, and logging to a single file from multiple " -"threads in a single process *is* supported, logging to a single file from " -"*multiple processes* is *not* supported, because there is no standard way to " -"serialize access to a single file across multiple processes in Python. If " -"you need to log to a single file from multiple processes, one way of doing " -"this is to have all the processes log to a :class:`~handlers.SocketHandler`, " -"and have a separate process which implements a socket server which reads " -"from the socket and logs to file. (If you prefer, you can dedicate one " -"thread in one of the existing processes to perform this " -"function.) :ref:`This section ` documents this approach in " -"more detail and includes a working socket receiver which can be used as a " -"starting point for you to adapt in your own applications." -msgstr "" -"La journalisation est fiable avec les programmes à fils d’exécution " -"multiples (*thread-safe*) : rien n’empêche plusieurs fils d’exécution de " -"journaliser dans le même fichier, du moment que ces fils d’exécution font " -"partie du même processus. En revanche, il n’existe aucun moyen standard de " -"sérialiser l’accès à un seul fichier sur plusieurs processus en Python. Si " -"vous avez besoin de vous connecter à un seul fichier à partir de plusieurs " -"processus, une façon de le faire est de faire en sorte que tous les " -"processus se connectent à un :class:`~handlers.SocketHandler`, et d’avoir un " -"processus séparé qui implémente un serveur qui lit à partir de ce connecteur " -"et écrit les journaux dans le fichier (si vous préférez, vous pouvez dédier " -"un fil d’exécution dans l’un des processus existants pour exécuter cette " -"tâche). :ref:`Cette section ` documente cette approche plus " -"en détail et inclut un connecteur en écoute réseau fonctionnel qui peut être " -"utilisé comme point de départ pour l’adapter à vos propres applications." - -#: howto/logging-cookbook.rst:1294 -#, fuzzy -msgid "" -"You could also write your own handler which uses " -"the :class:`~multiprocessing.Lock` class from the :mod:`multiprocessing` " -"module to serialize access to the file from your processes. The " -"stdlib :class:`FileHandler` and subclasses do not make use " -"of :mod:`multiprocessing`." -msgstr "" -"Vous pouvez également écrire votre propre gestionnaire en utilisant la " -"classe :class:`~multiprocessing.Lock` du module :mod:`multiprocessing` pour " -"sérialiser l’accès au fichier depuis vos processus. Les " -"actuels :class:`FileHandler` et sous-classes n’utilisent " -"pas :mod:`multiprocessing` pour le moment, même s’ils pourraient le faire à " -"l’avenir. Notez qu’à l’heure actuelle, le module :mod:`multiprocessing` ne " -"fournit pas un verrouillage fonctionnel pour toutes les plates-formes (voir " -"https://bugs.python.org/issue3770)." - -#: howto/logging-cookbook.rst:1301 -msgid "" -"Alternatively, you can use a ``Queue`` and a :class:`QueueHandler` to send " -"all logging events to one of the processes in your multi-process " -"application. The following example script demonstrates how you can do this; " -"in the example a separate listener process listens for events sent by other " -"processes and logs them according to its own logging configuration. Although " -"the example only demonstrates one way of doing it (for example, you may want " -"to use a listener thread rather than a separate listener process -- the " -"implementation would be analogous) it does allow for completely different " -"logging configurations for the listener and the other processes in your " -"application, and can be used as the basis for code meeting your own specific " -"requirements::" -msgstr "" -"Autrement, vous pouvez utiliser une ``Queue`` et un :class:`QueueHandler` " -"pour envoyer tous les événements de journalisation à l’un des processus de " -"votre application multi-processus. L’exemple de script suivant montre " -"comment procéder ; dans l’exemple, un processus d’écoute distinct écoute les " -"événements envoyés par les autres processus et les journalise en fonction de " -"sa propre configuration de journalisation. Bien que l’exemple ne montre " -"qu’une seule façon de faire (par exemple, vous pouvez utiliser un fil " -"d’exécution d’écoute plutôt qu’un processus d’écoute séparé – " -"l’implémentation serait analogue), il permet des configurations de " -"journalisation complètement différentes pour celui qui écoute ainsi que pour " -"les autres processus de votre application, et peut être utilisé comme base " -"pour répondre à vos propres exigences ::" - -#: howto/logging-cookbook.rst:1417 -msgid "" -"A variant of the above script keeps the logging in the main process, in a " -"separate thread::" -msgstr "" -"Une variante du script ci-dessus conserve la journalisation dans le " -"processus principal, dans un fil séparé ::" - -#: howto/logging-cookbook.rst:1512 -msgid "" -"This variant shows how you can e.g. apply configuration for particular " -"loggers - e.g. the ``foo`` logger has a special handler which stores all " -"events in the ``foo`` subsystem in a file ``mplog-foo.log``. This will be " -"used by the logging machinery in the main process (even though the logging " -"events are generated in the worker processes) to direct the messages to the " -"appropriate destinations." -msgstr "" -"Cette variante montre comment appliquer la configuration pour des " -"enregistreurs particuliers – par exemple l’enregistreur ``foo`` a un " -"gestionnaire spécial qui stocke tous les événements du sous-système ``foo`` " -"dans un fichier ``mplog-foo.log``. C’est utilisé par le mécanisme de " -"journalisation dans le processus principal (même si les événements de " -"journalisation sont générés dans les processus de travail) pour diriger les " -"messages vers les destinations appropriées." - -#: howto/logging-cookbook.rst:1519 -msgid "Using concurrent.futures.ProcessPoolExecutor" -msgstr "Utilisation de concurrent.futures.ProcessPoolExecutor" - -#: howto/logging-cookbook.rst:1521 -msgid "" -"If you want to use :class:`concurrent.futures.ProcessPoolExecutor` to start " -"your worker processes, you need to create the queue slightly differently. " -"Instead of" -msgstr "" -"Si vous souhaitez utiliser :class:`concurrent.futures.ProcessPoolExecutor` " -"pour démarrer vos processus de travail, vous devez créer la file d’attente " -"légèrement différemment. À la place de" - -#: howto/logging-cookbook.rst:1529 -msgid "you should use" -msgstr "vous devez écrire" - -#: howto/logging-cookbook.rst:1535 -msgid "and you can then replace the worker creation from this::" -msgstr "" -"et vous pouvez alors remplacer la création du processus de travail telle " -"que ::" - -#: howto/logging-cookbook.rst:1546 -msgid "to this (remembering to first import :mod:`concurrent.futures`)::" -msgstr "" -"par celle-ci (souvenez-vous d’importer au " -"préalable :mod:`concurrent.futures`) ::" - -#: howto/logging-cookbook.rst:1553 -#, fuzzy -msgid "Deploying web applications using Gunicorn and uWSGI" -msgstr "Déploiement d’applications Web avec *Gunicorn* et *uWSGI*" - -#: howto/logging-cookbook.rst:1555 -#, fuzzy -msgid "" -"When deploying web applications using `Gunicorn `_ or " -"`uWSGI `_ (or similar), " -"multiple worker processes are created to handle client requests. In such " -"environments, avoid creating file-based handlers directly in your web " -"application. Instead, use a :class:`SocketHandler` to log from the web " -"application to a listener in a separate process. This can be set up using a " -"process management tool such as Supervisor - see `Running a logging socket " -"listener in production`_ for more details." -msgstr "" -"Lors du déploiement d’applications Web qui utilisent `Gunicorn `_ ou `uWSGI `_ " -"(ou équivalent), plusieurs processus de travail sont créés pour traiter les " -"requêtes des clients. Dans de tels environnements, évitez de créer des " -"gestionnaires à fichiers directement dans votre application Web. Au lieu de " -"cela, utilisez un :class:`SocketHandler` pour journaliser depuis " -"l’application Web vers gestionnaire réseau à l’écoute dans un processus " -"séparé. Cela peut être configuré à l’aide d’un outil de gestion de processus " -"tel que *Supervisor* (voir `Journalisation en production à l’aide d’un " -"connecteur en écoute sur le réseau`_ pour plus de détails)." - -#: howto/logging-cookbook.rst:1565 -msgid "Using file rotation" -msgstr "Utilisation du roulement de fichiers" - -#: howto/logging-cookbook.rst:1567 -#, fuzzy -msgid "" -"Sometimes you want to let a log file grow to a certain size, then open a new " -"file and log to that. You may want to keep a certain number of these files, " -"and when that many files have been created, rotate the files so that the " -"number of files and the size of the files both remain bounded. For this " -"usage pattern, the logging package provides a :class:`RotatingFileHandler`::" -msgstr "" -"Parfois, vous souhaitez laisser un fichier de journalisation grossir jusqu’à " -"une certaine taille, puis ouvrir un nouveau fichier et vous y enregistrer " -"les nouveaux événements. Vous souhaitez peut-être conserver un certain " -"nombre de ces fichiers et, lorsque ce nombre de fichiers aura été créé, " -"faire rouler les fichiers afin que le nombre de fichiers et la taille des " -"fichiers restent tous deux limités. Pour ce cas " -"d’usage, :class:`~handlers.RotatingFileHandler` est inclus dans le paquet de " -"journalisation ::" - -#: howto/logging-cookbook.rst:1599 -msgid "" -"The result should be 6 separate files, each with part of the log history for " -"the application:" -msgstr "" -"Vous devez obtenir 6 fichiers séparés, chacun contenant une partie de " -"l’historique de journalisation de l’application :" - -#: howto/logging-cookbook.rst:1611 -msgid "" -"The most current file is always :file:`logging_rotatingfile_example.out`, " -"and each time it reaches the size limit it is renamed with the suffix " -"``.1``. Each of the existing backup files is renamed to increment the suffix " -"(``.1`` becomes ``.2``, etc.) and the ``.6`` file is erased." -msgstr "" -"Le fichier de journalisation actuel est " -"toujours :file:`logging_rotatingfile_example.out`, et chaque fois qu’il " -"atteint la taille limite, il est renommé avec le suffixe ``.1``. Chacun des " -"fichiers de sauvegarde existants est renommé pour incrémenter le suffixe " -"(``.1`` devient ``.2``, etc.) et le fichier ``.6`` est effacé." - -#: howto/logging-cookbook.rst:1616 -msgid "" -"Obviously this example sets the log length much too small as an extreme " -"example. You would want to set *maxBytes* to an appropriate value." -msgstr "" -"De toute évidence, la longueur du journal définie dans cet exemple est " -"beaucoup trop petite. À vous de définir *maxBytes* à une valeur appropriée." - -#: howto/logging-cookbook.rst:1624 -msgid "Use of alternative formatting styles" -msgstr "Utilisation d’autres styles de formatage" - -#: howto/logging-cookbook.rst:1626 -msgid "" -"When logging was added to the Python standard library, the only way of " -"formatting messages with variable content was to use the %-formatting " -"method. Since then, Python has gained two new formatting " -"approaches: :class:`string.Template` (added in Python 2.4) " -"and :meth:`str.format` (added in Python 2.6)." -msgstr "" -"Lorsque la journalisation a été ajoutée à la bibliothèque standard Python, " -"la seule façon de formater les messages avec un contenu variable était " -"d’utiliser la méthode de formatage avec « % ». Depuis, Python s’est enrichi " -"de deux nouvelles méthode de formatage : :class:`string.Template` (ajouté " -"dans Python 2.4) et :meth:`str.format` (ajouté dans Python 2.6)." - -#: howto/logging-cookbook.rst:1632 -msgid "" -"Logging (as of 3.2) provides improved support for these two additional " -"formatting styles. The :class:`Formatter` class been enhanced to take an " -"additional, optional keyword parameter named ``style``. This defaults to " -"``'%'``, but other possible values are ``'{'`` and ``'$'``, which correspond " -"to the other two formatting styles. Backwards compatibility is maintained by " -"default (as you would expect), but by explicitly specifying a style " -"parameter, you get the ability to specify format strings which work " -"with :meth:`str.format` or :class:`string.Template`. Here's an example " -"console session to show the possibilities:" -msgstr "" -"La journalisation (à partir de la version 3.2) offre une meilleure prise en " -"charge de ces deux styles de formatage supplémentaires. La " -"classe :class:`Formatter` a été améliorée pour accepter un paramètre par mot-" -"clé facultatif supplémentaire nommé ``style``. La valeur par défaut est " -"``'%'``, les autres valeurs possibles étant ``'{'`` et ``'$'``, qui " -"correspondent aux deux autres styles de formatage. La rétrocompatibilité est " -"maintenue par défaut (comme vous vous en doutez) mais, en spécifiant " -"explicitement un paramètre de style, vous avez la possibilité de spécifier " -"des chaînes de format qui fonctionnent avec :meth:`str.format` " -"ou :class:`string.Template`. Voici un exemple de session interactive en " -"console pour montrer les possibilités :" - -#: howto/logging-cookbook.rst:1666 -msgid "" -"Note that the formatting of logging messages for final output to logs is " -"completely independent of how an individual logging message is constructed. " -"That can still use %-formatting, as shown here::" -msgstr "" -"Notez que le formatage des messages de journalisation est, au final, " -"complètement indépendant de la façon dont un message de journalisation " -"individuel est construit. Vous pouvez toujours utiliser formatage *via* " -"« % », comme ici ::" - -#: howto/logging-cookbook.rst:1674 -msgid "" -"Logging calls (``logger.debug()``, ``logger.info()`` etc.) only take " -"positional parameters for the actual logging message itself, with keyword " -"parameters used only for determining options for how to handle the actual " -"logging call (e.g. the ``exc_info`` keyword parameter to indicate that " -"traceback information should be logged, or the ``extra`` keyword parameter " -"to indicate additional contextual information to be added to the log). So " -"you cannot directly make logging calls using :meth:`str.format` " -"or :class:`string.Template` syntax, because internally the logging package " -"uses %-formatting to merge the format string and the variable arguments. " -"There would be no changing this while preserving backward compatibility, " -"since all logging calls which are out there in existing code will be using %-" -"format strings." -msgstr "" -"Les appels de journalisation (``logger.debug()``, ``logger.info()`` etc.) ne " -"prennent que des paramètres positionnels pour le message de journalisation " -"lui-même, les paramètres par mots-clés étant utilisés uniquement pour " -"déterminer comment gérer le message réel (par exemple, le paramètre par mot-" -"clé ``exc_info`` indique que les informations de trace doivent être " -"enregistrées, ou le paramètre par mot-clé ``extra`` indique des informations " -"contextuelles supplémentaires à ajouter au journal). Vous ne pouvez donc pas " -"inclure dans les appels de journalisation à l’aide de la " -"syntaxe :meth:`str.format` ou :class:`string.Template`, car le paquet de " -"journalisation utilise le formatage via « % » en interne pour fusionner la " -"chaîne de format et les arguments de variables. Il n’est pas possible de " -"changer ça tout en préservant la rétrocompatibilité puisque tous les appels " -"de journalisation dans le code pré-existant utilisent des chaînes au format " -"« % »." - -#: howto/logging-cookbook.rst:1687 -msgid "" -"There is, however, a way that you can use {}- and $- formatting to construct " -"your individual log messages. Recall that for a message you can use an " -"arbitrary object as a message format string, and that the logging package " -"will call ``str()`` on that object to get the actual format string. Consider " -"the following two classes::" -msgstr "" -"Il existe cependant un moyen d’utiliser le formatage *via* « {} » et « $ » " -"pour vos messages de journalisation. Rappelez-vous que, pour un message, " -"vous pouvez utiliser un objet arbitraire comme chaîne de format de message, " -"et que le package de journalisation appelle ``str()`` sur cet objet pour " -"fabriquer la chaîne finale. Considérez les deux classes suivantes ::" - -#: howto/logging-cookbook.rst:1711 -msgid "" -"Either of these can be used in place of a format string, to allow {}- or $-" -"formatting to be used to build the actual \"message\" part which appears in " -"the formatted log output in place of \"%(message)s\" or \"{message}\" or " -"\"$message\". It's a little unwieldy to use the class names whenever you " -"want to log something, but it's quite palatable if you use an alias such as " -"__ (double underscore --- not to be confused with _, the single underscore " -"used as a synonym/alias for :func:`gettext.gettext` or its brethren)." -msgstr "" -"L’une ou l’autre peut être utilisée à la place d’une chaîne de format \"%" -"(message)s\" ou \"{message}\" ou \"$message\", afin de mettre en forme *via* " -"« { } » ou « $ » la partie « message réel » qui apparaît dans la sortie de " -"journal formatée. Il est un peu lourd d’utiliser les noms de classe chaque " -"fois que vous voulez journaliser quelque chose, mais ça devient acceptable " -"si vous utilisez un alias tel que __ (double trait de soulignement — à ne " -"pas confondre avec _, le trait de soulignement unique utilisé comme alias " -"pour :func:`gettext.gettext` ou ses homologues)." - -#: howto/logging-cookbook.rst:1719 -msgid "" -"The above classes are not included in Python, though they're easy enough to " -"copy and paste into your own code. They can be used as follows (assuming " -"that they're declared in a module called ``wherever``):" -msgstr "" -"Les classes ci-dessus ne sont pas incluses dans Python, bien qu’elles soient " -"assez faciles à copier et coller dans votre propre code. Elles peuvent être " -"utilisées comme suit (en supposant qu’elles soient déclarées dans un module " -"appelé ``wherever``) :" - -#: howto/logging-cookbook.rst:1741 -msgid "" -"While the above examples use ``print()`` to show how the formatting works, " -"you would of course use ``logger.debug()`` or similar to actually log using " -"this approach." -msgstr "" -"Alors que les exemples ci-dessus utilisent ``print()`` pour montrer comment " -"fonctionne le formatage, utilisez bien sûr ``logger.debug()`` ou similaire " -"pour journaliser avec cette approche." - -#: howto/logging-cookbook.rst:1745 -#, fuzzy -msgid "" -"One thing to note is that you pay no significant performance penalty with " -"this approach: the actual formatting happens not when you make the logging " -"call, but when (and if) the logged message is actually about to be output to " -"a log by a handler. So the only slightly unusual thing which might trip you " -"up is that the parentheses go around the format string and the arguments, " -"not just the format string. That's because the __ notation is just syntax " -"sugar for a constructor call to one of the :samp:`{XXX}Message` classes." -msgstr "" -"Une chose à noter est qu’il n’y a pas de perte de performance significative " -"avec cette approche : le formatage réel ne se produit pas lorsque vous " -"effectuez l’appel de journalisation, mais lorsque (et si) le message " -"journalisé est réellement sur le point d’être écrit dans un journal par un " -"gestionnaire. Ainsi, la seule chose légèrement inhabituelle qui pourrait " -"vous perturber est que les parenthèses entourent la chaîne de format et les " -"arguments, pas seulement la chaîne de format. C’est parce que la notation __ " -"n’est que du sucre syntaxique pour un appel de constructeur à l’une des " -"classes ``XXXMessage``." - -#: howto/logging-cookbook.rst:1753 -msgid "" -"If you prefer, you can use a :class:`LoggerAdapter` to achieve a similar " -"effect to the above, as in the following example::" -msgstr "" -"Si vous préférez, vous pouvez utiliser un :class:`LoggerAdapter` pour " -"obtenir un effet similaire à ce qui précède, comme dans l’exemple suivant ::" - -#: howto/logging-cookbook.rst:1782 -#, fuzzy -msgid "" -"The above script should log the message ``Hello, world!`` when run with " -"Python 3.8 or later." -msgstr "" -"Le script ci-dessus journalise le message ``Hello, world!`` quand il est " -"lancé avec Python 3.2 ou ultérieur." - -#: howto/logging-cookbook.rst:1791 -msgid "Customizing ``LogRecord``" -msgstr "Personnalisation de ``LogRecord``" - -#: howto/logging-cookbook.rst:1793 -msgid "" -"Every logging event is represented by a :class:`LogRecord` instance. When an " -"event is logged and not filtered out by a logger's level, " -"a :class:`LogRecord` is created, populated with information about the event " -"and then passed to the handlers for that logger (and its ancestors, up to " -"and including the logger where further propagation up the hierarchy is " -"disabled). Before Python 3.2, there were only two places where this creation " -"was done:" -msgstr "" -"Chaque événement de journalisation est représenté par une " -"instance :class:`LogRecord`. Lorsqu’un événement est enregistré et non " -"filtré en raison du niveau d’un enregistreur, un :class:`LogRecord` est " -"créé, rempli avec les informations de l’événement, puis transmis aux " -"gestionnaires de cet enregistreur (et ses ancêtres, jusqu’à et y compris " -"l’enregistreur où la propagation vers le haut de la hiérarchie est " -"désactivée). Avant Python 3.2, il n’y avait que deux endroits où cette " -"création était effectuée :" - -#: howto/logging-cookbook.rst:1800 -msgid "" -":meth:`Logger.makeRecord`, which is called in the normal process of logging " -"an event. This invoked :class:`LogRecord` directly to create an instance." -msgstr "" -":meth:`Logger.makeRecord`, qui est appelée dans le processus normal de " -"journalisation d’un événement. Elle appelait :class:`LogRecord` directement " -"pour créer une instance." - -#: howto/logging-cookbook.rst:1803 -msgid "" -":func:`makeLogRecord`, which is called with a dictionary containing " -"attributes to be added to the LogRecord. This is typically invoked when a " -"suitable dictionary has been received over the network (e.g. in pickle form " -"via a :class:`~handlers.SocketHandler`, or in JSON form via " -"an :class:`~handlers.HTTPHandler`)." -msgstr "" -":func:`makeLogRecord`, qui est appelée avec un dictionnaire contenant des " -"attributs à ajouter au *LogRecord*. Elle est généralement invoquée lorsqu’un " -"dictionnaire approprié a été reçu par le réseau (par exemple, sous forme de " -"*pickle* *via* un :class:`~handlers.SocketHandler`, ou sous format JSON " -"*via* un :class:`~handlers.HTTPHandler`)." - -#: howto/logging-cookbook.rst:1809 -msgid "" -"This has usually meant that if you need to do anything special with " -"a :class:`LogRecord`, you've had to do one of the following." -msgstr "" -"Cela signifiait généralement que, si vous deviez faire quelque chose de " -"spécial avec un :class:`LogRecord`, vous deviez faire l’une des choses " -"suivantes." - -#: howto/logging-cookbook.rst:1812 -msgid "" -"Create your own :class:`Logger` subclass, which " -"overrides :meth:`Logger.makeRecord`, and set it " -"using :func:`~logging.setLoggerClass` before any loggers that you care about " -"are instantiated." -msgstr "" -"Créer votre propre sous-classe :class:`Logger`, " -"surchargeant :meth:`Logger.makeRecord`, et la personnaliser à l’aide " -"de :func:`~logging.setLoggerClass` avant que les enregistreurs qui vous " -"intéressaient ne soient instanciés." - -#: howto/logging-cookbook.rst:1815 -msgid "" -"Add a :class:`Filter` to a logger or handler, which does the necessary " -"special manipulation you need when its :meth:`~Filter.filter` method is " -"called." -msgstr "" -"Ajouter un :class:`Filter` à un enregistreur ou un gestionnaire, qui " -"effectuait la manipulation spéciale nécessaire dont vous aviez besoin " -"lorsque sa méthode :meth:`~Filter.filter` était appelée." - -#: howto/logging-cookbook.rst:1819 -msgid "" -"The first approach would be a little unwieldy in the scenario where (say) " -"several different libraries wanted to do different things. Each would " -"attempt to set its own :class:`Logger` subclass, and the one which did this " -"last would win." -msgstr "" -"La première approche est un peu lourde dans le scénario où (disons) " -"plusieurs bibliothèques différentes veulent faire des choses différentes. " -"Chacun essaie de définir sa propre sous-classe :class:`Logger`, et celui qui " -"l’a fait en dernier gagne." - -#: howto/logging-cookbook.rst:1824 -msgid "" -"The second approach works reasonably well for many cases, but does not allow " -"you to e.g. use a specialized subclass of :class:`LogRecord`. Library " -"developers can set a suitable filter on their loggers, but they would have " -"to remember to do this every time they introduced a new logger (which they " -"would do simply by adding new packages or modules and doing ::" -msgstr "" -"La seconde approche fonctionne raisonnablement bien dans de nombreux cas, " -"mais ne vous permet pas, par exemple, d’utiliser une sous-classe spécialisée " -"de :class:`LogRecord`. Les développeurs de bibliothèques peuvent définir un " -"filtre approprié sur leurs enregistreurs, mais ils doivent se rappeler de le " -"faire chaque fois qu’ils introduisent un nouvel enregistreur (ce qu’ils font " -"simplement en ajoutant de nouveaux paquets ou modules et en écrivant ::" - -#: howto/logging-cookbook.rst:1832 -msgid "" -"at module level). It's probably one too many things to think about. " -"Developers could also add the filter to a :class:`~logging.NullHandler` " -"attached to their top-level logger, but this would not be invoked if an " -"application developer attached a handler to a lower-level library logger --- " -"so output from that handler would not reflect the intentions of the library " -"developer." -msgstr "" -"au niveau des modules). C’est probablement trop de choses auxquelles penser. " -"Les développeurs pourraient également ajouter le filtre à " -"un :class:`~logging.NullHandler` attaché à leur enregistreur de niveau " -"supérieur, mais cela ne serait pas invoqué si un développeur d’application " -"attachait un gestionnaire à un enregistreur de bibliothèque de niveau " -"inférieur — donc la sortie de ce gestionnaire ne refléterait pas les " -"intentions du développeur de la bibliothèque." - -#: howto/logging-cookbook.rst:1838 -msgid "" -"In Python 3.2 and later, :class:`~logging.LogRecord` creation is done " -"through a factory, which you can specify. The factory is just a callable you " -"can set with :func:`~logging.setLogRecordFactory`, and interrogate " -"with :func:`~logging.getLogRecordFactory`. The factory is invoked with the " -"same signature as the :class:`~logging.LogRecord` constructor, " -"as :class:`LogRecord` is the default setting for the factory." -msgstr "" -"Dans Python 3.2 et ultérieurs, la création de :class:`~logging.LogRecord` " -"est effectuée via une fabrique, que vous pouvez spécifier. La fabrique est " -"juste un appelable que vous pouvez définir " -"avec :func:`~logging.setLogRecordFactory`, et interroger " -"avec :func:`~logging.getLogRecordFactory`. La fabrique est invoquée avec la " -"même signature que le constructeur :class:`~logging.LogRecord`, " -"car :class:`LogRecord` est le paramètre par défaut de la fabrique." - -#: howto/logging-cookbook.rst:1845 -msgid "" -"This approach allows a custom factory to control all aspects of LogRecord " -"creation. For example, you could return a subclass, or just add some " -"additional attributes to the record once created, using a pattern similar to " -"this::" -msgstr "" -"Cette approche permet à une fabrique personnalisée de contrôler tous les " -"aspects de la création d’un *LogRecord*. Par exemple, vous pouvez renvoyer " -"une sous-classe ou simplement ajouter des attributs supplémentaires à " -"l’enregistrement une fois créé, en utilisant un modèle similaire à celui-" -"ci ::" - -#: howto/logging-cookbook.rst:1858 -msgid "" -"This pattern allows different libraries to chain factories together, and as " -"long as they don't overwrite each other's attributes or unintentionally " -"overwrite the attributes provided as standard, there should be no surprises. " -"However, it should be borne in mind that each link in the chain adds run-" -"time overhead to all logging operations, and the technique should only be " -"used when the use of a :class:`Filter` does not provide the desired result." -msgstr "" -"Ce modèle permet à différentes bibliothèques d’enchaîner des fabriques, et " -"tant qu’elles n’écrasent pas les attributs des autres ou n’écrasent pas " -"involontairement les attributs fournis en standard, il ne devrait pas y " -"avoir de surprise. Cependant, il faut garder à l’esprit que chaque maillon " -"de la chaîne ajoute une surcharge d’exécution à toutes les opérations de " -"journalisation, et la technique ne doit être utilisée que lorsque " -"l’utilisation d’un :class:`Filter` ne permet pas d’obtenir le résultat " -"souhaité." - -#: howto/logging-cookbook.rst:1870 -#, fuzzy -msgid "Subclassing QueueHandler and QueueListener- a ZeroMQ example" -msgstr "Dérivation de *QueueHandler* – un exemple de *ZeroMQ*" - -#: howto/logging-cookbook.rst:1873 howto/logging-cookbook.rst:2006 -#, fuzzy -msgid "Subclass ``QueueHandler``" -msgstr "Dérivation de *QueueHandler* – un exemple de *ZeroMQ*" - -#: howto/logging-cookbook.rst:1875 -msgid "" -"You can use a :class:`QueueHandler` subclass to send messages to other kinds " -"of queues, for example a ZeroMQ 'publish' socket. In the example below,the " -"socket is created separately and passed to the handler (as its 'queue')::" -msgstr "" -"Vous pouvez utiliser une sous-classe :class:`QueueHandler` pour envoyer des " -"messages à d’autres types de files d’attente, par exemple un connecteur " -"*ZeroMQ publish*. Dans l’exemple ci-dessous, le connecteur est créé " -"séparément et transmis au gestionnaire (en tant que file d’attente) ::" - -#: howto/logging-cookbook.rst:1894 -msgid "" -"Of course there are other ways of organizing this, for example passing in " -"the data needed by the handler to create the socket::" -msgstr "" -"Bien sûr, il existe d’autres manières de faire, par exemple en transmettant " -"les données nécessaires au gestionnaire pour créer le connecteur ::" - -#: howto/logging-cookbook.rst:1912 howto/logging-cookbook.rst:1942 -#, fuzzy -msgid "Subclass ``QueueListener``" -msgstr "Dérivation de *QueueListener* – un exemple de *ZeroMQ*" - -#: howto/logging-cookbook.rst:1914 -msgid "" -"You can also subclass :class:`QueueListener` to get messages from other " -"kinds of queues, for example a ZeroMQ 'subscribe' socket. Here's an example::" -msgstr "" -"Vous pouvez également dériver :class:`QueueListener` pour obtenir des " -"messages d’autres types de files d’attente, par exemple un connecteur " -"*ZeroMQ subscribe*. Voici un exemple ::" - -#: howto/logging-cookbook.rst:1932 -#, fuzzy -msgid "Subclassing QueueHandler and QueueListener- a ``pynng`` example" -msgstr "Dérivation de *QueueHandler* – un exemple de *ZeroMQ*" - -#: howto/logging-cookbook.rst:1934 -msgid "" -"In a similar way to the above section, we can implement a listener and " -"handler using :pypi:`pynng`, which is a Python binding to `NNG `_, billed as a spiritual successor to ZeroMQ. The " -"following snippets illustrate -- you can test them in an environment which " -"has ``pynng`` installed. Just for variety, we present the listener first." -msgstr "" - -#: howto/logging-cookbook.rst:2057 -msgid "" -"You can run the above two snippets in separate command shells. If we run the " -"listener in one shell and run the sender in two separate shells, we should " -"see something like the following. In the first sender shell:" -msgstr "" - -#: howto/logging-cookbook.rst:2074 -msgid "In the second sender shell:" -msgstr "" - -#: howto/logging-cookbook.rst:2089 -msgid "In the listener shell:" -msgstr "" - -#: howto/logging-cookbook.rst:2113 -msgid "" -"As you can see, the logging from the two sender processes is interleaved in " -"the listener's output." -msgstr "" - -#: howto/logging-cookbook.rst:2118 -msgid "An example dictionary-based configuration" -msgstr "Exemple de configuration basée sur un dictionnaire" - -#: howto/logging-cookbook.rst:2120 -msgid "" -"Below is an example of a logging configuration dictionary - it's taken from " -"the `documentation on the Django project `_. This dictionary is passed " -"to :func:`~config.dictConfig` to put the configuration into effect::" -msgstr "" -"Vous trouverez ci-dessous un exemple de dictionnaire de configuration de " -"journalisation ­– il est tiré de la `documentation du projet Django `_. Ce " -"dictionnaire est passé à :func:`~config.dictConfig` pour activer la " -"configuration ::" - -#: howto/logging-cookbook.rst:2173 -msgid "" -"For more information about this configuration, you can see the `relevant " -"section `_ of the Django documentation." -msgstr "" -"Pour plus d’informations sur cette configuration, vous pouvez consulter la " -"`section correspondante `_ de la documentation de *Django*." - -#: howto/logging-cookbook.rst:2180 -msgid "Using a rotator and namer to customize log rotation processing" -msgstr "" -"Utilisation d’un rotateur et d’un nom pour personnaliser la rotation des " -"journaux" - -#: howto/logging-cookbook.rst:2182 -msgid "" -"An example of how you can define a namer and rotator is given in the " -"following runnable script, which shows gzip compression of the log file::" -msgstr "" -"L’extrait de code suivant fournit un exemple de la façon dont vous pouvez " -"définir un nom et un rotateur, avec la compression par *zlib* du journal ::" - -#: howto/logging-cookbook.rst:2213 -msgid "" -"After running this, you will see six new files, five of which are compressed:" -msgstr "" -"Après l'avoir exécuté, vous verrez six nouveaux fichiers, dont cinq sont " -"compressés :" - -#: howto/logging-cookbook.rst:2226 -msgid "A more elaborate multiprocessing example" -msgstr "Exemple plus élaboré avec traitement en parallèle" - -#: howto/logging-cookbook.rst:2228 -msgid "" -"The following working example shows how logging can be used with " -"multiprocessing using configuration files. The configurations are fairly " -"simple, but serve to illustrate how more complex ones could be implemented " -"in a real multiprocessing scenario." -msgstr "" -"L’exemple suivant que nous allons étudier montre comment la journalisation " -"peut être utilisée, à l’aide de fichiers de configuration, pour un programme " -"effectuant des traitements parallèles. Les configurations sont assez " -"simples, mais servent à illustrer comment des configurations plus complexes " -"pourraient être implémentées dans un scénario multi-processus réel." - -#: howto/logging-cookbook.rst:2233 -msgid "" -"In the example, the main process spawns a listener process and some worker " -"processes. Each of the main process, the listener and the workers have three " -"separate configurations (the workers all share the same configuration). We " -"can see logging in the main process, how the workers log to a QueueHandler " -"and how the listener implements a QueueListener and a more complex logging " -"configuration, and arranges to dispatch events received via the queue to the " -"handlers specified in the configuration. Note that these configurations are " -"purely illustrative, but you should be able to adapt this example to your " -"own scenario." -msgstr "" -"Dans l’exemple, le processus principal génère un processus d’écoute et des " -"processus de travail. Chacun des processus, le principal, l’auditeur " -"(*listener_process* dans l’exemple) et les processus de travail " -"(*worker_process* dans l’exemple) ont trois configurations distinctes (les " -"processus de travail partagent tous la même configuration). Nous pouvons " -"voir la journalisation dans le processus principal, comment les processus de " -"travail se connectent à un *QueueHandler* et comment l’auditeur implémente " -"un *QueueListener* avec une configuration de journalisation plus complexe, " -"et s’arrange pour envoyer les événements reçus *via* la file d’attente aux " -"gestionnaires spécifiés dans la configuration. Notez que ces configurations " -"sont purement illustratives, mais vous devriez pouvoir adapter cet exemple à " -"votre propre scénario." - -#: howto/logging-cookbook.rst:2243 -msgid "" -"Here's the script - the docstrings and the comments hopefully explain how it " -"works::" -msgstr "" -"Voici le script – les chaines de documentation et les commentaires " -"expliquent (en anglais), le principe de fonctionnement ::" - -#: howto/logging-cookbook.rst:2455 -msgid "Inserting a BOM into messages sent to a SysLogHandler" -msgstr "Insertion d’une *BOM* dans les messages envoyés à un *SysLogHandler*" - -#: howto/logging-cookbook.rst:2457 -msgid "" -":rfc:`5424` requires that a Unicode message be sent to a syslog daemon as a " -"set of bytes which have the following structure: an optional pure-ASCII " -"component, followed by a UTF-8 Byte Order Mark (BOM), followed by Unicode " -"encoded using UTF-8. (See the :rfc:`relevant section of the specification " -"<5424#section-6>`.)" -msgstr "" -"La :rfc:`5424` requiert qu’un message Unicode soit envoyé à un démon " -"*syslog* sous la forme d’un ensemble d’octets ayant la structure suivante : " -"un composant ASCII pur facultatif, suivi d’une marque d’ordre d’octet (*BOM* " -"pour *Byte Order Mark* en anglais) UTF-8, suivie de contenu Unicode UTF-8 " -"(voir la :rfc:`la spécification correspondante <5424#section-6>`)." - -#: howto/logging-cookbook.rst:2463 -msgid "" -"In Python 3.1, code was added to :class:`~logging.handlers.SysLogHandler` to " -"insert a BOM into the message, but unfortunately, it was implemented " -"incorrectly, with the BOM appearing at the beginning of the message and " -"hence not allowing any pure-ASCII component to appear before it." -msgstr "" -"Dans Python 3.1, du code a été ajouté " -"à :class:`~logging.handlers.SysLogHandler` pour insérer une *BOM* dans le " -"message mais, malheureusement, il a été implémenté de manière incorrecte, la " -"*BOM* apparaissant au début du message et n’autorisant donc aucun composant " -"ASCII pur à être placé devant." - -#: howto/logging-cookbook.rst:2469 -msgid "" -"As this behaviour is broken, the incorrect BOM insertion code is being " -"removed from Python 3.2.4 and later. However, it is not being replaced, and " -"if you want to produce :rfc:`5424`-compliant messages which include a BOM, " -"an optional pure-ASCII sequence before it and arbitrary Unicode after it, " -"encoded using UTF-8, then you need to do the following:" -msgstr "" -"Comme ce comportement est inadéquat, le code incorrect d’insertion de la " -"*BOM* a été supprimé de Python 3.2.4 et ultérieurs. Cependant, il n’est pas " -"remplacé et, si vous voulez produire des messages conformes :rfc:`5424` qui " -"incluent une *BOM*, une séquence facultative en ASCII pur avant et un " -"Unicode arbitraire après, encodé en UTF-8, alors vous devez appliquer ce qui " -"suit :" - -#: howto/logging-cookbook.rst:2475 -msgid "" -"Attach a :class:`~logging.Formatter` instance to " -"your :class:`~logging.handlers.SysLogHandler` instance, with a format string " -"such as::" -msgstr "" -"Adjoignez une instance :class:`~logging.Formatter` à votre " -"instance :class:`~logging.handlers.SysLogHandler`, avec une chaîne de format " -"telle que ::" - -#: howto/logging-cookbook.rst:2481 -msgid "" -"The Unicode code point U+FEFF, when encoded using UTF-8, will be encoded as " -"a UTF-8 BOM -- the byte-string ``b'\\xef\\xbb\\xbf'``." -msgstr "" -"Le point de code Unicode U+FEFF, lorsqu’il est encodé en UTF-8, est encodé " -"comme une *BOM* UTF-8 – la chaîne d’octets ``b'\\xef\\xbb\\xbf'``." - -#: howto/logging-cookbook.rst:2484 -msgid "" -"Replace the ASCII section with whatever placeholders you like, but make sure " -"that the data that appears in there after substitution is always ASCII (that " -"way, it will remain unchanged after UTF-8 encoding)." -msgstr "" -"Remplacez la section ASCII par les caractères de votre choix, mais assurez-" -"vous que les données qui y apparaissent après la substitution sont toujours " -"ASCII (ainsi elles resteront inchangées après l’encodage UTF-8)." - -#: howto/logging-cookbook.rst:2488 -msgid "" -"Replace the Unicode section with whatever placeholders you like; if the data " -"which appears there after substitution contains characters outside the ASCII " -"range, that's fine -- it will be encoded using UTF-8." -msgstr "" -"Remplacez la section Unicode par le contenu de votre choix ; si les données " -"qui y apparaissent après la substitution contiennent des caractères en " -"dehors de la plage ASCII, c’est pris en charge – elles seront encodées en " -"UTF-8." - -#: howto/logging-cookbook.rst:2492 -msgid "" -"The formatted message *will* be encoded using UTF-8 encoding by " -"``SysLogHandler``. If you follow the above rules, you should be able to " -"produce :rfc:`5424`-compliant messages. If you don't, logging may not " -"complain, but your messages will not be RFC 5424-compliant, and your syslog " -"daemon may complain." -msgstr "" -"Le message formaté *sera* encodé en UTF-8 par ``SysLogHandler``. Si vous " -"suivez les règles ci-dessus, vous devriez pouvoir produire des messages " -"conformes à la :rfc:`5424`. Si vous ne le faites pas, la journalisation ne " -"se plaindra peut-être pas, mais vos messages ne seront pas conformes à la " -"RFC 5424 et votre démon *syslog* est susceptible de se plaindre." - -#: howto/logging-cookbook.rst:2499 -msgid "Implementing structured logging" -msgstr "Journalisation structurée" - -#: howto/logging-cookbook.rst:2501 -msgid "" -"Although most logging messages are intended for reading by humans, and thus " -"not readily machine-parseable, there might be circumstances where you want " -"to output messages in a structured format which *is* capable of being parsed " -"by a program (without needing complex regular expressions to parse the log " -"message). This is straightforward to achieve using the logging package. " -"There are a number of ways in which this could be achieved, but the " -"following is a simple approach which uses JSON to serialise the event in a " -"machine-parseable manner::" -msgstr "" -"Bien que la plupart des messages de journalisation soient destinés à être " -"lus par des humains, et donc difficilement analysables par la machine, il " -"peut arriver que vous souhaitiez produire des messages dans un format " -"structuré dans le but d’être analysé par un programme (sans avoir besoin " -"d’expressions régulières complexes pour analyser le message du journal). " -"C’est simple à réaliser en utilisant le paquet de journalisation. Il existe " -"plusieurs façons d’y parvenir et voici une approche simple qui utilise JSON " -"pour sérialiser l’événement de manière à être analysable par une machine ::" - -#: howto/logging-cookbook.rst:2525 -msgid "If the above script is run, it prints:" -msgstr "Si vous lancez le script ci-dessus, il imprime :" - -#: howto/logging-cookbook.rst:2531 howto/logging-cookbook.rst:2573 -msgid "" -"Note that the order of items might be different according to the version of " -"Python used." -msgstr "" -"Notez que l’ordre des éléments peut être différent en fonction de la version " -"de Python utilisée." - -#: howto/logging-cookbook.rst:2534 -msgid "" -"If you need more specialised processing, you can use a custom JSON encoder, " -"as in the following complete example::" -msgstr "" -"Si vous avez besoin d’un traitement plus spécifique, vous pouvez utiliser un " -"encodeur JSON personnalisé, comme dans l’exemple complet suivant ::" - -#: howto/logging-cookbook.rst:2567 -msgid "When the above script is run, it prints:" -msgstr "Quand vous exécutez le script ci-dessus, il imprime :" - -#: howto/logging-cookbook.rst:2582 -msgid "Customizing handlers with :func:`dictConfig`" -msgstr "Personnalisation des gestionnaires avec :func:`dictConfig`" - -#: howto/logging-cookbook.rst:2584 -msgid "" -"There are times when you want to customize logging handlers in particular " -"ways, and if you use :func:`dictConfig` you may be able to do this without " -"subclassing. As an example, consider that you may want to set the ownership " -"of a log file. On POSIX, this is easily done using :func:`shutil.chown`, but " -"the file handlers in the stdlib don't offer built-in support. You can " -"customize handler creation using a plain function such as::" -msgstr "" -"Il arrive de souhaiter personnaliser les gestionnaires de journalisation " -"d’une manière particulière et, en utilisant :func:`dictConfig`, vous pourrez " -"peut-être le faire sans avoir à dériver les classes mères. Par exemple, " -"supposons que vous souhaitiez définir le propriétaire d’un fichier journal. " -"Dans un environnement POSIX, cela se fait facilement en " -"utilisant :func:`shutil.chown`, mais les gestionnaires de fichiers de la " -"bibliothèque standard n’offrent pas cette gestion nativement. Vous pouvez " -"personnaliser la création du gestionnaire à l’aide d’une fonction simple " -"telle que ::" - -#: howto/logging-cookbook.rst:2598 -msgid "" -"You can then specify, in a logging configuration passed " -"to :func:`dictConfig`, that a logging handler be created by calling this " -"function::" -msgstr "" -"Vous pouvez ensuite spécifier, dans une configuration de journalisation " -"transmise à :func:`dictConfig`, qu’un gestionnaire de journalisation soit " -"créé en appelant cette fonction ::" - -#: howto/logging-cookbook.rst:2631 -msgid "" -"In this example I am setting the ownership using the ``pulse`` user and " -"group, just for the purposes of illustration. Putting it together into a " -"working script, ``chowntest.py``::" -msgstr "" -"Dans cet exemple, nous définissons le propriétaire à l’utilisateur et au " -"groupe ``pulse``, uniquement à des fins d’illustration. Rassemblons le tout " -"dans un script ``chowntest.py`` ::" - -#: howto/logging-cookbook.rst:2678 -msgid "To run this, you will probably need to run as ``root``:" -msgstr "" -"Pour l’exécuter, vous devrez probablement le faire en tant que ``root`` :" - -#: howto/logging-cookbook.rst:2688 -msgid "" -"Note that this example uses Python 3.3 because that's " -"where :func:`shutil.chown` makes an appearance. This approach should work " -"with any Python version that supports :func:`dictConfig` - namely, Python " -"2.7, 3.2 or later. With pre-3.3 versions, you would need to implement the " -"actual ownership change using e.g. :func:`os.chown`." -msgstr "" -"Notez que cet exemple utilise Python 3.3 car c’est là " -"que :func:`shutil.chown` fait son apparition. Cette approche devrait " -"fonctionner avec n’importe quelle version de Python prenant en " -"charge :func:`dictConfig` – à savoir, Python 2.7, 3.2 ou version ultérieure. " -"Avec les versions antérieures à la 3.3, vous devrez implémenter le " -"changement de propriétaire réel en utilisant par exemple :func:`os.chown`." - -#: howto/logging-cookbook.rst:2694 -msgid "" -"In practice, the handler-creating function may be in a utility module " -"somewhere in your project. Instead of the line in the configuration::" -msgstr "" -"En pratique, la fonction de création de gestionnaire peut être située dans " -"un module utilitaire ailleurs dans votre projet. Au lieu de cette ligne dans " -"la configuration ::" - -#: howto/logging-cookbook.rst:2699 -msgid "you could use e.g.::" -msgstr "vous pouvez écrire par exemple ::" - -#: howto/logging-cookbook.rst:2703 -msgid "" -"where ``project.util`` can be replaced with the actual name of the package " -"where the function resides. In the above working script, using ``'ext://" -"__main__.owned_file_handler'`` should work. Here, the actual callable is " -"resolved by :func:`dictConfig` from the ``ext://`` specification." -msgstr "" -"où ``project.util`` peut être remplacé par le nom réel du paquet où réside " -"la fonction. Dans le script étudié ci-dessus, l’utilisation de ``'ext://" -"__main__.owned_file_handler'`` devrait fonctionner. Dans le cas présent, " -"l’appelable réel est résolu par :func:`dictConfig` à partir de la " -"spécification ``ext://``." - -#: howto/logging-cookbook.rst:2708 -msgid "" -"This example hopefully also points the way to how you could implement other " -"types of file change - e.g. setting specific POSIX permission bits - in the " -"same way, using :func:`os.chmod`." -msgstr "" -"Nous espérons qu'à partir de cet exemple vous saurez implémenter d’autres " -"types de modification de fichier – par ex. définir des bits d’autorisation " -"POSIX spécifiques – de la même manière, en utilisant :func:`os.chmod`." - -#: howto/logging-cookbook.rst:2712 -msgid "" -"Of course, the approach could also be extended to types of handler other " -"than a :class:`~logging.FileHandler` - for example, one of the rotating file " -"handlers, or a different type of handler altogether." -msgstr "" -"Bien sûr, l’approche pourrait également être étendue à des types de " -"gestionnaires autres qu’un :class:`~logging.FileHandler` – par exemple, l’un " -"des gestionnaires à roulement de fichiers ou un autre type de gestionnaire " -"complètement différent." - -#: howto/logging-cookbook.rst:2722 -msgid "Using particular formatting styles throughout your application" -msgstr "" - -#: howto/logging-cookbook.rst:2724 -msgid "" -"In Python 3.2, the :class:`~logging.Formatter` gained a ``style`` keyword " -"parameter which, while defaulting to ``%`` for backward compatibility, " -"allowed the specification of ``{`` or ``$`` to support the formatting " -"approaches supported by :meth:`str.format` and :class:`string.Template`. " -"Note that this governs the formatting of logging messages for final output " -"to logs, and is completely orthogonal to how an individual logging message " -"is constructed." -msgstr "" - -#: howto/logging-cookbook.rst:2731 -#, fuzzy -msgid "" -"Logging calls (:meth:`~Logger.debug`, :meth:`~Logger.info` etc.) only take " -"positional parameters for the actual logging message itself, with keyword " -"parameters used only for determining options for how to handle the logging " -"call (e.g. the ``exc_info`` keyword parameter to indicate that traceback " -"information should be logged, or the ``extra`` keyword parameter to indicate " -"additional contextual information to be added to the log). So you cannot " -"directly make logging calls using :meth:`str.format` " -"or :class:`string.Template` syntax, because internally the logging package " -"uses %-formatting to merge the format string and the variable arguments. " -"There would be no changing this while preserving backward compatibility, " -"since all logging calls which are out there in existing code will be using %-" -"format strings." -msgstr "" -"Les appels de journalisation (``logger.debug()``, ``logger.info()`` etc.) ne " -"prennent que des paramètres positionnels pour le message de journalisation " -"lui-même, les paramètres par mots-clés étant utilisés uniquement pour " -"déterminer comment gérer le message réel (par exemple, le paramètre par mot-" -"clé ``exc_info`` indique que les informations de trace doivent être " -"enregistrées, ou le paramètre par mot-clé ``extra`` indique des informations " -"contextuelles supplémentaires à ajouter au journal). Vous ne pouvez donc pas " -"inclure dans les appels de journalisation à l’aide de la " -"syntaxe :meth:`str.format` ou :class:`string.Template`, car le paquet de " -"journalisation utilise le formatage via « % » en interne pour fusionner la " -"chaîne de format et les arguments de variables. Il n’est pas possible de " -"changer ça tout en préservant la rétrocompatibilité puisque tous les appels " -"de journalisation dans le code pré-existant utilisent des chaînes au format " -"« % »." - -#: howto/logging-cookbook.rst:2743 -msgid "" -"There have been suggestions to associate format styles with specific " -"loggers, but that approach also runs into backward compatibility problems " -"because any existing code could be using a given logger name and using %-" -"formatting." -msgstr "" - -#: howto/logging-cookbook.rst:2747 -msgid "" -"For logging to work interoperably between any third-party libraries and your " -"code, decisions about formatting need to be made at the level of the " -"individual logging call. This opens up a couple of ways in which alternative " -"formatting styles can be accommodated." -msgstr "" - -#: howto/logging-cookbook.rst:2754 -msgid "Using LogRecord factories" -msgstr "" - -#: howto/logging-cookbook.rst:2756 -msgid "" -"In Python 3.2, along with the :class:`~logging.Formatter` changes mentioned " -"above, the logging package gained the ability to allow users to set their " -"own :class:`LogRecord` subclasses, using the :func:`setLogRecordFactory` " -"function. You can use this to set your own subclass of :class:`LogRecord`, " -"which does the Right Thing by overriding the :meth:`~LogRecord.getMessage` " -"method. The base class implementation of this method is where the ``msg % " -"args`` formatting happens, and where you can substitute your alternate " -"formatting; however, you should be careful to support all formatting styles " -"and allow %-formatting as the default, to ensure interoperability with other " -"code. Care should also be taken to call ``str(self.msg)``, just as the base " -"implementation does." -msgstr "" - -#: howto/logging-cookbook.rst:2767 -msgid "" -"Refer to the reference documentation on :func:`setLogRecordFactory` " -"and :class:`LogRecord` for more information." -msgstr "" - -#: howto/logging-cookbook.rst:2772 -msgid "Using custom message objects" -msgstr "" - -#: howto/logging-cookbook.rst:2774 -msgid "" -"There is another, perhaps simpler way that you can use {}- and $- formatting " -"to construct your individual log messages. You may recall " -"(from :ref:`arbitrary-object-messages`) that when logging you can use an " -"arbitrary object as a message format string, and that the logging package " -"will call :func:`str` on that object to get the actual format string. " -"Consider the following two classes::" -msgstr "" - -#: howto/logging-cookbook.rst:2799 -msgid "" -"Either of these can be used in place of a format string, to allow {}- or $-" -"formatting to be used to build the actual \"message\" part which appears in " -"the formatted log output in place of “%(message)s” or “{message}” or " -"“$message”. If you find it a little unwieldy to use the class names whenever " -"you want to log something, you can make it more palatable if you use an " -"alias such as ``M`` or ``_`` for the message (or perhaps ``__``, if you are " -"using ``_`` for localization)." -msgstr "" - -#: howto/logging-cookbook.rst:2807 -msgid "" -"Examples of this approach are given below. Firstly, formatting " -"with :meth:`str.format`::" -msgstr "" - -#: howto/logging-cookbook.rst:2821 -msgid "Secondly, formatting with :class:`string.Template`::" -msgstr "" - -#: howto/logging-cookbook.rst:2828 -#, fuzzy -msgid "" -"One thing to note is that you pay no significant performance penalty with " -"this approach: the actual formatting happens not when you make the logging " -"call, but when (and if) the logged message is actually about to be output to " -"a log by a handler. So the only slightly unusual thing which might trip you " -"up is that the parentheses go around the format string and the arguments, " -"not just the format string. That’s because the __ notation is just syntax " -"sugar for a constructor call to one of the :samp:`{XXX}Message` classes " -"shown above." -msgstr "" -"Une chose à noter est qu’il n’y a pas de perte de performance significative " -"avec cette approche : le formatage réel ne se produit pas lorsque vous " -"effectuez l’appel de journalisation, mais lorsque (et si) le message " -"journalisé est réellement sur le point d’être écrit dans un journal par un " -"gestionnaire. Ainsi, la seule chose légèrement inhabituelle qui pourrait " -"vous perturber est que les parenthèses entourent la chaîne de format et les " -"arguments, pas seulement la chaîne de format. C’est parce que la notation __ " -"n’est que du sucre syntaxique pour un appel de constructeur à l’une des " -"classes ``XXXMessage``." - -#: howto/logging-cookbook.rst:2842 -msgid "Configuring filters with :func:`dictConfig`" -msgstr "" - -#: howto/logging-cookbook.rst:2844 -msgid "" -"You *can* configure filters using :func:`~logging.config.dictConfig`, though " -"it might not be obvious at first glance how to do it (hence this recipe). " -"Since :class:`~logging.Filter` is the only filter class included in the " -"standard library, and it is unlikely to cater to many requirements (it's " -"only there as a base class), you will typically need to define your " -"own :class:`~logging.Filter` subclass with an " -"overridden :meth:`~logging.Filter.filter` method. To do this, specify the " -"``()`` key in the configuration dictionary for the filter, specifying a " -"callable which will be used to create the filter (a class is the most " -"obvious, but you can provide any callable which returns " -"a :class:`~logging.Filter` instance). Here is a complete example::" -msgstr "" - -#: howto/logging-cookbook.rst:2897 -msgid "" -"This example shows how you can pass configuration data to the callable which " -"constructs the instance, in the form of keyword parameters. When run, the " -"above script will print:" -msgstr "" - -#: howto/logging-cookbook.rst:2905 -msgid "which shows that the filter is working as configured." -msgstr "" - -#: howto/logging-cookbook.rst:2907 -msgid "A couple of extra points to note:" -msgstr "" - -#: howto/logging-cookbook.rst:2909 -msgid "" -"If you can't refer to the callable directly in the configuration (e.g. if it " -"lives in a different module, and you can't import it directly where the " -"configuration dictionary is), you can use the form ``ext://...`` as " -"described in :ref:`logging-config-dict-externalobj`. For example, you could " -"have used the text ``'ext://__main__.MyFilter'`` instead of ``MyFilter`` in " -"the above example." -msgstr "" - -#: howto/logging-cookbook.rst:2916 -msgid "" -"As well as for filters, this technique can also be used to configure custom " -"handlers and formatters. See :ref:`logging-config-dict-userdef` for more " -"information on how logging supports using user-defined objects in its " -"configuration, and see the other cookbook recipe :ref:`custom-handlers` " -"above." -msgstr "" - -#: howto/logging-cookbook.rst:2925 -msgid "Customized exception formatting" -msgstr "" - -#: howto/logging-cookbook.rst:2927 -msgid "" -"There might be times when you want to do customized exception formatting - " -"for argument's sake, let's say you want exactly one line per logged event, " -"even when exception information is present. You can do this with a custom " -"formatter class, as shown in the following example::" -msgstr "" - -#: howto/logging-cookbook.rst:2968 -msgid "When run, this produces a file with exactly two lines:" -msgstr "" - -#: howto/logging-cookbook.rst:2975 -msgid "" -"While the above treatment is simplistic, it points the way to how exception " -"information can be formatted to your liking. The :mod:`traceback` module may " -"be helpful for more specialized needs." -msgstr "" - -#: howto/logging-cookbook.rst:2982 -msgid "Speaking logging messages" -msgstr "" - -#: howto/logging-cookbook.rst:2984 -msgid "" -"There might be situations when it is desirable to have logging messages " -"rendered in an audible rather than a visible format. This is easy to do if " -"you have text-to-speech (TTS) functionality available in your system, even " -"if it doesn't have a Python binding. Most TTS systems have a command line " -"program you can run, and this can be invoked from a handler " -"using :mod:`subprocess`. It's assumed here that TTS command line programs " -"won't expect to interact with users or take a long time to complete, and " -"that the frequency of logged messages will be not so high as to swamp the " -"user with messages, and that it's acceptable to have the messages spoken one " -"at a time rather than concurrently, The example implementation below waits " -"for one message to be spoken before the next is processed, and this might " -"cause other handlers to be kept waiting. Here is a short example showing the " -"approach, which assumes that the ``espeak`` TTS package is available::" -msgstr "" - -#: howto/logging-cookbook.rst:3026 -msgid "" -"When run, this script should say \"Hello\" and then \"Goodbye\" in a female " -"voice." -msgstr "" - -#: howto/logging-cookbook.rst:3028 -msgid "" -"The above approach can, of course, be adapted to other TTS systems and even " -"other systems altogether which can process messages via external programs " -"run from a command line." -msgstr "" - -#: howto/logging-cookbook.rst:3036 -msgid "Buffering logging messages and outputting them conditionally" -msgstr "" - -#: howto/logging-cookbook.rst:3038 -msgid "" -"There might be situations where you want to log messages in a temporary area " -"and only output them if a certain condition occurs. For example, you may " -"want to start logging debug events in a function, and if the function " -"completes without errors, you don't want to clutter the log with the " -"collected debug information, but if there is an error, you want all the " -"debug information to be output as well as the error." -msgstr "" - -#: howto/logging-cookbook.rst:3045 -msgid "" -"Here is an example which shows how you could do this using a decorator for " -"your functions where you want logging to behave this way. It makes use of " -"the :class:`logging.handlers.MemoryHandler`, which allows buffering of " -"logged events until some condition occurs, at which point the buffered " -"events are ``flushed`` - passed to another handler (the ``target`` handler) " -"for processing. By default, the ``MemoryHandler`` flushed when its buffer " -"gets filled up or an event whose level is greater than or equal to a " -"specified threshold is seen. You can use this recipe with a more specialised " -"subclass of ``MemoryHandler`` if you want custom flushing behavior." -msgstr "" - -#: howto/logging-cookbook.rst:3055 -msgid "" -"The example script has a simple function, ``foo``, which just cycles through " -"all the logging levels, writing to ``sys.stderr`` to say what level it's " -"about to log at, and then actually logging a message at that level. You can " -"pass a parameter to ``foo`` which, if true, will log at ERROR and CRITICAL " -"levels - otherwise, it only logs at DEBUG, INFO and WARNING levels." -msgstr "" - -#: howto/logging-cookbook.rst:3061 -msgid "" -"The script just arranges to decorate ``foo`` with a decorator which will do " -"the conditional logging that's required. The decorator takes a logger as a " -"parameter and attaches a memory handler for the duration of the call to the " -"decorated function. The decorator can be additionally parameterised using a " -"target handler, a level at which flushing should occur, and a capacity for " -"the buffer (number of records buffered). These default to " -"a :class:`~logging.StreamHandler` which writes to ``sys.stderr``, " -"``logging.ERROR`` and ``100`` respectively." -msgstr "" - -#: howto/logging-cookbook.rst:3069 -msgid "Here's the script::" -msgstr "" - -#: howto/logging-cookbook.rst:3132 -msgid "When this script is run, the following output should be observed:" -msgstr "" - -#: howto/logging-cookbook.rst:3162 -msgid "" -"As you can see, actual logging output only occurs when an event is logged " -"whose severity is ERROR or greater, but in that case, any previous events at " -"lower severities are also logged." -msgstr "" - -#: howto/logging-cookbook.rst:3166 -msgid "You can of course use the conventional means of decoration::" -msgstr "" - -#: howto/logging-cookbook.rst:3176 -msgid "Sending logging messages to email, with buffering" -msgstr "" - -#: howto/logging-cookbook.rst:3178 -msgid "" -"To illustrate how you can send log messages via email, so that a set number " -"of messages are sent per email, you can " -"subclass :class:`~logging.handlers.BufferingHandler`. In the following " -"example, which you can adapt to suit your specific needs, a simple test " -"harness is provided which allows you to run the script with command line " -"arguments specifying what you typically need to send things via SMTP. (Run " -"the downloaded script with the ``-h`` argument to see the required and " -"optional arguments.)" -msgstr "" - -#: howto/logging-cookbook.rst:3250 -msgid "" -"If you run this script and your SMTP server is correctly set up, you should " -"find that it sends eleven emails to the addressee you specify. The first ten " -"emails will each have ten log messages, and the eleventh will have two " -"messages. That makes up 102 messages as specified in the script." -msgstr "" - -#: howto/logging-cookbook.rst:3258 -msgid "Formatting times using UTC (GMT) via configuration" -msgstr "" - -#: howto/logging-cookbook.rst:3260 -msgid "" -"Sometimes you want to format times using UTC, which can be done using a " -"class such as ``UTCFormatter``, shown below::" -msgstr "" - -#: howto/logging-cookbook.rst:3269 -msgid "" -"and you can then use the ``UTCFormatter`` in your code instead " -"of :class:`~logging.Formatter`. If you want to do that via configuration, " -"you can use the :func:`~logging.config.dictConfig` API with an approach " -"illustrated by the following complete example::" -msgstr "" - -#: howto/logging-cookbook.rst:3312 -msgid "When this script is run, it should print something like:" -msgstr "" - -#: howto/logging-cookbook.rst:3319 -msgid "" -"showing how the time is formatted both as local time and UTC, one for each " -"handler." -msgstr "" - -#: howto/logging-cookbook.rst:3326 -msgid "Using a context manager for selective logging" -msgstr "" - -#: howto/logging-cookbook.rst:3328 -msgid "" -"There are times when it would be useful to temporarily change the logging " -"configuration and revert it back after doing something. For this, a context " -"manager is the most obvious way of saving and restoring the logging context. " -"Here is a simple example of such a context manager, which allows you to " -"optionally change the logging level and add a logging handler purely in the " -"scope of the context manager::" -msgstr "" - -#: howto/logging-cookbook.rst:3361 -msgid "" -"If you specify a level value, the logger's level is set to that value in the " -"scope of the with block covered by the context manager. If you specify a " -"handler, it is added to the logger on entry to the block and removed on exit " -"from the block. You can also ask the manager to close the handler for you on " -"block exit - you could do this if you don't need the handler any more." -msgstr "" - -#: howto/logging-cookbook.rst:3367 -msgid "" -"To illustrate how it works, we can add the following block of code to the " -"above::" -msgstr "" - -#: howto/logging-cookbook.rst:3385 -msgid "" -"We initially set the logger's level to ``INFO``, so message #1 appears and " -"message #2 doesn't. We then change the level to ``DEBUG`` temporarily in the " -"following ``with`` block, and so message #3 appears. After the block exits, " -"the logger's level is restored to ``INFO`` and so message #4 doesn't appear. " -"In the next ``with`` block, we set the level to ``DEBUG`` again but also add " -"a handler writing to ``sys.stdout``. Thus, message #5 appears twice on the " -"console (once via ``stderr`` and once via ``stdout``). After the ``with`` " -"statement's completion, the status is as it was before so message #6 appears " -"(like message #1) whereas message #7 doesn't (just like message #2)." -msgstr "" - -#: howto/logging-cookbook.rst:3395 -msgid "If we run the resulting script, the result is as follows:" -msgstr "" - -#: howto/logging-cookbook.rst:3406 -msgid "" -"If we run it again, but pipe ``stderr`` to ``/dev/null``, we see the " -"following, which is the only message written to ``stdout``:" -msgstr "" - -#: howto/logging-cookbook.rst:3414 -msgid "Once again, but piping ``stdout`` to ``/dev/null``, we get:" -msgstr "" - -#: howto/logging-cookbook.rst:3424 -msgid "" -"In this case, the message #5 printed to ``stdout`` doesn't appear, as " -"expected." -msgstr "" - -#: howto/logging-cookbook.rst:3426 -msgid "" -"Of course, the approach described here can be generalised, for example to " -"attach logging filters temporarily. Note that the above code works in Python " -"2 as well as Python 3." -msgstr "" - -#: howto/logging-cookbook.rst:3434 -msgid "A CLI application starter template" -msgstr "" - -#: howto/logging-cookbook.rst:3436 -msgid "Here's an example which shows how you can:" -msgstr "" - -#: howto/logging-cookbook.rst:3438 -msgid "Use a logging level based on command-line arguments" -msgstr "" - -#: howto/logging-cookbook.rst:3439 -msgid "" -"Dispatch to multiple subcommands in separate files, all logging at the same " -"level in a consistent way" -msgstr "" - -#: howto/logging-cookbook.rst:3441 -msgid "Make use of simple, minimal configuration" -msgstr "" - -#: howto/logging-cookbook.rst:3443 -msgid "" -"Suppose we have a command-line application whose job is to stop, start or " -"restart some services. This could be organised for the purposes of " -"illustration as a file ``app.py`` that is the main script for the " -"application, with individual commands implemented in ``start.py``, " -"``stop.py`` and ``restart.py``. Suppose further that we want to control the " -"verbosity of the application via a command-line argument, defaulting to " -"``logging.INFO``. Here's one way that ``app.py`` could be written::" -msgstr "" - -#: howto/logging-cookbook.rst:3492 -msgid "" -"And the ``start``, ``stop`` and ``restart`` commands can be implemented in " -"separate modules, like so for starting::" -msgstr "" - -#: howto/logging-cookbook.rst:3505 -msgid "and thus for stopping::" -msgstr "" - -#: howto/logging-cookbook.rst:3526 -msgid "and similarly for restarting::" -msgstr "" - -#: howto/logging-cookbook.rst:3547 -msgid "" -"If we run this application with the default log level, we get output like " -"this:" -msgstr "" - -#: howto/logging-cookbook.rst:3560 -msgid "" -"The first word is the logging level, and the second word is the module or " -"package name of the place where the event was logged." -msgstr "" - -#: howto/logging-cookbook.rst:3563 -msgid "" -"If we change the logging level, then we can change the information sent to " -"the log. For example, if we want more information:" -msgstr "" - -#: howto/logging-cookbook.rst:3580 -msgid "And if we want less:" -msgstr "" - -#: howto/logging-cookbook.rst:3588 -msgid "" -"In this case, the commands don't print anything to the console, since " -"nothing at ``WARNING`` level or above is logged by them." -msgstr "" - -#: howto/logging-cookbook.rst:3594 -msgid "A Qt GUI for logging" -msgstr "" - -#: howto/logging-cookbook.rst:3596 -msgid "" -"A question that comes up from time to time is about how to log to a GUI " -"application. The `Qt `_ framework is a popular cross-" -"platform UI framework with Python bindings using :pypi:`PySide2` " -"or :pypi:`PyQt5` libraries." -msgstr "" - -#: howto/logging-cookbook.rst:3601 -msgid "" -"The following example shows how to log to a Qt GUI. This introduces a simple " -"``QtHandler`` class which takes a callable, which should be a slot in the " -"main thread that does GUI updates. A worker thread is also created to show " -"how you can log to the GUI from both the UI itself (via a button for manual " -"logging) as well as a worker thread doing work in the background (here, just " -"logging messages at random levels with random short delays in between)." -msgstr "" - -#: howto/logging-cookbook.rst:3608 -msgid "" -"The worker thread is implemented using Qt's ``QThread`` class rather than " -"the :mod:`threading` module, as there are circumstances where one has to use " -"``QThread``, which offers better integration with other ``Qt`` components." -msgstr "" - -#: howto/logging-cookbook.rst:3612 -msgid "" -"The code should work with recent releases of any of ``PySide6``, ``PyQt6``, " -"``PySide2`` or ``PyQt5``. You should be able to adapt the approach to " -"earlier versions of Qt. Please refer to the comments in the code snippet for " -"more detailed information." -msgstr "" - -#: howto/logging-cookbook.rst:3848 -msgid "Logging to syslog with RFC5424 support" -msgstr "" - -#: howto/logging-cookbook.rst:3850 -msgid "" -"Although :rfc:`5424` dates from 2009, most syslog servers are configured by " -"default to use the older :rfc:`3164`, which hails from 2001. When " -"``logging`` was added to Python in 2003, it supported the earlier (and only " -"existing) protocol at the time. Since RFC 5424 came out, as there has not " -"been widespread deployment of it in syslog servers, " -"the :class:`~logging.handlers.SysLogHandler` functionality has not been " -"updated." -msgstr "" - -#: howto/logging-cookbook.rst:3857 -msgid "" -"RFC 5424 contains some useful features such as support for structured data, " -"and if you need to be able to log to a syslog server with support for it, " -"you can do so with a subclassed handler which looks something like this::" -msgstr "" - -#: howto/logging-cookbook.rst:3923 -msgid "" -"You'll need to be familiar with RFC 5424 to fully understand the above code, " -"and it may be that you have slightly different needs (e.g. for how you pass " -"structural data to the log). Nevertheless, the above should be adaptable to " -"your speciric needs. With the above handler, you'd pass structured data " -"using something like this::" -msgstr "" - -#: howto/logging-cookbook.rst:3937 -msgid "How to treat a logger like an output stream" -msgstr "" - -#: howto/logging-cookbook.rst:3939 -msgid "" -"Sometimes, you need to interface to a third-party API which expects a file-" -"like object to write to, but you want to direct the API's output to a " -"logger. You can do this using a class which wraps a logger with a file-like " -"API. Here's a short script illustrating such a class:" -msgstr "" - -#: howto/logging-cookbook.rst:3979 -msgid "When this script is run, it prints" -msgstr "" - -#: howto/logging-cookbook.rst:3986 -msgid "" -"You could also use ``LoggerWriter`` to redirect ``sys.stdout`` and " -"``sys.stderr`` by doing something like this:" -msgstr "" - -#: howto/logging-cookbook.rst:3996 -msgid "" -"You should do this *after* configuring logging for your needs. In the above " -"example, the :func:`~logging.basicConfig` call does this (using the " -"``sys.stderr`` value *before* it is overwritten by a ``LoggerWriter`` " -"instance). Then, you'd get this kind of result:" -msgstr "" - -#: howto/logging-cookbook.rst:4009 -msgid "" -"Of course, the examples above show output according to the format used " -"by :func:`~logging.basicConfig`, but you can use a different formatter when " -"you configure logging." -msgstr "" - -#: howto/logging-cookbook.rst:4013 -msgid "" -"Note that with the above scheme, you are somewhat at the mercy of buffering " -"and the sequence of write calls which you are intercepting. For example, " -"with the definition of ``LoggerWriter`` above, if you have the snippet" -msgstr "" - -#: howto/logging-cookbook.rst:4022 -msgid "then running the script results in" -msgstr "" - -#: howto/logging-cookbook.rst:4040 -msgid "" -"As you can see, this output isn't ideal. That's because the underlying code " -"which writes to ``sys.stderr`` makes multiple writes, each of which results " -"in a separate logged line (for example, the last three lines above). To get " -"around this problem, you need to buffer things and only output log lines " -"when newlines are seen. Let's use a slightly better implementation of " -"``LoggerWriter``:" -msgstr "" - -#: howto/logging-cookbook.rst:4065 -msgid "" -"This just buffers up stuff until a newline is seen, and then logs complete " -"lines. With this approach, you get better output:" -msgstr "" - -#: howto/logging-cookbook.rst:4078 -msgid "How to uniformly handle newlines in logging output" -msgstr "" - -#: howto/logging-cookbook.rst:4080 -msgid "" -"Usually, messages that are logged (say to console or file) consist of a " -"single line of text. However, sometimes there is a need to handle messages " -"with multiple lines - whether because a logging format string contains " -"newlines, or logged data contains newlines. If you want to handle such " -"messages uniformly, so that each line in the logged message appears " -"uniformly formatted as if it was logged separately, you can do this using a " -"handler mixin, as in the following snippet:" -msgstr "" - -#: howto/logging-cookbook.rst:4106 -msgid "You can use the mixin as in the following script:" -msgstr "" - -#: howto/logging-cookbook.rst:4127 -#, fuzzy -msgid "The script, when run, prints something like:" -msgstr "qui, à l’exécution, produit quelque chose comme ça :" - -#: howto/logging-cookbook.rst:4139 -msgid "" -"If, on the other hand, you are concerned about `log injection `_, you can use a formatter " -"which escapes newlines, as per the following example:" -msgstr "" - -#: howto/logging-cookbook.rst:4163 -msgid "" -"You can, of course, use whatever escaping scheme makes the most sense for " -"you. The script, when run, should produce output like this:" -msgstr "" - -#: howto/logging-cookbook.rst:4173 -msgid "" -"Escaping behaviour can't be the stdlib default , as it would break backwards " -"compatibility." -msgstr "" - -#: howto/logging-cookbook.rst:4179 -msgid "Patterns to avoid" -msgstr "" - -#: howto/logging-cookbook.rst:4181 -msgid "" -"Although the preceding sections have described ways of doing things you " -"might need to do or deal with, it is worth mentioning some usage patterns " -"which are *unhelpful*, and which should therefore be avoided in most cases. " -"The following sections are in no particular order." -msgstr "" - -#: howto/logging-cookbook.rst:4187 -msgid "Opening the same log file multiple times" -msgstr "" - -#: howto/logging-cookbook.rst:4189 -msgid "" -"On Windows, you will generally not be able to open the same file multiple " -"times as this will lead to a \"file is in use by another process\" error. " -"However, on POSIX platforms you'll not get any errors if you open the same " -"file multiple times. This could be done accidentally, for example by:" -msgstr "" - -#: howto/logging-cookbook.rst:4194 -msgid "" -"Adding a file handler more than once which references the same file (e.g. by " -"a copy/paste/forget-to-change error)." -msgstr "" - -#: howto/logging-cookbook.rst:4197 -msgid "" -"Opening two files that look different, as they have different names, but are " -"the same because one is a symbolic link to the other." -msgstr "" - -#: howto/logging-cookbook.rst:4200 -msgid "" -"Forking a process, following which both parent and child have a reference to " -"the same file. This might be through use of the :mod:`multiprocessing` " -"module, for example." -msgstr "" - -#: howto/logging-cookbook.rst:4204 -msgid "" -"Opening a file multiple times might *appear* to work most of the time, but " -"can lead to a number of problems in practice:" -msgstr "" - -#: howto/logging-cookbook.rst:4207 -msgid "" -"Logging output can be garbled because multiple threads or processes try to " -"write to the same file. Although logging guards against concurrent use of " -"the same handler instance by multiple threads, there is no such protection " -"if concurrent writes are attempted by two different threads using two " -"different handler instances which happen to point to the same file." -msgstr "" - -#: howto/logging-cookbook.rst:4213 -msgid "" -"An attempt to delete a file (e.g. during file rotation) silently fails, " -"because there is another reference pointing to it. This can lead to " -"confusion and wasted debugging time - log entries end up in unexpected " -"places, or are lost altogether. Or a file that was supposed to be moved " -"remains in place, and grows in size unexpectedly despite size-based rotation " -"being supposedly in place." -msgstr "" - -#: howto/logging-cookbook.rst:4220 -msgid "" -"Use the techniques outlined in :ref:`multiple-processes` to circumvent such " -"issues." -msgstr "" - -#: howto/logging-cookbook.rst:4224 -msgid "Using loggers as attributes in a class or passing them as parameters" -msgstr "" - -#: howto/logging-cookbook.rst:4226 -msgid "" -"While there might be unusual cases where you'll need to do this, in general " -"there is no point because loggers are singletons. Code can always access a " -"given logger instance by name using ``logging.getLogger(name)``, so passing " -"instances around and holding them as instance attributes is pointless. Note " -"that in other languages such as Java and C#, loggers are often static class " -"attributes. However, this pattern doesn't make sense in Python, where the " -"module (and not the class) is the unit of software decomposition." -msgstr "" - -#: howto/logging-cookbook.rst:4235 -msgid "" -"Adding handlers other than :class:`~logging.NullHandler` to a logger in a " -"library" -msgstr "" - -#: howto/logging-cookbook.rst:4237 -msgid "" -"Configuring logging by adding handlers, formatters and filters is the " -"responsibility of the application developer, not the library developer. If " -"you are maintaining a library, ensure that you don't add handlers to any of " -"your loggers other than a :class:`~logging.NullHandler` instance." -msgstr "" - -#: howto/logging-cookbook.rst:4243 -msgid "Creating a lot of loggers" -msgstr "" - -#: howto/logging-cookbook.rst:4245 -msgid "" -"Loggers are singletons that are never freed during a script execution, and " -"so creating lots of loggers will use up memory which can't then be freed. " -"Rather than create a logger per e.g. file processed or network connection " -"made, use the :ref:`existing mechanisms ` for passing " -"contextual information into your logs and restrict the loggers created to " -"those describing areas within your application (generally modules, but " -"occasionally slightly more fine-grained than that)." -msgstr "" - -#: howto/logging-cookbook.rst:4256 -msgid "Other resources" -msgstr "Autres ressources" - -#: howto/logging-cookbook.rst:4260 -msgid "Module :mod:`logging`" -msgstr "Module :mod:`logging`" - -#: howto/logging-cookbook.rst:4261 -msgid "API reference for the logging module." -msgstr "Référence de l’API du module de journalisation." - -#: howto/logging-cookbook.rst:4263 -msgid "Module :mod:`logging.config`" -msgstr "Module :mod:`logging.config`" - -#: howto/logging-cookbook.rst:4264 -msgid "Configuration API for the logging module." -msgstr "API pour la configuration du module de journalisation." - -#: howto/logging-cookbook.rst:4266 -msgid "Module :mod:`logging.handlers`" -msgstr "Module :mod:`logging.handlers`" - -#: howto/logging-cookbook.rst:4267 -msgid "Useful handlers included with the logging module." -msgstr "Gestionnaires utiles inclus avec le module de journalisation." - -#: howto/logging-cookbook.rst:4269 -msgid ":ref:`Basic Tutorial `" -msgstr ":ref:`Tutoriel de découverte `" - -#: howto/logging-cookbook.rst:4271 -msgid ":ref:`Advanced Tutorial `" -msgstr ":ref:`Tutoriel avancé `" - -#~ msgid ":ref:`A basic logging tutorial `" -#~ msgstr "" -#~ ":ref:`Les bases de l’utilisation du module de journalisation `" - -#~ msgid ":ref:`A more advanced logging tutorial `" -#~ msgstr "" -#~ ":ref:`Utilisation avancée du module de journalisation `" diff --git a/howto/logging.po b/howto/logging.po deleted file mode 100644 index 8e81e00ebb..0000000000 --- a/howto/logging.po +++ /dev/null @@ -1,2157 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-03-24 12:32+0100\n" -"Last-Translator: Mathieu Dupuy\n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.2\n" - -#: howto/logging.rst:5 -msgid "Logging HOWTO" -msgstr "Tutoriel sur la journalisation" - -#: howto/logging.rst:0 -msgid "Author" -msgstr "Auteur" - -#: howto/logging.rst:7 -msgid "Vinay Sajip " -msgstr "Vinay Sajip " - -#: howto/logging.rst:13 -msgid "" -"This page contains tutorial information. For links to reference information " -"and a logging cookbook, please see :ref:`tutorial-ref-links`." -msgstr "" - -#: howto/logging.rst:17 -msgid "Basic Logging Tutorial" -msgstr "Les bases de l'utilisation du module ``logging``" - -#: howto/logging.rst:19 -msgid "" -"Logging is a means of tracking events that happen when some software runs. " -"The software's developer adds logging calls to their code to indicate that " -"certain events have occurred. An event is described by a descriptive message " -"which can optionally contain variable data (i.e. data that is potentially " -"different for each occurrence of the event). Events also have an importance " -"which the developer ascribes to the event; the importance can also be called " -"the *level* or *severity*." -msgstr "" -"La journalisation (*logging* en anglais) est une façon de suivre les " -"événements qui ont lieu durant le fonctionnement d'un logiciel. Le " -"développeur du logiciel ajoute des appels à l'outil de journalisation dans " -"son code pour indiquer que certains événements ont eu lieu. Un événement est " -"décrit par un message descriptif, qui peut éventuellement contenir des " -"données variables (c'est-à-dire qui peuvent être différentes pour chaque " -"occurrence de l'événement). Un événement a aussi une importance que le " -"développeur lui attribue ; cette importance peut aussi être appelée *niveau* " -"ou *sévérité*." - -#: howto/logging.rst:28 -msgid "When to use logging" -msgstr "Quand utiliser ``logging``" - -#: howto/logging.rst:30 -#, fuzzy -msgid "" -"You can access logging functionality by creating a logger via ``logger = " -"logging.getLogger(__name__)``, and then calling the " -"logger's :meth:`~Logger.debug`, :meth:`~Logger.info`, :meth:`~Logger.warning`, :meth:`~Logger.error` " -"and :meth:`~Logger.critical` methods. To determine when to use logging, and " -"to see which logger methods to use when, see the table below. It states, for " -"each of a set of common tasks, the best tool to use for that task." -msgstr "" -"Le module *logging* fournit un ensemble de fonctions de commodités pour une " -"utilisation simple du module. Ce sont les " -"fonctions :func:`debug`, :func:`info`, :func:`warning`, :func:`error` " -"et :func:`critical`. Pour déterminer quand employer la journalisation, voyez " -"la table ci-dessous, qui vous indique, pour chaque tâche parmi les plus " -"communes, l'outil approprié." - -#: howto/logging.rst:38 -msgid "Task you want to perform" -msgstr "Tâche que vous souhaitez mener" - -#: howto/logging.rst:38 -msgid "The best tool for the task" -msgstr "Le meilleur outil pour cette tâche" - -#: howto/logging.rst:40 -msgid "" -"Display console output for ordinary usage of a command line script or program" -msgstr "" -"Affiche la sortie console d'un script en ligne de commande ou d'un programme " -"lors de son utilisation ordinaire" - -#: howto/logging.rst:40 -msgid ":func:`print`" -msgstr ":func:`print`" - -#: howto/logging.rst:44 -msgid "" -"Report events that occur during normal operation of a program (e.g. for " -"status monitoring or fault investigation)" -msgstr "" -"Rapporter des évènements qui ont lieu au cours du fonctionnement normal d'un " -"programme (par exemple pour suivre un statut ou examiner des " -"dysfonctionnements)" - -#: howto/logging.rst:44 -#, fuzzy -msgid "" -"A logger's :meth:`~Logger.info` (or :meth:`~Logger.debug` method for very " -"detailed output for diagnostic purposes)" -msgstr "" -":func:`logging.info` (ou :func:`logging.debug` pour une sortie très " -"détaillée à visée diagnostique)" - -#: howto/logging.rst:49 -msgid "Issue a warning regarding a particular runtime event" -msgstr "" -"Émettre un avertissement (*warning* en anglais) en relation avec un " -"évènement particulier au cours du fonctionnement d’un programme" - -#: howto/logging.rst:49 -msgid "" -":func:`warnings.warn` in library code if the issue is avoidable and the " -"client application should be modified to eliminate the warning" -msgstr "" -":func:`warnings.warn` dans le code de la bibliothèque si le problème est " -"évitable et l'application cliente doit être modifiée pour éliminer cet " -"avertissement" - -#: howto/logging.rst:54 -#, fuzzy -msgid "" -"A logger's :meth:`~Logger.warning` method if there is nothing the client " -"application can do about the situation, but the event should still be noted" -msgstr "" -":func:`logging.warning` si l'application cliente ne peut rien faire pour " -"corriger la situation mais l'évènement devrait quand même être noté" - -#: howto/logging.rst:60 -msgid "Report an error regarding a particular runtime event" -msgstr "" -"Rapporter une erreur lors d'un évènement particulier en cours d'exécution" - -#: howto/logging.rst:60 -msgid "Raise an exception" -msgstr "Lever une exception" - -#: howto/logging.rst:63 -msgid "" -"Report suppression of an error without raising an exception (e.g. error " -"handler in a long-running server process)" -msgstr "" -"Rapporter la suppression d'une erreur sans lever d'exception (par exemple " -"pour la gestion d'erreur d'un processus de long terme sur un serveur)" - -#: howto/logging.rst:63 -#, fuzzy -msgid "" -"A logger's :meth:`~Logger.error`, :meth:`~Logger.exception` " -"or :meth:`~Logger.critical` method as appropriate for the specific error and " -"application domain" -msgstr "" -":func:`logging.error`, :func:`logging.exception` " -"ou :func:`logging.critical`, au mieux, selon l'erreur spécifique et le " -"domaine d'application" - -#: howto/logging.rst:70 -#, fuzzy -msgid "" -"The logger methods are named after the level or severity of the events they " -"are used to track. The standard levels and their applicability are described " -"below (in increasing order of severity):" -msgstr "" -"Les fonctions de journalisation sont nommées d'après le niveau ou la " -"sévérité des évènements qu'elles suivent. Les niveaux standards et leurs " -"applications sont décrits ci-dessous (par ordre croissant de sévérité) :" - -#: howto/logging.rst:875 -msgid "Level" -msgstr "Niveau" - -#: howto/logging.rst:77 -msgid "When it's used" -msgstr "Quand il est utilisé" - -#: howto/logging.rst:885 -msgid "``DEBUG``" -msgstr "``DEBUG``" - -#: howto/logging.rst:79 -msgid "" -"Detailed information, typically of interest only when diagnosing problems." -msgstr "" -"Information détaillée, intéressante seulement lorsqu'on diagnostique un " -"problème." - -#: howto/logging.rst:883 -msgid "``INFO``" -msgstr "``INFO``" - -#: howto/logging.rst:82 -msgid "Confirmation that things are working as expected." -msgstr "Confirmation que tout fonctionne comme prévu." - -#: howto/logging.rst:881 -msgid "``WARNING``" -msgstr "``WARNING``" - -#: howto/logging.rst:85 -msgid "" -"An indication that something unexpected happened, or indicative of some " -"problem in the near future (e.g. 'disk space low'). The software is still " -"working as expected." -msgstr "" -"L'indication que quelque chose d'inattendu a eu lieu, ou de la possibilité " -"d'un problème dans un futur proche (par exemple « espace disque faible »). " -"Le logiciel fonctionne encore normalement." - -#: howto/logging.rst:879 -msgid "``ERROR``" -msgstr "``ERROR``" - -#: howto/logging.rst:90 -msgid "" -"Due to a more serious problem, the software has not been able to perform " -"some function." -msgstr "" -"Du fait d'un problème plus sérieux, le logiciel n'a pas été capable de " -"réaliser une tâche." - -#: howto/logging.rst:877 -msgid "``CRITICAL``" -msgstr "``CRITICAL``" - -#: howto/logging.rst:93 -msgid "" -"A serious error, indicating that the program itself may be unable to " -"continue running." -msgstr "" -"Une erreur sérieuse, indiquant que le programme lui-même pourrait être " -"incapable de continuer à fonctionner." - -#: howto/logging.rst:97 -#, fuzzy -msgid "" -"The default level is ``WARNING``, which means that only events of this " -"severity and higher will be tracked, unless the logging package is " -"configured to do otherwise." -msgstr "" -"Le niveau par défaut est ``WARNING``, ce qui signifie que seuls les " -"évènements de ce niveau et au-dessus sont suivis, sauf si le paquet " -"*logging* est configuré pour faire autrement." - -#: howto/logging.rst:100 -msgid "" -"Events that are tracked can be handled in different ways. The simplest way " -"of handling tracked events is to print them to the console. Another common " -"way is to write them to a disk file." -msgstr "" -"Les évènements suivis peuvent être gérés de différentes façons. La manière " -"la plus simple est de les afficher dans la console. Une autre méthode " -"commune est de les écrire dans un fichier." - -#: howto/logging.rst:108 -msgid "A simple example" -msgstr "Un exemple simple" - -#: howto/logging.rst:110 -msgid "A very simple example is::" -msgstr "Un exemple très simple est ::" - -#: howto/logging.rst:116 -msgid "If you type these lines into a script and run it, you'll see:" -msgstr "" -"Si vous entrez ces lignes dans un script que vous exécutez, vous verrez :" - -#: howto/logging.rst:122 -#, fuzzy -msgid "" -"printed out on the console. The ``INFO`` message doesn't appear because the " -"default level is ``WARNING``. The printed message includes the indication of " -"the level and the description of the event provided in the logging call, " -"i.e. 'Watch out!'. The actual output can be formatted quite flexibly if you " -"need that; formatting options will also be explained later." -msgstr "" -"affiché dans la console. Le message ``INFO`` n'apparaît pas parce que le " -"niveau par défaut est ``WARNING``. Le message affiché inclut l'indication du " -"niveau et la description de l'évènement fournie dans l'appel à *logging*, " -"ici « Watch out! ». Ne vous préoccupez pas de la partie « *root* » pour le " -"moment : nous détaillerons ce point plus bas. La sortie elle-même peut être " -"formatée de multiples manières si besoin. Les options de formatage seront " -"aussi expliquées plus bas." - -#: howto/logging.rst:128 -msgid "" -"Notice that in this example, we use functions directly on the ``logging`` " -"module, like ``logging.debug``, rather than creating a logger and calling " -"functions on it. These functions operate on the root logger, but can be " -"useful as they will call :func:`~logging.basicConfig` for you if it has not " -"been called yet, like in this example. In larger programs you'll usually " -"want to control the logging configuration explicitly however - so for that " -"reason as well as others, it's better to create loggers and call their " -"methods." -msgstr "" - -#: howto/logging.rst:137 -msgid "Logging to a file" -msgstr "Enregistrer les évènements dans un fichier" - -#: howto/logging.rst:139 -msgid "" -"A very common situation is that of recording logging events in a file, so " -"let's look at that next. Be sure to try the following in a newly started " -"Python interpreter, and don't just continue from the session described " -"above::" -msgstr "" -"Il est très commun d'enregistrer les évènements dans un fichier, c'est donc " -"ce que nous allons regarder maintenant. Il faut essayer ce qui suit avec un " -"interpréteur Python nouvellement démarré, ne poursuivez pas la session " -"commencée ci-dessus ::" - -#: howto/logging.rst:151 -msgid "" -"The *encoding* argument was added. In earlier Python versions, or if not " -"specified, the encoding used is the default value used by :func:`open`. " -"While not shown in the above example, an *errors* argument can also now be " -"passed, which determines how encoding errors are handled. For available " -"values and the default, see the documentation for :func:`open`." -msgstr "" -"L'argument *encoding* a été rajouté. Dans les versions précédentes de " -"Python, ou si non spécifié, l'encodage utilisé est la valeur par défaut " -"utilisée par :func:`open`. Bien que non montré dans l'exemple ci-dessus, un " -"argument **errors** peut aussi être passé, qui détermine comment les erreurs " -"d'encodage sont gérées. Pour voir les valeurs disponibles et par défaut, " -"consultez la documentation de :func:`open`." - -#: howto/logging.rst:158 -msgid "" -"And now if we open the file and look at what we have, we should find the log " -"messages:" -msgstr "" -"Maintenant, si nous ouvrons le fichier et lisons ce qui s'y trouve, nous " -"trouvons les messages de journalisation :" - -#: howto/logging.rst:168 -msgid "" -"This example also shows how you can set the logging level which acts as the " -"threshold for tracking. In this case, because we set the threshold to " -"``DEBUG``, all of the messages were printed." -msgstr "" -"Cet exemple montre aussi comment on peut régler le niveau de journalisation " -"qui sert de seuil pour le suivi. Dans ce cas, comme nous avons réglé le " -"seuil à ``DEBUG``, tous les messages ont été écrits." - -#: howto/logging.rst:172 -msgid "" -"If you want to set the logging level from a command-line option such as:" -msgstr "" -"Si vous souhaitez régler le niveau de journalisation à partir d'une option " -"de la ligne de commande comme :" - -#: howto/logging.rst:178 -msgid "" -"and you have the value of the parameter passed for ``--log`` in some " -"variable *loglevel*, you can use::" -msgstr "" -"et que vous passez ensuite la valeur du paramètre donné à l'option ``--log`` " -"dans une variable *loglevel*, vous pouvez utiliser ::" - -#: howto/logging.rst:183 -msgid "" -"to get the value which you'll pass to :func:`basicConfig` via the *level* " -"argument. You may want to error check any user input value, perhaps as in " -"the following example::" -msgstr "" -"de manière à obtenir la valeur à passer à :func:`basicConfig` à travers " -"l'argument *level*. Vous pouvez vérifier que l'utilisateur n'a fait aucune " -"erreur pour la valeur de ce paramètre, comme dans l'exemple ci-dessous ::" - -#: howto/logging.rst:195 -msgid "" -"The call to :func:`basicConfig` should come *before* any calls to a logger's " -"methods such as :meth:`~Logger.debug`, :meth:`~Logger.info`, etc. Otherwise, " -"that logging event may not be handled in the desired manner." -msgstr "" - -#: howto/logging.rst:199 -msgid "" -"If you run the above script several times, the messages from successive runs " -"are appended to the file *example.log*. If you want each run to start " -"afresh, not remembering the messages from earlier runs, you can specify the " -"*filemode* argument, by changing the call in the above example to::" -msgstr "" -"Si vous exécutez le script plusieurs fois, les messages des exécutions " -"successives sont ajoutés au fichier *example.log*. Si vous voulez que chaque " -"exécution reprenne un fichier vierge, sans conserver les messages des " -"exécutions précédentes, vous pouvez spécifier l'argument *filemode*, en " -"changeant l'appel à l'exemple précédent par ::" - -#: howto/logging.rst:206 -msgid "" -"The output will be the same as before, but the log file is no longer " -"appended to, so the messages from earlier runs are lost." -msgstr "" -"La sortie est identique à la précédente, mais le texte n'est plus ajouté au " -"fichier de log, donc les messages des exécutions précédentes sont perdus." - -#: howto/logging.rst:211 -msgid "Logging variable data" -msgstr "Journalisation de données variables" - -#: howto/logging.rst:213 -msgid "" -"To log variable data, use a format string for the event description message " -"and append the variable data as arguments. For example::" -msgstr "" -"Pour enregistrer des données variables, utilisez une chaîne formatée dans le " -"message de description de l'évènement et ajoutez les données variables comme " -"argument. Par exemple ::" - -#: howto/logging.rst:219 -msgid "will display:" -msgstr "affiche :" - -#: howto/logging.rst:225 -msgid "" -"As you can see, merging of variable data into the event description message " -"uses the old, %-style of string formatting. This is for backwards " -"compatibility: the logging package pre-dates newer formatting options such " -"as :meth:`str.format` and :class:`string.Template`. These newer formatting " -"options *are* supported, but exploring them is outside the scope of this " -"tutorial: see :ref:`formatting-styles` for more information." -msgstr "" -"Comme vous pouvez le voir, l'inclusion des données variables dans le message " -"de description de l'évènement emploie le vieux style de formatage avec %. " -"C'est pour assurer la rétrocompatibilité : le module ``logging`` est " -"antérieur aux nouvelles options de formatage comme :meth:`str.format` " -"ou :class:`string.Template`. Ces nouvelles options de formatage *sont* " -"gérées, mais leur exploration sort du cadre de ce tutoriel, " -"voyez :ref:`formatting-styles` pour plus d'information." - -#: howto/logging.rst:234 -msgid "Changing the format of displayed messages" -msgstr "Modifier le format du message affiché" - -#: howto/logging.rst:236 -msgid "" -"To change the format which is used to display messages, you need to specify " -"the format you want to use::" -msgstr "" -"Pour changer le format utilisé pour afficher le message, vous devez préciser " -"le format que vous souhaitez employer ::" - -#: howto/logging.rst:245 -msgid "which would print:" -msgstr "ce qui affiche :" - -#: howto/logging.rst:253 -msgid "" -"Notice that the 'root' which appeared in earlier examples has disappeared. " -"For a full set of things that can appear in format strings, you can refer to " -"the documentation for :ref:`logrecord-attributes`, but for simple usage, you " -"just need the *levelname* (severity), *message* (event description, " -"including variable data) and perhaps to display when the event occurred. " -"This is described in the next section." -msgstr "" -"Notez que le ``root`` qui apparaissait dans les exemples précédents a " -"disparu. Pour voir l'ensemble des éléments qui peuvent apparaître dans la " -"chaîne de format, référez-vous à la documentation pour :ref:`logrecord-" -"attributes`. Pour une utilisation simple, vous avez seulement besoin du " -"*levelname* (la sévérité), du *message* (la description de l'évènement, avec " -"les données variables) et peut-être du moment auquel l'évènement a eu lieu. " -"Nous décrivons ces points dans la prochaine section." - -#: howto/logging.rst:262 -msgid "Displaying the date/time in messages" -msgstr "Afficher l'horodatage dans les messages" - -#: howto/logging.rst:264 -msgid "" -"To display the date and time of an event, you would place '%(asctime)s' in " -"your format string::" -msgstr "" -"Pour afficher la date ou le temps d'un évènement, ajoutez ``'%(asctime)'`` " -"dans votre chaîne de formatage ::" - -#: howto/logging.rst:271 -msgid "which should print something like this:" -msgstr "ce qui affichera quelque chose comme :" - -#: howto/logging.rst:277 -msgid "" -"The default format for date/time display (shown above) is like ISO8601 " -"or :rfc:`3339`. If you need more control over the formatting of the date/" -"time, provide a *datefmt* argument to ``basicConfig``, as in this example::" -msgstr "" -"Le format par défaut de l'horodatage (comme ci-dessus) est donné par la " -"norme ISO8601 ou :rfc:`3339`. Pour plus de contrôle sur le formatage de " -"l'horodatage, vous pouvez fournir à ``basicConfig`` un argument *datefmt*, " -"comme dans l'exemple suivant ::" - -#: howto/logging.rst:285 -msgid "which would display something like this:" -msgstr "ce qui affichera quelque chose comme :" - -#: howto/logging.rst:291 -msgid "" -"The format of the *datefmt* argument is the same as supported " -"by :func:`time.strftime`." -msgstr "Le format de *datefmt* est le même que celui de :func:`time.strftime`." - -#: howto/logging.rst:296 -msgid "Next Steps" -msgstr "Étapes suivantes" - -#: howto/logging.rst:298 -msgid "" -"That concludes the basic tutorial. It should be enough to get you up and " -"running with logging. There's a lot more that the logging package offers, " -"but to get the best out of it, you'll need to invest a little more of your " -"time in reading the following sections. If you're ready for that, grab some " -"of your favourite beverage and carry on." -msgstr "" -"Nous concluons ainsi le tutoriel basique. Il devrait suffire à vous mettre " -"le pied à l'étrier pour utiliser ``logging``. Le module ``logging`` a " -"beaucoup d'autre cordes à son arc, mais pour en profiter au maximum, vous " -"devez prendre le temps de lire les sections suivantes. Si vous êtes prêt, " -"servez-vous votre boisson préférée et poursuivons." - -#: howto/logging.rst:304 -#, fuzzy -msgid "" -"If your logging needs are simple, then use the above examples to incorporate " -"logging into your own scripts, and if you run into problems or don't " -"understand something, please post a question in the Help category of the " -"`Python discussion forum `_ and you " -"should receive help before too long." -msgstr "" -"Si vos besoins avec ``logging`` sont simples, vous pouvez incorporer les " -"exemples ci-dessus dans vos scripts. Si vous rencontrez des difficultés ou " -"s'il y a quelque chose que vous ne comprenez pas, vous pouvez poser une " -"question sur le groupe Usenet ``comp.lang.python`` (accessible à https://" -"groups.google.com/forum/#!forum/comp.lang.python), on vous répondra " -"rapidement." - -#: howto/logging.rst:310 -msgid "" -"Still here? You can carry on reading the next few sections, which provide a " -"slightly more advanced/in-depth tutorial than the basic one above. After " -"that, you can take a look at the :ref:`logging-cookbook`." -msgstr "" -"Vous êtes encore là ? Vous pouvez lire les prochaines sections, qui donnent " -"un peu plus de détails que l'introduction ci-dessus. Après ça, vous pouvez " -"jeter un œil à :ref:`logging-cookbook`." - -#: howto/logging.rst:318 -msgid "Advanced Logging Tutorial" -msgstr "Usage avancé de Logging" - -#: howto/logging.rst:320 -msgid "" -"The logging library takes a modular approach and offers several categories " -"of components: loggers, handlers, filters, and formatters." -msgstr "" -"La bibliothèque de journalisation adopte une approche modulaire et offre " -"différentes catégories de composants : *loggers*, *handlers*, *filters* et " -"*formatters*." - -#: howto/logging.rst:323 -msgid "Loggers expose the interface that application code directly uses." -msgstr "" -"Les enregistreurs (*loggers* en anglais) exposent l'interface que le code de " -"l'application utilise directement." - -#: howto/logging.rst:324 -msgid "" -"Handlers send the log records (created by loggers) to the appropriate " -"destination." -msgstr "" -"Les gestionnaires (*handlers*) envoient les entrées de journal (créés par " -"les *loggers*) vers les destinations voulues." - -#: howto/logging.rst:326 -msgid "" -"Filters provide a finer grained facility for determining which log records " -"to output." -msgstr "" -"Les filtres (*filters*) fournissent un moyen de choisir finement quelles " -"entrées de journal doivent être sorties." - -#: howto/logging.rst:328 -msgid "Formatters specify the layout of log records in the final output." -msgstr "" -"Les formateurs (*formatters*) spécifient la structure de l'entrée de journal " -"dans la sortie finale." - -#: howto/logging.rst:330 -msgid "" -"Log event information is passed between loggers, handlers, filters and " -"formatters in a :class:`LogRecord` instance." -msgstr "" -"L'information relative à un événement est passée entre *loggers*, *handlers* " -"et *formatters* dans une instance de la classe :class:`LogRecord`." - -#: howto/logging.rst:333 -msgid "" -"Logging is performed by calling methods on instances of the :class:`Logger` " -"class (hereafter called :dfn:`loggers`). Each instance has a name, and they " -"are conceptually arranged in a namespace hierarchy using dots (periods) as " -"separators. For example, a logger named 'scan' is the parent of loggers " -"'scan.text', 'scan.html' and 'scan.pdf'. Logger names can be anything you " -"want, and indicate the area of an application in which a logged message " -"originates." -msgstr "" -"La journalisation est réalisée en appelant les méthodes d'instance de la " -"classe :class:`Logger` (que l'on appelle ci-dessous :dfn:`loggers`). Chaque " -"instance a un nom et les instances sont organisées conceptuellement comme " -"des hiérarchies dans l'espace de nommage, en utilisant un point comme " -"séparateur. Par exemple, un *logger* appelé ``scan`` est le parent des " -"*loggers* ``scan.text``, ``scan.html`` et ``scan.pdf``. Les noms des " -"*loggers* peuvent être ce que vous voulez et indiquent le sous-domaine d'une " -"application depuis lequel le message enregistré a été émis." - -#: howto/logging.rst:340 -msgid "" -"A good convention to use when naming loggers is to use a module-level " -"logger, in each module which uses logging, named as follows::" -msgstr "" -"Une bonne convention lorsqu'on nomme les *loggers* est d'utiliser un " -"*logger* au niveau du module, dans chaque module qui emploie ``logging``, " -"nommé de la façon suivante ::" - -#: howto/logging.rst:345 -msgid "" -"This means that logger names track the package/module hierarchy, and it's " -"intuitively obvious where events are logged just from the logger name." -msgstr "" -"Cela signifie que le nom d'un *logger* se rapporte à la hiérarchie du paquet " -"et des modules, et il est évident de voir où un événement a été enregistré " -"simplement en regardant le nom du *logger*." - -#: howto/logging.rst:348 -msgid "" -"The root of the hierarchy of loggers is called the root logger. That's the " -"logger used by the " -"functions :func:`debug`, :func:`info`, :func:`warning`, :func:`error` " -"and :func:`critical`, which just call the same-named method of the root " -"logger. The functions and the methods have the same signatures. The root " -"logger's name is printed as 'root' in the logged output." -msgstr "" -"La racine de la hiérarchie des enregistreurs est appelée le *root logger*. " -"C'est l'enregistreur utilisé par les " -"fonctions :func:`debug`, :func:`info`, :func:`warning`, :func:`error` " -"et :func:`critical`, qui appelle en fait les méthodes du même nom de l'objet " -"*root logger*. Les fonctions et les méthodes ont la même signature. Le nom " -"de l'enregistreur racine est affiché comme « ``'root'`` » dans la sortie." - -#: howto/logging.rst:354 -msgid "" -"It is, of course, possible to log messages to different destinations. " -"Support is included in the package for writing log messages to files, HTTP " -"GET/POST locations, email via SMTP, generic sockets, queues, or OS-specific " -"logging mechanisms such as syslog or the Windows NT event log. Destinations " -"are served by :dfn:`handler` classes. You can create your own log " -"destination class if you have special requirements not met by any of the " -"built-in handler classes." -msgstr "" -"Il est bien sûr possible d'enregistrer des messages pour des destinations " -"différentes. Ce paquet permet d'écrire des entrées de journal dans des " -"fichiers, des ressources HTTP GET/POST, par courriel via SMTP, des " -"connecteurs (*socket* en anglais) génériques, des files d'attente, ou des " -"mécanismes d'enregistrement spécifiques au système d'exploitation, comme " -"*syslog* ou le journal d'événements de Windows NT. Les destinations sont " -"servies par des classes :dfn:`handler`. Vous pouvez créer votre propre " -"classe de destination si vous avez des besoins spéciaux qui ne sont couverts " -"par aucune classe *handler* prédéfinie." - -#: howto/logging.rst:361 -msgid "" -"By default, no destination is set for any logging messages. You can specify " -"a destination (such as console or file) by using :func:`basicConfig` as in " -"the tutorial examples. If you call the " -"functions :func:`debug`, :func:`info`, :func:`warning`, :func:`error` " -"and :func:`critical`, they will check to see if no destination is set; and " -"if one is not set, they will set a destination of the console " -"(``sys.stderr``) and a default format for the displayed message before " -"delegating to the root logger to do the actual message output." -msgstr "" -"Par défaut, aucune destination n'est prédéfinie pour les messages de " -"journalisation. Vous pouvez définir une destination (comme la console ou un " -"fichier) en utilisant :func:`basicConfig` comme dans les exemples donnés " -"dans le tutoriel. Si vous appelez les " -"fonctions :func:`debug`, :func:`info`, :func:`warning`, :func:`error` " -"et :func:`critical`, celles-ci vérifient si une destination a été définie ; " -"si ce n'est pas le cas, la destination est assignée à la console " -"(``sys.stderr``) avec un format par défaut pour le message affiché, avant " -"d'être déléguée au *logger* racine, qui sort le message." - -#: howto/logging.rst:369 -msgid "The default format set by :func:`basicConfig` for messages is:" -msgstr "" -"Le format par défaut des messages est défini par :func:`basicConfig` comme " -"suit :" - -#: howto/logging.rst:375 -msgid "" -"You can change this by passing a format string to :func:`basicConfig` with " -"the *format* keyword argument. For all options regarding how a format string " -"is constructed, see :ref:`formatter-objects`." -msgstr "" -"Vous pouvez modifier ce comportement en passant une chaîne de formatage " -"à :func:`basicConfig` par l'argument nommé *format*. " -"Consultez :ref:`formatter-objects` pour toutes les options de construction " -"de cette chaîne de formatage." - -#: howto/logging.rst:380 -msgid "Logging Flow" -msgstr "Flux du processus de journalisation" - -#: howto/logging.rst:382 -msgid "" -"The flow of log event information in loggers and handlers is illustrated in " -"the following diagram." -msgstr "" -"Le flux des informations associées à un évènement dans les *loggers* et les " -"*handlers* est illustré dans le diagramme suivant." - -#: howto/logging.rst:433 -msgid "Loggers" -msgstr "Loggers" - -#: howto/logging.rst:435 -msgid "" -":class:`Logger` objects have a threefold job. First, they expose several " -"methods to application code so that applications can log messages at " -"runtime. Second, logger objects determine which log messages to act upon " -"based upon severity (the default filtering facility) or filter objects. " -"Third, logger objects pass along relevant log messages to all interested log " -"handlers." -msgstr "" -"Les objets de classe :class:`Logger` ont un rôle triple. Premièrement, ils " -"exposent plusieurs méthodes au code de l'application, de manière à ce " -"qu'elle puisse enregistrer des messages en cours d'exécution. Deuxièmement, " -"les objets *logger* déterminent sur quel message agir selon leur sévérité (à " -"partir des filtres par défaut) ou selon les objets *filter* associés. " -"Troisièmement, les objets *logger* transmettent les messages pertinents à " -"tous les *handlers* concernés." - -#: howto/logging.rst:441 -msgid "" -"The most widely used methods on logger objects fall into two categories: " -"configuration and message sending." -msgstr "" -"Les méthodes des objets *logger* les plus utilisées appartiennent à deux " -"catégories : la configuration et l'envoi de messages." - -#: howto/logging.rst:444 -msgid "These are the most common configuration methods:" -msgstr "Voici les méthodes de configuration les plus communes :" - -#: howto/logging.rst:446 -msgid "" -":meth:`Logger.setLevel` specifies the lowest-severity log message a logger " -"will handle, where debug is the lowest built-in severity level and critical " -"is the highest built-in severity. For example, if the severity level is " -"INFO, the logger will handle only INFO, WARNING, ERROR, and CRITICAL " -"messages and will ignore DEBUG messages." -msgstr "" -":meth:`Logger.setLevel` spécifie le plus bas niveau de sévérité qu'un " -"*logger* traitera. Ainsi, ``DEBUG`` est le niveau de sévérité défini par " -"défaut le plus bas et ``CRITICAL`` est le plus haut. Par exemple, si le " -"niveau de sévérité est ``INFO``, le *logger* ne traite que les messages de " -"niveau ``INFO``, ``WARNING``, ``ERROR`` et ``CRITICAL`` ; il ignore les " -"messages de niveau DEBUG." - -#: howto/logging.rst:452 -msgid "" -":meth:`Logger.addHandler` and :meth:`Logger.removeHandler` add and remove " -"handler objects from the logger object. Handlers are covered in more detail " -"in :ref:`handler-basic`." -msgstr "" -":meth:`Logger.addHandler` et :meth:`Logger.removeHandler` ajoutent ou " -"enlèvent des objets *handlers* au *logger*. Les objets *handlers* sont " -"expliqués plus en détail dans :ref:`handler-basic`." - -#: howto/logging.rst:456 -msgid "" -":meth:`Logger.addFilter` and :meth:`Logger.removeFilter` add and remove " -"filter objects from the logger object. Filters are covered in more detail " -"in :ref:`filter`." -msgstr "" -":meth:`Logger.addFilter` et :meth:`Logger.removeFilter` ajoutent ou enlèvent " -"des objets *filter* au *logger*. Les objets *filters* sont expliqués plus en " -"détail dans :ref:`filter`." - -#: howto/logging.rst:460 -msgid "" -"You don't need to always call these methods on every logger you create. See " -"the last two paragraphs in this section." -msgstr "" -"Comme nous l'expliquons aux deux derniers paragraphes de cette section, vous " -"n'avez pas besoin de faire appel à ces méthodes à chaque fois que vous créez " -"un *logger*." - -#: howto/logging.rst:463 -msgid "" -"With the logger object configured, the following methods create log messages:" -msgstr "" -"Une fois que l'objet *logger* est correctement configuré, les méthodes " -"suivantes permettent de créer un message :" - -#: howto/logging.rst:465 -msgid "" -":meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger.warning`, :meth:`Logger.error`, " -"and :meth:`Logger.critical` all create log records with a message and a " -"level that corresponds to their respective method names. The message is " -"actually a format string, which may contain the standard string substitution " -"syntax of ``%s``, ``%d``, ``%f``, and so on. The rest of their arguments is " -"a list of objects that correspond with the substitution fields in the " -"message. With regard to ``**kwargs``, the logging methods care only about a " -"keyword of ``exc_info`` and use it to determine whether to log exception " -"information." -msgstr "" -"Les " -"méthodes :meth:`Logger.debug`, :meth:`Logger.info`, :meth:`Logger.warning`, :meth:`Logger.error` " -"et :meth:`Logger.critical` créent des entrées de journal avec un message et " -"un niveau correspondant à leur nom. Le message est en fait une chaîne de " -"caractères qui peut contenir la syntaxe standard de substitution de chaînes " -"de caractères : ``%s``, ``%d``, ``%f``, etc. L'argument suivant est une " -"liste des objets correspondant aux champs à substituer dans le message. En " -"ce qui concerne ``**kwargs``, les méthodes de ``logging`` ne tiennent compte " -"que du mot clef ``exc_info`` et l'utilisent pour déterminer s'il faut " -"enregistrer les informations associées à une exception." - -#: howto/logging.rst:475 -msgid "" -":meth:`Logger.exception` creates a log message similar " -"to :meth:`Logger.error`. The difference is that :meth:`Logger.exception` " -"dumps a stack trace along with it. Call this method only from an exception " -"handler." -msgstr "" -":meth:`Logger.exception` crée un message similaire à :meth:`Logger.error`. " -"La différence est que :meth:`Logger.exception` ajoute la trace de la pile " -"d'exécution au message. On ne peut appeler cette méthode qu'à l'intérieur " -"d'un bloc de gestion d'exception." - -#: howto/logging.rst:479 -msgid "" -":meth:`Logger.log` takes a log level as an explicit argument. This is a " -"little more verbose for logging messages than using the log level " -"convenience methods listed above, but this is how to log at custom log " -"levels." -msgstr "" -":meth:`Logger.log` prend le niveau de sévérité comme argument explicite. " -"C'est un peu plus verbeux pour enregistrer des messages que d'utiliser les " -"méthodes plus pratiques décrites si dessus, mais c'est ce qui permet " -"d'enregistrer des messages pour des niveaux de sévérité définis par " -"l'utilisateur." - -#: howto/logging.rst:483 -msgid "" -":func:`getLogger` returns a reference to a logger instance with the " -"specified name if it is provided, or ``root`` if not. The names are period-" -"separated hierarchical structures. Multiple calls to :func:`getLogger` with " -"the same name will return a reference to the same logger object. Loggers " -"that are further down in the hierarchical list are children of loggers " -"higher up in the list. For example, given a logger with a name of ``foo``, " -"loggers with names of ``foo.bar``, ``foo.bar.baz``, and ``foo.bam`` are all " -"descendants of ``foo``." -msgstr "" -":func:`getLogger` renvoie une référence à un objet *logger* du nom spécifié " -"si celui-ci est donné en argument. Dans le cas contraire, c'est " -"l'enregistreur racine. Les noms sont des structures hiérarchiques séparées " -"par des points. Des appels répétés à :func:`getLogger` avec le même nom " -"renvoient une référence au même objet *logger*. Les *loggers* qui sont plus " -"bas dans cette liste hiérarchique sont des enfants des *loggers* plus haut " -"dans la liste. Par exemple, si un enregistreur a le nom ``foo``, les " -"enregistreurs avec les noms ``foo.bar``, ``foo.bar.baz`` et ``foo.bam`` sont " -"tous des descendants de ``foo``." - -#: howto/logging.rst:491 -msgid "" -"Loggers have a concept of *effective level*. If a level is not explicitly " -"set on a logger, the level of its parent is used instead as its effective " -"level. If the parent has no explicit level set, *its* parent is examined, " -"and so on - all ancestors are searched until an explicitly set level is " -"found. The root logger always has an explicit level set (``WARNING`` by " -"default). When deciding whether to process an event, the effective level of " -"the logger is used to determine whether the event is passed to the logger's " -"handlers." -msgstr "" -"On associe aux *loggers* un concept de *niveau effectif*. Si aucun niveau " -"n'est explicitement défini pour un *logger*, c'est le niveau du parent qui " -"est utilisé comme niveau effectif. Si le parent n'a pas de niveau défini, " -"c'est celui de *son* parent qui est considéré, et ainsi de suite ; on " -"examine tous les ancêtres jusqu'à ce qu'un niveau explicite soit trouvé. Le " -"*logger root* a toujours un niveau explicite (``WARNING`` par défaut). Quand " -"le *logger* traite un événement, c'est ce niveau effectif qui est utilisé " -"pour déterminer si cet événement est transmis à ses *handlers*." - -#: howto/logging.rst:499 -msgid "" -"Child loggers propagate messages up to the handlers associated with their " -"ancestor loggers. Because of this, it is unnecessary to define and configure " -"handlers for all the loggers an application uses. It is sufficient to " -"configure handlers for a top-level logger and create child loggers as " -"needed. (You can, however, turn off propagation by setting the *propagate* " -"attribute of a logger to ``False``.)" -msgstr "" -"Les *loggers* fils font remonter leurs messages aux *handlers* associés à " -"leurs *loggers* parents. De ce fait, il n'est pas nécessaire de définir et " -"configurer des *handlers* pour tous les *loggers* employés par une " -"application. Il suffit de configurer les *handlers* pour un *logger* de haut " -"niveau et de créer des *loggers* fils quand c'est nécessaire (on peut " -"cependant empêcher la propagation aux ancêtres des messages en donnant la " -"valeur ``False`` à l'attribut *propagate* d'un *logger*)." - -#: howto/logging.rst:510 -msgid "Handlers" -msgstr "Handlers" - -#: howto/logging.rst:512 -msgid "" -":class:`~logging.Handler` objects are responsible for dispatching the " -"appropriate log messages (based on the log messages' severity) to the " -"handler's specified destination. :class:`Logger` objects can add zero or " -"more handler objects to themselves with an :meth:`~Logger.addHandler` " -"method. As an example scenario, an application may want to send all log " -"messages to a log file, all log messages of error or higher to stdout, and " -"all messages of critical to an email address. This scenario requires three " -"individual handlers where each handler is responsible for sending messages " -"of a specific severity to a specific location." -msgstr "" -"Les objets de type :class:`~logging.Handler` sont responsables de la " -"distribution des messages (selon leur niveau de sévérité) vers les " -"destinations spécifiées pour ce *handler*. Les objets :class:`Logger` " -"peuvent ajouter des objets *handler* à eux-mêmes en " -"appelant :meth:`~Logger.addHandler`. Pour donner un exemple, une application " -"peut envoyer tous les messages dans un fichier journal, tous les messages de " -"niveau ``ERROR`` ou supérieur vers la sortie standard, et tous les messages " -"de niveau ``CRITICAL`` vers une adresse de courriel. Dans ce scénario, nous " -"avons besoin de trois *handlers*, responsable chacun d'envoyer des messages " -"d'une sévérité donnée vers une destination donnée." - -#: howto/logging.rst:522 -msgid "" -"The standard library includes quite a few handler types (see :ref:`useful-" -"handlers`); the tutorials use mainly :class:`StreamHandler` " -"and :class:`FileHandler` in its examples." -msgstr "" -"La bibliothèque standard inclut déjà un bon nombre de types de gestionnaires " -"(voir :ref:`useful-handlers`) ; le tutoriel utilise " -"surtout :class:`StreamHandler` et :class:`FileHandler` dans ses exemples." - -#: howto/logging.rst:526 -msgid "" -"There are very few methods in a handler for application developers to " -"concern themselves with. The only handler methods that seem relevant for " -"application developers who are using the built-in handler objects (that is, " -"not creating custom handlers) are the following configuration methods:" -msgstr "" -"Peu de méthodes des objets *handlers* sont intéressantes pour les " -"développeurs. Les seules méthodes intéressantes lorsqu'on utilise les objets " -"*handlers* natifs (c'est-à-dire si l'on ne crée pas de *handler* " -"personnalisé) sont les méthodes de configuration suivantes :" - -#: howto/logging.rst:531 -#, fuzzy -msgid "" -"The :meth:`~Handler.setLevel` method, just as in logger objects, specifies " -"the lowest severity that will be dispatched to the appropriate destination. " -"Why are there two :meth:`~Handler.setLevel` methods? The level set in the " -"logger determines which severity of messages it will pass to its handlers. " -"The level set in each handler determines which messages that handler will " -"send on." -msgstr "" -"La méthode :meth:`~Handler.setLevel`, comme celle des objets *logger* permet " -"de spécifier le plus bas niveau de sévérité qui sera distribué à la " -"destination appropriée. Pourquoi y a-t-il deux méthodes :func:`setLevel` ? " -"Le niveau défini dans le *logger* détermine quelle sévérité doit avoir un " -"message pour être transmis à ses *handlers*. Le niveau mis pour chaque " -"*handler* détermine quels messages seront envoyés aux destinations." - -#: howto/logging.rst:537 -msgid "" -":meth:`~Handler.setFormatter` selects a Formatter object for this handler to " -"use." -msgstr "" -":meth:`~Handler.setFormatter` sélectionne l'objet ``Formatter`` utilisé par " -"ce ``handler``." - -#: howto/logging.rst:540 -msgid "" -":meth:`~Handler.addFilter` and :meth:`~Handler.removeFilter` respectively " -"configure and deconfigure filter objects on handlers." -msgstr "" -":meth:`~Handler.addFilter` et :meth:`~Handler.removeFilter` configurent et " -"respectivement dé-configurent des objets *filter* sur les *handlers*." - -#: howto/logging.rst:543 -msgid "" -"Application code should not directly instantiate and use instances " -"of :class:`Handler`. Instead, the :class:`Handler` class is a base class " -"that defines the interface that all handlers should have and establishes " -"some default behavior that child classes can use (or override)." -msgstr "" -"Le code d'une application ne devrait ni instancier, ni utiliser d'instances " -"de la classe :class:`Handler`. La classe :class:`Handler` est plutôt une " -"classe mère qui définit l'interface que tous les gestionnaires doivent avoir " -"et établit les comportements par défaut que les classes filles peuvent " -"employer (ou redéfinir)." - -#: howto/logging.rst:550 -msgid "Formatters" -msgstr "Formatters" - -#: howto/logging.rst:552 -msgid "" -"Formatter objects configure the final order, structure, and contents of the " -"log message. Unlike the base :class:`logging.Handler` class, application " -"code may instantiate formatter classes, although you could likely subclass " -"the formatter if your application needs special behavior. The constructor " -"takes three optional arguments -- a message format string, a date format " -"string and a style indicator." -msgstr "" -"Les objets *formatter* configurent l'ordre final, la structure et le contenu " -"du message. Contrairement à la classe mère :class:`logging.Handler`, le code " -"d'une application peut instancier un objet de classe *formatter*, même si " -"vous pouvez toujours sous-classer *formatter* si vous avez besoin d'un " -"comportement spécial dans votre application. Le constructeur a trois " -"arguments optionnels : une chaîne de formatage du message, une chaîne de " -"formatage de la date et un indicateur de style." - -#: howto/logging.rst:561 -msgid "" -"If there is no message format string, the default is to use the raw " -"message. If there is no date format string, the default date format is:" -msgstr "" -"S'il n'y a pas de chaîne de formatage, la chaîne brute est utilisée par " -"défaut. S'il n'y a pas de chaîne de formatage de date, le format de date par " -"défaut est :" - -#: howto/logging.rst:568 -msgid "" -"with the milliseconds tacked on at the end. The ``style`` is one of ``'%'``, " -"``'{'``, or ``'$'``. If one of these is not specified, then ``'%'`` will be " -"used." -msgstr "" -"avec les millisecondes ajoutées à la fin. ``style`` est l'un des suivants : " -"``'%'``, ``'{'``, ou ``'$'``. Si l'un de ces styles n'est pas spécifié, " -"alors ``'%'`` sera utilisé." - -#: howto/logging.rst:571 -msgid "" -"If the ``style`` is ``'%'``, the message format string uses ``%()s`` styled string substitution; the possible keys are documented " -"in :ref:`logrecord-attributes`. If the style is ``'{'``, the message format " -"string is assumed to be compatible with :meth:`str.format` (using keyword " -"arguments), while if the style is ``'$'`` then the message format string " -"should conform to what is expected by :meth:`string.Template.substitute`." -msgstr "" -"Si l'argument ``style`` est ``'%'``, la chaîne de formatage utilise ``%" -"()s`` comme style de substitution de chaîne de " -"caractères. Les clefs possibles sont documentées dans :ref:`logrecord-" -"attributes`. Si le style est ``'{'``, le message de la chaîne de formatage " -"est compatible avec :meth:`str.format` (en employant des arguments nommés). " -"Enfin si le style est ``'$'`` alors la chaîne de formatage du message doit " -"être conforme à ce qui est attendu de :meth:`string.Template.substitute`." - -#: howto/logging.rst:578 -msgid "Added the ``style`` parameter." -msgstr "Ajout du paramètre ``style``." - -#: howto/logging.rst:581 -msgid "" -"The following message format string will log the time in a human-readable " -"format, the severity of the message, and the contents of the message, in " -"that order::" -msgstr "" -"La chaîne de formatage de message suivante enregistrera le temps dans un " -"format lisible par les humains, la sévérité du message et son contenu, dans " -"cet ordre ::" - -#: howto/logging.rst:587 -msgid "" -"Formatters use a user-configurable function to convert the creation time of " -"a record to a tuple. By default, :func:`time.localtime` is used; to change " -"this for a particular formatter instance, set the ``converter`` attribute of " -"the instance to a function with the same signature as :func:`time.localtime` " -"or :func:`time.gmtime`. To change it for all formatters, for example if you " -"want all logging times to be shown in GMT, set the ``converter`` attribute " -"in the Formatter class (to ``time.gmtime`` for GMT display)." -msgstr "" -"Les *formatters* emploient une fonction configurable par l'utilisateur pour " -"convertir le temps de création d'une entrée de journal en un *n*-uplet. Par " -"défaut, :func:`time.localtime` est employé ; pour changer cela pour une " -"instance particulière de *formatter*, assignez une fonction avec la même " -"signature que :func:`time.localtime` ou :func:`time.gmtime` à l'attribut " -"``converter`` de cette instance. Pour changer cela pour tous les " -"*formatters*, par exemple si vous voulez que tous votre horodatage soit " -"affiché en GMT, changez l'attribut ``converter`` de la classe ``Formatter`` " -"en ``time.gmtime``." - -#: howto/logging.rst:597 -msgid "Configuring Logging" -msgstr "Configuration de ``logging``" - -#: howto/logging.rst:601 -msgid "Programmers can configure logging in three ways:" -msgstr "On peut configurer ``logging`` de trois façons :" - -#: howto/logging.rst:603 -msgid "" -"Creating loggers, handlers, and formatters explicitly using Python code that " -"calls the configuration methods listed above." -msgstr "" -"Créer des *loggers*, *handlers* et *formatters* explicitement en utilisant " -"du code Python qui appelle les méthodes de configuration listées ci-dessus." - -#: howto/logging.rst:605 -msgid "" -"Creating a logging config file and reading it using the :func:`fileConfig` " -"function." -msgstr "" -"Créer un fichier de configuration de ``logging`` et le lire en employant la " -"fonction :func:`fileConfig`." - -#: howto/logging.rst:607 -msgid "" -"Creating a dictionary of configuration information and passing it to " -"the :func:`dictConfig` function." -msgstr "" -"Créer un dictionnaire d'informations de configuration et le passer à la " -"fonction :func:`dictConfig`." - -#: howto/logging.rst:610 -msgid "" -"For the reference documentation on the last two options, see :ref:`logging-" -"config-api`. The following example configures a very simple logger, a " -"console handler, and a simple formatter using Python code::" -msgstr "" -"Pour la documentation de référence de ces deux dernières options, " -"voyez :ref:`logging-config-api`. L'exemple suivant configure un *logger* " -"très simple, un *handler* employant la console, et un *formatter* simple en " -"utilisant du code Python ::" - -#: howto/logging.rst:640 -msgid "" -"Running this module from the command line produces the following output:" -msgstr "" -"L'exécution de ce module via la ligne de commande produit la sortie " -"suivante :" - -#: howto/logging.rst:651 -msgid "" -"The following Python module creates a logger, handler, and formatter nearly " -"identical to those in the example listed above, with the only difference " -"being the names of the objects::" -msgstr "" -"Le module Python suivant crée un *logger*, un *handler* et un *formatter* " -"identiques à ceux de l'exemple détaillé au-dessus, au nom des objets près ::" - -#: howto/logging.rst:670 -msgid "Here is the logging.conf file:" -msgstr "Voici le fichier *logging.conf* :" - -#: howto/logging.rst:702 -msgid "" -"The output is nearly identical to that of the non-config-file-based example:" -msgstr "" -"La sortie est presque identique à celle de l'exemple qui n'est pas basé sur " -"un fichier de configuration :" - -#: howto/logging.rst:713 -msgid "" -"You can see that the config file approach has a few advantages over the " -"Python code approach, mainly separation of configuration and code and the " -"ability of noncoders to easily modify the logging properties." -msgstr "" -"Vous pouvez constater les avantages de l'approche par fichier de " -"configuration par rapport à celle du code Python, principalement la " -"séparation de la configuration et du code, et la possibilité pour une " -"personne qui ne code pas de modifier facilement les propriétés de " -"journalisation." - -#: howto/logging.rst:717 -msgid "" -"The :func:`fileConfig` function takes a default parameter, " -"``disable_existing_loggers``, which defaults to ``True`` for reasons of " -"backward compatibility. This may or may not be what you want, since it will " -"cause any non-root loggers existing before the :func:`fileConfig` call to be " -"disabled unless they (or an ancestor) are explicitly named in the " -"configuration. Please refer to the reference documentation for more " -"information, and specify ``False`` for this parameter if you wish." -msgstr "" -"La fonction :func:`fileConfig` accepte un paramètre par défaut " -"``disable_existing_loggers``, qui vaut ``True`` par défaut pour des raisons " -"de compatibilité ascendante. Ce n'est pas forcément ce que vous souhaitez : " -"en effet, tous les *loggers* créés avant l'appel à :func:`fileConfig` seront " -"désactivés sauf si eux-mêmes (ou l'un de leurs parents) sont explicitement " -"nommés dans le fichier de configuration. Veuillez vous reporter à la " -"documentation pour plus de détails, et donner la valeur ``False`` à ce " -"paramètre si vous le souhaitez." - -#: howto/logging.rst:725 -msgid "" -"The dictionary passed to :func:`dictConfig` can also specify a Boolean value " -"with key ``disable_existing_loggers``, which if not specified explicitly in " -"the dictionary also defaults to being interpreted as ``True``. This leads to " -"the logger-disabling behaviour described above, which may not be what you " -"want - in which case, provide the key explicitly with a value of ``False``." -msgstr "" -"Le dictionnaire passé à :func:`dictConfig` peut aussi spécifier une valeur " -"Booléenne pour la clef ``disable_existing_loggers``. Si cette valeur n'est " -"pas donnée, elle est interprétée comme vraie par défaut. Cela conduit au " -"comportement de désactivation des *loggers* décrit ci-dessus, qui n'est pas " -"forcément celui que vous souhaitez ; dans ce cas, donnez explicitement la " -"valeur ``False`` à cette clef." - -#: howto/logging.rst:735 -msgid "" -"Note that the class names referenced in config files need to be either " -"relative to the logging module, or absolute values which can be resolved " -"using normal import mechanisms. Thus, you could use " -"either :class:`~logging.handlers.WatchedFileHandler` (relative to the " -"logging module) or ``mypackage.mymodule.MyHandler`` (for a class defined in " -"package ``mypackage`` and module ``mymodule``, where ``mypackage`` is " -"available on the Python import path)." -msgstr "" -"Notez que les noms de classe référencés dans le fichier de configuration " -"doivent être relatifs au module ``logging``, ou des valeurs absolues qui " -"peuvent être résolues à travers les mécanismes d'importation habituels. " -"Ainsi, on peut soit utiliser :class:`~logging.handlers.WatchedFileHandler` " -"(relativement au module ``logging``) ou ``mypackage.mymodule.MyHandler`` " -"(pour une classe définie dans le paquet ``mypackage`` et le module " -"``mymodule``, si ``mypackage`` est disponible dans les chemins d'importation " -"de Python)." - -#: howto/logging.rst:743 -msgid "" -"In Python 3.2, a new means of configuring logging has been introduced, using " -"dictionaries to hold configuration information. This provides a superset of " -"the functionality of the config-file-based approach outlined above, and is " -"the recommended configuration method for new applications and deployments. " -"Because a Python dictionary is used to hold configuration information, and " -"since you can populate that dictionary using different means, you have more " -"options for configuration. For example, you can use a configuration file in " -"JSON format, or, if you have access to YAML processing functionality, a file " -"in YAML format, to populate the configuration dictionary. Or, of course, you " -"can construct the dictionary in Python code, receive it in pickled form over " -"a socket, or use whatever approach makes sense for your application." -msgstr "" -"Dans Python 3.2, un nouveau moyen de configuration de la journalisation a " -"été introduit, à l'aide de dictionnaires pour contenir les informations de " -"configuration. Cela fournit un sur-ensemble de la fonctionnalité décrite ci-" -"dessus basée sur un fichier de configuration et c’est la méthode recommandée " -"pour les nouvelles applications et les déploiements. Étant donné qu'un " -"dictionnaire Python est utilisé pour contenir des informations de " -"configuration et que vous pouvez remplir ce dictionnaire à l'aide de " -"différents moyens, vous avez plus d'options pour la configuration. Par " -"exemple, vous pouvez utiliser un fichier de configuration au format JSON ou, " -"si vous avez accès à la fonctionnalité de traitement YAML, un fichier au " -"format YAML, pour remplir le dictionnaire de configuration. Ou bien sûr, " -"vous pouvez construire le dictionnaire dans le code Python, le recevoir sous " -"forme de *pickle* sur un connecteur, ou utiliser n'importe quelle approche " -"suivant la logique de votre application." - -#: howto/logging.rst:755 -msgid "" -"Here's an example of the same configuration as above, in YAML format for the " -"new dictionary-based approach:" -msgstr "" -"Voici un exemple définissant la même configuration que ci-dessus, au format " -"YAML pour le dictionnaire correspondant à cette nouvelle approche :" - -#: howto/logging.rst:779 -msgid "" -"For more information about logging using a dictionary, see :ref:`logging-" -"config-api`." -msgstr "" -"Pour plus d'informations sur la journalisation à l'aide d'un dictionnaire, " -"consultez :ref:`logging-config-api`." - -#: howto/logging.rst:783 -msgid "What happens if no configuration is provided" -msgstr "Comportement par défaut (si aucune configuration n'est fournie)" - -#: howto/logging.rst:785 -#, fuzzy -msgid "" -"If no logging configuration is provided, it is possible to have a situation " -"where a logging event needs to be output, but no handlers can be found to " -"output the event." -msgstr "" -"Si aucune configuration de journalisation n'est fournie, il est possible " -"d'avoir une situation où un événement doit faire l'objet d'une " -"journalisation, mais où aucun gestionnaire ne peut être trouvé pour tracer " -"l'événement. Le comportement du paquet ``logging`` dans ces circonstances " -"dépend de la version Python." - -#: howto/logging.rst:789 -#, fuzzy -msgid "" -"The event is output using a 'handler of last resort', stored " -"in :data:`lastResort`. This internal handler is not associated with any " -"logger, and acts like a :class:`~logging.StreamHandler` which writes the " -"event description message to the current value of ``sys.stderr`` (therefore " -"respecting any redirections which may be in effect). No formatting is done " -"on the message - just the bare event description message is printed. The " -"handler's level is set to ``WARNING``, so all events at this and greater " -"severities will be output." -msgstr "" -"L'événement est sorti à l'aide d'un « gestionnaire de dernier recours », " -"stocké dans ``logging.lastResort``. Ce gestionnaire interne n'est associé à " -"aucun enregistreur et agit comme un :class:`~logging.StreamHandler` qui " -"écrit le message de description de l'événement vers la valeur actuelle de " -"``sys.stderr`` (par conséquent, en respectant les redirections qui peuvent " -"être en vigueur). Aucun formatage n'est fait sur le message – juste le " -"message de description de l'événement nu est affiché. Le niveau du " -"gestionnaire est défini sur ``WARNING``, de sorte que tous les événements de " -"cette sévérité et plus seront écrits." - -#: howto/logging.rst:800 -msgid "For versions of Python prior to 3.2, the behaviour is as follows:" -msgstr "" -"Pour les versions de Python antérieures à 3.2, le comportement est le " -"suivant :" - -#: howto/logging.rst:802 -#, fuzzy -msgid "" -"If :data:`raiseExceptions` is ``False`` (production mode), the event is " -"silently dropped." -msgstr "" -"Si *logging.raiseExceptions* vaut ``False`` (mode production), l’événement " -"est silencieusement abandonné." - -#: howto/logging.rst:805 -#, fuzzy -msgid "" -"If :data:`raiseExceptions` is ``True`` (development mode), a message 'No " -"handlers could be found for logger X.Y.Z' is printed once." -msgstr "" -"Si *logging.raiseExceptions* vaut ``True`` (mode de développement), un " -"message *No handlers could be found for logger X.Y.Z* est écrit sur la " -"sortie standard une fois." - -#: howto/logging.rst:808 -#, fuzzy -msgid "" -"To obtain the pre-3.2 behaviour, :data:`lastResort` can be set to ``None``." -msgstr "" -"Pour obtenir un comportement antérieur à 3.2, ``logging.lastResort`` peut " -"être mis à ``None``." - -#: howto/logging.rst:814 -msgid "Configuring Logging for a Library" -msgstr "Configuration de la journalisation pour une bibliothèque" - -#: howto/logging.rst:816 -msgid "" -"When developing a library which uses logging, you should take care to " -"document how the library uses logging - for example, the names of loggers " -"used. Some consideration also needs to be given to its logging " -"configuration. If the using application does not use logging, and library " -"code makes logging calls, then (as described in the previous section) events " -"of severity ``WARNING`` and greater will be printed to ``sys.stderr``. This " -"is regarded as the best default behaviour." -msgstr "" -"Lors du développement d'une bibliothèque qui utilise la journalisation, vous " -"devez prendre soin de documenter la façon dont la bibliothèque utilise la " -"journalisation (par exemple, les noms des enregistreurs utilisés). Consacrez " -"aussi un peu de temps à la configuration de la journalisation. Si " -"l'application utilisant votre bibliothèque n'utilise pas la journalisation " -"et que le code de la bibliothèque effectue des appels de journalisation, " -"alors (comme décrit dans la section précédente), les événements de gravité " -"``WARNING`` et au-dessus seront écrits sur ``sys.stderr``. Cela est " -"considéré comme le meilleur comportement par défaut." - -#: howto/logging.rst:824 -msgid "" -"If for some reason you *don't* want these messages printed in the absence of " -"any logging configuration, you can attach a do-nothing handler to the top-" -"level logger for your library. This avoids the message being printed, since " -"a handler will always be found for the library's events: it just doesn't " -"produce any output. If the library user configures logging for application " -"use, presumably that configuration will add some handlers, and if levels are " -"suitably configured then logging calls made in library code will send output " -"to those handlers, as normal." -msgstr "" -"Si, pour une raison quelconque, vous ne voulez *pas* que ces messages soient " -"affichés en l'absence de toute configuration de journalisation, vous pouvez " -"attacher un gestionnaire *ne-fait-rien* à l'enregistreur de niveau supérieur " -"de votre bibliothèque. Cela évite qu’un message ne soit écrit, puisqu’un " -"gestionnaire sera toujours trouvé pour les événements de la bibliothèque, il " -"ne produit tout simplement pas de sortie. Si celui qui utilise la " -"bibliothèque configure la journalisation pour son application, il est " -"vraisemblable que la configuration ajoutera certains gestionnaires et, si " -"les niveaux sont convenablement configurés, alors la journalisation des " -"appels effectués dans le code de bibliothèque enverra la sortie à ces " -"gestionnaires, comme d'habitude." - -#: howto/logging.rst:833 -msgid "" -"A do-nothing handler is included in the logging " -"package: :class:`~logging.NullHandler` (since Python 3.1). An instance of " -"this handler could be added to the top-level logger of the logging namespace " -"used by the library (*if* you want to prevent your library's logged events " -"being output to ``sys.stderr`` in the absence of logging configuration). If " -"all logging by a library *foo* is done using loggers with names matching " -"'foo.x', 'foo.x.y', etc. then the code::" -msgstr "" -"Un gestionnaire *ne-fait-rien* est inclus dans le paquet de " -"journalisation : :class:`~logging.NullHandler` (depuis Python 3.1). Une " -"instance de ce gestionnaire peut être ajoutée à l'enregistreur de niveau " -"supérieur de l'espace de nommage de journalisation utilisé par la " -"bibliothèque (*si* vous souhaitez empêcher la copie de la journalisation de " -"votre bibliothèque dans ``sys.stderr`` en l'absence de configuration de " -"journalisation). Si toute la journalisation par une bibliothèque *foo* est " -"effectuée en utilisant des enregistreurs avec des noms correspondant à " -"*foo.x*, *foo.x.y*, etc., alors le code ::" - -#: howto/logging.rst:844 -msgid "" -"should have the desired effect. If an organisation produces a number of " -"libraries, then the logger name specified can be 'orgname.foo' rather than " -"just 'foo'." -msgstr "" -"doit avoir l'effet désiré. Si une organisation produit un certain nombre de " -"bibliothèques, le nom de l'enregistreur spécifié peut être ``orgname.foo`` " -"plutôt que simplement ``foo``." - -#: howto/logging.rst:848 -msgid "" -"It is strongly advised that you *do not log to the root logger* in your " -"library. Instead, use a logger with a unique and easily identifiable name, " -"such as the ``__name__`` for your library's top-level package or module. " -"Logging to the root logger will make it difficult or impossible for the " -"application developer to configure the logging verbosity or handlers of your " -"library as they wish." -msgstr "" -"Il est fortement conseillé de *ne pas journaliser vers l'enregistreur " -"racine* dans votre bibliothèque. À la place, utilisez un enregistreur avec " -"un nom unique et facilement identifiable, tel que ``__name__`` pour le " -"paquet ou le module de niveau supérieur de votre bibliothèque. La " -"journalisation dans l'enregistreur racine rend difficile voire impossible " -"pour le développeur de l'application de configurer la verbosité de " -"journalisation ou les gestionnaires de votre bibliothèque comme il le " -"souhaite." - -#: howto/logging.rst:855 -msgid "" -"It is strongly advised that you *do not add any handlers other " -"than* :class:`~logging.NullHandler` *to your library's loggers*. This is " -"because the configuration of handlers is the prerogative of the application " -"developer who uses your library. The application developer knows their " -"target audience and what handlers are most appropriate for their " -"application: if you add handlers 'under the hood', you might well interfere " -"with their ability to carry out unit tests and deliver logs which suit their " -"requirements." -msgstr "" -"Il est vivement conseillé de ne *pas ajouter de gestionnaires autres " -"que* :class:`~logging.NullHandler` *aux enregistreurs de votre " -"bibliothèque*. Cela est dû au fait que la configuration des gestionnaires " -"est la prérogative du développeur d'applications qui utilise votre " -"bibliothèque. Le développeur d'applications connaît le public cible et les " -"gestionnaires les plus appropriés pour ses applications : si vous ajoutez " -"des gestionnaires « sous le manteau », vous pourriez bien interférer avec " -"les tests unitaires et la journalisation qui convient à ses exigences." - -#: howto/logging.rst:866 -msgid "Logging Levels" -msgstr "Niveaux de journalisation" - -#: howto/logging.rst:868 -msgid "" -"The numeric values of logging levels are given in the following table. These " -"are primarily of interest if you want to define your own levels, and need " -"them to have specific values relative to the predefined levels. If you " -"define a level with the same numeric value, it overwrites the predefined " -"value; the predefined name is lost." -msgstr "" -"Les valeurs numériques des niveaux de journalisation sont données dans le " -"tableau suivant. Celles-ci n'ont d'intérêt que si vous voulez définir vos " -"propres niveaux, avec des valeurs spécifiques par rapport aux niveaux " -"prédéfinis. Si vous définissez un niveau avec la même valeur numérique, il " -"écrase la valeur prédéfinie ; le nom prédéfini est perdu." - -#: howto/logging.rst:875 -msgid "Numeric value" -msgstr "Valeur numérique" - -#: howto/logging.rst:877 -msgid "50" -msgstr "50" - -#: howto/logging.rst:879 -msgid "40" -msgstr "40" - -#: howto/logging.rst:881 -msgid "30" -msgstr "30" - -#: howto/logging.rst:883 -msgid "20" -msgstr "20" - -#: howto/logging.rst:885 -msgid "10" -msgstr "10" - -#: howto/logging.rst:887 -msgid "``NOTSET``" -msgstr "``NOTSET``" - -#: howto/logging.rst:887 -msgid "0" -msgstr "0" - -#: howto/logging.rst:890 -msgid "" -"Levels can also be associated with loggers, being set either by the " -"developer or through loading a saved logging configuration. When a logging " -"method is called on a logger, the logger compares its own level with the " -"level associated with the method call. If the logger's level is higher than " -"the method call's, no logging message is actually generated. This is the " -"basic mechanism controlling the verbosity of logging output." -msgstr "" -"Les niveaux peuvent également être associés à des enregistreurs, étant " -"définis soit par le développeur, soit par le chargement d'une configuration " -"de journalisation enregistrée. Lorsqu'une méthode de journalisation est " -"appelée sur un enregistreur, l'enregistreur compare son propre niveau avec " -"le niveau associé à l'appel de méthode. Si le niveau de l'enregistreur est " -"supérieur à l'appel de méthode, aucun message de journalisation n'est " -"réellement généré. C'est le mécanisme de base contrôlant la verbosité de la " -"sortie de journalisation." - -#: howto/logging.rst:897 -msgid "" -"Logging messages are encoded as instances of the :class:`~logging.LogRecord` " -"class. When a logger decides to actually log an event, " -"a :class:`~logging.LogRecord` instance is created from the logging message." -msgstr "" -"Les messages de journalisation sont codés en tant qu'instances " -"de :class:`~logging.LogRecord`. Lorsqu'un enregistreur décide de réellement " -"enregistrer un événement, une instance de :class:`~logging.LogRecord` est " -"créée à partir du message de journalisation." - -#: howto/logging.rst:901 -msgid "" -"Logging messages are subjected to a dispatch mechanism through the use " -"of :dfn:`handlers`, which are instances of subclasses of " -"the :class:`Handler` class. Handlers are responsible for ensuring that a " -"logged message (in the form of a :class:`LogRecord`) ends up in a particular " -"location (or set of locations) which is useful for the target audience for " -"that message (such as end users, support desk staff, system administrators, " -"developers). Handlers are passed :class:`LogRecord` instances intended for " -"particular destinations. Each logger can have zero, one or more handlers " -"associated with it (via the :meth:`~Logger.addHandler` method " -"of :class:`Logger`). In addition to any handlers directly associated with a " -"logger, *all handlers associated with all ancestors of the logger* are " -"called to dispatch the message (unless the *propagate* flag for a logger is " -"set to a false value, at which point the passing to ancestor handlers stops)." -msgstr "" -"Les messages de journalisation sont soumis à un mécanisme d'expédition via " -"l'utilisation de :dfn:`handlers`, qui sont des instances de sous-classes de " -"la classe :class:`Handler`. Les gestionnaires sont chargés de s'assurer " -"qu'un message journalisé (sous la forme d'un :class:`LogRecord`) atterrit " -"dans un emplacement particulier (ou un ensemble d'emplacements) qui est " -"utile pour le public cible pour ce message (tels que les utilisateurs " -"finaux, le personnel chargé de l'assistance aux utilisateurs, les " -"administrateurs système ou les développeurs). Des instances " -"de :class:`LogRecord` adaptées à leur destination finale sont passées aux " -"gestionnaires destinées à des destinations particulières. Chaque " -"enregistreur peut avoir zéro, un ou plusieurs gestionnaires associés à celui-" -"ci (via la méthode :meth:`~Logger.addHandler` de :class:`Logger`). En plus " -"de tous les gestionnaires directement associés à un enregistreur, *tous les " -"gestionnaires associés à tous les ancêtres de l'enregistreur* sont appelés " -"pour envoyer le message (à moins que l'indicateur *propager* pour un " -"enregistreur soit défini sur la valeur ``False``, auquel cas le passage au " -"gestionnaire ancêtre s'arrête)." - -#: howto/logging.rst:915 -msgid "" -"Just as for loggers, handlers can have levels associated with them. A " -"handler's level acts as a filter in the same way as a logger's level does. " -"If a handler decides to actually dispatch an event, " -"the :meth:`~Handler.emit` method is used to send the message to its " -"destination. Most user-defined subclasses of :class:`Handler` will need to " -"override this :meth:`~Handler.emit`." -msgstr "" -"Tout comme pour les enregistreurs, les gestionnaires peuvent avoir des " -"niveaux associés. Le niveau d'un gestionnaire agit comme un filtre de la " -"même manière que le niveau d'un enregistreur. Si un gestionnaire décide de " -"réellement distribuer un événement, la méthode :meth:`~Handler.emit` est " -"utilisée pour envoyer le message à sa destination. La plupart des sous-" -"classes définies par l'utilisateur de :class:`Handler` devront remplacer " -"ce :meth:`~Handler.emit`." - -#: howto/logging.rst:924 -msgid "Custom Levels" -msgstr "Niveaux personnalisés" - -#: howto/logging.rst:926 -msgid "" -"Defining your own levels is possible, but should not be necessary, as the " -"existing levels have been chosen on the basis of practical experience. " -"However, if you are convinced that you need custom levels, great care should " -"be exercised when doing this, and it is possibly *a very bad idea to define " -"custom levels if you are developing a library*. That's because if multiple " -"library authors all define their own custom levels, there is a chance that " -"the logging output from such multiple libraries used together will be " -"difficult for the using developer to control and/or interpret, because a " -"given numeric value might mean different things for different libraries." -msgstr "" -"La définition de vos propres niveaux est possible, mais ne devrait pas être " -"nécessaire, car les niveaux existants ont été choisis par expérience. " -"Cependant, si vous êtes convaincu que vous avez besoin de niveaux " -"personnalisés, prenez grand soin à leur réalisation et il est pratiquement " -"certain que c’est *une très mauvaise idée de définir des niveaux " -"personnalisés si vous développez une bibliothèque*. Car si plusieurs auteurs " -"de bibliothèque définissent tous leurs propres niveaux personnalisés, il y a " -"une chance que la sortie de journalisation de ces multiples bibliothèques " -"utilisées ensemble sera difficile pour le développeur à utiliser pour " -"contrôler et/ou interpréter, car une valeur numérique donnée peut signifier " -"des choses différentes pour différentes bibliothèques." - -#: howto/logging.rst:939 -msgid "Useful Handlers" -msgstr "Gestionnaires utiles" - -#: howto/logging.rst:941 -msgid "" -"In addition to the base :class:`Handler` class, many useful subclasses are " -"provided:" -msgstr "" -"En plus de la classe mère :class:`Handler`, de nombreuses sous-classes " -"utiles sont fournies :" - -#: howto/logging.rst:944 -msgid "" -":class:`StreamHandler` instances send messages to streams (file-like " -"objects)." -msgstr "" -"Les instances :class:`StreamHandler` envoient des messages aux flux (objets " -"de type fichier)." - -#: howto/logging.rst:947 -msgid ":class:`FileHandler` instances send messages to disk files." -msgstr "" -"Les instances :class:`FileHandler` envoient des messages à des fichiers sur " -"le disque." - -#: howto/logging.rst:949 -msgid "" -":class:`~handlers.BaseRotatingHandler` is the base class for handlers that " -"rotate log files at a certain point. It is not meant to be instantiated " -"directly. Instead, use :class:`~handlers.RotatingFileHandler` " -"or :class:`~handlers.TimedRotatingFileHandler`." -msgstr "" -":class:`~handlers.BaseRotatingHandler` est la classe mère pour les " -"gestionnaires qui assurent la rotation des fichiers de journalisation à " -"partir d’un certain point. Elle n'est pas destinée à être instanciée " -"directement. Utilisez plutôt :class:`~handlers.RotatingFileHandler` " -"ou :class:`~handlers.TimedRotatingFileHandler`." - -#: howto/logging.rst:954 -msgid "" -":class:`~handlers.RotatingFileHandler` instances send messages to disk " -"files, with support for maximum log file sizes and log file rotation." -msgstr "" -"Les instances :class:`~handlers.RotatingFileHandler` envoient des messages à " -"des fichiers sur le disque, avec la prise en charge des tailles maximales de " -"fichiers de journalisation et de la rotation des fichiers de journalisation." - -#: howto/logging.rst:957 -msgid "" -":class:`~handlers.TimedRotatingFileHandler` instances send messages to disk " -"files, rotating the log file at certain timed intervals." -msgstr "" -"Les instances de :class:`~handlers.TimedRotatingFileHandler` envoient des " -"messages aux fichiers de disque, en permutant le fichier journal à " -"intervalles réguliers." - -#: howto/logging.rst:960 -msgid "" -":class:`~handlers.SocketHandler` instances send messages to TCP/IP sockets. " -"Since 3.4, Unix domain sockets are also supported." -msgstr "" -"Les instances de :class:`~handlers.SocketHandler` envoient des messages aux " -"connecteurs TCP/IP. Depuis 3.4, les connecteurs UNIX sont également pris en " -"charge." - -#: howto/logging.rst:963 -msgid "" -":class:`~handlers.DatagramHandler` instances send messages to UDP sockets. " -"Since 3.4, Unix domain sockets are also supported." -msgstr "" -"Les instances de :class:`~handlers.DatagramHandler` envoient des messages " -"aux connecteurs UDP. Depuis 3.4, les connecteurs UNIX sont également pris en " -"charge." - -#: howto/logging.rst:966 -msgid "" -":class:`~handlers.SMTPHandler` instances send messages to a designated email " -"address." -msgstr "" -"Les instances de :class:`~handlers.SMTPHandler` envoient des messages à une " -"adresse e-mail désignée." - -#: howto/logging.rst:969 -msgid "" -":class:`~handlers.SysLogHandler` instances send messages to a Unix syslog " -"daemon, possibly on a remote machine." -msgstr "" -"Les instances de :class:`~handlers.SysLogHandler` envoient des messages à un " -"*daemon* *syslog* UNIX, éventuellement sur un ordinateur distant." - -#: howto/logging.rst:972 -msgid "" -":class:`~handlers.NTEventLogHandler` instances send messages to a Windows NT/" -"2000/XP event log." -msgstr "" -"Les instances de :class:`~handlers.NTEventLogHandler` envoient des messages " -"à un journal des événements Windows NT/2000/XP." - -#: howto/logging.rst:975 -msgid "" -":class:`~handlers.MemoryHandler` instances send messages to a buffer in " -"memory, which is flushed whenever specific criteria are met." -msgstr "" -"Les instances de :class:`~handlers.MemoryHandler` envoient des messages à un " -"tampon en mémoire, qui est vidé chaque fois que des critères spécifiques " -"sont remplis." - -#: howto/logging.rst:978 -msgid "" -":class:`~handlers.HTTPHandler` instances send messages to an HTTP server " -"using either ``GET`` or ``POST`` semantics." -msgstr "" -"Les instances de :class:`~handlers.HTTPHandler` envoient des messages à un " -"serveur HTTP à l'aide de la sémantique ``GET`` ou ``POST``." - -#: howto/logging.rst:981 -msgid "" -":class:`~handlers.WatchedFileHandler` instances watch the file they are " -"logging to. If the file changes, it is closed and reopened using the file " -"name. This handler is only useful on Unix-like systems; Windows does not " -"support the underlying mechanism used." -msgstr "" -"Les instances de :class:`~handlers.WatchedFileHandler` surveillent le " -"fichier sur lequel elles se connectent. Si le fichier change, il est fermé " -"et rouvert à l'aide du nom de fichier. Ce gestionnaire n'est utile que sur " -"les systèmes de type UNIX ; Windows ne prend pas en charge le mécanisme sous-" -"jacent utilisé." - -#: howto/logging.rst:986 -msgid "" -":class:`~handlers.QueueHandler` instances send messages to a queue, such as " -"those implemented in the :mod:`queue` or :mod:`multiprocessing` modules." -msgstr "" -"Les instances de :class:`~handlers.QueueHandler` envoient des messages à une " -"file d'attente, telles que celles implémentées dans les modules :mod:`queue` " -"ou :mod:`multiprocessing`." - -#: howto/logging.rst:989 -#, fuzzy -msgid "" -":class:`NullHandler` instances do nothing with error messages. They are used " -"by library developers who want to use logging, but want to avoid the 'No " -"handlers could be found for logger *XXX*' message which can be displayed if " -"the library user has not configured logging. See :ref:`library-config` for " -"more information." -msgstr "" -"Les instances :class:`NullHandler` ne font rien avec les messages d'erreur. " -"Ils sont utilisés par les développeurs de bibliothèques qui veulent utiliser " -"la journalisation, mais qui veulent éviter les messages de type *No handlers " -"could be found for logger XXX*, affiché si celui qui utilise la bibliothèque " -"n'a pas configuré la journalisation. Voir :ref:`library-config` pour plus " -"d'informations." - -#: howto/logging.rst:995 -msgid "The :class:`NullHandler` class." -msgstr "La classe :class:`NullHandler`." - -#: howto/logging.rst:998 -msgid "The :class:`~handlers.QueueHandler` class." -msgstr "La classe :class:`~handlers.QueueHandler`." - -#: howto/logging.rst:1001 -msgid "" -"The :class:`NullHandler`, :class:`StreamHandler` and :class:`FileHandler` " -"classes are defined in the core logging package. The other handlers are " -"defined in a sub-module, :mod:`logging.handlers`. (There is also another sub-" -"module, :mod:`logging.config`, for configuration functionality.)" -msgstr "" -"Les classes :class:`NullHandler`, :class:`StreamHandler` " -"et :class:`FileHandler` sont définies dans le module de journalisation de " -"base. Les autres gestionnaires sont définis dans un sous-" -"module, :mod:`logging.handlers` (il existe également un autre sous-" -"module, :mod:`logging.config`, pour la fonctionnalité de configuration)." - -#: howto/logging.rst:1006 -msgid "" -"Logged messages are formatted for presentation through instances of " -"the :class:`Formatter` class. They are initialized with a format string " -"suitable for use with the % operator and a dictionary." -msgstr "" -"Les messages journalisés sont mis en forme pour la présentation via des " -"instances de la classe :class:`Formatter`. Ils sont initialisés avec une " -"chaîne de format appropriée pour une utilisation avec l'opérateur % et un " -"dictionnaire." - -#: howto/logging.rst:1010 -#, fuzzy -msgid "" -"For formatting multiple messages in a batch, instances " -"of :class:`BufferingFormatter` can be used. In addition to the format string " -"(which is applied to each message in the batch), there is provision for " -"header and trailer format strings." -msgstr "" -"Pour formater plusieurs messages dans un lot, des instances " -"de :class:`~handlers.BufferingFormatter` peuvent être utilisées. En plus de " -"la chaîne de format (qui est appliquée à chaque message dans le lot), il " -"existe des dispositions pour les chaînes de format d'en-tête et de fin." - -#: howto/logging.rst:1015 -msgid "" -"When filtering based on logger level and/or handler level is not enough, " -"instances of :class:`Filter` can be added to both :class:`Logger` " -"and :class:`Handler` instances (through their :meth:`~Handler.addFilter` " -"method). Before deciding to process a message further, both loggers and " -"handlers consult all their filters for permission. If any filter returns a " -"false value, the message is not processed further." -msgstr "" -"Lorsque le filtrage basé sur le niveau de l'enregistreur et/ou le niveau du " -"gestionnaire ne suffit pas, les instances de :class:`Filter` peuvent être " -"ajoutées aux deux instances de :class:`Logger` et :class:`Handler` (par le " -"biais de leur méthode :meth:`~Handler.addFilter`). Avant de décider de " -"traiter un message plus loin, les enregistreurs et les gestionnaires " -"consultent tous leurs filtres pour obtenir l'autorisation. Si un filtre " -"renvoie une valeur ``False``, le traitement du message est arrêté." - -#: howto/logging.rst:1022 -msgid "" -"The basic :class:`Filter` functionality allows filtering by specific logger " -"name. If this feature is used, messages sent to the named logger and its " -"children are allowed through the filter, and all others dropped." -msgstr "" -"La fonctionnalité de base :class:`Filter` permet de filtrer par nom de " -"*logger* spécifique. Si cette fonctionnalité est utilisée, les messages " -"envoyés à l'enregistreur nommé et à ses enfants sont autorisés via le filtre " -"et tous les autres sont abandonnés." - -#: howto/logging.rst:1030 -msgid "Exceptions raised during logging" -msgstr "Exceptions levées par la journalisation" - -#: howto/logging.rst:1032 -msgid "" -"The logging package is designed to swallow exceptions which occur while " -"logging in production. This is so that errors which occur while handling " -"logging events - such as logging misconfiguration, network or other similar " -"errors - do not cause the application using logging to terminate prematurely." -msgstr "" -"Le paquet de journalisation est conçu pour ne pas faire apparaître les " -"exceptions qui se produisent lors de la journalisation en production. Il " -"s'agit de sorte que les erreurs qui se produisent lors de la gestion des " -"événements de journalisation (telles qu'une mauvaise configuration de la " -"journalisation, une erreur réseau ou d'autres erreurs similaires) ne " -"provoquent pas l'arrêt de l'application utilisant la journalisation." - -#: howto/logging.rst:1037 -msgid "" -":class:`SystemExit` and :class:`KeyboardInterrupt` exceptions are never " -"swallowed. Other exceptions which occur during the :meth:`~Handler.emit` " -"method of a :class:`Handler` subclass are passed to " -"its :meth:`~Handler.handleError` method." -msgstr "" -"Les exceptions :class:`SystemExit` et :class:`KeyboardInterrupt` ne sont " -"jamais passées sous silence. Les autres exceptions qui se produisent pendant " -"la méthode :meth:`~Handler.emit` d'une sous-classe :class:`Handler` sont " -"passées à sa méthode :meth:`~Handler.handleError`." - -#: howto/logging.rst:1042 -msgid "" -"The default implementation of :meth:`~Handler.handleError` " -"in :class:`Handler` checks to see if a module-level " -"variable, :data:`raiseExceptions`, is set. If set, a traceback is printed " -"to :data:`sys.stderr`. If not set, the exception is swallowed." -msgstr "" -"L'implémentation par défaut de :meth:`~Handler.handleError` dans la " -"classe :class:`Handler` vérifie si une variable au niveau du " -"module, :data:`raiseExceptions`, est définie. Si cette valeur est définie, " -"la trace de la pile d'appels est affichée sur :data:`sys.stderr`. Si elle " -"n'est pas définie, l'exception est passée sous silence." - -#: howto/logging.rst:1048 -msgid "" -"The default value of :data:`raiseExceptions` is ``True``. This is because " -"during development, you typically want to be notified of any exceptions that " -"occur. It's advised that you set :data:`raiseExceptions` to ``False`` for " -"production usage." -msgstr "" -"La valeur par défaut de :data:`raiseExceptions` est ``True``. C'est parce " -"que pendant le développement, vous voulez généralement être notifié de " -"toutes les exceptions qui se produisent. Il est conseillé de " -"définir :data:`raiseExceptions` à ``False`` pour une utilisation en " -"production." - -#: howto/logging.rst:1058 -msgid "Using arbitrary objects as messages" -msgstr "Utilisation d'objets arbitraires comme messages" - -#: howto/logging.rst:1060 -msgid "" -"In the preceding sections and examples, it has been assumed that the message " -"passed when logging the event is a string. However, this is not the only " -"possibility. You can pass an arbitrary object as a message, and " -"its :meth:`~object.__str__` method will be called when the logging system " -"needs to convert it to a string representation. In fact, if you want to, you " -"can avoid computing a string representation altogether - for example, " -"the :class:`~handlers.SocketHandler` emits an event by pickling it and " -"sending it over the wire." -msgstr "" -"Dans les sections et exemples précédents, il a été supposé que le message " -"passé lors de la journalisation de l'événement est une chaîne. Cependant, ce " -"n'est pas la seule possibilité. Vous pouvez passer un objet arbitraire en " -"tant que message et sa méthode :meth:`~object.__str__` est appelée lorsque " -"le système de journalisation doit le convertir en une représentation sous " -"forme de chaîne. En fait, si vous le souhaitez, vous pouvez complètement " -"éviter de calculer une représentation sous forme de chaîne. Par exemple, les " -"gestionnaires :class:`~handlers.SocketHandler` émettent un événement en lui " -"appliquant *pickle* et en l'envoyant sur le réseau." - -#: howto/logging.rst:1071 -msgid "Optimization" -msgstr "Optimisation" - -#: howto/logging.rst:1073 -msgid "" -"Formatting of message arguments is deferred until it cannot be avoided. " -"However, computing the arguments passed to the logging method can also be " -"expensive, and you may want to avoid doing it if the logger will just throw " -"away your event. To decide what to do, you can call " -"the :meth:`~Logger.isEnabledFor` method which takes a level argument and " -"returns true if the event would be created by the Logger for that level of " -"call. You can write code like this::" -msgstr "" -"La mise en forme des arguments de message est différée jusqu'à ce qu'elle ne " -"puisse pas être évitée. Toutefois, le calcul des arguments passés à la " -"méthode de journalisation peut également être coûteux et vous voudrez peut-" -"être éviter de le faire si l'enregistreur va simplement jeter votre " -"événement. Pour décider de ce qu'il faut faire, vous pouvez appeler la " -"méthode :meth:`~Logger.isEnabledFor` qui prend en argument le niveau et " -"renvoie ``True`` si un événement est créé par l'enregistreur pour ce niveau " -"d'appel. Vous pouvez écrire un code qui ressemble à ça ::" - -#: howto/logging.rst:1085 -#, fuzzy -msgid "" -"so that if the logger's threshold is set above ``DEBUG``, the calls to " -"``expensive_func1`` and ``expensive_func2`` are never made." -msgstr "" -"de sorte que si le seuil du journaliseur est défini au-dessus de ``DEBUG``, " -"les appels à :func:`expensive_func1` et :func:`expensive_func2` ne sont " -"jamais faits." - -#: howto/logging.rst:1088 -msgid "" -"In some cases, :meth:`~Logger.isEnabledFor` can itself be more expensive " -"than you'd like (e.g. for deeply nested loggers where an explicit level is " -"only set high up in the logger hierarchy). In such cases (or if you want to " -"avoid calling a method in tight loops), you can cache the result of a call " -"to :meth:`~Logger.isEnabledFor` in a local or instance variable, and use " -"that instead of calling the method each time. Such a cached value would only " -"need to be recomputed when the logging configuration changes dynamically " -"while the application is running (which is not all that common)." -msgstr "" -"Dans certains cas, :meth:`~Logger.isEnabledFor` peut être plus coûteux que " -"vous le souhaitez (par exemple pour les enregistreurs profondément imbriqués " -"où un niveau explicite n'est défini que dans la hiérarchie des " -"enregistreurs). Dans de tels cas (ou si vous souhaitez éviter d'appeler une " -"méthode dans des boucles optimisées), vous pouvez mettre en cache le " -"résultat d'un appel à :meth:`~Logger.isEnabledFor` dans une variable locale " -"ou d'instance, et l'utiliser au lieu d'appeler la méthode à chaque fois. Une " -"telle valeur mise en cache ne doit être recalculée que lorsque la " -"configuration de journalisation change dynamiquement pendant l'exécution de " -"l'application (ce qui est rarement le cas)." - -#: howto/logging.rst:1097 -msgid "" -"There are other optimizations which can be made for specific applications " -"which need more precise control over what logging information is collected. " -"Here's a list of things you can do to avoid processing during logging which " -"you don't need:" -msgstr "" -"Il existe d'autres optimisations qui peuvent être faites pour des " -"applications spécifiques qui nécessitent un contrôle plus précis sur les " -"informations de journalisation collectées. Voici une liste de choses que " -"vous pouvez faire pour éviter le traitement pendant la journalisation dont " -"vous n'avez pas besoin :" - -#: howto/logging.rst:1103 -msgid "What you don't want to collect" -msgstr "Ce que vous ne voulez pas collecter" - -#: howto/logging.rst:1103 -msgid "How to avoid collecting it" -msgstr "Comment éviter de le collecter" - -#: howto/logging.rst:1105 -msgid "Information about where calls were made from." -msgstr "Informations sur l'endroit où les appels ont été faits." - -#: howto/logging.rst:1105 -msgid "" -"Set ``logging._srcfile`` to ``None``. This avoids " -"calling :func:`sys._getframe`, which may help to speed up your code in " -"environments like PyPy (which can't speed up code that " -"uses :func:`sys._getframe`)." -msgstr "" -"Définissez ``logging._srcfile`` à ``None``. Cela évite " -"d'appeler :func:`sys._getframe`, qui peut aider à accélérer votre code dans " -"des environnements comme PyPy (qui ne peut pas accélérer le code qui " -"utilise :func:`sys._getframe`)." - -#: howto/logging.rst:1111 -msgid "Threading information." -msgstr "Informations de *threading*." - -#: howto/logging.rst:1111 -msgid "Set ``logging.logThreads`` to ``False``." -msgstr "Mettez ``logging.logThreads`` à ``False``." - -#: howto/logging.rst:1113 -msgid "Current process ID (:func:`os.getpid`)" -msgstr "Identifiant du processus courant (résultat de :func:`os.getpid`)" - -#: howto/logging.rst:1113 -msgid "Set ``logging.logProcesses`` to ``False``." -msgstr "Mettez ``logging.logProcesses`` à ``False``." - -#: howto/logging.rst:1115 -msgid "" -"Current process name when using ``multiprocessing`` to manage multiple " -"processes." -msgstr "" -"Nom du processus actuel, si vous vous servez de ``multiprocessing`` pour " -"gérer plusieurs processus à la fois" - -#: howto/logging.rst:1115 -msgid "Set ``logging.logMultiprocessing`` to ``False``." -msgstr "Mettez ``logging.logMultiProcessing`` à ``False``." - -#: howto/logging.rst:1118 -msgid "Current :class:`asyncio.Task` name when using ``asyncio``." -msgstr "" - -#: howto/logging.rst:1118 -#, fuzzy -msgid "Set ``logging.logAsyncioTasks`` to ``False``." -msgstr "Mettez ``logging.logThreads`` à ``False``." - -#: howto/logging.rst:1122 -msgid "" -"Also note that the core logging module only includes the basic handlers. If " -"you don't import :mod:`logging.handlers` and :mod:`logging.config`, they " -"won't take up any memory." -msgstr "" -"Notez également que le module de journalisation principale inclut uniquement " -"les gestionnaires de base. Si vous n'importez pas :mod:`logging.handlers` " -"et :mod:`logging.config`, ils ne prendront pas de mémoire." - -#: howto/logging.rst:1129 -msgid "Other resources" -msgstr "Autres ressources" - -#: howto/logging.rst:1133 -msgid "Module :mod:`logging`" -msgstr "Module :mod:`logging`" - -#: howto/logging.rst:1134 -msgid "API reference for the logging module." -msgstr "Référence d'API pour le module de journalisation." - -#: howto/logging.rst:1136 -msgid "Module :mod:`logging.config`" -msgstr "Module :mod:`logging.config`" - -#: howto/logging.rst:1137 -msgid "Configuration API for the logging module." -msgstr "API de configuration pour le module de journalisation." - -#: howto/logging.rst:1139 -msgid "Module :mod:`logging.handlers`" -msgstr "Module :mod:`logging.handlers`" - -#: howto/logging.rst:1140 -msgid "Useful handlers included with the logging module." -msgstr "Gestionnaires utiles inclus avec le module de journalisation." - -#: howto/logging.rst:1142 -msgid ":ref:`A logging cookbook `" -msgstr ":ref:`A logging cookbook `" - -#~ msgid "" -#~ "The call to :func:`basicConfig` should come *before* any calls " -#~ "to :func:`debug`, :func:`info`, etc. Otherwise, those functions will " -#~ "call :func:`basicConfig` for you with the default options. As it's " -#~ "intended as a one-off simple configuration facility, only the first call " -#~ "will actually do anything: subsequent calls are effectively no-ops." -#~ msgstr "" -#~ "L'appel à :func:`basicConfig` doit être fait *avant* tout appel " -#~ "à :func:`debug`, :func:`info`, etc. Sinon, ces fonctions " -#~ "appelleront :func:`basicConfig` pour vous avec les options par défaut. " -#~ "Comme il s'agit d'un outil de configuration simple et unique, seul le " -#~ "premier appel fera quelque chose : les appels suivants ne feront rien." - -#~ msgid "Logging from multiple modules" -#~ msgstr "Employer *logging* à partir de différents modules" - -#~ msgid "" -#~ "If your program consists of multiple modules, here's an example of how " -#~ "you could organize logging in it::" -#~ msgstr "" -#~ "Si votre programme est composé de plusieurs modules, voici une façon " -#~ "d'organiser l'outil de journalisation ::" - -#~ msgid "If you run *myapp.py*, you should see this in *myapp.log*:" -#~ msgstr "Si vous exécutez *myapp.py*, vous verrez ceci dans *myapp.log* :" - -#~ msgid "" -#~ "which is hopefully what you were expecting to see. You can generalize " -#~ "this to multiple modules, using the pattern in *mylib.py*. Note that for " -#~ "this simple usage pattern, you won't know, by looking in the log file, " -#~ "*where* in your application your messages came from, apart from looking " -#~ "at the event description. If you want to track the location of your " -#~ "messages, you'll need to refer to the documentation beyond the tutorial " -#~ "level -- see :ref:`logging-advanced-tutorial`." -#~ msgstr "" -#~ "ce qui est normalement ce à quoi vous vous attendiez. Vous pouvez " -#~ "généraliser cela à plusieurs modules, en employant le motif de " -#~ "*mylib.py*. Remarquez qu'avec cette méthode simple, vous ne pourrez pas " -#~ "savoir, en lisant le fichier de log, *d'où* viennent les messages dans " -#~ "votre application, sauf dans la description de l'évènement. Si vous " -#~ "voulez suivre la localisation des messages, référez-vous à la " -#~ "documentation avancée :ref:`logging-advanced-tutorial`." - -#~ msgid "In Python 3.2 and later, the behaviour is as follows:" -#~ msgstr "Dans Python 3.2 et ultérieur, le comportement est le suivant :" - -#~ msgid "Process information." -#~ msgstr "Informations sur le processus." diff --git a/howto/mro.po b/howto/mro.po deleted file mode 100644 index 51be4135d3..0000000000 --- a/howto/mro.po +++ /dev/null @@ -1,603 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: howto/mro.rst:4 -msgid "The Python 2.3 Method Resolution Order" -msgstr "" - -#: howto/mro.rst:8 -msgid "" -"This is a historical document, provided as an appendix to the official " -"documentation. The Method Resolution Order discussed here was *introduced* " -"in Python 2.3, but it is still used in later versions -- including Python 3." -msgstr "" - -#: howto/mro.rst:13 -msgid "By `Michele Simionato `__." -msgstr "" - -#: howto/mro.rst:0 -msgid "Abstract" -msgstr "Résumé" - -#: howto/mro.rst:17 -msgid "" -"*This document is intended for Python programmers who want to understand the " -"C3 Method Resolution Order used in Python 2.3. Although it is not intended " -"for newbies, it is quite pedagogical with many worked out examples. I am " -"not aware of other publicly available documents with the same scope, " -"therefore it should be useful.*" -msgstr "" - -#: howto/mro.rst:23 -msgid "Disclaimer:" -msgstr "" - -#: howto/mro.rst:25 -msgid "" -"*I donate this document to the Python Software Foundation, under the Python " -"2.3 license. As usual in these circumstances, I warn the reader that what " -"follows* should *be correct, but I don't give any warranty. Use it at your " -"own risk and peril!*" -msgstr "" - -#: howto/mro.rst:30 -msgid "Acknowledgments:" -msgstr "" - -#: howto/mro.rst:32 -msgid "" -"*All the people of the Python mailing list who sent me their support. Paul " -"Foley who pointed out various imprecisions and made me to add the part on " -"local precedence ordering. David Goodger for help with the formatting in " -"reStructuredText. David Mertz for help with the editing. Finally, Guido van " -"Rossum who enthusiastically added this document to the official Python 2.3 " -"home-page.*" -msgstr "" - -#: howto/mro.rst:40 -msgid "The beginning" -msgstr "" - -#: howto/mro.rst:42 -msgid "*Felix qui potuit rerum cognoscere causas* -- Virgilius" -msgstr "" - -#: howto/mro.rst:44 -msgid "" -"Everything started with a post by Samuele Pedroni to the Python development " -"mailing list [#]_. In his post, Samuele showed that the Python 2.2 method " -"resolution order is not monotonic and he proposed to replace it with the C3 " -"method resolution order. Guido agreed with his arguments and therefore now " -"Python 2.3 uses C3. The C3 method itself has nothing to do with Python, " -"since it was invented by people working on Dylan and it is described in a " -"paper intended for lispers [#]_. The present paper gives a (hopefully) " -"readable discussion of the C3 algorithm for Pythonistas who want to " -"understand the reasons for the change." -msgstr "" - -#: howto/mro.rst:55 -msgid "" -"First of all, let me point out that what I am going to say only applies to " -"the *new style classes* introduced in Python 2.2: *classic classes* " -"maintain their old method resolution order, depth first and then left to " -"right. Therefore, there is no breaking of old code for classic classes; and " -"even if in principle there could be breaking of code for Python 2.2 new " -"style classes, in practice the cases in which the C3 resolution order " -"differs from the Python 2.2 method resolution order are so rare that no real " -"breaking of code is expected. Therefore:" -msgstr "" - -#: howto/mro.rst:64 -msgid "*Don't be scared!*" -msgstr "" - -#: howto/mro.rst:66 -msgid "" -"Moreover, unless you make strong use of multiple inheritance and you have " -"non-trivial hierarchies, you don't need to understand the C3 algorithm, and " -"you can easily skip this paper. On the other hand, if you really want to " -"know how multiple inheritance works, then this paper is for you. The good " -"news is that things are not as complicated as you might expect." -msgstr "" - -#: howto/mro.rst:73 -msgid "Let me begin with some basic definitions." -msgstr "" - -#: howto/mro.rst:75 -msgid "" -"Given a class C in a complicated multiple inheritance hierarchy, it is a non-" -"trivial task to specify the order in which methods are overridden, i.e. to " -"specify the order of the ancestors of C." -msgstr "" - -#: howto/mro.rst:79 -msgid "" -"The list of the ancestors of a class C, including the class itself, ordered " -"from the nearest ancestor to the furthest, is called the class precedence " -"list or the *linearization* of C." -msgstr "" - -#: howto/mro.rst:83 -msgid "" -"The *Method Resolution Order* (MRO) is the set of rules that construct the " -"linearization. In the Python literature, the idiom \"the MRO of C\" is also " -"used as a synonymous for the linearization of the class C." -msgstr "" - -#: howto/mro.rst:88 -msgid "" -"For instance, in the case of single inheritance hierarchy, if C is a " -"subclass of C1, and C1 is a subclass of C2, then the linearization of C is " -"simply the list [C, C1 , C2]. However, with multiple inheritance " -"hierarchies, the construction of the linearization is more cumbersome, since " -"it is more difficult to construct a linearization that respects *local " -"precedence ordering* and *monotonicity*." -msgstr "" - -#: howto/mro.rst:96 -msgid "" -"I will discuss the local precedence ordering later, but I can give the " -"definition of monotonicity here. A MRO is monotonic when the following is " -"true: *if C1 precedes C2 in the linearization of C, then C1 precedes C2 in " -"the linearization of any subclass of C*. Otherwise, the innocuous operation " -"of deriving a new class could change the resolution order of methods, " -"potentially introducing very subtle bugs. Examples where this happens will " -"be shown later." -msgstr "" - -#: howto/mro.rst:104 -msgid "" -"Not all classes admit a linearization. There are cases, in complicated " -"hierarchies, where it is not possible to derive a class such that its " -"linearization respects all the desired properties." -msgstr "" - -#: howto/mro.rst:108 -msgid "Here I give an example of this situation. Consider the hierarchy" -msgstr "" - -#: howto/mro.rst:116 -msgid "" -"which can be represented with the following inheritance graph, where I have " -"denoted with O the ``object`` class, which is the beginning of any hierarchy " -"for new style classes:" -msgstr "" - -#: howto/mro.rst:133 -msgid "" -"In this case, it is not possible to derive a new class C from A and B, since " -"X precedes Y in A, but Y precedes X in B, therefore the method resolution " -"order would be ambiguous in C." -msgstr "" - -#: howto/mro.rst:137 -msgid "" -"Python 2.3 raises an exception in this situation (TypeError: MRO conflict " -"among bases Y, X) forbidding the naive programmer from creating ambiguous " -"hierarchies. Python 2.2 instead does not raise an exception, but chooses an " -"*ad hoc* ordering (CABXYO in this case)." -msgstr "" - -#: howto/mro.rst:143 -msgid "The C3 Method Resolution Order" -msgstr "" - -#: howto/mro.rst:145 -msgid "" -"Let me introduce a few simple notations which will be useful for the " -"following discussion. I will use the shortcut notation::" -msgstr "" - -#: howto/mro.rst:150 -msgid "to indicate the list of classes [C1, C2, ... , CN]." -msgstr "" - -#: howto/mro.rst:152 -msgid "The *head* of the list is its first element::" -msgstr "" - -#: howto/mro.rst:156 -msgid "whereas the *tail* is the rest of the list::" -msgstr "" - -#: howto/mro.rst:160 -msgid "I shall also use the notation::" -msgstr "" - -#: howto/mro.rst:164 -msgid "to denote the sum of the lists [C] + [C1, C2, ... ,CN]." -msgstr "" - -#: howto/mro.rst:166 -msgid "Now I can explain how the MRO works in Python 2.3." -msgstr "" - -#: howto/mro.rst:168 -msgid "" -"Consider a class C in a multiple inheritance hierarchy, with C inheriting " -"from the base classes B1, B2, ... , BN. We want to compute the " -"linearization L[C] of the class C. The rule is the following:" -msgstr "" - -#: howto/mro.rst:173 -msgid "" -"*the linearization of C is the sum of C plus the merge of the linearizations " -"of the parents and the list of the parents.*" -msgstr "" - -#: howto/mro.rst:176 -msgid "In symbolic notation::" -msgstr "" - -#: howto/mro.rst:180 -msgid "" -"In particular, if C is the ``object`` class, which has no parents, the " -"linearization is trivial::" -msgstr "" - -#: howto/mro.rst:185 -msgid "" -"However, in general one has to compute the merge according to the following " -"prescription:" -msgstr "" - -#: howto/mro.rst:188 -msgid "" -"*take the head of the first list, i.e L[B1][0]; if this head is not in the " -"tail of any of the other lists, then add it to the linearization of C and " -"remove it from the lists in the merge, otherwise look at the head of the " -"next list and take it, if it is a good head. Then repeat the operation " -"until all the class are removed or it is impossible to find good heads. In " -"this case, it is impossible to construct the merge, Python 2.3 will refuse " -"to create the class C and will raise an exception.*" -msgstr "" - -#: howto/mro.rst:197 -msgid "" -"This prescription ensures that the merge operation *preserves* the ordering, " -"if the ordering can be preserved. On the other hand, if the order cannot be " -"preserved (as in the example of serious order disagreement discussed above) " -"then the merge cannot be computed." -msgstr "" - -#: howto/mro.rst:202 -msgid "" -"The computation of the merge is trivial if C has only one parent (single " -"inheritance); in this case::" -msgstr "" - -#: howto/mro.rst:207 -msgid "" -"However, in the case of multiple inheritance things are more cumbersome and " -"I don't expect you can understand the rule without a couple of examples ;-)" -msgstr "" - -#: howto/mro.rst:212 -msgid "Examples" -msgstr "Exemples" - -#: howto/mro.rst:214 -msgid "First example. Consider the following hierarchy:" -msgstr "" - -#: howto/mro.rst:224 -msgid "In this case the inheritance graph can be drawn as:" -msgstr "" - -#: howto/mro.rst:251 -msgid "The linearizations of O,D,E and F are trivial::" -msgstr "" - -#: howto/mro.rst:258 -msgid "The linearization of B can be computed as::" -msgstr "" - -#: howto/mro.rst:262 -msgid "" -"We see that D is a good head, therefore we take it and we are reduced to " -"compute ``merge(O,EO,E)``. Now O is not a good head, since it is in the " -"tail of the sequence EO. In this case the rule says that we have to skip to " -"the next sequence. Then we see that E is a good head; we take it and we are " -"reduced to compute ``merge(O,O)`` which gives O. Therefore::" -msgstr "" - -#: howto/mro.rst:270 -msgid "Using the same procedure one finds::" -msgstr "" - -#: howto/mro.rst:277 -msgid "Now we can compute::" -msgstr "" - -#: howto/mro.rst:287 -msgid "" -"In this example, the linearization is ordered in a pretty nice way according " -"to the inheritance level, in the sense that lower levels (i.e. more " -"specialized classes) have higher precedence (see the inheritance graph). " -"However, this is not the general case." -msgstr "" - -#: howto/mro.rst:292 -msgid "" -"I leave as an exercise for the reader to compute the linearization for my " -"second example:" -msgstr "" - -#: howto/mro.rst:303 -msgid "" -"The only difference with the previous example is the change B(D,E) --> " -"B(E,D); however even such a little modification completely changes the " -"ordering of the hierarchy:" -msgstr "" - -#: howto/mro.rst:332 -msgid "" -"Notice that the class E, which is in the second level of the hierarchy, " -"precedes the class C, which is in the first level of the hierarchy, i.e. E " -"is more specialized than C, even if it is in a higher level." -msgstr "" - -#: howto/mro.rst:336 -msgid "" -"A lazy programmer can obtain the MRO directly from Python 2.2, since in this " -"case it coincides with the Python 2.3 linearization. It is enough to invoke " -"the :meth:`~type.mro` method of class A:" -msgstr "" - -#: howto/mro.rst:345 -msgid "" -"Finally, let me consider the example discussed in the first section, " -"involving a serious order disagreement. In this case, it is straightforward " -"to compute the linearizations of O, X, Y, A and B:" -msgstr "" - -#: howto/mro.rst:357 -msgid "" -"However, it is impossible to compute the linearization for a class C that " -"inherits from A and B::" -msgstr "" - -#: howto/mro.rst:364 -msgid "" -"At this point we cannot merge the lists XYO and YXO, since X is in the tail " -"of YXO whereas Y is in the tail of XYO: therefore there are no good heads " -"and the C3 algorithm stops. Python 2.3 raises an error and refuses to " -"create the class C." -msgstr "" - -#: howto/mro.rst:370 -msgid "Bad Method Resolution Orders" -msgstr "" - -#: howto/mro.rst:372 -msgid "" -"A MRO is *bad* when it breaks such fundamental properties as local " -"precedence ordering and monotonicity. In this section, I will show that " -"both the MRO for classic classes and the MRO for new style classes in Python " -"2.2 are bad." -msgstr "" - -#: howto/mro.rst:377 -msgid "" -"It is easier to start with the local precedence ordering. Consider the " -"following example:" -msgstr "" - -#: howto/mro.rst:384 -msgid "with inheritance diagram" -msgstr "" - -#: howto/mro.rst:399 -msgid "" -"We see that class G inherits from F and E, with F *before* E: therefore we " -"would expect the attribute *G.remember2buy* to be inherited by " -"*F.remember2buy* and not by *E.remember2buy*: nevertheless Python 2.2 gives" -msgstr "" - -#: howto/mro.rst:407 -msgid "" -"This is a breaking of local precedence ordering since the order in the local " -"precedence list, i.e. the list of the parents of G, is not preserved in the " -"Python 2.2 linearization of G::" -msgstr "" - -#: howto/mro.rst:413 -msgid "" -"One could argue that the reason why F follows E in the Python 2.2 " -"linearization is that F is less specialized than E, since F is the " -"superclass of E; nevertheless the breaking of local precedence ordering is " -"quite non-intuitive and error prone. This is particularly true since it is " -"a different from old style classes:" -msgstr "" - -#: howto/mro.rst:425 -msgid "" -"In this case the MRO is GFEF and the local precedence ordering is preserved." -msgstr "" - -#: howto/mro.rst:428 -msgid "" -"As a general rule, hierarchies such as the previous one should be avoided, " -"since it is unclear if F should override E or vice-versa. Python 2.3 solves " -"the ambiguity by raising an exception in the creation of class G, " -"effectively stopping the programmer from generating ambiguous hierarchies. " -"The reason for that is that the C3 algorithm fails when the merge::" -msgstr "" - -#: howto/mro.rst:437 -msgid "" -"cannot be computed, because F is in the tail of EFO and E is in the tail of " -"FE." -msgstr "" - -#: howto/mro.rst:440 -msgid "" -"The real solution is to design a non-ambiguous hierarchy, i.e. to derive G " -"from E and F (the more specific first) and not from F and E; in this case " -"the MRO is GEF without any doubt." -msgstr "" - -#: howto/mro.rst:456 -msgid "" -"Python 2.3 forces the programmer to write good hierarchies (or, at least, " -"less error-prone ones)." -msgstr "" - -#: howto/mro.rst:459 -msgid "" -"On a related note, let me point out that the Python 2.3 algorithm is smart " -"enough to recognize obvious mistakes, as the duplication of classes in the " -"list of parents:" -msgstr "" - -#: howto/mro.rst:469 -msgid "" -"Python 2.2 (both for classic classes and new style classes) in this " -"situation, would not raise any exception." -msgstr "" - -#: howto/mro.rst:472 -msgid "" -"Finally, I would like to point out two lessons we have learned from this " -"example:" -msgstr "" - -#: howto/mro.rst:475 -msgid "" -"despite the name, the MRO determines the resolution order of attributes, not " -"only of methods;" -msgstr "" - -#: howto/mro.rst:478 -msgid "" -"the default food for Pythonistas is spam ! (but you already knew that ;-)" -msgstr "" - -#: howto/mro.rst:481 -msgid "" -"Having discussed the issue of local precedence ordering, let me now consider " -"the issue of monotonicity. My goal is to show that neither the MRO for " -"classic classes nor that for Python 2.2 new style classes is monotonic." -msgstr "" - -#: howto/mro.rst:486 -msgid "" -"To prove that the MRO for classic classes is non-monotonic is rather " -"trivial, it is enough to look at the diamond diagram:" -msgstr "" - -#: howto/mro.rst:500 -msgid "One easily discerns the inconsistency::" -msgstr "" - -#: howto/mro.rst:505 -msgid "" -"On the other hand, there are no problems with the Python 2.2 and 2.3 MROs, " -"they give both::" -msgstr "" - -#: howto/mro.rst:510 -msgid "" -"Guido points out in his essay [#]_ that the classic MRO is not so bad in " -"practice, since one can typically avoids diamonds for classic classes. But " -"all new style classes inherit from ``object``, therefore diamonds are " -"unavoidable and inconsistencies shows up in every multiple inheritance graph." -msgstr "" - -#: howto/mro.rst:516 -msgid "" -"The MRO of Python 2.2 makes breaking monotonicity difficult, but not " -"impossible. The following example, originally provided by Samuele Pedroni, " -"shows that the MRO of Python 2.2 is non-monotonic:" -msgstr "" - -#: howto/mro.rst:530 -msgid "" -"Here are the linearizations according to the C3 MRO (the reader should " -"verify these linearizations as an exercise and draw the inheritance " -"diagram ;-) ::" -msgstr "" - -#: howto/mro.rst:544 -msgid "" -"Python 2.2 gives exactly the same linearizations for A, B, C, D, E, K1, K2 " -"and K3, but a different linearization for Z::" -msgstr "" - -#: howto/mro.rst:549 -msgid "" -"It is clear that this linearization is *wrong*, since A comes before D " -"whereas in the linearization of K3 A comes *after* D. In other words, in K3 " -"methods derived by D override methods derived by A, but in Z, which still is " -"a subclass of K3, methods derived by A override methods derived by D! This " -"is a violation of monotonicity. Moreover, the Python 2.2 linearization of Z " -"is also inconsistent with local precedence ordering, since the local " -"precedence list of the class Z is [K1, K2, K3] (K2 precedes K3), whereas in " -"the linearization of Z K2 *follows* K3. These problems explain why the 2.2 " -"rule has been dismissed in favor of the C3 rule." -msgstr "" - -#: howto/mro.rst:561 -msgid "The end" -msgstr "" - -#: howto/mro.rst:563 -msgid "" -"This section is for the impatient reader, who skipped all the previous " -"sections and jumped immediately to the end. This section is for the lazy " -"programmer too, who didn't want to exercise her/his brain. Finally, it is " -"for the programmer with some hubris, otherwise s/he would not be reading a " -"paper on the C3 method resolution order in multiple inheritance " -"hierarchies ;-) These three virtues taken all together (and *not* " -"separately) deserve a prize: the prize is a short Python 2.2 script that " -"allows you to compute the 2.3 MRO without risk to your brain. Simply change " -"the last line to play with the various examples I have discussed in this " -"paper.::" -msgstr "" - -#: howto/mro.rst:656 -msgid "That's all folks," -msgstr "" - -#: howto/mro.rst:658 -msgid "enjoy !" -msgstr "" - -#: howto/mro.rst:662 -msgid "Resources" -msgstr "" - -#: howto/mro.rst:664 -msgid "" -"The thread on python-dev started by Samuele Pedroni: https://mail.python.org/" -"pipermail/python-dev/2002-October/029035.html" -msgstr "" - -#: howto/mro.rst:667 -msgid "" -"The paper *A Monotonic Superclass Linearization for Dylan*: https://doi.org/" -"10.1145/236337.236343" -msgstr "" - -#: howto/mro.rst:670 -msgid "" -"Guido van Rossum's essay, *Unifying types and classes in Python 2.2*: " -"https://web.archive.org/web/20140210194412/http://www.python.org/download/" -"releases/2.2.2/descrintro" -msgstr "" diff --git a/howto/perf_profiling.po b/howto/perf_profiling.po deleted file mode 100644 index 8af98a7159..0000000000 --- a/howto/perf_profiling.po +++ /dev/null @@ -1,294 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: howto/perf_profiling.rst:7 -msgid "Python support for the ``perf map`` compatible profilers" -msgstr "" - -#: howto/perf_profiling.rst:0 -msgid "author" -msgstr "auteur" - -#: howto/perf_profiling.rst:9 -msgid "Pablo Galindo" -msgstr "" - -#: howto/perf_profiling.rst:11 -msgid "" -"`The Linux perf profiler `_ and `samply " -"`_ are powerful tools that allow you to " -"profile and obtain information about the performance of your application. " -"Both tools have vibrant ecosystems that aid with the analysis of the data " -"they produce." -msgstr "" - -#: howto/perf_profiling.rst:16 -msgid "" -"The main problem with using these profilers with Python applications is that " -"they only get information about native symbols, that is, the names of " -"functions and procedures written in C. This means that the names and file " -"names of Python functions in your code will not appear in the profiler " -"output." -msgstr "" - -#: howto/perf_profiling.rst:21 -msgid "" -"Since Python 3.12, the interpreter can run in a special mode that allows " -"Python functions to appear in the output of compatible profilers. When this " -"mode is enabled, the interpreter will interpose a small piece of code " -"compiled on the fly before the execution of every Python function and it " -"will teach the profiler the relationship between this piece of code and the " -"associated Python function using :doc:`perf map files <../c-api/perfmaps>`." -msgstr "" - -#: howto/perf_profiling.rst:30 -msgid "" -"Support for profiling is available on Linux and macOS on select " -"architectures. Perf is available on Linux, while samply can be used on both " -"Linux and macOS. samply support on macOS is available starting from Python " -"3.15. Check the output of the ``configure`` build step or check the output " -"of ``python -m sysconfig | grep HAVE_PERF_TRAMPOLINE`` to see if your system " -"is supported." -msgstr "" - -#: howto/perf_profiling.rst:37 -msgid "For example, consider the following script:" -msgstr "" - -#: howto/perf_profiling.rst:56 -msgid "We can run ``perf`` to sample CPU stack traces at 9999 hertz::" -msgstr "" - -#: howto/perf_profiling.rst:60 -msgid "Then we can use ``perf report`` to analyze the data:" -msgstr "" - -#: howto/perf_profiling.rst:101 -msgid "" -"As you can see, the Python functions are not shown in the output, only " -"``_PyEval_EvalFrameDefault`` (the function that evaluates the Python " -"bytecode) shows up. Unfortunately that's not very useful because all Python " -"functions use the same C function to evaluate bytecode so we cannot know " -"which Python function corresponds to which bytecode-evaluating function." -msgstr "" - -#: howto/perf_profiling.rst:106 -msgid "" -"Instead, if we run the same experiment with ``perf`` support enabled we get:" -msgstr "" - -#: howto/perf_profiling.rst:153 -msgid "Using the samply profiler" -msgstr "" - -#: howto/perf_profiling.rst:155 -msgid "" -"samply is a modern profiler that can be used as an alternative to perf. It " -"uses the same perf map files that Python generates, making it compatible " -"with Python's profiling support. samply is particularly useful on macOS " -"where perf is not available." -msgstr "" - -#: howto/perf_profiling.rst:160 -msgid "" -"To use samply with Python, first install it following the instructions at " -"https://github.com/mstange/samply, then run::" -msgstr "" - -#: howto/perf_profiling.rst:165 -msgid "" -"This will open a web interface where you can analyze the profiling data " -"interactively. The advantage of samply is that it provides a modern web-" -"based interface for analyzing profiling data and works on both Linux and " -"macOS." -msgstr "" - -#: howto/perf_profiling.rst:170 -msgid "" -"On macOS, samply support requires Python 3.15 or later. Also on macOS, " -"samply can't profile signed Python executables due to restrictions by macOS. " -"You can profile with Python binaries that you've compiled yourself, or which " -"are unsigned or locally-signed (such as anything installed by Homebrew). In " -"order to attach to running processes on macOS, run ``samply setup`` once " -"(and every time samply is updated) to self-sign the samply binary." -msgstr "" - -#: howto/perf_profiling.rst:178 -msgid "How to enable ``perf`` profiling support" -msgstr "" - -#: howto/perf_profiling.rst:180 -msgid "" -"``perf`` profiling support can be enabled either from the start using the " -"environment variable :envvar:`PYTHONPERFSUPPORT` or the :option:`-X perf <-" -"X>` option, or dynamically using :func:`sys.activate_stack_trampoline` " -"and :func:`sys.deactivate_stack_trampoline`." -msgstr "" - -#: howto/perf_profiling.rst:186 -msgid "" -"The :mod:`!sys` functions take precedence over the :option:`!-X` option, " -"the :option:`!-X` option takes precedence over the environment variable." -msgstr "" - -#: howto/perf_profiling.rst:189 -msgid "Example, using the environment variable::" -msgstr "" - -#: howto/perf_profiling.rst:194 -msgid "Example, using the :option:`!-X` option::" -msgstr "" - -#: howto/perf_profiling.rst:199 -msgid "Example, using the :mod:`sys` APIs in file :file:`example.py`:" -msgstr "" - -#: howto/perf_profiling.rst:211 -msgid "...then::" -msgstr "" - -#: howto/perf_profiling.rst:218 -msgid "How to obtain the best results" -msgstr "" - -#: howto/perf_profiling.rst:220 -msgid "" -"For best results, keep frame pointers enabled. On supported GCC-compatible " -"toolchains, CPython builds itself with ``-fno-omit-frame-pointer`` and " -"similar flags (see :option:`--without-frame-pointers` for details). These " -"flags allow profilers to unwind using only the frame pointer and not on " -"DWARF debug information. This is because as the code that is interposed to " -"allow ``perf`` support is dynamically generated it doesn't have any DWARF " -"debugging information available." -msgstr "" - -#: howto/perf_profiling.rst:228 -msgid "" -"You can check if your system has been compiled with this flag by running::" -msgstr "" - -#: howto/perf_profiling.rst:232 -msgid "" -"If you don't see any output it means that your interpreter has not been " -"compiled with frame pointers and therefore it may not be able to show Python " -"functions in the output of ``perf``." -msgstr "" - -#: howto/perf_profiling.rst:238 -msgid "How to work without frame pointers" -msgstr "" - -#: howto/perf_profiling.rst:240 -msgid "" -"If you are working with a Python interpreter that has been compiled without " -"frame pointers, you can still use the ``perf`` profiler, but the overhead " -"will be a bit higher because Python needs to generate unwinding information " -"for every Python function call on the fly. Additionally, ``perf`` will take " -"more time to process the data because it will need to use the DWARF " -"debugging information to unwind the stack and this is a slow process." -msgstr "" - -#: howto/perf_profiling.rst:247 -msgid "" -"To enable this mode, you can use the environment " -"variable :envvar:`PYTHON_PERF_JIT_SUPPORT` or the :option:`-X perf_jit <-X>` " -"option, which will enable the JIT mode for the ``perf`` profiler." -msgstr "" - -#: howto/perf_profiling.rst:253 -msgid "" -"Due to a bug in the ``perf`` tool, only ``perf`` versions higher than v6.8 " -"will work with the JIT mode. The fix was also backported to the v6.7.2 " -"version of the tool." -msgstr "" - -#: howto/perf_profiling.rst:257 -msgid "" -"Note that when checking the version of the ``perf`` tool (which can be done " -"by running ``perf version``) you must take into account that some distros " -"add some custom version numbers including a ``-`` character. This means " -"that ``perf 6.7-3`` is not necessarily ``perf 6.7.3``." -msgstr "" - -#: howto/perf_profiling.rst:262 -msgid "" -"When using the perf JIT mode, you need an extra step before you can run " -"``perf report``. You need to call the ``perf inject`` command to inject the " -"JIT information into the ``perf.data`` file.::" -msgstr "" - -#: howto/perf_profiling.rst:270 -msgid "or using the environment variable::" -msgstr "" - -#: howto/perf_profiling.rst:276 -msgid "" -"``perf inject --jit`` command will read ``perf.data``, automatically pick up " -"the perf dump file that Python creates (in ``/tmp/perf-$PID.dump``), and " -"then create ``perf.jit.data`` which merges all the JIT information together. " -"It should also create a lot of ``jitted-XXXX-N.so`` files in the current " -"directory which are ELF images for all the JIT trampolines that were created " -"by Python." -msgstr "" - -#: howto/perf_profiling.rst:284 -msgid "" -"When using ``--call-graph dwarf``, the ``perf`` tool will take snapshots of " -"the stack of the process being profiled and save the information in the " -"``perf.data`` file. By default, the size of the stack dump is 8192 bytes, " -"but you can change the size by passing it after a comma like ``--call-graph " -"dwarf,16384``." -msgstr "" - -#: howto/perf_profiling.rst:290 -msgid "" -"The size of the stack dump is important because if the size is too small " -"``perf`` will not be able to unwind the stack and the output will be " -"incomplete. On the other hand, if the size is too big, then ``perf`` won't " -"be able to sample the process as frequently as it would like as the overhead " -"will be higher." -msgstr "" - -#: howto/perf_profiling.rst:296 -msgid "" -"The stack size is particularly important when profiling Python code compiled " -"with low optimization levels (like ``-O0``), as these builds tend to have " -"larger stack frames. If you are compiling Python with ``-O0`` and not seeing " -"Python functions in your profiling output, try increasing the stack dump " -"size to 65528 bytes (the maximum)::" -msgstr "" - -#: howto/perf_profiling.rst:304 -msgid "Different compilation flags can significantly impact stack sizes:" -msgstr "" - -#: howto/perf_profiling.rst:306 -msgid "" -"Builds with ``-O0`` typically have much larger stack frames than those with " -"``-O1`` or higher" -msgstr "" - -#: howto/perf_profiling.rst:307 -msgid "" -"Adding optimizations (``-O1``, ``-O2``, etc.) typically reduces stack size" -msgstr "" - -#: howto/perf_profiling.rst:308 -msgid "" -"Frame pointers (``-fno-omit-frame-pointer``) generally provide more reliable " -"stack unwinding" -msgstr "" diff --git a/howto/pyporting.po b/howto/pyporting.po deleted file mode 100644 index 26c213ff7f..0000000000 --- a/howto/pyporting.po +++ /dev/null @@ -1,976 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2021-12-11 16:27+0100\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: howto/pyporting.rst:7 -#, fuzzy -msgid "How to port Python 2 Code to Python 3" -msgstr "Portage de code Python 2 vers Python 3" - -#: howto/pyporting.rst:0 -msgid "author" -msgstr "auteur" - -#: howto/pyporting.rst:9 -msgid "Brett Cannon" -msgstr "Brett Cannon" - -#: howto/pyporting.rst:11 -msgid "" -"Python 2 reached its official end-of-life at the start of 2020. This means " -"that no new bug reports, fixes, or changes will be made to Python 2 - it's " -"no longer supported: see :pep:`373` and `status of Python versions `_." -msgstr "" - -#: howto/pyporting.rst:16 -msgid "" -"If you are looking to port an extension module instead of pure Python code, " -"please see :ref:`cporting-howto`." -msgstr "" -"Si vous cherchez à porter un module d'extension plutôt que du pur Python, " -"veuillez consulter :ref:`cporting-howto`." - -#: howto/pyporting.rst:19 -msgid "" -"The archived python-porting_ mailing list may contain some useful guidance." -msgstr "" - -#: howto/pyporting.rst:21 -msgid "" -"Since Python 3.11 the original porting guide was discontinued. You can find " -"the old guide in the `archive `_." -msgstr "" - -#: howto/pyporting.rst:27 -msgid "Third-party guides" -msgstr "" - -#: howto/pyporting.rst:29 -msgid "There are also multiple third-party guides that might be useful:" -msgstr "" - -#: howto/pyporting.rst:31 -msgid "`Guide by Fedora `_" -msgstr "" - -#: howto/pyporting.rst:32 -msgid "`PyCon 2020 tutorial `_" -msgstr "" - -#: howto/pyporting.rst:33 -msgid "" -"`Guide by DigitalOcean `_" -msgstr "" - -#: howto/pyporting.rst:34 -msgid "" -"`Guide by ActiveState `_" -msgstr "" - -#~ msgid "Abstract" -#~ msgstr "Résumé" - -#~ msgid "" -#~ "With Python 3 being the future of Python while Python 2 is still in " -#~ "active use, it is good to have your project available for both major " -#~ "releases of Python. This guide is meant to help you figure out how best " -#~ "to support both Python 2 & 3 simultaneously." -#~ msgstr "" -#~ "Python 3 étant le futur de Python tandis que Python 2 est encore " -#~ "activement utilisé, il est préférable de faire en sorte que votre projet " -#~ "soit disponible pour les deux versions majeures de Python. Ce guide est " -#~ "destiné à vous aider à comprendre comment gérer simultanément Python 2 & " -#~ "3." - -#~ msgid "" -#~ "If you would like to read one core Python developer's take on why Python " -#~ "3 came into existence, you can read Nick Coghlan's `Python 3 Q & A`_ or " -#~ "Brett Cannon's `Why Python 3 exists`_." -#~ msgstr "" -#~ "Si vous souhaitez lire l'avis d'un développeur principal de Python sur ce " -#~ "qui a motivé la création de Python 3, vous pouvez lire le `Python 3 Q & " -#~ "A`_ de Nick Coghlan ou bien `Why Python 3 exists`_ de Brett Cannon." - -#~ msgid "" -#~ "For help with porting, you can view the archived python-porting_ mailing " -#~ "list." -#~ msgstr "" -#~ "Vous pouvez lire les archives de la liste diffusion python-porting_ dans " -#~ "vos recherches sur les questions liées au portage." - -#~ msgid "The Short Explanation" -#~ msgstr "La version courte" - -#~ msgid "" -#~ "To make your project be single-source Python 2/3 compatible, the basic " -#~ "steps are:" -#~ msgstr "" -#~ "Afin de rendre votre projet compatible Python 2/3 avec le même code " -#~ "source, les étapes de base sont :" - -#~ msgid "Only worry about supporting Python 2.7" -#~ msgstr "Ne se préoccuper que du support de Python 2.7" - -#~ msgid "" -#~ "Make sure you have good test coverage (coverage.py_ can help; ``python -m " -#~ "pip install coverage``)" -#~ msgstr "" -#~ "S'assurer d'une bonne couverture des tests (coverage.py_ peut aider ; " -#~ "``python -m pip install coverage``)" - -#~ msgid "Learn the differences between Python 2 & 3" -#~ msgstr "Apprendre les différences entre Python 2 et 3" - -#~ msgid "" -#~ "Use Futurize_ (or Modernize_) to update your code (e.g. ``python -m pip " -#~ "install future``)" -#~ msgstr "" -#~ "Utiliser Futurize_ (ou Modernize_) pour mettre à jour votre code (par " -#~ "exemple ``python -m pip install future``)" - -#~ msgid "" -#~ "Use Pylint_ to help make sure you don't regress on your Python 3 support " -#~ "(``python -m pip install pylint``)" -#~ msgstr "" -#~ "Utilisez Pylint_ pour vous assurer que vous ne régressez pas sur votre " -#~ "prise en charge de Python 3 (``python -m pip install pylint``)" - -#~ msgid "" -#~ "Use caniusepython3_ to find out which of your dependencies are blocking " -#~ "your use of Python 3 (``python -m pip install caniusepython3``)" -#~ msgstr "" -#~ "Utiliser `caniusepython3`_ pour déterminer quelles sont, parmi les " -#~ "dépendances que vous utilisez, celles qui bloquent votre utilisation de " -#~ "Python 3 (``python -m pip install caniusepython3``)" - -#~ msgid "" -#~ "Once your dependencies are no longer blocking you, use continuous " -#~ "integration to make sure you stay compatible with Python 2 & 3 (tox_ can " -#~ "help test against multiple versions of Python; ``python -m pip install " -#~ "tox``)" -#~ msgstr "" -#~ "Une fois que vos dépendances ne sont plus un obstacle, utiliser " -#~ "l'intégration continue pour s'assurer que votre code demeure compatible " -#~ "Python 2 & 3 (tox_ peut aider à tester la comptabilité de sources avec " -#~ "plusieurs versions de Python; ``python -m pip install tox``)" - -#~ msgid "" -#~ "Consider using optional static type checking to make sure your type usage " -#~ "works in both Python 2 & 3 (e.g. use mypy_ to check your typing under " -#~ "both Python 2 & Python 3; ``python -m pip install mypy``)." -#~ msgstr "" -#~ "Envisager l'utilisation d'un vérifieur de type statique afin de vous " -#~ "assurer que votre façon d'utiliser les types est compatible avec Python 2 " -#~ "et 3 (par exemple en utilisant mypy_ pour vérifier votre typage sous " -#~ "Python 2 et 3 ; ``python -m pip install mypy``)." - -#~ msgid "" -#~ "Note: Using ``python -m pip install`` guarantees that the ``pip`` you " -#~ "invoke is the one installed for the Python currently in use, whether it " -#~ "be a system-wide ``pip`` or one installed within a :ref:`virtual " -#~ "environment `." -#~ msgstr "" -#~ "Note : L'utilisation de ``python -m pip install`` garantit que le ``pip`` " -#~ "invoqué est bien celui installé avec la version de Python que vous " -#~ "utilisez, que ce soit un ``pip`` du système ou un ``pip`` installé dans " -#~ "un :ref:`environnement virtuel `." - -#~ msgid "Details" -#~ msgstr "Détails" - -#~ msgid "" -#~ "A key point about supporting Python 2 & 3 simultaneously is that you can " -#~ "start **today**! Even if your dependencies are not supporting Python 3 " -#~ "yet that does not mean you can't modernize your code **now** to support " -#~ "Python 3. Most changes required to support Python 3 lead to cleaner code " -#~ "using newer practices even in Python 2 code." -#~ msgstr "" -#~ "Un point clé du support simultané de Python 2 et 3 est qu'il vous est " -#~ "possible de commencer **dès aujourd'hui** ! Même si vos dépendances ne " -#~ "sont pas encore compatibles Python 3, vous pouvez moderniser votre code " -#~ "**dès maintenant** pour gérer Python 3. La plupart des modifications " -#~ "nécessaires à la compatibilité Python 3 donnent un code plus propre " -#~ "utilisant une syntaxe plus récente, même dans du code Python 2." - -#~ msgid "" -#~ "Another key point is that modernizing your Python 2 code to also support " -#~ "Python 3 is largely automated for you. While you might have to make some " -#~ "API decisions thanks to Python 3 clarifying text data versus binary data, " -#~ "the lower-level work is now mostly done for you and thus can at least " -#~ "benefit from the automated changes immediately." -#~ msgstr "" -#~ "Un autre point important est que la modernisation de votre code Python 2 " -#~ "pour le rendre compatible Python 3 est pratiquement automatique. Bien " -#~ "qu'il soit possible d'avoir à effectuer des changements d'API compte-tenu " -#~ "de la clarification de la gestion des données textuelles et binaires dans " -#~ "Python 3, le travail de bas niveau est en grande partie fait pour vous et " -#~ "vous pouvez ainsi bénéficiez de ces modifications automatiques " -#~ "immédiatement." - -#~ msgid "" -#~ "Keep those key points in mind while you read on about the details of " -#~ "porting your code to support Python 2 & 3 simultaneously." -#~ msgstr "" -#~ "Gardez ces points clés en tête pendant que vous lisez les détails ci-" -#~ "dessous concernant le portage de votre code vers une compatibilité " -#~ "simultanée Python 2 et 3." - -#~ msgid "Drop support for Python 2.6 and older" -#~ msgstr "Abandon de la compatibilité Python 2.6 et antérieures" - -#~ msgid "" -#~ "While you can make Python 2.5 work with Python 3, it is **much** easier " -#~ "if you only have to work with Python 2.7. If dropping Python 2.5 is not " -#~ "an option then the six_ project can help you support Python 2.5 & 3 " -#~ "simultaneously (``python -m pip install six``). Do realize, though, that " -#~ "nearly all the projects listed in this HOWTO will not be available to you." -#~ msgstr "" -#~ "Bien qu'il soit possible de rendre Python 2.5 compatible avec Python 3, " -#~ "il est **beaucoup** plus simple de n'avoir qu'à travailler avec Python " -#~ "2.7. Si abandonner Python 2.5 n'est pas une option, alors le projet six_ " -#~ "peut vous aider à gérer simultanément Python 2.5 et 3 (``python -m pip " -#~ "install six``). Néanmoins, soyez conscient que la quasi-totalité des " -#~ "projets listés dans ce guide pratique ne seront pas applicables à votre " -#~ "situation." - -#~ msgid "" -#~ "If you are able to skip Python 2.5 and older, then the required changes " -#~ "to your code should continue to look and feel like idiomatic Python code. " -#~ "At worst you will have to use a function instead of a method in some " -#~ "instances or have to import a function instead of using a built-in one, " -#~ "but otherwise the overall transformation should not feel foreign to you." -#~ msgstr "" -#~ "Si vous pouvez ignorer Python 2.5 et antérieur, les changements " -#~ "nécessaires à appliquer à votre code devraient encore ressembler à vos " -#~ "yeux à du code Python idiomatique. Dans le pire cas, vous devrez utiliser " -#~ "une fonction plutôt qu'une méthode dans certains cas, ou bien vous devrez " -#~ "importer une fonction plutôt qu'utiliser une fonction native, mais le " -#~ "reste du temps le code transformé devrait vous rester familier." - -#~ msgid "" -#~ "But you should aim for only supporting Python 2.7. Python 2.6 is no " -#~ "longer freely supported and thus is not receiving bugfixes. This means " -#~ "**you** will have to work around any issues you come across with Python " -#~ "2.6. There are also some tools mentioned in this HOWTO which do not " -#~ "support Python 2.6 (e.g., Pylint_), and this will become more commonplace " -#~ "as time goes on. It will simply be easier for you if you only support the " -#~ "versions of Python that you have to support." -#~ msgstr "" -#~ "Mais nous vous conseillons de viser seulement un support de Python 2.7. " -#~ "Python 2.6 n'est plus supporté gratuitement et par conséquent ne reçoit " -#~ "plus aucun correctif. Cela signifie que **vous** devrez trouver des " -#~ "solutions de contournement aux problèmes que vous rencontrez avec Python " -#~ "2.6. Il existe en outre des outils mentionnés dans ce guide pratique qui " -#~ "ne supportent pas Python 2.6 (par exemple Pylint_), ce qui sera de plus " -#~ "en plus courant au fil du temps. Il est simplement plus facile pour vous " -#~ "de n'assurer une compatibilité qu'avec les versions de Python que vous " -#~ "avez l'obligation de gérer." - -#~ msgid "" -#~ "Make sure you specify the proper version support in your ``setup.py`` file" -#~ msgstr "" -#~ "Assurez vous de spécifier la bonne version supportée dans le fichier " -#~ "``setup.py``" - -#~ msgid "" -#~ "In your ``setup.py`` file you should have the proper `trove classifier`_ " -#~ "specifying what versions of Python you support. As your project does not " -#~ "support Python 3 yet you should at least have ``Programming Language :: " -#~ "Python :: 2 :: Only`` specified. Ideally you should also specify each " -#~ "major/minor version of Python that you do support, e.g. ``Programming " -#~ "Language :: Python :: 2.7``." -#~ msgstr "" -#~ "Votre fichier ``setup.py`` devrait contenir le bon `trove classifier`_ " -#~ "spécifiant les versions de Python avec lesquelles vous êtes compatible. " -#~ "Comme votre projet ne supporte pas encore Python 3, vous devriez au moins " -#~ "spécifier ``Programming Language :: Python :: 2 :: Only``. Dans l'idéal " -#~ "vous devriez indiquer chaque version majeure/mineure de Python que vous " -#~ "gérez, par exemple ``Programming Language :: Python :: 2.7``." - -#~ msgid "Have good test coverage" -#~ msgstr "Obtenir une bonne couverture de code" - -#~ msgid "" -#~ "Once you have your code supporting the oldest version of Python 2 you " -#~ "want it to, you will want to make sure your test suite has good coverage. " -#~ "A good rule of thumb is that if you want to be confident enough in your " -#~ "test suite that any failures that appear after having tools rewrite your " -#~ "code are actual bugs in the tools and not in your code. If you want a " -#~ "number to aim for, try to get over 80% coverage (and don't feel bad if " -#~ "you find it hard to get better than 90% coverage). If you don't already " -#~ "have a tool to measure test coverage then coverage.py_ is recommended." -#~ msgstr "" -#~ "Une fois que votre code est compatible avec la plus ancienne version de " -#~ "Python 2 que vous souhaitez, vous devez vous assurer que votre suite de " -#~ "test a une couverture suffisante. Une bonne règle empirique consiste à " -#~ "avoir suffisamment confiance en la suite de test pour qu'une erreur " -#~ "apparaissant après la réécriture du code par les outils automatiques " -#~ "résulte de bogues de ces derniers et non de votre code. Si vous souhaitez " -#~ "une valeur cible, essayez de dépasser les 80 % de couverture (et ne vous " -#~ "sentez pas coupable si vous trouvez difficile de faire mieux que 90 % de " -#~ "couverture). Si vous ne disposez pas encore d'un outil pour mesurer la " -#~ "couverture de code, coverage.py_ est recommandé." - -#~ msgid "" -#~ "Once you have your code well-tested you are ready to begin porting your " -#~ "code to Python 3! But to fully understand how your code is going to " -#~ "change and what you want to look out for while you code, you will want to " -#~ "learn what changes Python 3 makes in terms of Python 2. Typically the two " -#~ "best ways of doing that is reading the :ref:`\"What's New\" ` doc for each release of Python 3 and the `Porting to Python 3`_ " -#~ "book (which is free online). There is also a handy `cheat sheet`_ from " -#~ "the Python-Future project." -#~ msgstr "" -#~ "Une fois que votre code est bien testé, vous êtes prêt à démarrer votre " -#~ "portage vers Python 3 ! Mais afin de comprendre comment votre code va " -#~ "changer et à quoi s'intéresser spécifiquement pendant que vous codez, " -#~ "vous aurez sûrement envie de découvrir quels sont les changements " -#~ "introduits par Python 3 par rapport à Python 2. Pour atteindre cet " -#~ "objectif, les deux meilleurs moyens sont de lire le " -#~ "document :ref:`whatsnew-index` de chaque version de Python 3 et le livre " -#~ "`Porting to Python 3`_ (gratuit en ligne, en anglais). Il y a également " -#~ "une « antisèche » (`cheat sheet`_, ressource en anglais) très pratique du " -#~ "projet Python-Future." - -#~ msgid "Update your code" -#~ msgstr "Mettre à jour votre code" - -#~ msgid "" -#~ "Once you feel like you know what is different in Python 3 compared to " -#~ "Python 2, it's time to update your code! You have a choice between two " -#~ "tools in porting your code automatically: Futurize_ and Modernize_. Which " -#~ "tool you choose will depend on how much like Python 3 you want your code " -#~ "to be. Futurize_ does its best to make Python 3 idioms and practices " -#~ "exist in Python 2, e.g. backporting the ``bytes`` type from Python 3 so " -#~ "that you have semantic parity between the major versions of Python. " -#~ "Modernize_, on the other hand, is more conservative and targets a Python " -#~ "2/3 subset of Python, directly relying on six_ to help provide " -#~ "compatibility. As Python 3 is the future, it might be best to consider " -#~ "Futurize to begin adjusting to any new practices that Python 3 introduces " -#~ "which you are not accustomed to yet." -#~ msgstr "" -#~ "Une fois que vous pensez en savoir suffisamment sur les différences entre " -#~ "Python 3 et Python 2, il est temps de mettre à jour votre code ! Vous " -#~ "avez le choix entre deux outils pour porter votre code automatiquement : " -#~ "Futurize_ et Modernize_. Le choix de l'outil dépend de la dose de Python " -#~ "3 que vous souhaitez introduire dans votre code. Futurize_ s'efforce " -#~ "d'introduire les idiomes et pratiques de Python 3 dans Python 2, par " -#~ "exemple en réintroduisant le type ``bytes`` de Python 3 de telle sorte " -#~ "que la sémantique soit identique entre les deux versions majeures de " -#~ "Python. En revanche, Modernize_ est plus conservateur et vise un sous-" -#~ "ensemble d'instructions Python 2/3, en s'appuyant directement sur six_ " -#~ "pour la compatibilité. Python 3 étant le futur de Python, il pourrait " -#~ "être préférable d'utiliser *Futurize* afin de commencer à s'ajuster aux " -#~ "nouvelles pratiques introduites par Python 3 avec lesquelles vous n'êtes " -#~ "pas encore habitué." - -#~ msgid "" -#~ "Regardless of which tool you choose, they will update your code to run " -#~ "under Python 3 while staying compatible with the version of Python 2 you " -#~ "started with. Depending on how conservative you want to be, you may want " -#~ "to run the tool over your test suite first and visually inspect the diff " -#~ "to make sure the transformation is accurate. After you have transformed " -#~ "your test suite and verified that all the tests still pass as expected, " -#~ "then you can transform your application code knowing that any tests which " -#~ "fail is a translation failure." -#~ msgstr "" -#~ "Indépendamment de l'outil sur lequel se porte votre choix, celui-ci " -#~ "mettra à jour votre code afin qu'il puisse être exécuté par Python 3 tout " -#~ "en maintenant sa compatibilité avec la version de Python 2 dont vous êtes " -#~ "parti. En fonction du niveau de prudence que vous visez, vous pouvez " -#~ "exécuter l'outil sur votre suite de test d'abord puis inspecter " -#~ "visuellement la différence afin de vous assurer que la transformation est " -#~ "exacte. Après avoir transformé votre suite de test et vérifié que tous " -#~ "les tests s'exécutent comme attendu, vous pouvez transformer le code de " -#~ "votre application avec l'assurance que chaque test qui échoue correspond " -#~ "à un échec de traduction." - -#~ msgid "" -#~ "Unfortunately the tools can't automate everything to make your code work " -#~ "under Python 3 and so there are a handful of things you will need to " -#~ "update manually to get full Python 3 support (which of these steps are " -#~ "necessary vary between the tools). Read the documentation for the tool " -#~ "you choose to use to see what it fixes by default and what it can do " -#~ "optionally to know what will (not) be fixed for you and what you may have " -#~ "to fix on your own (e.g. using ``io.open()`` over the built-in ``open()`` " -#~ "function is off by default in Modernize). Luckily, though, there are only " -#~ "a couple of things to watch out for which can be considered large issues " -#~ "that may be hard to debug if not watched for." -#~ msgstr "" -#~ "Malheureusement les outils ne peuvent pas automatiser tous les " -#~ "changements requis pour permettre à votre code de s'exécuter sous Python " -#~ "3 et il y a donc quelques points sur lesquels vous devrez travailler " -#~ "manuellement afin d'atteindre la compatibilité totale Python 3 (les " -#~ "étapes nécessaires peuvent varier en fonction de l'outil utilisé). Lisez " -#~ "la documentation de l'outil que vous avez choisi afin d'identifier ce " -#~ "qu'il corrige par défaut et ce qui peut être appliqué de façon " -#~ "optionnelle afin de savoir ce qui sera (ou non) corrigé pour vous ou ce " -#~ "que vous devrez modifier vous-même (par exemple, le remplacement " -#~ "``io.open()`` plutôt que la fonction native ``open()`` est inactif par " -#~ "défaut dans *Modernize*). Heureusement, il n'y a que quelques points à " -#~ "surveiller qui peuvent réellement être considérés comme des problèmes " -#~ "difficiles à déboguer si vous n'y prêtez pas attention." - -#~ msgid "Division" -#~ msgstr "Division" - -#~ msgid "" -#~ "In Python 3, ``5 / 2 == 2.5`` and not ``2``; all division between ``int`` " -#~ "values result in a ``float``. This change has actually been planned since " -#~ "Python 2.2 which was released in 2002. Since then users have been " -#~ "encouraged to add ``from __future__ import division`` to any and all " -#~ "files which use the ``/`` and ``//`` operators or to be running the " -#~ "interpreter with the ``-Q`` flag. If you have not been doing this then " -#~ "you will need to go through your code and do two things:" -#~ msgstr "" -#~ "Dans Python 3, ``5 / 2 == 2.5`` et non ``2``; toutes les divisions entre " -#~ "des valeurs ``int`` renvoient un ``float``. Ce changement était en " -#~ "réalité planifié depuis Python 2.2, publié en 2002. Depuis cette date, " -#~ "les utilisateurs ont été encouragés à ajouter ``from __future__ import " -#~ "division`` à tous les fichiers utilisant les opérateurs ``/`` et ``//`` " -#~ "ou à exécuter l'interpréteur avec l'option ``-Q``. Si vous n'avez pas " -#~ "suivi cette recommandation, vous devrez manuellement modifier votre code " -#~ "et effectuer deux changements :" - -#~ msgid "Add ``from __future__ import division`` to your files" -#~ msgstr "Ajouter ``from __future__ import division`` à vos fichiers" - -#~ msgid "" -#~ "Update any division operator as necessary to either use ``//`` to use " -#~ "floor division or continue using ``/`` and expect a float" -#~ msgstr "" -#~ "Remplacer tous les opérateurs de division par ``//`` pour la division " -#~ "entière, le cas échéant, ou utiliser ``/`` et vous attendre à un résultat " -#~ "flottant" - -#~ msgid "" -#~ "The reason that ``/`` isn't simply translated to ``//`` automatically is " -#~ "that if an object defines a ``__truediv__`` method but not " -#~ "``__floordiv__`` then your code would begin to fail (e.g. a user-defined " -#~ "class that uses ``/`` to signify some operation but not ``//`` for the " -#~ "same thing or at all)." -#~ msgstr "" -#~ "La raison pour laquelle ``/`` n'est pas simplement remplacé par ``//`` " -#~ "automatiquement est que si un objet définit une méthode ``__truediv__`` " -#~ "mais pas de méthode ``__floordiv__``, alors votre code pourrait produire " -#~ "une erreur (par exemple, une classe définie par l'utilisateur qui utilise " -#~ "``/`` pour définir une opération quelconque mais pour laquelle ``//`` n'a " -#~ "pas du tout la même signification, voire n'est pas utilisé du tout)." - -#~ msgid "Text versus binary data" -#~ msgstr "Texte et données binaires" - -#~ msgid "" -#~ "In Python 2 you could use the ``str`` type for both text and binary data. " -#~ "Unfortunately this confluence of two different concepts could lead to " -#~ "brittle code which sometimes worked for either kind of data, sometimes " -#~ "not. It also could lead to confusing APIs if people didn't explicitly " -#~ "state that something that accepted ``str`` accepted either text or binary " -#~ "data instead of one specific type. This complicated the situation " -#~ "especially for anyone supporting multiple languages as APIs wouldn't " -#~ "bother explicitly supporting ``unicode`` when they claimed text data " -#~ "support." -#~ msgstr "" -#~ "Dans Python 2, il était possible d'utiliser le type ``str`` pour du texte " -#~ "et pour des données binaires. Malheureusement cet amalgame entre deux " -#~ "concepts différents peut conduire à du code fragile pouvant parfois " -#~ "fonctionner pour les deux types de données et parfois non. Cela a " -#~ "également conduit à des API confuses si les auteurs ne déclaraient pas " -#~ "explicitement que quelque chose qui acceptait ``str`` était compatible " -#~ "avec du texte ou des données binaires et pas un seul des deux types. Cela " -#~ "a compliqué la situation pour les personnes devant gérer plusieurs " -#~ "langages avec des API qui ne se préoccupaient pas de la gestion de " -#~ "``unicode`` lorsqu'elles affirmaient être compatibles avec des données au " -#~ "format texte." - -#~ msgid "" -#~ "To make the distinction between text and binary data clearer and more " -#~ "pronounced, Python 3 did what most languages created in the age of the " -#~ "internet have done and made text and binary data distinct types that " -#~ "cannot blindly be mixed together (Python predates widespread access to " -#~ "the internet). For any code that deals only with text or only binary " -#~ "data, this separation doesn't pose an issue. But for code that has to " -#~ "deal with both, it does mean you might have to now care about when you " -#~ "are using text compared to binary data, which is why this cannot be " -#~ "entirely automated." -#~ msgstr "" -#~ "Afin de rendre la distinction entre texte et données binaires claire et " -#~ "prononcée, Python 3 a suivi la voie pavée par la plupart des langages " -#~ "créés à l'ère d'Internet et a séparé les types texte et données binaires " -#~ "de telle sorte qu'il ne soit plus possible de les confondre (Python est " -#~ "antérieur à la démocratisation de l'accès à Internet). Cette séparation " -#~ "ne pose pas de problème pour du code ne gérant soit que du texte, soit " -#~ "que des données binaires. Cependant un code source devant gérer les deux " -#~ "doit désormais se préoccuper du type des données manipulées, ce qui " -#~ "explique que ce processus ne peut pas être entièrement automatisé." - -#~ msgid "" -#~ "To start, you will need to decide which APIs take text and which take " -#~ "binary (it is **highly** recommended you don't design APIs that can take " -#~ "both due to the difficulty of keeping the code working; as stated earlier " -#~ "it is difficult to do well). In Python 2 this means making sure the APIs " -#~ "that take text can work with ``unicode`` and those that work with binary " -#~ "data work with the ``bytes`` type from Python 3 (which is a subset of " -#~ "``str`` in Python 2 and acts as an alias for ``bytes`` type in Python 2). " -#~ "Usually the biggest issue is realizing which methods exist on which types " -#~ "in Python 2 & 3 simultaneously (for text that's ``unicode`` in Python 2 " -#~ "and ``str`` in Python 3, for binary that's ``str``/``bytes`` in Python 2 " -#~ "and ``bytes`` in Python 3). The following table lists the **unique** " -#~ "methods of each data type across Python 2 & 3 (e.g., the ``decode()`` " -#~ "method is usable on the equivalent binary data type in either Python 2 or " -#~ "3, but it can't be used by the textual data type consistently between " -#~ "Python 2 and 3 because ``str`` in Python 3 doesn't have the method). Do " -#~ "note that as of Python 3.5 the ``__mod__`` method was added to the bytes " -#~ "type." -#~ msgstr "" -#~ "Pour commencer, vous devrez choisir quelles API travaillent sur du texte " -#~ "et lesquelles travaillent avec des données binaires (il est **fortement** " -#~ "recommandé de ne pas concevoir d'API qui gèrent les deux types compte-" -#~ "tenu de la difficulté supplémentaire que cela induit). Dans Python 2, " -#~ "cela signifie s'assurer que les API recevant du texte en entrée peuvent " -#~ "gérer ``unicode`` et celles qui reçoivent des données binaires " -#~ "fonctionnent avec le type ``bytes`` de Python 3 (qui est un sous-ensemble " -#~ "de ``str`` dans Python 2 et opère comme un alias du type ``bytes`` de " -#~ "Python 2). En général, le principal problème consiste à inventorier " -#~ "quelles méthodes existent et opèrent sur quel type dans Python & 3 " -#~ "simultanément (pour le texte, il s'agit de ``unicode`` dans Python 2 et " -#~ "``str`` dans Python 3, pour le binaire il s'agit de ``str``/``bytes`` " -#~ "dans Python 2 et ``bytes`` dans Python 3). Le tableau ci-dessous liste " -#~ "les méthodes **spécifiques** à chaque type de données dans Python 2 et 3 " -#~ "(par exemple, la méthode ``decode()`` peut être utilisée sur des données " -#~ "binaires équivalentes en Python 2 et 3, mais ne peut pas être utilisée de " -#~ "la même façon sur le type texte en Python 2 et 3 car le type ``str`` de " -#~ "Python 3 ne possède pas de telle méthode). Notez que depuis Python 3.5, " -#~ "la méthode ``__mod__`` a été ajoutée au type *bytes*." - -#~ msgid "**Text data**" -#~ msgstr "**Format texte**" - -#~ msgid "**Binary data**" -#~ msgstr "**Format binaire**" - -#~ msgid "\\" -#~ msgstr "\\" - -#~ msgid "decode" -#~ msgstr "decode" - -#~ msgid "encode" -#~ msgstr "encode" - -#~ msgid "format" -#~ msgstr "format" - -#~ msgid "isdecimal" -#~ msgstr "isdecimal" - -#~ msgid "isnumeric" -#~ msgstr "isnumeric" - -#~ msgid "" -#~ "Making the distinction easier to handle can be accomplished by encoding " -#~ "and decoding between binary data and text at the edge of your code. This " -#~ "means that when you receive text in binary data, you should immediately " -#~ "decode it. And if your code needs to send text as binary data then encode " -#~ "it as late as possible. This allows your code to work with only text " -#~ "internally and thus eliminates having to keep track of what type of data " -#~ "you are working with." -#~ msgstr "" -#~ "Vous pouvez rendre le problème plus simple à gérer en réalisant les " -#~ "opérations d'encodage et de décodage entre données binaires et texte aux " -#~ "extrémités de votre code. Cela signifie que lorsque vous recevez du texte " -#~ "dans un format binaire, vous devez immédiatement le décoder. À l'inverse " -#~ "si votre code doit transmettre du texte sous forme binaire, encodez-le le " -#~ "plus tard possible. Cela vous permet de ne manipuler que du texte à " -#~ "l'intérieur de votre code et permet de ne pas se préoccuper du type des " -#~ "données sur lesquelles vous travaillez." - -#~ msgid "" -#~ "The next issue is making sure you know whether the string literals in " -#~ "your code represent text or binary data. You should add a ``b`` prefix to " -#~ "any literal that presents binary data. For text you should add a ``u`` " -#~ "prefix to the text literal. (there is a :mod:`__future__` import to force " -#~ "all unspecified literals to be Unicode, but usage has shown it isn't as " -#~ "effective as adding a ``b`` or ``u`` prefix to all literals explicitly)" -#~ msgstr "" -#~ "Le point suivant est de s'assurer que vous savez quelles chaînes de " -#~ "caractères littérales de votre code correspondent à du texte ou à du " -#~ "binaire. Vous devez préfixer par ``b`` tous les littéraux qui " -#~ "représentent des données binaires et par ``u`` les littéraux qui " -#~ "représentent du texte (il existe une importation du " -#~ "module :mod:`__future__` permettant de forcer l'encodage de toutes les " -#~ "chaînes de caractères littérales non spécifiées en Unicode, mais cette " -#~ "pratique s'est avérée moins efficace que l'ajout explicite des préfixe " -#~ "``b`` et ``u``)." - -#~ msgid "" -#~ "As part of this dichotomy you also need to be careful about opening " -#~ "files. Unless you have been working on Windows, there is a chance you " -#~ "have not always bothered to add the ``b`` mode when opening a binary file " -#~ "(e.g., ``rb`` for binary reading). Under Python 3, binary files and text " -#~ "files are clearly distinct and mutually incompatible; see the :mod:`io` " -#~ "module for details. Therefore, you **must** make a decision of whether a " -#~ "file will be used for binary access (allowing binary data to be read and/" -#~ "or written) or textual access (allowing text data to be read and/or " -#~ "written). You should also use :func:`io.open` for opening files instead " -#~ "of the built-in :func:`open` function as the :mod:`io` module is " -#~ "consistent from Python 2 to 3 while the built-in :func:`open` function is " -#~ "not (in Python 3 it's actually :func:`io.open`). Do not bother with the " -#~ "outdated practice of using :func:`codecs.open` as that's only necessary " -#~ "for keeping compatibility with Python 2.5." -#~ msgstr "" -#~ "Une conséquence de cette dichotomie est que vous devez être prudents lors " -#~ "de l'ouverture d'un fichier. À moins que vous travailliez sous Windows, " -#~ "il y a des chances pour que vous ne vous soyez jamais préoccupé de " -#~ "spécifier le mode ``b`` lorsque vous ouvrez des fichiers binaires (par " -#~ "exemple ``rb`` pour lire un fichier binaire). Sous Python 3, les fichiers " -#~ "binaire et texte sont distincts et mutuellement incompatibles ; se " -#~ "référer au module :mod:`io` pour plus de détails. Ainsi vous **devez** " -#~ "décider lorsque vous ouvrez un fichier si vous y accéderez en mode " -#~ "binaire (ce qui permet de lire et écrire des données binaires) ou en mode " -#~ "texte (ce qui permet de lire et écrire du texte). Vous devez également " -#~ "utiliser :func:`io.open` pour ouvrir des fichiers plutôt que la fonction " -#~ "native :func:`open` étant donné que le module :mod:`io` est cohérent de " -#~ "Python 2 à 3, ce qui n'est pas vrai pour la fonction :func:`open` (en " -#~ "Python 3, il s'agit en réalité de :func:`io.open`). Ne cherchez pas à " -#~ "appliquer l'ancienne pratique consistant à utiliser :func:`codecs.open` " -#~ "qui n'est nécessaire que pour préserver une compatibilité avec Python 2.5." - -#~ msgid "" -#~ "The constructors of both ``str`` and ``bytes`` have different semantics " -#~ "for the same arguments between Python 2 & 3. Passing an integer to " -#~ "``bytes`` in Python 2 will give you the string representation of the " -#~ "integer: ``bytes(3) == '3'``. But in Python 3, an integer argument to " -#~ "``bytes`` will give you a bytes object as long as the integer specified, " -#~ "filled with null bytes: ``bytes(3) == b'\\x00\\x00\\x00'``. A similar " -#~ "worry is necessary when passing a bytes object to ``str``. In Python 2 " -#~ "you just get the bytes object back: ``str(b'3') == b'3'``. But in Python " -#~ "3 you get the string representation of the bytes object: ``str(b'3') == " -#~ "\"b'3'\"``." -#~ msgstr "" -#~ "Les constructeurs des types ``str`` et ``bytes`` possèdent une sémantique " -#~ "différente pour les mêmes arguments sous Python 2 et 3. Passer un entier " -#~ "à ``bytes`` sous Python 2 produit une représentation de cet entier en " -#~ "chaîne de caractères : ``bytes(3) == '3'``. Mais sous Python 3, fournir " -#~ "un argument entier à ``bytes`` produit un objet *bytes* de la longueur de " -#~ "l'entier spécifié, rempli par des octets nuls : ``bytes(3) == " -#~ "b'\\x00\\x00\\x00'``. La même prudence est nécessaire lorsque vous passez " -#~ "un objet *bytes* à ``str``. En Python 2, vous récupérez simplement " -#~ "l'objet *bytes* initial : ``str(b'3') == b'3'``. Mais en Python 3, vous " -#~ "récupérez la représentation en chaîne de caractères de l'objet *bytes* : " -#~ "``str(b'3') == \"b'3'\"``." - -#~ msgid "" -#~ "Finally, the indexing of binary data requires careful handling (slicing " -#~ "does **not** require any special handling). In Python 2, ``b'123'[1] == " -#~ "b'2'`` while in Python 3 ``b'123'[1] == 50``. Because binary data is " -#~ "simply a collection of binary numbers, Python 3 returns the integer value " -#~ "for the byte you index on. But in Python 2 because ``bytes == str``, " -#~ "indexing returns a one-item slice of bytes. The six_ project has a " -#~ "function named ``six.indexbytes()`` which will return an integer like in " -#~ "Python 3: ``six.indexbytes(b'123', 1)``." -#~ msgstr "" -#~ "Enfin, l'indiçage des données binaires exige une manipulation prudente " -#~ "(bien que le découpage, ou *slicing* en anglais, ne nécessite pas " -#~ "d'attention particulière). En Python 2, ``b'123'[1] == b'2'`` tandis " -#~ "qu'en Python 3 ``b'123'[1] == 50``. Puisque les données binaires ne sont " -#~ "simplement qu'une collection de nombres en binaire, Python 3 renvoie la " -#~ "valeur entière de l'octet indicé. Mais en Python 2, étant donné que " -#~ "``bytes == str``, l'indiçage renvoie une tranche de longueur 1 de " -#~ "*bytes*. Le projet six_ dispose d'une fonction appelée " -#~ "``six.indexbytes()`` qui renvoie un entier comme en Python 3 : " -#~ "``six.indexbytes(b'123', 1)``." - -#~ msgid "To summarize:" -#~ msgstr "Pour résumer :" - -#~ msgid "Decide which of your APIs take text and which take binary data" -#~ msgstr "" -#~ "Décidez lesquelles de vos API travaillent sur du texte et lesquelles " -#~ "travaillent sur des données binaires" - -#~ msgid "" -#~ "Make sure that your code that works with text also works with ``unicode`` " -#~ "and code for binary data works with ``bytes`` in Python 2 (see the table " -#~ "above for what methods you cannot use for each type)" -#~ msgstr "" -#~ "Assurez vous que votre code travaillant sur du texte fonctionne aussi " -#~ "avec le type ``unicode`` et que le code travaillant sur du binaire " -#~ "fonctionne avec le type ``bytes`` en Python 2 (voir le tableau ci-dessus " -#~ "pour la liste des méthodes utilisables par chaque type)" - -#~ msgid "" -#~ "Mark all binary literals with a ``b`` prefix, textual literals with a " -#~ "``u`` prefix" -#~ msgstr "" -#~ "Préfixez tous vos littéraux binaires par ``b`` et toutes vos chaînes de " -#~ "caractères littérales par ``u``" - -#~ msgid "" -#~ "Decode binary data to text as soon as possible, encode text as binary " -#~ "data as late as possible" -#~ msgstr "" -#~ "Décodez les données binaires en texte dès que possible, encodez votre " -#~ "texte au format binaire le plus tard possible" - -#~ msgid "" -#~ "Open files using :func:`io.open` and make sure to specify the ``b`` mode " -#~ "when appropriate" -#~ msgstr "" -#~ "Ouvrez les fichiers avec la fonction :func:`io.open` et assurez-vous de " -#~ "spécifier le mode ``b`` le cas échéant" - -#~ msgid "Be careful when indexing into binary data" -#~ msgstr "Utilisez avec prudence l'indiçage sur des données binaires" - -#~ msgid "Use feature detection instead of version detection" -#~ msgstr "" -#~ "Utilisez la détection de fonctionnalités plutôt que la détection de " -#~ "version" - -#~ msgid "" -#~ "Inevitably you will have code that has to choose what to do based on what " -#~ "version of Python is running. The best way to do this is with feature " -#~ "detection of whether the version of Python you're running under supports " -#~ "what you need. If for some reason that doesn't work then you should make " -#~ "the version check be against Python 2 and not Python 3. To help explain " -#~ "this, let's look at an example." -#~ msgstr "" -#~ "Vous rencontrerez inévitablement du code devant décider quoi faire en " -#~ "fonction de la version de Python qui s'exécute. La meilleure façon de " -#~ "gérer ce cas est de détecter si les fonctionnalités dont vous avez besoin " -#~ "sont gérées par la version de Python sous laquelle le code s'exécute. Si " -#~ "pour certaines raisons cela ne fonctionne pas, alors vous devez tester si " -#~ "votre version est Python 2 et non Python 3. Afin de clarifier cette " -#~ "pratique, voici un exemple." - -#~ msgid "" -#~ "Let's pretend that you need access to a feature of :mod:`importlib` that " -#~ "is available in Python's standard library since Python 3.3 and available " -#~ "for Python 2 through importlib2_ on PyPI. You might be tempted to write " -#~ "code to access e.g. the :mod:`importlib.abc` module by doing the " -#~ "following::" -#~ msgstr "" -#~ "Supposons que vous avez besoin d'accéder à une fonctionnalité " -#~ "de :mod:`importlib` qui est disponible dans la bibliothèque standard de " -#~ "Python depuis la version 3.3, dans celle de Python 2 via le module " -#~ "importlib2_ sur *PyPI*. Vous pourriez être tenté d'écrire un code qui " -#~ "accède, par exemple, au module :mod:`importlib.abc` avec l'approche " -#~ "suivante ::" - -#~ msgid "" -#~ "The problem with this code is what happens when Python 4 comes out? It " -#~ "would be better to treat Python 2 as the exceptional case instead of " -#~ "Python 3 and assume that future Python versions will be more compatible " -#~ "with Python 3 than Python 2::" -#~ msgstr "" -#~ "Le problème est le suivant : que se passe-t-il lorsque Python 4 est " -#~ "publié ? Il serait préférable de traiter le cas Python 2 comme " -#~ "l'exception plutôt que Python 3 et de supposer que les versions futures " -#~ "de Python 2 seront plus compatibles avec Python 3 qu'avec Python 2 ::" - -#~ msgid "" -#~ "The best solution, though, is to do no version detection at all and " -#~ "instead rely on feature detection. That avoids any potential issues of " -#~ "getting the version detection wrong and helps keep you future-compatible::" -#~ msgstr "" -#~ "Néanmoins la meilleure solution est de ne pas chercher à déterminer la " -#~ "version de Python mais plutôt à détecter les fonctionnalités disponibles. " -#~ "Cela évite les problèmes potentiels liés aux erreurs de détection de " -#~ "version et facilite la compatibilité future ::" - -#~ msgid "Prevent compatibility regressions" -#~ msgstr "Prévenir les régressions de compatibilité" - -#~ msgid "" -#~ "Once you have fully translated your code to be compatible with Python 3, " -#~ "you will want to make sure your code doesn't regress and stop working " -#~ "under Python 3. This is especially true if you have a dependency which is " -#~ "blocking you from actually running under Python 3 at the moment." -#~ msgstr "" -#~ "Une fois votre code traduit pour être compatible avec Python 3, vous " -#~ "devez vous assurer que votre code n'a pas régressé ou qu'il ne fonctionne " -#~ "pas sous Python 3. Ceci est particulièrement important si une de vos " -#~ "dépendances vous empêche de réellement exécuter le code sous Python 3 " -#~ "pour le moment." - -#~ msgid "" -#~ "To help with staying compatible, any new modules you create should have " -#~ "at least the following block of code at the top of it::" -#~ msgstr "" -#~ "Afin de vous aider à maintenir la compatibilité, nous préconisons que " -#~ "tous les nouveaux modules que vous créez aient au moins le bloc de code " -#~ "suivant en en-tête ::" - -#~ msgid "" -#~ "You can also run Python 2 with the ``-3`` flag to be warned about various " -#~ "compatibility issues your code triggers during execution. If you turn " -#~ "warnings into errors with ``-Werror`` then you can make sure that you " -#~ "don't accidentally miss a warning." -#~ msgstr "" -#~ "Vous pouvez également lancer Python 2 avec le paramètre ``-3`` afin " -#~ "d'être alerté en cas de divers problèmes de compatibilité que votre code " -#~ "déclenche durant son exécution. Si vous transformez les avertissements en " -#~ "erreur avec ``-Werror``, vous pouvez être certain que ne passez pas " -#~ "accidentellement à côté d'un avertissement." - -#~ msgid "" -#~ "You can also use the Pylint_ project and its ``--py3k`` flag to lint your " -#~ "code to receive warnings when your code begins to deviate from Python 3 " -#~ "compatibility. This also prevents you from having to run Modernize_ or " -#~ "Futurize_ over your code regularly to catch compatibility regressions. " -#~ "This does require you only support Python 2.7 and Python 3.4 or newer as " -#~ "that is Pylint's minimum Python version support." -#~ msgstr "" -#~ "Vous pouvez également utiliser le projet Pylint_ et son option ``--py3k`` " -#~ "afin de modifier votre code pour recevoir des avertissements lorsque " -#~ "celui-ci dévie de la compatibilité Python 3. Cela vous évite par ailleurs " -#~ "d'appliquer Modernize_ ou Futurize_ sur votre code régulièrement pour " -#~ "détecter des régressions liées à la compatibilité. Cependant cela " -#~ "nécessite de votre part le support de Python 2.7 et Python 3.4 ou " -#~ "ultérieur étant donné qu'il s'agit de la version minimale gérée par " -#~ "Pylint." - -#~ msgid "Check which dependencies block your transition" -#~ msgstr "Vérifier quelles dépendances empêchent la migration" - -#~ msgid "" -#~ "**After** you have made your code compatible with Python 3 you should " -#~ "begin to care about whether your dependencies have also been ported. The " -#~ "caniusepython3_ project was created to help you determine which projects " -#~ "-- directly or indirectly -- are blocking you from supporting Python 3. " -#~ "There is both a command-line tool as well as a web interface at https://" -#~ "caniusepython3.com." -#~ msgstr "" -#~ "**Après** avoir rendu votre code compatible avec Python 3, vous devez " -#~ "commencer à vous intéresser au portage de vos dépendances. Le projet " -#~ "`caniusepython3`_ a été créé afin de vous aider à déterminer quels " -#~ "projets sont bloquants dans votre support de Python 3, directement ou " -#~ "indirectement. Il existe un outil en ligne de commande ainsi qu'une " -#~ "interface web : https://caniusepython3.com." - -#~ msgid "" -#~ "The project also provides code which you can integrate into your test " -#~ "suite so that you will have a failing test when you no longer have " -#~ "dependencies blocking you from using Python 3. This allows you to avoid " -#~ "having to manually check your dependencies and to be notified quickly " -#~ "when you can start running on Python 3." -#~ msgstr "" -#~ "Le projet fournit également du code intégrable dans votre suite de test " -#~ "qui déclenchera un échec de test lorsque plus aucune de vos dépendances " -#~ "n'est bloquante pour l'utilisation de Python 3. Cela vous permet de ne " -#~ "pas avoir à vérifier manuellement vos dépendances et d'être notifié " -#~ "rapidement quand vous pouvez exécuter votre application avec Python 3." - -#~ msgid "Update your ``setup.py`` file to denote Python 3 compatibility" -#~ msgstr "" -#~ "Mettre à jour votre fichier ``setup.py`` pour spécifier la compatibilité " -#~ "avec Python 3" - -#~ msgid "" -#~ "Once your code works under Python 3, you should update the classifiers in " -#~ "your ``setup.py`` to contain ``Programming Language :: Python :: 3`` and " -#~ "to not specify sole Python 2 support. This will tell anyone using your " -#~ "code that you support Python 2 **and** 3. Ideally you will also want to " -#~ "add classifiers for each major/minor version of Python you now support." -#~ msgstr "" -#~ "Une fois que votre code fonctionne sous Python 3, vous devez mettre à " -#~ "jour vos classeurs dans votre ``setup.py`` pour inclure ``Programming " -#~ "Language :: Python :: 3`` et non seulement le support de Python 2. Cela " -#~ "signifiera à quiconque utilise votre code que vous gérez Python 2 **et** " -#~ "3. Dans l'idéal vous devrez aussi ajouter une mention pour chaque version " -#~ "majeure/mineure de Python que vous supportez désormais." - -#~ msgid "Use continuous integration to stay compatible" -#~ msgstr "Utiliser l'intégration continue pour maintenir la compatibilité" - -#~ msgid "" -#~ "Once you are able to fully run under Python 3 you will want to make sure " -#~ "your code always works under both Python 2 & 3. Probably the best tool " -#~ "for running your tests under multiple Python interpreters is tox_. You " -#~ "can then integrate tox with your continuous integration system so that " -#~ "you never accidentally break Python 2 or 3 support." -#~ msgstr "" -#~ "Une fois que vous êtes en mesure d'exécuter votre code sous Python 3, " -#~ "vous devrez vous assurer que celui-ci fonctionne toujours pour Python 2 & " -#~ "3. tox_ est vraisemblablement le meilleur outil pour exécuter vos tests " -#~ "avec plusieurs interpréteurs Python. Vous pouvez alors intégrer *tox* à " -#~ "votre système d'intégration continue afin de ne jamais accidentellement " -#~ "casser votre gestion de Python 2 ou 3." - -#~ msgid "" -#~ "You may also want to use the ``-bb`` flag with the Python 3 interpreter " -#~ "to trigger an exception when you are comparing bytes to strings or bytes " -#~ "to an int (the latter is available starting in Python 3.5). By default " -#~ "type-differing comparisons simply return ``False``, but if you made a " -#~ "mistake in your separation of text/binary data handling or indexing on " -#~ "bytes you wouldn't easily find the mistake. This flag will raise an " -#~ "exception when these kinds of comparisons occur, making the mistake much " -#~ "easier to track down." -#~ msgstr "" -#~ "Vous pouvez également utiliser l'option ``-bb`` de l'interpréteur Python " -#~ "3 afin de déclencher une exception lorsque vous comparez des *bytes* à " -#~ "des chaînes de caractères ou à un entier (cette deuxième possibilité est " -#~ "disponible à partir de Python 3.5). Par défaut, des comparaisons entre " -#~ "types différents renvoient simplement ``False`` mais si vous avez fait " -#~ "une erreur dans votre séparation de la gestion texte/données binaires ou " -#~ "votre indiçage des *bytes*, vous ne trouverez pas facilement le bogue. Ce " -#~ "drapeau lève une exception lorsque ce genre de comparaison apparaît, " -#~ "facilitant ainsi son identification et sa localisation." - -#~ msgid "" -#~ "And that's mostly it! At this point your code base is compatible with " -#~ "both Python 2 and 3 simultaneously. Your testing will also be set up so " -#~ "that you don't accidentally break Python 2 or 3 compatibility regardless " -#~ "of which version you typically run your tests under while developing." -#~ msgstr "" -#~ "Et c'est à peu près tout ! Une fois ceci fait, votre code source est " -#~ "compatible avec Python 2 et 3 simultanément. Votre suite de test est " -#~ "également en place de telle sorte que vous ne cassiez pas la " -#~ "compatibilité Python 2 ou 3 indépendamment de la version que vous " -#~ "utilisez pendant le développement." - -#~ msgid "Consider using optional static type checking" -#~ msgstr "" -#~ "Envisager l'utilisation d'un vérificateur de type statique optionnel" - -#~ msgid "" -#~ "Another way to help port your code is to use a static type checker like " -#~ "mypy_ or pytype_ on your code. These tools can be used to analyze your " -#~ "code as if it's being run under Python 2, then you can run the tool a " -#~ "second time as if your code is running under Python 3. By running a " -#~ "static type checker twice like this you can discover if you're e.g. " -#~ "misusing binary data type in one version of Python compared to another. " -#~ "If you add optional type hints to your code you can also explicitly state " -#~ "whether your APIs use textual or binary data, helping to make sure " -#~ "everything functions as expected in both versions of Python." -#~ msgstr "" -#~ "Une autre façon de faciliter le portage de votre code est d'utiliser un " -#~ "vérificateur de type statique comme mypy_ ou pytype_. Ces outils peuvent " -#~ "être utilisés pour analyser votre code comme s'il était exécuté sous " -#~ "Python 2, puis une seconde fois comme s'il était exécuté sous Python 3. " -#~ "L'utilisation double d'un vérificateur de type statique de cette façon " -#~ "permet de détecter si, par exemple, vous faites une utilisation " -#~ "inappropriée des types de données binaires dans une version de Python par " -#~ "rapport à l'autre. Si vous ajoutez les indices optionnels de typage à " -#~ "votre code, vous pouvez alors explicitement déclarer que vos API " -#~ "attendent des données binaires ou du texte, ce qui facilite alors la " -#~ "vérification du comportement de votre code dans les deux versions de " -#~ "Python." diff --git a/howto/regex.po b/howto/regex.po deleted file mode 100644 index 90218b3792..0000000000 --- a/howto/regex.po +++ /dev/null @@ -1,2801 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-03-28 11:09+0200\n" -"Last-Translator: Nabil Bendafi \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.1\n" - -#: howto/regex.rst:5 -#, fuzzy -msgid "Regular expression HOWTO" -msgstr "Guide des expressions régulières" - -#: howto/regex.rst:0 -msgid "Author" -msgstr "Auteur" - -#: howto/regex.rst:7 -msgid "A.M. Kuchling " -msgstr "A.M. Kuchling " - -#: howto/regex.rst:16 -msgid "Abstract" -msgstr "Résumé" - -#: howto/regex.rst:18 -msgid "" -"This document is an introductory tutorial to using regular expressions in " -"Python with the :mod:`re` module. It provides a gentler introduction than " -"the corresponding section in the Library Reference." -msgstr "" -"Ce document constitue un guide d'introduction à l'utilisation des " -"expressions régulières en Python avec le module :mod:`re`. Il fournit une " -"introduction plus abordable que la section correspondante dans le guide de " -"référence de la bibliothèque." - -#: howto/regex.rst:24 -msgid "Introduction" -msgstr "Introduction" - -#: howto/regex.rst:26 -msgid "" -"Regular expressions (called REs, or regexes, or regex patterns) are " -"essentially a tiny, highly specialized programming language embedded inside " -"Python and made available through the :mod:`re` module. Using this little " -"language, you specify the rules for the set of possible strings that you " -"want to match; this set might contain English sentences, or e-mail " -"addresses, or TeX commands, or anything you like. You can then ask " -"questions such as \"Does this string match the pattern?\", or \"Is there a " -"match for the pattern anywhere in this string?\". You can also use REs to " -"modify a string or to split it apart in various ways." -msgstr "" -"Les expressions régulières (notées RE ou motifs *regex* dans ce document) " -"sont essentiellement un petit langage de programmation hautement spécialisé " -"embarqué dans Python et dont la manipulation est rendue possible par " -"l'utilisation du module :mod:`re`. En utilisant ce petit langage, vous " -"définissez des règles pour spécifier une correspondance avec un ensemble " -"souhaité de chaînes de caractères ; ces chaînes peuvent être des phrases, " -"des adresses de courriel, des commandes *TeX* ou tout ce que vous voulez. " -"Vous pouvez ensuite poser des questions telles que « Est-ce que cette chaîne " -"de caractères correspond au motif ? » ou « Y a-t-il une correspondance pour " -"ce motif à l'intérieur de la chaîne de caractères ? ». Vous pouvez aussi " -"utiliser les RE pour modifier une chaîne de caractères ou la découper de " -"différentes façons." - -#: howto/regex.rst:35 -msgid "" -"Regular expression patterns are compiled into a series of bytecodes which " -"are then executed by a matching engine written in C. For advanced use, it " -"may be necessary to pay careful attention to how the engine will execute a " -"given RE, and write the RE in a certain way in order to produce bytecode " -"that runs faster. Optimization isn't covered in this document, because it " -"requires that you have a good understanding of the matching engine's " -"internals." -msgstr "" -"Un motif d'expression régulière est compilé en code intermédiaire " -"(*bytecode* en anglais) qui est ensuite exécuté par un moteur de " -"correspondance écrit en C. Pour une utilisation plus poussée, il peut " -"s'avérer nécessaire de s'intéresser à la manière dont le moteur exécute la " -"RE afin d'écrire une expression dont le code intermédiaire est plus rapide. " -"L'optimisation n'est pas traitée dans ce document, parce qu'elle nécessite " -"d'avoir une bonne compréhension des mécanismes internes du moteur de " -"correspondance." - -#: howto/regex.rst:42 -msgid "" -"The regular expression language is relatively small and restricted, so not " -"all possible string processing tasks can be done using regular expressions. " -"There are also tasks that *can* be done with regular expressions, but the " -"expressions turn out to be very complicated. In these cases, you may be " -"better off writing Python code to do the processing; while Python code will " -"be slower than an elaborate regular expression, it will also probably be " -"more understandable." -msgstr "" -"Le langage des expressions régulières est relativement petit et restreint, " -"donc toutes les tâches de manipulation de chaînes de caractères ne peuvent " -"pas être réalisées à l'aide d'expressions régulières. Il existe aussi des " -"tâches qui *peuvent* être réalisées à l'aide d'expressions régulières mais " -"qui ont tendance à produire des expressions régulières très compliquées. " -"Dans ces cas, il est plus utile d'écrire du code Python pour réaliser le " -"traitement ; même si le code Python est plus lent qu'une expression " -"régulière élaborée, il sera probablement plus compréhensible." - -#: howto/regex.rst:51 -#, fuzzy -msgid "Simple patterns" -msgstr "Motifs simples" - -#: howto/regex.rst:53 -msgid "" -"We'll start by learning about the simplest possible regular expressions. " -"Since regular expressions are used to operate on strings, we'll begin with " -"the most common task: matching characters." -msgstr "" -"Nous commençons par étudier les expressions régulières les plus simples. " -"Dans la mesure où les expressions régulières sont utilisées pour manipuler " -"des chaînes de caractères, nous commençons par l'action la plus courante : " -"la correspondance de caractères." - -#: howto/regex.rst:57 -msgid "" -"For a detailed explanation of the computer science underlying regular " -"expressions (deterministic and non-deterministic finite automata), you can " -"refer to almost any textbook on writing compilers." -msgstr "" -"Pour une explication détaillée sur le concept informatique sous-jacent aux " -"expressions régulières (automate à états déterministe ou non-déterministe), " -"vous pouvez vous référer à n'importe quel manuel sur l'écriture de " -"compilateurs." - -#: howto/regex.rst:63 -#, fuzzy -msgid "Matching characters" -msgstr "Correspondance de caractères" - -#: howto/regex.rst:65 -msgid "" -"Most letters and characters will simply match themselves. For example, the " -"regular expression ``test`` will match the string ``test`` exactly. (You " -"can enable a case-insensitive mode that would let this RE match ``Test`` or " -"``TEST`` as well; more about this later.)" -msgstr "" -"La plupart des lettres ou caractères correspondent simplement à eux-mêmes. " -"Par exemple, l'expression régulière ``test`` correspond à la chaîne de " -"caractères ``test``, précisément. Vous pouvez activer le mode non-sensible à " -"la casse qui permet à cette RE de correspondre également à ``Test`` ou " -"``TEST`` (ce sujet est traité par la suite)." - -#: howto/regex.rst:70 -msgid "" -"There are exceptions to this rule; some characters are " -"special :dfn:`metacharacters`, and don't match themselves. Instead, they " -"signal that some out-of-the-ordinary thing should be matched, or they affect " -"other portions of the RE by repeating them or changing their meaning. Much " -"of this document is devoted to discussing various metacharacters and what " -"they do." -msgstr "" -"Il existe des exceptions à cette règle ; certains caractères sont " -"des :dfn:`métacaractères` spéciaux et ne correspondent pas à eux-mêmes. Au " -"lieu de cela, ils signalent que certaines choses non ordinaires doivent " -"correspondre, ou ils affectent d'autre portions de la RE en les répétant ou " -"en changeant leur sens. Une grande partie de ce document est consacrée au " -"fonctionnement de ces métacaractères." - -#: howto/regex.rst:76 -msgid "" -"Here's a complete list of the metacharacters; their meanings will be " -"discussed in the rest of this HOWTO." -msgstr "" -"Voici une liste complète des métacaractères ; leur sens est décrit dans la " -"suite de ce guide." - -#: howto/regex.rst:83 -msgid "" -"The first metacharacters we'll look at are ``[`` and ``]``. They're used for " -"specifying a character class, which is a set of characters that you wish to " -"match. Characters can be listed individually, or a range of characters can " -"be indicated by giving two characters and separating them by a ``'-'``. For " -"example, ``[abc]`` will match any of the characters ``a``, ``b``, or ``c``; " -"this is the same as ``[a-c]``, which uses a range to express the same set of " -"characters. If you wanted to match only lowercase letters, your RE would be " -"``[a-z]``." -msgstr "" -"Les premiers métacaractères que nous étudions sont ``[`` et ``]``. Ils sont " -"utilisés pour spécifier une classe de caractères, qui forme un ensemble de " -"caractères dont vous souhaitez trouver la correspondance. Les caractères " -"peuvent être listés individuellement, ou une plage de caractères peut être " -"indiquée en fournissant deux caractères séparés par un ``'-'``. Par exemple, " -"``[abc]`` correspond à n'importe quel caractère parmi ``a``, ``b`` ou " -"``c`` ; c'est équivalent à ``[a-c]``, qui utilise une plage pour exprimer le " -"même ensemble de caractères. Si vous voulez trouver une chaîne qui ne " -"contient que des lettres en minuscules, la RE est ``[a-z]``." - -#: howto/regex.rst:92 -msgid "" -"Metacharacters (except ``\\``) are not active inside classes. For example, " -"``[akm$]`` will match any of the characters ``'a'``, ``'k'``, ``'m'``, or " -"``'$'``; ``'$'`` is usually a metacharacter, but inside a character class " -"it's stripped of its special nature." -msgstr "" -"Les métacaractères (à l’exception de ``\\``) ne sont pas actifs dans les " -"classes. Par exemple, ``[akm$]`` correspond à n'importe quel caractère parmi " -"``'a'``, ``'k'``, ``'m'`` ou ``'$'`` ; ``'$'`` est habituellement un " -"métacaractère mais dans une classe de caractères, il est dépourvu de sa " -"signification spéciale." - -#: howto/regex.rst:97 -msgid "" -"You can match the characters not listed within the class " -"by :dfn:`complementing` the set. This is indicated by including a ``'^'`` " -"as the first character of the class. For example, ``[^5]`` will match any " -"character except ``'5'``. If the caret appears elsewhere in a character " -"class, it does not have special meaning. For example: ``[5^]`` will match " -"either a ``'5'`` or a ``'^'``." -msgstr "" -"Vous pouvez trouver une correspondance avec les caractères non listés dans " -"une classe en spécifiant le :dfn:`complément` de l'ensemble. Ceci est " -"indiqué en plaçant un ``'^'`` en tant que premier caractère de la classe. " -"Par exemple, ``[^5]`` correspond à tous les caractères, sauf ``'5'``. Si le " -"caret se trouve ailleurs dans la classe de caractères, il ne possède pas de " -"signification spéciale. Ainsi, ``[5^]`` correspond au ``'5'`` ou au " -"caractère ``'^'``." - -#: howto/regex.rst:103 -msgid "" -"Perhaps the most important metacharacter is the backslash, ``\\``. As in " -"Python string literals, the backslash can be followed by various characters " -"to signal various special sequences. It's also used to escape all the " -"metacharacters so you can still match them in patterns; for example, if you " -"need to match a ``[`` or ``\\``, you can precede them with a backslash to " -"remove their special meaning: ``\\[`` or ``\\\\``." -msgstr "" -"Le métacaractère le plus important est probablement la barre oblique inverse " -"(*backslash* en anglais), ``\\``. Comme dans les chaînes de caractères en " -"Python, la barre oblique inverse peut être suivie par différents caractères " -"pour signaler différentes séquences spéciales. Elle est aussi utilisée pour " -"échapper tous les métacaractères afin d'en trouver les correspondances dans " -"les motifs ; par exemple, si vous devez trouver une correspondance pour " -"``[`` ou ``\\``, vous pouvez les précéder avec une barre oblique inverse " -"pour annuler leur signification spéciale : ``\\[`` ou ``\\\\``." - -#: howto/regex.rst:110 -msgid "" -"Some of the special sequences beginning with ``'\\'`` represent predefined " -"sets of characters that are often useful, such as the set of digits, the set " -"of letters, or the set of anything that isn't whitespace." -msgstr "" -"Certaines séquences spéciales commençant par ``'\\'`` représentent des " -"ensembles de caractères prédéfinis qui sont souvent utiles, tels que " -"l'ensemble des chiffres, l'ensemble des lettres ou l'ensemble des caractères " -"qui ne sont pas des « blancs »." - -#: howto/regex.rst:115 -msgid "" -"Let's take an example: ``\\w`` matches any alphanumeric character. If the " -"regex pattern is expressed in bytes, this is equivalent to the class ``[a-zA-" -"Z0-9_]``. If the regex pattern is a string, ``\\w`` will match all the " -"characters marked as letters in the Unicode database provided by " -"the :mod:`unicodedata` module. You can use the more restricted definition " -"of ``\\w`` in a string pattern by supplying the :const:`re.ASCII` flag when " -"compiling the regular expression." -msgstr "" -"Prenons un exemple : ``\\w`` correspond à n'importe quel caractère " -"alphanumérique. Si l'expression régulière est exprimée en *bytes*, c'est " -"équivalent à la classe ``[a-zA-Z0-9_]``. Si l'expression régulière est une " -"chaîne de caractères, ``\\w`` correspond à tous les caractères identifiés " -"comme lettre dans la base de données Unicode fournie par le " -"module :mod:`unicodedata`. Vous pouvez utiliser la définition plus " -"restrictive de ``\\w`` dans un motif exprimé en chaîne de caractères en " -"spécifiant l'option :const:`re.ASCII` lors de la compilation de l'expression " -"régulière." - -#: howto/regex.rst:123 -msgid "" -"The following list of special sequences isn't complete. For a complete list " -"of sequences and expanded class definitions for Unicode string patterns, see " -"the last part of :ref:`Regular Expression Syntax ` in the " -"Standard Library reference. In general, the Unicode versions match any " -"character that's in the appropriate category in the Unicode database." -msgstr "" -"La liste de séquences spéciales suivante est incomplète. Pour une liste " -"complète des séquences et définitions de classes étendues relatives aux " -"motifs de chaînes de caractères Unicode, reportez-vous à la dernière partie " -"de la référence :ref:`Syntaxe d'Expressions Régulières ` de la " -"bibliothèque standard. En général, les versions Unicode trouvent une " -"correspondance avec n'importe quel caractère présent dans la catégorie " -"appropriée de la base de données Unicode." - -#: howto/regex.rst:130 -msgid "``\\d``" -msgstr "``\\d``" - -#: howto/regex.rst:131 -msgid "Matches any decimal digit; this is equivalent to the class ``[0-9]``." -msgstr "" -"Correspond à n'importe quel caractère numérique ; équivalent à la classe " -"``[0-9]``." - -#: howto/regex.rst:133 -msgid "``\\D``" -msgstr "``\\D``" - -#: howto/regex.rst:134 -msgid "" -"Matches any non-digit character; this is equivalent to the class ``[^0-9]``." -msgstr "" -"Correspond à n'importe quel caractère non numérique ; équivalent à la classe " -"``[^0-9]``." - -#: howto/regex.rst:136 -msgid "``\\s``" -msgstr "``\\s``" - -#: howto/regex.rst:137 -msgid "" -"Matches any whitespace character; this is equivalent to the class " -"``[ \\t\\n\\r\\f\\v]``." -msgstr "" -"Correspond à n'importe quel caractère « blanc » ; équivalent à la classe " -"``[ \\t\\n\\r\\f\\v]``." - -#: howto/regex.rst:140 -msgid "``\\S``" -msgstr "``\\S``" - -#: howto/regex.rst:141 -msgid "" -"Matches any non-whitespace character; this is equivalent to the class ``[^ " -"\\t\\n\\r\\f\\v]``." -msgstr "" -"Correspond à n'importe quel caractère autre que « blanc » ; équivalent à la " -"classe ``[^ \\t\\n\\r\\f\\v]``." - -#: howto/regex.rst:144 -msgid "``\\w``" -msgstr "``\\w``" - -#: howto/regex.rst:145 -msgid "" -"Matches any alphanumeric character; this is equivalent to the class ``[a-zA-" -"Z0-9_]``." -msgstr "" -"Correspond à n'importe quel caractère alphanumérique ; équivalent à la " -"classe ``[a-zA-Z0-9_]``." - -#: howto/regex.rst:148 -msgid "``\\W``" -msgstr "``\\W``" - -#: howto/regex.rst:149 -msgid "" -"Matches any non-alphanumeric character; this is equivalent to the class " -"``[^a-zA-Z0-9_]``." -msgstr "" -"Correspond à n'importe quel caractère non-alphanumérique ; équivalent à la " -"classe ``[^a-zA-Z0-9_]``." - -#: howto/regex.rst:152 -msgid "" -"These sequences can be included inside a character class. For example, " -"``[\\s,.]`` is a character class that will match any whitespace character, " -"or ``','`` or ``'.'``." -msgstr "" -"Ces séquences peuvent être incluses dans une classe de caractères. Par " -"exemple, ``[\\s,.]`` est une classe de caractères qui correspond à tous les " -"caractères « blanc » ou ``','`` ou ``'.'``." - -#: howto/regex.rst:156 -msgid "" -"The final metacharacter in this section is ``.``. It matches anything " -"except a newline character, and there's an alternate mode " -"(:const:`re.DOTALL`) where it will match even a newline. ``.`` is often " -"used where you want to match \"any character\"." -msgstr "" -"Le dernier métacaractère de cette section est ``.``. Il correspond à tous " -"les caractères, à l'exception du caractère de retour à la ligne ; il existe " -"un mode alternatif (:const:`re.DOTALL`) dans lequel il correspond également " -"au caractère de retour à la ligne. ``.`` est souvent utilisé lorsque l'on " -"veut trouver une correspondance avec « n'importe quel caractère »." - -#: howto/regex.rst:163 -#, fuzzy -msgid "Repeating things" -msgstr "Répétitions" - -#: howto/regex.rst:165 -msgid "" -"Being able to match varying sets of characters is the first thing regular " -"expressions can do that isn't already possible with the methods available on " -"strings. However, if that was the only additional capability of regexes, " -"they wouldn't be much of an advance. Another capability is that you can " -"specify that portions of the RE must be repeated a certain number of times." -msgstr "" -"Trouver des correspondances de divers ensembles de caractères est la " -"première utilisation des expressions régulières, ce que l'on ne peut pas " -"faire avec les méthodes des chaînes. Cependant, si c'était la seule " -"possibilité des expressions régulières, le gain ne serait pas significatif. " -"Une autre utilisation consiste à spécifier des portions d'une RE qui peuvent " -"être répétées un certain nombre de fois." - -#: howto/regex.rst:171 -msgid "" -"The first metacharacter for repeating things that we'll look at is ``*``. " -"``*`` doesn't match the literal character ``'*'``; instead, it specifies " -"that the previous character can be matched zero or more times, instead of " -"exactly once." -msgstr "" -"Le premier métacaractère pour la répétition que nous abordons est ``*``. " -"``*`` ne correspond pas au caractère littéral ``'*'`` ; à la place, il " -"spécifie que le caractère précédent peut correspondre zéro, une ou plusieurs " -"fois (au lieu d'une seule fois)." - -#: howto/regex.rst:175 -msgid "" -"For example, ``ca*t`` will match ``'ct'`` (0 ``'a'`` characters), ``'cat'`` " -"(1 ``'a'``), ``'caaat'`` (3 ``'a'`` characters), and so forth." -msgstr "" -"Par exemple, ``cha*t`` correspond à ``'cht'`` (0 caractère ``'a'``), " -"``'chat'`` (1 ``'a'``), ``'chaaat'`` (3 caractères ``'a'``) et ainsi de " -"suite." - -#: howto/regex.rst:178 -msgid "" -"Repetitions such as ``*`` are :dfn:`greedy`; when repeating a RE, the " -"matching engine will try to repeat it as many times as possible. If later " -"portions of the pattern don't match, the matching engine will then back up " -"and try again with fewer repetitions." -msgstr "" -"Les répétitions telles que ``*`` sont :dfn:`gloutonnes` ; quand vous répétez " -"une RE, le moteur de correspondance essaie de trouver la correspondance la " -"plus longue en répétant le motif tant qu'il le peut. Si la suite du motif ne " -"correspond pas, le moteur de correspondance revient en arrière et essaie " -"avec moins de répétitions." - -#: howto/regex.rst:183 -msgid "" -"A step-by-step example will make this more obvious. Let's consider the " -"expression ``a[bcd]*b``. This matches the letter ``'a'``, zero or more " -"letters from the class ``[bcd]``, and finally ends with a ``'b'``. Now " -"imagine matching this RE against the string ``'abcbd'``." -msgstr "" -"Un exemple étape par étape mettra les choses au clair. Considérons " -"l'expression ``a[bcd]*b``. Elle correspond à la lettre ``'a'``, suivi " -"d'aucune ou plusieurs lettres de la classe ``[bcd]`` et finit par un " -"``'b'``. Maintenant, supposons que nous cherchons une correspondance de " -"cette RE avec la chaîne de caractères ``'abcbd'``." - -#: howto/regex.rst:189 -msgid "Step" -msgstr "Étape" - -#: howto/regex.rst:189 -msgid "Matched" -msgstr "Correspond" - -#: howto/regex.rst:189 -msgid "Explanation" -msgstr "Explication" - -#: howto/regex.rst:191 -msgid "1" -msgstr "1" - -#: howto/regex.rst:191 -msgid "``a``" -msgstr "``a``" - -#: howto/regex.rst:191 -msgid "The ``a`` in the RE matches." -msgstr "Le ``a`` correspond dans la RE." - -#: howto/regex.rst:193 -msgid "2" -msgstr "2" - -#: howto/regex.rst:193 -msgid "``abcbd``" -msgstr "``abcbd``" - -#: howto/regex.rst:193 -msgid "" -"The engine matches ``[bcd]*``, going as far as it can, which is to the end " -"of the string." -msgstr "" -"Le moteur de correspondance trouve ``[bcd]*``, va aussi loin qu'il le peut, " -"c.-à-d. la fin de la chaîne." - -#: howto/regex.rst:197 -msgid "3" -msgstr "3" - -#: howto/regex.rst:205 -msgid "*Failure*" -msgstr "*échec*" - -#: howto/regex.rst:197 -msgid "" -"The engine tries to match ``b``, but the current position is at the end of " -"the string, so it fails." -msgstr "" -"Le moteur essaie de trouver une correspondance avec ``b`` mais la position " -"courante est à la fin de la chaîne de caractères, donc il échoue." - -#: howto/regex.rst:202 -msgid "4" -msgstr "4" - -#: howto/regex.rst:213 -msgid "``abcb``" -msgstr "``abcb``" - -#: howto/regex.rst:202 -msgid "Back up, so that ``[bcd]*`` matches one less character." -msgstr "" -"Retour en arrière, de manière à ce que ``[bcd]*`` corresponde avec un " -"caractère de moins." - -#: howto/regex.rst:205 -msgid "5" -msgstr "5" - -#: howto/regex.rst:205 -msgid "" -"Try ``b`` again, but the current position is at the last character, which is " -"a ``'d'``." -msgstr "" -"Essaie encore ``b``, mais la position courante est le dernier caractère, qui " -"est ``'d'``." - -#: howto/regex.rst:209 -msgid "6" -msgstr "6" - -#: howto/regex.rst:209 -msgid "``abc``" -msgstr "``abc``" - -#: howto/regex.rst:209 -msgid "Back up again, so that ``[bcd]*`` is only matching ``bc``." -msgstr "" -"Encore un retour en arrière, de manière à ce que ``[bcd]*`` ne corresponde " -"qu'à ``bc``." - -#: howto/regex.rst:213 -msgid "7" -msgstr "" - -#: howto/regex.rst:213 -msgid "" -"Try ``b`` again. This time the character at the current position is " -"``'b'``, so it succeeds." -msgstr "" -"Essaie ``b`` encore une fois. Cette fois, le caractère à la position " -"courante est ``'b'``, donc cela fonctionne." - -#: howto/regex.rst:219 -msgid "" -"The end of the RE has now been reached, and it has matched ``'abcb'``. This " -"demonstrates how the matching engine goes as far as it can at first, and if " -"no match is found it will then progressively back up and retry the rest of " -"the RE again and again. It will back up until it has tried zero matches for " -"``[bcd]*``, and if that subsequently fails, the engine will conclude that " -"the string doesn't match the RE at all." -msgstr "" -"La fin de la RE est maintenant atteinte et la correspondance trouvée est " -"``'abcb'``. Ceci démontre comment le moteur de correspondance essaie d'aller " -"le plus loin possible en premier et, si la correspondance échoue, il revient " -"progressivement en arrière et ré-essaie avec le reste de la RE encore et " -"encore. Il revient en arrière jusqu'à qu'il n'y ait aucune correspondance " -"pour ``[bcd]*`` et, si cela échoue toujours, le moteur conclut que la chaîne " -"de caractères et la RE ne correspondent pas du tout." - -#: howto/regex.rst:226 -msgid "" -"Another repeating metacharacter is ``+``, which matches one or more times. " -"Pay careful attention to the difference between ``*`` and ``+``; ``*`` " -"matches *zero* or more times, so whatever's being repeated may not be " -"present at all, while ``+`` requires at least *one* occurrence. To use a " -"similar example, ``ca+t`` will match ``'cat'`` (1 ``'a'``), ``'caaat'`` (3 " -"``'a'``\\ s), but won't match ``'ct'``." -msgstr "" -"Un autre métacaractère de répétition est ``+``, qui fait correspondre une ou " -"plusieurs fois. Faites bien attention à la différence entre ``*`` et ``+`` ; " -"``*`` fait correspondre *zéro* fois ou plus, ainsi ce qui doit être répété " -"peut ne pas être présent du tout, alors que ``+`` requiert au moins *une* " -"occurrence. Pour continuer avec le même exemple, ``cha+t`` correspond avec " -"``'chat'`` (1 ``'a'``), ``'chaaat'`` (3 ``'a'``) mais ne correspond pas avec " -"``'cht'``." - -#: howto/regex.rst:233 -msgid "" -"There are two more repeating operators or quantifiers. The question mark " -"character, ``?``, matches either once or zero times; you can think of it as " -"marking something as being optional. For example, ``home-?brew`` matches " -"either ``'homebrew'`` or ``'home-brew'``." -msgstr "" -"Il existe deux autres quantificateurs pour les répétitions. Le point " -"d'interrogation, ``?``, fait correspondre zéro ou une fois ; vous pouvez " -"vous le représenter comme indiquant une option. Par exemple, ``méta-?" -"caractère`` fait correspondre soit ``'métacaractère'``, soit ``'méta-" -"caractère'``." - -#: howto/regex.rst:238 -msgid "" -"The most complicated quantifier is ``{m,n}``, where *m* and *n* are decimal " -"integers. This quantifier means there must be at least *m* repetitions, and " -"at most *n*. For example, ``a/{1,3}b`` will match ``'a/b'``, ``'a//b'``, " -"and ``'a///b'``. It won't match ``'ab'``, which has no slashes, or ``'a////" -"b'``, which has four." -msgstr "" -"Le plus compliqué des quantificateurs est ``{m,n}`` où *m* et *n* sont des " -"entiers décimaux. Ce quantificateur indique qu'il faut au moins *m* " -"répétitions et au plus *n*. Par exemple, ``a/{1,3}b`` fait correspondre ``'a/" -"b'``, ``'a//b'`` et ``'a///b'``. Elle ne fait pas correspondre ``'ab'`` (pas " -"de barre oblique) ni ``'a////b'`` (quatre barres obliques)." - -#: howto/regex.rst:244 -msgid "" -"You can omit either *m* or *n*; in that case, a reasonable value is assumed " -"for the missing value. Omitting *m* is interpreted as a lower limit of 0, " -"while omitting *n* results in an upper bound of infinity." -msgstr "" -"Vous pouvez omettre soit *m*, soit *n* ; dans ce cas, une valeur raisonnable " -"est prise pour la valeur manquante. Omettre *m* considère que la borne basse " -"est 0 alors qu'omettre *n* signifie qu'il n'y a pas de borne supérieure." - -#: howto/regex.rst:248 -msgid "" -"The simplest case ``{m}`` matches the preceding item exactly *m* times. For " -"example, ``a/{2}b`` will only match ``'a//b'``." -msgstr "" - -#: howto/regex.rst:251 -msgid "" -"Readers of a reductionist bent may notice that the three other quantifiers " -"can all be expressed using this notation. ``{0,}`` is the same as ``*``, " -"``{1,}`` is equivalent to ``+``, and ``{0,1}`` is the same as ``?``. It's " -"better to use ``*``, ``+``, or ``?`` when you can, simply because they're " -"shorter and easier to read." -msgstr "" -"Le lecteur attentif aura noté que les trois premiers quantificateurs peuvent " -"être exprimés en utilisant cette notation. ``{0,}`` est la même chose que " -"``*``, ``{1,}`` est équivalent à ``+`` et ``{0,1}`` se comporte comme ``?``. " -"Il est préférable d'utiliser ``*``, ``+`` ou ``?`` quand vous le pouvez, " -"simplement parce qu'ils sont plus courts et plus faciles à lire." - -#: howto/regex.rst:259 -#, fuzzy -msgid "Using regular expressions" -msgstr "Utilisation des expressions régulières" - -#: howto/regex.rst:261 -msgid "" -"Now that we've looked at some simple regular expressions, how do we actually " -"use them in Python? The :mod:`re` module provides an interface to the " -"regular expression engine, allowing you to compile REs into objects and then " -"perform matches with them." -msgstr "" -"Maintenant que nous avons vu quelques expressions régulières simples, " -"utilisons-les concrètement. Le module :mod:`re` fournit une interface pour " -"le moteur de correspondance, ce qui permet de compiler les RE en objets et " -"d'effectuer des correspondances avec." - -#: howto/regex.rst:268 -#, fuzzy -msgid "Compiling regular expressions" -msgstr "Compilation des expressions régulières" - -#: howto/regex.rst:270 -msgid "" -"Regular expressions are compiled into pattern objects, which have methods " -"for various operations such as searching for pattern matches or performing " -"string substitutions. ::" -msgstr "" -"Les expressions régulières sont compilées en objets motifs, qui possèdent " -"des méthodes pour diverses opérations telles que la recherche de " -"correspondances ou les substitutions dans les chaînes. ::" - -#: howto/regex.rst:279 -msgid "" -":func:`re.compile` also accepts an optional *flags* argument, used to enable " -"various special features and syntax variations. We'll go over the available " -"settings later, but for now a single example will do::" -msgstr "" -":func:`re.compile` accepte aussi une option *flags*, utilisée pour activer " -"des fonctionnalités particulières et des variations de syntaxe. Nous " -"étudierons les options disponibles plus tard et, pour l'instant, un petit " -"exemple suffit ::" - -#: howto/regex.rst:285 -msgid "" -"The RE is passed to :func:`re.compile` as a string. REs are handled as " -"strings because regular expressions aren't part of the core Python language, " -"and no special syntax was created for expressing them. (There are " -"applications that don't need REs at all, so there's no need to bloat the " -"language specification by including them.) Instead, the :mod:`re` module is " -"simply a C extension module included with Python, just like " -"the :mod:`socket` or :mod:`zlib` modules." -msgstr "" -"La RE passée à :func:`re.compile` est une chaîne. Les RE sont des chaînes " -"car les expressions régulières ne font pas partie intrinsèque du langage " -"Python et aucune syntaxe particulière n'a été créée pour les exprimer (il " -"existe des applications qui ne nécessitent aucune RE et il n'a donc aucune " -"raison de grossir les spécifications du langage en incluant les RE). Ainsi, " -"le module :mod:`re` est simplement un module d'extension en C inclus dans " -"Python, tout comme les modules :mod:`socket` ou :mod:`zlib`." - -#: howto/regex.rst:292 -msgid "" -"Putting REs in strings keeps the Python language simpler, but has one " -"disadvantage which is the topic of the next section." -msgstr "" -"Exprimer les RE comme des chaînes de caractères garde le langage Python plus " -"simple mais introduit un inconvénient qui fait l'objet de la section " -"suivante." - -#: howto/regex.rst:299 -#, fuzzy -msgid "The backslash plague" -msgstr "La maudite barre oblique inverse" - -#: howto/regex.rst:301 -msgid "" -"As stated earlier, regular expressions use the backslash character " -"(``'\\'``) to indicate special forms or to allow special characters to be " -"used without invoking their special meaning. This conflicts with Python's " -"usage of the same character for the same purpose in string literals." -msgstr "" -"Comme indiqué précédemment, les expressions régulières utilisent la barre " -"oblique inverse (*backslash* en anglais) pour indiquer des constructions " -"particulières ou pour autoriser des caractères spéciaux sans que leur " -"signification spéciale ne soit invoquée. C'est en contradiction avec l'usage " -"de Python qui est qu'un caractère doit avoir la même signification dans les " -"littéraux de chaînes de caractères." - -#: howto/regex.rst:306 -msgid "" -"Let's say you want to write a RE that matches the string ``\\section``, " -"which might be found in a LaTeX file. To figure out what to write in the " -"program code, start with the desired string to be matched. Next, you must " -"escape any backslashes and other metacharacters by preceding them with a " -"backslash, resulting in the string ``\\\\section``. The resulting string " -"that must be passed to :func:`re.compile` must be ``\\\\section``. However, " -"to express this as a Python string literal, both backslashes must be escaped " -"*again*." -msgstr "" -"Considérons que vous voulez écrire une RE qui fait correspondre la chaîne de " -"caractères ``\\section`` (on en trouve dans un fichier *LaTeX*). Pour savoir " -"ce qu'il faut coder dans votre programme, commençons par la chaîne de " -"caractères cherchée. Ensuite, nous devons échapper chaque barre oblique " -"inverse et tout autre métacaractère en les précédant d'une barre oblique " -"inverse, ce qui donne la chaîne de caractères ``\\\\section``. La chaîne " -"résultante qui doit être passée à :func:`re.compile` est donc ``\\" -"\\section``. Comme nous devons l'exprimer sous la forme d'une chaîne " -"littérale Python, nous devons échapper les deux barres obliques inverses " -"*encore une fois*." - -#: howto/regex.rst:315 -msgid "Characters" -msgstr "Caractères" - -#: howto/regex.rst:315 -msgid "Stage" -msgstr "Niveau" - -#: howto/regex.rst:317 -msgid "``\\section``" -msgstr "``\\section``" - -#: howto/regex.rst:317 -msgid "Text string to be matched" -msgstr "Chaîne de caractère à chercher" - -#: howto/regex.rst:319 -msgid "``\\\\section``" -msgstr "``\\\\section``" - -#: howto/regex.rst:319 -msgid "Escaped backslash for :func:`re.compile`" -msgstr "Barre oblique inverse échappée pour :func:`re.compile`" - -#: howto/regex.rst:348 -msgid "``\"\\\\\\\\section\"``" -msgstr "``\"\\\\\\\\section\"``" - -#: howto/regex.rst:321 -msgid "Escaped backslashes for a string literal" -msgstr "" -"Barres obliques inverses échappées pour un littéral de chaîne de caractères" - -#: howto/regex.rst:324 -msgid "" -"In short, to match a literal backslash, one has to write ``'\\\\\\\\'`` as " -"the RE string, because the regular expression must be ``\\\\``, and each " -"backslash must be expressed as ``\\\\`` inside a regular Python string " -"literal. In REs that feature backslashes repeatedly, this leads to lots of " -"repeated backslashes and makes the resulting strings difficult to understand." -msgstr "" -"Pour faire court, si vous cherchez une correspondance pour une barre oblique " -"inverse littérale, écrivez ``'\\\\\\\\'`` dans votre chaîne RE, car " -"l'expression régulière doit être ``\\\\`` et que chaque barre oblique " -"inverse doit être exprimée comme ``\\\\`` dans un littéral chaîne de " -"caractères Python. Dans les RE qui comportent plusieurs barres obliques " -"inverses, cela conduit à beaucoup de barres obliques inverses et rend la " -"chaîne résultante difficile à comprendre." - -#: howto/regex.rst:330 -msgid "" -"The solution is to use Python's raw string notation for regular expressions; " -"backslashes are not handled in any special way in a string literal prefixed " -"with ``'r'``, so ``r\"\\n\"`` is a two-character string containing ``'\\'`` " -"and ``'n'``, while ``\"\\n\"`` is a one-character string containing a " -"newline. Regular expressions will often be written in Python code using this " -"raw string notation." -msgstr "" -"La solution consiste à utiliser les chaînes brutes Python pour les " -"expressions régulières ; les barres obliques inverses ne sont pas gérées " -"d'une manière particulière dans les chaînes littérales préfixées avec " -"``'r'``. Ainsi, ``r\"\\n\"`` est la chaîne de deux caractères contenant " -"``'\\'`` et ``'n'`` alors que ``\"\\n\"`` est la chaîne contenant uniquement " -"le caractère retour à la ligne. Les expressions régulières sont souvent " -"écrites dans le code Python en utilisant la notation « chaînes brutes »." - -#: howto/regex.rst:336 -#, fuzzy -msgid "" -"In addition, special escape sequences that are valid in regular expressions, " -"but not valid as Python string literals, now result in " -"a :exc:`SyntaxWarning` and will eventually become a :exc:`SyntaxError`, " -"which means the sequences will be invalid if raw string notation or escaping " -"the backslashes isn't used." -msgstr "" -"En complément, les séquences d'échappement valides dans les expressions " -"régulières, mais non valides dans les littéraux chaînes classiques, " -"produisent dorénavant un :exc:`DeprecationWarning` et, possiblement, " -"deviendront une :exc:`SyntaxError`, ce qui signifie que les séquences seront " -"invalides si la notation « chaîne brute » ou l'échappement des barres " -"obliques inverses ne sont pas utilisés." - -#: howto/regex.rst:344 -msgid "Regular String" -msgstr "Chaîne normale" - -#: howto/regex.rst:344 -msgid "Raw string" -msgstr "Chaîne de caractères brute" - -#: howto/regex.rst:346 -msgid "``\"ab*\"``" -msgstr "``\"ab*\"``" - -#: howto/regex.rst:346 -msgid "``r\"ab*\"``" -msgstr "``r\"ab*\"``" - -#: howto/regex.rst:348 -msgid "``r\"\\\\section\"``" -msgstr "``r\"\\\\section\"``" - -#: howto/regex.rst:350 -msgid "``\"\\\\w+\\\\s+\\\\1\"``" -msgstr "``\"\\\\w+\\\\s+\\\\1\"``" - -#: howto/regex.rst:350 -msgid "``r\"\\w+\\s+\\1\"``" -msgstr "``r\"\\w+\\s+\\1\"``" - -#: howto/regex.rst:355 -#, fuzzy -msgid "Performing matches" -msgstr "Recherche de correspondances" - -#: howto/regex.rst:357 -msgid "" -"Once you have an object representing a compiled regular expression, what do " -"you do with it? Pattern objects have several methods and attributes. Only " -"the most significant ones will be covered here; consult the :mod:`re` docs " -"for a complete listing." -msgstr "" -"Une fois que nous avons un objet représentant une expression régulière " -"compilée, qu'en faisons-nous ? Les objets motifs ont plusieurs méthodes et " -"attributs. Seuls les plus significatifs seront couverts ici ; consultez la " -"documentation :mod:`re` pour la liste complète." - -#: howto/regex.rst:418 howto/regex.rst:1074 -msgid "Method/Attribute" -msgstr "Méthode/Attribut" - -#: howto/regex.rst:418 howto/regex.rst:1074 -msgid "Purpose" -msgstr "Objectif" - -#: howto/regex.rst:365 -msgid "``search()``" -msgstr "``search()``" - -#: howto/regex.rst:365 -msgid "Scan through a string, looking for any location where this RE matches." -msgstr "Analyse la chaîne à la recherche d'une position où la RE correspond." - -#: howto/regex.rst:368 -#, fuzzy -msgid "``prefixmatch()``" -msgstr "``match()``" - -#: howto/regex.rst:368 -#, fuzzy -msgid "" -"Determine if the RE matches at the beginning of the string. Previously " -"named :ref:`match() `." -msgstr "Détermine si la RE fait correspond dès le début de la chaîne." - -#: howto/regex.rst:372 -msgid "``findall()``" -msgstr "``findall()``" - -#: howto/regex.rst:372 -#, fuzzy -msgid "Find all substrings where the RE matches, and return them as a list." -msgstr "" -"Trouve toutes les sous-chaînes qui correspondent à la RE et les renvoie sous " -"la forme d'une liste." - -#: howto/regex.rst:375 -msgid "``finditer()``" -msgstr "``finditer()``" - -#: howto/regex.rst:375 -#, fuzzy -msgid "" -"Find all substrings where the RE matches, and return them as " -"an :term:`iterator`." -msgstr "" -"Trouve toutes les sous-chaînes qui correspondent à la RE et les renvoie sous " -"la forme d'un :term:`itérateur `." - -#: howto/regex.rst:379 -#, fuzzy -msgid "" -":meth:`~re.Pattern.search` and :meth:`~re.Pattern.prefixmatch` return " -"``None`` if no match can be found. If they're successful, a :ref:`match " -"object ` instance is returned, containing information about " -"the match: where it starts and ends, the substring it matched, and more." -msgstr "" -":meth:`~re.Pattern.match` et :meth:`~re.Pattern.search` renvoient ``None`` " -"si aucune correspondance ne peut être trouvée. Si elles trouvent une " -"correspondance, une instance d'\\ :ref:`objet correspondance ` est renvoyée, contenant les informations relatives à la " -"correspondance : position de départ et de fin, la sous-chaîne qui correspond " -"et d'autres informations." - -#: howto/regex.rst:384 -msgid "" -"You can learn about this by interactively experimenting with the :mod:`re` " -"module." -msgstr "" - -#: howto/regex.rst:387 -msgid "" -"This HOWTO uses the standard Python interpreter for its examples. First, run " -"the Python interpreter, import the :mod:`re` module, and compile a RE::" -msgstr "" -"Ce guide utilise l'interpréteur standard de Python pour ses exemples. " -"Commencez par lancer l'interpréteur Python, importez le module :mod:`re` et " -"compilez une RE ::" - -#: howto/regex.rst:395 -#, fuzzy -msgid "" -"Now, you can try matching various strings against the RE ``[a-z]+``. An " -"empty string shouldn't match at all, since ``+`` means 'one or more " -"repetitions'. :meth:`~re.Pattern.search` should return ``None`` in this " -"case, which will cause the interpreter to print no output. You can " -"explicitly print the result of :meth:`!search` to make this clear. ::" -msgstr "" -"Maintenant, vous pouvez tester des correspondances de la RE ``[a-z]+`` avec " -"différentes chaînes. Une chaîne vide ne doit pas correspondre, puisque ``+`` " -"indique « une ou plusieurs occurrences ». :meth:`~re.Pattern.match` doit " -"renvoyer ``None`` dans ce cas, ce qui fait que l'interpréteur n'affiche " -"rien. Vous pouvez afficher le résultat de :meth:`!match` explicitement pour " -"que ce soit clair. ::" - -#: howto/regex.rst:405 -#, fuzzy -msgid "" -"Now, let's try it on a string that it should match, such as ``tempo``. In " -"this case, :meth:`~re.Pattern.search` will return a :ref:`match object " -"`, so you should store the result in a variable for later " -"use. ::" -msgstr "" -"Maintenant, essayons sur une chaîne qui doit correspondre, par exemple " -"``tempo``. Dans ce cas, :meth:`~re.Pattern.match` renvoie un :ref:`objet " -"correspondance `, vous pouvez ainsi stocker le résultat dans " -"une variable pour une utilisation ultérieure. ::" - -#: howto/regex.rst:413 -msgid "" -"Now you can query the :ref:`match object ` for information " -"about the matching string. Match object instances also have several methods " -"and attributes; the most important ones are:" -msgstr "" -"Maintenant, vous pouvez interroger l'\\ :ref:`objet correspondance ` pour obtenir des informations sur la chaîne qui correspond. Les " -"instances d'objets correspondances possèdent plusieurs méthodes et " -"attributs ; les plus importants sont :" - -#: howto/regex.rst:420 -msgid "``group()``" -msgstr "``group()``" - -#: howto/regex.rst:420 -msgid "Return the string matched by the RE" -msgstr "Renvoie la chaîne de caractères correspondant à la RE" - -#: howto/regex.rst:422 -msgid "``start()``" -msgstr "``start()``" - -#: howto/regex.rst:422 -msgid "Return the starting position of the match" -msgstr "Renvoie la position de début de la correspondance" - -#: howto/regex.rst:424 -msgid "``end()``" -msgstr "``end()``" - -#: howto/regex.rst:424 -msgid "Return the ending position of the match" -msgstr "Renvoie la position de fin de la correspondance" - -#: howto/regex.rst:426 -msgid "``span()``" -msgstr "``span()``" - -#: howto/regex.rst:426 -msgid "Return a tuple containing the (start, end) positions of the match" -msgstr "" -"Renvoie un *n*-uplet contenant les positions (début, fin) de la " -"correspondance" - -#: howto/regex.rst:430 -msgid "Trying these methods will soon clarify their meaning::" -msgstr "Essayons ces méthodes pour clarifier leur signification ::" - -#: howto/regex.rst:439 -#, fuzzy -msgid "" -":meth:`~re.Match.group` returns the substring that was matched by the " -"RE. :meth:`~re.Match.start` and :meth:`~re.Match.end` return the starting " -"and ending index of the match. :meth:`~re.Match.span` returns both start and " -"end indexes in a single tuple. The :meth:`~re.Pattern.search` method of " -"patterns scans through the string, so the match may not start at zero. " -"However, the :meth:`~re.Pattern.prefixmatch` method only checks if the RE " -"matches at the start of a string, so :meth:`!start` will always be zero in " -"that case. ::" -msgstr "" -":meth:`~re.Match.group` renvoie la sous-chaîne qui correspond à la " -"RE. :meth:`~re.Match.start` et :meth:`~re.Match.end` renvoient les indices " -"de début et de fin de la correspondance. :meth:`~re.Match.span` renvoie les " -"indices de début et de fin dans un seul couple. Comme la " -"méthode :meth:`~re.Pattern.match` ne fait que vérifier si la RE correspond " -"au début de la chaîne, :meth:`!start` vaut toujours zéro. Cependant, la " -"méthode :meth:`~re.Pattern.search` d'un motif analyse toute la chaîne, afin " -"de trouver une correspondance potentielle qui ne commence pas à zéro. ::" - -#: howto/regex.rst:457 -msgid "" -"In actual programs, the most common style is to store the :ref:`match object " -"` in a variable, and then check if it was ``None``. This " -"usually looks like::" -msgstr "" -"Dans les programmes réels, la façon de faire la plus courante consiste à " -"stocker l'\\ :ref:`objet correspondance ` dans une variable, " -"puis à vérifier s'il vaut ``None``. Généralement, cela ressemble à ceci ::" - -#: howto/regex.rst:468 -msgid "" -"Two pattern methods return all of the matches for a " -"pattern. :meth:`~re.Pattern.findall` returns a list of matching strings::" -msgstr "" -"Deux méthodes de motifs renvoient toutes les correspondances pour un " -"motif. :meth:`~re.Pattern.findall` renvoie une liste des chaînes qui " -"correspondent ::" - -#: howto/regex.rst:475 -#, fuzzy -msgid "" -"The ``r`` prefix, making the literal a raw string literal, is needed in this " -"example because escape sequences in a normal \"cooked\" string literal that " -"are not recognized by Python, as opposed to regular expressions, now result " -"in a :exc:`SyntaxWarning` and will eventually become a :exc:`SyntaxError`. " -"See :ref:`the-backslash-plague`." -msgstr "" -"Le préfixe ``r``, qui indique une chaîne brute littérale, est nécessaire " -"dans cet exemple car les séquences d'échappement dans une chaîne littérale " -"qui ne sont pas reconnues par Python, alors qu'elles le sont par les " -"expressions régulières, produisent maintenant un :exc:`DeprecationWarning` " -"et deviendront possiblement des :exc:`SyntaxError`. Reportez-vous " -"à :ref:`the-backslash-plague`." - -#: howto/regex.rst:481 -msgid "" -":meth:`~re.Pattern.findall` has to create the entire list before it can be " -"returned as the result. The :meth:`~re.Pattern.finditer` method returns a " -"sequence of :ref:`match object ` instances as " -"an :term:`iterator`::" -msgstr "" -":meth:`~re.Pattern.findall` doit créer la liste entière avant de la renvoyer " -"comme résultat. La méthode :meth:`~re.Pattern.finditer` renvoie une séquence " -"d'instances d'\\ :ref:`objets correspondances ` en " -"tant :term:`qu'itérateur ` ::" - -#: howto/regex.rst:497 -#, fuzzy -msgid "Module-level functions" -msgstr "Fonctions de niveau module" - -#: howto/regex.rst:499 -#, fuzzy -msgid "" -"You don't have to create a pattern object and call its methods; " -"the :mod:`re` module also provides top-level functions " -"called :func:`~re.search`, :func:`~re.prefixmatch`, :func:`~re.findall`, :func:`~re.sub`, " -"and so forth. These functions take the same arguments as the corresponding " -"pattern method with the RE string added as the first argument, and still " -"return either ``None`` or a :ref:`match object ` instance. ::" -msgstr "" -"Vous n'avez pas besoin de créer un objet motif et d'appeler ses méthodes ; " -"le module :mod:`re` fournit des fonctions à son niveau, ce " -"sont :func:`~re.match`, :func:`~re.search`, :func:`~re.findall`, :func:`~re.sub` " -"et ainsi de suite. Ces fonctions prennent les mêmes arguments que les " -"méthodes correspondantes des objets motifs, avec la chaîne RE ajoutée en " -"tant que premier argument. Elles renvoient toujours ``None`` ou une instance " -"d'\\ :ref:`objet correspondance `. ::" - -#: howto/regex.rst:511 -msgid "" -"Under the hood, these functions simply create a pattern object for you and " -"call the appropriate method on it. They also store the compiled object in a " -"cache, so future calls using the same RE won't need to parse the pattern " -"again and again." -msgstr "" -"En interne, ces fonctions créent simplement un objet motif pour vous et " -"appellent la méthode appropriée de cet objet. Elles stockent également " -"l'objet compilé dans un cache afin que les appels suivants qui utilisent la " -"même RE n'aient pas besoin d'analyser le motif une nouvelle fois." - -#: howto/regex.rst:516 -msgid "" -"Should you use these module-level functions, or should you get the pattern " -"and call its methods yourself? If you're accessing a regex within a loop, " -"pre-compiling it will save a few function calls. Outside of loops, there's " -"not much difference thanks to the internal cache." -msgstr "" -"Devez-vous utiliser ces fonctions au niveau des modules ou devez-vous " -"calculer le motif et appeler vous-même ses méthodes ? Si vous utilisez " -"l'expression régulière à l'intérieur d'une boucle, la pré-compilation permet " -"d'économiser quelques appels de fonctions. En dehors des boucles, il n'y a " -"pas beaucoup de différence grâce au cache interne." - -#: howto/regex.rst:524 -#, fuzzy -msgid "Compilation flags" -msgstr "Options de compilation" - -#: howto/regex.rst:528 -msgid "" -"Compilation flags let you modify some aspects of how regular expressions " -"work. Flags are available in the :mod:`re` module under two names, a long " -"name such as :const:`IGNORECASE` and a short, one-letter form such " -"as :const:`I`. (If you're familiar with Perl's pattern modifiers, the one-" -"letter forms use the same letters; the short form of :const:`re.VERBOSE` " -"is :const:`re.X`, for example.) Multiple flags can be specified by bitwise " -"OR-ing them; ``re.I | re.M`` sets both the :const:`I` and :const:`M` flags, " -"for example." -msgstr "" -"Les options de compilation vous permettent de modifier le comportement des " -"expressions régulières. Ces options sont accessibles dans le " -"module :mod:`re` par deux noms, un long du type :const:`IGNORECASE` et un " -"court (une seule lettre) tel que :const:`I` (si vous êtes habitués aux " -"modificateurs de motifs Perl, la version courte utilise les mêmes lettres " -"que Perl, par exemple la version courte de :const:`re.VERBOSE` " -"est :const:`re.X`). Plusieurs options peuvent être spécifiées en appliquant " -"l'opérateur bit-à-bit *OR* ; par exemple, ``re.I | re.M`` active à la fois " -"les options :const:`I` et :const:`M`." - -#: howto/regex.rst:536 -msgid "" -"Here's a table of the available flags, followed by a more detailed " -"explanation of each one." -msgstr "" -"Vous trouvez ci-dessous le tableau des options disponibles, suivies " -"d'explications détaillées." - -#: howto/regex.rst:540 -msgid "Flag" -msgstr "Option" - -#: howto/regex.rst:540 -msgid "Meaning" -msgstr "Signification" - -#: howto/regex.rst:542 -msgid ":const:`ASCII`, :const:`A`" -msgstr ":const:`ASCII`, :const:`A`" - -#: howto/regex.rst:542 -msgid "" -"Makes several escapes like ``\\w``, ``\\b``, ``\\s`` and ``\\d`` match only " -"on ASCII characters with the respective property." -msgstr "" -"Transforme plusieurs échappements tels que ``\\w``, ``\\b``, ``\\s`` et " -"``\\d`` de manière à ce qu'ils ne correspondent qu'à des caractères ASCII " -"ayant la propriété demandée." - -#: howto/regex.rst:546 -msgid ":const:`DOTALL`, :const:`S`" -msgstr ":const:`DOTALL`, :const:`S`" - -#: howto/regex.rst:546 -msgid "Make ``.`` match any character, including newlines." -msgstr "" -"Fait en sorte que ``.`` corresponde à n'importe quel caractère, caractère de " -"retour à la ligne inclus." - -#: howto/regex.rst:549 -msgid ":const:`IGNORECASE`, :const:`I`" -msgstr ":const:`IGNORECASE`, :const:`I`" - -#: howto/regex.rst:549 -msgid "Do case-insensitive matches." -msgstr "Recherche une correspondance sans tenir compte de la casse." - -#: howto/regex.rst:551 -msgid ":const:`LOCALE`, :const:`L`" -msgstr ":const:`LOCALE`, :const:`L`" - -#: howto/regex.rst:551 -msgid "Do a locale-aware match." -msgstr "" -"Recherche une correspondance en tenant compte de la configuration de la " -"région." - -#: howto/regex.rst:553 -msgid ":const:`MULTILINE`, :const:`M`" -msgstr ":const:`MULTILINE`, :const:`M`" - -#: howto/regex.rst:553 -msgid "Multi-line matching, affecting ``^`` and ``$``." -msgstr "Correspondance multi-lignes, affecte ``^`` et ``$``." - -#: howto/regex.rst:556 -msgid ":const:`VERBOSE`, :const:`X` (for 'extended')" -msgstr "" -":const:`VERBOSE`, :const:`X` (pour *extended*, c.-à-d. étendu en anglais)" - -#: howto/regex.rst:556 -msgid "" -"Enable verbose REs, which can be organized more cleanly and understandably." -msgstr "" -"Active les RE verbeuses, qui peuvent être organisées de manière plus propre " -"et compréhensible." - -#: howto/regex.rst:565 -#, fuzzy -msgid "" -"Perform case-insensitive matching; character class and literal strings will " -"match letters by ignoring case. For example, ``[A-Z]`` will match lowercase " -"letters, too. Full Unicode matching also works unless the :const:`ASCII` " -"flag is used to disable non-ASCII matches. When the Unicode patterns ``[a-" -"z]`` or ``[A-Z]`` are used in combination with the :const:`IGNORECASE` flag, " -"they will match the 52 ASCII letters and 4 additional non-ASCII letters: 'İ' " -"(U+0130, Latin capital letter I with dot above), 'ı' (U+0131, Latin small " -"letter dotless i), 'ſ' (U+017F, Latin small letter long s) and 'K' (U+212A, " -"Kelvin sign). ``Spam`` will match ``'Spam'``, ``'spam'``, ``'spAM'``, or " -"``'ſpam'`` (the latter is matched only in Unicode mode). This lowercasing " -"doesn't take the current locale into account; it will if you also set " -"the :const:`LOCALE` flag." -msgstr "" -"Effectue une correspondance insensible à la casse ; les classes de " -"caractères et les littéraux de chaînes de caractères ignorent la casse pour " -"la correspondance. Par exemple, ``[A-Z]`` correspond aussi aux lettres " -"minuscules. La correspondance Unicode complète fonctionne également, sauf si " -"l'option :const:`ASCII` est utilisée pour désactiver les correspondances non " -"ASCII. Lorsque les motifs Unicode ``[a-z]`` ou ``[A-Z]`` sont utilisés en " -"combinaison avec l'option :const:`IGNORECASE`, ils correspondent avec les 52 " -"lettres ASCII et 4 lettres non ASCII supplémentaires : 'İ' (U+0130, lettre I " -"en majuscule latine avec un point au-dessus), 'ı' (U+0131, lettre minuscule " -"latine i sans point au-dessus), 'ſ' (U+017F, lettre minuscule latine longue " -"s) et 'K' (U+212A, signe du Kelvin). ``Spam`` correspond ainsi à ``'Spam'``, " -"``'spam'``, ``'spAM'`` ou ``'ſpam'`` (ce dernier ne correspond qu'en mode " -"Unicode). Le passage en minuscules ne prend pas en compte la configuration " -"de région courante ; elle le fait si vous mettez aussi " -"l'option :const:`LOCALE`." - -#: howto/regex.rst:583 -msgid "" -"Make ``\\w``, ``\\W``, ``\\b``, ``\\B`` and case-insensitive matching " -"dependent on the current locale instead of the Unicode database." -msgstr "" -"Rend ``\\w``, ``\\W``, ``\\b``, ``\\B`` et les correspondances non sensibles " -"à la casse dépendants de la configuration de la région courante au lieu de " -"la base de données Unicode." - -#: howto/regex.rst:586 -msgid "" -"Locales are a feature of the C library intended to help in writing programs " -"that take account of language differences. For example, if you're " -"processing encoded French text, you'd want to be able to write ``\\w+`` to " -"match words, but ``\\w`` only matches the character class ``[A-Za-z]`` in " -"bytes patterns; it won't match bytes corresponding to ``é`` or ``ç``. If " -"your system is configured properly and a French locale is selected, certain " -"C functions will tell the program that the byte corresponding to ``é`` " -"should also be considered a letter. Setting the :const:`LOCALE` flag when " -"compiling a regular expression will cause the resulting compiled object to " -"use these C functions for ``\\w``; this is slower, but also enables ``\\w+`` " -"to match French words as you'd expect. The use of this flag is discouraged " -"in Python 3 as the locale mechanism is very unreliable, it only handles one " -"\"culture\" at a time, and it only works with 8-bit locales. Unicode " -"matching is already enabled by default in Python 3 for Unicode (str) " -"patterns, and it is able to handle different locales/languages." -msgstr "" -"Les *locales* sont une caractéristique de la bibliothèque C destinées à " -"favoriser une programmation qui tient compte des différences linguistiques " -"(NdT : nous utilisons *configuration de région* dans cette page pour " -"désigner ce concept de la bibliothèque C). Par exemple, si vous traitez du " -"texte français, vous souhaitez pouvoir écrire ``\\w+`` pour faire " -"correspondre les mots, mais ``\\w`` ne correspond qu'à la classe de " -"caractères ``[A-Za-za-z]`` en octets ; cette classe ne correspond pas avec " -"les octets codant ``é`` ou ``ç``. Si votre système est configuré " -"correctement et que la configuration de région est définie sur 'français', " -"certaines fonctions C diront à votre programme que l'octet codant ``é`` doit " -"être considéré comme une lettre. Définir l'option :const:`LOCALE` lors de la " -"compilation d'une expression régulière fait que l'objet compilé résultant " -"utilise ces fonctions C pour ``\\w`` ; c'est plus lent mais cela permet à " -"``\\w+`` de correspondre avec les mots français tel qu'attendu. " -"L'utilisation de cette option est déconseillée en Python 3 car le mécanisme " -"de locale est très peu fiable, il ne gère qu'une seule « culture » à la fois " -"et il ne fonctionne qu'avec des locales 8 bits. La correspondance Unicode " -"est déjà activée par défaut dans Python 3 pour les motifs Unicode (type " -"*str*) et elle est capable de gérer différentes configurations de régions." - -#: howto/regex.rst:608 -msgid "" -"(``^`` and ``$`` haven't been explained yet; they'll be introduced in " -"section :ref:`more-metacharacters`.)" -msgstr "" -"Nota : ``^`` et ``$`` n'ont pas encore été expliqués ; ils sont introduits " -"dans la section :ref:`more-metacharacters`." - -#: howto/regex.rst:611 -msgid "" -"Usually ``^`` matches only at the beginning of the string, and ``$`` matches " -"only at the end of the string and immediately before the newline (if any) at " -"the end of the string. When this flag is specified, ``^`` matches at the " -"beginning of the string and at the beginning of each line within the string, " -"immediately following each newline. Similarly, the ``$`` metacharacter " -"matches either at the end of the string and at the end of each line " -"(immediately preceding each newline)." -msgstr "" -"Normalement, ``^`` correspond uniquement au début de la chaîne, et ``$`` " -"correspond uniquement à la fin de la chaîne et immédiatement avant la " -"nouvelle ligne (s'il y en a une) à la fin de la chaîne. Lorsque cette option " -"est spécifiée, ``^`` correspond au début de la chaîne de caractères et au " -"début de chaque ligne de la chaîne de caractères, immédiatement après le " -"début de la nouvelle ligne. De même, le métacaractère ``$`` correspond à la " -"fin de la chaîne de caractères ou à la fin de chaque ligne (précédant " -"immédiatement chaque nouvelle ligne)." - -#: howto/regex.rst:624 -msgid "" -"Makes the ``'.'`` special character match any character at all, including a " -"newline; without this flag, ``'.'`` will match anything *except* a newline." -msgstr "" -"Fait que le caractère spécial ``'.'`` corresponde avec n'importe quel " -"caractère, y compris le retour à la ligne ; sans cette option, ``'.'`` " -"correspond avec tout, *sauf* le retour à la ligne." - -#: howto/regex.rst:632 -msgid "" -"Make ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\s`` and ``\\S`` perform ASCII-" -"only matching instead of full Unicode matching. This is only meaningful for " -"Unicode patterns, and is ignored for byte patterns." -msgstr "" -"Fait que ``\\w``, ``\\W``, ``\\b``, ``\\B``, ``\\s`` et ``\\S`` ne " -"correspondent qu'avec des caractères ASCII au lieu de l'ensemble des " -"caractères Unicode. Cette option n'a de sens que pour des motifs Unicode, " -"elle est ignorée pour les motifs *bytes*." - -#: howto/regex.rst:641 -#, fuzzy -msgid "" -"This flag allows you to write regular expressions that are more readable by " -"granting you more flexibility in how you can format them. When this flag " -"has been specified, whitespace within the RE string is ignored, except when " -"the whitespace is in a character class or preceded by an unescaped " -"backslash; this lets you organize and indent the RE more clearly. This flag " -"also lets you put comments within a RE that will be ignored by the engine; " -"comments are marked by a ``'#'`` that's neither in a character class nor " -"preceded by an unescaped backslash." -msgstr "" -"Cette option vous permet d'écrire des expressions régulières plus lisibles " -"en vous permettant plus de flexibilité pour le formatage. Lorsque cette " -"option est activée, les « blancs » dans la chaîne RE sont ignorés, sauf " -"lorsque le « blancs » se trouve dans une classe de caractères ou est précédé " -"d'une barre oblique inverse ; ceci vous permet d'organiser et d'indenter vos " -"RE plus clairement. Cette option vous permet également de placer des " -"commentaires dans une RE, ils seront ignorés par le moteur ; les " -"commentaires commencent par un ``'#'`` qui n'est ni dans une classe de " -"caractères, ni précédé d'une barre oblique inverse." - -#: howto/regex.rst:650 -msgid "" -"For example, here's a RE that uses :const:`re.VERBOSE`; see how much easier " -"it is to read? ::" -msgstr "" -"Par exemple, voici une RE qui utilise :const:`re.VERBOSE` ; vous pouvez " -"constater qu'elle est beaucoup plus facile à lire ::" - -#: howto/regex.rst:663 -msgid "Without the verbose setting, the RE would look like this::" -msgstr "Sans l'option verbeuse, cette RE ressemble à ceci ::" - -#: howto/regex.rst:669 -msgid "" -"In the above example, Python's automatic concatenation of string literals " -"has been used to break up the RE into smaller pieces, but it's still more " -"difficult to understand than the version using :const:`re.VERBOSE`." -msgstr "" -"Dans l'exemple ci-dessus, Python concatène automatiquement les littéraux " -"chaînes de caractères qui ont été utilisés pour séparer la RE en petits " -"morceaux, mais la RE reste plus difficile à comprendre que sa version " -"utilisant :const:`re.VERBOSE`." - -#: howto/regex.rst:675 -#, fuzzy -msgid "More pattern power" -msgstr "Des motifs plus puissants" - -#: howto/regex.rst:677 -msgid "" -"So far we've only covered a part of the features of regular expressions. In " -"this section, we'll cover some new metacharacters, and how to use groups to " -"retrieve portions of the text that was matched." -msgstr "" -"Jusqu'à présent nous avons seulement couvert une partie des fonctionnalités " -"des expressions régulières. Dans cette section, nous couvrirons quelques " -"nouveaux métacaractères et l'utilisation des groupes pour récupérer des " -"portions de textes correspondantes." - -#: howto/regex.rst:685 -#, fuzzy -msgid "More metacharacters" -msgstr "Plus de métacaractères" - -#: howto/regex.rst:687 -msgid "" -"There are some metacharacters that we haven't covered yet. Most of them " -"will be covered in this section." -msgstr "" -"Nous n'avons pas encore couvert tous les métacaractères. Cette section " -"traite de la plupart de ceux que nous n'avons pas abordés." - -#: howto/regex.rst:690 -msgid "" -"Some of the remaining metacharacters to be discussed are :dfn:`zero-width " -"assertions`. They don't cause the engine to advance through the string; " -"instead, they consume no characters at all, and simply succeed or fail. For " -"example, ``\\b`` is an assertion that the current position is located at a " -"word boundary; the position isn't changed by the ``\\b`` at all. This means " -"that zero-width assertions should never be repeated, because if they match " -"once at a given location, they can obviously be matched an infinite number " -"of times." -msgstr "" -"Certains métacaractères restants sont des :dfn:`assertions de largeur zéro` " -"(*zero-width assertions* en anglais). Ils ne font pas avancer le moteur dans " -"la chaîne de caractères ; ils ne consomment aucun caractère et ils " -"réussissent ou échouent tout simplement. Par exemple, ``\\b`` est une " -"assertion selon laquelle la position actuelle est située à la limite d'un " -"mot ; la position n'est pas modifiée par le \" \\b \". Cela signifie que les " -"assertions de largeur zéro ne doivent pas être répétées car, si elles " -"correspondent à un endroit donné, elles correspondent automatiquement un " -"nombre infini de fois." - -#: howto/regex.rst:698 -msgid "``|``" -msgstr "``|``" - -#: howto/regex.rst:699 -msgid "" -"Alternation, or the \"or\" operator. If *A* and *B* are regular " -"expressions, ``A|B`` will match any string that matches either *A* or *B*. " -"``|`` has very low precedence in order to make it work reasonably when " -"you're alternating multi-character strings. ``Crow|Servo`` will match either " -"``'Crow'`` or ``'Servo'``, not ``'Cro'``, a ``'w'`` or an ``'S'``, and " -"``'ervo'``." -msgstr "" -"Union ensembliste ou opérateur « ou ». Si *A* et *B* sont des expressions " -"régulières, ``A|B`` correspond à toute chaîne qui correspond à A ou à B. La " -"priorité de ``|`` est très faible afin de pouvoir effectuer simplement des " -"unions de chaînes de plusieurs caractères. ``Crow|Servo`` correspond avec " -"``'Crow'`` ou ``'Servo'``, mais pas avec ``'Cro'``, un ``'w'`` ou un " -"``'S'``, ou encore ``'ervo'``." - -#: howto/regex.rst:705 -msgid "" -"To match a literal ``'|'``, use ``\\|``, or enclose it inside a character " -"class, as in ``[|]``." -msgstr "" -"Pour correspondre avec un ``'|'`` littéral, utilisez ``\\|`` ou placez-le " -"dans une classe de caractères, comme ceci ``[|]``." - -#: howto/regex.rst:708 -msgid "``^``" -msgstr "``^``" - -#: howto/regex.rst:709 -msgid "" -"Matches at the beginning of lines. Unless the :const:`MULTILINE` flag has " -"been set, this will only match at the beginning of the string. " -"In :const:`MULTILINE` mode, this also matches immediately after each newline " -"within the string." -msgstr "" -"Correspond à un début de ligne. À moins que l'option :const:`MULTILINE` ne " -"soit activée, cela ne fait correspondre que le début de la chaîne. Dans le " -"mode :const:`MULTILINE`, cela fait aussi correspondre immédiatement après " -"chaque nouvelle ligne à l'intérieur de la chaîne." - -#: howto/regex.rst:713 -msgid "" -"For example, if you wish to match the word ``From`` only at the beginning of " -"a line, the RE to use is ``^From``. ::" -msgstr "" -"Par exemple, si vous voulez trouver le mot ``From`` uniquement quand il est " -"en début de ligne, la RE à utiliser est ``^From``. ::" - -#: howto/regex.rst:721 -msgid "To match a literal ``'^'``, use ``\\^``." -msgstr "Pour trouver un ``'^'`` littéral, utilisez ``\\^``." - -#: howto/regex.rst:723 -msgid "``$``" -msgstr "``$``" - -#: howto/regex.rst:724 -msgid "" -"Matches at the end of a line, which is defined as either the end of the " -"string, or any location followed by a newline character. ::" -msgstr "" -"Correspond à une fin de ligne, ce qui veut dire soit la fin de la chaîne, " -"soit tout emplacement qui est suivi du caractère de nouvelle ligne. ::" - -#: howto/regex.rst:734 -msgid "" -"To match a literal ``'$'``, use ``\\$`` or enclose it inside a character " -"class, as in ``[$]``." -msgstr "" -"Pour trouver un ``'$'`` littéral, utilisez ``\\$`` ou placez-le à " -"l'intérieur d'une classe de caractères, comme ceci ``[$]``." - -#: howto/regex.rst:737 -msgid "``\\A``" -msgstr "``\\A``" - -#: howto/regex.rst:738 -msgid "" -"Matches only at the start of the string. When not in :const:`MULTILINE` " -"mode, ``\\A`` and ``^`` are effectively the same. In :const:`MULTILINE` " -"mode, they're different: ``\\A`` still matches only at the beginning of the " -"string, but ``^`` may match at any location inside the string that follows a " -"newline character." -msgstr "" -"Correspond au début de la chaîne de caractères, uniquement. Si " -"l'option :const:`MULTILINE` n'est pas activée, ``\\A`` et ``^`` sont " -"équivalents. Dans le mode :const:`MULTILINE`, ils sont différents : ``\\A`` " -"ne correspond toujours qu'au début de la chaîne alors que ``^`` correspond " -"aussi aux emplacements situés immédiatement après une nouvelle ligne à " -"l'intérieur de la chaîne." - -#: howto/regex.rst:743 -msgid "``\\z``" -msgstr "" - -#: howto/regex.rst:744 -msgid "Matches only at the end of the string." -msgstr "Correspond uniquement à la fin d'une chaîne de caractères." - -#: howto/regex.rst:746 -msgid "``\\Z``" -msgstr "``\\Z``" - -#: howto/regex.rst:747 -msgid "The same as ``\\z``. For compatibility with old Python versions." -msgstr "" - -#: howto/regex.rst:749 -msgid "``\\b``" -msgstr "``\\b``" - -#: howto/regex.rst:750 -msgid "" -"Word boundary. This is a zero-width assertion that matches only at the " -"beginning or end of a word. A word is defined as a sequence of alphanumeric " -"characters, so the end of a word is indicated by whitespace or a non-" -"alphanumeric character." -msgstr "" -"Limite de mot. C'est une assertion de largeur zéro qui correspond uniquement " -"aux positions de début et de fin de mot. Un mot est défini comme une " -"séquence de caractères alphanumériques ; ainsi, la fin d'un mot est indiquée " -"par un « blanc » ou un caractère non-alphanumérique." - -#: howto/regex.rst:755 -msgid "" -"The following example matches ``class`` only when it's a complete word; it " -"won't match when it's contained inside another word. ::" -msgstr "" -"L'exemple suivant fait correspondre ``class`` seulement si c'est un mot " -"complet ; il n'y a pas de correspondance quand il est à l'intérieur d'un " -"autre mot. ::" - -#: howto/regex.rst:766 -msgid "" -"There are two subtleties you should remember when using this special " -"sequence. First, this is the worst collision between Python's string " -"literals and regular expression sequences. In Python's string literals, " -"``\\b`` is the backspace character, ASCII value 8. If you're not using raw " -"strings, then Python will convert the ``\\b`` to a backspace, and your RE " -"won't match as you expect it to. The following example looks the same as our " -"previous RE, but omits the ``'r'`` in front of the RE string. ::" -msgstr "" -"Quand vous utilisez cette séquence spéciale, gardez deux choses à l'esprit. " -"Tout d'abord, c'est la pire collision entre les littéraux des chaînes Python " -"et les séquences d'expressions régulières. Dans les littéraux de chaîne de " -"caractères Python, ``\\b`` est le caractère de retour-arrière (*backspace* " -"en anglais), dont la valeur ASCII est 8. Si vous n'utilisez pas les chaînes " -"de caractères brutes, alors Python convertit le ``\\b`` en retour-arrière, " -"et votre RE ne correspond pas à ce que vous attendez. L'exemple suivant " -"ressemble à notre RE précédente, mais nous avons omis le ``'r'`` devant la " -"chaîne RE. ::" - -#: howto/regex.rst:780 -msgid "" -"Second, inside a character class, where there's no use for this assertion, " -"``\\b`` represents the backspace character, for compatibility with Python's " -"string literals." -msgstr "" -"Ensuite, dans une classe de caractères, où cette assertion n'a pas lieu " -"d'être, ``\\b`` représente le caractère retour-arrière, afin d'être " -"compatible avec les littéraux de chaînes de caractères." - -#: howto/regex.rst:784 -msgid "``\\B``" -msgstr "``\\B``" - -#: howto/regex.rst:785 -msgid "" -"Another zero-width assertion, this is the opposite of ``\\b``, only matching " -"when the current position is not at a word boundary." -msgstr "" -"Encore une assertion de largeur zéro, qui est l'opposée de ``\\b``, c'est-à-" -"dire qu'elle fait correspondre uniquement les emplacements qui ne sont pas à " -"la limite d'un mot." - -#: howto/regex.rst:790 -msgid "Grouping" -msgstr "Regroupement" - -#: howto/regex.rst:792 -msgid "" -"Frequently you need to obtain more information than just whether the RE " -"matched or not. Regular expressions are often used to dissect strings by " -"writing a RE divided into several subgroups which match different components " -"of interest. For example, an RFC-822 header line is divided into a header " -"name and a value, separated by a ``':'``, like this:" -msgstr "" -"Souvent, vous avez besoin d'obtenir plus d'informations que le simple fait " -"que la RE corresponde ou non. Ainsi, les expressions régulières sont souvent " -"utilisées pour analyser des chaînes de caractères en écrivant une RE qui " -"divise une chaîne en plusieurs sous-groupes, correspondant chacun à une " -"information particulière. Par exemple, une ligne d'en-tête RFC-822 peut se " -"diviser en un nom d'en-tête et une valeur associée, séparés par un ``':'``, " -"comme ceci :" - -#: howto/regex.rst:805 -msgid "" -"This can be handled by writing a regular expression which matches an entire " -"header line, and has one group which matches the header name, and another " -"group which matches the header's value." -msgstr "" -"Vous pouvez alors écrire une expression régulière qui fait correspondre une " -"ligne d'en-tête entière et qui comporte un groupe correspondant au nom de " -"l'en-tête, et un autre groupe correspondant à la valeur de l'en-tête." - -#: howto/regex.rst:809 -msgid "" -"Groups are marked by the ``'('``, ``')'`` metacharacters. ``'('`` and " -"``')'`` have much the same meaning as they do in mathematical expressions; " -"they group together the expressions contained inside them, and you can " -"repeat the contents of a group with a quantifier, such as ``*``, ``+``, ``?" -"``, or ``{m,n}``. For example, ``(ab)*`` will match zero or more " -"repetitions of ``ab``. ::" -msgstr "" -"Les groupes sont délimités par les métacaractères marqueurs ``'('`` et " -"``')'``. ``'('`` et ``')'`` ont à peu près le même sens que dans les " -"expressions mathématiques ; ils forment un groupe à partir des expressions " -"qu'ils encadrent ; vous pouvez répéter le contenu d'un groupe à l'aide d'un " -"quantificateur, comme ``*``, ``+``, ``?`` ou ``{m,n}``. Par exemple, " -"``(ab)*`` correspond à zéro, une ou plusieurs fois ``ab``. ::" - -#: howto/regex.rst:820 -msgid "" -"Groups indicated with ``'('``, ``')'`` also capture the starting and ending " -"index of the text that they match; this can be retrieved by passing an " -"argument " -"to :meth:`~re.Match.group`, :meth:`~re.Match.start`, :meth:`~re.Match.end`, " -"and :meth:`~re.Match.span`. Groups are numbered starting with 0. Group 0 " -"is always present; it's the whole RE, so :ref:`match object ` " -"methods all have group 0 as their default argument. Later we'll see how to " -"express groups that don't capture the span of text that they match. ::" -msgstr "" -"Les groupes délimités par ``'('`` et ``')'`` capturent également les indices " -"de début et de fin du texte avec lequel ils correspondent ; ces indices " -"peuvent être récupérés en passant un argument " -"à :meth:`~re.Match.group`, :meth:`~re.Match.start`, :meth:`~re.Match.end` " -"ou :meth:`~re.Match.span`. Les groupes sont numérotés à partir de 0, le " -"groupe 0 étant toujours présent ; c'est l'ensemble de la RE, donc les " -"méthodes de l'\\ :ref:`objet correspondance ` ont le groupe 0 " -"comme argument par défaut. Plus loin, nous voyons comment exprimer les " -"groupes qui ne capturent pas l'étendue du texte avec lequel ils " -"correspondent. ::" - -#: howto/regex.rst:836 -msgid "" -"Subgroups are numbered from left to right, from 1 upward. Groups can be " -"nested; to determine the number, just count the opening parenthesis " -"characters, going from left to right. ::" -msgstr "" -"Les sous-groupes sont numérotés de la gauche vers la droite, à partir de 1. " -"Les groupes peuvent être imbriqués ; pour déterminer le numéro, il vous " -"suffit de compter le nombre de parenthèses ouvrantes de la gauche vers la " -"droite. ::" - -#: howto/regex.rst:849 -msgid "" -":meth:`~re.Match.group` can be passed multiple group numbers at a time, in " -"which case it will return a tuple containing the corresponding values for " -"those groups. ::" -msgstr "" -"Vous pouvez passer plusieurs numéros de groupes à :meth:`~re.Match.group` en " -"même temps, elle vous renvoie alors un *n*-uplet contenant les valeurs " -"correspondantes pour ces groupes. ::" - -#: howto/regex.rst:855 -msgid "" -"The :meth:`~re.Match.groups` method returns a tuple containing the strings " -"for all the subgroups, from 1 up to however many there are. ::" -msgstr "" -"La méthode :meth:`~re.Match.groups` renvoie un *n*-uplet contenant les " -"chaînes pour tous les sous-groupes, en commençant par le numéro 1 jusqu'au " -"dernier. ::" - -#: howto/regex.rst:861 -msgid "" -"Backreferences in a pattern allow you to specify that the contents of an " -"earlier capturing group must also be found at the current location in the " -"string. For example, ``\\1`` will succeed if the exact contents of group 1 " -"can be found at the current position, and fails otherwise. Remember that " -"Python's string literals also use a backslash followed by numbers to allow " -"including arbitrary characters in a string, so be sure to use a raw string " -"when incorporating backreferences in a RE." -msgstr "" -"Les renvois dans un motif vous permettent de spécifier que le contenu d'un " -"groupe précédent doit aussi être trouvé à l'emplacement actuel dans la " -"chaîne. Par exemple, ``\\1`` réussit si le contenu du premier groupe se " -"trouve aussi à la position courante, sinon il échoue. Rappelez-vous que les " -"littéraux de chaînes Python utilisent aussi la barre oblique inverse suivie " -"d'un nombre pour insérer des caractères arbitraires dans une chaîne ; soyez " -"sûr d'utiliser une chaîne brute quand vous faites des renvois dans une RE." - -#: howto/regex.rst:869 -msgid "For example, the following RE detects doubled words in a string. ::" -msgstr "" -"Par exemple, la RE suivante détecte les mots doublés dans une chaîne. ::" - -#: howto/regex.rst:875 -msgid "" -"Backreferences like this aren't often useful for just searching through a " -"string --- there are few text formats which repeat data in this way --- but " -"you'll soon find out that they're *very* useful when performing string " -"substitutions." -msgstr "" -"Les renvois tels que celui-ci ne sont pas très utiles pour effectuer une " -"simple recherche dans une chaîne — il n'y a que peu de formats de textes qui " -"répètent des données ainsi — mais vous verrez bientôt qu'ils sont *très* " -"utiles pour effectuer des substitutions dans les chaînes." - -#: howto/regex.rst:881 -#, fuzzy -msgid "Non-capturing and named groups" -msgstr "Groupes non de capture et groupes nommés" - -#: howto/regex.rst:883 -msgid "" -"Elaborate REs may use many groups, both to capture substrings of interest, " -"and to group and structure the RE itself. In complex REs, it becomes " -"difficult to keep track of the group numbers. There are two features which " -"help with this problem. Both of them use a common syntax for regular " -"expression extensions, so we'll look at that first." -msgstr "" -"Les RE élaborées peuvent utiliser de nombreux groupes, à la fois pour " -"capturer des sous-chaînes intéressantes ainsi que pour regrouper et " -"structurer la RE elle-même. Dans les RE complexes, il devient difficile de " -"garder la trace des numéros de groupes. Deux caractéristiques aident à " -"résoudre ce problème, toutes deux utilisant la même syntaxe d'extension des " -"expressions régulières. Nous allons donc commencer en examinant cette " -"syntaxe." - -#: howto/regex.rst:889 -msgid "" -"Perl 5 is well known for its powerful additions to standard regular " -"expressions. For these new features the Perl developers couldn't choose new " -"single-keystroke metacharacters or new special sequences beginning with " -"``\\`` without making Perl's regular expressions confusingly different from " -"standard REs. If they chose ``&`` as a new metacharacter, for example, old " -"expressions would be assuming that ``&`` was a regular character and " -"wouldn't have escaped it by writing ``\\&`` or ``[&]``." -msgstr "" -"Les puissantes extensions des expressions régulières de Perl 5 sont " -"réputées. Pour les mettre en œuvre, les développeurs Perl ne pouvaient pas " -"utiliser de nouveaux métacaractères simples ou de nouvelles séquences " -"commençant par ``\\`` sans que les RE Perl ne deviennent trop différentes " -"des RE standards au point de créer de la confusion. S'ils avaient choisi " -"``&`` comme nouveau métacaractère, par exemple, les expressions déjà écrites " -"auraient considéré que ``&`` était un caractère standard et ne l'aurait pas " -"échappé en écrivant ``\\&`` ou ``[&]``." - -#: howto/regex.rst:896 -msgid "" -"The solution chosen by the Perl developers was to use ``(?...)`` as the " -"extension syntax. ``?`` immediately after a parenthesis was a syntax error " -"because the ``?`` would have nothing to repeat, so this didn't introduce any " -"compatibility problems. The characters immediately after the ``?`` " -"indicate what extension is being used, so ``(?=foo)`` is one thing (a " -"positive lookahead assertion) and ``(?:foo)`` is something else (a non-" -"capturing group containing the subexpression ``foo``)." -msgstr "" -"La solution adoptée par les développeurs Perl a été d'utiliser ``(?...)`` " -"comme syntaxe d'extension. Placer ``?`` immédiatement après une parenthèse " -"était une erreur de syntaxe, parce que le ``?`` n'a alors rien à répéter. " -"Ainsi, cela n'a pas introduit de problème de compatibilité. Les caractères " -"qui suivent immédiatement le ``?`` indiquent quelle extension est utilisée, " -"donc ``(?=truc)`` est une chose (une assertion positive anticipée) et " -"``(?:truc)`` est une autre chose (la sous-expression ``truc`` que l'on " -"groupe)." - -#: howto/regex.rst:904 -msgid "" -"Python supports several of Perl's extensions and adds an extension syntax to " -"Perl's extension syntax. If the first character after the question mark is " -"a ``P``, you know that it's an extension that's specific to Python." -msgstr "" -"Python gère plusieurs des extensions Perl et rajoute une extension à la " -"syntaxe des extensions Perl. Si le premier caractère après le point " -"d'interrogation est ``P``, cela signifie que c'est une extension spécifique " -"à Python." - -#: howto/regex.rst:909 -msgid "" -"Now that we've looked at the general extension syntax, we can return to the " -"features that simplify working with groups in complex REs." -msgstr "" -"Après avoir vu la syntaxe générale d'extension des RE, nous pouvons revenir " -"aux fonctionnalités qui simplifient le travail avec les groupes dans des RE " -"complexes." - -#: howto/regex.rst:912 -msgid "" -"Sometimes you'll want to use a group to denote a part of a regular " -"expression, but aren't interested in retrieving the group's contents. You " -"can make this fact explicit by using a non-capturing group: ``(?:...)``, " -"where you can replace the ``...`` with any other regular expression. ::" -msgstr "" -"Parfois, vous souhaitez utiliser un groupe pour marquer une partie de " -"l'expression régulière mais le contenu de ce groupe ne vous intéresse pas " -"vraiment. Vous pouvez l'indiquer explicitement en utilisant la syntaxe de " -"groupe, mais sans indiquer que vous voulez en capturer le contenu : " -"``(?:...)``, où vous remplacez les ``...`` par n'importe quelle expression " -"régulière. ::" - -#: howto/regex.rst:924 -msgid "" -"Except for the fact that you can't retrieve the contents of what the group " -"matched, a non-capturing group behaves exactly the same as a capturing " -"group; you can put anything inside it, repeat it with a repetition " -"metacharacter such as ``*``, and nest it within other groups (capturing or " -"non-capturing). ``(?:...)`` is particularly useful when modifying an " -"existing pattern, since you can add new groups without changing how all the " -"other groups are numbered. It should be mentioned that there's no " -"performance difference in searching between capturing and non-capturing " -"groups; neither form is any faster than the other." -msgstr "" -"À part le fait que vous n'avez pas accès au contenu du groupe, un groupe se " -"comporte exactement de la même manière qu'un groupe de capture ; vous pouvez " -"placer n'importe quoi dedans, spécifier une répétition avec un métacaractère " -"tel que ``*`` et l'imbriquer dans un autre groupe (de capture ou pas). " -"``(?:...)`` est particulièrement utile quand vous modifiez des motifs " -"existants, puisque vous pouvez ajouter de nouveaux groupes sans changer la " -"façon dont les autres groupes sont numérotés. Nous devons mentionner ici " -"qu'il n'y a aucune différence de performance dans la recherche de groupes, " -"de capture ou non ; les deux formes travaillent à la même vitesse." - -#: howto/regex.rst:933 -msgid "" -"A more significant feature is named groups: instead of referring to them by " -"numbers, groups can be referenced by a name." -msgstr "" -"Une fonctionnalité plus importante est le nommage des groupes : au lieu d'y " -"faire référence par des nombres, vous pouvez référencer des groupes par leur " -"nom." - -#: howto/regex.rst:936 -msgid "" -"The syntax for a named group is one of the Python-specific extensions: ``(?" -"P...)``. *name* is, obviously, the name of the group. Named groups " -"behave exactly like capturing groups, and additionally associate a name with " -"a group. The :ref:`match object ` methods that deal with " -"capturing groups all accept either integers that refer to the group by " -"number or strings that contain the desired group's name. Named groups are " -"still given numbers, so you can retrieve information about a group in two " -"ways::" -msgstr "" -"La syntaxe pour nommer les groupes est l'une des extensions spécifiques à " -"Python : ``(?P....)``. *nom* est, vous vous en doutez, le nom du " -"groupe. Les groupes nommés se comportent exactement comme des groupes de " -"capture, sauf qu'ils associent en plus un nom à un groupe. Les méthodes " -"des :ref:`objets correspondances ` qui gèrent les groupes de " -"capture acceptent soit des entiers qui font référence aux numéros des " -"groupes, soit des chaînes de caractères qui désignent les noms des groupes " -"désirés. Les groupes nommés se voient toujours attribuer un numéro, vous " -"pouvez ainsi récupérer les informations d'un groupe de deux façons ::" - -#: howto/regex.rst:951 -msgid "" -"Additionally, you can retrieve named groups as a dictionary " -"with :meth:`~re.Match.groupdict`::" -msgstr "" -"De plus, vous pouvez récupérer les groupes nommés comme dictionnaire " -"avec :meth:`~re.Match.groupdict` ::" - -#: howto/regex.rst:958 -msgid "" -"Named groups are handy because they let you use easily remembered names, " -"instead of having to remember numbers. Here's an example RE from " -"the :mod:`imaplib` module::" -msgstr "" -"Les groupes nommés sont pratiques car il est plus facile de se rappeler un " -"nom qu'un numéro. Voici un exemple de RE tirée du module :mod:`imaplib` ::" - -#: howto/regex.rst:969 -msgid "" -"It's obviously much easier to retrieve ``m.group('zonem')``, instead of " -"having to remember to retrieve group 9." -msgstr "" -"Il est évidemment plus facile de récupérer ``m.group('zonem')`` que de se " -"rappeler de récupérer le groupe 9." - -#: howto/regex.rst:972 -msgid "" -"The syntax for backreferences in an expression such as ``(...)\\1`` refers " -"to the number of the group. There's naturally a variant that uses the group " -"name instead of the number. This is another Python extension: ``(?P=name)`` " -"indicates that the contents of the group called *name* should again be " -"matched at the current point. The regular expression for finding doubled " -"words, ``\\b(\\w+)\\s+\\1\\b`` can also be written as ``\\b(?P\\w+)\\s+" -"(?P=word)\\b``::" -msgstr "" -"La syntaxe des renvois dans une expression telle que ``(....)\\1`` fait " -"référence au numéro du groupe. Il y a naturellement une variante qui utilise " -"le nom du groupe au lieu du numéro. C'est une autre extension Python : ``(?" -"P=nom)`` indique que le contenu du groupe appelé *nom* doit correspondre à " -"nouveau avec l'emplacement courant. L'expression régulière pour trouver des " -"mots doublés, ``\\b(\\w+)\\s+\\1\\b`` peut ainsi être ré-écrite en ``\\b(?" -"P\\w+)\\s+(?P=mot)\\b`` ::" - -#: howto/regex.rst:985 -#, fuzzy -msgid "Lookahead assertions" -msgstr "Assertions prédictives" - -#: howto/regex.rst:987 -msgid "" -"Another zero-width assertion is the lookahead assertion. Lookahead " -"assertions are available in both positive and negative form, and look like " -"this:" -msgstr "" -"Une autre assertion de largeur zéro est l'assertion prédictive. Une " -"assertion prédictive peut s'exprimer sous deux formes, la positive et la " -"négative, comme ceci :" - -#: howto/regex.rst:990 -msgid "``(?=...)``" -msgstr "``(?=...)``" - -#: howto/regex.rst:991 -msgid "" -"Positive lookahead assertion. This succeeds if the contained regular " -"expression, represented here by ``...``, successfully matches at the current " -"location, and fails otherwise. But, once the contained expression has been " -"tried, the matching engine doesn't advance at all; the rest of the pattern " -"is tried right where the assertion started." -msgstr "" -"Assertion prédictive positive. Elle réussit si l'expression régulière " -"contenue, représentée ici par ``...``, correspond effectivement à " -"l'emplacement courant ; dans le cas contraire, elle échoue. Mais, une fois " -"que l'expression contenue a été essayée, le moteur de correspondance " -"n'avance pas ; le reste du motif est testé à l'endroit même où l'assertion a " -"commencé." - -#: howto/regex.rst:997 -msgid "``(?!...)``" -msgstr "``(?!...)``" - -#: howto/regex.rst:998 -msgid "" -"Negative lookahead assertion. This is the opposite of the positive " -"assertion; it succeeds if the contained expression *doesn't* match at the " -"current position in the string." -msgstr "" -"Assertion prédictive négative. C'est l'opposée de l'assertion positive ; " -"elle réussit si l'expression régulière contenue *ne* correspond *pas* à " -"l'emplacement courant dans la chaîne." - -#: howto/regex.rst:1002 -msgid "" -"To make this concrete, let's look at a case where a lookahead is useful. " -"Consider a simple pattern to match a filename and split it apart into a base " -"name and an extension, separated by a ``.``. For example, in ``news.rc``, " -"``news`` is the base name, and ``rc`` is the filename's extension." -msgstr "" -"Pour rendre ceci plus concret, regardons le cas où une prédiction est utile. " -"Considérons un motif simple qui doit faire correspondre un nom de fichier et " -"le diviser en un nom de base et une extension, séparés par un ``.``. Par " -"exemple, dans ``news.rc``, ``news`` est le nom de base et ``rc`` est " -"l'extension du nom de fichier." - -#: howto/regex.rst:1007 -msgid "The pattern to match this is quite simple:" -msgstr "Le motif de correspondance est plutôt simple :" - -#: howto/regex.rst:1009 -msgid "``.*[.].*$``" -msgstr "``.*[.].*$``" - -#: howto/regex.rst:1011 -msgid "" -"Notice that the ``.`` needs to be treated specially because it's a " -"metacharacter, so it's inside a character class to only match that specific " -"character. Also notice the trailing ``$``; this is added to ensure that all " -"the rest of the string must be included in the extension. This regular " -"expression matches ``foo.bar`` and ``autoexec.bat`` and ``sendmail.cf`` and " -"``printers.conf``." -msgstr "" -"Notez que le ``.`` doit être traité spécialement car c'est un métacaractère, " -"nous le plaçons donc à l'intérieur d'une classe de caractères pour ne faire " -"correspondre que ce caractère spécifique. Notez également le ``$`` en fin ; " -"nous l'avons ajouté pour nous assurer que tout le reste de la chaîne est " -"bien inclus dans l'extension. Cette expression régulière fait correspondre " -"``truc.bar``, ``autoexec.bat``, ``sendmail.cf`` et ``printers.conf``." - -#: howto/regex.rst:1018 -msgid "" -"Now, consider complicating the problem a bit; what if you want to match " -"filenames where the extension is not ``bat``? Some incorrect attempts:" -msgstr "" -"Maintenant, compliquons un peu le problème ; si nous voulons faire " -"correspondre les noms de fichiers dont l'extension n'est pas ``bat`` ? voici " -"quelques tentatives incorrectes :" - -#: howto/regex.rst:1021 -#, fuzzy -msgid "``.*[.][^b].*$``" -msgstr "``.*[.].*$``" - -#: howto/regex.rst:1023 -#, fuzzy -msgid "" -"The first attempt above tries to exclude ``bat`` by requiring that the first " -"character of the extension is not a ``b``. This is wrong, because the " -"pattern also doesn't match ``foo.bar``." -msgstr "" -"``.*[.][^b].*$`` Le premier essai ci-dessus tente d'exclure ``bat`` en " -"spécifiant que le premier caractère de l'extension ne doit pas être ``b``. " -"Cela ne fonctionne pas, car le motif n'accepte pas ``truc.bar``." - -#: howto/regex.rst:1027 -msgid "``.*[.]([^b]..|.[^a].|..[^t])$``" -msgstr "``.*[.]([^b]..|.[^a].|..[^t])$``" - -#: howto/regex.rst:1029 -msgid "" -"The expression gets messier when you try to patch up the first solution by " -"requiring one of the following cases to match: the first character of the " -"extension isn't ``b``; the second character isn't ``a``; or the third " -"character isn't ``t``. This accepts ``foo.bar`` and rejects " -"``autoexec.bat``, but it requires a three-letter extension and won't accept " -"a filename with a two-letter extension such as ``sendmail.cf``. We'll " -"complicate the pattern again in an effort to fix it." -msgstr "" -"L'expression devient plus confuse si nous essayons de réparer la première " -"solution en spécifiant l'un des cas suivants : le premier caractère de " -"l'extension n'est pas ``b`` ; le deuxième caractère n'est pas ``a`` ; ou le " -"troisième caractère n'est pas ``t``. Ce motif accepte ``truc.bar`` et " -"rejette ``autoexec.bat``, mais elle nécessite une extension de trois lettres " -"et n'accepte pas un nom de fichier avec une extension de deux lettres comme " -"``sendmail.cf``. Compliquons encore une fois le motif pour essayer de le " -"réparer." - -#: howto/regex.rst:1037 -msgid "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" -msgstr "``.*[.]([^b].?.?|.[^a]?.?|..?[^t]?)$``" - -#: howto/regex.rst:1039 -msgid "" -"In the third attempt, the second and third letters are all made optional in " -"order to allow matching extensions shorter than three characters, such as " -"``sendmail.cf``." -msgstr "" -"Pour cette troisième tentative, les deuxième et troisième lettres sont " -"devenues facultatives afin de permettre la correspondance avec des " -"extensions plus courtes que trois caractères, comme ``sendmail.cf``." - -#: howto/regex.rst:1043 -msgid "" -"The pattern's getting really complicated now, which makes it hard to read " -"and understand. Worse, if the problem changes and you want to exclude both " -"``bat`` and ``exe`` as extensions, the pattern would get even more " -"complicated and confusing." -msgstr "" -"Le motif devient vraiment compliqué maintenant, ce qui le rend difficile à " -"lire et à comprendre. Pire, si le problème change et que vous voulez exclure " -"à la fois ``bat`` et ``exe`` en tant qu'extensions, le modèle deviendra " -"encore plus compliqué et confus." - -#: howto/regex.rst:1048 -msgid "A negative lookahead cuts through all this confusion:" -msgstr "Une assertion prédictive négative supprime toute cette confusion :" - -#: howto/regex.rst:1050 -#, fuzzy -msgid "``.*[.](?!bat$)[^.]*$``" -msgstr "``.*[.](?!bat$|exe$)[^.]*$``" - -#: howto/regex.rst:1052 -#, fuzzy -msgid "" -"The negative lookahead means: if the expression ``bat`` doesn't match at " -"this point, try the rest of the pattern; if ``bat$`` does match, the whole " -"pattern will fail. The trailing ``$`` is required to ensure that something " -"like ``sample.batch``, where the extension only starts with ``bat``, will be " -"allowed. The ``[^.]*`` makes sure that the pattern works when there are " -"multiple dots in the filename." -msgstr "" -"``.*[.](?!bat$)[^.]*$`` Cette assertion prédictive négative signifie : si " -"l'expression ``bat`` ne correspond pas à cet emplacement, essaie le reste du " -"motif ; si ``bat$`` correspond, tout le motif échoue. Le ``$`` est " -"nécessaire pour s'assurer que quelque chose comme ``sample.batch``, où c'est " -"seulement le début de l'extension qui vaut ``bat``, est autorisé. Le " -"``[^...]*`` s'assure que le motif fonctionne lorsqu'il y a plusieurs points " -"dans le nom de fichier." - -#: howto/regex.rst:1059 -msgid "" -"Excluding another filename extension is now easy; simply add it as an " -"alternative inside the assertion. The following pattern excludes filenames " -"that end in either ``bat`` or ``exe``:" -msgstr "" -"Exclure une autre extension de nom de fichier est maintenant facile ; il " -"suffit de l'ajouter comme alternative à l'intérieur de l'assertion. Le motif " -"suivant exclut les noms de fichiers qui se terminent par ``bat`` ou ``exe`` :" - -#: howto/regex.rst:1063 -msgid "``.*[.](?!bat$|exe$)[^.]*$``" -msgstr "``.*[.](?!bat$|exe$)[^.]*$``" - -#: howto/regex.rst:1067 -#, fuzzy -msgid "Modifying strings" -msgstr "Modification de chaînes" - -#: howto/regex.rst:1069 -msgid "" -"Up to this point, we've simply performed searches against a static string. " -"Regular expressions are also commonly used to modify strings in various " -"ways, using the following pattern methods:" -msgstr "" -"Jusqu'à présent, nous avons simplement effectué des recherches dans une " -"chaîne statique. Les expressions régulières sont aussi couramment utilisées " -"pour modifier les chaînes de caractères de diverses manières, en utilisant " -"les méthodes suivantes des motifs :" - -#: howto/regex.rst:1076 -msgid "``split()``" -msgstr "``split()``" - -#: howto/regex.rst:1076 -msgid "Split the string into a list, splitting it wherever the RE matches" -msgstr "" -"Découpe la chaîne de caractère en liste, la découpant partout où la RE " -"correspond" - -#: howto/regex.rst:1079 -msgid "``sub()``" -msgstr "``sub()``" - -#: howto/regex.rst:1079 -msgid "" -"Find all substrings where the RE matches, and replace them with a different " -"string" -msgstr "" -"Recherche toutes les sous-chaînes de caractères où la RE correspond et les " -"substitue par une chaîne de caractères différente" - -#: howto/regex.rst:1082 -msgid "``subn()``" -msgstr "``subn()``" - -#: howto/regex.rst:1082 -msgid "" -"Does the same thing as :meth:`!sub`, but returns the new string and the " -"number of replacements" -msgstr "" -"Fait la même chose que :meth:`!sub`, mais renvoie la nouvelle chaîne et le " -"nombre de remplacements effectués" - -#: howto/regex.rst:1089 -#, fuzzy -msgid "Splitting strings" -msgstr "Découpage de chaînes" - -#: howto/regex.rst:1091 -msgid "" -"The :meth:`~re.Pattern.split` method of a pattern splits a string apart " -"wherever the RE matches, returning a list of the pieces. It's similar to " -"the :meth:`~str.split` method of strings but provides much more generality " -"in the delimiters that you can split by; string :meth:`!split` only supports " -"splitting by whitespace or by a fixed string. As you'd expect, there's a " -"module-level :func:`re.split` function, too." -msgstr "" -"La méthode :meth:`~re.Pattern.Pattern.split` d'un motif divise une chaîne de " -"caractères à chaque fois que la RE correspond, retournant la liste des " -"morceaux. C'est similaire à la méthode :meth:`~str.split` mais est beaucoup " -"plus générale par les délimiteurs que vous pouvez spécifier ; la " -"méthode :meth:`!split` du type *string* ne gère que les découpages en " -"suivant les « blancs » ou suivant une chaîne définie. Comme vous pouvez vous " -"y attendre, il y a aussi une fonction :func:`re.split` de niveau module." - -#: howto/regex.rst:1102 -msgid "" -"Split *string* by the matches of the regular expression. If capturing " -"parentheses are used in the RE, then their contents will also be returned as " -"part of the resulting list. If *maxsplit* is nonzero, at most *maxsplit* " -"splits are performed." -msgstr "" -"Découpe *string* en suivant les correspondances de l'expression régulière. " -"Si des parenthèses de capture sont utilisées dans la RE, leur contenu est " -"également renvoyé dans la liste résultante. Si *maxsplit* n'est pas nul, au " -"plus *maxsplit* découpages sont effectués." - -#: howto/regex.rst:1107 -msgid "" -"You can limit the number of splits made, by passing a value for *maxsplit*. " -"When *maxsplit* is nonzero, at most *maxsplit* splits will be made, and the " -"remainder of the string is returned as the final element of the list. In " -"the following example, the delimiter is any sequence of non-alphanumeric " -"characters. ::" -msgstr "" -"Vous pouvez limiter le nombre de découpages effectués en passant une valeur " -"pour *maxsplit*. Quand *maxsplit* n'est pas nul, au plus *maxsplit* " -"découpages sont effectués et le reste de la chaîne est renvoyé comme dernier " -"élément de la liste. Dans l'exemple suivant, le délimiteur est toute " -"séquence de caractères non alphanumériques. ::" - -#: howto/regex.rst:1119 -msgid "" -"Sometimes you're not only interested in what the text between delimiters is, " -"but also need to know what the delimiter was. If capturing parentheses are " -"used in the RE, then their values are also returned as part of the list. " -"Compare the following calls::" -msgstr "" -"Parfois, vous voulez récupérer le texte entre les délimiteurs mais aussi " -"quel était le délimiteur. Si des parenthèses de capture sont utilisées dans " -"la RE, leurs valeurs sont également renvoyées dans la liste. Comparons les " -"appels suivants ::" - -#: howto/regex.rst:1131 -msgid "" -"The module-level function :func:`re.split` adds the RE to be used as the " -"first argument, but is otherwise the same. ::" -msgstr "" -"La fonction de niveau module :func:`re.split` ajoute la RE à utiliser comme " -"premier argument, mais est par ailleurs identique. ::" - -#: howto/regex.rst:1143 -#, fuzzy -msgid "Search and replace" -msgstr "Recherche et substitution" - -#: howto/regex.rst:1145 -msgid "" -"Another common task is to find all the matches for a pattern, and replace " -"them with a different string. The :meth:`~re.Pattern.sub` method takes a " -"replacement value, which can be either a string or a function, and the " -"string to be processed." -msgstr "" -"Une autre tâche classique est de trouver toutes les correspondances d'un " -"motif et de les remplacer par une autre chaîne. La " -"méthode :meth:`~re.Pattern.sub` prend une valeur de substitution, qui peut " -"être une chaîne de caractères ou une fonction, et la chaîne à traiter." - -#: howto/regex.rst:1152 -msgid "" -"Returns the string obtained by replacing the leftmost non-overlapping " -"occurrences of the RE in *string* by the replacement *replacement*. If the " -"pattern isn't found, *string* is returned unchanged." -msgstr "" -"Renvoie la chaîne obtenue en remplaçant les occurrences sans chevauchement " -"les plus à gauche de la RE dans *string* par la substitution *replacement*. " -"Si le motif n'est pas trouvé, *string* est renvoyée inchangée." - -#: howto/regex.rst:1156 -msgid "" -"The optional argument *count* is the maximum number of pattern occurrences " -"to be replaced; *count* must be a non-negative integer. The default value " -"of 0 means to replace all occurrences." -msgstr "" -"L'argument optionnel *count* est le nombre maximum d'occurrences du motif à " -"remplacer ; *count* doit être un entier positif ou nul. La valeur par défaut " -"de 0 signifie qu'il faut remplacer toutes les occurrences." - -#: howto/regex.rst:1160 -msgid "" -"Here's a simple example of using the :meth:`~re.Pattern.sub` method. It " -"replaces colour names with the word ``colour``::" -msgstr "" -"Voici un exemple simple utilisant la méthode :meth:`~re.Pattern.sub`. Nous " -"remplaçons les noms des couleurs par le mot ``colour`` ::" - -#: howto/regex.rst:1169 -msgid "" -"The :meth:`~re.Pattern.subn` method does the same work, but returns a 2-" -"tuple containing the new string value and the number of replacements that " -"were performed::" -msgstr "" -"La méthode :meth:`~re.Pattern.subn.subn` fait la même chose mais renvoie un " -"couple contenant la nouvelle valeur de la chaîne de caractères et le nombre " -"de remplacements effectués ::" - -#: howto/regex.rst:1178 -msgid "" -"Empty matches are replaced only when they're not adjacent to a previous " -"empty match. ::" -msgstr "" -"Les correspondances vides ne sont remplacées que lorsqu'elles ne sont pas " -"adjacentes à une correspondance vide précédente. ::" - -#: howto/regex.rst:1185 -msgid "" -"If *replacement* is a string, any backslash escapes in it are processed. " -"That is, ``\\n`` is converted to a single newline character, ``\\r`` is " -"converted to a carriage return, and so forth. Unknown escapes such as " -"``\\&`` are left alone. Backreferences, such as ``\\6``, are replaced with " -"the substring matched by the corresponding group in the RE. This lets you " -"incorporate portions of the original text in the resulting replacement " -"string." -msgstr "" -"Si *replacement* est une chaîne de caractères, toute barre oblique inverse " -"d'échappement est traitée. C'est-à-dire que ``\\n`` est converti en " -"caractère de nouvelle ligne, ``\\r`` est converti en retour chariot, et " -"ainsi de suite. Les échappements inconnus comme ``\\&`` sont laissés tels " -"quels. Les renvois, tels que ``\\6``, sont remplacés par la sous-chaîne " -"correspondante au groupe dans le RE. Ceci vous permet d'incorporer des " -"parties du texte original dans la chaîne de remplacement résultante." - -#: howto/regex.rst:1192 -msgid "" -"This example matches the word ``section`` followed by a string enclosed in " -"``{``, ``}``, and changes ``section`` to ``subsection``::" -msgstr "" -"Cet exemple fait correspondre le mot ``section`` suivi par une chaîne " -"encadrée par ``{`` et ``}``, et modifie ``section`` en ``subsection`` ::" - -#: howto/regex.rst:1199 -msgid "" -"There's also a syntax for referring to named groups as defined by the ``(?" -"P...)`` syntax. ``\\g`` will use the substring matched by the " -"group named ``name``, and ``\\g`` uses the corresponding group " -"number. ``\\g<2>`` is therefore equivalent to ``\\2``, but isn't ambiguous " -"in a replacement string such as ``\\g<2>0``. (``\\20`` would be interpreted " -"as a reference to group 20, not a reference to group 2 followed by the " -"literal character ``'0'``.) The following substitutions are all equivalent, " -"but use all three variations of the replacement string. ::" -msgstr "" -"Il existe aussi une syntaxe pour faire référence aux groupes nommés définis " -"par la syntaxe ``(?P....)``. ``\\g`` utilise la sous-chaîne " -"correspondante au groupe nommé ``nom`` et ``\\g`` utilise le numéro " -"de groupe correspondant. ``\\g<2>`` est donc l'équivalent de ``\\2``, mais " -"n'est pas ambigu dans une chaîne de substitution telle que ``\\g<2>0`` " -"(``\\20`` serait interprété comme une référence au groupe 20 et non comme " -"une référence au groupe 2 suivie du caractère littéral ``'0'``). Les " -"substitutions suivantes sont toutes équivalentes mais utilisent les trois " -"variantes de la chaîne de remplacement. ::" - -#: howto/regex.rst:1216 -msgid "" -"*replacement* can also be a function, which gives you even more control. If " -"*replacement* is a function, the function is called for every non-" -"overlapping occurrence of *pattern*. On each call, the function is passed " -"a :ref:`match object ` argument for the match and can use " -"this information to compute the desired replacement string and return it." -msgstr "" -"*replacement* peut aussi être une fonction, ce qui vous donne encore plus de " -"contrôle. Si *replacement* est une fonction, la fonction est appelée pour " -"chaque occurrence non chevauchante de *pattern*. À chaque appel, un " -"argument :ref:`objet correspondance ` est passé à la " -"fonction, qui peut utiliser cette information pour calculer la chaîne de " -"remplacement désirée et la renvoyer." - -#: howto/regex.rst:1222 -msgid "" -"In the following example, the replacement function translates decimals into " -"hexadecimal::" -msgstr "" -"Dans l'exemple suivant, la fonction de substitution convertit un nombre " -"décimal en hexadécimal ::" - -#: howto/regex.rst:1234 -msgid "" -"When using the module-level :func:`re.sub` function, the pattern is passed " -"as the first argument. The pattern may be provided as an object or as a " -"string; if you need to specify regular expression flags, you must either use " -"a pattern object as the first parameter, or use embedded modifiers in the " -"pattern string, e.g. ``sub(\"(?i)b+\", \"x\", \"bbbb BBBB\")`` returns ``'x " -"x'``." -msgstr "" -"Quand vous utilisez la fonction de niveau module :func:`re.sub`, le motif " -"est passé comme premier argument. Vous pouvez fournir le motif sous forme " -"d'objet ou de chaîne de caractères ; si vous avez besoin de spécifier des " -"options pour l'expression régulière, vous devez soit utiliser un objet motif " -"comme premier paramètre, soit utiliser des modificateurs intégrés dans la " -"chaîne de caractères, par exemple ``sub(\"(?i)b+\", \"x\", \"bbbb BBBBB\")`` " -"renvoie ``'x x'``." - -#: howto/regex.rst:1242 -#, fuzzy -msgid "Common problems" -msgstr "Problèmes classiques" - -#: howto/regex.rst:1244 -msgid "" -"Regular expressions are a powerful tool for some applications, but in some " -"ways their behaviour isn't intuitive and at times they don't behave the way " -"you may expect them to. This section will point out some of the most common " -"pitfalls." -msgstr "" -"Les expressions régulières constituent un outil puissant pour certaines " -"applications mais, à certains égards, leur comportement n'est pas intuitif " -"et, parfois, elles ne se comportent pas comme vous pouvez vous y attendre. " -"Cette section met en évidence certains des pièges les plus courants." - -#: howto/regex.rst:1250 -#, fuzzy -msgid "Use string methods" -msgstr "Utilisez les méthodes du type *string*" - -#: howto/regex.rst:1252 -msgid "" -"Sometimes using the :mod:`re` module is a mistake. If you're matching a " -"fixed string, or a single character class, and you're not using " -"any :mod:`re` features such as the :const:`~re.IGNORECASE` flag, then the " -"full power of regular expressions may not be required. Strings have several " -"methods for performing operations with fixed strings and they're usually " -"much faster, because the implementation is a single small C loop that's been " -"optimized for the purpose, instead of the large, more generalized regular " -"expression engine." -msgstr "" -"Parfois, il ne faut pas utiliser le module :mod:`re`. Si vous faites " -"correspondre une chaîne fixe, ou une classe à un seul caractère, et que vous " -"n'utilisez pas les fonctionnalités de :mod:`re` telles que " -"l'option :const:`~re.IGNORECASE`, alors la puissance des expressions " -"régulières n'est pas nécessaire. Les chaînes de caractères ont plusieurs " -"méthodes pour opérer sur des chaînes fixes et elles sont généralement " -"beaucoup plus rapides, parce que l'implémentation est une seule petite " -"boucle C qui a été optimisée, au lieu du gros moteur d'expressions " -"régulières plus généraliste." - -#: howto/regex.rst:1260 -msgid "" -"One example might be replacing a single fixed string with another one; for " -"example, you might replace ``word`` with ``deed``. :func:`re.sub` seems " -"like the function to use for this, but consider the :meth:`~str.replace` " -"method. Note that :meth:`!replace` will also replace ``word`` inside words, " -"turning ``swordfish`` into ``sdeedfish``, but the naive RE ``word`` would " -"have done that, too. (To avoid performing the substitution on parts of " -"words, the pattern would have to be ``\\bword\\b``, in order to require that " -"``word`` have a word boundary on either side. This takes the job " -"beyond :meth:`!replace`'s abilities.)" -msgstr "" -"Nous pouvons prendre l'exemple du remplacement d'une seule chaîne fixe par " -"une autre ; vous souhaitez remplacer ``mot`` par ``acte``. :func:`re.sub` " -"semble être faite pour cela, mais regardons la méthode :meth:`~str.replace`. " -"Notons que :meth:`!replace` remplace aussi ``mot`` à l'intérieur des mots, " -"transformant ``moteur`` en ``acteeur``, mais la RE naïve ``mot`` aurait " -"aussi fait cela (pour éviter d'effectuer la substitution sur des parties de " -"mots, le motif doit être ``\\bmot\\b``, qui exige que ``mot`` soit en limite " -"de mot d'un côté et de l'autre ; c'est au-delà des capacités de la " -"méthode :meth:`!replace`)." - -#: howto/regex.rst:1269 -msgid "" -"Another common task is deleting every occurrence of a single character from " -"a string or replacing it with another single character. You might do this " -"with something like ``re.sub('\\n', ' ', S)``, but :meth:`~str.translate` is " -"capable of doing both tasks and will be faster than any regular expression " -"operation can be." -msgstr "" -"Une autre tâche classique est de supprimer chaque occurrence d'un seul " -"caractère d'une chaîne de caractères ou de le remplacer par un autre " -"caractère unique. Vous pouvez le faire avec quelque chose comme " -"``re.sub('\\n', ' ', S)``, mais :meth:`~str.translate` en est capable et est " -"plus rapide que n'importe quelle opération d'expression régulière." - -#: howto/regex.rst:1275 -msgid "" -"In short, before turning to the :mod:`re` module, consider whether your " -"problem can be solved with a faster and simpler string method." -msgstr "" -"Bref, avant de passer au module :mod:`re`, évaluez d'abord si votre problème " -"peut être résolu avec une méthode de chaîne plus rapide et plus simple." - -#: howto/regex.rst:1282 -#, fuzzy -msgid "prefixmatch() (aka match) versus search()" -msgstr "*match()* contre *search()*" - -#: howto/regex.rst:1284 -msgid "" -":func:`~re.prefixmatch` was added in Python 3.15 as the :ref:`preferred name " -"` for :func:`~re.match`. Before this, it was only " -"known as :func:`!match` and the distinction with :func:`~re.search` was " -"often misunderstood." -msgstr "" - -#: howto/regex.rst:1289 -msgid "" -":func:`!prefixmatch` aka :func:`!match` only checks if the RE matches at the " -"beginning of the string while :func:`!search` scans forward through the " -"string for a match. ::" -msgstr "" - -#: howto/regex.rst:1298 -#, fuzzy -msgid "" -"On the other hand, :func:`~re.search` scans forward through the string, " -"reporting the first match it finds. ::" -msgstr "" -"D'un autre côté, :func:`~re.search` balaie la chaîne de caractères, " -"rapportant la première correspondance qu'elle trouve. ::" - -#: howto/regex.rst:1306 -msgid "" -"This distinction is important to remember when using the " -"old :func:`~re.match` name in code requiring compatibility with older Python " -"versions." -msgstr "" - -#: howto/regex.rst:1311 -#, fuzzy -msgid "Greedy versus non-greedy" -msgstr "Glouton contre non-glouton" - -#: howto/regex.rst:1313 -msgid "" -"When repeating a regular expression, as in ``a*``, the resulting action is " -"to consume as much of the pattern as possible. This fact often bites you " -"when you're trying to match a pair of balanced delimiters, such as the angle " -"brackets surrounding an HTML tag. The naive pattern for matching a single " -"HTML tag doesn't work because of the greedy nature of ``.*``. ::" -msgstr "" -"Si vous répétez un motif dans une expression régulière, comme ``a*``, " -"l'action résultante est de consommer autant de motifs que possible. C'est un " -"problème lorsque vous essayez de faire correspondre une paire de " -"délimiteurs, comme des chevrons encadrant une balise HTML. Le motif naïf " -"pour faire correspondre une seule balise HTML ne fonctionne pas en raison de " -"la nature gloutonne de ``.*``. ::" - -#: howto/regex.rst:1327 -msgid "" -"The RE matches the ``'<'`` in ``''``, and the ``.*`` consumes the rest " -"of the string. There's still more left in the RE, though, and the ``>`` " -"can't match at the end of the string, so the regular expression engine has " -"to backtrack character by character until it finds a match for the ``>``. " -"The final match extends from the ``'<'`` in ``''`` to the ``'>'`` in " -"``''``, which isn't what you want." -msgstr "" -"La RE correspond au ``'<'`` de ``''`` et le ``.*`` consomme le reste " -"de la chaîne. Mais, comme il reste des éléments du motif dans la RE et que " -"le ``>`` ne peut pas correspondre à la fin de la chaîne de caractères, le " -"moteur d'expression régulière doit faire marche arrière caractère par " -"caractère jusqu'à ce qu'il trouve une correspondance pour le ``>``. La " -"correspondance finale s'étend du ``'<'`` de ``''`` au ``'>'`` de ``''``, ce qui n'est pas ce que vous voulez." - -#: howto/regex.rst:1334 -msgid "" -"In this case, the solution is to use the non-greedy quantifiers ``*?``, ``+?" -"``, ``??``, or ``{m,n}?``, which match as *little* text as possible. In the " -"above example, the ``'>'`` is tried immediately after the first ``'<'`` " -"matches, and when it fails, the engine advances a character at a time, " -"retrying the ``'>'`` at every step. This produces just the right result::" -msgstr "" -"Dans ce cas, la solution consiste à utiliser des quantificateurs non " -"gloutons tels que ``*?``, ``+?``, ``??`` ou ``{m,n}?``, qui effectuent une " -"correspondance aussi *petite* que possible. Dans l'exemple ci-dessus, le " -"``'>'`` est essayé immédiatement après que le ``'<'`` corresponde et, s'il " -"échoue, le moteur avance caractère par caractère, ré-essayant ``'>'`` à " -"chaque pas. Nous obtenons alors le bon résultat ::" - -#: howto/regex.rst:1343 -msgid "" -"(Note that parsing HTML or XML with regular expressions is painful. Quick-" -"and-dirty patterns will handle common cases, but HTML and XML have special " -"cases that will break the obvious regular expression; by the time you've " -"written a regular expression that handles all of the possible cases, the " -"patterns will be *very* complicated. Use an HTML or XML parser module for " -"such tasks.)" -msgstr "" -"Note : l'analyse du HTML ou du XML avec des expressions régulières est tout " -"sauf une sinécure. Les motifs écrits à la va-vite traiteront les cas " -"communs, mais HTML et XML ont des cas spéciaux qui font planter l'expression " -"régulière évidente ; quand vous aurez écrit une expression régulière qui " -"traite tous les cas possibles, les motifs seront *très* compliqués. " -"Utilisez un module d'analyse HTML ou XML pour de telles tâches." - -#: howto/regex.rst:1351 -msgid "Using re.VERBOSE" -msgstr "Utilisez *re.VERBOSE*" - -#: howto/regex.rst:1353 -msgid "" -"By now you've probably noticed that regular expressions are a very compact " -"notation, but they're not terribly readable. REs of moderate complexity can " -"become lengthy collections of backslashes, parentheses, and metacharacters, " -"making them difficult to read and understand." -msgstr "" -"À présent, vous vous êtes rendu compte que les expressions régulières sont " -"une notation très compacte, mais qu'elles ne sont pas très lisibles. Une RE " -"modérément complexe peut rapidement devenir une longue collection de barres " -"obliques inverses, de parenthèses et de métacaractères, ce qui la rend " -"difficile à lire et à comprendre." - -#: howto/regex.rst:1358 -msgid "" -"For such REs, specifying the :const:`re.VERBOSE` flag when compiling the " -"regular expression can be helpful, because it allows you to format the " -"regular expression more clearly." -msgstr "" -"Pour de telles RE, activer l'option :const:`re.VERBOSE` à la compilation de " -"l'expression régulière peut être utile ; cela vous permet de formater " -"l'expression régulière de manière plus claire." - -#: howto/regex.rst:1362 -msgid "" -"The ``re.VERBOSE`` flag has several effects. Whitespace in the regular " -"expression that *isn't* inside a character class is ignored. This means " -"that an expression such as ``dog | cat`` is equivalent to the less readable " -"``dog|cat``, but ``[a b]`` will still match the characters ``'a'``, ``'b'``, " -"or a space. In addition, you can also put comments inside a RE; comments " -"extend from a ``#`` character to the next newline. When used with triple-" -"quoted strings, this enables REs to be formatted more neatly::" -msgstr "" -"L'option ``re.VERBOSE`` a plusieurs effets. Les espaces dans l'expression " -"régulière qui *ne sont pas* à l'intérieur d'une classe de caractères sont " -"ignorées. Cela signifie qu'une expression comme ``chien | chat`` est " -"équivalente à ``chien|chat`` qui est moins lisible, mais ``[a b]`` " -"correspond toujours aux caractères ``'a'``, ``'b'`` ou à une espace. En " -"outre, vous avez la possibilité de mettre des commentaires à l'intérieur " -"d'une RE ; les commentaires s'étendent du caractère ``#`` à la nouvelle " -"ligne suivante. Lorsque vous l'utilisez avec des chaînes à triple " -"guillemets, cela permet aux RE d'être formatées plus proprement ::" - -#: howto/regex.rst:1379 -msgid "This is far more readable than::" -msgstr "Ceci est beaucoup plus lisible que ::" - -#: howto/regex.rst:1385 -msgid "Feedback" -msgstr "Vos commentaires" - -#: howto/regex.rst:1387 -#, fuzzy -msgid "" -"Regular expressions are a complicated topic. Did this document help you " -"understand them? Were there parts that were unclear, or problems you " -"encountered that weren't covered here? If so, please send suggestions for " -"improvements to the :ref:`issue tracker `." -msgstr "" -"Les expressions régulières sont un sujet compliqué. Est-ce que ce document " -"vous a aidé à les comprendre ? Des parties ne sont pas claires, ou des " -"problèmes que vous avez rencontrés ne sont pas traités ici ? Si tel est le " -"cas, merci d'envoyer vos suggestions d'améliorations à l'auteur." - -#: howto/regex.rst:1392 -msgid "" -"The most complete book on regular expressions is almost certainly Jeffrey " -"Friedl's Mastering Regular Expressions, published by O'Reilly. " -"Unfortunately, it exclusively concentrates on Perl and Java's flavours of " -"regular expressions, and doesn't contain any Python material at all, so it " -"won't be useful as a reference for programming in Python. (The first " -"edition covered Python's now-removed :mod:`!regex` module, which won't help " -"you much.) Consider checking it out from your library." -msgstr "" -"Le livre le plus complet sur les expressions régulières est certainement " -"*Mastering Regular Expressions* de Jeffrey Friedl, publié par O'Reilly. " -"Malheureusement, il se concentre sur les déclinaisons Perl et Java des " -"expressions régulières et ne contient aucun contenu pour Python ; il n'est " -"donc pas utile d'en faire référence pour la programmation Python. (La " -"première édition traitait du module Python :mod:`!regex`, maintenant " -"supprimé, ce qui ne vous aidera pas beaucoup.) Pensez à le retirer de votre " -"bibliothèque." - -#~ msgid "" -#~ "The :func:`~re.match` function only checks if the RE matches at the " -#~ "beginning of the string while :func:`~re.search` will scan forward " -#~ "through the string for a match. It's important to keep this distinction " -#~ "in mind. Remember, :func:`!match` will only report a successful match " -#~ "which will start at 0; if the match wouldn't start at zero, :func:`!" -#~ "match` will *not* report it. ::" -#~ msgstr "" -#~ "La fonction :func:`~re.match` vérifie seulement si la RE correspond au " -#~ "début de la chaîne de caractères tandis que :func:`~re.search` parcourt " -#~ "la chaîne de caractères pour trouver une correspondance. Il est important " -#~ "de garder cette distinction à l'esprit. Rappelez-vous, :func:`!match` ne " -#~ "trouve qu'une correspondance qui commence à 0 ; si la correspondance " -#~ "commence plus loin, :func:`!match` *ne la trouve pas*. ::" - -#~ msgid "" -#~ "Sometimes you'll be tempted to keep using :func:`re.match`, and just add " -#~ "``.*`` to the front of your RE. Resist this temptation and " -#~ "use :func:`re.search` instead. The regular expression compiler does some " -#~ "analysis of REs in order to speed up the process of looking for a match. " -#~ "One such analysis figures out what the first character of a match must " -#~ "be; for example, a pattern starting with ``Crow`` must match starting " -#~ "with a ``'C'``. The analysis lets the engine quickly scan through the " -#~ "string looking for the starting character, only trying the full match if " -#~ "a ``'C'`` is found." -#~ msgstr "" -#~ "Vous pouvez être tenté d'utiliser :func:`re.match` en ajoutant simplement " -#~ "``.*`` au début de votre RE. Ce n'est pas une bonne idée, utilisez " -#~ "plutôt :func:`re.search`. Le compilateur d'expressions régulières analyse " -#~ "les RE pour optimiser le processus de recherche d'une correspondance. " -#~ "Cette analyse permet de déterminer ce que doit être le premier caractère " -#~ "d'une correspondance ; par exemple, un motif commençant par ``Corbeau`` " -#~ "doit faire correspondre un ``'C'`` en tête. L'analyse permet au moteur de " -#~ "parcourir rapidement la chaîne de caractères à la recherche du caractère " -#~ "de départ, n'essayant la correspondance complète que si un ``'C'`` a déjà " -#~ "été trouvé." - -#~ msgid "" -#~ "Adding ``.*`` defeats this optimization, requiring scanning to the end of " -#~ "the string and then backtracking to find a match for the rest of the RE. " -#~ "Use :func:`re.search` instead." -#~ msgstr "" -#~ "Ajouter ``.*`` annihile cette optimisation, nécessitant un balayage " -#~ "jusqu'à la fin de la chaîne de caractères, puis un retour en arrière pour " -#~ "trouver une correspondance pour le reste de la RE. Préférez " -#~ "l'utilisation :func:`re.search`." - -#~ msgid "" -#~ "You can learn about this by interactively experimenting with " -#~ "the :mod:`re` module. If you have :mod:`tkinter` available, you may also " -#~ "want to look at :source:`Tools/demo/redemo.py`, a demonstration program " -#~ "included with the Python distribution. It allows you to enter REs and " -#~ "strings, and displays whether the RE matches or fails. :file:`redemo.py` " -#~ "can be quite useful when trying to debug a complicated RE." -#~ msgstr "" -#~ "Vous pouvez apprendre leur fonctionnement en expérimentant de manière " -#~ "interactive avec le module :mod:`re`. Si vous disposez de :mod:`tkinter`, " -#~ "vous pouvez aussi regarder les sources de :source:`Tools/demo/redemo.py`, " -#~ "un programme de démonstration inclus dans la distribution Python. Ce " -#~ "programme vous permet de rentrer des RE et des chaînes, affichant si la " -#~ "RE correspond ou pas. :file:`redemo.py` peut s'avérer particulièrement " -#~ "utile quand vous devez déboguer une RE compliquée." diff --git a/howto/remote_debugging.po b/howto/remote_debugging.po deleted file mode 100644 index 532a7640a0..0000000000 --- a/howto/remote_debugging.po +++ /dev/null @@ -1,889 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: howto/remote_debugging.rst:4 -msgid "Remote debugging attachment protocol" -msgstr "" - -#: howto/remote_debugging.rst:6 -msgid "" -"This protocol enables external tools to attach to a running CPython process " -"and execute Python code remotely." -msgstr "" - -#: howto/remote_debugging.rst:9 -msgid "" -"Most platforms require elevated privileges to attach to another Python " -"process." -msgstr "" - -#: howto/remote_debugging.rst:12 -msgid "Disabling remote debugging" -msgstr "" - -#: howto/remote_debugging.rst:14 -msgid "To disable remote debugging support, use any of the following:" -msgstr "" - -#: howto/remote_debugging.rst:16 -msgid "" -"Set the :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` environment variable to ``1`` " -"before starting the interpreter." -msgstr "" - -#: howto/remote_debugging.rst:18 -msgid "Use the :option:`-X disable_remote_debug` command-line option." -msgstr "" - -#: howto/remote_debugging.rst:19 -msgid "Compile Python with the :option:`--without-remote-debug` build flag." -msgstr "" - -#: howto/remote_debugging.rst:24 -msgid "Permission requirements" -msgstr "" - -#: howto/remote_debugging.rst:26 -msgid "" -"Attaching to a running Python process for remote debugging requires elevated " -"privileges on most platforms. The specific requirements and troubleshooting " -"steps depend on your operating system:" -msgstr "" - -#: howto/remote_debugging.rst:31 -msgid "Linux" -msgstr "Linux" - -#: howto/remote_debugging.rst:32 -msgid "" -"The tracer process must have the ``CAP_SYS_PTRACE`` capability or equivalent " -"privileges. You can only trace processes you own and can signal. Tracing may " -"fail if the process is already being traced, or if it is running with set-" -"user-ID or set-group-ID. Security modules like Yama may further restrict " -"tracing." -msgstr "" - -#: howto/remote_debugging.rst:38 -msgid "To temporarily relax ptrace restrictions (until reboot), run:" -msgstr "" - -#: howto/remote_debugging.rst:40 -msgid "``echo 0 | sudo tee /proc/sys/kernel/yama/ptrace_scope``" -msgstr "" - -#: howto/remote_debugging.rst:44 -msgid "" -"Disabling ``ptrace_scope`` reduces system hardening and should only be done " -"in trusted environments." -msgstr "" - -#: howto/remote_debugging.rst:47 -msgid "" -"If running inside a container, use ``--cap-add=SYS_PTRACE`` or ``--" -"privileged``, and run as root if needed." -msgstr "" - -#: howto/remote_debugging.rst:50 -msgid "Try re-running the command with elevated privileges:" -msgstr "" - -#: howto/remote_debugging.rst:52 -msgid "``sudo -E !!``" -msgstr "" - -#: howto/remote_debugging.rst:56 -msgid "macOS" -msgstr "macOS" - -#: howto/remote_debugging.rst:57 -msgid "" -"To attach to another process, you typically need to run your debugging tool " -"with elevated privileges. This can be done by using ``sudo`` or running as " -"root." -msgstr "" - -#: howto/remote_debugging.rst:61 -msgid "" -"Even when attaching to processes you own, macOS may block debugging unless " -"the debugger is run with root privileges due to system security restrictions." -msgstr "" - -#: howto/remote_debugging.rst:66 -msgid "Windows" -msgstr "Windows" - -#: howto/remote_debugging.rst:67 -msgid "" -"To attach to another process, you usually need to run your debugging tool " -"with administrative privileges. Start the command prompt or terminal as " -"Administrator." -msgstr "" - -#: howto/remote_debugging.rst:71 -msgid "" -"Some processes may still be inaccessible even with Administrator rights, " -"unless you have the ``SeDebugPrivilege`` privilege enabled." -msgstr "" - -#: howto/remote_debugging.rst:74 -msgid "" -"To resolve file or folder access issues, adjust the security permissions:" -msgstr "" - -#: howto/remote_debugging.rst:76 -msgid "Right-click the file or folder and select **Properties**." -msgstr "" - -#: howto/remote_debugging.rst:77 -msgid "Go to the **Security** tab to view users and groups with access." -msgstr "" - -#: howto/remote_debugging.rst:78 -msgid "Click **Edit** to modify permissions." -msgstr "" - -#: howto/remote_debugging.rst:79 -msgid "Select your user account." -msgstr "" - -#: howto/remote_debugging.rst:80 -msgid "In **Permissions**, check **Read** or **Full control** as needed." -msgstr "" - -#: howto/remote_debugging.rst:81 -msgid "Click **Apply**, then **OK** to confirm." -msgstr "" - -#: howto/remote_debugging.rst:86 -msgid "" -"Ensure you've satisfied all :ref:`permission-requirements` before proceeding." -msgstr "" - -#: howto/remote_debugging.rst:88 -msgid "" -"This section describes the low-level protocol that enables external tools to " -"inject and execute a Python script within a running CPython process." -msgstr "" - -#: howto/remote_debugging.rst:91 -msgid "" -"This mechanism forms the basis of the :func:`sys.remote_exec` function, " -"which instructs a remote Python process to execute a ``.py`` file. However, " -"this section does not document the usage of that function. Instead, it " -"provides a detailed explanation of the underlying protocol, which takes as " -"input the ``pid`` of a target Python process and the path to a Python source " -"file to be executed. This information supports independent reimplementation " -"of the protocol, regardless of programming language." -msgstr "" - -#: howto/remote_debugging.rst:101 -msgid "" -"The execution of the injected script depends on the interpreter reaching a " -"safe evaluation point. As a result, execution may be delayed depending on " -"the runtime state of the target process." -msgstr "" - -#: howto/remote_debugging.rst:105 -msgid "" -"Once injected, the script is executed by the interpreter within the target " -"process the next time a safe evaluation point is reached. This approach " -"enables remote execution capabilities without modifying the behavior or " -"structure of the running Python application." -msgstr "" - -#: howto/remote_debugging.rst:110 -msgid "" -"Subsequent sections provide a step-by-step description of the protocol, " -"including techniques for locating interpreter structures in memory, safely " -"accessing internal fields, and triggering code execution. Platform-specific " -"variations are noted where applicable, and example implementations are " -"included to clarify each operation." -msgstr "" - -#: howto/remote_debugging.rst:117 -msgid "Locating the PyRuntime structure" -msgstr "" - -#: howto/remote_debugging.rst:119 -msgid "" -"CPython places the ``PyRuntime`` structure in a dedicated binary section to " -"help external tools find it at runtime. The name and format of this section " -"vary by platform. For example, ``.PyRuntime`` is used on ELF systems, and " -"``__DATA,__PyRuntime`` is used on macOS. Tools can find the offset of this " -"structure by examining the binary on disk." -msgstr "" - -#: howto/remote_debugging.rst:125 -msgid "" -"The ``PyRuntime`` structure contains CPython’s global interpreter state and " -"provides access to other internal data, including the list of interpreters, " -"thread states, and debugger support fields." -msgstr "" - -#: howto/remote_debugging.rst:129 -msgid "" -"To work with a remote Python process, a debugger must first find the memory " -"address of the ``PyRuntime`` structure in the target process. This address " -"can’t be hardcoded or calculated from a symbol name, because it depends on " -"where the operating system loaded the binary." -msgstr "" - -#: howto/remote_debugging.rst:134 -msgid "" -"The method for finding ``PyRuntime`` depends on the platform, but the steps " -"are the same in general:" -msgstr "" - -#: howto/remote_debugging.rst:137 -msgid "" -"Find the base address where the Python binary or shared library was loaded " -"in the target process." -msgstr "" - -#: howto/remote_debugging.rst:139 -msgid "" -"Use the on-disk binary to locate the offset of the ``.PyRuntime`` section." -msgstr "" - -#: howto/remote_debugging.rst:140 -msgid "" -"Add the section offset to the base address to compute the address in memory." -msgstr "" - -#: howto/remote_debugging.rst:142 -msgid "" -"The sections below explain how to do this on each supported platform and " -"include example code." -msgstr "" - -#: howto/remote_debugging.rst:146 -msgid "Linux (ELF)" -msgstr "" - -#: howto/remote_debugging.rst:147 -msgid "To find the ``PyRuntime`` structure on Linux:" -msgstr "" - -#: howto/remote_debugging.rst:149 -msgid "" -"Read the process’s memory map (for example, ``/proc//maps``) to find " -"the address where the Python executable or ``libpython`` was loaded." -msgstr "" - -#: howto/remote_debugging.rst:151 -msgid "" -"Parse the ELF section headers in the binary to get the offset of the " -"``.PyRuntime`` section." -msgstr "" - -#: howto/remote_debugging.rst:153 -msgid "" -"Add that offset to the base address from step 1 to get the memory address of " -"``PyRuntime``." -msgstr "" - -#: howto/remote_debugging.rst:218 howto/remote_debugging.rst:557 -msgid "The following is an example implementation::" -msgstr "" - -#: howto/remote_debugging.rst:179 -msgid "" -"On Linux systems, there are two main approaches to read memory from another " -"process. The first is through the ``/proc`` filesystem, specifically by " -"reading from ``/proc/[pid]/mem`` which provides direct access to the " -"process's memory. This requires appropriate permissions - either being the " -"same user as the target process or having root access. The second approach " -"is using the ``process_vm_readv()`` system call which provides a more " -"efficient way to copy memory between processes. While ptrace's " -"``PTRACE_PEEKTEXT`` operation can also be used to read memory, it is " -"significantly slower as it only reads one word at a time and requires " -"multiple context switches between the tracer and tracee processes." -msgstr "" - -#: howto/remote_debugging.rst:190 -msgid "" -"For parsing ELF sections, the process involves reading and interpreting the " -"ELF file format structures from the binary file on disk. The ELF header " -"contains a pointer to the section header table. Each section header contains " -"metadata about a section including its name (stored in a separate string " -"table), offset, and size. To find a specific section like .PyRuntime, you " -"need to walk through these headers and match the section name. The section " -"header then provides the offset where that section exists in the file, which " -"can be used to calculate its runtime address when the binary is loaded into " -"memory." -msgstr "" - -#: howto/remote_debugging.rst:199 -msgid "" -"You can read more about the ELF file format in the `ELF specification " -"`_." -msgstr "" - -#: howto/remote_debugging.rst:204 -msgid "macOS (Mach-O)" -msgstr "" - -#: howto/remote_debugging.rst:205 -msgid "To find the ``PyRuntime`` structure on macOS:" -msgstr "" - -#: howto/remote_debugging.rst:207 -msgid "" -"Call ``task_for_pid()`` to get the ``mach_port_t`` task port for the target " -"process. This handle is needed to read memory using APIs like " -"``mach_vm_read_overwrite`` and ``mach_vm_region``." -msgstr "" - -#: howto/remote_debugging.rst:210 -msgid "" -"Scan the memory regions to find the one containing the Python executable or " -"``libpython``." -msgstr "" - -#: howto/remote_debugging.rst:212 -msgid "" -"Load the binary file from disk and parse the Mach-O headers to find the " -"section named ``PyRuntime`` in the ``__DATA`` segment. On macOS, symbol " -"names are automatically prefixed with an underscore, so the ``PyRuntime`` " -"symbol appears as ``_PyRuntime`` in the symbol table, but the section name " -"is not affected." -msgstr "" - -#: howto/remote_debugging.rst:243 -msgid "" -"On macOS, accessing another process's memory requires using Mach-O specific " -"APIs and file formats. The first step is obtaining a ``task_port`` handle " -"via ``task_for_pid()``, which provides access to the target process's memory " -"space. This handle enables memory operations through APIs like " -"``mach_vm_read_overwrite()``." -msgstr "" - -#: howto/remote_debugging.rst:249 -msgid "" -"The process memory can be examined using ``mach_vm_region()`` to scan " -"through the virtual memory space, while ``proc_regionfilename()`` helps " -"identify which binary files are loaded at each memory region. When the " -"Python binary or library is found, its Mach-O headers need to be parsed to " -"locate the ``PyRuntime`` structure." -msgstr "" - -#: howto/remote_debugging.rst:254 -msgid "" -"The Mach-O format organizes code and data into segments and sections. The " -"``PyRuntime`` structure lives in a section named ``__PyRuntime`` within the " -"``__DATA`` segment. The actual runtime address calculation involves finding " -"the ``__TEXT`` segment which serves as the binary's base address, then " -"locating the ``__DATA`` segment containing our target section. The final " -"address is computed by combining the base address with the appropriate " -"section offsets from the Mach-O headers." -msgstr "" - -#: howto/remote_debugging.rst:262 -msgid "" -"Note that accessing another process's memory on macOS typically requires " -"elevated privileges - either root access or special security entitlements " -"granted to the debugging process." -msgstr "" - -#: howto/remote_debugging.rst:268 -msgid "Windows (PE)" -msgstr "" - -#: howto/remote_debugging.rst:269 -msgid "To find the ``PyRuntime`` structure on Windows:" -msgstr "" - -#: howto/remote_debugging.rst:271 -msgid "" -"Use the ToolHelp API to enumerate all modules loaded in the target process. " -"This is done using functions such as `CreateToolhelp32Snapshot `_, `Module32First `_, and " -"`Module32Next `_." -msgstr "" - -#: howto/remote_debugging.rst:278 -msgid "" -"Identify the module corresponding to :file:`python.exe` " -"or :file:`python{XY}.dll`, where ``X`` and ``Y`` are the major and minor " -"version numbers of the Python version, and record its base address." -msgstr "" - -#: howto/remote_debugging.rst:281 -msgid "" -"Locate the ``PyRuntim`` section. Due to the PE format's 8-character limit on " -"section names (defined as ``IMAGE_SIZEOF_SHORT_NAME``), the original name " -"``PyRuntime`` is truncated. This section contains the ``PyRuntime`` " -"structure." -msgstr "" - -#: howto/remote_debugging.rst:285 -msgid "" -"Retrieve the section’s relative virtual address (RVA) and add it to the base " -"address of the module." -msgstr "" - -#: howto/remote_debugging.rst:312 -msgid "" -"On Windows, accessing another process's memory requires using the Windows " -"API functions like ``CreateToolhelp32Snapshot()`` and ``Module32First()/" -"Module32Next()`` to enumerate loaded modules. The ``OpenProcess()`` function " -"provides a handle to access the target process's memory space, enabling " -"memory operations through ``ReadProcessMemory()``." -msgstr "" - -#: howto/remote_debugging.rst:318 -msgid "" -"The process memory can be examined by enumerating loaded modules to find the " -"Python binary or DLL. When found, its PE headers need to be parsed to locate " -"the ``PyRuntime`` structure." -msgstr "" - -#: howto/remote_debugging.rst:322 -msgid "" -"The PE format organizes code and data into sections. The ``PyRuntime`` " -"structure lives in a section named \"PyRuntim\" (truncated from " -"\"PyRuntime\" due to PE's 8-character name limit). The actual runtime " -"address calculation involves finding the module's base address from the " -"module entry, then locating our target section in the PE headers. The final " -"address is computed by combining the base address with the section's virtual " -"address from the PE section headers." -msgstr "" - -#: howto/remote_debugging.rst:329 -msgid "" -"Note that accessing another process's memory on Windows typically requires " -"appropriate privileges - either administrative access or the " -"``SeDebugPrivilege`` privilege granted to the debugging process." -msgstr "" - -#: howto/remote_debugging.rst:335 -msgid "Reading _Py_DebugOffsets" -msgstr "" - -#: howto/remote_debugging.rst:337 -msgid "" -"Once the address of the ``PyRuntime`` structure has been determined, the " -"next step is to read the ``_Py_DebugOffsets`` structure located at the " -"beginning of the ``PyRuntime`` block." -msgstr "" - -#: howto/remote_debugging.rst:341 -msgid "" -"This structure provides version-specific field offsets that are needed to " -"safely read interpreter and thread state memory. These offsets vary between " -"CPython versions and must be checked before use to ensure they are " -"compatible." -msgstr "" - -#: howto/remote_debugging.rst:345 -msgid "To read and check the debug offsets, follow these steps:" -msgstr "" - -#: howto/remote_debugging.rst:347 -msgid "" -"Read memory from the target process starting at the ``PyRuntime`` address, " -"covering the same number of bytes as the ``_Py_DebugOffsets`` structure. " -"This structure is located at the very start of the ``PyRuntime`` memory " -"block. Its layout is defined in CPython’s internal headers and stays the " -"same within a given minor version, but may change in major versions." -msgstr "" - -#: howto/remote_debugging.rst:353 -msgid "Check that the structure contains valid data:" -msgstr "" - -#: howto/remote_debugging.rst:355 -msgid "The ``cookie`` field must match the expected debug marker." -msgstr "" - -#: howto/remote_debugging.rst:356 -msgid "" -"The ``version`` field must match the version of the Python interpreter used " -"by the debugger." -msgstr "" - -#: howto/remote_debugging.rst:358 -msgid "" -"If either the debugger or the target process is using a pre-release version " -"(for example, an alpha, beta, or release candidate), the versions must match " -"exactly." -msgstr "" - -#: howto/remote_debugging.rst:361 -msgid "" -"The ``free_threaded`` field must have the same value in both the debugger " -"and the target process." -msgstr "" - -#: howto/remote_debugging.rst:364 -msgid "" -"If the structure is valid, the offsets it contains can be used to locate " -"fields in memory. If any check fails, the debugger should stop the operation " -"to avoid reading memory in the wrong format." -msgstr "" - -#: howto/remote_debugging.rst:368 -msgid "" -"The following is an example implementation that reads and checks " -"``_Py_DebugOffsets``::" -msgstr "" - -#: howto/remote_debugging.rst:396 -msgid "**Process suspension recommended**" -msgstr "" - -#: howto/remote_debugging.rst:398 -msgid "" -"To avoid race conditions and ensure memory consistency, it is strongly " -"recommended that the target process be suspended before performing any " -"operations that read or write internal interpreter state. The Python runtime " -"may concurrently mutate interpreter data structures—such as creating or " -"destroying threads—during normal execution. This can result in invalid " -"memory reads or writes." -msgstr "" - -#: howto/remote_debugging.rst:405 -msgid "" -"A debugger may suspend execution by attaching to the process with ``ptrace`` " -"or by sending a ``SIGSTOP`` signal. Execution should only be resumed after " -"debugger-side memory operations are complete." -msgstr "" - -#: howto/remote_debugging.rst:411 -msgid "" -"Some tools, such as profilers or sampling-based debuggers, may operate on a " -"running process without suspension. In such cases, tools must be explicitly " -"designed to handle partially updated or inconsistent memory. For most " -"debugger implementations, suspending the process remains the safest and most " -"robust approach." -msgstr "" - -#: howto/remote_debugging.rst:419 -msgid "Locating the interpreter and thread state" -msgstr "" - -#: howto/remote_debugging.rst:421 -msgid "" -"Before code can be injected and executed in a remote Python process, the " -"debugger must choose a thread in which to schedule execution. This is " -"necessary because the control fields used to perform remote code injection " -"are located in the ``_PyRemoteDebuggerSupport`` structure, which is embedded " -"in a ``PyThreadState`` object. These fields are modified by the debugger to " -"request execution of injected scripts." -msgstr "" - -#: howto/remote_debugging.rst:428 -msgid "" -"The ``PyThreadState`` structure represents a thread running inside a Python " -"interpreter. It maintains the thread’s evaluation context and contains the " -"fields required for debugger coordination. Locating a valid " -"``PyThreadState`` is therefore a key prerequisite for triggering execution " -"remotely." -msgstr "" - -#: howto/remote_debugging.rst:433 -msgid "" -"A thread is typically selected based on its role or ID. In most cases, the " -"main thread is used, but some tools may target a specific thread by its " -"native thread ID. Once the target thread is chosen, the debugger must locate " -"both the interpreter and the associated thread state structures in memory." -msgstr "" - -#: howto/remote_debugging.rst:438 -msgid "The relevant internal structures are defined as follows:" -msgstr "" - -#: howto/remote_debugging.rst:440 -msgid "" -"``PyInterpreterState`` represents an isolated Python interpreter instance. " -"Each interpreter maintains its own set of imported modules, built-in state, " -"and thread state list. Although most Python applications use a single " -"interpreter, CPython supports multiple interpreters in the same process." -msgstr "" - -#: howto/remote_debugging.rst:445 -msgid "" -"``PyThreadState`` represents a thread running within an interpreter. It " -"contains execution state and the control fields used by the debugger." -msgstr "" - -#: howto/remote_debugging.rst:448 -msgid "To locate a thread:" -msgstr "" - -#: howto/remote_debugging.rst:450 -msgid "" -"Use the offset ``runtime_state.interpreters_head`` to obtain the address of " -"the first interpreter in the ``PyRuntime`` structure. This is the entry " -"point to the linked list of active interpreters." -msgstr "" - -#: howto/remote_debugging.rst:454 -msgid "" -"Use the offset ``interpreter_state.threads_main`` to access the main thread " -"state associated with the selected interpreter. This is typically the most " -"reliable thread to target." -msgstr "" - -#: howto/remote_debugging.rst:458 -msgid "" -"Optionally, use the offset ``interpreter_state.threads_head`` to iterate " -"through the linked list of all thread states. Each ``PyThreadState`` " -"structure contains a ``native_thread_id`` field, which may be compared to a " -"target thread ID to find a specific thread." -msgstr "" - -#: howto/remote_debugging.rst:463 -msgid "" -"Once a valid ``PyThreadState`` has been found, its address can be used in " -"later steps of the protocol, such as writing debugger control fields and " -"scheduling execution." -msgstr "" - -#: howto/remote_debugging.rst:467 -msgid "" -"The following is an example implementation that locates the main thread " -"state::" -msgstr "" - -#: howto/remote_debugging.rst:490 -msgid "" -"The following example demonstrates how to locate a thread by its native " -"thread ID::" -msgstr "" - -#: howto/remote_debugging.rst:520 -msgid "" -"Once a valid thread state has been located, the debugger can proceed with " -"modifying its control fields and scheduling execution, as described in the " -"next section." -msgstr "" - -#: howto/remote_debugging.rst:525 -msgid "Writing control information" -msgstr "" - -#: howto/remote_debugging.rst:527 -msgid "" -"Once a valid ``PyThreadState`` structure has been identified, the debugger " -"may modify control fields within it to schedule the execution of a specified " -"Python script. These control fields are checked periodically by the " -"interpreter, and when set correctly, they trigger the execution of remote " -"code at a safe point in the evaluation loop." -msgstr "" - -#: howto/remote_debugging.rst:533 -msgid "" -"Each ``PyThreadState`` contains a ``_PyRemoteDebuggerSupport`` structure " -"used for communication between the debugger and the interpreter. The " -"locations of its fields are defined by the ``_Py_DebugOffsets`` structure " -"and include the following:" -msgstr "" - -#: howto/remote_debugging.rst:538 -msgid "" -"``debugger_script_path``: A fixed-size buffer that holds the full path to a " -"Python source file (``.py``). This file must be accessible and readable by " -"the target process when execution is triggered." -msgstr "" - -#: howto/remote_debugging.rst:542 -msgid "" -"``debugger_pending_call``: An integer flag. Setting this to ``1`` tells the " -"interpreter that a script is ready to be executed." -msgstr "" - -#: howto/remote_debugging.rst:545 -msgid "" -"``eval_breaker``: A field checked by the interpreter during execution. " -"Setting bit 5 (``_PY_EVAL_PLEASE_STOP_BIT``, value ``1U << 5``) in this " -"field causes the interpreter to pause and check for debugger activity." -msgstr "" - -#: howto/remote_debugging.rst:549 -msgid "" -"To complete the injection, the debugger must perform the following steps:" -msgstr "" - -#: howto/remote_debugging.rst:551 -msgid "Write the full script path into the ``debugger_script_path`` buffer." -msgstr "" - -#: howto/remote_debugging.rst:552 -msgid "Set ``debugger_pending_call`` to ``1``." -msgstr "" - -#: howto/remote_debugging.rst:553 -msgid "" -"Read the current value of ``eval_breaker``, set bit 5 " -"(``_PY_EVAL_PLEASE_STOP_BIT``), and write the updated value back. This " -"signals the interpreter to check for debugger activity." -msgstr "" - -#: howto/remote_debugging.rst:596 -msgid "" -"Once these fields are set, the debugger may resume the process (if it was " -"suspended). The interpreter will process the request at the next safe " -"evaluation point, load the script from disk, and execute it." -msgstr "" - -#: howto/remote_debugging.rst:600 -msgid "" -"It is the responsibility of the debugger to ensure that the script file " -"remains present and accessible to the target process during execution." -msgstr "" - -#: howto/remote_debugging.rst:605 -msgid "" -"Script execution is asynchronous. The script file cannot be deleted " -"immediately after injection. The debugger should wait until the injected " -"script has produced an observable effect before removing the file. This " -"effect depends on what the script is designed to do. For example, a debugger " -"might wait until the remote process connects back to a socket before " -"removing the script. Once such an effect is observed, it is safe to assume " -"the file is no longer needed." -msgstr "" - -#: howto/remote_debugging.rst:614 -msgid "Summary" -msgstr "" - -#: howto/remote_debugging.rst:616 -msgid "To inject and execute a Python script in a remote process:" -msgstr "" - -#: howto/remote_debugging.rst:618 -msgid "Locate the ``PyRuntime`` structure in the target process’s memory." -msgstr "" - -#: howto/remote_debugging.rst:619 -msgid "" -"Read and validate the ``_Py_DebugOffsets`` structure at the beginning of " -"``PyRuntime``." -msgstr "" - -#: howto/remote_debugging.rst:621 -msgid "Use the offsets to locate a valid ``PyThreadState``." -msgstr "" - -#: howto/remote_debugging.rst:622 -msgid "Write the path to a Python script into ``debugger_script_path``." -msgstr "" - -#: howto/remote_debugging.rst:623 -msgid "Set the ``debugger_pending_call`` flag to ``1``." -msgstr "" - -#: howto/remote_debugging.rst:624 -msgid "Set ``_PY_EVAL_PLEASE_STOP_BIT`` in the ``eval_breaker`` field." -msgstr "" - -#: howto/remote_debugging.rst:625 -msgid "" -"Resume the process (if suspended). The script will execute at the next safe " -"evaluation point." -msgstr "" - -#: howto/remote_debugging.rst:631 -msgid "Security and threat model" -msgstr "" - -#: howto/remote_debugging.rst:633 -msgid "" -"The remote debugging protocol relies on the same operating system primitives " -"used by native debuggers such as GDB and LLDB. Attaching to a process " -"requires the **same privileges** that those debuggers require, for example " -"``ptrace`` / Yama LSM on Linux, ``task_for_pid`` on macOS, and " -"``SeDebugPrivilege`` on Windows. Python does not introduce any new " -"privilege escalation path; if an attacker already possesses the permissions " -"needed to attach to a process, they could equally use GDB to read memory or " -"inject code." -msgstr "" - -#: howto/remote_debugging.rst:642 -msgid "" -"The following principles define what is, and is not, considered a security " -"vulnerability in this feature:" -msgstr "" - -#: howto/remote_debugging.rst:645 -msgid "Attaching requires OS-level privileges" -msgstr "" - -#: howto/remote_debugging.rst:646 -msgid "" -"On every supported platform the operating system gates cross-process memory " -"access behind privilege checks (``CAP_SYS_PTRACE``, root, or administrator " -"rights). A report that demonstrates an issue only after these privileges " -"have already been obtained is **not** a vulnerability in CPython, since the " -"OS security boundary was already crossed." -msgstr "" - -#: howto/remote_debugging.rst:652 -msgid "" -"Crashes or memory errors when reading a compromised process are not " -"vulnerabilities" -msgstr "" - -#: howto/remote_debugging.rst:653 -msgid "" -"A tool that reads internal interpreter state from a target process must " -"trust that memory to be well-formed. If the target process has been " -"corrupted or is controlled by an attacker, the debugger or profiler may " -"crash, produce garbage output, or behave unpredictably. This is the same " -"risk accepted by every ``ptrace``-based debugger. Bugs in this category " -"(buffer overflows, segmentation faults, or undefined behaviour triggered by " -"reading corrupted state) are **not** treated as security issues, though " -"fixes that improve robustness are welcome." -msgstr "" - -#: howto/remote_debugging.rst:662 -msgid "Vulnerabilities in the target process are not in scope" -msgstr "" - -#: howto/remote_debugging.rst:663 -msgid "" -"If the Python process being debugged has already been compromised, the " -"attacker already controls execution in that process. Demonstrating further " -"impact from that starting point does not constitute a vulnerability in the " -"remote debugging protocol." -msgstr "" - -#: howto/remote_debugging.rst:669 -msgid "When to use ``PYTHON_DISABLE_REMOTE_DEBUG``" -msgstr "" - -#: howto/remote_debugging.rst:671 -msgid "" -"The environment variable :envvar:`PYTHON_DISABLE_REMOTE_DEBUG` (and the " -"equivalent :option:`-X disable_remote_debug` flag) allows operators to " -"disable the in-process side of the protocol as a **defence-in-depth** " -"measure. This may be useful in hardened or sandboxed deployment " -"environments where no debugging or profiling of the process is expected and " -"reducing attack surface is a priority, even though the OS-level privilege " -"checks already prevent unprivileged access." -msgstr "" - -#: howto/remote_debugging.rst:679 -msgid "" -"Setting this variable does **not** affect other OS-level debugging " -"interfaces (``ptrace``, ``/proc``, ``task_for_pid``, etc.), which remain " -"available according to their own permission models." -msgstr "" diff --git a/howto/sockets.po b/howto/sockets.po deleted file mode 100644 index f562ef084c..0000000000 --- a/howto/sockets.po +++ /dev/null @@ -1,772 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-02-16 15:07+0100\n" -"Last-Translator: Jean Abou Samra \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 3.2.2\n" - -#: howto/sockets.rst:5 -msgid "Socket Programming HOWTO" -msgstr "Guide pratique : programmation avec les *sockets*" - -#: howto/sockets.rst:0 -msgid "Author" -msgstr "Auteur" - -#: howto/sockets.rst:7 -msgid "Gordon McMillan" -msgstr "Gordon McMillan" - -#: howto/sockets.rst:10 -msgid "Abstract" -msgstr "Résumé" - -#: howto/sockets.rst:12 -msgid "" -"Sockets are used nearly everywhere, but are one of the most severely " -"misunderstood technologies around. This is a 10,000 foot overview of " -"sockets. It's not really a tutorial - you'll still have work to do in " -"getting things operational. It doesn't cover the fine points (and there are " -"a lot of them), but I hope it will give you enough background to begin using " -"them decently." -msgstr "" -"Les connecteurs (*sockets*, en anglais) sont utilisés presque partout, mais " -"ils sont l'une des technologies les plus méconnues. En voici un aperçu très " -"général. Ce n'est pas vraiment un tutoriel — vous aurez encore du travail à " -"faire pour avoir un résultat opérationnel. Il ne couvre pas les détails (et " -"il y en a beaucoup), mais j'espère qu'il vous donnera suffisamment " -"d'informations pour commencer à les utiliser correctement." - -#: howto/sockets.rst:20 -msgid "Sockets" -msgstr "Connecteurs (*sockets*)" - -#: howto/sockets.rst:22 -msgid "" -"I'm only going to talk about INET (i.e. IPv4) sockets, but they account for " -"at least 99% of the sockets in use. And I'll only talk about STREAM (i.e. " -"TCP) sockets - unless you really know what you're doing (in which case this " -"HOWTO isn't for you!), you'll get better behavior and performance from a " -"STREAM socket than anything else. I will try to clear up the mystery of what " -"a socket is, as well as some hints on how to work with blocking and non-" -"blocking sockets. But I'll start by talking about blocking sockets. You'll " -"need to know how they work before dealing with non-blocking sockets." -msgstr "" -"Je ne parlerai que des connecteurs *INET* (c'est-à-dire IPv4), mais ils " -"représentent au moins 99 % des connecteurs utilisés. Et je ne parlerai que " -"des connecteurs *STREAM* (c.-à-d. *TCP*) — à moins que vous ne sachiez " -"vraiment ce que vous faites (auquel cas ce guide n'est pas pour vous), vous " -"obtiendrez un meilleur comportement et de meilleures performances avec un " -"connecteur *STREAM* qu'avec n'importe quel autre. Je vais essayer " -"d'éclaircir le mystère de ce qu'est un connecteur, ainsi que quelques " -"conseils sur la façon de travailler avec des connecteurs bloquants et non " -"bloquants. Mais je commencerai par parler des connecteurs bloquants. Vous " -"devez savoir comment ils fonctionnent avant de vous intéresser aux " -"connecteurs non bloquants." - -#: howto/sockets.rst:31 -msgid "" -"Part of the trouble with understanding these things is that \"socket\" can " -"mean a number of subtly different things, depending on context. So first, " -"let's make a distinction between a \"client\" socket - an endpoint of a " -"conversation, and a \"server\" socket, which is more like a switchboard " -"operator. The client application (your browser, for example) uses \"client\" " -"sockets exclusively; the web server it's talking to uses both \"server\" " -"sockets and \"client\" sockets." -msgstr "" -"Une partie de la difficulté à comprendre ces choses est que « connecteur » " -"peut désigner plusieurs choses très légèrement différentes, selon le " -"contexte. Faisons donc d'abord une distinction entre un connecteur " -"« client » — point final d'une conversation — et un connecteur « serveur », " -"qui ressemble davantage à un standardiste. L'application cliente (votre " -"navigateur par exemple) utilise exclusivement des connecteurs « client » ; " -"le serveur web avec lequel elle parle utilise à la fois des connecteurs " -"« serveur » et des connecteurs « client »." - -#: howto/sockets.rst:40 -msgid "History" -msgstr "Historique" - -#: howto/sockets.rst:42 -msgid "" -"Of the various forms of :abbr:`IPC (Inter Process Communication)`, sockets " -"are by far the most popular. On any given platform, there are likely to be " -"other forms of IPC that are faster, but for cross-platform communication, " -"sockets are about the only game in town." -msgstr "" -"Parmi les différentes formes d’:abbr:`IPC (Inter Process Communication)`, " -"les connecteurs sont de loin les plus populaires. Sur une plate-forme " -"donnée, il est probable que d'autres formes d'\\ *IPC* soient plus rapides, " -"mais pour la communication entre plates-formes, les connecteurs sont à peu " -"près la seule solution valable." - -#: howto/sockets.rst:47 -msgid "" -"They were invented in Berkeley as part of the BSD flavor of Unix. They " -"spread like wildfire with the internet. With good reason --- the combination " -"of sockets with INET makes talking to arbitrary machines around the world " -"unbelievably easy (at least compared to other schemes)." -msgstr "" -"Ils ont été inventés à Berkeley dans le cadre de la déclinaison *BSD* " -"d'Unix. Ils se sont répandus comme une traînée de poudre avec Internet. Et " -"pour cause : la combinaison des connecteurs avec *INET* rend le dialogue " -"avec n’importe quelle machine dans le monde entier incroyablement facile (du " -"moins par rapport à d'autres systèmes)." - -#: howto/sockets.rst:54 -msgid "Creating a Socket" -msgstr "Création d'un connecteur" - -#: howto/sockets.rst:56 -msgid "" -"Roughly speaking, when you clicked on the link that brought you to this " -"page, your browser did something like the following::" -msgstr "" -"Grosso modo, lorsque vous avez cliqué sur le lien qui vous a amené à cette " -"page, votre navigateur a fait quelque chose comme ceci ::" - -#: howto/sockets.rst:64 -msgid "" -"When the ``connect`` completes, the socket ``s`` can be used to send in a " -"request for the text of the page. The same socket will read the reply, and " -"then be destroyed. That's right, destroyed. Client sockets are normally only " -"used for one exchange (or a small set of sequential exchanges)." -msgstr "" -"Lorsque l’appel à ``connect`` est terminé, le connecteur ``s`` peut être " -"utilisé pour envoyer une requête demandant le texte de la page. Le même " -"connecteur lira la réponse, puis sera mis au rebut. C'est exact, mis au " -"rebut. Les connecteurs clients ne sont normalement utilisés que pour un seul " -"échange (ou un petit ensemble d'échanges séquentiels)." - -#: howto/sockets.rst:70 -msgid "" -"What happens in the web server is a bit more complex. First, the web server " -"creates a \"server socket\"::" -msgstr "" -"Ce qui se passe dans le serveur web est un peu plus complexe. Tout d'abord, " -"le serveur web crée un « connecteur serveur » ::" - -#: howto/sockets.rst:80 -msgid "" -"A couple things to notice: we used ``socket.gethostname()`` so that the " -"socket would be visible to the outside world. If we had used " -"``s.bind(('localhost', 80))`` or ``s.bind(('127.0.0.1', 80))`` we would " -"still have a \"server\" socket, but one that was only visible within the " -"same machine. ``s.bind(('', 80))`` specifies that the socket is reachable " -"by any address the machine happens to have." -msgstr "" -"Quelques remarques : nous avons utilisé ``socket.gethostname()`` pour que le " -"connecteur soit visible par le monde extérieur. Si nous avions utilisé " -"``s.bind(('localhost', 80))`` ou ``s.bind(('127.0.0.1', 80))``, nous aurions " -"toujours un connecteur « serveur », mais qui ne serait visible qu'à " -"l'intérieur de la même machine. ``s.bind(('', 80))`` précise que le " -"connecteur est accessible par n'importe quelle adresse que la machine " -"possède." - -#: howto/sockets.rst:87 -msgid "" -"A second thing to note: low number ports are usually reserved for \"well " -"known\" services (HTTP, SNMP etc). If you're playing around, use a nice high " -"number (4 digits)." -msgstr "" -"Une deuxième chose à noter : les ports dont le numéro est petit sont " -"généralement réservés aux services « bien connus » (HTTP, SNMP, etc.). Si " -"vous expérimentez, utilisez un nombre suffisamment élevé (4 chiffres)." - -#: howto/sockets.rst:91 -msgid "" -"Finally, the argument to ``listen`` tells the socket library that we want it " -"to queue up as many as 5 connect requests (the normal max) before refusing " -"outside connections. If the rest of the code is written properly, that " -"should be plenty." -msgstr "" -"Enfin, l'argument passé à ``listen`` indique à la bibliothèque de " -"connecteurs que nous voulons mettre en file d'attente jusqu'à 5 requêtes de " -"connexion (le maximum normal) avant de refuser les connexions externes. Si " -"le reste du code est écrit correctement, cela devrait suffire." - -#: howto/sockets.rst:95 -msgid "" -"Now that we have a \"server\" socket, listening on port 80, we can enter the " -"mainloop of the web server::" -msgstr "" -"Maintenant que nous avons un connecteur « serveur », en écoute sur le port " -"80, nous pouvons entrer dans la boucle principale du serveur web ::" - -#: howto/sockets.rst:106 -msgid "" -"There's actually 3 general ways in which this loop could work - dispatching " -"a thread to handle ``clientsocket``, create a new process to handle " -"``clientsocket``, or restructure this app to use non-blocking sockets, and " -"multiplex between our \"server\" socket and any active ``clientsocket``\\ s " -"using ``select``. More about that later. The important thing to understand " -"now is this: this is *all* a \"server\" socket does. It doesn't send any " -"data. It doesn't receive any data. It just produces \"client\" sockets. Each " -"``clientsocket`` is created in response to some *other* \"client\" socket " -"doing a ``connect()`` to the host and port we're bound to. As soon as we've " -"created that ``clientsocket``, we go back to listening for more connections. " -"The two \"clients\" are free to chat it up - they are using some dynamically " -"allocated port which will be recycled when the conversation ends." -msgstr "" -"Il y a en fait trois façons générales de faire fonctionner cette boucle : " -"mobiliser un fil d'exécution pour gérer les ``clientsocket``\\s, créer un " -"nouveau processus pour gérer les ``clientsocket``\\s, ou restructurer cette " -"application pour utiliser des connecteurs non bloquants, et multiplexer " -"entre notre connecteur « serveur » et n'importe quel ``clientsocket`` actif " -"en utilisant ``select``. Plus d'informations à ce sujet plus tard. La chose " -"importante à comprendre maintenant est la suivante : c'est *tout* ce que " -"fait un connecteur « serveur ». Il n'envoie aucune donnée. Il ne reçoit " -"aucune donnée. Il ne fait que produire des connecteurs « clients ». Chaque " -"``clientsocket`` est créé en réponse à un *autre* connecteur « client » qui " -"se connecte à l'hôte et au port auxquels nous sommes liés. Dès que nous " -"avons créé ce ``clientsocket``, nous retournons à l'écoute pour d'autres " -"connexions. Les deux « clients » sont libres de discuter — ils utilisent un " -"port alloué dynamiquement qui sera recyclé à la fin de la conversation." - -#: howto/sockets.rst:121 -msgid "IPC" -msgstr "*IPC* (Communication Entre Processus)" - -#: howto/sockets.rst:123 -msgid "" -"If you need fast IPC between two processes on one machine, you should look " -"into pipes or shared memory. If you do decide to use AF_INET sockets, bind " -"the \"server\" socket to ``'localhost'``. On most platforms, this will take " -"a shortcut around a couple of layers of network code and be quite a bit " -"faster." -msgstr "" -"Si vous avez besoin d'une communication rapide entre deux processus sur une " -"même machine, vous devriez regarder comment utiliser les tubes (*pipe*, en " -"anglais) ou la mémoire partagée. Si vous décidez d'utiliser les connecteurs " -"*AF_INET*, liez le connecteur « serveur » à ``'localhost'``. Sur la plupart " -"des plates-formes, cela contourne quelques couches réseau et est un peu plus " -"rapide." - -#: howto/sockets.rst:129 -msgid "" -"The :mod:`multiprocessing` integrates cross-platform IPC into a higher-level " -"API." -msgstr "" -"Le :mod:`multiprocessing` intègre de l’IPC multiplateformes dans une API de " -"plus haut niveau." - -#: howto/sockets.rst:134 -msgid "Using a Socket" -msgstr "Utilisation d'un connecteur" - -#: howto/sockets.rst:136 -msgid "" -"The first thing to note, is that the web browser's \"client\" socket and the " -"web server's \"client\" socket are identical beasts. That is, this is a " -"\"peer to peer\" conversation. Or to put it another way, *as the designer, " -"you will have to decide what the rules of etiquette are for a conversation*. " -"Normally, the ``connect``\\ ing socket starts the conversation, by sending " -"in a request, or perhaps a signon. But that's a design decision - it's not a " -"rule of sockets." -msgstr "" -"La première chose à noter, c'est que la prise « client » du navigateur web " -"et la prise « client » du serveur web sont des bêtes identiques. C'est-à-" -"dire qu'il s'agit d'une conversation « pair à pair ». Ou pour le dire " -"autrement, *en tant que concepteur, vous devrez décider quelles sont les " -"règles d'étiquette pour une conversation*. Normalement, la connexion via " -"``connect`` lance la conversation en envoyant une demande, ou peut-être un " -"signe. Mais c'est une décision de conception — ce n'est pas une règle des " -"connecteurs." - -#: howto/sockets.rst:143 -msgid "" -"Now there are two sets of verbs to use for communication. You can use " -"``send`` and ``recv``, or you can transform your client socket into a file-" -"like beast and use ``read`` and ``write``. The latter is the way Java " -"presents its sockets. I'm not going to talk about it here, except to warn " -"you that you need to use ``flush`` on sockets. These are buffered \"files\", " -"and a common mistake is to ``write`` something, and then ``read`` for a " -"reply. Without a ``flush`` in there, you may wait forever for the reply, " -"because the request may still be in your output buffer." -msgstr "" -"Il y a maintenant deux ensembles de verbes à utiliser pour la communication. " -"Vous pouvez utiliser ``send`` et ``recv``, ou vous pouvez transformer votre " -"connecteur client en une bête imitant un fichier et utiliser ``read`` et " -"``write``. C'est la façon dont Java présente ses connecteurs. Je ne vais pas " -"en parler ici, sauf pour vous avertir que vous devez utiliser ``flush`` sur " -"les connecteurs. Ce sont des « fichiers », mis en mémoire tampon, et une " -"erreur courante est d'« écrire » via ``write`` quelque chose, puis de " -"« lire » via ``read`` pour obtenir une réponse. Sans un ``flush``, vous " -"pouvez attendre la réponse pour toujours, parce que la requête peut encore " -"être dans votre mémoire tampon de sortie." - -#: howto/sockets.rst:152 -msgid "" -"Now we come to the major stumbling block of sockets - ``send`` and ``recv`` " -"operate on the network buffers. They do not necessarily handle all the bytes " -"you hand them (or expect from them), because their major focus is handling " -"the network buffers. In general, they return when the associated network " -"buffers have been filled (``send``) or emptied (``recv``). They then tell " -"you how many bytes they handled. It is *your* responsibility to call them " -"again until your message has been completely dealt with." -msgstr "" -"Nous arrivons maintenant au principal écueil des connecteurs — ``send`` et " -"``recv`` fonctionnent sur les mémoires tampons du réseau. Ils ne traitent " -"pas nécessairement tous les octets que vous leur passez (ou que vous " -"attendez d'eux), car leur principal objectif est de gérer les tampons " -"réseau. En général, leur exécution se termine lorsque les tampons réseau " -"associés ont été remplis (``send``) ou vidés (``recv``). Ils vous indiquent " -"alors combien d'octets ils ont traité. Il est de *votre* responsabilité de " -"les rappeler jusqu'à ce que votre message ait été complètement traité." - -#: howto/sockets.rst:160 -msgid "" -"When a ``recv`` returns 0 bytes, it means the other side has closed (or is " -"in the process of closing) the connection. You will not receive any more " -"data on this connection. Ever. You may be able to send data successfully; " -"I'll talk more about this later." -msgstr "" -"Lorsqu'un ``recv`` renvoie 0 octet, cela signifie que l'autre partie a fermé " -"(ou est en train de fermer) la connexion. Vous ne recevrez plus de données " -"sur cette connexion. Jamais. Vous pouvez peut-être envoyer des données avec " -"succès. J’en parlerai plus tard." - -#: howto/sockets.rst:165 -msgid "" -"A protocol like HTTP uses a socket for only one transfer. The client sends a " -"request, then reads a reply. That's it. The socket is discarded. This means " -"that a client can detect the end of the reply by receiving 0 bytes." -msgstr "" -"Un protocole comme HTTP utilise un connecteur pour un seul transfert. Le " -"client envoie une demande, puis lit une réponse. C'est tout. Le connecteur " -"est mis au rebut. Cela signifie qu'un client peut détecter la fin de la " -"réponse en recevant 0 octet." - -#: howto/sockets.rst:169 -msgid "" -"But if you plan to reuse your socket for further transfers, you need to " -"realize that *there is no* :abbr:`EOT (End of Transfer)` *on a socket.* I " -"repeat: if a socket ``send`` or ``recv`` returns after handling 0 bytes, the " -"connection has been broken. If the connection has *not* been broken, you " -"may wait on a ``recv`` forever, because the socket will *not* tell you that " -"there's nothing more to read (for now). Now if you think about that a bit, " -"you'll come to realize a fundamental truth of sockets: *messages must either " -"be fixed length* (yuck), *or be delimited* (shrug), *or indicate how long " -"they are* (much better), *or end by shutting down the connection*. The " -"choice is entirely yours, (but some ways are righter than others)." -msgstr "" -"Mais si vous prévoyez de réutiliser votre connecteur pour d'autres " -"transferts, vous devez réaliser qu'\\ *il n'y a pas* d':abbr:`EOT (End of " -"Transfer)` *sur un connecteur*. Je répète : si un appel à ``send`` ou " -"``recv`` se termine après avoir traité 0 octet, la connexion a été " -"interrompue. Si la connexion n'a *pas* été interrompue, vous pouvez attendre " -"sur un ``recv`` pour toujours, car le connecteur ne vous dira pas qu'il n'y " -"a plus rien à lire (pour le moment). Maintenant, si vous y réfléchissez un " -"peu, vous allez vous rendre compte d'une vérité fondamentale sur les " -"connecteurs : *les messages doivent être de longueur fixe* (beurk), *ou être " -"délimités* (bof), *ou indiquer de quelle longueur ils sont* (beaucoup " -"mieux), *ou terminer en coupant la connexion*. Le choix est entièrement de " -"votre côté (mais certaines façons sont meilleurs que d'autres)." - -#: howto/sockets.rst:180 -msgid "" -"Assuming you don't want to end the connection, the simplest solution is a " -"fixed length message::" -msgstr "" -"En supposant que vous ne vouliez pas terminer la connexion, la solution la " -"plus simple est un message de longueur fixe ::" - -#: howto/sockets.rst:217 -msgid "" -"The sending code here is usable for almost any messaging scheme - in Python " -"you send strings, and you can use ``len()`` to determine its length (even if " -"it has embedded ``\\0`` characters). It's mostly the receiving code that " -"gets more complex. (And in C, it's not much worse, except you can't use " -"``strlen`` if the message has embedded ``\\0``\\ s.)" -msgstr "" -"Le code d'envoi ici est utilisable pour presque tous les systèmes de " -"messagerie — en Python, vous envoyez des chaînes de caractères, et vous " -"pouvez utiliser ``len()`` pour en déterminer la longueur (même si elle " -"contient des caractères ``\\0``). C'est surtout le code de réception qui " -"devient plus complexe. (Et en C, ce n'est pas bien pire, sauf que vous ne " -"pouvez pas utiliser ``strlen`` si le message contient des ``\\0``\\ s)." - -#: howto/sockets.rst:223 -msgid "" -"The easiest enhancement is to make the first character of the message an " -"indicator of message type, and have the type determine the length. Now you " -"have two ``recv``\\ s - the first to get (at least) that first character so " -"you can look up the length, and the second in a loop to get the rest. If you " -"decide to go the delimited route, you'll be receiving in some arbitrary " -"chunk size, (4096 or 8192 is frequently a good match for network buffer " -"sizes), and scanning what you've received for a delimiter." -msgstr "" -"Le plus simple est de faire du premier caractère du message un indicateur du " -"type de message, et de faire en sorte que le type détermine la longueur. " -"Vous avez maintenant deux ``recv``\\ s — le premier pour obtenir (au moins) " -"ce premier caractère afin de pouvoir déterminer la longueur, et le second " -"dans une boucle pour obtenir le reste. Si vous décidez de suivre la route " -"délimitée, vous recevrez un morceau de taille arbitraire (4096 ou 8192 est " -"fréquemment une bonne valeur pour correspondre à la taille de la mémoire " -"tampon du réseau), et vous analyserez ce que vous avez reçu pour trouver un " -"délimiteur." - -#: howto/sockets.rst:231 -msgid "" -"One complication to be aware of: if your conversational protocol allows " -"multiple messages to be sent back to back (without some kind of reply), and " -"you pass ``recv`` an arbitrary chunk size, you may end up reading the start " -"of a following message. You'll need to put that aside and hold onto it, " -"until it's needed." -msgstr "" -"Une subtilité dont il faut être conscient : si votre protocole de " -"conversation permet de renvoyer plusieurs messages les uns à la suite des " -"autres (sans aucune sorte de réponse), et que vous passez à ``recv`` une " -"taille de morceau arbitraire, vous pouvez en arriver à lire le début du " -"message suivant. Vous devrez alors le mettre de côté et le conserver, " -"jusqu'à ce que vous en ayez besoin." - -#: howto/sockets.rst:237 -msgid "" -"Prefixing the message with its length (say, as 5 numeric characters) gets " -"more complex, because (believe it or not), you may not get all 5 characters " -"in one ``recv``. In playing around, you'll get away with it; but in high " -"network loads, your code will very quickly break unless you use two ``recv`` " -"loops - the first to determine the length, the second to get the data part " -"of the message. Nasty. This is also when you'll discover that ``send`` does " -"not always manage to get rid of everything in one pass. And despite having " -"read this, you will eventually get bit by it!" -msgstr "" -"Préfixer le message avec sa longueur (disons, sous la forme de 5 caractères " -"numériques) devient plus complexe, parce que (croyez-le ou non), vous pouvez " -"ne pas recevoir les 5 caractères en un seul ``recv``. Pour une utilisation " -"triviale, vous vous en tirerez à bon compte ; mais en cas de forte charge " -"réseau, votre code se cassera très rapidement, à moins que vous n’utilisiez " -"deux boucles ``recv`` — la première pour déterminer la longueur, la deuxième " -"pour obtenir la partie « données » du message. Vilain. C’est aussi à ce " -"moment que vous découvrirez que « l’envoi » via ``send`` ne parvient pas " -"toujours à tout évacuer en un seul passage. Et bien que vous ayez lu cet " -"avertissement, vous finirez par vous faire avoir par cette subtilité !" - -#: howto/sockets.rst:246 -msgid "" -"In the interests of space, building your character, (and preserving my " -"competitive position), these enhancements are left as an exercise for the " -"reader. Lets move on to cleaning up." -msgstr "" -"Pour garder une longueur raisonnable à cette page, pour forger votre " -"caractère (et afin de garder l’avantage concurrentiel que j’ai sur vous), " -"ces améliorations ne seront pas abordées et sont laissées en exercice au " -"lecteur. Passons maintenant au nettoyage." - -#: howto/sockets.rst:252 -msgid "Binary Data" -msgstr "Données binaires" - -#: howto/sockets.rst:254 -msgid "" -"It is perfectly possible to send binary data over a socket. The major " -"problem is that not all machines use the same formats for binary data. For " -"example, `network byte order `_ is big-endian, with the most significant byte " -"first, so a 16 bit integer with the value ``1`` would be the two hex bytes " -"``00 01``. However, most common processors (x86/AMD64, ARM, RISC-V), are " -"little-endian, with the least significant byte first - that same ``1`` would " -"be ``01 00``." -msgstr "" -"Il est parfaitement possible d'envoyer des données binaires par " -"l'intermédiaire d'un connecteur. Le problème majeur est que toutes les " -"machines n'utilisent pas les mêmes formats pour les données binaires. Par " -"exemple, l’`ordre des octets du réseau `_ est gros-boutiste, avec l'octet le plus " -"significatif en premier, de sorte qu'un entier de 16 bits avec la valeur " -"``1`` serait les deux octets hexadécimaux ``00 01``. Cependant, la plupart " -"des processeurs courants (x86/AMD64, ARM, RISC-V) sont petit-boutistes, avec " -"l'octet le moins significatif en premier - ce même ``1`` serait ``01 00``." - -#: howto/sockets.rst:262 -msgid "" -"Socket libraries have calls for converting 16 and 32 bit integers - ``ntohl, " -"htonl, ntohs, htons`` where \"n\" means *network* and \"h\" means *host*, " -"\"s\" means *short* and \"l\" means *long*. Where network order is host " -"order, these do nothing, but where the machine is byte-reversed, these swap " -"the bytes around appropriately." -msgstr "" -"Les bibliothèques de sockets ont des appels pour convertir les entiers 16 et " -"32 bits - ``ntohl, htonl, ntohs, htons`` où « n » signifie *network* " -"(réseau) et « h » signifie *host* (hôte), « s » signifie *short* (court) et " -"« l » signifie *long*. Lorsque l’ordre du réseau est l’ordre de l’hôte, ils " -"ne font rien, mais lorsque la machine fonctionne en ordre inversé, ils " -"échangent les octets de manière appropriée." - -#: howto/sockets.rst:268 -msgid "" -"In these days of 64-bit machines, the ASCII representation of binary data is " -"frequently smaller than the binary representation. That's because a " -"surprising amount of the time, most integers have the value 0, or maybe 1. " -"The string ``\"0\"`` would be two bytes, while a full 64-bit integer would " -"be 8. Of course, this doesn't fit well with fixed-length messages. " -"Decisions, decisions." -msgstr "" -"De nos jours, avec les machines 64 bits, la représentation *ASCII* des " -"données binaires est souvent plus compacte que la représentation binaire. " -"C’est parce que dans un nombre surprenant de cas, tous ces *entiers* ont la " -"valeur 0 et parfois 1. La chaîne « 0 » serait codée sur deux octets, alors " -"qu'elle le serait sur 8 en tant que binaire 64 bits. Bien sûr, cela ne " -"fonctionne pas très bien avec les messages de longueur fixe. C’est une " -"affaire de choix." - -#: howto/sockets.rst:277 -msgid "Disconnecting" -msgstr "Déconnexion" - -#: howto/sockets.rst:279 -msgid "" -"Strictly speaking, you're supposed to use ``shutdown`` on a socket before " -"you ``close`` it. The ``shutdown`` is an advisory to the socket at the " -"other end. Depending on the argument you pass it, it can mean \"I'm not " -"going to send anymore, but I'll still listen\", or \"I'm not listening, good " -"riddance!\". Most socket libraries, however, are so used to programmers " -"neglecting to use this piece of etiquette that normally a ``close`` is the " -"same as ``shutdown(); close()``. So in most situations, an explicit " -"``shutdown`` is not needed." -msgstr "" -"À proprement parler, vous êtes censé utiliser ``shutdown`` sur un connecteur " -"pour l’arrêter avant de le fermer via ``close``. Le ``shutdown`` est un " -"avertissement au connecteur de l’autre côté. Selon l’argument que vous lui " -"passez, cela peut signifier « Je ne vais plus envoyer, mais je vais quand " -"même écouter », ou « Je n’écoute pas, bon débarras ! ». La plupart des " -"bibliothèques de connecteurs, cependant, sont tellement habituées à ce que " -"les programmeurs négligent d’utiliser ce morceau d’étiquette que normalement " -"un ``close`` est équivalent à ``shutdown() ; close()``. Ainsi, dans la " -"plupart des situations, un ``shutdown`` explicite n’est pas nécessaire." - -#: howto/sockets.rst:287 -msgid "" -"One way to use ``shutdown`` effectively is in an HTTP-like exchange. The " -"client sends a request and then does a ``shutdown(1)``. This tells the " -"server \"This client is done sending, but can still receive.\" The server " -"can detect \"EOF\" by a receive of 0 bytes. It can assume it has the " -"complete request. The server sends a reply. If the ``send`` completes " -"successfully then, indeed, the client was still receiving." -msgstr "" -"Une façon d’utiliser efficacement le ``shutdown`` est d’utiliser un échange " -"de type HTTP. Le client envoie une requête et effectue ensuite un " -"``shutdown(1)``. Cela indique au serveur que « ce client a fini d’envoyer, " -"mais peut encore recevoir ». Le serveur peut détecter *EOF* par une " -"réception de 0 octet. Il peut supposer qu’il a la requête complète. Le " -"serveur envoie une réponse. Si le ``send`` se termine avec succès, alors, en " -"effet, le client était encore en train de recevoir." - -#: howto/sockets.rst:294 -msgid "" -"Python takes the automatic shutdown a step further, and says that when a " -"socket is garbage collected, it will automatically do a ``close`` if it's " -"needed. But relying on this is a very bad habit. If your socket just " -"disappears without doing a ``close``, the socket at the other end may hang " -"indefinitely, thinking you're just being slow. *Please* ``close`` your " -"sockets when you're done." -msgstr "" -"Python pousse l’arrêt automatique un peu plus loin, et dit que lorsqu’un " -"connecteur est collecté par le ramasse-miette, il effectue automatiquement " -"une fermeture via ``close`` si elle est nécessaire. Mais c’est une très " -"mauvaise habitude de s’appuyer sur ce système. Si votre connecteur disparaît " -"sans avoir fait un ``close``, le connecteur à l’autre bout peut rester " -"suspendu indéfiniment, pensant que vous êtes juste lent. Fermez vos " -"connecteurs quand vous avez terminé *s’il vous plaît*." - -#: howto/sockets.rst:302 -msgid "When Sockets Die" -msgstr "Quand les connecteurs meurent" - -#: howto/sockets.rst:304 -msgid "" -"Probably the worst thing about using blocking sockets is what happens when " -"the other side comes down hard (without doing a ``close``). Your socket is " -"likely to hang. TCP is a reliable protocol, and it will wait a long, long " -"time before giving up on a connection. If you're using threads, the entire " -"thread is essentially dead. There's not much you can do about it. As long as " -"you aren't doing something dumb, like holding a lock while doing a blocking " -"read, the thread isn't really consuming much in the way of resources. Do " -"*not* try to kill the thread - part of the reason that threads are more " -"efficient than processes is that they avoid the overhead associated with the " -"automatic recycling of resources. In other words, if you do manage to kill " -"the thread, your whole process is likely to be screwed up." -msgstr "" -"Le pire dans l'utilisation de connecteurs bloquants est probablement ce qui " -"se passe lorsque l'autre côté s'interrompt brutalement (sans faire de " -"fermeture via ``close``). Votre connecteur risque d’attendre infiniment. TCP " -"est un protocole fiable, et il attendra très, très longtemps avant " -"d'abandonner une connexion. Si vous utilisez des fils d’exécution, le fil " -"entier est pratiquement mort. Il n'y a pas grand-chose que vous puissiez " -"faire à ce sujet. Du moment que vous ne faites rien de stupide, comme tenir " -"un verrou verrouillé pendant une lecture bloquante, le fil ne consomme pas " -"vraiment beaucoup de ressources. N'essayez *pas* de tuer le fil — si les " -"fils sont plus efficients que les processus, c'est en partie parce qu'ils " -"évitent les coûts significatifs liés au recyclage automatique des " -"ressources. En d'autres termes, si vous parvenez à tuer le fil, tout votre " -"processus risque d'être foutu." - -#: howto/sockets.rst:318 -msgid "Non-blocking Sockets" -msgstr "Connecteurs non bloquants" - -#: howto/sockets.rst:320 -msgid "" -"If you've understood the preceding, you already know most of what you need " -"to know about the mechanics of using sockets. You'll still use the same " -"calls, in much the same ways. It's just that, if you do it right, your app " -"will be almost inside-out." -msgstr "" -"Si vous avez compris ce qui précède, vous savez déjà tout ce que vous devez " -"savoir sur la mécanique de l’utilisation des connecteurs. Vous utiliserez " -"toujours les mêmes appels, de la même façon. Il n’y que ça. Si vous le " -"faites bien, c’est presque dans la poche." - -#: howto/sockets.rst:325 -msgid "" -"In Python, you use ``socket.setblocking(False)`` to make it non-blocking. In " -"C, it's more complex, (for one thing, you'll need to choose between the BSD " -"flavor ``O_NONBLOCK`` and the almost indistinguishable POSIX flavor " -"``O_NDELAY``, which is completely different from ``TCP_NODELAY``), but it's " -"the exact same idea. You do this after creating the socket, but before using " -"it. (Actually, if you're nuts, you can switch back and forth.)" -msgstr "" -"En Python, vous utilisez ``socket.setblocking(0)`` pour rendre non-bloquant. " -"En C, c’est plus complexe (pour commencer, vous devez choisir entre la " -"version BSD ``O_NONBLOCK`` et la version POSIX presque impossible à " -"distinguer ``O_NDELAY``, qui est complètement différente de " -"``TCP_NODELAY``), mais c’est exactement la même idée. Vous le faites après " -"avoir créé le connecteur mais avant de l’utiliser (en fait, si vous êtes " -"fou, vous pouvez alterner)." - -#: howto/sockets.rst:332 -msgid "" -"The major mechanical difference is that ``send``, ``recv``, ``connect`` and " -"``accept`` can return without having done anything. You have (of course) a " -"number of choices. You can check return code and error codes and generally " -"drive yourself crazy. If you don't believe me, try it sometime. Your app " -"will grow large, buggy and suck CPU. So let's skip the brain-dead solutions " -"and do it right." -msgstr "" -"La différence majeure de fonctionnement est que ``send``, ``recv``, " -"``connect`` et ``accept`` peuvent rendre la main sans avoir rien fait. Vous " -"avez (bien sûr) un certain nombre de choix. Vous pouvez vérifier le code de " -"retour et les codes d'erreur et, en général, devenir fou. Si vous ne me " -"croyez pas, essayez un jour. Votre application va grossir, boguer et " -"vampiriser le processeur. Alors, évitons les solutions vouées à l’échec dès " -"le départ et faisons les choses correctement." - -#: howto/sockets.rst:339 -msgid "Use ``select``." -msgstr "Utilisation de ``select``." - -#: howto/sockets.rst:341 -msgid "" -"In C, coding ``select`` is fairly complex. In Python, it's a piece of cake, " -"but it's close enough to the C version that if you understand ``select`` in " -"Python, you'll have little trouble with it in C::" -msgstr "" -"En C, implémenter ``select`` est assez complexe. En Python, c'est du gâteau, " -"mais c'est assez proche de la version C ; aussi, si vous comprenez " -"``select`` en Python, vous aurez peu de problèmes en C ::" - -#: howto/sockets.rst:352 -msgid "" -"You pass ``select`` three lists: the first contains all sockets that you " -"might want to try reading; the second all the sockets you might want to try " -"writing to, and the last (normally left empty) those that you want to check " -"for errors. You should note that a socket can go into more than one list. " -"The ``select`` call is blocking, but you can give it a timeout. This is " -"generally a sensible thing to do - give it a nice long timeout (say a " -"minute) unless you have good reason to do otherwise." -msgstr "" -"Vous passez à ``select`` trois listes : la première contient tous les " -"connecteurs dont vous souhaiter lire le contenu ; la deuxième tous les " -"connecteurs sur lesquels vous voudriez écrire, et la dernière (normalement " -"laissée vide) ceux sur lesquels vous voudriez vérifier s’il y a des erreurs. " -"Prenez note qu'un connecteur peut figurer dans plus d'une liste. L'appel à " -"``select`` est bloquant, mais vous pouvez lui donner un délai d'attente. " -"C'est généralement une bonne chose à faire — donnez-lui un bon gros délai " -"d'attente (disons une minute), à moins que vous n'ayez une bonne raison de " -"ne pas le faire." - -#: howto/sockets.rst:360 -msgid "" -"In return, you will get three lists. They contain the sockets that are " -"actually readable, writable and in error. Each of these lists is a subset " -"(possibly empty) of the corresponding list you passed in." -msgstr "" -"En retour, vous recevrez trois listes. Elles contiennent les connecteurs qui " -"sont réellement lisibles, inscriptibles et en erreur. Chacune de ces listes " -"est un sous-ensemble (éventuellement vide) de la liste correspondante que " -"vous avez transmise." - -#: howto/sockets.rst:364 -msgid "" -"If a socket is in the output readable list, you can be as-close-to-certain-" -"as-we-ever-get-in-this-business that a ``recv`` on that socket will return " -"*something*. Same idea for the writable list. You'll be able to send " -"*something*. Maybe not all you want to, but *something* is better than " -"nothing. (Actually, any reasonably healthy socket will return as writable - " -"it just means outbound network buffer space is available.)" -msgstr "" -"Si un connecteur se trouve dans la liste renvoyée des connecteurs lisibles, " -"vous pouvez être pratiquement certain qu'un ``recv`` sur ce connecteur " -"renvoie *quelque chose*. Même chose pour la liste renvoyée des connecteurs " -"inscriptibles. Vous pourrez envoyer *quelque chose*. Peut-être pas tout ce " -"que vous voudrez, mais *quelque chose* est mieux que rien (en fait, " -"n'importe quel connecteur raisonnablement sain sera présent dans la liste " -"des connecteurs inscriptibles — cela signifie simplement que l'espace tampon " -"réseau sortant est disponible)." - -#: howto/sockets.rst:371 -msgid "" -"If you have a \"server\" socket, put it in the potential_readers list. If it " -"comes out in the readable list, your ``accept`` will (almost certainly) " -"work. If you have created a new socket to ``connect`` to someone else, put " -"it in the potential_writers list. If it shows up in the writable list, you " -"have a decent chance that it has connected." -msgstr "" -"Si vous avez un connecteur « serveur », mettez-le dans la liste des " -"connecteurs potentiellement lisibles ``potential_readers``. S’il apparaît " -"dans la liste renvoyée des connecteurs que vous pouvez lire, votre " -"``accept`` fonctionnera (presque certainement). Si vous avez créé un nouveau " -"connecteur pour se connecter via ``connect`` à quelqu'un d'autre, mettez-le " -"dans la liste des connecteurs potentiellement inscriptibles. S’il apparaît " -"dans la liste renvoyée des connecteurs sur lesquels vous pouvez écrire, vous " -"avez une bonne chance qu'il se soit connecté." - -#: howto/sockets.rst:377 -msgid "" -"Actually, ``select`` can be handy even with blocking sockets. It's one way " -"of determining whether you will block - the socket returns as readable when " -"there's something in the buffers. However, this still doesn't help with the " -"problem of determining whether the other end is done, or just busy with " -"something else." -msgstr "" -"En fait, ``select`` peut être pratique même avec des connecteurs bloquants. " -"C'est une façon de déterminer si vous allez bloquer — le connecteur est " -"renvoyé comme lisible lorsqu'il y a quelque chose dans les mémoires tampons. " -"Cependant, cela n'aide pas encore à déterminer si l'autre extrémité a " -"terminé, ou si elle est simplement occupée par autre chose." - -#: howto/sockets.rst:382 -msgid "" -"**Portability alert**: On Unix, ``select`` works both with the sockets and " -"files. Don't try this on Windows. On Windows, ``select`` works with sockets " -"only. Also note that in C, many of the more advanced socket options are done " -"differently on Windows. In fact, on Windows I usually use threads (which " -"work very, very well) with my sockets." -msgstr "" -"**Alerte de portabilité** : Sous Unix, ``select`` fonctionne aussi bien avec " -"les connecteurs qu'avec les fichiers. N'essayez pas cela sous Windows. Sous " -"Windows, ``select`` ne fonctionne qu'avec les connecteurs. Notez également " -"qu'en C, la plupart des options de connecteurs les plus avancées se font " -"différemment sous Windows. En fait, sous Windows, j'utilise habituellement " -"des fils d'exécution (qui fonctionnent très, très bien) avec mes connecteurs." diff --git a/howto/sorting.po b/howto/sorting.po deleted file mode 100644 index 8a3bc609ce..0000000000 --- a/howto/sorting.po +++ /dev/null @@ -1,621 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2025-10-25 14:06+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: howto/sorting.rst:4 -msgid "Sorting Techniques" -msgstr "Les techniques de tri" - -#: howto/sorting.rst:0 -msgid "Author" -msgstr "Auteur" - -#: howto/sorting.rst:6 -msgid "Andrew Dalke and Raymond Hettinger" -msgstr "Andrew Dalke et Raymond Hettinger" - -#: howto/sorting.rst:9 -msgid "" -"Python lists have a built-in :meth:`list.sort` method that modifies the list " -"in-place. There is also a :func:`sorted` built-in function that builds a " -"new sorted list from an iterable." -msgstr "" -"Les listes Python ont une méthode native :meth:`list.sort` qui modifie les " -"listes elles-mêmes. Il y a également une fonction native :func:`sorted` qui " -"construit une nouvelle liste triée depuis un itérable." - -#: howto/sorting.rst:13 -msgid "" -"In this document, we explore the various techniques for sorting data using " -"Python." -msgstr "" -"Dans ce document, nous explorons différentes techniques pour trier les " -"données en Python." - -#: howto/sorting.rst:17 -msgid "Sorting Basics" -msgstr "Les bases du tri" - -#: howto/sorting.rst:19 -msgid "" -"A simple ascending sort is very easy: just call the :func:`sorted` function. " -"It returns a new sorted list:" -msgstr "" -"Un tri ascendant simple est très facile : il suffit d'appeler la " -"fonction :func:`sorted`. Elle renvoie une nouvelle liste triée :" - -#: howto/sorting.rst:27 -msgid "" -"You can also use the :meth:`list.sort` method. It modifies the list in-place " -"(and returns ``None`` to avoid confusion). Usually it's less convenient " -"than :func:`sorted` - but if you don't need the original list, it's slightly " -"more efficient." -msgstr "" -"Vous pouvez aussi utiliser la méthode :meth:`list.sort`. Elle modifie la " -"liste elle-même (et renvoie ``None`` pour éviter les confusions). " -"Habituellement, cette méthode est moins pratique que la " -"fonction :func:`sorted` -- mais si vous n'avez pas besoin de la liste " -"originale, cette technique est légèrement plus efficace." - -#: howto/sorting.rst:39 -msgid "" -"Another difference is that the :meth:`list.sort` method is only defined for " -"lists. In contrast, the :func:`sorted` function accepts any iterable." -msgstr "" -"Une autre différence est que la méthode :meth:`list.sort` est seulement " -"définie pour les listes. Au contraire, la fonction :func:`sorted` accepte " -"n'importe quel itérable." - -#: howto/sorting.rst:48 -msgid "Key Functions" -msgstr "Fonctions clef" - -#: howto/sorting.rst:50 -#, fuzzy -msgid "" -"The :meth:`list.sort` method and the " -"functions :func:`sorted`, :func:`min`, :func:`max`, :func:`heapq.nsmallest`, " -"and :func:`heapq.nlargest` have a *key* parameter to specify a function (or " -"other callable) to be called on each list element prior to making " -"comparisons." -msgstr "" -":meth:`list.sort` et :func:`sorted` ont un paramètre *key* afin de spécifier " -"une fonction (ou autre appelable) qui peut être appelée sur chaque élément " -"de la liste avant d'effectuer des comparaisons." - -#: howto/sorting.rst:56 -#, fuzzy -msgid "" -"For example, here's a case-insensitive string comparison " -"using :meth:`str.casefold`:" -msgstr "Par exemple, voici une comparaison de texte insensible à la casse :" - -#: howto/sorting.rst:64 -msgid "" -"The value of the *key* parameter should be a function (or other callable) " -"that takes a single argument and returns a key to use for sorting purposes. " -"This technique is fast because the key function is called exactly once for " -"each input record." -msgstr "" -"La valeur du paramètre *key* doit être une fonction (ou autre appelable) qui " -"prend un seul argument et renvoie une clef à utiliser à des fins de tri. " -"Cette technique est rapide car la fonction clef est appelée exactement une " -"seule fois pour chaque enregistrement en entrée." - -#: howto/sorting.rst:69 -msgid "" -"A common pattern is to sort complex objects using some of the object's " -"indices as keys. For example:" -msgstr "" -"Un usage fréquent est de faire un tri sur des objets complexes en utilisant " -"les indices des objets en tant que clef. Par exemple :" - -#: howto/sorting.rst:82 -msgid "" -"The same technique works for objects with named attributes. For example:" -msgstr "" -"La même technique marche pour des objets avec des attributs nommés. Par " -"exemple :" - -#: howto/sorting.rst:102 -msgid "" -"Objects with named attributes can be made by a regular class as shown above, " -"or they can be instances of :class:`~dataclasses.dataclass` or " -"a :term:`named tuple`." -msgstr "" - -#: howto/sorting.rst:107 -msgid "Operator Module Functions and Partial Function Evaluation" -msgstr "Fonctions du module *operator* et application partielle de fonctions" - -#: howto/sorting.rst:109 -msgid "" -"The :term:`key function` patterns shown above are very common, so Python " -"provides convenience functions to make accessor functions easier and faster. " -"The :mod:`operator` module " -"has :func:`~operator.itemgetter`, :func:`~operator.attrgetter`, and " -"a :func:`~operator.methodcaller` function." -msgstr "" -"L'utilisation des :term:`fonctions clefs ` ci-dessus est " -"courante, donc Python fournit des fonctions permettant de rendre plus simple " -"et plus rapide l'usage des accesseurs. Le module :mod:`operator` contient " -"les fonctions :func:`~operator.itemgetter`, :func:`~operator.attrgetter`, " -"et :func:`~operator.methodcaller`." - -#: howto/sorting.rst:114 -msgid "Using those functions, the above examples become simpler and faster:" -msgstr "" -"En utilisant ces fonctions, les exemples au dessus deviennent plus simples " -"et plus rapides :" - -#: howto/sorting.rst:126 -msgid "" -"The operator module functions allow multiple levels of sorting. For example, " -"to sort by *grade* then by *age*:" -msgstr "" -"Les fonctions du module *operator* permettent plusieurs niveaux de tri. Par " -"exemple, pour trier par *grade* puis par *age* :" - -#: howto/sorting.rst:137 -msgid "" -"The :mod:`functools` module provides another helpful tool for making key-" -"functions. The :func:`~functools.partial` function can reduce the `arity " -"`_ of a multi-argument function making " -"it suitable for use as a key-function." -msgstr "" - -#: howto/sorting.rst:156 -msgid "Ascending and Descending" -msgstr "Ascendant et descendant" - -#: howto/sorting.rst:158 -msgid "" -"Both :meth:`list.sort` and :func:`sorted` accept a *reverse* parameter with " -"a boolean value. This is used to flag descending sorts. For example, to get " -"the student data in reverse *age* order:" -msgstr "" -":meth:`list.sort` et :func:`sorted` acceptent un paramètre nommé *reverse* " -"avec une valeur booléenne. C'est utilisé pour déterminer l'ordre descendant " -"des tris. Par exemple, pour avoir les données des étudiants dans l'ordre " -"inverse par *age* :" - -#: howto/sorting.rst:171 -msgid "Sort Stability and Complex Sorts" -msgstr "Stabilité des tris et tris complexes" - -#: howto/sorting.rst:173 -msgid "" -"Sorts are guaranteed to be `stable `_\\. That means that when multiple records have " -"the same key, their original order is preserved." -msgstr "" -"Les tris sont garantis `stables `_\\. Cela signifie que lorsque " -"plusieurs enregistrements on la même clef, leur ordre original est préservé." - -#: howto/sorting.rst:183 -msgid "" -"Notice how the two records for *blue* retain their original order so that " -"``('blue', 1)`` is guaranteed to precede ``('blue', 2)``." -msgstr "" -"Notez comme les deux enregistrements pour *blue* gardent leur ordre original " -"et que par conséquent il est garanti que ``('blue', 1)`` précède ``('blue', " -"2)``." - -#: howto/sorting.rst:186 -msgid "" -"This wonderful property lets you build complex sorts in a series of sorting " -"steps. For example, to sort the student data by descending *grade* and then " -"ascending *age*, do the *age* sort first and then sort again using *grade*:" -msgstr "" -"Cette propriété fantastique vous permet de construire des tris complexes " -"dans des tris en plusieurs étapes. Par exemple, afin de sortir les données " -"des étudiants en ordre descendant par *grade* puis en ordre ascendant par " -"*age*, effectuez un tri par *age* en premier puis un second tri par *grade* :" - -#: howto/sorting.rst:196 -msgid "" -"This can be abstracted out into a wrapper function that can take a list and " -"tuples of field and order to sort them on multiple passes." -msgstr "" -"Ceci peut être encapsulé dans une fonction qui prend une liste et des n-" -"uplets (attribut, ordre) pour les trier en plusieurs passes." - -#: howto/sorting.rst:209 -msgid "" -"The `Timsort `_ algorithm used in " -"Python does multiple sorts efficiently because it can take advantage of any " -"ordering already present in a dataset." -msgstr "" -"L'algorithme `Timsort `_ utilisé dans " -"Python effectue de multiples tris efficacement parce qu'il peut tirer " -"avantage de l'ordre existant dans un jeu de données." - -#: howto/sorting.rst:214 -msgid "Decorate-Sort-Undecorate" -msgstr "La méthode *Decorate-Sort-Undecorate*" - -#: howto/sorting.rst:216 -msgid "This idiom is called Decorate-Sort-Undecorate after its three steps:" -msgstr "" -"Cette technique est appelée *Decorate-Sort-Undecorate* et se base sur trois " -"étapes :" - -#: howto/sorting.rst:218 -msgid "" -"First, the initial list is decorated with new values that control the sort " -"order." -msgstr "" -"Premièrement, la liste de départ est décorée avec les nouvelles valeurs qui " -"contrôlent l'ordre du tri." - -#: howto/sorting.rst:220 -msgid "Second, the decorated list is sorted." -msgstr "En second lieu, la liste décorée est triée." - -#: howto/sorting.rst:222 -msgid "" -"Finally, the decorations are removed, creating a list that contains only the " -"initial values in the new order." -msgstr "" -"Enfin, la décoration est supprimée, créant ainsi une liste qui contient " -"seulement la valeur initiale dans le nouvel ordre." - -#: howto/sorting.rst:225 -msgid "" -"For example, to sort the student data by *grade* using the DSU approach:" -msgstr "" -"Par exemple, pour trier les données étudiant par *grade* en utilisant " -"l'approche DSU :" - -#: howto/sorting.rst:234 -msgid "" -"This idiom works because tuples are compared lexicographically; the first " -"items are compared; if they are the same then the second items are compared, " -"and so on." -msgstr "" -"Cette technique marche parce que les *n*-uplets sont comparés par ordre " -"lexicographique; les premiers objets sont comparés; si il y a des objets " -"identiques, alors l'objet suivant est comparé, et ainsi de suite." - -#: howto/sorting.rst:238 -msgid "" -"It is not strictly necessary in all cases to include the index *i* in the " -"decorated list, but including it gives two benefits:" -msgstr "" -"Il n'est pas strictement nécessaire dans tous les cas d’inclure l'indice *i* " -"dans la liste décorée, mais l'inclure donne deux avantages :" - -#: howto/sorting.rst:241 -msgid "" -"The sort is stable -- if two items have the same key, their order will be " -"preserved in the sorted list." -msgstr "" -"Le tri est stable -- si deux objets on la même clef, leur ordre sera " -"préservé dans la liste triée." - -#: howto/sorting.rst:244 -msgid "" -"The original items do not have to be comparable because the ordering of the " -"decorated tuples will be determined by at most the first two items. So for " -"example the original list could contain complex numbers which cannot be " -"sorted directly." -msgstr "" -"Les objets d'origine ne sont pas nécessairement comparables car l'ordre des " -"*n*-uplets décorés sera déterminé par au plus les deux premiers objets. Donc " -"par exemple la liste originale pourrait contenir des nombres complexes qui " -"pourraient ne pas être triés directement." - -#: howto/sorting.rst:249 -msgid "" -"Another name for this idiom is `Schwartzian transform `_\\, after Randal L. Schwartz, " -"who popularized it among Perl programmers." -msgstr "" -"Un autre nom pour cette technique est `Schwartzian transform `_\\, après que Randal L. " -"Schwartz l'ait popularisé chez les développeurs Perl." - -#: howto/sorting.rst:253 -msgid "" -"Now that Python sorting provides key-functions, this technique is not often " -"needed." -msgstr "" -"Maintenant que le tri Python fournit des fonctions-clef, cette technique " -"n'est plus souvent utilisée." - -#: howto/sorting.rst:256 -msgid "Comparison Functions" -msgstr "Fonctions de comparaison" - -#: howto/sorting.rst:258 -msgid "" -"Unlike key functions that return an absolute value for sorting, a comparison " -"function computes the relative ordering for two inputs." -msgstr "" -"Contrairement aux fonctions clés qui renvoient une valeur absolue sur " -"laquelle baser le tri, une fonction de comparaison calcule l'ordre relatif " -"entre deux entrées." - -#: howto/sorting.rst:261 -msgid "" -"For example, a `balance scale `_ compares two samples giving a " -"relative ordering: lighter, equal, or heavier. Likewise, a comparison " -"function such as ``cmp(a, b)`` will return a negative value for less-than, " -"zero if the inputs are equal, or a positive value for greater-than." -msgstr "" -"Par exemple, une `balance `_ compare deux échantillons en donnant un " -"classement relatif : plus léger, égal ou plus lourd. De la même manière, une " -"fonction de comparaison telle que ``cmp(a, b)`` donne un résultat négatif si " -"la première valeur est plus petite, zéro si les deux valeurs sont égales, et " -"un résultat positif si la première valeur est plus grande." - -#: howto/sorting.rst:268 -msgid "" -"It is common to encounter comparison functions when translating algorithms " -"from other languages. Also, some libraries provide comparison functions as " -"part of their API. For example, :func:`locale.strcoll` is a comparison " -"function." -msgstr "" -"Il est fréquent de rencontrer des fonctions de comparaison lorsqu'on traduit " -"des algorithmes à partir d'autres langages. Aussi, certaines bibliothèques " -"fournissent des fonctions de comparaison intégrées dans leurs API, " -"comme :func:`locale.strcoll` par exemple." - -#: howto/sorting.rst:272 -msgid "" -"To accommodate those situations, Python " -"provides :class:`functools.cmp_to_key` to wrap the comparison function to " -"make it usable as a key function::" -msgstr "" -"Pour remédier à ces situations, Python fournit :class:`functools.cmp_to_key` " -"pour transformer une fonction de comparaison en une fonction clé ::" - -#: howto/sorting.rst:279 -msgid "Strategies For Unorderable Types and Values" -msgstr "" - -#: howto/sorting.rst:281 -msgid "" -"A number of type and value issues can arise when sorting. Here are some " -"strategies that can help:" -msgstr "" - -#: howto/sorting.rst:284 -msgid "Convert non-comparable input types to strings prior to sorting:" -msgstr "" - -#: howto/sorting.rst:292 -msgid "" -"This is needed because most cross-type comparisons raise a :exc:`TypeError`." -msgstr "" - -#: howto/sorting.rst:295 -msgid "Remove special values prior to sorting:" -msgstr "" - -#: howto/sorting.rst:305 -msgid "" -"This is needed because the `IEEE-754 standard `_ specifies that, \"Every NaN shall compare unordered with " -"everything, including itself.\"" -msgstr "" - -#: howto/sorting.rst:309 -msgid "Likewise, ``None`` can be stripped from datasets as well:" -msgstr "" - -#: howto/sorting.rst:317 -msgid "This is needed because ``None`` is not comparable to other types." -msgstr "" - -#: howto/sorting.rst:319 -msgid "Convert mapping types into sorted item lists before sorting:" -msgstr "" - -#: howto/sorting.rst:327 -msgid "" -"This is needed because dict-to-dict comparisons raise a :exc:`TypeError`." -msgstr "" - -#: howto/sorting.rst:330 -msgid "Convert set types into sorted lists before sorting:" -msgstr "" - -#: howto/sorting.rst:338 -msgid "" -"This is needed because the elements contained in set types do not have a " -"deterministic order. For example, ``list({'a', 'b'})`` may produce either " -"``['a', 'b']`` or ``['b', 'a']``." -msgstr "" - -#: howto/sorting.rst:343 -msgid "Odds and Ends" -msgstr "Notes complémentaires" - -#: howto/sorting.rst:345 -#, fuzzy -msgid "" -"For locale aware sorting, use :func:`locale.strxfrm` for a key function " -"or :func:`locale.strcoll` for a comparison function. This is necessary " -"because \"alphabetical\" sort orderings can vary across cultures even if the " -"underlying alphabet is the same." -msgstr "" -"Pour du tri de texte localisé, utilisez :func:`locale.strxfrm` en tant que " -"fonction clef ou :func:`locale.strcoll` comme fonction de comparaison." - -#: howto/sorting.rst:350 -msgid "" -"The *reverse* parameter still maintains sort stability (so that records with " -"equal keys retain the original order). Interestingly, that effect can be " -"simulated without the parameter by using the builtin :func:`reversed` " -"function twice:" -msgstr "" -"Le paramètre *reverse* maintient toujours un tri stable (de telle sorte que " -"les enregistrements avec des clef égales gardent le même ordre). Notez que " -"cet effet peut être simulé sans le paramètre en utilisant la fonction " -"native :func:`reversed` deux fois :" - -#: howto/sorting.rst:364 -#, fuzzy -msgid "" -"The sort routines use ``<`` when making comparisons between two objects. So, " -"it is easy to add a standard sort order to a class by defining " -"an :meth:`~object.__lt__` method:" -msgstr "" -"Pour effectuer les comparaisons entre deux objets, les routines de tri " -"utilisent l'opérateur ``<``. Il est donc facile d'ajouter un ordre de tri " -"standard à une classe en définissant sa méthode :meth:`__lt__` :" - -#: howto/sorting.rst:374 -msgid "" -"However, note that ``<`` can fall back to using :meth:`~object.__gt__` " -"if :meth:`~object.__lt__` is not implemented (see :func:`object.__lt__` for " -"details on the mechanics). To avoid surprises, :pep:`8` recommends that all " -"six comparison methods be implemented. The :func:`~functools.total_ordering` " -"decorator is provided to make that task easier." -msgstr "" - -#: howto/sorting.rst:381 -msgid "" -"Key functions need not depend directly on the objects being sorted. A key " -"function can also access external resources. For instance, if the student " -"grades are stored in a dictionary, they can be used to sort a separate list " -"of student names:" -msgstr "" -"Les fonctions clef n'ont pas besoin de dépendre directement des objets " -"triés. Une fonction clef peut aussi accéder à des ressources externes. En " -"l'occurrence, si les grades des étudiants sont stockés dans un dictionnaire, " -"ils peuvent être utilisés pour trier une liste différentes de noms " -"d'étudiants :" - -#: howto/sorting.rst:394 -msgid "Partial Sorts" -msgstr "" - -#: howto/sorting.rst:396 -msgid "" -"Some applications require only some of the data to be ordered. The standard " -"library provides several tools that do less work than a full sort:" -msgstr "" - -#: howto/sorting.rst:399 -msgid "" -":func:`min` and :func:`max` return the smallest and largest values, " -"respectively. These functions make a single pass over the input data and " -"require almost no auxiliary memory." -msgstr "" - -#: howto/sorting.rst:403 -msgid "" -":func:`heapq.nsmallest` and :func:`heapq.nlargest` return the *n* smallest " -"and largest values, respectively. These functions make a single pass over " -"the data keeping only *n* elements in memory at a time. For values of *n* " -"that are small relative to the number of inputs, these functions make far " -"fewer comparisons than a full sort." -msgstr "" - -#: howto/sorting.rst:409 -msgid "" -":func:`heapq.heappush` and :func:`heapq.heappop` create and maintain a " -"partially sorted arrangement of data that keeps the smallest element at " -"position ``0``. These functions are suitable for implementing priority " -"queues which are commonly used for task scheduling." -msgstr "" - -#~ msgid "Sorting HOW TO" -#~ msgstr "Guide pour le tri" - -#~ msgid "Release" -#~ msgstr "Version" - -#~ msgid "0.1" -#~ msgstr "0.1" - -#, fuzzy -#~ msgid "" -#~ "However, note that ``<`` can fall back to using :meth:`~object.__gt__` " -#~ "if :meth:`~object.__lt__` is not implemented (see :func:`object.__lt__`)." -#~ msgstr "" -#~ "Notez toutefois que l'opérateur ``<`` peut utiliser la " -#~ "méthode :meth:`__gt__` si :meth:`__lt__` n'est pas implémentée ; " -#~ "voir :func:`object.__lt__`." - -#~ msgid "The Old Way Using the *cmp* Parameter" -#~ msgstr "La méthode traditionnelle d'utiliser le paramètre *cmp*" - -#~ msgid "" -#~ "Many constructs given in this HOWTO assume Python 2.4 or later. Before " -#~ "that, there was no :func:`sorted` builtin and :meth:`list.sort` took no " -#~ "keyword arguments. Instead, all of the Py2.x versions supported a *cmp* " -#~ "parameter to handle user specified comparison functions." -#~ msgstr "" -#~ "Plusieurs construction données dans ce guide se basent sur Python 2.4 ou " -#~ "plus. Avant cela, il n'y avait pas la fonction :func:`sorted` et la " -#~ "méthode :meth:`list.sort` ne prenait pas d'arguments nommés. À la place, " -#~ "toutes les versions Python 2.x utilisaient un paramètre *cmp* pour " -#~ "prendre en charge les fonctions de comparaisons définies par les " -#~ "utilisateurs." - -#~ msgid "" -#~ "In Py3.0, the *cmp* parameter was removed entirely (as part of a larger " -#~ "effort to simplify and unify the language, eliminating the conflict " -#~ "between rich comparisons and the :meth:`__cmp__` magic method)." -#~ msgstr "" -#~ "En Py3.0, le paramètre *cmp* à été supprimé complètement (dans le cadre " -#~ "d'un effort plus général pour simplifier et unifier le langage, en " -#~ "éliminant le conflit entre les comparaisons riches et la méthode " -#~ "magique :meth:`__cmp__`)." - -#~ msgid "" -#~ "In Py2.x, sort allowed an optional function which can be called for doing " -#~ "the comparisons. That function should take two arguments to be compared " -#~ "and then return a negative value for less-than, return zero if they are " -#~ "equal, or return a positive value for greater-than. For example, we can " -#~ "do:" -#~ msgstr "" -#~ "En Python 2.x, le tri permettait en paramètre une fonction optionnelle " -#~ "qui peut être appelée pour faire des comparaisons. Cette fonction devrait " -#~ "prendre deux arguments à comparer pour renvoyer une valeur négative pour " -#~ "inférieur-à, renvoyer zéro si ils sont égaux, ou renvoyer une valeur " -#~ "positive pour supérieur-à. Par exemple, nous pouvons faire :" - -#~ msgid "Or you can reverse the order of comparison with:" -#~ msgstr "Ou nous pouvons inverser l'ordre de comparaison avec :" - -#~ msgid "" -#~ "When porting code from Python 2.x to 3.x, the situation can arise when " -#~ "you have the user supplying a comparison function and you need to convert " -#~ "that to a key function. The following wrapper makes that easy to do:" -#~ msgstr "" -#~ "En portant du code depuis Python 2.X vers 3.x, des problèmes peuvent " -#~ "survenir quand des utilisateurs fournissent une fonction de comparaison " -#~ "et qu'il faut convertir cette fonction en une fonction-clef. La fonction " -#~ "d'encapsulation suivante rend cela plus facile à faire :" - -#~ msgid "To convert to a key function, just wrap the old comparison function:" -#~ msgstr "" -#~ "Pour convertir une fonction clef, ils suffit d'encapsuler l'ancienne " -#~ "fonction de comparaison :" - -#~ msgid "" -#~ "In Python 3.2, the :func:`functools.cmp_to_key` function was added to " -#~ "the :mod:`functools` module in the standard library." -#~ msgstr "" -#~ "En Python 3.2, la fonction :func:`functools.cmp_to_key` à été ajoutée au " -#~ "module :mod:`functools` dans la librairie standard." diff --git a/howto/timerfd.po b/howto/timerfd.po deleted file mode 100644 index 0e68fde376..0000000000 --- a/howto/timerfd.po +++ /dev/null @@ -1,62 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-01 00:16+0100\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: howto/timerfd.rst:5 -msgid "timer file descriptor HOWTO" -msgstr "" - -#: howto/timerfd.rst:0 -msgid "Release" -msgstr "Version" - -#: howto/timerfd.rst:7 -msgid "1.13" -msgstr "" - -#: howto/timerfd.rst:9 -msgid "" -"This HOWTO discusses Python's support for the linux timer file descriptor." -msgstr "" - -#: howto/timerfd.rst:13 -msgid "Examples" -msgstr "Exemples" - -#: howto/timerfd.rst:15 -msgid "" -"The following example shows how to use a timer file descriptor to execute a " -"function twice a second:" -msgstr "" - -#: howto/timerfd.rst:40 -msgid "" -"To avoid the precision loss caused by the :class:`float` type, timer file " -"descriptors allow specifying initial expiration and interval in integer " -"nanoseconds with ``_ns`` variants of the functions." -msgstr "" - -#: howto/timerfd.rst:44 -msgid "" -"This example shows how :func:`~select.epoll` can be used with timer file " -"descriptors to wait until the file descriptor is ready for reading:" -msgstr "" - -#: howto/timerfd.rst:153 -msgid "" -"This example shows how :func:`~select.select` can be used with timer file " -"descriptors to wait until the file descriptor is ready for reading:" -msgstr "" diff --git a/howto/unicode.po b/howto/unicode.po deleted file mode 100644 index 512c690444..0000000000 --- a/howto/unicode.po +++ /dev/null @@ -1,1305 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-03-26 17:48+0200\n" -"Last-Translator: Mathieu Dupuy\n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.2\n" - -#: howto/unicode.rst:5 -msgid "Unicode HOWTO" -msgstr "Guide Unicode" - -#: howto/unicode.rst:0 -msgid "Release" -msgstr "Version" - -#: howto/unicode.rst:7 -msgid "1.12" -msgstr "1.12" - -#: howto/unicode.rst:9 -msgid "" -"This HOWTO discusses Python's support for the Unicode specification for " -"representing textual data, and explains various problems that people " -"commonly encounter when trying to work with Unicode." -msgstr "" -"Ce guide décrit la gestion de la spécification Unicode par Python pour les " -"données textuelles et explique les différents problèmes généralement " -"rencontrés par les utilisateurs qui travaillent avec Unicode." - -#: howto/unicode.rst:15 -msgid "Introduction to Unicode" -msgstr "Introduction à Unicode" - -#: howto/unicode.rst:18 -msgid "Definitions" -msgstr "Définitions" - -#: howto/unicode.rst:20 -msgid "" -"Today's programs need to be able to handle a wide variety of characters. " -"Applications are often internationalized to display messages and output in a " -"variety of user-selectable languages; the same program might need to output " -"an error message in English, French, Japanese, Hebrew, or Russian. Web " -"content can be written in any of these languages and can also include a " -"variety of emoji symbols. Python's string type uses the Unicode Standard for " -"representing characters, which lets Python programs work with all these " -"different possible characters." -msgstr "" -"Les programmes d'aujourd'hui doivent être capables de traiter une grande " -"variété de caractères. Les applications sont souvent internationalisées pour " -"afficher les messages et les résultats dans une variété de langues " -"sélectionnables par l'utilisateur ; le même programme peut avoir besoin " -"d'afficher un message d'erreur en anglais, français, japonais, hébreu ou " -"russe. Le contenu Web peut être écrit dans n'importe laquelle de ces langues " -"et peut également inclure une variété de symboles émoji. Le type de chaîne " -"de caractères de Python utilise le standard Unicode pour représenter les " -"caractères, ce qui permet aux programmes Python de travailler avec tous ces " -"différents caractères possibles." - -#: howto/unicode.rst:30 -msgid "" -"Unicode (https://www.unicode.org/) is a specification that aims to list " -"every character used by human languages and give each character its own " -"unique code. The Unicode specifications are continually revised and updated " -"to add new languages and symbols." -msgstr "" -"Unicode (https://www.unicode.org/) est une spécification qui vise à lister " -"tous les caractères utilisés par les langues humaines et à donner à chaque " -"caractère son propre code unique. Les spécifications Unicode sont " -"continuellement révisées et mises à jour pour ajouter de nouvelles langues " -"et de nouveaux symboles." - -#: howto/unicode.rst:35 -msgid "" -"A **character** is the smallest possible component of a text. 'A', 'B', " -"'C', etc., are all different characters. So are 'È' and 'Í'. Characters " -"vary depending on the language or context you're talking about. For " -"example, there's a character for \"Roman Numeral One\", 'Ⅰ', that's separate " -"from the uppercase letter 'I'. They'll usually look the same, but these are " -"two different characters that have different meanings." -msgstr "" -"Un **caractère** est le plus petit composant possible d'un texte. « A », " -"« B », « C », etc. sont tous des caractères différents. Il en va de même " -"pour « È » et « Í ». Les caractères varient selon la langue ou le contexte " -"dont vous parlez. Par exemple, il y a un caractère pour « Chiffre Romain " -"Un » (*Roman Numeral One*), « Ⅰ », qui est séparé de la lettre majuscule " -"« I ». Ils se ressemblent généralement, mais ce sont deux caractères " -"différents qui ont des significations différentes." - -#: howto/unicode.rst:42 -msgid "" -"The Unicode standard describes how characters are represented by **code " -"points**. A code point value is an integer in the range 0 to 0x10FFFF " -"(about 1.1 million values, the `actual number assigned `_ is less than that). In the " -"standard and in this document, a code point is written using the notation " -"``U+265E`` to mean the character with value ``0x265e`` (9,822 in decimal)." -msgstr "" -"Le standard Unicode décrit comment les caractères sont représentés par les " -"**points de code**. Une valeur de point de code est un nombre entier compris " -"entre ``0`` et ``0x10FFFF`` (environ 1,1 million de valeurs possibles, le " -"`nombre de valeurs réellement assignées `_ est inférieur à ce nombre). Dans le standard et dans le " -"présent document, un point de code est écrit en utilisant la notation " -"``U+265E`` pour désigner le caractère avec la valeur ``0x265e`` (9 822 en " -"décimal)." - -#: howto/unicode.rst:50 -msgid "" -"The Unicode standard contains a lot of tables listing characters and their " -"corresponding code points:" -msgstr "" -"La standard Unicode contient de nombreux tableaux contenant la liste des " -"caractères et des points de code correspondants :" - -#: howto/unicode.rst:71 -msgid "" -"Strictly, these definitions imply that it's meaningless to say 'this is " -"character ``U+265E``'. ``U+265E`` is a code point, which represents some " -"particular character; in this case, it represents the character 'BLACK CHESS " -"KNIGHT', '♞'. In informal contexts, this distinction between code points " -"and characters will sometimes be forgotten." -msgstr "" -"À proprement parler, ces définitions laissent entendre qu'il est inutile de " -"dire « c'est le caractère ``U+265E`` ». ``U+265E`` est un point de code, qui " -"représente un caractère particulier ; dans ce cas, il représente le " -"caractère « BLACK CHESS KNIGHT », « ♞ ». Dans des contextes informels, cette " -"distinction entre les points de code et les caractères sera parfois oubliée." - -#: howto/unicode.rst:78 -msgid "" -"A character is represented on a screen or on paper by a set of graphical " -"elements that's called a **glyph**. The glyph for an uppercase A, for " -"example, is two diagonal strokes and a horizontal stroke, though the exact " -"details will depend on the font being used. Most Python code doesn't need " -"to worry about glyphs; figuring out the correct glyph to display is " -"generally the job of a GUI toolkit or a terminal's font renderer." -msgstr "" -"Un caractère est représenté sur un écran ou sur papier par un ensemble " -"d’éléments graphiques appelé **glyphe**. Le glyphe d’un A majuscule, par " -"exemple, est deux traits diagonaux et un trait horizontal, bien que les " -"détails exacts dépendent de la police utilisée. La plupart du code Python " -"n’a pas besoin de s’inquiéter des glyphes ; trouver le bon glyphe à afficher " -"est généralement le travail d’une boîte à outils GUI ou du moteur de rendu " -"des polices d’un terminal." - -#: howto/unicode.rst:87 -msgid "Encodings" -msgstr "Encodages" - -#: howto/unicode.rst:89 -msgid "" -"To summarize the previous section: a Unicode string is a sequence of code " -"points, which are numbers from 0 through ``0x10FFFF`` (1,114,111 decimal). " -"This sequence of code points needs to be represented in memory as a set of " -"**code units**, and **code units** are then mapped to 8-bit bytes. The " -"rules for translating a Unicode string into a sequence of bytes are called a " -"**character encoding**, or just an **encoding**." -msgstr "" -"Pour résumer la section précédente : une chaîne Unicode est une séquence de " -"points de code, qui sont des nombres de ``0`` à ``0x10FFFF`` (1 114 111 en " -"décimal). Cette séquence de points de code doit être stockée en mémoire sous " -"la forme d'un ensemble de **unités de code**, et les **unités de code** sont " -"ensuite transposées en octets de 8 bits. Les règles de traduction d'une " -"chaîne Unicode en une séquence d'octets sont appelées un **encodage de " -"caractères** ou simplement un **encodage**." - -#: howto/unicode.rst:97 -msgid "" -"The first encoding you might think of is using 32-bit integers as the code " -"unit, and then using the CPU's representation of 32-bit integers. In this " -"representation, the string \"Python\" might look like this:" -msgstr "" -"Le premier encodage auquel vous pouvez penser est l'utilisation d'entiers 32 " -"bits comme unité de code, puis l'utilisation de la représentation des " -"entiers 32 bits par le CPU. Dans cette représentation, la chaîne « Python » " -"ressemblerait à ceci :" - -#: howto/unicode.rst:107 -msgid "" -"This representation is straightforward but using it presents a number of " -"problems." -msgstr "" -"Cette représentation est simple mais son utilisation pose un certain nombre " -"de problèmes." - -#: howto/unicode.rst:110 -msgid "It's not portable; different processors order the bytes differently." -msgstr "" -"Elle n’est pas portable ; des processeurs différents ordonnent les octets " -"différemment." - -#: howto/unicode.rst:112 -msgid "" -"It's very wasteful of space. In most texts, the majority of the code points " -"are less than 127, or less than 255, so a lot of space is occupied by " -"``0x00`` bytes. The above string takes 24 bytes compared to the 6 bytes " -"needed for an ASCII representation. Increased RAM usage doesn't matter too " -"much (desktop computers have gigabytes of RAM, and strings aren't usually " -"that large), but expanding our usage of disk and network bandwidth by a " -"factor of 4 is intolerable." -msgstr "" -"Elle gâche beaucoup d'espace. Dans la plupart des textes, la majorité des " -"points de code sont inférieurs à 127, ou à 255, donc beaucoup d'espace est " -"occupé par des octets ``0x00``. La chaîne ci-dessus occupe 24 octets, à " -"comparer aux 6 octets nécessaires pour une représentation en ASCII. " -"L'utilisation supplémentaire de RAM n'a pas trop d'importance (les " -"ordinateurs de bureau ont des gigaoctets de RAM et les chaînes ne sont " -"généralement pas si grandes que ça), mais l'accroissement de notre " -"utilisation du disque et de la bande passante réseau par un facteur de 4 est " -"intolérable." - -#: howto/unicode.rst:120 -msgid "" -"It's not compatible with existing C functions such as ``strlen()``, so a new " -"family of wide string functions would need to be used." -msgstr "" -"Elle n’est pas compatible avec les fonctions C existantes telles que " -"``strlen()``, il faudrait donc utiliser une nouvelle famille de fonctions, " -"celle des chaînes larges (*wide strings*)." - -#: howto/unicode.rst:123 -msgid "" -"Therefore this encoding isn't used very much, and people instead choose " -"other encodings that are more efficient and convenient, such as UTF-8." -msgstr "" -"Par conséquent, cet encodage n'est pas très utilisé et d'autres encodages, " -"plus efficaces et pratiques comme UTF-8, sont plutôt choisis." - -#: howto/unicode.rst:126 -msgid "" -"UTF-8 is one of the most commonly used encodings, and Python often defaults " -"to using it. UTF stands for \"Unicode Transformation Format\", and the '8' " -"means that 8-bit values are used in the encoding. (There are also UTF-16 " -"and UTF-32 encodings, but they are less frequently used than UTF-8.) UTF-8 " -"uses the following rules:" -msgstr "" -"UTF-8 est l’un des encodages les plus couramment utilisés et Python " -"l’utilise souvent par défaut. UTF signifie « Unicode Transformation Format » " -"(format de transformation Unicode) et « 8 » signifie que des nombres à 8 " -"bits sont utilisés dans l'encodage (il existe également des codages UTF-16 " -"et UTF-32, mais ils sont moins souvent utilisés que UTF-8). UTF-8 utilise " -"les règles suivantes :" - -#: howto/unicode.rst:132 -msgid "" -"If the code point is < 128, it's represented by the corresponding byte value." -msgstr "" -"Si le point de code est < 128, il est représenté par la valeur de l'octet " -"correspondant." - -#: howto/unicode.rst:133 -msgid "" -"If the code point is >= 128, it's turned into a sequence of two, three, or " -"four bytes, where each byte of the sequence is between 128 and 255." -msgstr "" -"Si le point de code est ≥ 128, il est transformé en une séquence de deux, " -"trois ou quatre octets, où chaque octet de la séquence est compris entre 128 " -"et 255." - -#: howto/unicode.rst:136 -msgid "UTF-8 has several convenient properties:" -msgstr "UTF-8 a plusieurs propriétés intéressantes :" - -#: howto/unicode.rst:138 -msgid "It can handle any Unicode code point." -msgstr "Il peut gérer n'importe quel point de code Unicode." - -#: howto/unicode.rst:139 -msgid "" -"A Unicode string is turned into a sequence of bytes that contains embedded " -"zero bytes only where they represent the null character (U+0000). This means " -"that UTF-8 strings can be processed by C functions such as ``strcpy()`` and " -"sent through protocols that can't handle zero bytes for anything other than " -"end-of-string markers." -msgstr "" -"Une chaîne Unicode est transformée en une séquence d’octets qui contient des " -"octets zéro uniquement lorsqu’ils représentent le caractère nul (U+0000). " -"Cela signifie que les chaînes UTF-8 peuvent être traitées par des fonctions " -"C telles que ``strcpy()`` et envoyées par des protocoles pour qui les octets " -"zéro signifient forcément la fin de chaîne." - -#: howto/unicode.rst:144 -msgid "A string of ASCII text is also valid UTF-8 text." -msgstr "Une chaîne de texte ASCII est également un texte UTF-8 valide." - -#: howto/unicode.rst:145 -msgid "" -"UTF-8 is fairly compact; the majority of commonly used characters can be " -"represented with one or two bytes." -msgstr "" -"UTF-8 est assez compact. La majorité des caractères couramment utilisés " -"peuvent être représentés avec un ou deux octets." - -#: howto/unicode.rst:147 -msgid "" -"If bytes are corrupted or lost, it's possible to determine the start of the " -"next UTF-8-encoded code point and resynchronize. It's also unlikely that " -"random 8-bit data will look like valid UTF-8." -msgstr "" -"Si des octets sont corrompus ou perdus, il est possible de déterminer le " -"début du prochain point de code encodé en UTF-8 et de se resynchroniser. Il " -"est également improbable que des données 8-bits aléatoires ressemblent à du " -"UTF-8 valide." - -#: howto/unicode.rst:150 -msgid "" -"UTF-8 is a byte oriented encoding. The encoding specifies that each " -"character is represented by a specific sequence of one or more bytes. This " -"avoids the byte-ordering issues that can occur with integer and word " -"oriented encodings, like UTF-16 and UTF-32, where the sequence of bytes " -"varies depending on the hardware on which the string was encoded." -msgstr "" -"UTF-8 est un encodage orienté octet. L'encodage spécifie que chaque " -"caractère est représenté par une séquence spécifique d'un ou plusieurs " -"octets. Ceci permet d'éviter les problèmes d'ordre des octets qui peuvent " -"survenir avec les encodages orientés entiers (*integer*) ou orientés mots " -"processeurs (*words*), comme UTF-16 et UTF-32, où la séquence des octets " -"varie en fonction du matériel sur lequel la chaîne a été encodée." - -#: howto/unicode.rst:516 howto/unicode.rst:737 -msgid "References" -msgstr "Références" - -#: howto/unicode.rst:160 -msgid "" -"The `Unicode Consortium site `_ has character " -"charts, a glossary, and PDF versions of the Unicode specification. Be " -"prepared for some difficult reading. `A chronology `_ of the origin and development of Unicode is also available on " -"the site." -msgstr "" -"Le site du `Consortium Unicode `_, en anglais, a " -"des diagrammes de caractères, un glossaire et des versions PDF de la " -"spécification Unicode. Préparez-vous à une lecture difficile. Une " -"`chronologie `_ de l’origine et du " -"développement de l’Unicode est également disponible sur le site." - -#: howto/unicode.rst:165 -msgid "" -"On the Computerphile Youtube channel, Tom Scott briefly `discusses the " -"history of Unicode and UTF-8 `_ " -"(9 minutes 36 seconds)." -msgstr "" -"Sur la chaîne Youtube *Computerphile*, Tom Scott parle brièvement de " -"`l’histoire d’Unicode et d’UTF-8 `_ (9 minutes et 36 secondes)." - -#: howto/unicode.rst:169 -msgid "" -"To help understand the standard, Jukka Korpela has written `an introductory " -"guide `_ to reading the Unicode " -"character tables." -msgstr "" -"Pour aider à comprendre le standard, Jukka Korpela a écrit `un guide " -"d’introduction `_ à la lecture des " -"tables de caractères Unicode (ressource en anglais)." - -#: howto/unicode.rst:173 -msgid "" -"Another `good introductory article `_ was " -"written by Joel Spolsky. If this introduction didn't make things clear to " -"you, you should try reading this alternate article before continuing." -msgstr "" -"Un autre `bon article d'introduction `_ a été " -"écrit par Joel Spolsky. Si cette présente introduction ne vous a pas " -"clarifié les choses, vous devriez essayer de lire cet article-là avant de " -"continuer." - -#: howto/unicode.rst:178 -msgid "" -"Wikipedia entries are often helpful; see the entries for \"`character " -"encoding `_\" and `UTF-8 " -"`_, for example." -msgstr "" -"Les pages Wikipédia sont souvent utiles ; voir les pages pour « `Codage des " -"caractères `_ » et " -"`UTF-8 `_, par exemple." - -#: howto/unicode.rst:184 -msgid "Python's Unicode Support" -msgstr "Prise en charge Unicode de Python" - -#: howto/unicode.rst:186 -msgid "" -"Now that you've learned the rudiments of Unicode, we can look at Python's " -"Unicode features." -msgstr "" -"Maintenant que vous avez appris les rudiments de l'Unicode, nous pouvons " -"regarder les fonctionnalités Unicode de Python." - -#: howto/unicode.rst:190 -msgid "The String Type" -msgstr "Le type *String*" - -#: howto/unicode.rst:192 -msgid "" -"Since Python 3.0, the language's :class:`str` type contains Unicode " -"characters, meaning any string created using ``\"unicode rocks!\"``, " -"``'unicode rocks!'``, or the triple-quoted string syntax is stored as " -"Unicode." -msgstr "" -"Depuis Python 3.0, le type :class:`str` du langage contient des caractères " -"Unicode, c'est-à-dire n'importe quelle chaîne créée à l'aide de ``\"unicode " -"déchire !\"``, ``'unicode déchire !'`` ou la syntaxe à triples guillemets " -"est enregistrée comme Unicode." - -#: howto/unicode.rst:196 -msgid "" -"The default encoding for Python source code is UTF-8, so you can simply " -"include a Unicode character in a string literal::" -msgstr "" -"L'encodage par défaut pour le code source Python est UTF-8, il est donc " -"facile d'inclure des caractères Unicode dans une chaîne littérale ::" - -#: howto/unicode.rst:206 -msgid "" -"Side note: Python 3 also supports using Unicode characters in identifiers::" -msgstr "" -"Note : Python 3 sait gérer les caractères Unicode dans les identifiants ::" - -#: howto/unicode.rst:212 -msgid "" -"If you can't enter a particular character in your editor or want to keep the " -"source code ASCII-only for some reason, you can also use escape sequences in " -"string literals. (Depending on your system, you may see the actual capital-" -"delta glyph instead of a \\u escape.) ::" -msgstr "" -"Si vous ne pouvez pas entrer un caractère particulier dans votre éditeur ou " -"si vous voulez garder le code source uniquement en ASCII pour une raison " -"quelconque, vous pouvez également utiliser des séquences d'échappement dans " -"les littéraux de chaîne (en fonction de votre système, il se peut que vous " -"voyiez le glyphe réel du *delta majuscule* au lieu d'une séquence " -"d'échappement ``\\u...``) ::" - -#: howto/unicode.rst:224 -msgid "" -"In addition, one can create a string using the :func:`~bytes.decode` method " -"of :class:`bytes`. This method takes an *encoding* argument, such as " -"``UTF-8``, and optionally an *errors* argument." -msgstr "" -"De plus, une chaîne de caractères peut être créée en utilisant la " -"méthode :func:`~bytes.decode` de la classe :class:`bytes`. Cette méthode " -"prend un argument *encoding*, ``UTF-8`` par exemple, et optionnellement un " -"argument *errors*." - -#: howto/unicode.rst:228 -msgid "" -"The *errors* argument specifies the response when the input string can't be " -"converted according to the encoding's rules. Legal values for this argument " -"are ``'strict'`` (raise a :exc:`UnicodeDecodeError` exception), " -"``'replace'`` (use ``U+FFFD``, ``REPLACEMENT CHARACTER``), ``'ignore'`` " -"(just leave the character out of the Unicode result), or " -"``'backslashreplace'`` (inserts a ``\\xNN`` escape sequence). The following " -"examples show the differences::" -msgstr "" -"L'argument *errors* détermine la réponse lorsque la chaîne en entrée ne peut " -"pas être convertie selon les règles de l'encodage. Les valeurs autorisées " -"pour cet argument sont ``'strict'`` (« strict » : lève une " -"exception :exc:`UnicodeDecodeError`), ``'replace'`` (« remplacer » : utilise " -"``U+FFFD``, ``REPLACEMENT CARACTER``), ``'ignore'`` (« ignorer » : n'inclut " -"pas le caractère dans le résultat Unicode) ou ``'backslashreplace'`` " -"(« remplacer avec antislash » : insère une séquence d’échappement " -"``\\xNN``). Les exemples suivants illustrent les différences ::" - -#: howto/unicode.rst:248 -msgid "" -"Encodings are specified as strings containing the encoding's name. Python " -"comes with roughly 100 different encodings; see the Python Library Reference " -"at :ref:`standard-encodings` for a list. Some encodings have multiple " -"names; for example, ``'latin-1'``, ``'iso_8859_1'`` and ``'8859``' are all " -"synonyms for the same encoding." -msgstr "" -"Les encodages sont spécifiés sous forme de chaînes de caractères contenant " -"le nom de l'encodage. Python est livré avec une centaine d'encodages " -"différents ; voir la référence de la bibliothèque Python sur " -"les :ref:`encodages standards ` pour une liste. Certains " -"encodages ont plusieurs noms ; par exemple, ``'latin-1'``, ``'iso_8859_1'`` " -"et ``'8859'`` sont tous synonymes du même encodage." - -#: howto/unicode.rst:254 -msgid "" -"One-character Unicode strings can also be created with the :func:`chr` built-" -"in function, which takes integers and returns a Unicode string of length 1 " -"that contains the corresponding code point. The reverse operation is the " -"built-in :func:`ord` function that takes a one-character Unicode string and " -"returns the code point value::" -msgstr "" -"Des chaînes Unicode à un caractère peuvent également être créées avec la " -"fonction native :func:`chr`, qui prend des entiers et renvoie une chaîne " -"Unicode de longueur 1 qui contient le point de code correspondant. " -"L'opération inverse est la fonction native :func:`ord` qui prend une chaîne " -"Unicode d'un caractère et renvoie la valeur du point de code ::" - -#: howto/unicode.rst:266 -msgid "Converting to Bytes" -msgstr "Conversion en octets" - -#: howto/unicode.rst:268 -msgid "" -"The opposite method of :meth:`bytes.decode` is :meth:`str.encode`, which " -"returns a :class:`bytes` representation of the Unicode string, encoded in " -"the requested *encoding*." -msgstr "" -"La méthode inverse de :meth:`bytes.decode` est :meth:`str.encode`, qui " -"renvoie une représentation :class:`bytes` de la chaîne Unicode, codée dans " -"l’encodage *encoding* demandé." - -#: howto/unicode.rst:272 -msgid "" -"The *errors* parameter is the same as the parameter of " -"the :meth:`~bytes.decode` method but supports a few more possible handlers. " -"As well as ``'strict'``, ``'ignore'``, and ``'replace'`` (which in this case " -"inserts a question mark instead of the unencodable character), there is also " -"``'xmlcharrefreplace'`` (inserts an XML character reference), " -"``backslashreplace`` (inserts a ``\\uNNNN`` escape sequence) and " -"``namereplace`` (inserts a ``\\N{...}`` escape sequence)." -msgstr "" -"Le paramètre *errors* est le même que le paramètre de la " -"méthode :meth:`~bytes.decode` mais possède quelques gestionnaires " -"supplémentaires. En plus de ``'strict'``, ``'ignore'`` et ``'remplace'`` " -"(qui dans ce cas insère un point d'interrogation au lieu du caractère non " -"encodable), il y a aussi ``'xmlcharrefreplace'`` (insère une référence XML), " -"``backslashreplace`` (insère une séquence ``\\uNNNN``) et ``namereplace`` " -"(insère une séquence ``\\N{...}``)." - -#: howto/unicode.rst:280 -msgid "The following example shows the different results::" -msgstr "L'exemple suivant montre les différents résultats ::" - -#: howto/unicode.rst:301 -msgid "" -"The low-level routines for registering and accessing the available encodings " -"are found in the :mod:`codecs` module. Implementing new encodings also " -"requires understanding the :mod:`codecs` module. However, the encoding and " -"decoding functions returned by this module are usually more low-level than " -"is comfortable, and writing new encodings is a specialized task, so the " -"module won't be covered in this HOWTO." -msgstr "" -"Les routines de bas niveau pour enregistrer et accéder aux encodages " -"disponibles se trouvent dans le module :mod:`codecs`. L'implémentation de " -"nouveaux encodages nécessite également de comprendre le " -"module :mod:`codecs`. Cependant, les fonctions d'encodage et de décodage " -"renvoyées par ce module sont généralement de bas-niveau pour être facilement " -"utilisées et l'écriture de nouveaux encodages est une tâche très " -"spécialisée, donc le module ne sera pas couvert dans ce guide." - -#: howto/unicode.rst:310 -msgid "Unicode Literals in Python Source Code" -msgstr "Littéraux Unicode dans le code source Python" - -#: howto/unicode.rst:312 -msgid "" -"In Python source code, specific Unicode code points can be written using the " -"``\\u`` escape sequence, which is followed by four hex digits giving the " -"code point. The ``\\U`` escape sequence is similar, but expects eight hex " -"digits, not four::" -msgstr "" -"Dans le code source Python, des points de code Unicode spécifiques peuvent " -"être écrits en utilisant la séquence d'échappement ``\\u``, suivie de quatre " -"chiffres hexadécimaux donnant le point de code. La séquence d'échappement " -"``\\U`` est similaire, mais attend huit chiffres hexadécimaux, pas quatre ::" - -#: howto/unicode.rst:324 -msgid "" -"Using escape sequences for code points greater than 127 is fine in small " -"doses, but becomes an annoyance if you're using many accented characters, as " -"you would in a program with messages in French or some other accent-using " -"language. You can also assemble strings using the :func:`chr` built-in " -"function, but this is even more tedious." -msgstr "" -"L'utilisation de séquences d'échappement pour des points de code supérieurs " -"à 127 est acceptable à faible dose, mais devient gênante si vous utilisez " -"beaucoup de caractères accentués, comme c'est le cas dans un programme avec " -"des messages en français ou dans une autre langue utilisant des lettres " -"accentuées. Vous pouvez également assembler des chaînes de caractères à " -"l'aide de la fonction native :func:`chr`, mais c'est encore plus fastidieux." - -#: howto/unicode.rst:330 -msgid "" -"Ideally, you'd want to be able to write literals in your language's natural " -"encoding. You could then edit Python source code with your favorite editor " -"which would display the accented characters naturally, and have the right " -"characters used at runtime." -msgstr "" -"Idéalement, vous devriez être capable d'écrire des littéraux dans l'encodage " -"naturel de votre langue. Vous pourriez alors éditer le code source de Python " -"avec votre éditeur favori qui affiche les caractères accentués " -"naturellement, et a les bons caractères utilisés au moment de l'exécution." - -#: howto/unicode.rst:335 -msgid "" -"Python supports writing source code in UTF-8 by default, but you can use " -"almost any encoding if you declare the encoding being used. This is done by " -"including a special comment as either the first or second line of the source " -"file::" -msgstr "" -"Python considère que le code source est écrit en UTF-8 par défaut, mais vous " -"pouvez utiliser presque n'importe quel encodage si vous déclarez l'encodage " -"utilisé. Cela se fait en incluant un commentaire spécial sur la première ou " -"la deuxième ligne du fichier source ::" - -#: howto/unicode.rst:345 -msgid "" -"The syntax is inspired by Emacs's notation for specifying variables local to " -"a file. Emacs supports many different variables, but Python only supports " -"'coding'. The ``-*-`` symbols indicate to Emacs that the comment is " -"special; they have no significance to Python but are a convention. Python " -"looks for ``coding: name`` or ``coding=name`` in the comment." -msgstr "" -"La syntaxe s'inspire de la notation d'*Emacs* pour spécifier les variables " -"locales à un fichier. *Emacs* supporte de nombreuses variables différentes, " -"mais Python ne gère que *coding*. Les symboles ``-*-`` indiquent à *Emacs* " -"que le commentaire est spécial ; ils n'ont aucune signification pour Python " -"mais sont une convention. Python cherche ``coding: name`` ou ``coding=name`` " -"dans le commentaire." - -#: howto/unicode.rst:351 -msgid "" -"If you don't include such a comment, the default encoding used will be UTF-8 " -"as already mentioned. See also :pep:`263` for more information." -msgstr "" -"Si vous n'incluez pas un tel commentaire, l'encodage par défaut est UTF-8 " -"comme déjà mentionné. Voir aussi la :pep:`263` pour plus d'informations." - -#: howto/unicode.rst:358 -msgid "Unicode Properties" -msgstr "Propriétés Unicode" - -#: howto/unicode.rst:360 -msgid "" -"The Unicode specification includes a database of information about code " -"points. For each defined code point, the information includes the " -"character's name, its category, the numeric value if applicable (for " -"characters representing numeric concepts such as the Roman numerals, " -"fractions such as one-third and four-fifths, etc.). There are also display-" -"related properties, such as how to use the code point in bidirectional text." -msgstr "" -"La spécification Unicode inclut une base de données d'informations sur les " -"points de code. Pour chaque point de code défini, l'information comprend le " -"nom du caractère, sa catégorie, la valeur numérique s'il y a lieu (pour les " -"caractères représentant des concepts numériques tels que les chiffres " -"romains, les fractions telles qu'un tiers et quatre cinquièmes, etc.). Il " -"existe également des propriétés liées à l'affichage, telles que " -"l'utilisation du point de code dans un texte bidirectionnel." - -#: howto/unicode.rst:368 -msgid "" -"The following program displays some information about several characters, " -"and prints the numeric value of one particular character::" -msgstr "" -"Le programme suivant affiche des informations sur plusieurs caractères et " -"affiche la valeur numérique d'un caractère particulier ::" - -#: howto/unicode.rst:382 -msgid "When run, this prints:" -msgstr "Si vous l'exécutez, cela affiche :" - -#: howto/unicode.rst:393 -msgid "" -"The category codes are abbreviations describing the nature of the character. " -"These are grouped into categories such as \"Letter\", \"Number\", " -"\"Punctuation\", or \"Symbol\", which in turn are broken up into " -"subcategories. To take the codes from the above output, ``'Ll'`` means " -"'Letter, lowercase', ``'No'`` means \"Number, other\", ``'Mn'`` is \"Mark, " -"nonspacing\", and ``'So'`` is \"Symbol, other\". See `the General Category " -"Values section of the Unicode Character Database documentation `_ for a list of " -"category codes." -msgstr "" -"Les codes de catégorie sont des abréviations décrivant la nature du " -"caractère. Celles-ci sont regroupées en catégories telles que « Lettre », " -"« Nombre », « Ponctuation » ou « Symbole », qui sont à leur tour divisées en " -"sous-catégories. Pour prendre par exemple les codes de la sortie ci-dessus, " -"``'Ll'`` signifie « Lettre, minuscules », ``'No'`` signifie « Nombre, " -"autre », ``'Mn'`` est « Marque, non-espaçant », et ``'So'`` est « Symbole, " -"autre ». Voir la section `Valeurs générales des catégories de la " -"documentation de la base de données de caractères Unicode `_ (ressource en " -"anglais) pour une liste de codes de catégories." - -#: howto/unicode.rst:404 -msgid "Comparing Strings" -msgstr "Comparaison de chaînes de caractères" - -#: howto/unicode.rst:406 -msgid "" -"Unicode adds some complication to comparing strings, because the same set of " -"characters can be represented by different sequences of code points. For " -"example, a letter like 'ê' can be represented as a single code point U+00EA, " -"or as U+0065 U+0302, which is the code point for 'e' followed by a code " -"point for 'COMBINING CIRCUMFLEX ACCENT'. These will produce the same output " -"when printed, but one is a string of length 1 and the other is of length 2." -msgstr "" -"Unicode ajoute une certaine complication à la comparaison des chaînes de " -"caractères, car le même jeu de caractères peut être représenté par " -"différentes séquences de points de code. Par exemple, une lettre comme « ê » " -"peut être représentée comme un point de code unique ``U+00EA``, ou comme " -"``U+0065 U+0302``, qui est le point de code pour « e » suivi d'un point de " -"code pour ``COMBINING CIRCUMFLEX ACCENT``. Celles-ci produisent le même " -"résultat lorsqu'elles sont affichées, mais l'une est une chaîne de " -"caractères de longueur 1 et l'autre de longueur 2." - -#: howto/unicode.rst:414 -msgid "" -"One tool for a case-insensitive comparison is the :meth:`~str.casefold` " -"string method that converts a string to a case-insensitive form following an " -"algorithm described by the Unicode Standard. This algorithm has special " -"handling for characters such as the German letter 'ß' (code point U+00DF), " -"which becomes the pair of lowercase letters 'ss'." -msgstr "" -"Un outil pour une comparaison insensible à la casse est la " -"méthode :meth:`~str.casefold` qui convertit une chaîne en une forme " -"insensible à la casse suivant un algorithme décrit par le standard Unicode. " -"Cet algorithme a un traitement spécial pour les caractères tels que la " -"lettre allemande « *ß* » (point de code ``U+00DF``), qui devient la paire de " -"lettres minuscules « *ss* »." - -#: howto/unicode.rst:427 -msgid "" -"A second tool is the :mod:`unicodedata` " -"module's :func:`~unicodedata.normalize` function that converts strings to " -"one of several normal forms, where letters followed by a combining character " -"are replaced with single characters. :func:`~unicodedata.normalize` can be " -"used to perform string comparisons that won't falsely report inequality if " -"two strings use combining characters differently:" -msgstr "" -"Un deuxième outil est la fonction :mod:`unicodedata` du " -"module :func:`~unicodedata.normalize` qui convertit les chaînes de " -"caractères en l'une de plusieurs formes normales, où les lettres suivies " -"d'un caractère de combinaison sont remplacées par des caractères " -"simples. :func:`~unicodedata.normalize` peut être utilisée pour effectuer " -"des comparaisons qui ne rapportent pas faussement les inégalités si deux " -"chaînes utilisent différents caractères de combinaison :" - -#: howto/unicode.rst:450 -msgid "When run, this outputs:" -msgstr "Si vous l'exécutez, cela affiche :" - -#: howto/unicode.rst:459 -msgid "" -"The first argument to the :func:`~unicodedata.normalize` function is a " -"string giving the desired normalization form, which can be one of 'NFC', " -"'NFKC', 'NFD', and 'NFKD'." -msgstr "" -"Le premier argument de la fonction :func:`~unicodedata.normalize` est une " -"chaîne de caractères donnant la forme de normalisation désirée, qui peut " -"être une de celles-ci : ``'NFC'``, ``'NFKC'``, ``'NFD'`` et ``'NFKD'``." - -#: howto/unicode.rst:463 -msgid "The Unicode Standard also specifies how to do caseless comparisons::" -msgstr "" -"La norme Unicode spécifie également comment faire des comparaisons " -"insensibles à la casse ::" - -#: howto/unicode.rst:479 -msgid "" -"This will print ``True``. (Why is :func:`!NFD` invoked twice? Because " -"there are a few characters that make :meth:`~str.casefold` return a non-" -"normalized string, so the result needs to be normalized again. See section " -"3.13 of the Unicode Standard for a discussion and an example.)" -msgstr "" -"Ceci affiche ``True``. (Pourquoi :func:`!NFD` est-il invoqué deux fois ? " -"Parce qu'il y a quelques caractères qui font que :meth:`~str.casefold` " -"renvoie une chaîne non normalisée, donc le résultat doit être normalisé à " -"nouveau. Voir la section 3.13 du standard Unicode pour une discussion et un " -"exemple)." - -#: howto/unicode.rst:486 -msgid "Unicode Regular Expressions" -msgstr "Expressions régulières Unicode" - -#: howto/unicode.rst:488 -msgid "" -"The regular expressions supported by the :mod:`re` module can be provided " -"either as bytes or strings. Some of the special character sequences such as " -"``\\d`` and ``\\w`` have different meanings depending on whether the pattern " -"is supplied as bytes or a string. For example, ``\\d`` will match the " -"characters ``[0-9]`` in bytes but in strings will match any character that's " -"in the ``'Nd'`` category." -msgstr "" -"Les expressions régulières gérées par le module :mod:`re` peuvent être " -"fournies sous forme de chaîne d'octets ou de texte. Certaines séquences de " -"caractères spéciaux telles que ``\\d`` et ``\\w`` ont des significations " -"différentes selon que le motif est fourni en octets ou en texte. Par " -"exemple, ``\\d`` correspond aux caractères ``[0-9]`` en octets mais dans les " -"chaînes de caractères correspond à tout caractère de la catégorie ``'Nd'``." - -#: howto/unicode.rst:495 -msgid "" -"The string in this example has the number 57 written in both Thai and Arabic " -"numerals::" -msgstr "" -"Dans cet exemple, la chaîne contient le nombre 57 écrit en chiffres arabes " -"et thaïlandais ::" - -#: howto/unicode.rst:505 -msgid "" -"When executed, ``\\d+`` will match the Thai numerals and print them out. If " -"you supply the :const:`re.ASCII` flag to :func:`~re.compile`, ``\\d+`` will " -"match the substring \"57\" instead." -msgstr "" -"Une fois exécuté, ``\\d+`` correspond aux chiffres thaïlandais et les " -"affiche. Si vous fournissez le drapeau :const:`re.ASCII` " -"à :func:`~re.compile`, ``\\d+`` correspond cette fois à la chaîne \"57\"." - -#: howto/unicode.rst:509 -msgid "" -"Similarly, ``\\w`` matches a wide variety of Unicode characters but only " -"``[a-zA-Z0-9_]`` in bytes or if :const:`re.ASCII` is supplied, and ``\\s`` " -"will match either Unicode whitespace characters or ``[ \\t\\n\\r\\f\\v]``." -msgstr "" -"De même, ``\\w`` correspond à une grande variété de caractères Unicode mais " -"seulement ``[a-zA-Z0-9_]`` en octets (ou si :const:`re.ASCII` est fourni) et " -"``\\s`` correspond soit aux caractères blancs Unicode soit aux caractères " -"``[ \\t\\n\\r\\f\\v]``." - -#: howto/unicode.rst:520 -msgid "Some good alternative discussions of Python's Unicode support are:" -msgstr "" -"Quelques bonnes discussions alternatives sur la gestion d'Unicode par Python " -"sont :" - -#: howto/unicode.rst:522 -msgid "" -"`Processing Text Files in Python 3 `_, " -"by Nick Coghlan." -msgstr "" -"`Processing Text Files in Python 3 `_, " -"par Nick Coghlan." - -#: howto/unicode.rst:523 -msgid "" -"`Pragmatic Unicode `_, a PyCon " -"2012 presentation by Ned Batchelder." -msgstr "" -"`Pragmatic Unicode `_, une " -"présentation *PyCon* 2012 par Ned Batchelder." - -#: howto/unicode.rst:525 -msgid "" -"The :class:`str` type is described in the Python library reference " -"at :ref:`textseq`." -msgstr "" -"Le type :class:`str` est décrit dans la référence de la bibliothèque Python " -"à :ref:`textseq`." - -#: howto/unicode.rst:528 -msgid "The documentation for the :mod:`unicodedata` module." -msgstr "La documentation du module :mod:`unicodedata`." - -#: howto/unicode.rst:530 -msgid "The documentation for the :mod:`codecs` module." -msgstr "La documentation du module :mod:`codecs`." - -#: howto/unicode.rst:532 -msgid "" -"Marc-André Lemburg gave `a presentation titled \"Python and Unicode\" (PDF " -"slides) `_ at " -"EuroPython 2002. The slides are an excellent overview of the design of " -"Python 2's Unicode features (where the Unicode string type is called " -"``unicode`` and literals start with ``u``)." -msgstr "" -"Marc-André Lemburg a donné une présentation intitulée `« Python et Unicode » " -"(diapositives PDF) `_ à *EuroPython* 2002. Les diapositives sont un excellent aperçu " -"de la conception des fonctionnalités Unicode de Python 2 (où le type de " -"chaîne Unicode est appelé ``unicode`` et les littéraux commencent par ``u``)." - -#: howto/unicode.rst:540 -msgid "Reading and Writing Unicode Data" -msgstr "Lecture et écriture de données Unicode" - -#: howto/unicode.rst:542 -msgid "" -"Once you've written some code that works with Unicode data, the next problem " -"is input/output. How do you get Unicode strings into your program, and how " -"do you convert Unicode into a form suitable for storage or transmission?" -msgstr "" -"Une fois que vous avez écrit du code qui fonctionne avec des données " -"Unicode, le problème suivant concerne les entrées/sorties. Comment obtenir " -"des chaînes Unicode dans votre programme et comment convertir les chaînes " -"Unicode dans une forme appropriée pour le stockage ou la transmission ?" - -#: howto/unicode.rst:546 -msgid "" -"It's possible that you may not need to do anything depending on your input " -"sources and output destinations; you should check whether the libraries used " -"in your application support Unicode natively. XML parsers often return " -"Unicode data, for example. Many relational databases also support Unicode-" -"valued columns and can return Unicode values from an SQL query." -msgstr "" -"Il est possible que vous n'ayez rien à faire en fonction de vos sources " -"d'entrée et des destinations de vos données de sortie ; il convient de " -"vérifier si les bibliothèques utilisées dans votre application gèrent " -"l'Unicode nativement. Par exemple, les analyseurs XML renvoient souvent des " -"données Unicode. De nombreuses bases de données relationnelles prennent " -"également en charge les colonnes encodées en Unicode et peuvent renvoyer des " -"valeurs Unicode à partir d'une requête SQL." - -#: howto/unicode.rst:552 -msgid "" -"Unicode data is usually converted to a particular encoding before it gets " -"written to disk or sent over a socket. It's possible to do all the work " -"yourself: open a file, read an 8-bit bytes object from it, and convert the " -"bytes with ``bytes.decode(encoding)``. However, the manual approach is not " -"recommended." -msgstr "" -"Les données Unicode sont généralement converties en un encodage particulier " -"avant d'être écrites sur le disque ou envoyées sur un connecteur réseau. Il " -"est possible de faire tout le travail vous-même : ouvrir un fichier, lire un " -"élément 8-bits, puis convertir les octets avec ``bytes.decode(encoding)``. " -"Cependant, l'approche manuelle n'est pas recommandée." - -#: howto/unicode.rst:557 -msgid "" -"One problem is the multi-byte nature of encodings; one Unicode character can " -"be represented by several bytes. If you want to read the file in arbitrary-" -"sized chunks (say, 1024 or 4096 bytes), you need to write error-handling " -"code to catch the case where only part of the bytes encoding a single " -"Unicode character are read at the end of a chunk. One solution would be to " -"read the entire file into memory and then perform the decoding, but that " -"prevents you from working with files that are extremely large; if you need " -"to read a 2 GiB file, you need 2 GiB of RAM. (More, really, since for at " -"least a moment you'd need to have both the encoded string and its Unicode " -"version in memory.)" -msgstr "" -"La nature multi-octets des encodages pose problème ; un caractère Unicode " -"peut être représenté par plusieurs octets. Si vous voulez lire le fichier " -"par morceaux de taille arbitraire (disons 1024 ou 4096 octets), vous devez " -"écrire un code de gestion des erreurs pour détecter le cas où une partie " -"seulement des octets codant un seul caractère Unicode est lue à la fin d'un " -"morceau. Une solution serait de lire le fichier entier en mémoire et " -"d'effectuer le décodage, mais cela vous empêche de travailler avec des " -"fichiers extrêmement volumineux ; si vous avez besoin de lire un fichier de " -"2 Gio, vous avez besoin de 2 Gio de RAM (plus que ça, en fait, puisque " -"pendant un moment, vous aurez besoin d'avoir à la fois la chaîne encodée et " -"sa version Unicode en mémoire)." - -#: howto/unicode.rst:567 -msgid "" -"The solution would be to use the low-level decoding interface to catch the " -"case of partial coding sequences. The work of implementing this has already " -"been done for you: the built-in :func:`open` function can return a file-like " -"object that assumes the file's contents are in a specified encoding and " -"accepts Unicode parameters for methods such as :meth:`~io.TextIOBase.read` " -"and :meth:`~io.TextIOBase.write`. This works through :func:`open`\\'s " -"*encoding* and *errors* parameters which are interpreted just like those " -"in :meth:`str.encode` and :meth:`bytes.decode`." -msgstr "" -"La solution serait d'utiliser l'interface de décodage de bas-niveau pour " -"intercepter le cas des séquences d'encodage incomplètes. Ce travail " -"d'implémentation a déjà été fait pour vous : la fonction native :func:`open` " -"peut renvoyer un objet de type fichier qui suppose que le contenu du fichier " -"est dans un encodage spécifié et accepte les paramètres Unicode pour des " -"méthodes telles que :meth:`~io.TextIOBase.read` " -"et :meth:`~io.TextIOBase.write`. Ceci fonctionne grâce aux paramètres " -"*encoding* et *errors* de :func:`open` qui sont interprétés comme ceux " -"de :meth:`str.encode` et :meth:`bytes.decode`." - -#: howto/unicode.rst:576 -msgid "Reading Unicode from a file is therefore simple::" -msgstr "Lire de l'Unicode à partir d'un fichier est donc simple ::" - -#: howto/unicode.rst:582 -msgid "" -"It's also possible to open files in update mode, allowing both reading and " -"writing::" -msgstr "" -"Il est également possible d'ouvrir des fichiers en mode « mise à jour », " -"permettant à la fois la lecture et l'écriture ::" - -#: howto/unicode.rst:590 -msgid "" -"The Unicode character ``U+FEFF`` is used as a byte-order mark (BOM), and is " -"often written as the first character of a file in order to assist with " -"autodetection of the file's byte ordering. Some encodings, such as UTF-16, " -"expect a BOM to be present at the start of a file; when such an encoding is " -"used, the BOM will be automatically written as the first character and will " -"be silently dropped when the file is read. There are variants of these " -"encodings, such as 'utf-16-le' and 'utf-16-be' for little-endian and big-" -"endian encodings, that specify one particular byte ordering and don't skip " -"the BOM." -msgstr "" -"Le caractère Unicode ``U+FEFFF`` est utilisé comme marque pour indiquer le " -"boutisme (c'est-à-dire l'ordre dans lequel les octets sont placés pour " -"indiquer une valeur sur plusieurs octets, *byte-order mark* en anglais ou " -"*BOM*), et est souvent écrit en tête (premier caractère) d'un fichier afin " -"d'aider à l'auto-détection du boutisme du fichier. Certains encodages, comme " -"UTF-16, s'attendent à ce qu'une *BOM* soit présente au début d'un fichier ; " -"lorsqu'un tel encodage est utilisé, la *BOM* sera automatiquement écrite " -"comme premier caractère et sera silencieusement retirée lorsque le fichier " -"sera lu. Il existe des variantes de ces encodages, comme ``utf-16-le`` et " -"``utf-16-be`` pour les encodages petit-boutiste et gros-boutiste, qui " -"spécifient un ordre d'octets donné et ne sautent pas la *BOM*." - -#: howto/unicode.rst:599 -msgid "" -"In some areas, it is also convention to use a \"BOM\" at the start of UTF-8 " -"encoded files; the name is misleading since UTF-8 is not byte-order " -"dependent. The mark simply announces that the file is encoded in UTF-8. For " -"reading such files, use the 'utf-8-sig' codec to automatically skip the mark " -"if present." -msgstr "" -"Dans certains cas, il est également d'usage d'utiliser une *BOM* au début " -"des fichiers encodés en UTF-8 ; le nom est trompeur puisque l'UTF-8 ne " -"dépend pas de l'ordre des octets. La marque annonce simplement que le " -"fichier est encodé en UTF-8. Pour lire ces fichiers, utilisez le codec " -"``utf-8-sig`` pour sauter automatiquement la marque si elle est présente." - -#: howto/unicode.rst:606 -msgid "Unicode filenames" -msgstr "Noms de fichiers Unicode" - -#: howto/unicode.rst:608 -msgid "" -"Most of the operating systems in common use today support filenames that " -"contain arbitrary Unicode characters. Usually this is implemented by " -"converting the Unicode string into some encoding that varies depending on " -"the system. Today Python is converging on using UTF-8: Python on MacOS has " -"used UTF-8 for several versions, and Python 3.6 switched to using UTF-8 on " -"Windows as well. On Unix systems, there will only be a :term:`filesystem " -"encoding `. if you've set the " -"``LANG`` or ``LC_CTYPE`` environment variables; if you haven't, the default " -"encoding is again UTF-8." -msgstr "" -"La plupart des systèmes d'exploitation couramment utilisés aujourd'hui " -"prennent en charge les noms de fichiers qui contiennent des caractères " -"Unicode arbitraires. Habituellement, ceci est implémenté en convertissant la " -"chaîne Unicode en un encodage qui varie en fonction du système. Aujourd'hui, " -"Python converge vers l'utilisation d'UTF-8 : Python sous MacOS utilise UTF-8 " -"depuis plusieurs versions et Python 3.6 sous Windows est passé à UTF-8 " -"également. Sur les systèmes Unix, il n'y aura un :term:`encodage pour le " -"système de fichiers ` que si vous " -"avez défini les variables d'environnement ``LANG`` ou ``LC_CTYPE`` ; sinon, " -"l'encodage par défaut est UTF-8." - -#: howto/unicode.rst:618 -msgid "" -"The :func:`sys.getfilesystemencoding` function returns the encoding to use " -"on your current system, in case you want to do the encoding manually, but " -"there's not much reason to bother. When opening a file for reading or " -"writing, you can usually just provide the Unicode string as the filename, " -"and it will be automatically converted to the right encoding for you::" -msgstr "" -"La fonction :func:`sys.getfilesystemencoding` renvoie l'encodage à utiliser " -"sur votre système actuel, au cas où vous voudriez faire l'encodage " -"manuellement, mais il n'y a pas vraiment de raisons de s'embêter avec ça. " -"Lors de l'ouverture d'un fichier pour la lecture ou l'écriture, vous pouvez " -"généralement simplement fournir la chaîne Unicode comme nom de fichier et " -"elle est automatiquement convertie à l'encodage qui convient ::" - -#: howto/unicode.rst:628 -msgid "" -"Functions in the :mod:`os` module such as :func:`os.stat` will also accept " -"Unicode filenames." -msgstr "" -"Les fonctions du module :mod:`os` telles que :func:`os.stat` acceptent " -"également les noms de fichiers Unicode." - -#: howto/unicode.rst:631 -msgid "" -"The :func:`os.listdir` function returns filenames, which raises an issue: " -"should it return the Unicode version of filenames, or should it return bytes " -"containing the encoded versions? :func:`os.listdir` can do both, depending " -"on whether you provided the directory path as bytes or a Unicode string. If " -"you pass a Unicode string as the path, filenames will be decoded using the " -"filesystem's encoding and a list of Unicode strings will be returned, while " -"passing a byte path will return the filenames as bytes. For example, " -"assuming the default :term:`filesystem encoding ` is UTF-8, running the following program::" -msgstr "" -"La fonction :func:`os.listdir` renvoie des noms de fichiers, ce qui soulève " -"un problème : doit-elle renvoyer la version Unicode des noms de fichiers ou " -"doit-elle renvoyer des chaînes d'octets contenant les versions " -"encodées ? :func:`os.listdir` peut faire les deux, selon que vous fournissez " -"le chemin du répertoire en chaîne d'octets ou en chaîne Unicode. Si vous " -"passez une chaîne Unicode comme chemin d'accès, les noms de fichiers sont " -"décodés en utilisant l'encodage du système de fichiers et une liste de " -"chaînes Unicode est renvoyée, tandis que passer un chemin d'accès en chaîne " -"d'octets renvoie les noms de fichiers comme chaîne d'octets. Par exemple, en " -"supposant que l':term:`encodage par défaut du système de fichiers " -"` est UTF-8, exécuter le programme " -"suivant ::" - -#: howto/unicode.rst:649 -msgid "will produce the following output:" -msgstr "produit la sortie suivante :" - -#: howto/unicode.rst:657 -msgid "" -"The first list contains UTF-8-encoded filenames, and the second list " -"contains the Unicode versions." -msgstr "" -"La première liste contient les noms de fichiers encodés en UTF-8 et la " -"seconde contient les versions Unicode." - -#: howto/unicode.rst:660 -msgid "" -"Note that on most occasions, you should can just stick with using Unicode " -"with these APIs. The bytes APIs should only be used on systems where " -"undecodable file names can be present; that's pretty much only Unix systems " -"now." -msgstr "" -"Notez que, dans la plupart des cas, il convient de vous en tenir à " -"l'utilisation d'Unicode avec ces *APIs*. Les *API* d'octets ne devraient " -"être utilisées que sur les systèmes où des noms de fichiers non décodables " -"peuvent être présents. Cela ne concerne pratiquement que des systèmes Unix " -"maintenant." - -#: howto/unicode.rst:667 -msgid "Tips for Writing Unicode-aware Programs" -msgstr "Conseils pour écrire des programmes compatibles Unicode" - -#: howto/unicode.rst:669 -msgid "" -"This section provides some suggestions on writing software that deals with " -"Unicode." -msgstr "" -"Cette section fournit quelques suggestions sur l'écriture de logiciels qui " -"traitent de l'Unicode." - -#: howto/unicode.rst:672 -msgid "The most important tip is:" -msgstr "Le conseil le plus important est :" - -#: howto/unicode.rst:674 -msgid "" -"Software should only work with Unicode strings internally, decoding the " -"input data as soon as possible and encoding the output only at the end." -msgstr "" -"Il convient que le logiciel ne traite que des chaînes Unicode en interne, " -"décodant les données d'entrée dès que possible et encodant la sortie " -"uniquement à la fin." - -#: howto/unicode.rst:677 -msgid "" -"If you attempt to write processing functions that accept both Unicode and " -"byte strings, you will find your program vulnerable to bugs wherever you " -"combine the two different kinds of strings. There is no automatic encoding " -"or decoding: if you do e.g. ``str + bytes``, a :exc:`TypeError` will be " -"raised." -msgstr "" -"Si vous essayez d'écrire des fonctions de traitement qui acceptent à la fois " -"les chaînes Unicode et les chaînes d'octets, les possibilités d'occurrences " -"de bogues dans votre programme augmentent partout où vous combinez les deux " -"différents types de chaînes. Il n'y a pas d'encodage ou de décodage " -"automatique : si vous faites par exemple ``str + octets``, " -"une :exc:`TypeError` est levée." - -#: howto/unicode.rst:682 -msgid "" -"When using data coming from a web browser or some other untrusted source, a " -"common technique is to check for illegal characters in a string before using " -"the string in a generated command line or storing it in a database. If " -"you're doing this, be careful to check the decoded string, not the encoded " -"bytes data; some encodings may have interesting properties, such as not " -"being bijective or not being fully ASCII-compatible. This is especially " -"true if the input data also specifies the encoding, since the attacker can " -"then choose a clever way to hide malicious text in the encoded bytestream." -msgstr "" -"Lors de l'utilisation de données provenant d'un navigateur Web ou d'une " -"autre source non fiable, une technique courante consiste à vérifier la " -"présence de caractères illégaux dans une chaîne de caractères avant de " -"l'utiliser pour générer une ligne de commande ou de la stocker dans une base " -"de données. Si vous le faites, vérifiez bien la chaîne décodée, pas les " -"données d'octets codés ; certains encodages peuvent avoir des propriétés " -"intéressantes, comme ne pas être bijectifs ou ne pas être entièrement " -"compatibles avec l'ASCII. C'est particulièrement vrai si l'encodage est " -"spécifié explicitement dans vos données d'entrée, car l'attaquant peut alors " -"choisir un moyen intelligent de cacher du texte malveillant dans le flux de " -"données encodé." - -#: howto/unicode.rst:693 -msgid "Converting Between File Encodings" -msgstr "Conversion entre les encodages de fichiers" - -#: howto/unicode.rst:695 -msgid "" -"The :class:`~codecs.StreamRecoder` class can transparently convert between " -"encodings, taking a stream that returns data in encoding #1 and behaving " -"like a stream returning data in encoding #2." -msgstr "" -"La classe :class:`~codecs.StreamRecoder` peut convertir de manière " -"transparente entre les encodages : prenant un flux qui renvoie des données " -"dans l'encodage #1, elle se comporte comme un flux qui renvoie des données " -"dans l'encodage #2." - -#: howto/unicode.rst:699 -msgid "" -"For example, if you have an input file *f* that's in Latin-1, you can wrap " -"it with a :class:`~codecs.StreamRecoder` to return bytes encoded in UTF-8::" -msgstr "" -"Par exemple, si vous avez un fichier d'entrée *f* qui est en Latin-1, vous " -"pouvez l'encapsuler dans un :class:`~codecs.StreamRecoder` pour qu'il " -"renvoie des octets encodés en UTF-8 ::" - -#: howto/unicode.rst:713 -msgid "Files in an Unknown Encoding" -msgstr "Fichiers dans un encodage inconnu" - -#: howto/unicode.rst:715 -msgid "" -"What can you do if you need to make a change to a file, but don't know the " -"file's encoding? If you know the encoding is ASCII-compatible and only want " -"to examine or modify the ASCII parts, you can open the file with the " -"``surrogateescape`` error handler::" -msgstr "" -"Vous avez besoin de modifier un fichier, mais vous ne connaissez pas son " -"encodage ? Si vous savez que l'encodage est compatible ASCII et que vous " -"voulez seulement examiner ou modifier les parties ASCII, vous pouvez ouvrir " -"le fichier avec le gestionnaire d'erreurs ``surrogateescape`` ::" - -#: howto/unicode.rst:729 -msgid "" -"The ``surrogateescape`` error handler will decode any non-ASCII bytes as " -"code points in a special range running from U+DC80 to U+DCFF. These code " -"points will then turn back into the same bytes when the ``surrogateescape`` " -"error handler is used to encode the data and write it back out." -msgstr "" -"Le gestionnaire d'erreurs ``surrogateescape`` décode tous les octets non-" -"ASCII comme points de code dans une plage spéciale allant de ``U+DC80`` à " -"``U+DCFF``. Ces points de code redeviennent alors les mêmes octets lorsque " -"le gestionnaire d'erreurs ``surrogateescape`` est utilisé pour encoder les " -"données et les réécrire." - -#: howto/unicode.rst:739 -msgid "" -"One section of `Mastering Python 3 Input/Output `_, a PyCon 2010 talk by David " -"Beazley, discusses text processing and binary data handling." -msgstr "" -"Une partie de la conférence `Mastering Python 3 Input/Output `_ (ressource en " -"anglais), donnée lors de *PyCon* 2010 de David Beazley, parle du traitement " -"de texte et du traitement des données binaires." - -#: howto/unicode.rst:743 -msgid "" -"The `PDF slides for Marc-André Lemburg's presentation \"Writing Unicode-" -"aware Applications in Python\" `_ discuss questions of " -"character encodings as well as how to internationalize and localize an " -"application. These slides cover Python 2.x only." -msgstr "" -"Le `PDF du diaporama de la présentation de Marc-André Lemburg \"Writing " -"Unicodeaware Applications in Python\" `_ (ressource en " -"anglais) traite des questions d'encodage de caractères ainsi que de " -"l'internationalisation et de la localisation d'une application. Ces " -"diapositives ne couvrent que Python 2.x." - -#: howto/unicode.rst:749 -msgid "" -"`The Guts of Unicode in Python `_ is a PyCon 2013 talk by Benjamin Peterson that " -"discusses the internal Unicode representation in Python 3.3." -msgstr "" -"`The Guts of Unicode in Python `_ (ressource en anglais) est une conférence *PyCon* 2013 " -"donnée par Benjamin Peterson qui traite de la représentation interne Unicode " -"en Python 3.3." - -#: howto/unicode.rst:756 -msgid "Acknowledgements" -msgstr "Remerciements" - -#: howto/unicode.rst:758 -msgid "" -"The initial draft of this document was written by Andrew Kuchling. It has " -"since been revised further by Alexander Belopolsky, Georg Brandl, Andrew " -"Kuchling, and Ezio Melotti." -msgstr "" -"La première ébauche de ce document a été rédigée par Andrew Kuchling. Il a " -"depuis été révisé par Alexander Belopolsky, Georg Brandl, Andrew Kuchling et " -"Ezio Melotti." - -#: howto/unicode.rst:762 -msgid "" -"Thanks to the following people who have noted errors or offered suggestions " -"on this article: Éric Araujo, Nicholas Bastin, Nick Coghlan, Marius " -"Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von Löwis, " -"Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham Wideman." -msgstr "" -"Merci aux personnes suivantes qui ont noté des erreurs ou qui ont fait des " -"suggestions sur cet article : Éric Araujo, Nicholas Bastin, Nick Coghlan, " -"Marius Gedminas, Kent Johnson, Ken Krugler, Marc-André Lemburg, Martin von " -"Löwis, Terry J. Reedy, Serhiy Storchaka, Eryk Sun, Chad Whitacre, Graham " -"Wideman." diff --git a/howto/urllib2.po b/howto/urllib2.po deleted file mode 100644 index 8a13b5023c..0000000000 --- a/howto/urllib2.po +++ /dev/null @@ -1,581 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: howto/urllib2.rst:5 -msgid "HOWTO Fetch Internet Resources Using The urllib Package" -msgstr "" -"Guide pratique : récupérer des ressources web en utilisant le module *urllib*" - -#: howto/urllib2.rst:0 -msgid "Author" -msgstr "Auteur" - -#: howto/urllib2.rst:7 -msgid "`Michael Foord `_" -msgstr "" - -#: howto/urllib2.rst:11 -msgid "Introduction" -msgstr "Introduction" - -#: howto/urllib2.rst:13 -msgid "Related Articles" -msgstr "" - -#: howto/urllib2.rst:15 -msgid "" -"You may also find useful the following article on fetching web resources " -"with Python:" -msgstr "" - -#: howto/urllib2.rst:18 -msgid "" -"`Basic Authentication `__" -msgstr "" - -#: howto/urllib2.rst:20 -msgid "A tutorial on *Basic Authentication*, with examples in Python." -msgstr "" - -#: howto/urllib2.rst:22 -msgid "" -"**urllib.request** is a Python module for fetching URLs (Uniform Resource " -"Locators). It offers a very simple interface, in the form of the *urlopen* " -"function. This is capable of fetching URLs using a variety of different " -"protocols. It also offers a slightly more complex interface for handling " -"common situations - like basic authentication, cookies, proxies and so on. " -"These are provided by objects called handlers and openers." -msgstr "" - -#: howto/urllib2.rst:29 -msgid "" -"urllib.request supports fetching URLs for many \"URL schemes\" (identified " -"by the string before the ``\":\"`` in URL - for example ``\"ftp\"`` is the " -"URL scheme of ``\"ftp://python.org/\"``) using their associated network " -"protocols (e.g. FTP, HTTP). This tutorial focuses on the most common case, " -"HTTP." -msgstr "" - -#: howto/urllib2.rst:34 -msgid "" -"For straightforward situations *urlopen* is very easy to use. But as soon as " -"you encounter errors or non-trivial cases when opening HTTP URLs, you will " -"need some understanding of the HyperText Transfer Protocol. The most " -"comprehensive and authoritative reference to HTTP is :rfc:`2616`. This is a " -"technical document and not intended to be easy to read. This HOWTO aims to " -"illustrate using *urllib*, with enough detail about HTTP to help you " -"through. It is not intended to replace the :mod:`urllib.request` docs, but " -"is supplementary to them." -msgstr "" - -#: howto/urllib2.rst:44 -msgid "Fetching URLs" -msgstr "" - -#: howto/urllib2.rst:46 -msgid "The simplest way to use urllib.request is as follows::" -msgstr "" - -#: howto/urllib2.rst:52 -msgid "" -"If you wish to retrieve a resource via URL and store it in a temporary " -"location, you can do so via the :func:`shutil.copyfileobj` " -"and :func:`tempfile.NamedTemporaryFile` functions::" -msgstr "" - -#: howto/urllib2.rst:67 -msgid "" -"Many uses of urllib will be that simple (note that instead of an 'http:' URL " -"we could have used a URL starting with 'ftp:', 'file:', etc.). However, " -"it's the purpose of this tutorial to explain the more complicated cases, " -"concentrating on HTTP." -msgstr "" - -#: howto/urllib2.rst:72 -msgid "" -"HTTP is based on requests and responses - the client makes requests and " -"servers send responses. urllib.request mirrors this with a ``Request`` " -"object which represents the HTTP request you are making. In its simplest " -"form you create a Request object that specifies the URL you want to fetch. " -"Calling ``urlopen`` with this Request object returns a response object for " -"the URL requested. This response is a file-like object, which means you can " -"for example call ``.read()`` on the response::" -msgstr "" - -#: howto/urllib2.rst:86 -msgid "" -"Note that urllib.request makes use of the same Request interface to handle " -"all URL schemes. For example, you can make an FTP request like so::" -msgstr "" - -#: howto/urllib2.rst:91 -msgid "" -"In the case of HTTP, there are two extra things that Request objects allow " -"you to do: First, you can pass data to be sent to the server. Second, you " -"can pass extra information (\"metadata\") *about* the data or about the " -"request itself, to the server - this information is sent as HTTP " -"\"headers\". Let's look at each of these in turn." -msgstr "" - -#: howto/urllib2.rst:98 -msgid "Data" -msgstr "" - -#: howto/urllib2.rst:100 -msgid "" -"Sometimes you want to send data to a URL (often the URL will refer to a CGI " -"(Common Gateway Interface) script or other web application). With HTTP, this " -"is often done using what's known as a **POST** request. This is often what " -"your browser does when you submit a HTML form that you filled in on the web. " -"Not all POSTs have to come from forms: you can use a POST to transmit " -"arbitrary data to your own application. In the common case of HTML forms, " -"the data needs to be encoded in a standard way, and then passed to the " -"Request object as the ``data`` argument. The encoding is done using a " -"function from the :mod:`urllib.parse` library. ::" -msgstr "" - -#: howto/urllib2.rst:124 -msgid "" -"Note that other encodings are sometimes required (e.g. for file upload from " -"HTML forms - see `HTML Specification, Form Submission `_ for more details)." -msgstr "" - -#: howto/urllib2.rst:129 -msgid "" -"If you do not pass the ``data`` argument, urllib uses a **GET** request. One " -"way in which GET and POST requests differ is that POST requests often have " -"\"side-effects\": they change the state of the system in some way (for " -"example by placing an order with the website for a hundredweight of tinned " -"spam to be delivered to your door). Though the HTTP standard makes it clear " -"that POSTs are intended to *always* cause side-effects, and GET requests " -"*never* to cause side-effects, nothing prevents a GET request from having " -"side-effects, nor a POST requests from having no side-effects. Data can also " -"be passed in an HTTP GET request by encoding it in the URL itself." -msgstr "" - -#: howto/urllib2.rst:139 -msgid "This is done as follows::" -msgstr "" - -#: howto/urllib2.rst:154 -msgid "" -"Notice that the full URL is created by adding a ``?`` to the URL, followed " -"by the encoded values." -msgstr "" - -#: howto/urllib2.rst:158 -msgid "Headers" -msgstr "" - -#: howto/urllib2.rst:160 -msgid "" -"We'll discuss here one particular HTTP header, to illustrate how to add " -"headers to your HTTP request." -msgstr "" - -#: howto/urllib2.rst:163 -msgid "" -"Some websites [#]_ dislike being browsed by programs, or send different " -"versions to different browsers [#]_. By default urllib identifies itself as " -"``Python-urllib/x.y`` (where ``x`` and ``y`` are the major and minor version " -"numbers of the Python release, e.g. ``Python-urllib/2.5``), which may " -"confuse the site, or just plain not work. The way a browser identifies " -"itself is through the ``User-Agent`` header [#]_. When you create a Request " -"object you can pass a dictionary of headers in. The following example makes " -"the same request as above, but identifies itself as a version of Internet " -"Explorer [#]_. ::" -msgstr "" - -#: howto/urllib2.rst:190 -msgid "" -"The response also has two useful methods. See the section on `info and " -"geturl`_ which comes after we have a look at what happens when things go " -"wrong." -msgstr "" - -#: howto/urllib2.rst:195 -msgid "Handling Exceptions" -msgstr "Gestion des exceptions" - -#: howto/urllib2.rst:197 -msgid "" -"*urlopen* raises :exc:`~urllib.error.URLError` when it cannot handle a " -"response (though as usual with Python APIs, built-in exceptions such " -"as :exc:`ValueError`, :exc:`TypeError` etc. may also be raised)." -msgstr "" - -#: howto/urllib2.rst:201 -msgid "" -":exc:`~urllib.error.HTTPError` is the subclass " -"of :exc:`~urllib.error.URLError` raised in the specific case of HTTP URLs." -msgstr "" - -#: howto/urllib2.rst:204 -msgid "The exception classes are exported from the :mod:`urllib.error` module." -msgstr "" - -#: howto/urllib2.rst:207 -msgid "URLError" -msgstr "" - -#: howto/urllib2.rst:209 -msgid "" -"Often, URLError is raised because there is no network connection (no route " -"to the specified server), or the specified server doesn't exist. In this " -"case, the exception raised will have a 'reason' attribute, which is a tuple " -"containing an error code and a text error message." -msgstr "" - -#: howto/urllib2.rst:214 -msgid "e.g. ::" -msgstr "" - -#: howto/urllib2.rst:225 -msgid "HTTPError" -msgstr "" - -#: howto/urllib2.rst:227 -msgid "" -"Every HTTP response from the server contains a numeric \"status code\". " -"Sometimes the status code indicates that the server is unable to fulfil the " -"request. The default handlers will handle some of these responses for you " -"(for example, if the response is a \"redirection\" that requests the client " -"fetch the document from a different URL, urllib will handle that for you). " -"For those it can't handle, urlopen will raise " -"an :exc:`~urllib.error.HTTPError`. Typical errors include '404' (page not " -"found), '403' (request forbidden), and '401' (authentication required)." -msgstr "" - -#: howto/urllib2.rst:235 -msgid "" -"See section 10 of :rfc:`2616` for a reference on all the HTTP error codes." -msgstr "" - -#: howto/urllib2.rst:237 -msgid "" -"The :exc:`~urllib.error.HTTPError` instance raised will have an integer " -"'code' attribute, which corresponds to the error sent by the server." -msgstr "" - -#: howto/urllib2.rst:241 -msgid "Error Codes" -msgstr "" - -#: howto/urllib2.rst:243 -msgid "" -"Because the default handlers handle redirects (codes in the 300 range), and " -"codes in the 100--299 range indicate success, you will usually only see " -"error codes in the 400--599 range." -msgstr "" - -#: howto/urllib2.rst:247 -msgid "" -":attr:`http.server.BaseHTTPRequestHandler.responses` is a useful dictionary " -"of response codes that shows all the response codes used by :rfc:`2616`. An " -"excerpt from the dictionary is shown below ::" -msgstr "" - -#: howto/urllib2.rst:271 -msgid "" -"When an error is raised the server responds by returning an HTTP error code " -"*and* an error page. You can use the :exc:`~urllib.error.HTTPError` instance " -"as a response on the page returned. This means that as well as the code " -"attribute, it also has read, geturl, and info, methods as returned by the " -"``urllib.response`` module::" -msgstr "" - -#: howto/urllib2.rst:291 -msgid "Wrapping it Up" -msgstr "" - -#: howto/urllib2.rst:293 -msgid "" -"So if you want to be prepared for :exc:`~urllib.error.HTTPError` " -"*or* :exc:`~urllib.error.URLError` there are two basic approaches. I prefer " -"the second approach." -msgstr "" - -#: howto/urllib2.rst:297 -msgid "Number 1" -msgstr "" - -#: howto/urllib2.rst:319 -msgid "" -"The ``except HTTPError`` *must* come first, otherwise ``except URLError`` " -"will *also* catch an :exc:`~urllib.error.HTTPError`." -msgstr "" - -#: howto/urllib2.rst:323 -msgid "Number 2" -msgstr "" - -#: howto/urllib2.rst:344 -msgid "info and geturl" -msgstr "" - -#: howto/urllib2.rst:346 -msgid "" -"The response returned by urlopen (or the :exc:`~urllib.error.HTTPError` " -"instance) has two useful methods :meth:`!info` and :meth:`!geturl` and is " -"defined in the module :mod:`urllib.response`." -msgstr "" - -#: howto/urllib2.rst:350 -msgid "" -"**geturl** - this returns the real URL of the page fetched. This is useful " -"because ``urlopen`` (or the opener object used) may have followed a " -"redirect. The URL of the page fetched may not be the same as the URL " -"requested." -msgstr "" - -#: howto/urllib2.rst:354 -msgid "" -"**info** - this returns a dictionary-like object that describes the page " -"fetched, particularly the headers sent by the server. It is currently " -"an :class:`http.client.HTTPMessage` instance." -msgstr "" - -#: howto/urllib2.rst:358 -msgid "" -"Typical headers include 'Content-length', 'Content-type', and so on. See the " -"`Quick Reference to HTTP Headers `_ for a " -"useful listing of HTTP headers with brief explanations of their meaning and " -"use." -msgstr "" - -#: howto/urllib2.rst:365 -msgid "Openers and Handlers" -msgstr "" - -#: howto/urllib2.rst:367 -msgid "" -"When you fetch a URL you use an opener (an instance of the perhaps " -"confusingly named :class:`urllib.request.OpenerDirector`). Normally we have " -"been using the default opener - via ``urlopen`` - but you can create custom " -"openers. Openers use handlers. All the \"heavy lifting\" is done by the " -"handlers. Each handler knows how to open URLs for a particular URL scheme " -"(http, ftp, etc.), or how to handle an aspect of URL opening, for example " -"HTTP redirections or HTTP cookies." -msgstr "" - -#: howto/urllib2.rst:375 -msgid "" -"You will want to create openers if you want to fetch URLs with specific " -"handlers installed, for example to get an opener that handles cookies, or to " -"get an opener that does not handle redirections." -msgstr "" - -#: howto/urllib2.rst:379 -msgid "" -"To create an opener, instantiate an ``OpenerDirector``, and then call " -"``.add_handler(some_handler_instance)`` repeatedly." -msgstr "" - -#: howto/urllib2.rst:382 -msgid "" -"Alternatively, you can use ``build_opener``, which is a convenience function " -"for creating opener objects with a single function call. ``build_opener`` " -"adds several handlers by default, but provides a quick way to add more and/" -"or override the default handlers." -msgstr "" - -#: howto/urllib2.rst:387 -msgid "" -"Other sorts of handlers you might want to can handle proxies, " -"authentication, and other common but slightly specialised situations." -msgstr "" - -#: howto/urllib2.rst:390 -msgid "" -"``install_opener`` can be used to make an ``opener`` object the (global) " -"default opener. This means that calls to ``urlopen`` will use the opener you " -"have installed." -msgstr "" - -#: howto/urllib2.rst:394 -msgid "" -"Opener objects have an ``open`` method, which can be called directly to " -"fetch urls in the same way as the ``urlopen`` function: there's no need to " -"call ``install_opener``, except as a convenience." -msgstr "" - -#: howto/urllib2.rst:400 -msgid "Basic Authentication" -msgstr "" - -#: howto/urllib2.rst:402 -msgid "" -"To illustrate creating and installing a handler we will use the " -"``HTTPBasicAuthHandler``. For a more detailed discussion of this subject -- " -"including an explanation of how Basic Authentication works - see the `Basic " -"Authentication Tutorial `__." -msgstr "" - -#: howto/urllib2.rst:408 -msgid "" -"When authentication is required, the server sends a header (as well as the " -"401 error code) requesting authentication. This specifies the " -"authentication scheme and a 'realm'. The header looks like: ``WWW-" -"Authenticate: SCHEME realm=\"REALM\"``." -msgstr "" - -#: howto/urllib2.rst:413 -msgid "e.g." -msgstr "" - -#: howto/urllib2.rst:420 -msgid "" -"The client should then retry the request with the appropriate name and " -"password for the realm included as a header in the request. This is 'basic " -"authentication'. In order to simplify this process we can create an instance " -"of ``HTTPBasicAuthHandler`` and an opener to use this handler." -msgstr "" - -#: howto/urllib2.rst:425 -msgid "" -"The ``HTTPBasicAuthHandler`` uses an object called a password manager to " -"handle the mapping of URLs and realms to passwords and usernames. If you " -"know what the realm is (from the authentication header sent by the server), " -"then you can use a ``HTTPPasswordMgr``. Frequently one doesn't care what the " -"realm is. In that case, it is convenient to use " -"``HTTPPasswordMgrWithDefaultRealm``. This allows you to specify a default " -"username and password for a URL. This will be supplied in the absence of you " -"providing an alternative combination for a specific realm. We indicate this " -"by providing ``None`` as the realm argument to the ``add_password`` method." -msgstr "" - -#: howto/urllib2.rst:435 -msgid "" -"The top-level URL is the first URL that requires authentication. URLs " -"\"deeper\" than the URL you pass to .add_password() will also match. ::" -msgstr "" - -#: howto/urllib2.rst:460 -msgid "" -"In the above example we only supplied our ``HTTPBasicAuthHandler`` to " -"``build_opener``. By default openers have the handlers for normal situations " -"-- ``ProxyHandler`` (if a proxy setting such as an :envvar:`!http_proxy` " -"environment variable is set), ``UnknownHandler``, ``HTTPHandler``, " -"``HTTPDefaultErrorHandler``, ``HTTPRedirectHandler``, ``FTPHandler``, " -"``FileHandler``, ``DataHandler``, ``HTTPErrorProcessor``." -msgstr "" - -#: howto/urllib2.rst:467 -msgid "" -"``top_level_url`` is in fact *either* a full URL (including the 'http:' " -"scheme component and the hostname and optionally the port number) e.g. " -"``\"http://example.com/\"`` *or* an \"authority\" (i.e. the hostname, " -"optionally including the port number) e.g. ``\"example.com\"`` or " -"``\"example.com:8080\"`` (the latter example includes a port number). The " -"authority, if present, must NOT contain the \"userinfo\" component - for " -"example ``\"joe:password@example.com\"`` is not correct." -msgstr "" - -#: howto/urllib2.rst:477 -msgid "Proxies" -msgstr "" - -#: howto/urllib2.rst:479 -msgid "" -"**urllib** will auto-detect your proxy settings and use those. This is " -"through the ``ProxyHandler``, which is part of the normal handler chain when " -"a proxy setting is detected. Normally that's a good thing, but there are " -"occasions when it may not be helpful [#]_. One way to do this is to setup " -"our own ``ProxyHandler``, with no proxies defined. This is done using " -"similar steps to setting up a `Basic Authentication`_ handler: ::" -msgstr "" - -#: howto/urllib2.rst:492 -msgid "" -"Currently ``urllib.request`` *does not* support fetching of ``https`` " -"locations through a proxy. However, this can be enabled by extending " -"urllib.request as shown in the recipe [#]_." -msgstr "" - -#: howto/urllib2.rst:498 -msgid "" -"``HTTP_PROXY`` will be ignored if a variable ``REQUEST_METHOD`` is set; see " -"the documentation on :func:`~urllib.request.getproxies`." -msgstr "" - -#: howto/urllib2.rst:503 -msgid "Sockets and Layers" -msgstr "" - -#: howto/urllib2.rst:505 -msgid "" -"The Python support for fetching resources from the web is layered. urllib " -"uses the :mod:`http.client` library, which in turn uses the socket library." -msgstr "" - -#: howto/urllib2.rst:508 -msgid "" -"As of Python 2.3 you can specify how long a socket should wait for a " -"response before timing out. This can be useful in applications which have to " -"fetch web pages. By default the socket module has *no timeout* and can hang. " -"Currently, the socket timeout is not exposed at the http.client or " -"urllib.request levels. However, you can set the default timeout globally for " -"all sockets using ::" -msgstr "" - -#: howto/urllib2.rst:531 -msgid "Footnotes" -msgstr "Notes" - -#: howto/urllib2.rst:533 -msgid "This document was reviewed and revised by John Lee." -msgstr "" - -#: howto/urllib2.rst:535 -msgid "Google for example." -msgstr "" - -#: howto/urllib2.rst:536 -msgid "" -"Browser sniffing is a very bad practice for website design - building sites " -"using web standards is much more sensible. Unfortunately a lot of sites " -"still send different versions to different browsers." -msgstr "" - -#: howto/urllib2.rst:539 -msgid "" -"The user agent for MSIE 6 is *'Mozilla/4.0 (compatible; MSIE 6.0; Windows NT " -"5.1; SV1; .NET CLR 1.1.4322)'*" -msgstr "" - -#: howto/urllib2.rst:541 -msgid "" -"For details of more HTTP request headers, see `Quick Reference to HTTP " -"Headers`_." -msgstr "" - -#: howto/urllib2.rst:543 -msgid "" -"In my case I have to use a proxy to access the internet at work. If you " -"attempt to fetch *localhost* URLs through this proxy it blocks them. IE is " -"set to use the proxy, which urllib picks up on. In order to test scripts " -"with a localhost server, I have to prevent urllib from using the proxy." -msgstr "" - -#: howto/urllib2.rst:548 -msgid "" -"urllib opener for SSL proxy (CONNECT method): `ASPN Cookbook Recipe `_." -msgstr "" diff --git a/improve-page-nojs.po b/improve-page-nojs.po deleted file mode 100644 index d5874477c4..0000000000 --- a/improve-page-nojs.po +++ /dev/null @@ -1,54 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: improve-page-nojs.rst:5 -msgid "Improve a documentation page" -msgstr "" - -#: improve-page-nojs.rst:13 -msgid "" -"We are always interested to hear ideas about improvements to the " -"documentation." -msgstr "" - -#: improve-page-nojs.rst:17 -msgid "" -"If the bug or suggested improvement concerns the translation of this " -"documentation, open an issue or edit the page in `translation's repository " -"`_ instead." -msgstr "" - -#: improve-page-nojs.rst:21 -msgid "You have a few ways to ask questions or suggest changes:" -msgstr "" - -#: improve-page-nojs.rst:23 -msgid "" -"You can start a discussion about the page on the Python discussion forum. " -"This link will start a topic in the Documentation category: `New " -"Documentation topic `_." -msgstr "" - -#: improve-page-nojs.rst:27 -msgid "" -"You can open an issue on the Python GitHub issue tracker. This link will " -"create a new issue with the \"docs\" label: `New docs issue `_." -msgstr "" diff --git a/improve-page.po b/improve-page.po deleted file mode 100644 index bc0d0d2b62..0000000000 --- a/improve-page.po +++ /dev/null @@ -1,71 +0,0 @@ -# SOME DESCRIPTIVE TITLE. -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# FIRST AUTHOR , YEAR. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3.15\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: LANGUAGE \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: improve-page.rst:5 -msgid "Improve a documentation page" -msgstr "" - -#: improve-page.rst:43 -msgid "" -"We are always interested to hear ideas about improvements to the " -"documentation." -msgstr "" - -#: improve-page.rst:45 -msgid "" -"You were reading \"PAGETITLE\" at ``_. The source for that page is " -"on `GitHub `_." -msgstr "" - -#: improve-page.rst:50 -msgid "" -"If the bug or suggested improvement concerns the translation of this " -"documentation, open an issue or edit the page in `translation's repository " -"`_ instead." -msgstr "" - -#: improve-page.rst:54 -msgid "You have a few ways to ask questions or suggest changes:" -msgstr "" - -#: improve-page.rst:56 -msgid "" -"You can start a discussion about the page on the Python discussion forum. " -"This link will start a pre-populated topic: `Question about page " -"\"PAGETITLE\" `_." -msgstr "" - -#: improve-page.rst:60 -msgid "" -"You can open an issue on the Python GitHub issue tracker. This link will " -"create a new pre-populated issue: `Docs: problem with page \"PAGETITLE\" " -"`_." -msgstr "" - -#: improve-page.rst:64 -msgid "" -"You can `edit the page on GitHub `_ to open a pull request and begin the " -"contribution process." -msgstr "" diff --git a/installing/index.po b/installing/index.po deleted file mode 100644 index d419ffcb86..0000000000 --- a/installing/index.po +++ /dev/null @@ -1,485 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-29 18:14+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: installing/index.rst:7 -#, fuzzy -msgid "Installing Python modules" -msgstr "Installation de modules Python" - -#: installing/index.rst:9 -#, fuzzy -msgid "" -"As a popular open source development project, Python has an active " -"supporting community of contributors and users that also make their software " -"available for other Python developers to use under open-source license terms." -msgstr "" -"En tant que logiciel libre populaire, Python bénéficie d'une communauté " -"active de contributeurs et d'utilisateurs qui rendent à leur tour leurs " -"logiciels disponibles, sous licence libre, pour les autres développeurs " -"Python." - -#: installing/index.rst:13 -msgid "" -"This allows Python users to share and collaborate effectively, benefiting " -"from the solutions others have already created to common (and sometimes even " -"rare!) problems, as well as potentially contributing their own solutions to " -"the common pool." -msgstr "" -"Cela permet aux utilisateurs de Python de partager et de collaborer " -"efficacement, bénéficiant des solutions que les autres ont déjà crées pour " -"résoudre les problèmes communs (ou même, parfois, rares !), aussi que de " -"partager leurs propres solutions à tous." - -#: installing/index.rst:18 -msgid "" -"This guide covers the installation part of the process. For a guide to " -"creating and sharing your own Python projects, refer to the `Python " -"packaging user guide`_." -msgstr "" -"Ce guide couvre la partie installation. Pour un guide sur la création et le " -"partage de vos propres projets Python, consultez le `Python packaging user " -"guide`_." - -#: installing/index.rst:26 -msgid "" -"For corporate and other institutional users, be aware that many " -"organisations have their own policies around using and contributing to open " -"source software. Please take such policies into account when making use of " -"the distribution and installation tools provided with Python." -msgstr "" -"Pour les entreprises et autres institutions, gardez en tête que certaines " -"organisations ont leurs propres règles sur l'utilisation et la contribution " -"au logiciel libre. Prenez ces règles en compte lorsque vous utilisez les " -"outils de distribution et d'installation fournis par Python." - -#: installing/index.rst:33 -msgid "Key terms" -msgstr "Vocabulaire" - -#: installing/index.rst:35 -#, fuzzy -msgid "" -":program:`pip` is the preferred installer program. It is included by default " -"with the Python binary installers." -msgstr "" -"``pip`` est l'outil d'installation de prédilection. À partir de Python 3.4, " -"il est inclus par défaut avec l'installateur de Python." - -#: installing/index.rst:37 -msgid "" -"A *virtual environment* is a semi-isolated Python environment that allows " -"packages to be installed for use by a particular application, rather than " -"being installed system wide." -msgstr "" -"Un *environnement virtuel* est un environnement Python semi-isolé qui " -"autorise les paquets à être installés pour une application particulière, " -"plutôt que d'être installés au niveau du système." - -#: installing/index.rst:40 -#, fuzzy -msgid "" -"``venv`` is the standard tool for creating virtual environments. It defaults " -"to installing :program:`pip` into all created virtual environments." -msgstr "" -"``venv`` est l'outil standard pour créer des environnements virtuels, et est " -"intégré à Python depuis la version 3.3. Depuis Python 3.4, il installe aussi " -"``pip`` dans tous les environnements virtuels créés." - -#: installing/index.rst:42 -msgid "" -"``virtualenv`` is a third-party alternative (and predecessor) to ``venv``." -msgstr "" - -#: installing/index.rst:44 -#, fuzzy -msgid "" -"The `Python Package Index (PyPI) `__ is a public " -"repository of open source licensed packages made available for use by other " -"Python users." -msgstr "" -"L'`Index des Paquets Python `__ est un dépôt public des " -"paquets sous licence ouverte disponibles pour tous les utilisateurs Python." - -#: installing/index.rst:47 -#, fuzzy -msgid "" -"The `Python Packaging Authority `__ is the group of " -"developers and documentation authors responsible for the maintenance and " -"evolution of the standard packaging tools and the associated metadata and " -"file format standards. They maintain a variety of tools, documentation, and " -"issue trackers on `GitHub `__." -msgstr "" -"la `Python Packaging Authority `__ est le groupe de " -"développeurs et d'auteurs de documentation responsable de la maintenance et " -"de l'évolution des suites d'outils standard et des normes de métadonnées et " -"de format de fichiers associées. Ils maintiennent une variété d'outils, de " -"documentation, et d'outils de suivi des problèmes sur `GitHub `__." - -#: installing/index.rst:54 -msgid "" -"The use of ``venv`` is now recommended for creating virtual environments." -msgstr "" -"L'utilisation de ``venv`` est maintenant recommandée pour créer vos " -"environnements virtuels." - -#: installing/index.rst:59 -msgid "" -"`Python Packaging User Guide: Creating and using virtual environments " -"`__" -msgstr "" -"`Guide Utilisateur de l'Empaquetage Python : Créer et utiliser des " -"environnements virtuels `__" - -#: installing/index.rst:64 -msgid "Basic usage" -msgstr "Utilisation de base" - -#: installing/index.rst:66 -msgid "" -"The standard packaging tools are all designed to be used from the command " -"line." -msgstr "" -"Les outils standards de création de paquets sont tous conçus pour être " -"utilisés à partir de la ligne de commande." - -#: installing/index.rst:69 -#, fuzzy -msgid "" -"The following command will install the latest version of a module and its " -"dependencies from PyPI::" -msgstr "" -"La commande suivante va installer la dernière version d'un module et ses " -"dépendances depuis le *Python Package Index* ::" - -#: installing/index.rst:76 -msgid "" -"For POSIX users (including macOS and Linux users), the examples in this " -"guide assume the use of a :term:`virtual environment`." -msgstr "" -"Pour les utilisateurs POSIX (y compris Mac OS X et Linux), les exemples de " -"ce guide supposent l'utilisation d'un :term:`environnement virtuel`." - -#: installing/index.rst:79 -msgid "" -"For Windows users, the examples in this guide assume that the option to " -"adjust the system PATH environment variable was selected when installing " -"Python." -msgstr "" -"Pour les utilisateurs de Windows, les exemples de ce guide supposent que " -"l'option proposant de modifier la variable d'environnement PATH à été cochée " -"lors de l'installation de Python." - -#: installing/index.rst:83 -msgid "" -"It's also possible to specify an exact or minimum version directly on the " -"command line. When using comparator operators such as ``>``, ``<`` or some " -"other special character which get interpreted by shell, the package name and " -"the version should be enclosed within double quotes::" -msgstr "" -"Il est aussi possible de préciser une version minimum exacte directement " -"depuis la ligne de commande. Utiliser des caractères de comparaison tel que " -"``>``, ``<`` ou d'autres caractères spéciaux qui sont interprétés par le " -"*shell*, le nom du paquet et la version doivent être mis entre guillemets ::" - -#: installing/index.rst:91 -msgid "" -"Normally, if a suitable module is already installed, attempting to install " -"it again will have no effect. Upgrading existing modules must be requested " -"explicitly::" -msgstr "" -"Normalement, si un module approprié est déjà installé, l'installer à nouveau " -"n'aura aucun effet. La mise à jour de modules existants doit être demandée " -"explicitement ::" - -#: installing/index.rst:97 -#, fuzzy -msgid "" -"More information and resources regarding :program:`pip` and its capabilities " -"can be found in the `Python Packaging User Guide `__." -msgstr "" -"Plus d'informations et de ressources concernant ``pip`` et ses capacités " -"peuvent être trouvées dans le `Python Packaging User Guide `__." - -#: installing/index.rst:100 -msgid "" -"Creation of virtual environments is done through the :mod:`venv` module. " -"Installing packages into an active virtual environment uses the commands " -"shown above." -msgstr "" -"La création d'environnements virtuels est réalisée grâce au " -"module :mod:`venv`. Installer des paquets au sein de l'environnement virtuel " -"courant utilise les commandes montrées précédemment." - -#: installing/index.rst:106 -msgid "" -"`Python Packaging User Guide: Installing Python Distribution Packages " -"`__" -msgstr "" -"`Guide Utilisateur de l'Empaquetage Python : Installer les paquets de la " -"distribution Python `__" - -#: installing/index.rst:111 -msgid "How do I ...?" -msgstr "Comment puis-je … ?" - -#: installing/index.rst:113 -msgid "These are quick answers or links for some common tasks." -msgstr "" -"Ce sont des réponses rapides ou des liens pour certaines tâches courantes." - -#: installing/index.rst:118 -msgid "... install packages just for the current user?" -msgstr "... Installer des paquets juste pour l'utilisateur actuel ?" - -#: installing/index.rst:120 -msgid "" -"Passing the ``--user`` option to ``python -m pip install`` will install a " -"package just for the current user, rather than for all users of the system." -msgstr "" -"Donner l'option ``--user`` à ``python -m pip install`` lui fera installer un " -"paquet juste pour l'utilisateur en cours, plutôt que pour tous les " -"utilisateurs du système." - -#: installing/index.rst:125 -msgid "... install scientific Python packages?" -msgstr "... Installer des paquets Python scientifiques ?" - -#: installing/index.rst:127 -#, fuzzy -msgid "" -"A number of scientific Python packages have complex binary dependencies, and " -"aren't currently easy to install using :program:`pip` directly. It will " -"often be easier for users to install these packages by `other means `__ rather than attempting to install them " -"with :program:`pip`." -msgstr "" -"Un certain nombre de paquets scientifiques Python ont des dépendances " -"binaires complexes, et ne sont pas actuellement faciles à installer " -"directement avec ``pip``. Pour le moment, il est souvent plus simple pour " -"les utilisateurs d'installer ces paquets par `d'autres moyens `__ plutôt que d'essayer de les installer avec " -"``pip``." - -#: installing/index.rst:135 -msgid "" -"`Python Packaging User Guide: Installing Scientific Packages `__" -msgstr "" -"`Guide Utilisateur de l'Empaquetage Python : Installer des paquets " -"scientifiques `__" - -#: installing/index.rst:140 -msgid "... work with multiple versions of Python installed in parallel?" -msgstr "" -"... Travailler avec plusieurs versions de Python installés en parallèle ?" - -#: installing/index.rst:142 -#, fuzzy -msgid "" -"On Linux, macOS, and other POSIX systems, use the versioned Python commands " -"in combination with the ``-m`` switch to run the appropriate copy " -"of :program:`pip`::" -msgstr "" -"Sous Linux, Max OS X et autres systèmes POSIX, utiliser les commandes Python " -"de la version souhaitée en combinaison avec l'option ``-m`` permet de lancer " -"la version appropriée de ``pip`` ::" - -#: installing/index.rst:149 -#, fuzzy -msgid "Appropriately versioned :program:`pip` commands may also be available." -msgstr "" -"Les versions appropriées des commandes ``pip`` peuvent aussi être " -"disponibles." - -#: installing/index.rst:151 -#, fuzzy -msgid "" -"On Windows, use the :program:`py` Python launcher in combination with the ``-" -"m`` switch::" -msgstr "" -"Sous Windows, utilisez le lanceur Python ``py`` en combinaison avec l'option " -"``-m`` ::" - -#: installing/index.rst:166 -msgid "Common installation issues" -msgstr "Les problèmes d'installation typiques" - -#: installing/index.rst:169 -msgid "Installing into the system Python on Linux" -msgstr "Installer dans le Python du système sur Linux" - -#: installing/index.rst:171 -#, fuzzy -msgid "" -"On Linux systems, a Python installation will typically be included as part " -"of the distribution. Installing into this Python installation requires root " -"access to the system, and may interfere with the operation of the system " -"package manager and other components of the system if a component is " -"unexpectedly upgraded using :program:`pip`." -msgstr "" -"Sur les systèmes Linux, une installation de Python sera généralement incluse " -"dans le cadre de la distribution. Installer dans cette installation de " -"Python nécessite un accès *root* sur le système, et peut interférer avec le " -"fonctionnement du gestionnaire de paquets du système et d'autres composants " -"du système si un composant est mis à jour de façon inattendue en utilisant " -"``pip``." - -#: installing/index.rst:177 -#, fuzzy -msgid "" -"On such systems, it is often better to use a virtual environment or a per-" -"user installation when installing packages with :program:`pip`." -msgstr "" -"Sur de tels systèmes, il est souvent préférable d'utiliser un environnement " -"virtuel ou une installation par l'utilisateur lors de l'installation des " -"paquets avec ``pip``." - -#: installing/index.rst:182 -msgid "Pip not installed" -msgstr "``Pip`` n'est pas installé" - -#: installing/index.rst:184 -#, fuzzy -msgid "" -"It is possible that :program:`pip` does not get installed by default. One " -"potential fix is::" -msgstr "" -"Il est possible que ``pip`` ne soit pas installé par défaut. Une solution " -"est ::" - -#: installing/index.rst:188 -#, fuzzy -msgid "" -"There are also additional resources for `installing pip `__." -msgstr "" -"Il existe également des ressources supplémentaires pour `installer pip. " -"`__" - -#: installing/index.rst:193 -msgid "Installing binary extensions" -msgstr "Installation d'extensions binaires" - -#: installing/index.rst:195 -#, fuzzy -msgid "" -"Python once relied heavily on source-based distribution, with end users " -"being expected to compile extension modules from source as part of the " -"installation process." -msgstr "" -"Python a généralement beaucoup misé sur une distribution basée sur les " -"sources, avec laquelle les utilisateurs finaux devaient compiler, lors de " -"l'installation, les modules d'extension à partir des sources." - -#: installing/index.rst:199 -#, fuzzy -msgid "" -"With the introduction of the binary wheel format, and the ability to publish " -"wheels through PyPI, this problem is diminishing, as users are more " -"regularly able to install pre-built extensions rather than needing to build " -"them themselves." -msgstr "" -"Avec l'introduction du format binaire ``wheel``, et la possibilité de " -"publier des *wheels*, pour, au moins Windows et Mac OS X, via le *Python " -"Package Index*, ce problème devrait diminuer au fil du temps, car les " -"utilisateurs sont plus régulièrement en mesure d'installer des extensions " -"pré-compilées plutôt que de devoir les compiler eux-mêmes." - -#: installing/index.rst:204 -#, fuzzy -msgid "" -"Some of the solutions for installing `scientific software `__ that are not yet available as pre-built " -"wheel files may also help with obtaining other binary extensions without " -"needing to build them locally." -msgstr "" -"Certaines solutions pour installer des `paquets scientifiques `__ qui ne sont pas encore disponibles comme " -"``wheel`` pré-construites peuvent aussi aider à obtenir d'autres extensions " -"binaires sans devoir les construire localement." - -#: installing/index.rst:211 -msgid "" -"`Python Packaging User Guide: Binary Extensions `__" -msgstr "" -"`Guide Utilisateur de l'Empaquetage Python : Extensions binaires `__" - -#~ msgid "Email" -#~ msgstr "Email" - -#~ msgid "distutils-sig@python.org" -#~ msgstr "distutils-sig@python.org" - -#~ msgid "" -#~ "``virtualenv`` is a third party alternative (and predecessor) to " -#~ "``venv``. It allows virtual environments to be used on versions of Python " -#~ "prior to 3.4, which either don't provide ``venv`` at all, or aren't able " -#~ "to automatically install ``pip`` into created environments." -#~ msgstr "" -#~ "``virtualenv`` est une alternative tierce à ``venv`` (et son " -#~ "prédécesseur). Elle permet la création d'environnements virtuels pour les " -#~ "versions de Python antérieures à 3.4, qui ne fournissent pas de ``venv``, " -#~ "ou ne sont pas capables d'installer automatiquement ``pip`` dans les " -#~ "environnements créés." - -#~ msgid "" -#~ "``distutils`` is the original build and distribution system first added " -#~ "to the Python standard library in 1998. While direct use of ``distutils`` " -#~ "is being phased out, it still laid the foundation for the current " -#~ "packaging and distribution infrastructure, and it not only remains part " -#~ "of the standard library, but its name lives on in other ways (such as the " -#~ "name of the mailing list used to coordinate Python packaging standards " -#~ "development)." -#~ msgstr "" -#~ "``distutils`` est le premier système de construction et de distribution " -#~ "ajouté à la bibliothèque standard en 1998. Bien que l'utilisation directe " -#~ "de ``distutils`` soit progressivement supprimée, elle reste le fondement " -#~ "de l'infrastructure actuelle de construction de paquet et de " -#~ "distribution. Au-delà de rester dans la bibliothèque standard, son nom " -#~ "vit aussi sous d'autres formes, tel que la liste de diffusion utilisée " -#~ "pour coordonner le développement et les standards de la création de " -#~ "paquet." - -#~ msgid "... install ``pip`` in versions of Python prior to Python 3.4?" -#~ msgstr "" -#~ "... Installer ``pip`` avec une version de Python antérieures à la 3.4 ?" - -#~ msgid "" -#~ "Python only started bundling ``pip`` with Python 3.4. For earlier " -#~ "versions, ``pip`` needs to be \"bootstrapped\" as described in the Python " -#~ "Packaging User Guide." -#~ msgstr "" -#~ "Python n'a commencé à fournir ``pip`` depuis Python 3.4. Pour les " -#~ "versions précédentes, ``pip`` a besoin d'être \"amorcé\" tel que décrit " -#~ "dans le *Python Packaging User Guide*." - -#~ msgid "" -#~ "`Python Packaging User Guide: Requirements for Installing Packages " -#~ "`__" -#~ msgstr "" -#~ "`Guide Utilisateur de l'Empaquetage Python : Pré-requis pour installer " -#~ "des paquets `__" diff --git a/library/__future__.po b/library/__future__.po deleted file mode 100644 index 0c5de98438..0000000000 --- a/library/__future__.po +++ /dev/null @@ -1,342 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-11-06 19:52+0100\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/__future__.rst:2 -#, fuzzy -msgid ":mod:`!__future__` --- Future statement definitions" -msgstr ":mod:`__future__` — Définitions des futurs" - -#: library/__future__.rst:7 -msgid "**Source code:** :source:`Lib/__future__.py`" -msgstr "**Source code:** :source:`Lib/_future_.py`" - -#: library/__future__.rst:11 -msgid "" -"Imports of the form ``from __future__ import feature`` are " -"called :ref:`future statements `. These are special-cased by the " -"Python compiler to allow the use of new Python features in modules " -"containing the future statement before the release in which the feature " -"becomes standard." -msgstr "" - -#: library/__future__.rst:16 -msgid "" -"While these future statements are given additional special meaning by the " -"Python compiler, they are still executed like any other import statement and " -"the :mod:`!__future__` exists and is handled by the import system the same " -"way any other Python module would be. This design serves three purposes:" -msgstr "" - -#: library/__future__.rst:21 -msgid "" -"To avoid confusing existing tools that analyze import statements and expect " -"to find the modules they're importing." -msgstr "" -"éviter de dérouter les outils existants qui analysent les instructions " -"d'importation et s'attendent à trouver les modules qu'ils importent ;" - -#: library/__future__.rst:24 -#, fuzzy -msgid "" -"To document when incompatible changes were introduced, and when they will be " -"--- or were --- made mandatory. This is a form of executable documentation, " -"and can be inspected programmatically via importing :mod:`!__future__` and " -"examining its contents." -msgstr "" -"Pour documenter le phasage de changements entraînant des incompatibilités : " -"introduction, utilisation obligatoire. Il s’agit d’une forme de " -"documentation exécutable, qui peut être inspectée par un programme en " -"important :mod:`__future__` et en examinant son contenu." - -#: library/__future__.rst:29 -#, fuzzy -msgid "" -"To ensure that :ref:`future statements ` run under releases prior to " -"Python 2.1 at least yield runtime exceptions (the import of :mod:`!" -"__future__` will fail, because there was no module of that name prior to " -"2.1)." -msgstr "" -"s'assurer que les :ref:`instructions *future* ` lancées sous les " -"versions antérieures à 2.1 lèvent au moins des exceptions à l'exécution " -"(l’importation du module :mod:`__future__` échoue, car il n’y avait pas de " -"module de ce nom avant 2.1) ;" - -#: library/__future__.rst:34 -msgid "Module Contents" -msgstr "Contenu du module" - -#: library/__future__.rst:36 -#, fuzzy -msgid "" -"No feature description will ever be deleted from :mod:`!__future__`. Since " -"its introduction in Python 2.1 the following features have found their way " -"into the language using this mechanism:" -msgstr "" -"Aucune fonctionnalité ne sera jamais supprimée de :mod:`__future__`. Depuis " -"son introduction dans Python 2.1, les fonctionnalités suivantes ont trouvé " -"leur places dans le langage utilisant ce mécanisme :" - -#: library/__future__.rst:45 -msgid "feature" -msgstr "fonctionnalité" - -#: library/__future__.rst:46 -msgid "optional in" -msgstr "optionnel dans" - -#: library/__future__.rst:47 -msgid "mandatory in" -msgstr "obligatoire dans" - -#: library/__future__.rst:48 -msgid "effect" -msgstr "effet" - -#: library/__future__.rst:50 -msgid "2.1.0b1" -msgstr "2.1.0b1" - -#: library/__future__.rst:51 -msgid "2.2" -msgstr "2.2" - -#: library/__future__.rst:52 -msgid ":pep:`227`: *Statically Nested Scopes*" -msgstr ":pep:`227` : *Portées imbriquées*" - -#: library/__future__.rst:54 -msgid "2.2.0a1" -msgstr "2.2.0a1" - -#: library/__future__.rst:55 -msgid "2.3" -msgstr "2.3" - -#: library/__future__.rst:56 -msgid ":pep:`255`: *Simple Generators*" -msgstr ":pep:`255` : *Générateurs simples*" - -#: library/__future__.rst:58 -msgid "2.2.0a2" -msgstr "2.2.0a2" - -#: library/__future__.rst:63 library/__future__.rst:75 -msgid "3.0" -msgstr "3.0" - -#: library/__future__.rst:60 -msgid ":pep:`238`: *Changing the Division Operator*" -msgstr ":pep:`238` : *Changement de l'opérateur de division*" - -#: library/__future__.rst:66 -msgid "2.5.0a1" -msgstr "2.5.0a1" - -#: library/__future__.rst:64 -msgid ":pep:`328`: *Imports: Multi-Line and Absolute/Relative*" -msgstr "" -":pep:`328` : *Importations : multilignes et absolues/relatives* (ressource " -"en anglais)" - -#: library/__future__.rst:67 -msgid "2.6" -msgstr "2.6" - -#: library/__future__.rst:68 -#, fuzzy -msgid ":pep:`343`: *The “with” Statement*" -msgstr ":pep:`343` : *L'instruction \"with\"*" - -#: library/__future__.rst:74 -msgid "2.6.0a2" -msgstr "2.6.0a2" - -#: library/__future__.rst:72 -msgid ":pep:`3105`: *Make print a function*" -msgstr ":pep:`3105` : *Transformation de print en fonction*" - -#: library/__future__.rst:76 -msgid ":pep:`3112`: *Bytes literals in Python 3000*" -msgstr ":pep:`3112` : *Chaînes d'octets littéraux en Python 3000*" - -#: library/__future__.rst:78 -msgid "3.5.0b1" -msgstr "3.5.0b1" - -#: library/__future__.rst:79 -msgid "3.7" -msgstr "3.7" - -#: library/__future__.rst:80 -msgid ":pep:`479`: *StopIteration handling inside generators*" -msgstr "" -":pep:`479` : *Gestion de *StopIteration* à l’intérieur des générateurs*" - -#: library/__future__.rst:82 -msgid "3.7.0b1" -msgstr "3.7.0b1" - -#: library/__future__.rst:83 -msgid "Never [1]_" -msgstr "" - -#: library/__future__.rst:84 -msgid "" -":pep:`563`: *Postponed evaluation of annotations*, :pep:`649`: *Deferred " -"evaluation of annotations using descriptors*" -msgstr "" - -#: library/__future__.rst:93 -msgid "Each statement in :file:`__future__.py` is of the form::" -msgstr "Chaque instruction dans :file:`__future__.py` est de la forme ::" - -#: library/__future__.rst:98 -msgid "" -"where, normally, *OptionalRelease* is less than *MandatoryRelease*, and both " -"are 5-tuples of the same form as :data:`sys.version_info`::" -msgstr "" -"où, normalement, *OptionalRelease* est inférieur à *MandatoryRelease*, et " -"les deux sont des quintuplets de la même forme " -"que :data:`sys.version_info` ::" - -#: library/__future__.rst:110 -msgid "" -"*OptionalRelease* records the first release in which the feature was " -"accepted." -msgstr "" -"*OptionalRelease* enregistre la première version dans laquelle la " -"fonctionnalité a été acceptée." - -#: library/__future__.rst:114 -msgid "" -"In the case of a *MandatoryRelease* that has not yet occurred, " -"*MandatoryRelease* predicts the release in which the feature will become " -"part of the language." -msgstr "" -"Dans le cas d'un *MandatoryRelease* qui n'a pas encore eu lieu, " -"*MandatoryRelease* prédit la *release* dans laquelle la fonctionnalité " -"deviendra un élément du langage." - -#: library/__future__.rst:118 -msgid "" -"Else *MandatoryRelease* records when the feature became part of the " -"language; in releases at or after that, modules no longer need a future " -"statement to use the feature in question, but may continue to use such " -"imports." -msgstr "" -"Sinon *MandatoryRelease* enregistre lorsque la fonctionnalité est devenue " -"une partie du langage ; dans cette version ou les suivantes, les modules " -"n'ont plus besoin d'une déclaration *future* pour utiliser la fonctionnalité " -"en question, mais ils peuvent continuer à utiliser ces importations." - -#: library/__future__.rst:122 -#, fuzzy -msgid "" -"*MandatoryRelease* may also be ``None``, meaning that a planned feature got " -"dropped or that it is not yet decided." -msgstr "" -"*MandatoryRelease* peut également être ``None``, ce qui signifie qu'une " -"fonction planifiée a été abandonnée." - -#: library/__future__.rst:127 -#, fuzzy -msgid "" -"*CompilerFlag* is the (bitfield) flag that should be passed in the fourth " -"argument to the built-in function :func:`compile` to enable the feature in " -"dynamically compiled code. This flag is stored in " -"the :attr:`_Feature.compiler_flag` attribute on :class:`_Feature` instances." -msgstr "" -"*CompilerFlag* est un drapeau (chaque bit représente un champ) qui doit être " -"passé en tant que quatrième argument à la fonction native :func:`compile` " -"pour activer la fonctionnalité dans le code compilé dynamiquement. Cet " -"indicateur est stocké dans l'attribut :attr:`compiler_flag` dans les " -"instances de :class:`_Feature`." - -#: library/__future__.rst:133 -msgid "" -"``from __future__ import annotations`` was previously scheduled to become " -"mandatory in Python 3.10, but the change was delayed and ultimately " -"canceled. This feature will eventually be deprecated and removed. " -"See :pep:`649` and :pep:`749`." -msgstr "" - -#: library/__future__.rst:141 -msgid ":ref:`future`" -msgstr ":ref:`future`" - -#: library/__future__.rst:142 -msgid "How the compiler treats future imports." -msgstr "Comment le compilateur gère les importations « futures »." - -#: library/__future__.rst:144 -msgid ":pep:`236` - Back to the __future__" -msgstr ":pep:`236` — retour vers le ``__future__``" - -#: library/__future__.rst:145 -msgid "The original proposal for the __future__ mechanism." -msgstr "La proposition originale pour le mécanisme de ``__future__``." - -#~ msgid "nested_scopes" -#~ msgstr "nested_scopes" - -#~ msgid "generators" -#~ msgstr "générateurs" - -#~ msgid "division" -#~ msgstr "division" - -#~ msgid "absolute_import" -#~ msgstr "absolute_import" - -#~ msgid "with_statement" -#~ msgstr "with_statement" - -#~ msgid "print_function" -#~ msgstr "print_function" - -#~ msgid "unicode_literals" -#~ msgstr "unicode_literals" - -#~ msgid "generator_stop" -#~ msgstr "generator_stop" - -#~ msgid "annotations" -#~ msgstr "annotations" - -#~ msgid ":pep:`563`: *Postponed evaluation of annotations*" -#~ msgstr ":pep:`563` : *Évaluation différée des annotations*" - -#~ msgid ":mod:`__future__` is a real module, and serves three purposes:" -#~ msgstr "" -#~ "Le module :mod:`__future__` est un vrai module, et il a trois objectifs :" - -#~ msgid "" -#~ "Instances of class :class:`_Feature` have two corresponding " -#~ "methods, :meth:`getOptionalRelease` and :meth:`getMandatoryRelease`." -#~ msgstr "" -#~ "Les instances de classe :class:`_Feature` ont deux méthodes " -#~ "correspondantes, :meth:`getOptionalRelease` " -#~ "et :meth:`getMandatoryRelease`." - -#~ msgid "3.11" -#~ msgstr "3.11" - -#~ msgid "3.10" -#~ msgstr "3.10" - -#~ msgid "4.0" -#~ msgstr "4.0" diff --git a/library/__main__.po b/library/__main__.po deleted file mode 100644 index 5493a14dd6..0000000000 --- a/library/__main__.po +++ /dev/null @@ -1,540 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2022-05-18 13:39+0200\n" -"Last-Translator: Jean Abou Samra \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 3.0.1\n" - -#: library/__main__.rst:2 -#, fuzzy -msgid ":mod:`!__main__` --- Top-level code environment" -msgstr ":mod:`__main__` — Environnement d'exécution principal" - -#: library/__main__.rst:10 -msgid "" -"In Python, the special name ``__main__`` is used for two important " -"constructs:" -msgstr "" -"En Python, le nom ``__main__`` a une fonction particulière. Il intervient " -"dans deux cas :" - -#: library/__main__.rst:12 -msgid "" -"the name of the top-level environment of the program, which can be checked " -"using the ``__name__ == '__main__'`` expression; and" -msgstr "" -"c'est le nom de l'environnement d'exécution principal, ce qui donne lieu au " -"test courant ``__name__ == '__main__'`` ;" - -#: library/__main__.rst:14 -msgid "the ``__main__.py`` file in Python packages." -msgstr "c'est aussi le nom du fichier ``__main__.py`` dans les paquets Python." - -#: library/__main__.rst:16 -msgid "" -"Both of these mechanisms are related to Python modules; how users interact " -"with them and how they interact with each other. They are explained in " -"detail below. If you're new to Python modules, see the tutorial " -"section :ref:`tut-modules` for an introduction." -msgstr "" -"Les deux sont liés aux modules Python, à la manière de s'en servir en tant " -"qu'utilisateur et à la manière dont ils interagissent entre eux. Cette page " -"contient des détails sur les modules Python. Si vous ne les avez jamais " -"utilisés, commencez par la section qui leur est consacrée dans le " -"tutoriel : :ref:`tut-modules`." - -#: library/__main__.rst:25 -msgid "``__name__ == '__main__'``" -msgstr "``__name__ == '__main__'``" - -#: library/__main__.rst:27 -msgid "" -"When a Python module or package is imported, ``__name__`` is set to the " -"module's name. Usually, this is the name of the Python file itself without " -"the ``.py`` extension::" -msgstr "" -"Lorsqu'un module ou un paquet Python est importé, son attribut ``__name__`` " -"est défini à son nom, qui est la plupart du temps le nom du fichier qui le " -"contient sans l'extension ``.py`` ::" - -#: library/__main__.rst:35 -msgid "" -"If the file is part of a package, ``__name__`` will also include the parent " -"package's path::" -msgstr "" -"Si le fichier fait partie d'un paquet, ``__name__`` donne tout le chemin " -"d'accès ::" - -#: library/__main__.rst:42 -msgid "" -"However, if the module is executed in the top-level code environment, its " -"``__name__`` is set to the string ``'__main__'``." -msgstr "" -"En revanche, si le module est exécuté dans l'environnement d'exécution " -"principal, la variable ``__name__`` vaut ``'__main__'``." - -#: library/__main__.rst:46 -msgid "What is the \"top-level code environment\"?" -msgstr "Qu'est-ce que l'« environnement d'exécution principal » ?" - -#: library/__main__.rst:48 -msgid "" -"``__main__`` is the name of the environment where top-level code is run. " -"\"Top-level code\" is the first user-specified Python module that starts " -"running. It's \"top-level\" because it imports all other modules that the " -"program needs. Sometimes \"top-level code\" is called an *entry point* to " -"the application." -msgstr "" -"L'environnement principal a pour nom ``__main__``. Il s'agit du premier " -"module Python dont l'exécution a été demandée par l'utilisateur final. On le " -"qualifie de principal car c'est lui qui importe tous les autres modules " -"nécessités par le programme. On l'appelle parfois le point d'entrée de " -"l'application." - -#: library/__main__.rst:53 -msgid "The top-level code environment can be:" -msgstr "L'environnement principal peut prendre diverses formes :" - -#: library/__main__.rst:55 -msgid "the scope of an interactive prompt::" -msgstr "l'environnement d'une invite de commande interactive ::" - -#: library/__main__.rst:60 -msgid "the Python module passed to the Python interpreter as a file argument:" -msgstr "" -"le module passé directement en tant que fichier à la commande de " -"l'interpréteur Python :" - -#: library/__main__.rst:67 -msgid "" -"the Python module or package passed to the Python interpreter with " -"the :option:`-m` argument:" -msgstr "" -"le module ou paquet passé à l'interpréteur avec l'option :option:`-m` :" - -# Minuscule car toujours dans la même énumération, ignorez -# l'avertissement que Poedit affiche à cause de la majuscule à -# « Python ». -#: library/__main__.rst:75 -msgid "Python code read by the Python interpreter from standard input:" -msgstr "le code lu par l'interpréteur depuis l'entrée standard :" - -#: library/__main__.rst:86 -msgid "" -"Python code passed to the Python interpreter with the :option:`-c` argument:" -msgstr "le code passé à l'interpréteur avec l'option :option:`-c` :" - -#: library/__main__.rst:97 -msgid "" -"In each of these situations, the top-level module's ``__name__`` is set to " -"``'__main__'``." -msgstr "" -"Dans chacun de ces cas, l'attribut ``__name__`` du module principal est mis " -"à ``'__main__'``." - -#: library/__main__.rst:100 -msgid "" -"As a result, a module can discover whether or not it is running in the top-" -"level environment by checking its own ``__name__``, which allows a common " -"idiom for conditionally executing code when the module is not initialized " -"from an import statement::" -msgstr "" -"Un module peut donc savoir s'il est exécuté dans l'environnement principal " -"en vérifiant son ``__name__``, ce qui permet typiquement d'exécuter du code " -"lorsque le module est initialisé d'une manière autre que l'importation ::" - -#: library/__main__.rst:111 -msgid "" -"For a more detailed look at how ``__name__`` is set in all situations, see " -"the tutorial section :ref:`tut-modules`." -msgstr "" -"Pour plus de détails sur la manière dont ``__name__`` est défini dans les " -"divers cas, voir la section :ref:`tut-modules` dans le tutoriel." - -#: library/__main__.rst:239 -msgid "Idiomatic Usage" -msgstr "Utilisation idiomatique" - -#: library/__main__.rst:118 -msgid "" -"Some modules contain code that is intended for script use only, like parsing " -"command-line arguments or fetching data from standard input. If a module " -"like this was imported from a different module, for example to unit test it, " -"the script code would unintentionally execute as well." -msgstr "" -"Il arrive qu'un module contienne du code qui ne doit s'exécuter que lorsque " -"le module est utilisé comme script. On peut penser à l'analyse des arguments " -"passés en ligne de commande, ou bien à la lecture de l'entrée standard. Il " -"ne faudrait pas que ces opérations soient effectuées lorsque le module est " -"importé depuis un autre module, comme pour les tests." - -#: library/__main__.rst:123 -msgid "" -"This is where using the ``if __name__ == '__main__'`` code block comes in " -"handy. Code within this block won't run unless the module is executed in the " -"top-level environment." -msgstr "" -"C'est dans ces situations que sert la construction ``if __name__ == " -"'__main__'``. Le code mis à l'intérieur du bloc n'est exécuté que si le " -"module est dans l'environnement principal." - -#: library/__main__.rst:127 -#, fuzzy -msgid "" -"Putting as few statements as possible in the block below ``if __name__ == " -"'__main__'`` can improve code clarity and correctness. Most often, a " -"function named ``main`` encapsulates the program's primary behavior::" -msgstr "" -"Il vaut mieux mettre aussi peu de code que possible sous le ``if __name__ == " -"'__main__'`` pour garder le code clair et limiter les risques d'erreur. La " -"plupart du temps, on écrit une fonction ``main`` qui contient tout le code " -"spécifique à l'utilisation comme script ::" - -#: library/__main__.rst:151 -msgid "" -"Note that if the module didn't encapsulate code inside the ``main`` function " -"but instead put it directly within the ``if __name__ == '__main__'`` block, " -"the ``phrase`` variable would be global to the entire module. This is error-" -"prone as other functions within the module could be unintentionally using " -"the global variable instead of a local name. A ``main`` function solves " -"this problem." -msgstr "" -"Si, dans le module ci-dessus, le code de ``main`` était placé directement " -"dans le ``if __name__ == '__main__'``, la variable ``phrase`` serait " -"globale, et d'autres fonctions pourraient s'en servir par erreur à la place " -"d'une variable locale. Encapsuler le code dans la fonction ``main`` évite " -"cet ennui." - -#: library/__main__.rst:158 -msgid "" -"Using a ``main`` function has the added benefit of the ``echo`` function " -"itself being isolated and importable elsewhere. When ``echo.py`` is " -"imported, the ``echo`` and ``main`` functions will be defined, but neither " -"of them will be called, because ``__name__ != '__main__'``." -msgstr "" -"De plus, la fonction ``echo`` est elle-même séparée du reste, et on peut " -"l'importer dans un autre module. Le fait d'importer ``echo.py`` définit les " -"fonctions ``main`` et ``echo``, mais n'en appelle aucune, puisque " -"``__name__ != '__main__'``." - -#: library/__main__.rst:165 -msgid "Packaging Considerations" -msgstr "Considérations liées à l'empaquetage" - -#: library/__main__.rst:167 -msgid "" -"``main`` functions are often used to create command-line tools by specifying " -"them as entry points for console scripts. When this is done, `pip `_ inserts the function call into a template script, where the " -"return value of ``main`` is passed into :func:`sys.exit`. For example::" -msgstr "" -"Les fonctions ``main`` servent souvent à créer des outils qui s'exécutent en " -"ligne de commande. Les scripts sont ajoutés au système à l'aide de points " -"d'entrée, qui demandent à `pip `_ de créer un " -"exécutable. Il le fait en insérant un appel à la fonction à l'intérieur d'un " -"modèle prédéfini où la valeur qu'elle renvoie est passée directement " -"à :func:`sys.exit` ::" - -#: library/__main__.rst:175 -msgid "" -"Since the call to ``main`` is wrapped in :func:`sys.exit`, the expectation " -"is that your function will return some value acceptable as an input " -"to :func:`sys.exit`; typically, an integer or ``None`` (which is implicitly " -"returned if your function does not have a return statement)." -msgstr "" -"Puisque l'appel de ``main`` est encapsulé dans :func:`sys.exit`, ``main`` " -"doit renvoyer une valeur qui convienne comme argument à :func:`sys.exit`, " -"par exemple un code de retour sous forme d'entier. La valeur ``None`` est " -"également acceptée, et c'est d'ailleurs celle que renvoie la fonction si " -"elle se termine sans rencontrer d'instruction ``return``." - -#: library/__main__.rst:180 -#, fuzzy -msgid "" -"By proactively following this convention ourselves, our module will have the " -"same behavior when run directly (i.e. ``python echo.py``) as it will have if " -"we later package it as a console script entry-point in a pip-installable " -"package." -msgstr "" -"Il est utile de se conformer à cette convention. De cette manière, le module " -"se comporte de la même manière s'il est distribué comme script à l'aide des " -"points d'entrée que lorsqu'il est exécuté directement (avec ``python3 " -"echo.py``)." - -#: library/__main__.rst:185 -msgid "" -"In particular, be careful about returning strings from your ``main`` " -"function. :func:`sys.exit` will interpret a string argument as a failure " -"message, so your program will have an exit code of ``1``, indicating " -"failure, and the string will be written to :data:`sys.stderr`. The " -"``echo.py`` example from earlier exemplifies using the ``sys.exit(main())`` " -"convention." -msgstr "" -"En particulier, mieux vaut éviter de renvoyer une chaîne de caractères " -"depuis la fonction ``main``. En effet, si :func:`sys.exit` reçoit une " -"chaîne, elle l'interprète comme un message d'erreur, qu'elle affiche " -"sur :data:`sys.stderr` avant de terminer le programme avec le code de retour " -"1 (erreur). L'exemple de ``echo.py`` ci-dessus montre la pratique " -"recommandée." - -#: library/__main__.rst:193 -msgid "" -"`Python Packaging User Guide `_ contains a " -"collection of tutorials and references on how to distribute and install " -"Python packages with modern tools." -msgstr "" -"Le `guide de l'empaquetage en Python `_ (en " -"anglais) contient plusieurs tutoriels et documents de référence autour de la " -"distribution et de l'installation de paquets Python avec des outils modernes." - -#: library/__main__.rst:199 -msgid "``__main__.py`` in Python Packages" -msgstr "Le fichier ``__main__.py`` dans les paquets Python" - -#: library/__main__.rst:201 -msgid "" -"If you are not familiar with Python packages, see section :ref:`tut-" -"packages` of the tutorial. Most commonly, the ``__main__.py`` file is used " -"to provide a command-line interface for a package. Consider the following " -"hypothetical package, \"bandclass\":" -msgstr "" -"Si vous n'êtes pas familier des paquets Python, lisez :ref:`tut-packages` " -"dans le tutoriel. Un fichier ``__main__.py`` permet à un paquet de définir " -"une interface en ligne de commande. Prenons pour exemple un paquet nommé " -"*bandclass* :" - -#: library/__main__.rst:213 -msgid "" -"``__main__.py`` will be executed when the package itself is invoked directly " -"from the command line using the :option:`-m` flag. For example:" -msgstr "" -"Le fichier ``__main__.py`` qu'il contient s'exécute lorsque le paquet est " -"appelé depuis la ligne de commande avec l'option :option:`-m` de " -"l'interpréteur, comme ceci :" - -#: library/__main__.rst:220 -msgid "" -"This command will cause ``__main__.py`` to run. How you utilize this " -"mechanism will depend on the nature of the package you are writing, but in " -"this hypothetical case, it might make sense to allow the teacher to search " -"for students::" -msgstr "" -"Cette commande lance l'exécution de ``__main__.py``. Il vous appartient, en " -"tant que concepteur du paquet, de déterminer ce qu'elle doit faire. Dans " -"notre exemple, elle pourrait rechercher un étudiant dans une base de " -"données ::" - -#: library/__main__.rst:233 -msgid "" -"Note that ``from .student import search_students`` is an example of a " -"relative import. This import style can be used when referencing modules " -"within a package. For more details, see :ref:`intra-package-references` in " -"the :ref:`tut-modules` section of the tutorial." -msgstr "" -"Remarquez l'importation ``from .student import search_students``. Le point " -"avant ``student`` sert à rendre le chemin ``student`` relatif à la position " -"du module qui l'importe. Pour plus d'informations, voir :ref:`intra-package-" -"references` dans la section :ref:`tut-modules` du tutoriel." - -#: library/__main__.rst:241 -#, fuzzy -msgid "" -"The content of ``__main__.py`` typically isn't fenced with an ``if __name__ " -"== '__main__'`` block. Instead, those files are kept short and import " -"functions to execute from other modules. Those other modules can then be " -"easily unit-tested and are properly reusable." -msgstr "" -"En général, on ne met pas le code de ``__main__.py`` dans un bloc ``if " -"__name__ == '__main__'``. Il vaut mieux définir toutes les fonctions utiles " -"dans d'autres modules et réduire la taille du fichier ``__main__.py`` au " -"minimum. Il est alors plus facile de tester et réutiliser ces autres modules." - -#: library/__main__.rst:246 -msgid "" -"If used, an ``if __name__ == '__main__'`` block will still work as expected " -"for a ``__main__.py`` file within a package, because its ``__name__`` " -"attribute will include the package's path if imported::" -msgstr "" -"Cependant, un ``if __name__ == '__main__'``, s'il est présent dans le " -"``__main__.py``, fonctionne correctement. En effet, si ``__main__.py`` est " -"importé depuis autre module, son attribut ``__name__`` contient, avant " -"``__main__``, le nom du paquet dont il fait partie ::" - -#: library/__main__.rst:254 -#, fuzzy -msgid "" -"This won't work for ``__main__.py`` files in the root directory of a " -"``.zip`` file though. Hence, for consistency, a minimal ``__main__.py`` " -"without a ``__name__`` check is preferred." -msgstr "" -"Malgré tout, cela ne fonctionne pas pour les fichiers ``__main__.py`` à la " -"racine d'une archive ZIP. Aussi est-il préférable d'écrire des " -"``__main__.py`` dans le style minimal de celui de :mod:`venv` mentionné ci-" -"dessus." - -#: library/__main__.rst:260 -#, fuzzy -msgid "" -"See :mod:`venv` for an example of a package with a minimal ``__main__.py`` " -"in the standard library. It doesn't contain a ``if __name__ == '__main__'`` " -"block. You can invoke it with ``python -m venv [directory]``." -msgstr "" -"Le module :mod:`venv` de la bibliothèque standard est un exemple de paquet " -"contenant un fichier ``__main__.py`` minimal, sans ``if __name__ == " -"'__main__'``. Il s'appelle avec la commande :samp:`python3 -m venv {dossier}" -"`." - -#: library/__main__.rst:264 -msgid "" -"See :mod:`runpy` for more details on the :option:`-m` flag to the " -"interpreter executable." -msgstr "" -"La documentation du module :mod:`runpy` fournit une description complète de " -"l'option :option:`-m` de l'interpréteur." - -#: library/__main__.rst:267 -msgid "" -"See :mod:`zipapp` for how to run applications packaged as *.zip* files. In " -"this case Python looks for a ``__main__.py`` file in the root directory of " -"the archive." -msgstr "" -"Le module :mod:`zipapp` exécute des applications emballées dans une archive " -"ZIP. Dans ce cas, l'interpréteur recherche un fichier ``__main__.py`` à la " -"racine de l'archive." - -#: library/__main__.rst:274 -msgid "``import __main__``" -msgstr "``import __main__``" - -#: library/__main__.rst:276 -msgid "" -"Regardless of which module a Python program was started with, other modules " -"running within that same program can import the top-level environment's " -"scope (:term:`namespace`) by importing the ``__main__`` module. This " -"doesn't import a ``__main__.py`` file but rather whichever module that " -"received the special name ``'__main__'``." -msgstr "" -"Quel que soit le module principal d'un programme, les autres modules peuvent " -"accéder à l':term:`espace de nommage ` dans lequel il s'exécute " -"en important le module spécial ``__main__``. Celui-ci ne correspond pas " -"forcément à un fichier ``__main__.py``. Il s'agit simplement du module qui a " -"reçu le nom ``'__main__'``." - -#: library/__main__.rst:282 -msgid "Here is an example module that consumes the ``__main__`` namespace::" -msgstr "Voici un exemple d'utilisation du module ``__main__`` ::" - -#: library/__main__.rst:297 -msgid "Example usage of this module could be as follows::" -msgstr "Ce code s'utilise comme ceci ::" - -#: library/__main__.rst:316 -msgid "Now, if we started our program, the result would look like this:" -msgstr "Le programme ci-dessus donne la sortie :" - -#: library/__main__.rst:323 -msgid "" -"The exit code of the program would be 1, indicating an error. Uncommenting " -"the line with ``my_name = \"Dinsdale\"`` fixes the program and now it exits " -"with status code 0, indicating success:" -msgstr "" -"Son code de retour est 1, ce qui signifie une erreur. En supprimant la " -"marque de commentaire en début de ligne ``my_name = \"Dinsdale\"``, le " -"programme est corrigé, et renvoie au système le code 0 car il n'y a plus " -"d'erreur :" - -#: library/__main__.rst:332 -msgid "" -"Note that importing ``__main__`` doesn't cause any issues with " -"unintentionally running top-level code meant for script use which is put in " -"the ``if __name__ == \"__main__\"`` block of the ``start`` module. Why does " -"this work?" -msgstr "" -"On pourrait s'attendre à un problème au moment de l'importation de " -"``__main__`` : cela ne provoque-t-il pas l'exécution anticipée du code de " -"script sous ``if __name__ == '__main__'`` dans le module principal " -"``start`` ?" - -#: library/__main__.rst:336 -#, fuzzy -msgid "" -"Python inserts an empty ``__main__`` module in :data:`sys.modules` at " -"interpreter startup, and populates it by running top-level code. In our " -"example this is the ``start`` module which runs line by line and imports " -"``namely``. In turn, ``namely`` imports ``__main__`` (which is really " -"``start``). That's an import cycle! Fortunately, since the partially " -"populated ``__main__`` module is present in :data:`sys.modules`, Python " -"passes that to ``namely``. See :ref:`Special considerations for __main__ " -"` in the import system's reference for details on how " -"this works." -msgstr "" -"En fait, le déroulement de l'exécution est le suivant : au lancement de " -"l'interpréteur, un module ``__main__`` initialement vide est inséré " -"dans :attr:`sys.modules`. Il se remplit au fur et à mesure de l'exécution du " -"code principal. Dans notre exemple, le module principal est ``start``, qui " -"s'exécute ligne par ligne et en vient à importer ``namely``. Or ``namely``, " -"à son tour, importe ``__main__``, c'est-à-dire en fait ``start``. On a donc " -"une importation cyclique. Puisque le module ``__main__`` est déjà présent " -"dans :attr:`sys.modules`, bien qu'encore incomplet, il est directement passé " -"à ``namely`` sans réimportation. La section :ref:`import-dunder-main` dans " -"le document de référence du système d'importation explique plus avant ce " -"fonctionnement." - -#: library/__main__.rst:345 -msgid "" -"The Python REPL is another example of a \"top-level environment\", so " -"anything defined in the REPL becomes part of the ``__main__`` scope::" -msgstr "" -"L'interpréteur interactif est un autre environnement d'exécution principal " -"possible. Toute variable qui y est définie appartient à l'espace de nommage " -"``__main__`` ::" - -#: library/__main__.rst:361 -msgid "" -"The ``__main__`` scope is used in the implementation of :mod:`pdb` " -"and :mod:`rlcompleter`." -msgstr "" -"Le module ``__main__`` est notamment employé dans les implémentations " -"de :mod:`pdb` et :mod:`rlcompleter`." - -#~ msgid "" -#~ "Note that in this case the ``__main__`` scope doesn't contain a " -#~ "``__file__`` attribute as it's interactive." -#~ msgstr "" -#~ "Dans ce cas, il n'y a pas de variable ``__file__``, puisque cela n'a pas " -#~ "de sens dans le mode interactif." - -#, fuzzy -#~ msgid "" -#~ ">>> __name__\n" -#~ "'__main__'" -#~ msgstr "``__name__ == '__main__'``" - -#~ msgid "" -#~ "``'__main__'`` is the name of the scope in which top-level code executes. " -#~ "A module's __name__ is set equal to ``'__main__'`` when read from " -#~ "standard input, a script, or from an interactive prompt." -#~ msgstr "" -#~ "``'__main__'`` est le nom du *scope* dans lequel le code s'exécute en " -#~ "premier. Le nom d'un module (son *__name__*) vaut ``'__main__'`` " -#~ "lorsqu'il est lu de l'entrée standard, lorsque c'est un script, ou une " -#~ "invite interactive." - -#~ msgid "" -#~ "For a package, the same effect can be achieved by including a " -#~ "``__main__.py`` module, the contents of which will be executed when the " -#~ "module is run with ``-m``." -#~ msgstr "" -#~ "Pour un paquet, le même effet peut être obtenu en utilisant un module " -#~ "``__main__.py``, son contenu sera exécuté si le paquet est lancé via ``-" -#~ "m``." diff --git a/library/_thread.po b/library/_thread.po deleted file mode 100644 index 61fd7be533..0000000000 --- a/library/_thread.po +++ /dev/null @@ -1,434 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-11-06 20:06+0100\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/_thread.rst:2 -#, fuzzy -msgid ":mod:`!_thread` --- Low-level threading API" -msgstr ":mod:`_thread` — API bas niveau de gestion de fils d'exécution" - -#: library/_thread.rst:15 -msgid "" -"This module provides low-level primitives for working with multiple threads " -"(also called :dfn:`light-weight processes` or :dfn:`tasks`) --- multiple " -"threads of control sharing their global data space. For synchronization, " -"simple locks (also called :dfn:`mutexes` or :dfn:`binary semaphores`) are " -"provided. The :mod:`threading` module provides an easier to use and higher-" -"level threading API built on top of this module." -msgstr "" -"Ce module fournit les primitives de bas niveau pour travailler avec de " -"multiples fils d'exécution (aussi appelés :dfn:`light-weight processes` " -"ou :dfn:`tasks`) — plusieurs fils d'exécution de contrôle partagent leur " -"espace de données global. Pour la synchronisation, de simples verrous (aussi " -"appelés des :dfn:`mutexes` ou des :dfn:`binary semaphores`) sont fournis. Le " -"module :mod:`threading` fournit une API de fils d'exécution de haut niveau, " -"plus facile à utiliser et construite à partir de ce module." - -#: library/_thread.rst:26 -msgid "This module used to be optional, it is now always available." -msgstr "Ce module était optionnel, il est maintenant toujours disponible." - -#: library/_thread.rst:29 -msgid "This module defines the following constants and functions:" -msgstr "Ce module définit les constantes et les fonctions suivantes :" - -#: library/_thread.rst:33 -msgid "Raised on thread-specific errors." -msgstr "Levée lors d'erreurs spécifiques aux fils d'exécution." - -#: library/_thread.rst:35 -msgid "This is now a synonym of the built-in :exc:`RuntimeError`." -msgstr "" -"Ceci est à présent un synonyme de l'exception native :exc:`RuntimeError`." - -#: library/_thread.rst:41 -msgid "" -"Start a new thread and return its identifier. The thread executes the " -"function *function* with the argument list *args* (which must be a tuple). " -"The optional *kwargs* argument specifies a dictionary of keyword arguments." -msgstr "" -"Démarre un nouveau fils d'exécution et renvoie son identifiant. Ce fil " -"d'exécution exécute la fonction *function* avec la liste d'arguments *args* " -"(qui doit être un *n*-uplet). L'argument optionnel *kwargs* spécifie un " -"dictionnaire d'arguments nommés." - -#: library/_thread.rst:45 -msgid "When the function returns, the thread silently exits." -msgstr "Au renvoi de la fonction, le fil d'exécution quitte silencieusement." - -#: library/_thread.rst:47 -msgid "" -"When the function terminates with an unhandled " -"exception, :func:`sys.unraisablehook` is called to handle the exception. The " -"*object* attribute of the hook argument is *function*. By default, a stack " -"trace is printed and then the thread exits (but other threads continue to " -"run)." -msgstr "" -"Lorsque la fonction se termine avec une exception non " -"gérée, :func:`sys.unraisablehook` est appelée pour gérer cette dernière. " -"L'attribut *object* de l'argument *hook* est *function*. Par défaut, la " -"trace d'appels est affichée puis le fil d'exécution se termine (mais les " -"autres fils d'exécution continuent de s'exécuter)." - -#: library/_thread.rst:52 -msgid "" -"When the function raises a :exc:`SystemExit` exception, it is silently " -"ignored." -msgstr "" -"Lorsque la fonction lève l'exception :exc:`SystemExit`, elle est ignorée " -"silencieusement." - -#: library/_thread.rst:55 -msgid "" -"Raises an :ref:`auditing event ` ``_thread.start_new_thread`` with " -"arguments ``function``, ``args``, ``kwargs``." -msgstr "" - -#: library/_thread.rst:57 -msgid ":func:`sys.unraisablehook` is now used to handle unhandled exceptions." -msgstr "" -":func:`sys.unraisablehook` est maintenant utilisée pour s'occuper des " -"exceptions non gérées." - -#: library/_thread.rst:63 -msgid "" -"Simulate the effect of a signal arriving in the main thread. A thread can " -"use this function to interrupt the main thread, though there is no guarantee " -"that the interruption will happen immediately." -msgstr "" -"Simule l'effet d'un signal arrivant au fil d'exécution principal. Un fil " -"d'exécution peut utiliser cette fonction pour interrompre le fil d'exécution " -"principal, bien qu'une interruption immédiate ne soit pas garantie." - -#: library/_thread.rst:67 -#, fuzzy -msgid "" -"If given, *signum* is the number of the signal to simulate. If *signum* is " -"not given, :const:`signal.SIGINT` is simulated." -msgstr "" -"Le signal simulé est *signum*. La valeur par défaut " -"est :data:`signal.SIGINT`." - -#: library/_thread.rst:70 -#, fuzzy -msgid "" -"If the given signal isn't handled by Python (it was set " -"to :const:`signal.SIG_DFL` or :const:`signal.SIG_IGN`), this function does " -"nothing." -msgstr "" -"Si le signal n'est pas géré par Python (s'il a été paramétré " -"à :data:`signal.SIG_DFL` ou :data:`signal.SIG_IGN`), cette fonction ne fait " -"rien." - -#: library/_thread.rst:74 -msgid "The *signum* argument is added to customize the signal number." -msgstr "Ajout du paramètre *signum* pour modifier le numéro du signal." - -#: library/_thread.rst:78 -msgid "" -"This does not emit the corresponding signal but schedules a call to the " -"associated handler (if it exists). If you want to truly emit the signal, " -"use :func:`signal.raise_signal`." -msgstr "" -"Cette fonction n'émet pas vraiment le signal, mais programme un appel du " -"gestionnaire associé (à condition qu'il existe). Pour émettre réellement le " -"signal, utilisez :func:`signal.raise_signal`." - -#: library/_thread.rst:85 -msgid "" -"Raise the :exc:`SystemExit` exception. When not caught, this will cause the " -"thread to exit silently." -msgstr "" -"Lève une exception :exc:`SystemExit`. Quand elle n'est pas interceptée, le " -"fil d'exécution se terminera silencieusement." - -#: library/_thread.rst:99 -msgid "" -"Return a new lock object. Methods of locks are described below. The lock " -"is initially unlocked." -msgstr "" -"Renvoie un nouveau verrou. Les méthodes des verrous sont décrites ci-" -"dessous. Le verrou est initialement déverrouillé." - -#: library/_thread.rst:105 -msgid "" -"Return the 'thread identifier' of the current thread. This is a nonzero " -"integer. Its value has no direct meaning; it is intended as a magic cookie " -"to be used e.g. to index a dictionary of thread-specific data. Thread " -"identifiers may be recycled when a thread exits and another thread is " -"created." -msgstr "" -"Renvoie l'« identifiant de fil » du fil d'exécution courant. C'est un " -"entier non nul. Sa valeur n'a pas de signification directe ; il est destiné " -"à être utilisé comme *cookie* magique, par exemple pour indexer un " -"dictionnaire de données pour chaque fil. Les identifiants de fils peuvent " -"être recyclés lorsqu'un fil d'exécution se termine et qu'un autre fil est " -"créé." - -#: library/_thread.rst:113 -msgid "" -"Return the native integral Thread ID of the current thread assigned by the " -"kernel. This is a non-negative integer. Its value may be used to uniquely " -"identify this particular thread system-wide (until the thread terminates, " -"after which the value may be recycled by the OS)." -msgstr "" -"Renvoie l'identifiant natif complet assigné par le noyau du fil d'exécution " -"actuel. C'est un entier non négatif. Sa valeur peut uniquement être utilisée " -"pour identifier ce fil d'exécution à l'échelle du système (jusqu'à ce que le " -"fil d'exécution se termine, après quoi la valeur peut être recyclée par le " -"système d'exploitation)." - -#: library/_thread.rst:146 -msgid "Availability" -msgstr "Disponibilité" - -#: library/_thread.rst:122 -msgid "Added support for GNU/kFreeBSD." -msgstr "" - -#: library/_thread.rst:125 -msgid "Added support for Solaris." -msgstr "" - -#: library/_thread.rst:131 -msgid "" -"Return the thread stack size used when creating new threads. The optional " -"*size* argument specifies the stack size to be used for subsequently created " -"threads, and must be 0 (use platform or configured default) or a positive " -"integer value of at least 32,768 (32 KiB). If *size* is not specified, 0 is " -"used. If changing the thread stack size is unsupported, " -"a :exc:`RuntimeError` is raised. If the specified stack size is invalid, " -"a :exc:`ValueError` is raised and the stack size is unmodified. 32 KiB is " -"currently the minimum supported stack size value to guarantee sufficient " -"stack space for the interpreter itself. Note that some platforms may have " -"particular restrictions on values for the stack size, such as requiring a " -"minimum stack size > 32 KiB or requiring allocation in multiples of the " -"system memory page size - platform documentation should be referred to for " -"more information (4 KiB pages are common; using multiples of 4096 for the " -"stack size is the suggested approach in the absence of more specific " -"information)." -msgstr "" -"Renvoie la taille de la pile d'exécution utilisée lors de la création de " -"nouveaux fils d'exécution. L'argument optionnel *size* spécifie la taille de " -"pile à utiliser pour les fils créés ultérieurement, et doit être à 0 (pour " -"utiliser la taille de la plate-forme ou la valeur configurée par défaut) ou " -"un entier positif supérieur ou égal à 32 768 (32 Kio). Si *size* n'est pas " -"spécifié, 0 est utilisé. Si la modification de la taille de la pile de fils " -"n'est pas prise en charge, une exception :exc:`RuntimeError` est levée. Si " -"la taille de la pile spécifiée n'est pas valide, une " -"exception :exc:`ValueError` est levée et la taille de la pile n'est pas " -"modifiée. 32 Kio est actuellement la valeur minimale de taille de la pile " -"prise en charge pour garantir un espace de pile suffisant pour " -"l'interpréteur lui-même. Notez que certaines plates-formes peuvent avoir des " -"restrictions particulières sur les valeurs de taille de la pile, telles que " -"l'exigence d'une taille de pile minimale > 32 Kio ou d'une allocation en " -"multiples de la taille de page de la mémoire du système – la documentation " -"de la plate-forme devrait être consultée pour plus d'informations (4 Kio " -"sont courants ; en l'absence de renseignements plus spécifiques, l'approche " -"suggérée est l'utilisation de multiples de 4 096 octets pour la taille de la " -"pile)." - -#: library/_thread.rst:148 -msgid "Unix platforms with POSIX threads support." -msgstr "" - -#: library/_thread.rst:153 -#, fuzzy -msgid "" -"The maximum value allowed for the *timeout* parameter of :meth:`Lock.acquire " -"`. Specifying a timeout greater than this value will " -"raise an :exc:`OverflowError`." -msgstr "" -"La valeur maximale autorisée pour le paramètre *timeout* de la " -"méthode :meth:`Lock.acquire`. Préciser un délai d'attente supérieur à cette " -"valeur lève une exception :exc:`OverflowError`." - -#: library/_thread.rst:169 -msgid "This is the type of lock objects." -msgstr "C'est le type d'objets verrous." - -#: library/_thread.rst:171 -msgid "Lock objects have the following methods:" -msgstr "Les verrous ont les méthodes suivantes :" - -#: library/_thread.rst:175 -msgid "" -"Without any optional argument, this method acquires the lock " -"unconditionally, if necessary waiting until it is released by another thread " -"(only one thread at a time can acquire a lock --- that's their reason for " -"existence)." -msgstr "" -"Sans aucun argument optionnel, cette méthode acquiert le verrou " -"inconditionnellement, et si nécessaire attend jusqu'à ce qu'il soit relâché " -"par un autre fil d'exécution (un seul fil d'exécution à la fois peut " -"acquérir le verrou — c'est leur raison d'être)." - -#: library/_thread.rst:179 -#, fuzzy -msgid "" -"If the *blocking* argument is present, the action depends on its value: if " -"it is false, the lock is only acquired if it can be acquired immediately " -"without waiting, while if it is true, the lock is acquired unconditionally " -"as above." -msgstr "" -"Si l'argument *waitflag*, un entier, est présent, l'action dépend de sa " -"valeur : si elle est de zéro, le verrou est seulement acquis s'il peut être " -"acquis immédiatement, sans attendre, sinon le verrou est acquis " -"inconditionnellement comme ci-dessus." - -#: library/_thread.rst:184 -#, fuzzy -msgid "" -"If the floating-point *timeout* argument is present and positive, it " -"specifies the maximum wait time in seconds before returning. A negative " -"*timeout* argument specifies an unbounded wait. You cannot specify a " -"*timeout* if *blocking* is false." -msgstr "" -"Si l'argument *timeout*, en virgule flottante, est présent et positif, il " -"spécifie le temps d'attente maximum en secondes avant de renvoyer. Un " -"argument *timeout* négatif spécifie une attente illimitée. Vous ne pouvez " -"pas spécifier un *timeout* si *waitflag* est à zéro." - -#: library/_thread.rst:189 -msgid "" -"The return value is ``True`` if the lock is acquired successfully, ``False`` " -"if not." -msgstr "" -"La valeur renvoyée est ``True`` si le verrou est acquis avec succès, sinon " -"``False``." - -#: library/_thread.rst:192 -msgid "The *timeout* parameter is new." -msgstr "Le paramètre *timeout* est nouveau." - -#: library/_thread.rst:195 -msgid "Lock acquires can now be interrupted by signals on POSIX." -msgstr "" -"Le verrou acquis peut maintenant être interrompu par des signaux sur POSIX." - -#: library/_thread.rst:198 -#, fuzzy -msgid "Lock acquires can now be interrupted by signals on Windows." -msgstr "" -"Le verrou acquis peut maintenant être interrompu par des signaux sur POSIX." - -#: library/_thread.rst:203 -msgid "" -"Releases the lock. The lock must have been acquired earlier, but not " -"necessarily by the same thread." -msgstr "" -"Relâche le verrou. Le verrou doit avoir été acquis plus tôt, mais pas " -"nécessairement par le même fil d'exécution." - -#: library/_thread.rst:208 -msgid "" -"Return the status of the lock: ``True`` if it has been acquired by some " -"thread, ``False`` if not." -msgstr "" -"Renvoie le statut du verrou : ``True`` s'il a été acquis par certains fils " -"d'exécution, sinon ``False``." - -#: library/_thread.rst:211 -msgid "" -"In addition to these methods, lock objects can also be used via " -"the :keyword:`with` statement, e.g.::" -msgstr "" -"En plus de ces méthodes, les objets verrous peuvent aussi être utilisés via " -"l'instruction :keyword:`with`, e.g ::" - -#: library/_thread.rst:221 -msgid "**Caveats:**" -msgstr "**Avertissements :**" - -#: library/_thread.rst:225 -msgid "" -"Interrupts always go to the main thread (the :exc:`KeyboardInterrupt` " -"exception will be received by that thread.)" -msgstr "" - -#: library/_thread.rst:228 -msgid "" -"Calling :func:`sys.exit` or raising the :exc:`SystemExit` exception is " -"equivalent to calling :func:`_thread.exit`." -msgstr "" -"Appeler la fonction :func:`sys.exit` ou lever l'exception :exc:`SystemExit` " -"est équivalent à appeler la fonction :func:`_thread.exit`." - -#: library/_thread.rst:231 -msgid "" -"When the main thread exits, it is system defined whether the other threads " -"survive. On most systems, they are killed without " -"executing :keyword:`try` ... :keyword:`finally` clauses or executing object " -"destructors." -msgstr "" -"Quand le fil d'exécution principal s'arrête, il est défini par le système si " -"les autres fils d'exécution survivent. Sur beaucoup de systèmes, ils sont " -"tués sans l'exécution des clauses :keyword:`try`… :keyword:`finally` ou " -"l'exécution des destructeurs d'objets." - -#, fuzzy -#~ msgid "" -#~ "It is platform-dependent whether the :meth:`~threading.Lock.acquire` " -#~ "method on a lock can be interrupted (so that the :exc:`KeyboardInterrupt` " -#~ "exception will happen immediately, rather than only after the lock has " -#~ "been acquired or the operation has timed out). It can be interrupted on " -#~ "POSIX, but not on Windows." -#~ msgstr "" -#~ "Il n'est pas possible d'interrompre la méthode :meth:`acquire` sur un " -#~ "verrou — l'exception :exc:`KeyboardInterrupt` surviendra après que le " -#~ "verrou a été acquis." - -#~ msgid "POSIX" -#~ msgstr "POSIX" - -#~ msgid "module" -#~ msgstr "module" - -#~ msgid "signal" -#~ msgstr "*signal*" - -#~ msgid "" -#~ ":ref:`Availability `: Windows, FreeBSD, Linux, macOS, " -#~ "OpenBSD, NetBSD, AIX." -#~ msgstr "" -#~ ":ref:`Disponibilité ` : Windows, FreeBSD, Linux, macOS, " -#~ "OpenBSD, NetBSD, AIX." - -#, fuzzy -#~ msgid ":ref:`Availability `: Windows, pthreads." -#~ msgstr "" -#~ ":ref:`Disponibilité ` : Windows et systèmes gérant les fils " -#~ "d'exécution POSIX." - -#~ msgid "" -#~ "Threads interact strangely with interrupts: the :exc:`KeyboardInterrupt` " -#~ "exception will be received by an arbitrary thread. (When " -#~ "the :mod:`signal` module is available, interrupts always go to the main " -#~ "thread.)" -#~ msgstr "" -#~ "Les fils d'exécution interagissent étrangement avec les interruptions : " -#~ "l'exception :exc:`KeyboardInterrupt` sera reçue par un fil d'exécution " -#~ "arbitraire. (Quand le module :mod:`signal` est disponible, les " -#~ "interruptions vont toujours au fil d'exécution principal)." - -#~ msgid "" -#~ "When the main thread exits, it does not do any of its usual cleanup " -#~ "(except that :keyword:`try` ... :keyword:`finally` clauses are honored), " -#~ "and the standard I/O files are not flushed." -#~ msgstr "" -#~ "Quand le fil d'exécution principal s'arrête, il ne fait pas son nettoyage " -#~ "habituel (excepté que les clauses :keyword:`try`… :keyword:`finally` sont " -#~ "honorées) et les fichiers d'entrée/sortie standards ne sont pas nettoyés." diff --git a/library/abc.po b/library/abc.po deleted file mode 100644 index 8d90bca9a3..0000000000 --- a/library/abc.po +++ /dev/null @@ -1,496 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-11-20 22:28+0100\n" -"Last-Translator: Jean Abou Samra \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" - -#: library/abc.rst:2 -#, fuzzy -msgid ":mod:`!abc` --- Abstract Base Classes" -msgstr ":mod:`abc` — Classes de Base Abstraites" - -#: library/abc.rst:7 -msgid "**Source code:** :source:`Lib/abc.py`" -msgstr "**Code source:** :source:`Lib/abc.py`" - -#: library/abc.rst:11 -msgid "" -"This module provides the infrastructure for defining :term:`abstract base " -"classes ` (ABCs) in Python, as outlined in :pep:`3119`; " -"see the PEP for why this was added to Python. (See also :pep:`3141` and " -"the :mod:`numbers` module regarding a type hierarchy for numbers based on " -"ABCs.)" -msgstr "" -"Le module fournit l'infrastructure pour définir les :term:`classes mères " -"abstraites ` (*Abstract Base Class* ou *ABC* en " -"anglais) en Python, tel qu'indiqué dans la :pep:`3119`; voir la PEP pour la " -"raison de son ajout à Python. (Voir également la :pep:`3141` et le " -"module :mod:`numbers` pour ce qui concerne la hiérarchie de types pour les " -"nombres basés sur les classes abstraites). Par la suite nous " -"utiliserons l'abréviation ABC (*Abstract Base Class*) pour désigner une " -"classe abstraite." - -#: library/abc.rst:16 -#, fuzzy -msgid "" -"The :mod:`collections` module has some concrete classes that derive from " -"ABCs; these can, of course, be further derived. In addition, " -"the :mod:`collections.abc` submodule has some ABCs that can be used to test " -"whether a class or instance provides a particular interface, for example, if " -"it is :term:`hashable` or if it is a :term:`mapping`." -msgstr "" -"Le module :mod:`collections` possède certaines classes concrètes qui " -"dérivent d'ABC. Celles-ci peuvent, bien sur, être elles-mêmes dérivées. De " -"plus, le sous-module :mod:`collections.abc` possède des ABC qui peuvent être " -"utilisées pour tester si une classe ou une instance fournit une interface " -"spécifique. Par exemple, est-elle hachable ou un tableau associatif " -"(*mapping* en anglais) ?" - -#: library/abc.rst:23 -msgid "" -"This module provides the metaclass :class:`ABCMeta` for defining ABCs and a " -"helper class :class:`ABC` to alternatively define ABCs through inheritance:" -msgstr "" -"Ce module fournit la métaclasse :class:`ABCMeta` pour définir les ABC ainsi " -"que la classe d'aide :class:`ABC`, cette dernière permettant de définir des " -"ABC en utilisant l'héritage :" - -#: library/abc.rst:28 -#, fuzzy -msgid "" -"A helper class that has :class:`ABCMeta` as its metaclass. With this class, " -"an abstract base class can be created by simply deriving from :class:`!ABC` " -"avoiding sometimes confusing metaclass usage, for example::" -msgstr "" -"Classe d'aide qui a :class:`ABCMeta` pour métaclasse. Avec cette classe, une " -"ABC peut être créée simplement en héritant de :class:`ABC` , ce qui permet " -"d'éviter l'utilisation parfois déroutante de métaclasse, par exemple ::" - -#: library/abc.rst:37 -#, fuzzy -msgid "" -"Note that the type of :class:`!ABC` is still :class:`ABCMeta`, therefore " -"inheriting from :class:`!ABC` requires the usual precautions regarding " -"metaclass usage, as multiple inheritance may lead to metaclass conflicts. " -"One may also define an abstract base class by passing the metaclass keyword " -"and using :class:`!ABCMeta` directly, for example::" -msgstr "" -"Il est à noter que le type de :class:`ABC` reste :class:`ABCMeta`. En " -"conséquence, hériter de :class:`ABC` nécessite les précautions habituelles " -"concernant l'utilisation de métaclasses : l'utilisation d'héritage multiple " -"peut entrainer des conflits de métaclasses. Il est également possible de " -"définir une ABC en passant l'argument nommé *metaclass* et en " -"utilisant :class:`ABCMeta` directement, par exemple ::" - -#: library/abc.rst:53 -msgid "Metaclass for defining Abstract Base Classes (ABCs)." -msgstr "Métaclasse pour définir des classes abstraites (ABC)." - -#: library/abc.rst:55 -msgid "" -"Use this metaclass to create an ABC. An ABC can be subclassed directly, and " -"then acts as a mix-in class. You can also register unrelated concrete " -"classes (even built-in classes) and unrelated ABCs as \"virtual subclasses\" " -"-- these and their descendants will be considered subclasses of the " -"registering ABC by the built-in :func:`issubclass` function, but the " -"registering ABC won't show up in their MRO (Method Resolution Order) nor " -"will method implementations defined by the registering ABC be callable (not " -"even via :func:`super`). [#]_" -msgstr "" -"Utilisez cette métaclasse pour créer une ABC. Il est possible d'hériter " -"d'une ABC directement, cette classe abstraite fonctionne alors comme " -"une classe *mixin*. Vous pouvez également enregistrer une classe concrète " -"sans lien (même une classe native) et des ABC comme \"sous-classes " -"virtuelles\" -- celles-ci et leur descendantes seront considérées comme des " -"sous-classes de la classe abstraite par la fonction " -"native :func:`issubclass`, mais les ABC enregistrées n'apparaitront pas dans " -"leur ordre de résolution des méthodes (*MRO* pour *Method Resolution Order* " -"en anglais). Les implémentations de méthodes définies par l'ABC ne seront " -"pas appelable (pas même via :func:`super`). [#]_" - -#: library/abc.rst:64 -#, fuzzy -msgid "" -"Classes created with a metaclass of :class:`!ABCMeta` have the following " -"method:" -msgstr "" -"Les classes dont la métaclasse est :class:`ABCMeta` possèdent les méthodes " -"suivantes :" - -#: library/abc.rst:68 -msgid "" -"Register *subclass* as a \"virtual subclass\" of this ABC. For example::" -msgstr "" -"Enregistrer *subclass* en tant que sous-classe virtuelle de cette ABC. Par " -"exemple ::" - -#: library/abc.rst:81 -msgid "Returns the registered subclass, to allow usage as a class decorator." -msgstr "" -"Renvoie la sous-classe enregistrée pour permettre l'utilisation en tant que " -"décorateur de classe." - -#: library/abc.rst:84 -#, fuzzy -msgid "" -"To detect calls to :meth:`!register`, you can use " -"the :func:`get_cache_token` function." -msgstr "" -"Pour détecter les appels à :meth:`register`, vous pouvez utiliser la " -"fonction :func:`get_cache_token`." - -#: library/abc.rst:88 -msgid "You can also override this method in an abstract base class:" -msgstr "Vous pouvez également redéfinir cette méthode dans une ABC :" - -#: library/abc.rst:92 -msgid "(Must be defined as a class method.)" -msgstr "(Doit être définie en tant que méthode de classe.)" - -#: library/abc.rst:94 -#, fuzzy -msgid "" -"Check whether *subclass* is considered a subclass of this ABC. This means " -"that you can customize the behavior of :func:`issubclass` further without " -"the need to call :meth:`register` on every class you want to consider a " -"subclass of the ABC. (This class method is called from " -"the :meth:`~type.__subclasscheck__` method of the ABC.)" -msgstr "" -"Vérifie si *subclass* est considérée comme une sous-classe de cette ABC. " -"Cela signifie que vous pouvez personnaliser le comportement de " -"``issubclass`` sans nécessiter d'appeler :meth:`register` pour chacune des " -"classes que vous souhaitez considérer comme sous-classe de l'ABC. (Cette " -"méthode de classe est appelée par la méthode :meth:`__subclasscheck__` de la " -"classe abstraite)." - -#: library/abc.rst:100 -#, fuzzy -msgid "" -"This method should return ``True``, ``False`` or :data:`NotImplemented`. If " -"it returns ``True``, the *subclass* is considered a subclass of this ABC. If " -"it returns ``False``, the *subclass* is not considered a subclass of this " -"ABC, even if it would normally be one. If it returns :data:`!" -"NotImplemented`, the subclass check is continued with the usual mechanism." -msgstr "" -"Cette méthode doit renvoyer ``True``, ``False`` ou ``NotImplemented``. Si " -"elle renvoie ``True``, *subclass* est considérée comme sous-classe de cette " -"ABC. Si elle renvoie ``False``, la *subclass* n'est pas considérée une sous-" -"classe de cette ABC même si elle l'aurait été en temps normal. Si elle " -"renvoie ``NotImplemented``, la vérification d'appartenance à la sous-classe " -"continue via le mécanisme habituel." - -#: library/abc.rst:110 -msgid "" -"For a demonstration of these concepts, look at this example ABC definition::" -msgstr "" -"Pour une illustration de ces concepts, voir cet exemple de définition de " -"ABC ::" - -#: library/abc.rst:139 -#, fuzzy -msgid "" -"The ABC ``MyIterable`` defines the standard iterable " -"method, :meth:`~object.__iter__`, as an abstract method. The implementation " -"given here can still be called from subclasses. The :meth:`!get_iterator` " -"method is also part of the ``MyIterable`` abstract base class, but it does " -"not have to be overridden in non-abstract derived classes." -msgstr "" -"L'ABC ``MyIterable`` définit la méthode " -"d'itération :meth:`~iterator.__iter__` comme méthode abstraite. " -"L'implémentation qui lui est donnée ici peut être appelée depuis les sous-" -"classes. La méthode :meth:`get_iterator` fait également partie de la classe " -"abstraite ``MyIterable``, mais elle n'a pas à être redéfinie dans les " -"classes dérivées non-abstraites." - -#: library/abc.rst:145 -#, fuzzy -msgid "" -"The :meth:`__subclasshook__` class method defined here says that any class " -"that has an :meth:`~object.__iter__` method in its :attr:`~object.__dict__` " -"(or in that of one of its base classes, accessed via " -"the :attr:`~type.__mro__` list) is considered a ``MyIterable`` too." -msgstr "" -"La méthode de classe :meth:`__subclasshook__` définie ici dit que toute " -"classe qui possède la méthode :meth:`~iterator.__iter__` dans " -"son :attr:`~object.__dict__` (ou dans une de ses classes mères, accédée via " -"la liste :attr:`~class.__mro__`) est considérée également comme un " -"``MyIterable``." - -#: library/abc.rst:150 -#, fuzzy -msgid "" -"Finally, the last line makes ``Foo`` a virtual subclass of ``MyIterable``, " -"even though it does not define an :meth:`~object.__iter__` method (it uses " -"the old-style iterable protocol, defined in terms of :meth:`~object.__len__` " -"and :meth:`~object.__getitem__`). Note that this will not make " -"``get_iterator`` available as a method of ``Foo``, so it is provided " -"separately." -msgstr "" -"Enfin, la dernière ligne fait de ``Foo`` une sous-classe virtuelle de " -"``MyIterable``, même si cette classe ne définit pas de " -"méthode :meth:`~iterator.__iter__` (elle utilise l'ancien protocole " -"d'itération qui se définit en termes de :meth:`__len__` " -"et :meth:`__getitem__`). A noter que cela ne rendra pas le ``get_iterator`` " -"de ``MyIterable`` disponible comme une méthode de ``Foo``, ``get_iterator`` " -"est donc implémenté séparément." - -#: library/abc.rst:159 -#, fuzzy -msgid "The :mod:`!abc` module also provides the following decorator:" -msgstr "Le module :mod:`abc` fournit aussi le décorateur :" - -#: library/abc.rst:163 -msgid "A decorator indicating abstract methods." -msgstr "Un décorateur marquant les méthodes comme abstraites." - -#: library/abc.rst:165 -#, fuzzy -msgid "" -"Using this decorator requires that the class's metaclass is :class:`ABCMeta` " -"or is derived from it. A class that has a metaclass derived from :class:`!" -"ABCMeta` cannot be instantiated unless all of its abstract methods and " -"properties are overridden. The abstract methods can be called using any of " -"the normal 'super' call mechanisms. :func:`!abstractmethod` may be used to " -"declare abstract methods for properties and descriptors." -msgstr "" -"Utiliser ce décorateur nécessite que la métaclasse de la classe " -"soit :class:`ABCMeta` ou soit dérivée de celle-ci. Une classe qui possède " -"une méta-classe dérivée de :class:`ABCMeta` ne peut pas être instanciée à " -"moins que toutes ses méthodes et propriétés abstraites soient redéfinies. " -"Les méthodes abstraites peuvent être appelées en utilisant n'importe quel " -"des mécanismes d'appel à 'super'. :func:`abstractmethod` peut être utilisée " -"pour déclarer des méthodes abstraites pour les propriétés et descripteurs." - -#: library/abc.rst:172 -#, fuzzy -msgid "" -"Dynamically adding abstract methods to a class, or attempting to modify the " -"abstraction status of a method or class once it is created, are only " -"supported using the :func:`update_abstractmethods` function. The :func:`!" -"abstractmethod` only affects subclasses derived using regular inheritance; " -"\"virtual subclasses\" registered with the ABC's :meth:`~ABCMeta.register` " -"method are not affected." -msgstr "" -"L'ajout dynamique de méthodes abstraites à une classe comme la modification " -"de l'état d'abstraction d'une méthode ou d'une classe une fois celle-ci " -"créée sont des opérations à réaliser avec :func:`update_abstractmethods`. En " -"effet, :func:`abstractmethod` n'affecte que les sous-classes dérivées " -"utilisant l'héritage classique. Les \"sous-classes virtuelles\" enregistrées " -"avec la méthode :meth:`register` de l'ABC ne sont pas affectées." - -#: library/abc.rst:179 -#, fuzzy -msgid "" -"When :func:`!abstractmethod` is applied in combination with other method " -"descriptors, it should be applied as the innermost decorator, as shown in " -"the following usage examples::" -msgstr "" -"Quand le décorateur :func:`abstractmethod` est utilisé en même temps que " -"d'autres descripteurs de méthodes, il doit être appliqué en tant que " -"décorateur le plus interne. Voir les exemples d'utilisation suivants ::" - -#: library/abc.rst:213 -#, fuzzy -msgid "" -"In order to correctly interoperate with the abstract base class machinery, " -"the descriptor must identify itself as abstract using :attr:`!" -"__isabstractmethod__`. In general, this attribute should be ``True`` if any " -"of the methods used to compose the descriptor are abstract. For example, " -"Python's built-in :class:`property` does the equivalent of::" -msgstr "" -"Afin d'interagir correctement avec le mécanisme de classe abstraite, un " -"descripteur doit s'identifier comme abstrait en " -"utilisant :attr:`__isabstractmethod__`. En général, cet attribut doit être " -"``True`` si au moins une des méthodes faisant partie du descripteur est " -"abstraite. Par exemple, la classe native :class:`property` de python fait " -"l'équivalent de ::" - -#: library/abc.rst:228 -msgid "" -"Unlike Java abstract methods, these abstract methods may have an " -"implementation. This implementation can be called via the :func:`super` " -"mechanism from the class that overrides it. This could be useful as an end-" -"point for a super-call in a framework that uses cooperative multiple-" -"inheritance." -msgstr "" -"Contrairement aux méthodes abstraites Java, ces méthodes abstraites peuvent " -"être implémentées. Cette implémentation peut être appelée via le " -"mécanisme :func:`super` depuis la classe qui la redéfinit. C'est typiquement " -"utile pour y appeler *super* et ainsi coopérer correctement dans un " -"environnement utilisant de l'héritage multiple." - -#: library/abc.rst:235 -#, fuzzy -msgid "The :mod:`!abc` module also supports the following legacy decorators:" -msgstr "" -"Le module :mod:`abc` gère également les décorateurs historiques suivants :" - -#: library/abc.rst:240 -msgid "" -"It is now possible to use :class:`classmethod` with :func:`abstractmethod`, " -"making this decorator redundant." -msgstr "" -"Il est désormais possible d'utiliser :class:`classmethod` " -"avec :func:`abstractmethod`, cela rend ce décorateur redondant." - -#: library/abc.rst:244 -msgid "" -"A subclass of the built-in :func:`classmethod`, indicating an abstract " -"classmethod. Otherwise it is similar to :func:`abstractmethod`." -msgstr "" -"Sous-classe du décorateur natif :func:`classmethod` qui indique une méthode " -"de classe ( ``classmethod`` ) abstraite. En dehors de cela, est similaire " -"à :func:`abstractmethod`." - -#: library/abc.rst:247 -msgid "" -"This special case is deprecated, as the :func:`classmethod` decorator is now " -"correctly identified as abstract when applied to an abstract method::" -msgstr "" -"Ce cas spécial est obsolète car le décorateur :func:`classmethod` est " -"désormais correctement identifié comme abstrait quand il est appliqué à une " -"méthode abstraite ::" - -#: library/abc.rst:261 -msgid "" -"It is now possible to use :class:`staticmethod` with :func:`abstractmethod`, " -"making this decorator redundant." -msgstr "" -"Il est désormais possible d'utiliser :class:`staticmethod` " -"avec :func:`abstractmethod`, cela rend ce décorateur redondant." - -#: library/abc.rst:265 -msgid "" -"A subclass of the built-in :func:`staticmethod`, indicating an abstract " -"staticmethod. Otherwise it is similar to :func:`abstractmethod`." -msgstr "" -"Sous-classe du décorateur natif :func:`classmethod` qui indique une méthode " -"statique ( ``staticmethod`` ) abstraite. En dehors de cela, est similaire " -"à :func:`abstractmethod`." - -#: library/abc.rst:268 -msgid "" -"This special case is deprecated, as the :func:`staticmethod` decorator is " -"now correctly identified as abstract when applied to an abstract method::" -msgstr "" -"Ce cas spécial est obsolète car le décorateur :func:`staticmethod` est " -"désormais correctement identifié comme abstrait quand appliqué à une méthode " -"abstraite ::" - -#: library/abc.rst:281 -msgid "" -"It is now possible to " -"use :class:`property`, :meth:`property.getter`, :meth:`property.setter` " -"and :meth:`property.deleter` with :func:`abstractmethod`, making this " -"decorator redundant." -msgstr "" -"Il est désormais possible " -"d'utiliser :class:`property`, :meth:`property.getter`, :meth:`property.setter` " -"et :meth:`property.deleter` avec :func:`abstractmethod`, ce qui rend ce " -"décorateur redondant." - -#: library/abc.rst:286 -msgid "" -"A subclass of the built-in :func:`property`, indicating an abstract property." -msgstr "Sous-classe de :func:`property`, qui indique une propriété abstraite." - -#: library/abc.rst:289 -msgid "" -"This special case is deprecated, as the :func:`property` decorator is now " -"correctly identified as abstract when applied to an abstract method::" -msgstr "" -"Ce cas spécial est obsolète car le décorateur :func:`property` est désormais " -"correctement identifié comme abstrait quand appliqué à une méthode " -"abstraite ::" - -#: library/abc.rst:299 -msgid "" -"The above example defines a read-only property; you can also define a read-" -"write abstract property by appropriately marking one or more of the " -"underlying methods as abstract::" -msgstr "" -"L'exemple ci-dessus définit une propriété en lecture seule. Vous pouvez " -"également définir une propriété en lecture-écriture abstraite en indiquant " -"une ou plusieurs des méthodes sous-jacentes comme abstraite ::" - -#: library/abc.rst:313 -msgid "" -"If only some components are abstract, only those components need to be " -"updated to create a concrete property in a subclass::" -msgstr "" -"Si seuls certains composants sont abstraits, seuls ces composants abstraits " -"nécessitent d'être mis à jour pour créer une propriété concrète dans une " -"sous-classe ::" - -#: library/abc.rst:322 -#, fuzzy -msgid "The :mod:`!abc` module also provides the following functions:" -msgstr "Le module :mod:`abc` fournit également la fonction suivante :" - -#: library/abc.rst:326 -msgid "Returns the current abstract base class cache token." -msgstr "Renvoie le jeton de cache ( *cache token*) de l'ABC." - -#: library/abc.rst:328 -msgid "" -"The token is an opaque object (that supports equality testing) identifying " -"the current version of the abstract base class cache for virtual subclasses. " -"The token changes with every call to :meth:`ABCMeta.register` on any ABC." -msgstr "" -"Le jeton est un objet opaque (qui implémente le test d'égalité) qui " -"identifie la version actuelle du cache de l'ABC pour les sous-classes " -"virtuelles. Le jeton change avec chaque appel à :meth:`ABCMeta.register` sur " -"n'importe quelle ABC." - -#: library/abc.rst:336 -msgid "" -"A function to recalculate an abstract class's abstraction status. This " -"function should be called if a class's abstract methods have been " -"implemented or changed after it was created. Usually, this function should " -"be called from within a class decorator." -msgstr "" -"Recalcule l'état d'abstraction de la classe. Il est nécessaire d'appeler " -"cette fonction si les méthodes abstraites d'une classe sont ajoutées ou " -"modifiées après la création de la classe. C'est notamment le cas dans les " -"décorateurs de classe." - -#: library/abc.rst:341 -msgid "Returns *cls*, to allow usage as a class decorator." -msgstr "" -"Pour permettre une utilisation en tant que décorateur, cette fonction " -"renvoie *cls*." - -#: library/abc.rst:343 -msgid "If *cls* is not an instance of :class:`ABCMeta`, does nothing." -msgstr "Ne fait rien si *cls* n'est pas une instance de :class:`ABCMeta`." - -#: library/abc.rst:347 -msgid "" -"This function assumes that *cls*'s superclasses are already updated. It does " -"not update any subclasses." -msgstr "" -"Cette fonction suppose que les classes mères de *cls* ont vu leur état " -"recalculé, et ne fait rien pour recalculer celui des classes filles." - -#: library/abc.rst:353 -msgid "Footnotes" -msgstr "Notes" - -#: library/abc.rst:354 -msgid "" -"C++ programmers should note that Python's virtual base class concept is not " -"the same as C++'s." -msgstr "" -"Les développeurs C++ noteront que le concept Python de classe mère virtuelle " -"( *virtual base class* ) n'est pas le même que celui de C++." diff --git a/library/aifc.po b/library/aifc.po deleted file mode 100644 index 72fefeed00..0000000000 --- a/library/aifc.po +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/aifc.rst:2 -msgid ":mod:`!aifc` --- Read and write AIFF and AIFC files" -msgstr "" - -#: library/aifc.rst:10 -msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." -msgstr "" - -#: library/aifc.rst:14 -msgid "" -"The last version of Python that provided the :mod:`!aifc` module was `Python " -"3.12 `_." -msgstr "" diff --git a/library/allos.po b/library/allos.po deleted file mode 100644 index db30f86588..0000000000 --- a/library/allos.po +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -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: 2020-12-11 15:56+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/allos.rst:5 -msgid "Generic Operating System Services" -msgstr "Services génériques du système d'exploitation" - -#: library/allos.rst:7 -msgid "" -"The modules described in this chapter provide interfaces to operating system " -"features that are available on (almost) all operating systems, such as files " -"and a clock. The interfaces are generally modeled after the Unix or C " -"interfaces, but they are available on most other systems as well. Here's an " -"overview:" -msgstr "" -"Les modules documentés dans ce chapitre fournissent des interfaces vers des " -"fonctionnalités communes à la grande majorité des systèmes d'exploitation, " -"telles que les fichiers et l'horloge. Bien que ces interfaces soient " -"classiquement calquées sur les interfaces Unix ou C, elles sont aussi " -"disponibles sur la plupart des autres systèmes. En voici un aperçu :" diff --git a/library/annotationlib.po b/library/annotationlib.po deleted file mode 100644 index c6e166cca6..0000000000 --- a/library/annotationlib.po +++ /dev/null @@ -1,958 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/annotationlib.rst:2 -msgid ":mod:`!annotationlib` --- Functionality for introspecting annotations" -msgstr "" - -#: library/annotationlib.rst:9 -msgid "**Source code:** :source:`Lib/annotationlib.py`" -msgstr "" - -#: library/annotationlib.rst:18 -msgid "" -"The :mod:`!annotationlib` module provides tools for " -"introspecting :term:`annotations ` on modules, classes, and " -"functions." -msgstr "" - -#: library/annotationlib.rst:21 -msgid "" -"Annotations are :ref:`lazily evaluated ` and often contain " -"forward references to objects that are not yet defined when the annotation " -"is created. This module provides a set of low-level tools that can be used " -"to retrieve annotations in a reliable way, even in the presence of forward " -"references and other edge cases." -msgstr "" - -#: library/annotationlib.rst:26 -msgid "" -"This module supports retrieving annotations in three main formats " -"(see :class:`Format`), each of which works best for different use cases:" -msgstr "" - -#: library/annotationlib.rst:29 -msgid "" -":attr:`~Format.VALUE` evaluates the annotations and returns their value. " -"This is most straightforward to work with, but it may raise errors, for " -"example if the annotations contain references to undefined names." -msgstr "" - -#: library/annotationlib.rst:32 -msgid "" -":attr:`~Format.FORWARDREF` returns :class:`ForwardRef` objects for " -"annotations that cannot be resolved, allowing you to inspect the annotations " -"without evaluating them. This is useful when you need to work with " -"annotations that may contain unresolved forward references." -msgstr "" - -#: library/annotationlib.rst:36 -msgid "" -":attr:`~Format.STRING` returns the annotations as a string, similar to how " -"it would appear in the source file. This is useful for documentation " -"generators that want to display annotations in a readable way." -msgstr "" - -#: library/annotationlib.rst:40 -msgid "" -"The :func:`get_annotations` function is the main entry point for retrieving " -"annotations. Given a function, class, or module, it returns an annotations " -"dictionary in the requested format. This module also provides functionality " -"for working directly with the :term:`annotate function` that is used to " -"evaluate annotations, such as :func:`get_annotate_from_class_namespace` " -"and :func:`call_annotate_function`, as well as " -"the :func:`call_evaluate_function` function for working with :term:`evaluate " -"functions `." -msgstr "" - -#: library/annotationlib.rst:51 -msgid "" -"Most functionality in this module can execute arbitrary code; see :ref:`the " -"security section ` for more information." -msgstr "" - -#: library/annotationlib.rst:56 -msgid "" -":pep:`649` proposed the current model for how annotations work in Python." -msgstr "" - -#: library/annotationlib.rst:58 -msgid "" -":pep:`749` expanded on various aspects of :pep:`649` and introduced " -"the :mod:`!annotationlib` module." -msgstr "" - -#: library/annotationlib.rst:61 -msgid "" -":ref:`annotations-howto` provides best practices for working with " -"annotations." -msgstr "" - -#: library/annotationlib.rst:64 -msgid "" -":pypi:`typing-extensions` provides a backport of :func:`get_annotations` " -"that works on earlier versions of Python." -msgstr "" - -#: library/annotationlib.rst:68 -msgid "Annotation semantics" -msgstr "" - -#: library/annotationlib.rst:70 -msgid "" -"The way annotations are evaluated has changed over the history of Python 3, " -"and currently still depends on a :ref:`future import `. There have " -"been execution models for annotations:" -msgstr "" - -#: library/annotationlib.rst:74 -msgid "" -"*Stock semantics* (default in Python 3.0 through 3.13; see :pep:`3107` " -"and :pep:`526`): Annotations are evaluated eagerly, as they are encountered " -"in the source code." -msgstr "" - -#: library/annotationlib.rst:77 -msgid "" -"*Stringified annotations* (used with ``from __future__ import annotations`` " -"in Python 3.7 and newer; see :pep:`563`): Annotations are stored as strings " -"only." -msgstr "" - -#: library/annotationlib.rst:80 -msgid "" -"*Deferred evaluation* (default in Python 3.14 and newer; see :pep:`649` " -"and :pep:`749`): Annotations are evaluated lazily, only when they are " -"accessed." -msgstr "" - -#: library/annotationlib.rst:83 -msgid "As an example, consider the following program::" -msgstr "" - -#: library/annotationlib.rst:92 -msgid "This will behave as follows:" -msgstr "" - -#: library/annotationlib.rst:94 -msgid "" -"Under stock semantics (Python 3.13 and earlier), it will throw " -"a :exc:`NameError` at the line where ``func`` is defined, because ``Cls`` is " -"an undefined name at that point." -msgstr "" - -#: library/annotationlib.rst:97 -msgid "" -"Under stringified annotations (if ``from __future__ import annotations`` is " -"used), it will print ``{'a': 'Cls', 'return': 'None'}``." -msgstr "" - -#: library/annotationlib.rst:99 -msgid "" -"Under deferred evaluation (Python 3.14 and later), it will print ``{'a': " -", 'return': None}``." -msgstr "" - -#: library/annotationlib.rst:102 -msgid "" -"Stock semantics were used when function annotations were first introduced in " -"Python 3.0 (by :pep:`3107`) because this was the simplest, most obvious way " -"to implement annotations. The same execution model was used when variable " -"annotations were introduced in Python 3.6 (by :pep:`526`). However, stock " -"semantics caused problems when using annotations as type hints, such as a " -"need to refer to names that are not yet defined when the annotation is " -"encountered. In addition, there were performance problems with executing " -"annotations at module import time. Therefore, in Python 3.7, :pep:`563` " -"introduced the ability to store annotations as strings using the ``from " -"__future__ import annotations`` syntax. The plan at the time was to " -"eventually make this behavior the default, but a problem appeared: " -"stringified annotations are more difficult to process for those who " -"introspect annotations at runtime. An alternative proposal, :pep:`649`, " -"introduced the third execution model, deferred evaluation, and was " -"implemented in Python 3.14. Stringified annotations are still used if ``from " -"__future__ import annotations`` is present, but this behavior will " -"eventually be removed." -msgstr "" - -#: library/annotationlib.rst:121 -msgid "Classes" -msgstr "Classes" - -#: library/annotationlib.rst:125 -msgid "" -"An :class:`~enum.IntEnum` describing the formats in which annotations can be " -"returned. Members of the enum, or their equivalent integer values, can be " -"passed to :func:`get_annotations` and other functions in this module, as " -"well as to :attr:`~object.__annotate__` functions." -msgstr "" - -#: library/annotationlib.rst:133 -msgid "Values are the result of evaluating the annotation expressions." -msgstr "" - -#: library/annotationlib.rst:138 -msgid "" -"Special value used to signal that an annotate function is being evaluated in " -"a special environment with fake globals. When passed this value, annotate " -"functions should either return the same value as for " -"the :attr:`Format.VALUE` format, or raise :exc:`NotImplementedError` to " -"signal that they do not support execution in this environment. This format " -"is only used internally and should not be passed to the functions in this " -"module." -msgstr "" - -#: library/annotationlib.rst:149 -msgid "" -"Values are real annotation values (as per :attr:`Format.VALUE` format) for " -"defined values, and :class:`ForwardRef` proxies for undefined values. Real " -"objects may contain references to :class:`ForwardRef` proxy objects." -msgstr "" - -#: library/annotationlib.rst:157 -msgid "" -"Values are the text string of the annotation as it appears in the source " -"code, up to modifications including, but not restricted to, whitespace " -"normalizations and constant values optimizations." -msgstr "" - -#: library/annotationlib.rst:161 -msgid "" -"The exact values of these strings may change in future versions of Python." -msgstr "" - -#: library/annotationlib.rst:167 -msgid "A proxy object for forward references in annotations." -msgstr "" - -#: library/annotationlib.rst:169 -msgid "" -"Instances of this class are returned when the :attr:`~Format.FORWARDREF` " -"format is used and annotations contain a name that cannot be resolved. This " -"can happen when a forward reference is used in an annotation, such as when a " -"class is referenced before it is defined." -msgstr "" - -#: library/annotationlib.rst:176 -msgid "" -"A string containing the code that was evaluated to produce " -"the :class:`~ForwardRef`. The string may not be exactly equivalent to the " -"original source." -msgstr "" - -#: library/annotationlib.rst:182 -msgid "Evaluate the forward reference, returning its value." -msgstr "" - -#: library/annotationlib.rst:184 -msgid "" -"If the *format* argument is :attr:`~Format.VALUE` (the default), this method " -"may throw an exception, such as :exc:`NameError`, if the forward reference " -"refers to a name that cannot be resolved. The arguments to this method can " -"be used to provide bindings for names that would otherwise be undefined. If " -"the *format* argument is :attr:`~Format.FORWARDREF`, the method will never " -"throw an exception, but may return a :class:`~ForwardRef` instance. For " -"example, if the forward reference object contains the code " -"``list[undefined]``, where ``undefined`` is a name that is not defined, " -"evaluating it with the :attr:`~Format.FORWARDREF` format will return " -"``list[ForwardRef('undefined')]``. If the *format* argument " -"is :attr:`~Format.STRING`, the method will " -"return :attr:`~ForwardRef.__forward_arg__`." -msgstr "" - -#: library/annotationlib.rst:196 -msgid "" -"The *owner* parameter provides the preferred mechanism for passing scope " -"information to this method. The owner of a :class:`~ForwardRef` is the " -"object that contains the annotation from which the :class:`~ForwardRef` " -"derives, such as a module object, type object, or function object." -msgstr "" - -#: library/annotationlib.rst:201 -msgid "" -"The *globals*, *locals*, and *type_params* parameters provide a more precise " -"mechanism for influencing the names that are available when " -"the :class:`~ForwardRef` is evaluated. *globals* and *locals* are passed " -"to :func:`eval`, representing the global and local namespaces in which the " -"name is evaluated. The *type_params* parameter is relevant for objects " -"created using the native syntax for :ref:`generic classes ` " -"and :ref:`functions `. It is a tuple of :ref:`type " -"parameters ` that are in scope while the forward reference is " -"being evaluated. For example, if evaluating a :class:`~ForwardRef` retrieved " -"from an annotation found in the class namespace of a generic class ``C``, " -"*type_params* should be set to ``C.__type_params__``." -msgstr "" - -#: library/annotationlib.rst:212 -msgid "" -":class:`~ForwardRef` instances returned by :func:`get_annotations` retain " -"references to information about the scope they originated from, so calling " -"this method with no further arguments may be sufficient to evaluate such " -"objects. :class:`~ForwardRef` instances created by other means may not have " -"any information about their scope, so passing arguments to this method may " -"be necessary to evaluate them successfully." -msgstr "" - -#: library/annotationlib.rst:219 -msgid "" -"If no *owner*, *globals*, *locals*, or *type_params* are provided and " -"the :class:`~ForwardRef` does not contain information about its origin, " -"empty globals and locals dictionaries are used." -msgstr "" - -#: library/annotationlib.rst:227 -msgid "Functions" -msgstr "Fonctions" - -#: library/annotationlib.rst:231 -msgid "" -"Convert an annotations dict containing runtime values to a dict containing " -"only strings. If the values are not already strings, they are converted " -"using :func:`type_repr`. This is meant as a helper for user-provided " -"annotate functions that support the :attr:`~Format.STRING` format but do not " -"have access to the code creating the annotations." -msgstr "" - -#: library/annotationlib.rst:238 -msgid "" -"For example, this is used to implement the :attr:`~Format.STRING` " -"for :class:`typing.TypedDict` classes created through the functional syntax:" -msgstr "" - -#: library/annotationlib.rst:252 -msgid "" -"Call the :term:`annotate function` *annotate* with the given *format*, a " -"member of the :class:`Format` enum, and return the annotations dictionary " -"produced by the function." -msgstr "" - -#: library/annotationlib.rst:256 -msgid "" -"This helper function is required because annotate functions generated by the " -"compiler for functions, classes, and modules only support " -"the :attr:`~Format.VALUE` format when called directly. To support other " -"formats, this function calls the annotate function in a special environment " -"that allows it to produce annotations in the other formats. This is a useful " -"building block when implementing functionality that needs to partially " -"evaluate annotations while a class is being constructed." -msgstr "" - -#: library/annotationlib.rst:265 -msgid "" -"*owner* is the object that owns the annotation function, usually a function, " -"class, or module. If provided, it is used in the :attr:`~Format.FORWARDREF` " -"format to produce a :class:`ForwardRef` object that carries more information." -msgstr "" - -#: library/annotationlib.rst:272 -msgid "" -":PEP:`PEP 649 <649#the-stringizer-and-the-fake-globals-environment>` " -"contains an explanation of the implementation technique used by this " -"function." -msgstr "" - -#: library/annotationlib.rst:280 -msgid "" -"Call the :term:`evaluate function` *evaluate* with the given *format*, a " -"member of the :class:`Format` enum, and return the value produced by the " -"function. This is similar to :func:`call_annotate_function`, but the latter " -"always returns a dictionary mapping strings to annotations, while this " -"function returns a single value." -msgstr "" - -#: library/annotationlib.rst:286 -msgid "" -"This is intended for use with the evaluate functions generated for lazily " -"evaluated elements related to type aliases and type parameters:" -msgstr "" - -#: library/annotationlib.rst:289 -msgid ":meth:`typing.TypeAliasType.evaluate_value`, the value of type aliases" -msgstr "" - -#: library/annotationlib.rst:290 -msgid ":meth:`typing.TypeVar.evaluate_bound`, the bound of type variables" -msgstr "" - -#: library/annotationlib.rst:291 -msgid "" -":meth:`typing.TypeVar.evaluate_constraints`, the constraints of type " -"variables" -msgstr "" - -#: library/annotationlib.rst:293 -msgid "" -":meth:`typing.TypeVar.evaluate_default`, the default value of type variables" -msgstr "" - -#: library/annotationlib.rst:295 -msgid "" -":meth:`typing.ParamSpec.evaluate_default`, the default value of parameter " -"specifications" -msgstr "" - -#: library/annotationlib.rst:297 -msgid "" -":meth:`typing.TypeVarTuple.evaluate_default`, the default value of type " -"variable tuples" -msgstr "" - -#: library/annotationlib.rst:300 -msgid "" -"*owner* is the object that owns the evaluate function, such as the type " -"alias or type variable object." -msgstr "" - -#: library/annotationlib.rst:303 -msgid "" -"*format* can be used to control the format in which the value is returned:" -msgstr "" - -#: library/annotationlib.rst:321 -msgid "" -"Retrieve the :term:`annotate function` from a class namespace dictionary " -"*namespace*. Return :const:`!None` if the namespace does not contain an " -"annotate function. This is primarily useful before the class has been fully " -"created (e.g., in a metaclass); after the class exists, the annotate " -"function can be retrieved with ``cls.__annotate__``. See :ref:`below " -"` for an example using this function in a metaclass." -msgstr "" - -#: library/annotationlib.rst:331 -msgid "Compute the annotations dict for an object." -msgstr "" - -#: library/annotationlib.rst:333 -msgid "" -"*obj* may be a callable, class, module, or other object " -"with :attr:`~object.__annotate__` or :attr:`~object.__annotations__` " -"attributes. Passing any other object raises :exc:`TypeError`." -msgstr "" - -#: library/annotationlib.rst:337 -msgid "" -"The *format* parameter controls the format in which annotations are " -"returned, and must be a member of the :class:`Format` enum or its integer " -"equivalent. The different formats work as follows:" -msgstr "" - -#: library/annotationlib.rst:341 -msgid "" -"VALUE: :attr:`!object.__annotations__` is tried first; if that does not " -"exist, the :attr:`!object.__annotate__` function is called if it exists." -msgstr "" - -#: library/annotationlib.rst:344 -msgid "" -"FORWARDREF: If :attr:`!object.__annotations__` exists and can be evaluated " -"successfully, it is used; otherwise, the :attr:`!object.__annotate__` " -"function is called. If it does not exist either, :attr:`!" -"object.__annotations__` is tried again and any error from accessing it is re-" -"raised." -msgstr "" - -#: library/annotationlib.rst:349 -msgid "" -"When calling :attr:`!object.__annotate__` it is first called " -"with :attr:`~Format.FORWARDREF`. If this is not implemented, it will then " -"check if :attr:`~Format.VALUE_WITH_FAKE_GLOBALS` is supported and use that " -"in the fake globals environment. If neither of these formats are supported, " -"it will fall back to using :attr:`~Format.VALUE`. If :attr:`~Format.VALUE` " -"fails, the error from this call will be raised." -msgstr "" - -#: library/annotationlib.rst:355 -msgid "" -"STRING: If :attr:`!object.__annotate__` exists, it is called first; " -"otherwise, :attr:`!object.__annotations__` is used and stringified " -"using :func:`annotations_to_string`." -msgstr "" - -#: library/annotationlib.rst:359 -msgid "" -"When calling :attr:`!object.__annotate__` it is first called " -"with :attr:`~Format.STRING`. If this is not implemented, it will then check " -"if :attr:`~Format.VALUE_WITH_FAKE_GLOBALS` is supported and use that in the " -"fake globals environment. If neither of these formats are supported, it will " -"fall back to using :attr:`~Format.VALUE` with the result converted " -"using :func:`annotations_to_string`. If :attr:`~Format.VALUE` fails, the " -"error from this call will be raised." -msgstr "" - -#: library/annotationlib.rst:366 -msgid "" -"Returns a dict. :func:`!get_annotations` returns a new dict every time it's " -"called; calling it twice on the same object will return two different but " -"equivalent dicts." -msgstr "" - -#: library/annotationlib.rst:370 -msgid "This function handles several details for you:" -msgstr "" - -#: library/annotationlib.rst:372 -msgid "" -"If *eval_str* is true, values of type :class:`!str` will be un-stringized " -"using :func:`eval`. This is intended for use with stringized annotations " -"(``from __future__ import annotations``). It is an error to set *eval_str* " -"to true with formats other than :attr:`Format.VALUE`." -msgstr "" - -#: library/annotationlib.rst:377 -msgid "" -"If *obj* doesn't have an annotations dict, returns an empty dict. (Functions " -"and methods always have an annotations dict; classes, modules, and other " -"types of callables may not.)" -msgstr "" - -#: library/annotationlib.rst:381 -msgid "" -"Ignores inherited annotations on classes, as well as annotations on " -"metaclasses. If a class doesn't have its own annotations dict, returns an " -"empty dict." -msgstr "" - -#: library/annotationlib.rst:384 -msgid "" -"All accesses to object members and dict values are done using ``getattr()`` " -"and ``dict.get()`` for safety." -msgstr "" - -#: library/annotationlib.rst:387 -msgid "" -"*eval_str* controls whether or not values of type :class:`!str` are replaced " -"with the result of calling :func:`eval` on those values:" -msgstr "" - -#: library/annotationlib.rst:390 -msgid "" -"If eval_str is true, :func:`eval` is called on values of type :class:`!str`. " -"(Note that :func:`!get_annotations` doesn't catch exceptions; " -"if :func:`eval` raises an exception, it will unwind the stack past " -"the :func:`!get_annotations` call.)" -msgstr "" - -#: library/annotationlib.rst:394 -msgid "" -"If *eval_str* is false (the default), values of type :class:`!str` are " -"unchanged." -msgstr "" - -#: library/annotationlib.rst:397 -msgid "" -"*globals* and *locals* are passed in to :func:`eval`; see the documentation " -"for :func:`eval` for more information. If *globals* or *locals* is :const:`!" -"None`, this function may replace that value with a context-specific default, " -"contingent on ``type(obj)``:" -msgstr "" - -#: library/annotationlib.rst:402 -msgid "If *obj* is a module, *globals* defaults to ``obj.__dict__``." -msgstr "" - -#: library/annotationlib.rst:403 -msgid "" -"If *obj* is a class, *globals* defaults to " -"``sys.modules[obj.__module__].__dict__`` and *locals* defaults to the *obj* " -"class namespace." -msgstr "" - -#: library/annotationlib.rst:406 -msgid "" -"If *obj* is a callable, *globals* defaults to :attr:`obj.__globals__ " -"`, although if *obj* is a wrapped function " -"(using :func:`functools.update_wrapper`) or a :class:`functools.partial` " -"object, it is unwrapped until a non-wrapped function is found." -msgstr "" - -#: library/annotationlib.rst:412 -msgid "" -"Calling :func:`!get_annotations` is best practice for accessing the " -"annotations dict of any object. See :ref:`annotations-howto` for more " -"information on annotations best practices." -msgstr "" - -#: library/annotationlib.rst:427 -msgid "" -"Convert an arbitrary Python value to a format suitable for use by " -"the :attr:`~Format.STRING` format. This calls :func:`repr` for most objects, " -"but has special handling for some objects, such as type objects." -msgstr "" - -#: library/annotationlib.rst:431 -msgid "" -"This is meant as a helper for user-provided annotate functions that support " -"the :attr:`~Format.STRING` format but do not have access to the code " -"creating the annotations. It can also be used to provide a user-friendly " -"string representation for other objects that contain values that are " -"commonly encountered in annotations." -msgstr "" - -#: library/annotationlib.rst:441 -msgid "Recipes" -msgstr "Cas pratiques" - -#: library/annotationlib.rst:446 -msgid "Using annotations in a metaclass" -msgstr "" - -#: library/annotationlib.rst:448 -msgid "" -"A :ref:`metaclass ` may want to inspect or even modify the " -"annotations in a class body during class creation. Doing so requires " -"retrieving annotations from the class namespace dictionary. For classes " -"created with ``from __future__ import annotations``, the annotations will be " -"in the ``__annotations__`` key of the dictionary. For other classes with " -"annotations, :func:`get_annotate_from_class_namespace` can be used to get " -"the annotate function, and :func:`call_annotate_function` can be used to " -"call it and retrieve the annotations. Using the :attr:`~Format.FORWARDREF` " -"format will usually be best, because this allows the annotations to refer to " -"names that cannot yet be resolved when the class is created." -msgstr "" - -#: library/annotationlib.rst:459 -msgid "" -"To modify the annotations, it is best to create a wrapper annotate function " -"that calls the original annotate function, makes any necessary adjustments, " -"and returns the result." -msgstr "" - -#: library/annotationlib.rst:463 -msgid "" -"Below is an example of a metaclass that filters out " -"all :class:`typing.ClassVar` annotations from the class and puts them in a " -"separate attribute:" -msgstr "" - -#: library/annotationlib.rst:514 -msgid "Creating a custom callable annotate function" -msgstr "" - -#: library/annotationlib.rst:516 -msgid "" -"Custom :term:`annotate functions ` may be literal " -"functions like those automatically generated for functions, classes, and " -"modules. Or, they may wish to utilise the encapsulation provided by classes, " -"in which case any :term:`callable` can be used as an :term:`annotate " -"function`." -msgstr "" - -#: library/annotationlib.rst:521 -msgid "" -"To provide the :attr:`~Format.VALUE`, :attr:`~Format.STRING`, " -"or :attr:`~Format.FORWARDREF` formats directly, an :term:`annotate function` " -"must provide the following attribute:" -msgstr "" - -#: library/annotationlib.rst:525 -msgid "" -"A callable ``__call__`` with signature ``__call__(format, /) -> dict``, that " -"does not raise a :exc:`NotImplementedError` when called with a supported " -"format." -msgstr "" - -#: library/annotationlib.rst:528 -msgid "" -"To provide the :attr:`~Format.VALUE_WITH_FAKE_GLOBALS` format, which is used " -"to automatically generate :attr:`~Format.STRING` " -"or :attr:`~Format.FORWARDREF` if they are not supported " -"directly, :term:`annotate functions ` must provide the " -"following attributes:" -msgstr "" - -#: library/annotationlib.rst:533 -msgid "" -"A callable ``__call__`` with signature ``__call__(format, /) -> dict``, that " -"does not raise a :exc:`NotImplementedError` when called " -"with :attr:`~Format.VALUE_WITH_FAKE_GLOBALS`." -msgstr "" - -#: library/annotationlib.rst:536 -msgid "" -"A :ref:`code object ` ``__code__`` containing the compiled " -"code for the annotate function." -msgstr "" - -#: library/annotationlib.rst:538 -msgid "" -"Optional: A tuple of the function's positional defaults ``__kwdefaults__``, " -"if the function represented by ``__code__`` uses any positional defaults." -msgstr "" - -#: library/annotationlib.rst:540 -msgid "" -"Optional: A dict of the function's keyword defaults ``__defaults__``, if the " -"function represented by ``__code__`` uses any keyword defaults." -msgstr "" - -#: library/annotationlib.rst:542 -msgid "Optional: All other :ref:`function attributes `." -msgstr "" - -#: library/annotationlib.rst:568 -msgid "This can then be called with:" -msgstr "" - -#: library/annotationlib.rst:576 -msgid "Or used as the annotate function for an object:" -msgstr "" - -#: library/annotationlib.rst:589 -msgid "Limitations of the ``STRING`` format" -msgstr "" - -#: library/annotationlib.rst:591 -msgid "" -"The :attr:`~Format.STRING` format is meant to approximate the source code of " -"the annotation, but the implementation strategy used means that it is not " -"always possible to recover the exact source code." -msgstr "" - -#: library/annotationlib.rst:595 -msgid "" -"First, the stringifier of course cannot recover any information that is not " -"present in the compiled code, including comments, whitespace, " -"parenthesization, and operations that get simplified by the compiler." -msgstr "" - -#: library/annotationlib.rst:599 -msgid "" -"Second, the stringifier can intercept almost all operations that involve " -"names looked up in some scope, but it cannot intercept operations that " -"operate fully on constants. As a corollary, this also means it is not safe " -"to request the ``STRING`` format on untrusted code: Python is powerful " -"enough that it is possible to achieve arbitrary code execution even with no " -"access to any globals or builtins. For example:" -msgstr "" - -#: library/annotationlib.rst:614 -msgid "" -"This particular example works as of the time of writing, but it relies on " -"implementation details and is not guaranteed to work in the future." -msgstr "" - -#: library/annotationlib.rst:617 -msgid "" -"Among the different kinds of expressions that exist in Python, as " -"represented by the :mod:`ast` module, some expressions are supported, " -"meaning that the ``STRING`` format can generally recover the original source " -"code; others are unsupported, meaning that they may result in incorrect " -"output or an error." -msgstr "" - -#: library/annotationlib.rst:622 -msgid "The following are supported (sometimes with caveats):" -msgstr "" - -#: library/annotationlib.rst:624 -msgid ":class:`ast.BinOp`" -msgstr "" - -#: library/annotationlib.rst:625 -msgid ":class:`ast.UnaryOp`" -msgstr "" - -#: library/annotationlib.rst:627 -msgid "" -":class:`ast.Invert` (``~``), :class:`ast.UAdd` (``+``), " -"and :class:`ast.USub` (``-``) are supported" -msgstr "" - -#: library/annotationlib.rst:628 -msgid ":class:`ast.Not` (``not``) is not supported" -msgstr "" - -#: library/annotationlib.rst:630 -msgid ":class:`ast.Dict` (except when using ``**`` unpacking)" -msgstr "" - -#: library/annotationlib.rst:631 -msgid ":class:`ast.Set`" -msgstr "" - -#: library/annotationlib.rst:632 -msgid ":class:`ast.Compare`" -msgstr "" - -#: library/annotationlib.rst:634 -msgid ":class:`ast.Eq` and :class:`ast.NotEq` are supported" -msgstr "" - -#: library/annotationlib.rst:635 -msgid "" -":class:`ast.Lt`, :class:`ast.LtE`, :class:`ast.Gt`, and :class:`ast.GtE` are " -"supported, but the operand may be flipped" -msgstr "" - -#: library/annotationlib.rst:636 -msgid "" -":class:`ast.Is`, :class:`ast.IsNot`, :class:`ast.In`, and :class:`ast.NotIn` " -"are not supported" -msgstr "" - -#: library/annotationlib.rst:638 -msgid ":class:`ast.Call` (except when using ``**`` unpacking)" -msgstr "" - -#: library/annotationlib.rst:639 -msgid "" -":class:`ast.Constant` (though not the exact representation of the constant; " -"for example, escape sequences in strings are lost; hexadecimal numbers are " -"converted to decimal)" -msgstr "" - -#: library/annotationlib.rst:641 -msgid ":class:`ast.Attribute` (assuming the value is not a constant)" -msgstr "" - -#: library/annotationlib.rst:642 -msgid ":class:`ast.Subscript` (assuming the value is not a constant)" -msgstr "" - -#: library/annotationlib.rst:643 -msgid ":class:`ast.Starred` (``*`` unpacking)" -msgstr "" - -#: library/annotationlib.rst:644 -msgid ":class:`ast.Name`" -msgstr "" - -#: library/annotationlib.rst:645 -msgid ":class:`ast.List`" -msgstr "" - -#: library/annotationlib.rst:646 -msgid ":class:`ast.Tuple`" -msgstr "" - -#: library/annotationlib.rst:647 -msgid ":class:`ast.Slice`" -msgstr "" - -#: library/annotationlib.rst:649 -msgid "" -"The following are unsupported, but throw an informative error when " -"encountered by the stringifier:" -msgstr "" - -#: library/annotationlib.rst:652 -msgid "" -":class:`ast.FormattedValue` (f-strings; error is not detected if conversion " -"specifiers like ``!r`` are used)" -msgstr "" - -#: library/annotationlib.rst:654 -msgid ":class:`ast.JoinedStr` (f-strings)" -msgstr "" - -#: library/annotationlib.rst:656 -msgid "The following are unsupported and result in incorrect output:" -msgstr "" - -#: library/annotationlib.rst:658 -msgid ":class:`ast.BoolOp` (``and`` and ``or``)" -msgstr "" - -#: library/annotationlib.rst:659 -msgid ":class:`ast.IfExp`" -msgstr "" - -#: library/annotationlib.rst:660 -msgid ":class:`ast.Lambda`" -msgstr "" - -#: library/annotationlib.rst:661 -msgid ":class:`ast.ListComp`" -msgstr "" - -#: library/annotationlib.rst:662 -msgid ":class:`ast.SetComp`" -msgstr "" - -#: library/annotationlib.rst:663 -msgid ":class:`ast.DictComp`" -msgstr "" - -#: library/annotationlib.rst:664 -msgid ":class:`ast.GeneratorExp`" -msgstr "" - -#: library/annotationlib.rst:666 -msgid "" -"The following are disallowed in annotation scopes and therefore not relevant:" -msgstr "" - -#: library/annotationlib.rst:668 -msgid ":class:`ast.NamedExpr` (``:=``)" -msgstr "" - -#: library/annotationlib.rst:669 -msgid ":class:`ast.Await`" -msgstr "" - -#: library/annotationlib.rst:670 -msgid ":class:`ast.Yield`" -msgstr "" - -#: library/annotationlib.rst:671 -msgid ":class:`ast.YieldFrom`" -msgstr "" - -#: library/annotationlib.rst:675 -msgid "Limitations of the ``FORWARDREF`` format" -msgstr "" - -#: library/annotationlib.rst:677 -msgid "" -"The :attr:`~Format.FORWARDREF` format aims to produce real values as much as " -"possible, with anything that cannot be resolved replaced " -"with :class:`ForwardRef` objects. It is affected by broadly the same " -"Limitations as the :attr:`~Format.STRING` format: annotations that perform " -"operations on literals or that use unsupported expression types may raise " -"exceptions when evaluated using the :attr:`~Format.FORWARDREF` format." -msgstr "" - -#: library/annotationlib.rst:684 -msgid "Below are a few examples of the behavior with unsupported expressions:" -msgstr "" - -#: library/annotationlib.rst:705 -msgid "Security implications of introspecting annotations" -msgstr "" - -#: library/annotationlib.rst:707 -msgid "" -"Much of the functionality in this module involves executing code related to " -"annotations, which can then do arbitrary things. For " -"example, :func:`get_annotations` may call an arbitrary :term:`annotate " -"function`, and :meth:`ForwardRef.evaluate` may call :func:`eval` on an " -"arbitrary string. Code contained in an annotation might make arbitrary " -"system calls, enter an infinite loop, or perform any other operation. This " -"is also true for any access of the :attr:`~object.__annotations__` " -"attribute, and for various functions in the :mod:`typing` module that work " -"with annotations, such as :func:`typing.get_type_hints`." -msgstr "" - -#: library/annotationlib.rst:716 -msgid "" -"Any security issue arising from this also applies immediately after " -"importing code that may contain untrusted annotations: importing code can " -"always cause arbitrary operations to be performed. However, it is unsafe to " -"accept strings or other input from an untrusted source and pass them to any " -"of the APIs for introspecting annotations, for example by editing an " -"``__annotations__`` dictionary or directly creating a :class:`ForwardRef` " -"object." -msgstr "" diff --git a/library/archiving.po b/library/archiving.po deleted file mode 100644 index c4f8f26f7e..0000000000 --- a/library/archiving.po +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2018-07-27 23:01+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/archiving.rst:5 -msgid "Data Compression and Archiving" -msgstr "Compression de donnée et archivage" - -#: library/archiving.rst:7 -#, fuzzy -msgid "" -"The modules described in this chapter support data compression with the " -"zlib, gzip, bzip2, lzma, and zstd algorithms, and the creation of ZIP- and " -"tar-format archives. See also :ref:`archiving-operations` provided by " -"the :mod:`shutil` module." -msgstr "" -"Les modules documentés dans ce chapitre implémentent les algorithmes de " -"compression *zlib*, *gzip*, *bzip2* et *lzma*, ainsi que la création " -"d'archives *ZIP* et *tar*. Voir aussi :ref:`archiving-operations` fourni par " -"le module :mod:`shutil`." diff --git a/library/argparse.po b/library/argparse.po deleted file mode 100644 index 11b5da2cd5..0000000000 --- a/library/argparse.po +++ /dev/null @@ -1,3348 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-05-14 23:55+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/argparse.rst:2 -#, fuzzy -msgid "" -":mod:`!argparse` --- Parser for command-line options, arguments and " -"subcommands" -msgstr "" -":mod:`argparse` -- Analyseur d'arguments, d'options, et de sous-commandes de " -"ligne de commande" - -#: library/argparse.rst:9 -msgid "**Source code:** :source:`Lib/argparse.py`" -msgstr "**Code source:** :source:`Lib/argparse.py`" - -#: library/argparse.rst:13 -msgid "" -"While :mod:`!argparse` is the default recommended standard library module " -"for implementing basic command line applications, authors with more exacting " -"requirements for exactly how their command line applications behave may find " -"it doesn't provide the necessary level of control. Refer to :ref:`choosing-" -"an-argument-parser` for alternatives to consider when ``argparse`` doesn't " -"support behaviors that the application requires (such as entirely disabling " -"support for interspersed options and positional arguments, or accepting " -"option parameter values that start with ``-`` even when they correspond to " -"another defined option)." -msgstr "" - -#: library/argparse.rst:25 -msgid "Tutorial" -msgstr "Tutoriel" - -#: library/argparse.rst:27 -msgid "" -"This page contains the API reference information. For a more gentle " -"introduction to Python command-line parsing, have a look at " -"the :ref:`argparse tutorial `." -msgstr "" -"Cette page est la référence de l'API. Pour une introduction plus en douceur " -"à l'analyse des arguments de la ligne de commande, regardez :ref:`le " -"tutoriel argparse `." - -#: library/argparse.rst:31 -#, fuzzy -msgid "" -"The :mod:`!argparse` module makes it easy to write user-friendly command-" -"line interfaces. The program defines what arguments it requires, and :mod:`!" -"argparse` will figure out how to parse those out of :data:`sys.argv`. " -"The :mod:`!argparse` module also automatically generates help and usage " -"messages. The module will also issue errors when users give the program " -"invalid arguments." -msgstr "" -"Le module :mod:`argparse` facilite l'écriture d'interfaces en ligne de " -"commande agréables à l'emploi. Le programme définit les arguments requis " -"et :mod:`argparse` s'arrange pour analyser ceux provenant " -"de :data:`sys.argv`. Le module :mod:`argparse` génère aussi automatiquement " -"les messages d'aide, le mode d'emploi, et lève des erreurs lorsque les " -"utilisateurs fournissent des arguments invalides." - -#: library/argparse.rst:37 -#, fuzzy -msgid "" -"The :mod:`!argparse` module's support for command-line interfaces is built " -"around an instance of :class:`argparse.ArgumentParser`. It is a container " -"for argument specifications and has options that apply to the parser as " -"whole::" -msgstr "" -"L'interface en ligne de commande du module :mod:`argparse` est basée sur une " -"instance d':class:`argparse.ArgumentParser`. C'est un conteneur pour " -"spécifier les arguments possibles et il possède des options qui s'appliquent " -"à l'ensemble de l'analyseur ::" - -#: library/argparse.rst:46 -msgid "" -"The :meth:`ArgumentParser.add_argument` method attaches individual argument " -"specifications to the parser. It supports positional arguments, options " -"that accept values, and on/off flags::" -msgstr "" -"La méthode :meth:`ArgumentParser.add_argument` permet de définir les " -"arguments de l'analyseur. Ceux-ci peuvent être des arguments positionnels, " -"des arguments optionnels ou des drapeaux (qui sont alors traduits en valeurs " -"booléennes). Les arguments ont la possibilité d'être complétés par des " -"valeurs ::" - -#: library/argparse.rst:55 -msgid "" -"The :meth:`ArgumentParser.parse_args` method runs the parser and places the " -"extracted data in a :class:`argparse.Namespace` object::" -msgstr "" -"La méthode :meth:`ArgumentParser.parse_args` lance l'analyseur et stocke les " -"résultats dans un objet :class:`argparse.Namespace` ::" - -#: library/argparse.rst:62 -msgid "" -"If you're looking for a guide about how to upgrade :mod:`optparse` code " -"to :mod:`!argparse`, see :ref:`Upgrading Optparse Code `." -msgstr "" - -#: library/argparse.rst:66 -msgid "ArgumentParser objects" -msgstr "Objets ``ArgumentParser``" - -#: library/argparse.rst:76 -msgid "" -"Create a new :class:`ArgumentParser` object. All parameters should be passed " -"as keyword arguments. Each parameter has its own more detailed description " -"below, but in short they are:" -msgstr "" -"Crée un nouvel objet :class:`ArgumentParser`. Tous les paramètres doivent " -"être passés en arguments nommés. Chaque paramètre a sa propre description " -"détaillée ci-dessous, mais en résumé ils sont :" - -#: library/argparse.rst:80 -#, fuzzy -msgid "" -"prog_ - The name of the program (default: generated from the ``__main__`` " -"module attributes and ``sys.argv[0]``)" -msgstr "" -"prog_ – Nom du programme (par défaut : ``os.path.basename(sys.argv[0])``) ;" - -#: library/argparse.rst:83 -msgid "" -"usage_ - The string describing the program usage (default: generated from " -"arguments added to parser)" -msgstr "" -"usage_ – Chaîne décrivant l'utilisation du programme (par défaut : générée à " -"partir des arguments ajoutés à l'analyseur) ;" - -#: library/argparse.rst:86 -msgid "" -"description_ - Text to display before the argument help (by default, no text)" -msgstr "" -"description_ – Texte à afficher au dessus de l'aide pour les arguments (vide " -"par défaut) ;" - -#: library/argparse.rst:89 -msgid "epilog_ - Text to display after the argument help (by default, no text)" -msgstr "" -"epilog_ – Texte à afficher après l'aide des arguments (vide par défaut) ;" - -#: library/argparse.rst:91 -msgid "" -"parents_ - A list of :class:`ArgumentParser` objects whose arguments should " -"also be included" -msgstr "" -"parents_ – Liste d'objets :class:`ArgumentParser` contenant des arguments " -"qui devraient aussi être inclus ;" - -#: library/argparse.rst:94 -msgid "formatter_class_ - A class for customizing the help output" -msgstr "" -"formatter_class_ – Classe pour personnaliser la sortie du message d'aide ;" - -#: library/argparse.rst:96 -msgid "" -"prefix_chars_ - The set of characters that prefix optional arguments " -"(default: '-')" -msgstr "" -"prefix_chars_ – Jeu de caractères qui précède les arguments optionnels (par " -"défaut : ``'-'``) ;" - -#: library/argparse.rst:99 -msgid "" -"fromfile_prefix_chars_ - The set of characters that prefix files from which " -"additional arguments should be read (default: ``None``)" -msgstr "" -"fromfile_prefix_chars_ – Jeu de caractères qui précède les fichiers d'où des " -"arguments additionnels doivent être lus (par défaut : ``None``) ;" - -#: library/argparse.rst:102 -msgid "" -"argument_default_ - The global default value for arguments (default: " -"``None``)" -msgstr "" -"argument_default_ – Valeur globale par défaut pour les arguments (par " -"défaut : ``None``) ;" - -#: library/argparse.rst:105 -msgid "" -"conflict_handler_ - The strategy for resolving conflicting optionals " -"(usually unnecessary)" -msgstr "" -"conflict_handler_ – Stratégie pour résoudre les conflits entre les arguments " -"optionnels (non-nécessaire en général) ;" - -#: library/argparse.rst:108 -msgid "" -"add_help_ - Add a ``-h/--help`` option to the parser (default: ``True``)" -msgstr "" -"add_help_ – Ajoute une option d'aide ``-h/--help`` à l'analyseur (par " -"défaut : ``True``) ;" - -#: library/argparse.rst:110 -#, fuzzy -msgid "" -"allow_abbrev_ - Allows long options to be abbreviated if the abbreviation is " -"unambiguous (default: ``True``)" -msgstr "" -"allow_abbrev_ – Permet l'acceptation d'abréviations non-ambigües pour les " -"options longues (par défaut : ``True``) ;" - -#: library/argparse.rst:113 -#, fuzzy -msgid "" -"exit_on_error_ - Determines whether or not :class:`!ArgumentParser` exits " -"with error info when an error occurs. (default: ``True``)" -msgstr "" -"exit_on_error_ – Détermine si l'objet ``ArgumentParser`` termine l'exécution " -"avec un message d'erreur quand une erreur est rencontrée (par défaut : " -"``True``)." - -#: library/argparse.rst:116 -msgid "" -"suggest_on_error_ - Enables suggestions for mistyped argument choices and " -"subparser names (default: ``True``)" -msgstr "" - -#: library/argparse.rst:119 -msgid "color_ - Allow color output (default: ``True``)" -msgstr "" - -#: library/argparse.rst:121 -msgid "*allow_abbrev* parameter was added." -msgstr "Le paramètre *allow_abbrev* est ajouté." - -#: library/argparse.rst:124 -msgid "" -"In previous versions, *allow_abbrev* also disabled grouping of short flags " -"such as ``-vv`` to mean ``-v -v``." -msgstr "" -"Dans les versions précédentes, *allow_abbrev* désactivait aussi le " -"regroupement de plusieurs options courtes telles que ``-vv`` pour signifier " -"``-v -v``." - -#: library/argparse.rst:128 -msgid "*exit_on_error* parameter was added." -msgstr "Le paramètre *exit_on_error* est ajouté." - -#: library/argparse.rst:131 -#, fuzzy -msgid "*suggest_on_error* and *color* parameters were added." -msgstr "Le paramètre *exit_on_error* est ajouté." - -#: library/argparse.rst:134 -msgid "*suggest_on_error* default changed to ``True``." -msgstr "" - -#: library/argparse.rst:700 -msgid "The following sections describe how each of these are used." -msgstr "" -"Les sections suivantes décrivent comment chacune de ces options sont " -"utilisées." - -#: library/argparse.rst:143 -msgid "prog" -msgstr "Le paramètre *prog*" - -#: library/argparse.rst:146 -#, fuzzy -msgid "" -"By default, :class:`ArgumentParser` calculates the name of the program to " -"display in help messages depending on the way the Python interpreter was run:" -msgstr "" -"Par défaut, l'objet :class:`ArgumentParser` construit le message relatif à " -"l'utilisation à partir des arguments qu'il contient ::" - -#: library/argparse.rst:149 -msgid "" -"The :func:`base name ` of ``sys.argv[0]`` if a file was " -"passed as argument." -msgstr "" - -#: library/argparse.rst:151 -msgid "" -"The Python interpreter name followed by ``sys.argv[0]`` if a directory or a " -"zipfile was passed as argument." -msgstr "" - -#: library/argparse.rst:153 -msgid "" -"The Python interpreter name followed by ``-m`` followed by the module or " -"package name if the :option:`-m` option was used." -msgstr "" - -#: library/argparse.rst:156 -msgid "" -"This default is almost always desirable because it will make the help " -"messages match the string that was used to invoke the program on the command " -"line. However, to change this default behavior, another value can be " -"supplied using the ``prog=`` argument to :class:`ArgumentParser`::" -msgstr "" - -#: library/argparse.rst:168 -#, fuzzy -msgid "" -"Note that the program name, whether determined from ``sys.argv[0]``, from " -"the ``__main__`` module attributes or from the ``prog=`` argument, is " -"available to help messages using the ``%(prog)s`` format specifier." -msgstr "" -"Prenez note que le nom du programme, peu importe s'il provient de " -"``sys.argv[0]`` ou de l'argument ``prog=``, est accessible aux messages " -"d'aide grâce au spécificateur de formatage ``%(prog)s``." - -#: library/argparse.rst:184 -msgid "" -"The default ``prog`` value now reflects how ``__main__`` was actually " -"executed, rather than always being ``os.path.basename(sys.argv[0])``." -msgstr "" - -#: library/argparse.rst:189 -msgid "usage" -msgstr "Le paramètre *usage*" - -#: library/argparse.rst:191 -#, fuzzy -msgid "" -"By default, :class:`ArgumentParser` calculates the usage message from the " -"arguments it contains. The default message can be overridden with the " -"``usage=`` keyword argument::" -msgstr "" -"Par défaut, l'objet :class:`ArgumentParser` construit le message relatif à " -"l'utilisation à partir des arguments qu'il contient ::" - -#: library/argparse.rst:208 -msgid "" -"The ``%(prog)s`` format specifier is available to fill in the program name " -"in your usage messages." -msgstr "" -"Le spécificateur de formatage ``%(prog)s`` est disponible pour insérer le " -"nom du programme dans vos messages d'utilisation." - -#: library/argparse.rst:211 -msgid "" -"When a custom usage message is specified for the main parser, you may also " -"want to consider passing the ``prog`` argument " -"to :meth:`~ArgumentParser.add_subparsers` or the ``prog`` and the ``usage`` " -"arguments to :meth:`~_SubParsersAction.add_parser`, to ensure consistent " -"command prefixes and usage information across subparsers." -msgstr "" - -#: library/argparse.rst:221 -msgid "description" -msgstr "Le paramètre *description*" - -#: library/argparse.rst:223 -#, fuzzy -msgid "" -"Most calls to the :class:`ArgumentParser` constructor will use the " -"``description=`` keyword argument. This argument gives a brief description " -"of what the program does and how it works. In help messages, the " -"description is displayed between the command-line usage string and the help " -"messages for the various arguments." -msgstr "" -"La plupart des appels au constructeur d':class:`ArgumentParser` utilisent " -"l'argument nommé ``description=``. Cet argument donne une brève description " -"de ce que fait le programme et de comment il fonctionne. Dans les messages " -"d'aide, cette description est affichée entre le prototype de ligne de " -"commande et les messages d'aide des arguments ::" - -#: library/argparse.rst:229 -msgid "" -"By default, the description will be line-wrapped so that it fits within the " -"given space. To change this behavior, see the formatter_class_ argument." -msgstr "" -"Par défaut, la description est sujette au retour à la ligne automatique pour " -"se conformer à l'espace disponible. Pour changer ce comportement, voyez " -"l'argument formatter_class_." - -#: library/argparse.rst:234 -msgid "epilog" -msgstr "Le paramètre *epilog*" - -#: library/argparse.rst:236 -msgid "" -"Some programs like to display additional description of the program after " -"the description of the arguments. Such text can be specified using the " -"``epilog=`` argument to :class:`ArgumentParser`::" -msgstr "" -"Certains programmes aiment afficher un texte supplémentaire après la " -"description des arguments. Un tel texte peut être spécifié grâce à " -"l'argument ``epilog=`` du constructeur d':class:`ArgumentParser` ::" - -#: library/argparse.rst:253 -msgid "" -"As with the description_ argument, the ``epilog=`` text is by default line-" -"wrapped, but this behavior can be adjusted with the formatter_class_ " -"argument to :class:`ArgumentParser`." -msgstr "" -"De même que pour l'argument description_, le texte passé à ``epilog=`` est " -"sujet au retour à la ligne automatique. Ce comportement peut être ajusté " -"grâce à l'argument formatter_class_ du constructeur " -"d':class:`ArgumentParser`." - -#: library/argparse.rst:259 -msgid "parents" -msgstr "Le paramètre *parents*" - -#: library/argparse.rst:261 -msgid "" -"Sometimes, several parsers share a common set of arguments. Rather than " -"repeating the definitions of these arguments, a single parser with all the " -"shared arguments and passed to ``parents=`` argument " -"to :class:`ArgumentParser` can be used. The ``parents=`` argument takes a " -"list of :class:`ArgumentParser` objects, collects all the positional and " -"optional actions from them, and adds these actions to " -"the :class:`ArgumentParser` object being constructed::" -msgstr "" -"Parfois, plusieurs analyseurs partagent un jeu commun d'arguments. Plutôt " -"que de répéter les définitions de ces arguments, un analyseur commun qui " -"contient tous les arguments partagés peut être utilisé, puis passé à " -"l'argument ``parents=`` du constructeur d':class:`ArgumentParser`. " -"L'argument ``parents=`` accepte une liste d'objets :class:`ArgumentParser`, " -"accumule toutes les actions positionnelles et optionnelles de ces objets, " -"puis les ajoute à l'instance d':class:`ArgumentParser` en cours de " -"création ::" - -#: library/argparse.rst:281 -msgid "" -"Note that most parent parsers will specify ``add_help=False``. Otherwise, " -"the :class:`ArgumentParser` will see two ``-h/--help`` options (one in the " -"parent and one in the child) and raise an error." -msgstr "" -"Prenez note que la majorité des analyseurs parents doivent définir " -"``add_help=False``. Autrement, le constructeur d':class:`ArgumentParser` va " -"voir plus d'une option ``-h/--help`` (une pour le parent et une pour " -"l'instance en cours de création) et va lever une erreur." - -#: library/argparse.rst:286 -msgid "" -"You must fully initialize the parsers before passing them via ``parents=``. " -"If you change the parent parsers after the child parser, those changes will " -"not be reflected in the child." -msgstr "" -"Vous devez initialiser complètement les analyseurs avant de les passer à " -"``parents=``. Si vous changez les analyseurs parents après la création de " -"l'analyseur enfant, ces changements ne sont pas répercutés sur l'enfant." - -#: library/argparse.rst:294 -msgid "formatter_class" -msgstr "Le paramètre *formatter_class*" - -#: library/argparse.rst:296 -msgid "" -":class:`ArgumentParser` objects allow the help formatting to be customized " -"by specifying an alternate formatting class. Currently, there are four such " -"classes:" -msgstr "" -"Les objets :class:`ArgumentParser` permettent la personnalisation de la mise " -"en page des messages d'aide en spécifiant une classe de formatage " -"alternative. Il y a actuellement quatre classes de formatage :" - -#: library/argparse.rst:305 -msgid "" -":class:`RawDescriptionHelpFormatter` and :class:`RawTextHelpFormatter` give " -"more control over how textual descriptions are displayed. By " -"default, :class:`ArgumentParser` objects line-wrap the description_ and " -"epilog_ texts in command-line help messages::" -msgstr "" -":class:`RawDescriptionHelpFormatter` et :class:`RawTextHelpFormatter` vous " -"donnent plus de contrôle sur comment les descriptions textuelles sont " -"affichées. Par défaut, les contenus de description_ et epilog_ des " -"objets :class:`ArgumentParser` font l'objet du retour à la ligne automatique " -"dans les messages d'aide ::" - -#: library/argparse.rst:330 -msgid "" -"Passing :class:`RawDescriptionHelpFormatter` as ``formatter_class=`` " -"indicates that description_ and epilog_ are already correctly formatted and " -"should not be line-wrapped::" -msgstr "" -"Passer :class:`RawDescriptionHelpFormatter` à ``formatter_class=`` indique " -"que les textes de description_ et d'epilog_ ont déjà été formatés " -"correctement et qu'ils ne doivent pas faire l'objet d'un retour à la ligne " -"automatique ::" - -#: library/argparse.rst:356 -#, fuzzy -msgid "" -":class:`RawTextHelpFormatter` maintains whitespace for all sorts of help " -"text, including argument descriptions. However, multiple newlines are " -"replaced with one. If you wish to preserve multiple blank lines, add spaces " -"between the newlines." -msgstr "" -":class:`RawTextHelpFormatter` conserve les espaces pour toutes les " -"catégories de textes d'aide, y compris les descriptions des arguments. Notez " -"bien que plusieurs retours à la ligne consécutifs sont remplacés par un " -"seul. Si vous voulez garder plusieurs sauts de ligne, ajoutez des espaces " -"entre les caractères de changement de ligne." - -#: library/argparse.rst:361 -msgid "" -":class:`ArgumentDefaultsHelpFormatter` automatically adds information about " -"default values to each of the argument help messages::" -msgstr "" -":class:`ArgumentDefaultsHelpFormatter` ajoute automatiquement l'information " -"sur les valeurs par défaut aux messages d'aide de tous les arguments ::" - -#: library/argparse.rst:379 -msgid "" -":class:`MetavarTypeHelpFormatter` uses the name of the type_ argument for " -"each argument as the display name for its values (rather than using the " -"dest_ as the regular formatter does)::" -msgstr "" -":class:`MetavarTypeHelpFormatter` utilise le nom du type_ de l'argument pour " -"chacun des arguments comme nom d'affichage pour leurs valeurs (contrairement " -"au formateur standard qui utilise dest_) ::" - -#: library/argparse.rst:400 -msgid "prefix_chars" -msgstr "Le paramètre *prefix_chars*" - -#: library/argparse.rst:402 -#, fuzzy -msgid "" -"Most command-line options will use ``-`` as the prefix, e.g. ``-f/--foo``. " -"Parsers that need to support different or additional prefix characters, e.g. " -"for options like ``+f`` or ``/foo``, may specify them using the " -"``prefix_chars=`` argument to the :class:`ArgumentParser` constructor::" -msgstr "" -"La majorité des options sur la ligne de commande utilisent ``-`` comme " -"préfixe (par exemple : ``-f/--foo``). Pour les analyseurs qui doivent " -"accepter des caractères préfixes autres ou additionnels (par exemple pour " -"les options ``+f`` ou ``/foo``), vous devez les préciser en utilisant " -"l'argument ``prefix_chars=`` du constructeur d'``ArgumentParser`` ::" - -#: library/argparse.rst:414 -msgid "" -"The ``prefix_chars=`` argument defaults to ``'-'``. Supplying a set of " -"characters that does not include ``-`` will cause ``-f/--foo`` options to be " -"disallowed." -msgstr "" -"La valeur par défaut de ``prefix_chars=`` est ``'-'``. Passer un jeu de " -"caractères qui n'inclut pas ``-`` provoquera le refus des options comme ``-" -"f/--foo``." - -#: library/argparse.rst:420 -msgid "fromfile_prefix_chars" -msgstr "Le paramètre *fromfile_prefix_chars*" - -#: library/argparse.rst:422 -msgid "" -"Sometimes, when dealing with a particularly long argument list, it may make " -"sense to keep the list of arguments in a file rather than typing it out at " -"the command line. If the ``fromfile_prefix_chars=`` argument is given to " -"the :class:`ArgumentParser` constructor, then arguments that start with any " -"of the specified characters will be treated as files, and will be replaced " -"by the arguments they contain. For example::" -msgstr "" -"Parfois, par exemple quand on traite une liste d'arguments particulièrement " -"longue, il est logique de stocker la liste d'arguments dans un fichier " -"plutôt que de la saisir sur la ligne de commande. Si un jeu de caractères " -"est passé à l'argument ``fromfile_prefix_chars=`` du constructeur " -"de :class:`ArgumentParser`, alors les arguments qui commencent par l'un des " -"caractères spécifiés sont traités comme des fichiers et sont remplacés par " -"les arguments contenus dans ces fichiers. Par exemple ::" - -#: library/argparse.rst:437 -#, fuzzy -msgid "" -"Arguments read from a file must be one per line by default (but see " -"also :meth:`~ArgumentParser.convert_arg_line_to_args`) and are treated as if " -"they were in the same place as the original file referencing argument on the " -"command line. So in the example above, the expression ``['-f', 'foo', " -"'@args.txt']`` is considered equivalent to the expression ``['-f', 'foo', '-" -"f', 'bar']``." -msgstr "" -"Par défaut, les arguments lus à partir d'un fichier doivent être chacun sur " -"une nouvelle ligne (voir " -"aussi :meth:`~ArgumentParser.convert_arg_line_to_args`) et ils sont traités " -"comme s'ils étaient au même emplacement que le fichier original référençant " -"les arguments de la ligne de commande. Ainsi dans l'exemple ci-dessus, " -"l'expression ``['-f', 'foo', '@args.txt']`` est équivalente à l'expression " -"``['-f', 'foo', '-f', 'bar']``." - -#: library/argparse.rst:445 -msgid "" -"Empty lines are treated as empty strings (``''``), which are allowed as " -"values but not as arguments. Empty lines that are read as arguments will " -"result in an \"unrecognized arguments\" error." -msgstr "" - -#: library/argparse.rst:449 -msgid "" -":class:`ArgumentParser` uses :term:`filesystem encoding and error handler` " -"to read the file containing arguments." -msgstr "" - -#: library/argparse.rst:452 -msgid "" -"The ``fromfile_prefix_chars=`` argument defaults to ``None``, meaning that " -"arguments will never be treated as file references." -msgstr "" -"Par défaut, l'argument ``fromfile_prefix_chars=`` est ``None``, ce qui " -"signifie que les arguments ne sont pas traités en tant que références à des " -"fichiers." - -#: library/argparse.rst:455 -msgid "" -":class:`ArgumentParser` changed encoding and errors to read arguments files " -"from default (e.g. :func:`locale.getpreferredencoding(False) " -"` and ``\"strict\"``) to the :term:`filesystem " -"encoding and error handler`. Arguments file should be encoded in UTF-8 " -"instead of ANSI Codepage on Windows." -msgstr "" - -#: library/argparse.rst:463 -msgid "argument_default" -msgstr "Le paramètre *argument_default*" - -#: library/argparse.rst:465 -msgid "" -"Generally, argument defaults are specified either by passing a default " -"to :meth:`~ArgumentParser.add_argument` or by calling " -"the :meth:`~ArgumentParser.set_defaults` methods with a specific set of name-" -"value pairs. Sometimes however, it may be useful to specify a single parser-" -"wide default for arguments. This can be accomplished by passing the " -"``argument_default=`` keyword argument to :class:`ArgumentParser`. For " -"example, to globally suppress attribute creation " -"on :meth:`~ArgumentParser.parse_args` calls, we supply " -"``argument_default=SUPPRESS``::" -msgstr "" -"Généralement, les valeurs par défaut des arguments sont définies soit en " -"passant la valeur désirée à :meth:`~ArgumentParser.add_argument` soit par un " -"appel à la méthode :meth:`~ArgumentParser.set_defaults`. Cette méthode " -"accepte un ensemble de paires nom-valeur. Il est parfois pertinent de " -"configurer une valeur par défaut pour tous les arguments d'un analyseur. On " -"peut activer ce comportement en passant la valeur désirée à l'argument nommé " -"``argument_default=`` du constructeur de :class:`ArgumentParser`. Par " -"exemple, pour supprimer globalement la création d'attributs pendant l'appel " -"de :meth:`~ArgumentParser.parse_args`, on fournit " -"``argument_default=SUPPRESS`` ::" - -#: library/argparse.rst:485 -msgid "allow_abbrev" -msgstr "Le paramètre *allow_abbrev*" - -#: library/argparse.rst:487 -msgid "" -"Normally, when you pass an argument list to " -"the :meth:`~ArgumentParser.parse_args` method of an :class:`ArgumentParser`, " -"it :ref:`recognizes abbreviations ` of long options." -msgstr "" -"En temps normal, lorsque vous passez une liste d'arguments à la " -"méthode :meth:`~ArgumentParser.parse_args` " -"d':class:`ArgumentParser` :ref:`elle accepte les abréviations ` des options longues." - -#: library/argparse.rst:491 -msgid "This feature can be disabled by setting ``allow_abbrev`` to ``False``::" -msgstr "" -"Cette fonctionnalité peut être désactivée en passant ``False`` à " -"``allow_abbrev`` ::" - -#: library/argparse.rst:504 -msgid "conflict_handler" -msgstr "Le paramètre *conflict_handler*" - -#: library/argparse.rst:506 -msgid "" -":class:`ArgumentParser` objects do not allow two actions with the same " -"option string. By default, :class:`ArgumentParser` objects raise an " -"exception if an attempt is made to create an argument with an option string " -"that is already in use::" -msgstr "" -"Les objets :class:`ArgumentParser` ne peuvent pas avoir plus d'une option " -"avec la même chaîne d'option. Par défaut, les objets :class:`ArgumentParser` " -"lèvent une exception si on essaie de créer un argument avec une chaîne " -"d'option qui est déjà utilisée ::" - -#: library/argparse.rst:518 -msgid "" -"Sometimes (e.g. when using parents_) it may be useful to simply override any " -"older arguments with the same option string. To get this behavior, the " -"value ``'resolve'`` can be supplied to the ``conflict_handler=`` argument " -"of :class:`ArgumentParser`::" -msgstr "" -"Parfois, par exemple si on utilise des analyseurs parents_, il est " -"souhaitable de surcharger les anciens arguments qui partagent la même chaîne " -"d'option. Pour obtenir ce comportement, vous devez passer ``'resolve'`` à " -"l'argument ``conflict_handler=`` du constructeur d':class:`ArgumentParser` ::" - -#: library/argparse.rst:534 -msgid "" -"Note that :class:`ArgumentParser` objects only remove an action if all of " -"its option strings are overridden. So, in the example above, the old ``-f/--" -"foo`` action is retained as the ``-f`` action, because only the ``--foo`` " -"option string was overridden." -msgstr "" -"Prenez note que les objets :class:`ArgumentParser` n'enlèvent une action que " -"si toutes ses chaînes d'options sont surchargées. Ainsi dans l'exemple ci-" -"dessus, l'action ``-f/--foo`` du parent est conservée comme l'action ``-f`` " -"puisque ``--foo`` est la seule chaîne d'options qui a été surchargée." - -#: library/argparse.rst:541 -msgid "add_help" -msgstr "Le paramètre *add_help*" - -#: library/argparse.rst:543 -#, fuzzy -msgid "" -"By default, :class:`ArgumentParser` objects add an option which simply " -"displays the parser's help message. If ``-h`` or ``--help`` is supplied at " -"the command line, the :class:`!ArgumentParser` help will be printed." -msgstr "" -"Par défaut, les objets ``ArgumentParser`` ajoutent une option qui offre " -"l'affichage du message d'aide de l'analyseur. Par exemple, prenons le " -"fichier ``myprogram.py`` qui contient le code suivant ::" - -#: library/argparse.rst:547 -msgid "" -"Occasionally, it may be useful to disable the addition of this help option. " -"This can be achieved by passing ``False`` as the ``add_help=`` argument " -"to :class:`ArgumentParser`::" -msgstr "" -"Il est parfois utile de désactiver l'ajout de cette option d'aide. Pour ce " -"faire, vous devez passer ``False`` à l'argument ``add_help=`` du " -"constructeur d':class:`ArgumentParser` ::" - -#: library/argparse.rst:559 -msgid "" -"The help option is typically ``-h/--help``. The exception to this is if the " -"``prefix_chars=`` is specified and does not include ``-``, in which case ``-" -"h`` and ``--help`` are not valid options. In this case, the first character " -"in ``prefix_chars`` is used to prefix the help options::" -msgstr "" -"En général, l'option d'aide est ``-h/--help``. L'exception à cette règle est " -"quand une valeur est passée à ``prefix_chars=`` et qu'elle n'inclue pas ``-" -"``, auquel cas, ``-h`` et ``--help`` ne sont pas des options valides. Dans " -"ce cas, le premier caractère de ``prefix_chars`` est utilisé comme préfixe " -"des options d'aide ::" - -#: library/argparse.rst:574 -msgid "exit_on_error" -msgstr "Le paramètre *exit_on_error*" - -#: library/argparse.rst:576 -#, fuzzy -msgid "" -"Normally, when you pass an invalid argument list to " -"the :meth:`~ArgumentParser.parse_args` method of an :class:`ArgumentParser`, " -"it will print a *message* to :data:`sys.stderr` and exit with a status code " -"of 2." -msgstr "" -"En général, quand vous passez une liste d'arguments dont au moins un est " -"invalide à la méthode :meth:`~ArgumentParser.parse_args` d'une instance " -"d':class:`ArgumentParser`, l'exécution se termine avec un message d'erreur." - -#: library/argparse.rst:580 -msgid "" -"If the user would like to catch errors manually, the feature can be enabled " -"by setting ``exit_on_error`` to ``False``::" -msgstr "" -"Si vous souhaitez intercepter les erreurs manuellement, la fonctionnalité " -"peut être activée en assignant ``False`` à ``exit_on_error`` ::" - -#: library/argparse.rst:596 -#, fuzzy -msgid "suggest_on_error" -msgstr "Le paramètre *exit_on_error*" - -#: library/argparse.rst:598 -msgid "" -"By default, when a user passes an invalid argument choice or subparser " -"name, :class:`ArgumentParser` will exit with error info and provide " -"suggestions for mistyped arguments. The error message will list the " -"permissible argument choices (if specified) or subparser names, along with a " -"\"maybe you meant\" suggestion if a close match is found. Note that this " -"only applies for arguments when the choices specified are strings::" -msgstr "" - -#: library/argparse.rst:611 -#, fuzzy -msgid "" -"You can disable suggestions by setting ``suggest_on_error`` to ``False``." -msgstr "" -"Cette fonctionnalité peut être désactivée en passant ``False`` à " -"``allow_abbrev`` ::" - -#: library/argparse.rst:614 -msgid "" -"Changed default value of ``suggest_on_error`` from ``False`` to ``True``." -msgstr "" - -#: library/argparse.rst:618 -msgid "color" -msgstr "*color*" - -#: library/argparse.rst:620 -msgid "" -"By default, the help message is printed in color using `ANSI escape " -"sequences `__. If you want " -"plain text help messages, you can disable this :ref:`in your local " -"environment `, or in the argument parser itself " -"by setting ``color`` to ``False``::" -msgstr "" - -#: library/argparse.rst:633 -msgid "" -"Note that when ``color=True``, colored output depends on both environment " -"variables and terminal capabilities. However, if ``color=False``, colored " -"output is always disabled, even if environment variables like " -"``FORCE_COLOR`` are set." -msgstr "" - -#: library/argparse.rst:640 -msgid "" -"To highlight inline code in your description, epilog, or argument ``help`` " -"text, you can use single or double backticks::" -msgstr "" - -#: library/argparse.rst:652 -msgid "" -"When colors are enabled, the text inside backticks will be displayed in a " -"distinct color to help examples stand out. When colors are disabled, " -"backticks are preserved as-is, which is readable in plain text." -msgstr "" - -#: library/argparse.rst:660 -msgid "The add_argument() method" -msgstr "La méthode *add_argument()*" - -#: library/argparse.rst:666 -msgid "" -"Define how a single command-line argument should be parsed. Each parameter " -"has its own more detailed description below, but in short they are:" -msgstr "" -"Définie comment une option de ligne de commande doit être analysée. Chacun " -"des paramètres est décrit plus en détails ci-bas, mais en résumé ils sont :" - -#: library/argparse.rst:669 -#, fuzzy -msgid "" -"`name or flags`_ - Either a name or a list of option strings, e.g. ``'foo'`` " -"or ``'-f', '--foo'``." -msgstr "" -"`name_or_flags`_ – Nom ou liste de chaînes d'options. Par exemple : ``foo`` " -"ou ``-f, --foo`` ;" - -#: library/argparse.rst:672 -msgid "" -"action_ - The basic type of action to be taken when this argument is " -"encountered at the command line." -msgstr "" -"action_ – Type élémentaire de l'action à entreprendre quand cet argument est " -"reconnu sur la ligne de commande ;" - -#: library/argparse.rst:675 -msgid "nargs_ - The number of command-line arguments that should be consumed." -msgstr "nargs_ – Nombre d'arguments de la ligne de commande à capturer ;" - -#: library/argparse.rst:677 -msgid "" -"const_ - A constant value required by some action_ and nargs_ selections." -msgstr "" -"const_ – Valeur constante requise par certains choix d'action_ et de nargs_ ;" - -#: library/argparse.rst:679 -msgid "" -"default_ - The value produced if the argument is absent from the command " -"line and if it is absent from the namespace object." -msgstr "" -"default_ – Valeur produite si l'argument est absent de la ligne de commande " -"et absent de l'objet ``namespace`` ;" - -#: library/argparse.rst:682 -msgid "" -"type_ - The type to which the command-line argument should be converted." -msgstr "" -"type_ – Type vers lequel l'argument sur la ligne de commande doit être " -"converti ;" - -#: library/argparse.rst:684 -msgid "choices_ - A sequence of the allowable values for the argument." -msgstr "choices_ – La séquence de valeurs autorisées pour cet argument ;" - -#: library/argparse.rst:686 -msgid "" -"required_ - Whether or not the command-line option may be omitted (optionals " -"only)." -msgstr "" -"required_ – ``True`` si l'option sur la ligne de commande est obligatoire " -"(ne s'applique qu'aux arguments optionnels) ;" - -#: library/argparse.rst:689 -msgid "help_ - A brief description of what the argument does." -msgstr "help_ – Brève description de ce que fait l'argument ;" - -#: library/argparse.rst:691 -msgid "metavar_ - A name for the argument in usage messages." -msgstr "metavar_ – Nom de l'argument dans les messages d'utilisations ;" - -#: library/argparse.rst:693 -msgid "" -"dest_ - The name of the attribute to be added to the object returned " -"by :meth:`parse_args`." -msgstr "" -"dest_ – Nom de l'attribut qui est ajouté à l'objet retourné " -"par :meth:`parse_args`." - -#: library/argparse.rst:696 -msgid "deprecated_ - Whether or not use of the argument is deprecated." -msgstr "" - -#: library/argparse.rst:698 -msgid "The method returns an :class:`Action` object representing the argument." -msgstr "" - -#: library/argparse.rst:706 -msgid "name or flags" -msgstr "Le paramètre *name_or_flags*" - -#: library/argparse.rst:708 -msgid "" -"The :meth:`~ArgumentParser.add_argument` method must know whether an " -"optional argument, like ``-f`` or ``--foo``, or a positional argument, like " -"a list of filenames, is expected. The first arguments passed " -"to :meth:`~ArgumentParser.add_argument` must therefore be either a series of " -"flags, or a simple argument name." -msgstr "" -"La méthode :meth:`~ArgumentParser.add_argument` doit savoir s'il s'agit d'un " -"argument optionnel (tel que ``-f`` ou ``--foo``) ou d'un argument " -"positionnel (tel qu'une liste de noms de fichiers) qui est attendu. Le " -"premier argument passé à :meth:`~ArgumentParser.add_argument` doit donc être " -"soit une série de drapeaux, soit le nom de l'argument." - -#: library/argparse.rst:714 -msgid "For example, an optional argument could be created like::" -msgstr "Par exemple, un argument optionnel est créé comme suit ::" - -#: library/argparse.rst:718 -msgid "while a positional argument could be created like::" -msgstr "alors qu'un argument positionnel est créé comme suit ::" - -#: library/argparse.rst:722 -msgid "" -"When :meth:`~ArgumentParser.parse_args` is called, optional arguments will " -"be identified by the ``-`` prefix, and the remaining arguments will be " -"assumed to be positional::" -msgstr "" -"Lors le l'appel de :meth:`~ArgumentParser.parse_args`, les arguments qui " -"commencent par le préfixe ``-`` sont présumés optionnels et tous les autres " -"sont présumés positionnels ::" - -#: library/argparse.rst:737 -msgid "" -"By default, :mod:`!argparse` automatically handles the internal naming and " -"display names of arguments, simplifying the process without requiring " -"additional configuration. As such, you do not need to specify the dest_ and " -"metavar_ parameters. For optional arguments, the dest_ parameter defaults to " -"the argument name, with underscores ``_`` replacing hyphens ``-``. The " -"metavar_ parameter defaults to the upper-cased name. For example::" -msgstr "" - -#: library/argparse.rst:760 -msgid "action" -msgstr "Le paramètre *action*" - -#: library/argparse.rst:762 -msgid "" -":class:`ArgumentParser` objects associate command-line arguments with " -"actions. These actions can do just about anything with the command-line " -"arguments associated with them, though most actions simply add an attribute " -"to the object returned by :meth:`~ArgumentParser.parse_args`. The " -"``action`` keyword argument specifies how the command-line arguments should " -"be handled. The supplied actions are:" -msgstr "" -"Les objets :class:`ArgumentParser` associent les arguments de la ligne de " -"commande avec des actions. Ces actions peuvent soumettre les arguments de la " -"ligne de commande auxquels elles sont associées à un traitement arbitraire, " -"mais la majorité des actions se contentent d'ajouter un attribut à l'objet " -"renvoyé par :meth:`~ArgumentParser.parse_args`. L'argument nommé ``action`` " -"indique comment l'argument de la ligne de commande est traité. Les actions " -"natives sont :" - -#: library/argparse.rst:768 -#, fuzzy -msgid "" -"``'store'`` - This just stores the argument's value. This is the default " -"action." -msgstr "" -"``'store'`` – Stocke la valeur de l'argument sans autre traitement. Ceci est " -"l'action par défaut. Par exemple ::" - -#: library/argparse.rst:771 -msgid "" -"``'store_const'`` - This stores the value specified by the const_ keyword " -"argument; note that the const_ keyword argument defaults to ``None``. The " -"``'store_const'`` action is most commonly used with optional arguments that " -"specify some sort of flag. For example::" -msgstr "" -"``'store_const'`` – Stocke la valeur passée à l'argument nommé const_. La " -"valeur par défaut de const_ est ``None``. L'action ``'store_const'`` est " -"généralement utilisée avec des arguments optionnels représentant un drapeau " -"ou une condition similaire. Par exemple ::" - -#: library/argparse.rst:781 -#, fuzzy -msgid "" -"``'store_true'`` and ``'store_false'`` - These are special cases of " -"``'store_const'`` that respectively store the values ``True`` and ``False`` " -"with default values of ``False`` and ``True``::" -msgstr "" -"``'store_true'`` et ``'store_false'`` – Ces actions sont des cas " -"particuliers de ``'store_const'`` pour lesquelles la valeur stockée est " -"``True`` et ``False``, respectivement. Aussi, ces actions ont comme valeur " -"par défaut ``False`` et ``True``, respectivement. Par exemple ::" - -#: library/argparse.rst:793 -#, fuzzy -msgid "" -"``'append'`` - This appends each argument value to a list. It is useful for " -"allowing an option to be specified multiple times. If the default value is a " -"non-empty list, the parsed value will start with the default list's elements " -"and any values from the command line will be appended after those default " -"values. Example usage::" -msgstr "" -"``'append'`` – Stocke une liste et ajoute la valeur de son argument à cette " -"liste. Il est donc généralement utile d'accepter la répétition de cet " -"argument. Si une valeur par défaut est précisée, alors cette valeur est " -"également présente dans la liste et précède les valeurs passées sur la ligne " -"de commande ::" - -#: library/argparse.rst:804 -#, fuzzy -msgid "" -"``'append_const'`` - This appends the value specified by the const_ keyword " -"argument to a list; note that the const_ keyword argument defaults to " -"``None``. The ``'append_const'`` action is typically useful when multiple " -"arguments need to store constants to the same list. For example::" -msgstr "" -"``'append_const'`` – Stocke une liste et ajoute la valeur de son argument " -"const_ à cette liste. Notez que la valeur par défaut de l'argument const_ " -"est ``None``. L'action ``'append_const'`` est pratique quand plusieurs " -"arguments ont besoin de stocker des constantes dans une seule liste. Par " -"exemple ::" - -#: library/argparse.rst:816 -msgid "" -"``'extend'`` - This appends each item from a multi-value argument to a list. " -"The ``'extend'`` action is typically used with the nargs_ keyword argument " -"value ``'+'`` or ``'*'``. Note that when nargs_ is ``None`` (the default) or " -"``'?'``, each character of the argument string will be appended to the list. " -"Example usage::" -msgstr "" - -#: library/argparse.rst:831 -#, fuzzy -msgid "" -"``'count'`` - This counts the number of times an argument occurs. For " -"example, this is useful for increasing verbosity levels::" -msgstr "" -"``'count'`` – Compte le nombre d'occurrences de l'argument nommé. Ceci est " -"pratique, par exemple, pour augmenter le niveau de verbosité ::" - -#: library/argparse.rst:839 -msgid "Note, the *default* will be ``None`` unless explicitly set to *0*." -msgstr "" -"Prenez note que la valeur de *default* est ``None`` à moins qu'elle soit " -"explicitement définie à ``0``." - -#: library/argparse.rst:841 -msgid "" -"``'help'`` - This prints a complete help message for all the options in the " -"current parser and then exits. By default a help action is automatically " -"added to the parser. See :class:`ArgumentParser` for details of how the " -"output is created." -msgstr "" -"``'help'`` – Affiche le message d'aide complet pour toutes les options de " -"l'analyseur puis termine l'exécution. Une action ``help`` est " -"automatiquement ajoutée à l'analyseur par défaut. " -"Consultez :class:`ArgumentParser` pour les détails de la création du contenu " -"de l'aide." - -#: library/argparse.rst:846 -msgid "" -"``'version'`` - This expects a ``version=`` keyword argument in " -"the :meth:`~ArgumentParser.add_argument` call, and prints version " -"information and exits when invoked::" -msgstr "" -"``'version'`` – Affiche la version du programme puis termine l'exécution. " -"Cette action requiert l'argument nommé ``version=`` dans l'appel " -"à :meth:`~ArgumentParser.add_argument` ::" - -#: library/argparse.rst:856 -#, fuzzy -msgid "" -"You may also specify an arbitrary action by passing an :class:`Action` " -"subclass (e.g. :class:`BooleanOptionalAction`) or other object that " -"implements the same interface. Only actions that consume command-line " -"arguments (e.g. ``'store'``, ``'append'``, ``'extend'``, or custom actions " -"with non-zero ``nargs``) can be used with positional arguments." -msgstr "" -"Vous pouvez aussi spécifier une action arbitraire en passant une sous-classe " -"d'``Action`` ou un objet qui implémente la même interface. La classe " -"``BooleanOptionalAction`` est disponible dans ``argparse`` et elle ajoute la " -"gestion des options booléennes telles que ``--foo`` et ``--no-foo`` ::" - -#: library/argparse.rst:862 -#, fuzzy -msgid "" -"The recommended way to create a custom action is to extend :class:`Action`, " -"overriding the :meth:`!__call__` method and optionally the :meth:`!__init__` " -"and :meth:`!format_usage` methods. You can also register custom actions " -"using the :meth:`~ArgumentParser.register` method and reference them by " -"their registered name." -msgstr "" -"La façon recommandée pour créer une action personnalisée est d'hériter " -"d':class:`Action` en surchargeant la méthode ``__call__``. Vous avez " -"également l'option de surcharger les méthodes ``__init__`` et " -"``format_usage``." - -#: library/argparse.rst:867 -msgid "An example of a custom action::" -msgstr "Un exemple d'action personnalisée ::" - -#: library/argparse.rst:887 -msgid "For more details, see :class:`Action`." -msgstr "Pour plus d'information, voir :class:`Action`." - -#: library/argparse.rst:893 -msgid "nargs" -msgstr "Le paramètre *nargs*" - -#: library/argparse.rst:895 -#, fuzzy -msgid "" -":class:`ArgumentParser` objects usually associate a single command-line " -"argument with a single action to be taken. The ``nargs`` keyword argument " -"associates a different number of command-line arguments with a single " -"action. See also :ref:`specifying-ambiguous-arguments`. The supported values " -"are:" -msgstr "" -"En général, les objets ``ArgumentParser`` associent un seul argument de la " -"ligne de commande à une seule action à entreprendre. L'argument nommé " -"``nargs`` associe un nombre différent d'arguments de la ligne de commande à " -"une action. Les valeurs reconnues sont :" - -#: library/argparse.rst:900 -msgid "" -"``N`` (an integer). ``N`` arguments from the command line will be gathered " -"together into a list. For example::" -msgstr "" -"``N`` (un entier). ``N`` arguments de la ligne de commande sont capturés " -"ensemble et stockés dans une liste. Par exemple ::" - -#: library/argparse.rst:909 -msgid "" -"Note that ``nargs=1`` produces a list of one item. This is different from " -"the default, in which the item is produced by itself." -msgstr "" -"Prenez note que ``nargs=1`` produit une liste avec un seul élément. Ceci est " -"différent du comportement par défaut qui produit l'élément directement " -"(comme un scalaire)." - -#: library/argparse.rst:914 -msgid "" -"``'?'``. One argument will be consumed from the command line if possible, " -"and produced as a single item. If no command-line argument is present, the " -"value from default_ will be produced. Note that for optional arguments, " -"there is an additional case - the option string is present but not followed " -"by a command-line argument. In this case the value from const_ will be " -"produced. Some examples to illustrate this::" -msgstr "" -"``'?'``. Un argument de la ligne de commande est capturé et produit " -"directement. Si aucun argument n'est présent sur la ligne de commande, la " -"valeur de default_ est produite. Prenez note que pour les arguments " -"optionnels, il est aussi possible que la chaîne d'option soit présente mais " -"qu'elle ne soit pas suivie d'un argument. Dans ce cas, la valeur de const_ " -"est produite. Voici quelques exemples pour illustrer ceci ::" - -#: library/argparse.rst:931 -msgid "" -"One of the more common uses of ``nargs='?'`` is to allow optional input and " -"output files::" -msgstr "" -"``nargs='?'`` est fréquemment utilisé pour accepter des fichiers d'entrée et " -"de sortie optionnels ::" - -#: library/argparse.rst:946 -msgid "" -"``'*'``. All command-line arguments present are gathered into a list. Note " -"that it generally doesn't make much sense to have more than one positional " -"argument with ``nargs='*'``, but multiple optional arguments with " -"``nargs='*'`` is possible. For example::" -msgstr "" -"``'*'``. Tous les arguments présents sur la ligne de commande sont capturés " -"dans une liste. Prenez note qu'il n'est pas logique d'avoir plus d'un " -"argument positionnel avec ``nargs='*'``, mais il est par contre possible " -"d'avoir plusieurs arguments optionnels qui spécifient ``nargs='*'``. Par " -"exemple ::" - -#: library/argparse.rst:960 -#, fuzzy -msgid "" -"``'+'``. Just like ``'*'``, all command-line arguments present are gathered " -"into a list. Additionally, an error message will be generated if there " -"wasn't at least one command-line argument present. For example::" -msgstr "" -"``'+'``. Comme pour ``'*'``, tous les arguments présents sur la ligne de " -"commande sont capturés dans une liste. De plus, un message d'erreur est " -"produit s'il n'y a pas au moins un argument présent sur la ligne de " -"commande. Par exemple ::" - -#: library/argparse.rst:972 -#, fuzzy -msgid "" -"If the ``nargs`` keyword argument is not provided, the number of arguments " -"consumed is determined by the action_. Generally this means a single " -"command-line argument will be consumed and a single item (not a list) will " -"be produced. Actions that do not consume command-line arguments (e.g. " -"``'store_const'``) set ``nargs=0``." -msgstr "" -"Si l'argument nommé ``nargs`` n'est pas fourni, le nombre d'arguments " -"capturés est déterminé par l'action_. En général, c'est un seul argument de " -"la ligne de commande qui est capturé et il est produit directement." - -#: library/argparse.rst:982 -msgid "const" -msgstr "Le paramètre *const*" - -#: library/argparse.rst:984 -msgid "" -"The ``const`` argument of :meth:`~ArgumentParser.add_argument` is used to " -"hold constant values that are not read from the command line but are " -"required for the various :class:`ArgumentParser` actions. The two most " -"common uses of it are:" -msgstr "" -"L'argument ``const`` d':meth:`~ArgumentParser.add_argument` est utilisé pour " -"stocker une constante qui n'est pas lue depuis la ligne de commande mais qui " -"est requise par certaines actions d':class:`ArgumentParser`. Les deux " -"utilisations les plus communes sont :" - -#: library/argparse.rst:988 -msgid "" -"When :meth:`~ArgumentParser.add_argument` is called with " -"``action='store_const'`` or ``action='append_const'``. These actions add " -"the ``const`` value to one of the attributes of the object returned " -"by :meth:`~ArgumentParser.parse_args`. See the action_ description for " -"examples. If ``const`` is not provided " -"to :meth:`~ArgumentParser.add_argument`, it will receive a default value of " -"``None``." -msgstr "" -"quand :meth:`~ArgumentParser.add_argument` est appelée avec " -"``action='store_const'`` ou ``action='append_const'``, ces actions ajoutent " -"la valeur de ``const`` à l'un des attributs de l'objet renvoyé " -"par :meth:`~ArgumentParser.parse_args`. Consultez la description d'action_ " -"pour voir quelques exemples. La valeur de ``const`` est ``None`` par défaut " -"pour :meth:`~ArgumentParser.add_argument` ;" - -# Nous sommes dans une énumération après un :, donc pas de majuscule et le -# paragraphe doit se terminer par ;. -#: library/argparse.rst:996 -#, fuzzy -msgid "" -"When :meth:`~ArgumentParser.add_argument` is called with option strings " -"(like ``-f`` or ``--foo``) and ``nargs='?'``. This creates an optional " -"argument that can be followed by zero or one command-line arguments. When " -"parsing the command line, if the option string is encountered with no " -"command-line argument following it, the value from ``const`` will be used. " -"See the nargs_ description for examples." -msgstr "" -"appeler la méthode :meth:`~ArgumentParser.add_argument` avec des chaînes " -"d'options (telles ``-f``, ``--foo`` ou avec ``nargs='?'``) crée un argument " -"optionnel auquel peut être attribué une valeur. Si celle-ci est omise, " -"l'analyseur prend ``None`` comme la valeur de ``const``. La description de " -"nargs_ offre quelques exemples." - -#: library/argparse.rst:1003 -msgid "" -"``const=None`` by default, including when ``action='append_const'`` or " -"``action='store_const'``." -msgstr "" -"``const=None`` par défaut, y compris avec ``action='append_const'`` ou " -"``action='store_const'``." - -#: library/argparse.rst:1010 -msgid "default" -msgstr "Le paramètre *default*" - -#: library/argparse.rst:1012 -msgid "" -"All optional arguments and some positional arguments may be omitted at the " -"command line. The ``default`` keyword argument " -"of :meth:`~ArgumentParser.add_argument`, whose value defaults to ``None``, " -"specifies what value should be used if the command-line argument is not " -"present. For optional arguments, the ``default`` value is used when the " -"option string was not present at the command line::" -msgstr "" -"Tous les arguments optionnels et certains arguments positionnels peuvent " -"être omis à la ligne de commande. L'argument nommé ``default`` de la " -"méthode :meth:`~ArgumentParser.add_argument` (qui vaut ``None`` par défaut), " -"indique quelle valeur est utilisée si l'argument est absent de la ligne de " -"commande. Pour les arguments optionnels, la valeur de ``default`` est " -"utilisée si la chaîne d'option n'est pas présente sur la ligne de commande ::" - -#: library/argparse.rst:1026 -#, fuzzy -msgid "" -"If the target namespace already has an attribute set, the action *default* " -"will not overwrite it::" -msgstr "" -"Si l'objet ``namespace`` cible a déjà un attribut assigné, l'action " -"*default* ne l'écrase pas ::" - -#: library/argparse.rst:1034 -msgid "" -"If the ``default`` value is a string, the parser parses the value as if it " -"were a command-line argument. In particular, the parser applies any type_ " -"conversion argument, if provided, before setting the attribute on " -"the :class:`Namespace` return value. Otherwise, the parser uses the value " -"as is::" -msgstr "" -"Si la valeur de ``default`` est une chaîne, l'analyseur analyse cette valeur " -"comme si c'était un argument de la ligne de commande. En particulier, " -"l'analyseur applique la conversion définie par l'argument type_ (si elle est " -"fournie) avant d'affecter l'attribut à l'objet :class:`Namespace` renvoyé. " -"Autrement, l'analyseur utilise la valeur telle qu'elle ::" - -#: library/argparse.rst:1045 -msgid "" -"For positional arguments with nargs_ equal to ``?`` or ``*``, the " -"``default`` value is used when no command-line argument was present::" -msgstr "" -"Pour les arguments positionnels pour lesquels nargs_ est ``?`` ou ``*``, la " -"valeur de ``default`` est utilisée quand l'argument est absent de la ligne " -"de commande ::" - -#: library/argparse.rst:1055 -msgid "" -"For required_ arguments, the ``default`` value is ignored. For example, this " -"applies to positional arguments with nargs_ values other than ``?`` or " -"``*``, or optional arguments marked as ``required=True``." -msgstr "" - -#: library/argparse.rst:1059 -msgid "" -"Providing ``default=argparse.SUPPRESS`` causes no attribute to be added if " -"the command-line argument was not present::" -msgstr "" -"Si vous passez ``default=argparse.SUPPRESS``, aucun attribut n'est ajouté à " -"l'objet ``Namespace`` quand l'argument est absent de la ligne de commande ::" - -#: library/argparse.rst:1073 -msgid "type" -msgstr "Le paramètre *type*" - -#: library/argparse.rst:1075 -msgid "" -"By default, the parser reads command-line arguments in as simple strings. " -"However, quite often the command-line string should instead be interpreted " -"as another type, such as a :class:`float` or :class:`int`. The ``type`` " -"keyword for :meth:`~ArgumentParser.add_argument` allows any necessary type-" -"checking and type conversions to be performed." -msgstr "" -"Par défaut, l'analyseur capture les arguments de la ligne de commande comme " -"des chaînes. Très souvent par contre, on désire interpréter les chaînes de " -"la ligne de commande comme un autre type, tel que :class:`float` " -"ou :class:`int`. L'argument nommé ``type`` " -"d':meth:`~ArgumentParser.add_argument` nous permet de faire les " -"vérifications et les conversions de type nécessaires." - -#: library/argparse.rst:1081 -msgid "" -"If the type_ keyword is used with the default_ keyword, the type converter " -"is only applied if the default is a string." -msgstr "" -"Si l'argument nommé type_ est utilisé en conjonction avec l'argument nommé " -"default_, le convertisseur de type n'est appliqué que si la valeur par " -"défaut est une chaîne." - -#: library/argparse.rst:1084 -#, fuzzy -msgid "" -"The argument to ``type`` can be a callable that accepts a single string or " -"the name of a registered type (see :meth:`~ArgumentParser.register`) If the " -"function raises :exc:`ArgumentTypeError`, :exc:`TypeError`, " -"or :exc:`ValueError`, the exception is caught and a nicely formatted error " -"message is displayed. Other exception types are not handled." -msgstr "" -"La valeur de l'argument ``type`` peut être n'importe quel appelable qui " -"accepte une seule chaîne. Si la fonction " -"lève :exc:`ArgumentTypeError`, :exc:`TypeError` ou :exc:`ValueError`, " -"l'exception est traitée et un message d'erreur agréablement formaté est " -"affiché. Aucun autre type d'exception n'est géré." - -#: library/argparse.rst:1090 -msgid "Common built-in types and functions can be used as type converters:" -msgstr "" -"Les types et les fonctions natives peuvent être utilisés comme " -"convertisseurs de types :" - -#: library/argparse.rst:1104 -msgid "User defined functions can be used as well:" -msgstr "" -"Des fonctions définies par l'utilisateur peuvent aussi être utilisées :" - -#: library/argparse.rst:1116 -#, fuzzy -msgid "" -"The :func:`bool` function is not recommended as a type converter. All it " -"does is convert empty strings to ``False`` and non-empty strings to " -"``True``. This is usually not what is desired::" -msgstr "" -"La fonction :func:`bool` est déconseillée comme convertisseur de type. Son " -"comportement se limite à convertir les chaînes vides à ``False`` et les " -"chaînes non-vides à ``True``. Ce n'est généralement pas le résultat désiré." - -#: library/argparse.rst:1125 -msgid "" -"See :class:`BooleanOptionalAction` or ``action='store_true'`` for common " -"alternatives." -msgstr "" - -#: library/argparse.rst:1128 -msgid "" -"In general, the ``type`` keyword is a convenience that should only be used " -"for simple conversions that can only raise one of the three supported " -"exceptions. Anything with more interesting error-handling or resource " -"management should be done downstream after the arguments are parsed." -msgstr "" -"En général, l'argument nommé ``type`` est un raccourci qui ne devrait être " -"utilisé que pour les conversions simples qui ne peuvent lever qu'une des " -"trois exceptions gérées. Les conversions qui demandent un traitement " -"d'erreurs plus intéressant ou une gestion de ressources devraient être " -"effectuées plus tard dans l’exécution suivant l'analyse des arguments." - -#: library/argparse.rst:1133 -msgid "" -"For example, JSON or YAML conversions have complex error cases that require " -"better reporting than can be given by the ``type`` keyword. " -"A :exc:`~json.JSONDecodeError` would not be well formatted and " -"a :exc:`FileNotFoundError` exception would not be handled at all." -msgstr "" -"Par exemple, les conversions de documents *JSON* ou *YAML* ont des cas " -"d'erreurs complexes qui requièrent un meilleur signalement que ce qui est " -"fourni par l'argument nommé ``type``. Une " -"exception :exc:`~json.JSONDecodeError` ne serait pas adéquatement formatée " -"et une exception :exc:`FileNotFoundError` ne serait pas du tout traitée." - -#: library/argparse.rst:1138 -#, fuzzy -msgid "" -"Even :class:`~argparse.FileType` has its limitations for use with the " -"``type`` keyword. If one argument uses :class:`~argparse.FileType` and then " -"a subsequent argument fails, an error is reported but the file is not " -"automatically closed. In this case, it would be better to wait until after " -"the parser has run and then use the :keyword:`with`-statement to manage the " -"files." -msgstr "" -"Même la classe :class:`~argparse.FileType` a ses limitations quand elle est " -"utilisée pour l'argument nommé ``type``. Si un argument utilise *FileType* " -"et qu'un argument ultérieur échoue, une erreur est annoncée mais le fichier " -"n'est pas automatiquement fermé. Dans ce cas, il serait mieux d'attendre la " -"fin de l'exécution de l'analyseur puis de gérer les fichiers à l'aide d'un " -"bloc :keyword:`with`." - -#: library/argparse.rst:1145 -msgid "" -"For type checkers that simply check against a fixed set of values, consider " -"using the choices_ keyword instead." -msgstr "" -"Pour les vérificateurs de types qui ne font que tester l'appartenance à un " -"ensemble de valeurs, pensez plutôt à utiliser l'argument nommé choices_." - -#: library/argparse.rst:1152 -msgid "choices" -msgstr "Le paramètre *choices*" - -#: library/argparse.rst:1154 -msgid "" -"Some command-line arguments should be selected from a restricted set of " -"values. These can be handled by passing a sequence object as the *choices* " -"keyword argument to :meth:`~ArgumentParser.add_argument`. When the command " -"line is parsed, argument values will be checked, and an error message will " -"be displayed if the argument was not one of the acceptable values::" -msgstr "" -"Certains arguments de la ligne de commande doivent être choisis parmi un " -"ensemble prédéfini de valeurs. Celles-ci doivent être déclarées dans la " -"séquence passée à l'argument *choices* de la " -"méthode :meth:`~ArgumentParser.add_argument`. Un message d'erreur est alors " -"affiché si l'utilisateur passe un argument qui n'est pas parmi les valeurs " -"acceptables ::" - -#: library/argparse.rst:1169 -msgid "" -"Any sequence can be passed as the *choices* value, so :class:`list` " -"objects, :class:`tuple` objects, and custom sequences are all supported." -msgstr "" -"N'importe quel séquence peut être utilisée comme valeur de *choices*, dont " -"les objets de type :class:`list`, :class:`set` ou des conteneurs " -"personnalisés." - -#: library/argparse.rst:1172 -msgid "" -"Use of :class:`enum.Enum` is not recommended because it is difficult to " -"control its appearance in usage, help, and error messages." -msgstr "" -"L'utilisation d':class:`enum.Enum` est déconseillée, car il est difficile de " -"contrôler son apparence dans les messages d'usage, d'aide et d'erreur." - -#: library/argparse.rst:1175 -#, fuzzy -msgid "" -"Note that *choices* are checked after any type_ conversions have been " -"performed, so objects in *choices* should match the type_ specified. This " -"can make *choices* appear unfamiliar in usage, help, or error messages." -msgstr "" -"Prenez note que le test d'inclusion dans le conteneur *choices* est fait " -"après la conversion de type_. Le type des objets dans le conteneur *choices* " -"doit donc correspondre au type_ spécifié ::" - -#: library/argparse.rst:1180 -msgid "" -"To keep *choices* user-friendly, consider a custom type wrapper that " -"converts and formats values, or omit type_ and handle conversion in your " -"application code." -msgstr "" - -#: library/argparse.rst:1184 -msgid "" -"Formatted choices override the default *metavar* which is normally derived " -"from *dest*. This is usually what you want because the user never sees the " -"*dest* parameter. If this display isn't desirable (perhaps because there " -"are many choices), just specify an explicit metavar_." -msgstr "" -"Les choix formatés écrasent la valeur par défaut de *metavar* qui est " -"normalement dérivée de *dest*. C'est en général le comportement recherché " -"car l'utilisateur ne voit jamais le paramètre *dest*. Si cet affichage n'est " -"pas souhaité (comme lorsque les choix sont trop nombreux) spécifiez " -"simplement metavar_ de façon explicite." - -#: library/argparse.rst:1193 -msgid "required" -msgstr "Le paramètre *required*" - -#: library/argparse.rst:1195 -#, fuzzy -msgid "" -"In general, the :mod:`!argparse` module assumes that flags like ``-f`` and " -"``--bar`` indicate *optional* arguments, which can always be omitted at the " -"command line. To make an option *required*, ``True`` can be specified for " -"the ``required=`` keyword argument to :meth:`~ArgumentParser.add_argument`::" -msgstr "" -"En général, le module :mod:`argparse` prend pour acquis que les drapeaux " -"comme ``-f`` et ``--bar`` annoncent un argument *optionnel* qui peut " -"toujours être omis de la ligne de commande. Pour rendre une option " -"*obligatoire*, ``True`` peut être passé à l'argument nommé ``required=`` " -"d':meth:`~ArgumentParser.add_argument` ::" - -#: library/argparse.rst:1208 -msgid "" -"As the example shows, if an option is marked as " -"``required``, :meth:`~ArgumentParser.parse_args` will report an error if " -"that option is not present at the command line." -msgstr "" -"Tel qu'illustré dans l'exemple, quand l'option est marquée comme " -"``required``, :meth:`~ArgumentParser.parse_args` mentionne une erreur si " -"l'option est absente de la ligne de commande." - -#: library/argparse.rst:1214 -msgid "" -"Required options are generally considered bad form because users expect " -"*options* to be *optional*, and thus they should be avoided when possible." -msgstr "" -"En général, les options obligatoires manifestent un style boiteux, car les " -"utilisateurs s'attendent à ce que les *options* soient *optionnelles*. Elles " -"devraient donc être évitées si possible." - -#: library/argparse.rst:1221 -msgid "help" -msgstr "Le paramètre *help*" - -#: library/argparse.rst:1223 -#, fuzzy -msgid "" -"The ``help`` value is a string containing a brief description of the " -"argument. When a user requests help (usually by using ``-h`` or ``--help`` " -"at the command line), these ``help`` descriptions will be displayed with " -"each argument." -msgstr "" -"La valeur de ``help`` est une chaîne qui contient une brève description de " -"l'argument. Quand un utilisateur demande de l'aide (en général par " -"l'utilisation de ``-h`` ou ``--help`` sur la ligne de commande), ces " -"descriptions d'aide sont affichées pour chacun des arguments ::" - -#: library/argparse.rst:1228 -msgid "" -"The ``help`` strings can include various format specifiers to avoid " -"repetition of things like the program name or the argument default_. The " -"available specifiers include the program name, ``%(prog)s`` and most keyword " -"arguments to :meth:`~ArgumentParser.add_argument`, e.g. ``%(default)s``, ``%" -"(type)s``, etc.::" -msgstr "" -"La chaîne ``help`` peut contenir des définitions de formatage permettant " -"d'éviter la répétition de contenu tel que le nom du programme et la valeur " -"par défaut de l'argument (voir default_). Les définitions disponibles " -"comprennent entre autres le nom du programme, ``%(prog)s``, et la plupart " -"des arguments nommés d':meth:`~ArgumentParser.add_argument`, tels que ``%" -"(default)s``, ``%(type)s``, etc ::" - -#: library/argparse.rst:1245 -msgid "" -"As the help string supports %-formatting, if you want a literal ``%`` to " -"appear in the help string, you must escape it as ``%%``." -msgstr "" -"Comme la chaîne d'aide utilise le caractère ``%`` pour le formatage, si vous " -"désirez afficher un ``%`` littéral dans la chaîne d'aide, vous devez en " -"faire l’échappement avec ``%%``." - -#: library/argparse.rst:1248 -#, fuzzy -msgid "" -":mod:`!argparse` supports silencing the help entry for certain options, by " -"setting the ``help`` value to ``argparse.SUPPRESS``::" -msgstr "" -":mod:`argparse` peut supprimer la rubrique d'aide de certaines options. Pour " -"ce faire, passez ``argparse.SUPPRESS`` à ``help`` ::" - -#: library/argparse.rst:1263 -msgid "metavar" -msgstr "Le paramètre *metavar*" - -#: library/argparse.rst:1265 -#, fuzzy -msgid "" -"When :class:`ArgumentParser` generates help messages, it needs some way to " -"refer to each expected argument. By default, :class:`!ArgumentParser` " -"objects use the dest_ value as the \"name\" of each object. By default, for " -"positional argument actions, the dest_ value is used directly, and for " -"optional argument actions, the dest_ value is uppercased. So, a single " -"positional argument with ``dest='bar'`` will be referred to as ``bar``. A " -"single optional argument ``--foo`` that should be followed by a single " -"command-line argument will be referred to as ``FOO``. An example::" -msgstr "" -"Quand un objet :class:`ArgumentParser` construit le message d'aide, il doit " -"pouvoir faire référence à chacun des arguments attendus. Par défaut, les " -"objets ``ArgumentParser`` utilisent la valeur de dest_ pour le nom de chaque " -"objet. La valeur de dest_ est alors utilisée telle quelle pour les actions " -"d'arguments positionnels et elle (dest_) est convertie en majuscules pour " -"les actions d'arguments optionnels. Ainsi, un argument positionnel unique " -"avec ``dest='bar'`` est affiché comme ``bar`` et un argument optionnel " -"unique ``--foo`` qui prend un seul argument sur la ligne de commande est " -"affiché comme ``FOO``. Par exemple ::" - -#: library/argparse.rst:1289 -msgid "An alternative name can be specified with ``metavar``::" -msgstr "Un nom alternatif peut être fourni à ``metavar`` ::" - -#: library/argparse.rst:1306 -msgid "" -"Note that ``metavar`` only changes the *displayed* name - the name of the " -"attribute on the :meth:`~ArgumentParser.parse_args` object is still " -"determined by the dest_ value." -msgstr "" -"Prenez note que ``metavar`` ne change que le nom *affiché*. Le nom de " -"l'attribut ajouté à l'objet renvoyé par :meth:`~ArgumentParser.parse_args` " -"est toujours déterminé par la valeur de dest_." - -#: library/argparse.rst:1310 -msgid "" -"Different values of ``nargs`` may cause the metavar to be used multiple " -"times. Providing a tuple to ``metavar`` specifies a different display for " -"each of the arguments::" -msgstr "" -"Certaines valeurs de ``nargs`` peuvent provoquer l'affichage de ``metavar`` " -"plus d'une fois. Passer un *n-uplet* à ``metavar`` indique les différents " -"noms à afficher pour chacun des arguments ::" - -#: library/argparse.rst:1329 -msgid "dest" -msgstr "Le paramètre *dest*" - -#: library/argparse.rst:1331 -msgid "" -"Most :class:`ArgumentParser` actions add some value as an attribute of the " -"object returned by :meth:`~ArgumentParser.parse_args`. The name of this " -"attribute is determined by the ``dest`` keyword argument " -"of :meth:`~ArgumentParser.add_argument`. For positional argument actions, " -"``dest`` is normally supplied as the first argument " -"to :meth:`~ArgumentParser.add_argument`::" -msgstr "" -"La plupart des actions d':class:`ArgumentParser` ajoutent une valeur dans un " -"attribut de l'objet renvoyé par :meth:`~ArgumentParser.parse_args`. Le nom " -"de l'attribut est déterminé par l'argument nommé ``dest`` " -"d':meth:`~ArgumentParser.add_argument`. Pour les arguments positionnels, " -"``dest`` est généralement le premier argument " -"d':meth:`~ArgumentParser.add_argument` ::" - -#: library/argparse.rst:1343 -#, fuzzy -msgid "" -"For optional argument actions, the value of ``dest`` is normally inferred " -"from the option strings. :class:`ArgumentParser` generates the value of " -"``dest`` by taking the first double-dash long option string and stripping " -"away the initial ``-`` characters. If no double-dash long option strings " -"were supplied, ``dest`` will be derived from the first single-dash long " -"option string by stripping the initial ``-`` character. If no long option " -"strings were supplied, ``dest`` will be derived from the first short option " -"string by stripping the initial ``-`` character. Any internal ``-`` " -"characters will be converted to ``_`` characters to make sure the string is " -"a valid attribute name. The examples below illustrate this behavior::" -msgstr "" -"Pour les actions d'arguments optionnels, la valeur de ``dest`` est " -"généralement inférée des chaînes d'options. :class:`ArgumentParser` génère " -"la valeur de ``dest`` en retirant le préfixe ``--`` de la première chaîne " -"d'options longues. Si aucune n'est fournie, ``dest`` est alors dérivée de la " -"première chaîne d'options courtes sans le préfixe ``-``. Tous les ``-`` " -"suivants sont convertis en ``_`` pour s'assurer que la chaîne est un nom " -"d'attribut valide. Les exemples suivants illustrent ce comportement ::" - -#: library/argparse.rst:1365 -msgid "``dest`` allows a custom attribute name to be provided::" -msgstr "``dest`` vous permet de fournir un nom d'attribut personnalisé ::" - -#: library/argparse.rst:1372 -msgid "Single-dash long option now takes precedence over short options." -msgstr "" - -#: library/argparse.rst:1379 -msgid "deprecated" -msgstr "" - -#: library/argparse.rst:1381 -msgid "" -"During a project's lifetime, some arguments may need to be removed from the " -"command line. Before removing them, you should inform your users that the " -"arguments are deprecated and will be removed. The ``deprecated`` keyword " -"argument of :meth:`~ArgumentParser.add_argument`, which defaults to " -"``False``, specifies if the argument is deprecated and will be removed in " -"the future. For arguments, if ``deprecated`` is ``True``, then a warning " -"will be printed to :data:`sys.stderr` when the argument is used::" -msgstr "" - -#: library/argparse.rst:1404 -msgid "Action classes" -msgstr "Classes Action" - -#: library/argparse.rst:1406 -#, fuzzy -msgid "" -":class:`!Action` classes implement the Action API, a callable which returns " -"a callable which processes arguments from the command-line. Any object which " -"follows this API may be passed as the ``action`` parameter " -"to :meth:`~ArgumentParser.add_argument`." -msgstr "" -"Les classes ``Action`` implémentent l'API Action, un appelable qui renvoie " -"un appelable qui traite les arguments de la ligne de commande. Tout objet " -"qui suit cette API peut être passé comme paramètre ``action`` " -"d':meth:`~ArgumentParser.add_argument`." - -#: library/argparse.rst:1415 -#, fuzzy -msgid "" -":class:`!Action` objects are used by an :class:`ArgumentParser` to represent " -"the information needed to parse a single argument from one or more strings " -"from the command line. The :class:`!Action` class must accept the two " -"positional arguments plus any keyword arguments passed " -"to :meth:`ArgumentParser.add_argument` except for the ``action`` itself." -msgstr "" -"Les objets ``Action`` sont utilisés par un ``ArgumentParser`` pour " -"représenter l'information nécessaire à l'analyse d'un seul argument à partir " -"d'une ou plusieurs chaînes de la ligne de commande. La classe ``Action`` " -"doit accepter les deux arguments positionnels " -"d':meth:`ArgumentParser.add_argument` ainsi que tous ses arguments nommés, " -"sauf ``action``." - -#: library/argparse.rst:1421 -#, fuzzy -msgid "" -"Instances of :class:`!Action` (or return value of any callable to the " -"``action`` parameter) should have attributes :attr:`!dest`, :attr:`!" -"option_strings`, :attr:`!default`, :attr:`!type`, :attr:`!required`, :attr:`!" -"help`, etc. defined. The easiest way to ensure these attributes are defined " -"is to call :meth:`!Action.__init__`." -msgstr "" -"Les instances d'``Action`` (ou la valeur de retour de l'appelable passé au " -"paramètre ``action``) doivent définir les attributs nécessaires : *dest*, " -"*option_strings*, *default*, *type*, *required*, *help*, etc. La façon la " -"plus simple de s'assurer que ces attributs sont définis est d'appeler " -"``Action.__init__``." - -#: library/argparse.rst:1429 -#, fuzzy -msgid "" -":class:`!Action` instances should be callable, so subclasses must override " -"the :meth:`!__call__` method, which should accept four parameters:" -msgstr "" -"Les instances d'``Action`` doivent être appelables et donc les sous-classes " -"doivent surcharger la méthode ``__call__``. Cette méthode doit accepter " -"quatre paramètres :" - -#: library/argparse.rst:1432 -#, fuzzy -msgid "" -"*parser* - The :class:`ArgumentParser` object which contains this action." -msgstr "``parser`` – L'objet ``ArgumentParser`` qui contient cette action ;" - -#: library/argparse.rst:1434 -#, fuzzy -msgid "" -"*namespace* - The :class:`Namespace` object that will be returned " -"by :meth:`~ArgumentParser.parse_args`. Most actions add an attribute to " -"this object using :func:`setattr`." -msgstr "" -"``namespace`` – L'objet :class:`Namespace` qui est renvoyé " -"par :meth:`~ArgumentParser.parse_args`. La majorité des actions ajoutent un " -"attribut à cet objet avec :func:`setattr` ;" - -#: library/argparse.rst:1438 -#, fuzzy -msgid "" -"*values* - The associated command-line arguments, with any type conversions " -"applied. Type conversions are specified with the type_ keyword argument " -"to :meth:`~ArgumentParser.add_argument`." -msgstr "" -"``values`` – Les arguments de la ligne de commande associés à l'action après " -"les avoir soumis à la conversion de type. Les conversions de types sont " -"spécifiées grâce à l’argument nommé type_ " -"d':meth:`~ArgumentParser.add_argument` ;" - -#: library/argparse.rst:1442 -#, fuzzy -msgid "" -"*option_string* - The option string that was used to invoke this action. The " -"``option_string`` argument is optional, and will be absent if the action is " -"associated with a positional argument." -msgstr "" -"``option_string`` – La chaîne d'option utilisée pour invoquer cette action. " -"L'argument ``option_string`` est optionnel et est absent si l'action est " -"associée à un argument positionnel." - -#: library/argparse.rst:1446 -#, fuzzy -msgid "" -"The :meth:`!__call__` method may perform arbitrary actions, but will " -"typically set attributes on the ``namespace`` based on ``dest`` and " -"``values``." -msgstr "" -"La méthode ``__call__`` peut réaliser un traitement arbitraire, mais en " -"général elle affecte des attributs sur le ``namespace`` en fonction de " -"``dest`` et de ``values``." - -#: library/argparse.rst:1451 -#, fuzzy -msgid "" -":class:`!Action` subclasses can define a :meth:`!format_usage` method that " -"takes no argument and return a string which will be used when printing the " -"usage of the program. If such method is not provided, a sensible default " -"will be used." -msgstr "" -"Les classes dérivées d'``Action`` peuvent définir une méthode " -"``format_usage`` qui ne prend aucun argument et qui renvoie une chaîne " -"utilisée lors de l'affichage du message d'utilisation du programme. Si cette " -"méthode n'est pas fournie, une valeur raisonnable est utilisée par défaut." - -#: library/argparse.rst:1457 -msgid "" -"A subclass of :class:`Action` for handling boolean flags with positive and " -"negative options. Adding a single argument such as ``--foo`` automatically " -"creates both ``--foo`` and ``--no-foo`` options, storing ``True`` and " -"``False`` respectively::" -msgstr "" - -#: library/argparse.rst:1468 -msgid "" -"Single-dash long options are also supported. For example, negative option ``-" -"nofoo`` is automatically added for positive option ``-foo``. But no " -"additional options are added for short options such as ``-f``." -msgstr "" - -#: library/argparse.rst:1475 -msgid "Added support for single-dash options." -msgstr "" - -#: library/argparse.rst:1478 -msgid "Added support for alternate prefix_chars_." -msgstr "" - -#: library/argparse.rst:1482 -msgid "The parse_args() method" -msgstr "La méthode *parse_args()*" - -#: library/argparse.rst:1486 -msgid "" -"Convert argument strings to objects and assign them as attributes of the " -"namespace. Return the populated namespace." -msgstr "" -"Convertie les chaînes d'arguments en objets et les assigne comme attributs " -"de l'espace de nommage ``namespace``. Renvoie un objet ``namespace`` rempli." - -#: library/argparse.rst:1489 -#, fuzzy -msgid "" -"Previous calls to :meth:`add_argument` determine exactly what objects are " -"created and how they are assigned. See the documentation for :meth:`!" -"add_argument` for details." -msgstr "" -"Les appels à :meth:`add_argument` qui ont été faits déterminent exactement " -"quels objets sont créés et comment ils sont affectés. Consultez la rubrique " -"d':meth:`add_argument` pour les détails." - -#: library/argparse.rst:1493 -msgid "" -"args_ - List of strings to parse. The default is taken " -"from :data:`sys.argv`." -msgstr "" -"args_ – Liste de chaînes à analyser. La valeur par défaut est récupérée " -"dans :data:`sys.argv`." - -#: library/argparse.rst:1496 -msgid "" -"namespace_ - An object to take the attributes. The default is a new " -"empty :class:`Namespace` object." -msgstr "" -"namespace_ – Un objet pour recevoir les attributs. Par défaut, une nouvelle " -"instance (vide) de :class:`Namespace`." - -#: library/argparse.rst:1501 -msgid "Option value syntax" -msgstr "Syntaxe de la valeur des options" - -#: library/argparse.rst:1503 -msgid "" -"The :meth:`~ArgumentParser.parse_args` method supports several ways of " -"specifying the value of an option (if it takes one). In the simplest case, " -"the option and its value are passed as two separate arguments::" -msgstr "" -"La méthode :meth:`~ArgumentParser.parse_args` offre plusieurs façons " -"d'indiquer la valeur d'une option si elle en prend une. Dans le cas le plus " -"simple, l'option et sa valeur sont passées en tant que deux arguments " -"distincts ::" - -#: library/argparse.rst:1515 -msgid "" -"For long options (options with names longer than a single character), the " -"option and value can also be passed as a single command-line argument, using " -"``=`` to separate them::" -msgstr "" -"Pour les options longues (les options qui ont un nom de plus d'un " -"caractère), l'option et sa valeur peuvent être passées comme un seul " -"argument de la ligne de commande en utilisant ``=`` comme séparateur ::" - -#: library/argparse.rst:1522 -msgid "" -"For short options (options only one character long), the option and its " -"value can be concatenated::" -msgstr "" -"Pour les options courtes (un seul caractère), l'option et sa valeur peuvent " -"être concaténées ::" - -#: library/argparse.rst:1528 -msgid "" -"Several short options can be joined together, using only a single ``-`` " -"prefix, as long as only the last option (or none of them) requires a value::" -msgstr "" -"Plusieurs options courtes peuvent être groupées ensemble après un seul " -"préfixe ``-`` pour autant que seule la dernière, au maximum, ne nécessite " -"une valeur ::" - -#: library/argparse.rst:1540 -msgid "Invalid arguments" -msgstr "Arguments invalides" - -#: library/argparse.rst:1542 -msgid "" -"While parsing the command line, :meth:`~ArgumentParser.parse_args` checks " -"for a variety of errors, including ambiguous options, invalid types, invalid " -"options, wrong number of positional arguments, etc. When it encounters such " -"an error, it exits and prints the error along with a usage message::" -msgstr "" -"Quand elle fait l'analyse de la ligne de commande, la " -"méthode :meth:`~ArgumentParser.parse_args` vérifie plusieurs erreurs " -"possibles : entre autres, options ambigües, types invalides, options " -"invalides, nombre incorrect d'arguments positionnels, etc. Quand une erreur " -"est rencontrée, elle affiche l'erreur accompagnée du message d'aide puis " -"termine l'exécution ::" - -#: library/argparse.rst:1568 -msgid "Arguments containing ``-``" -msgstr "Arguments contenant ``-``" - -#: library/argparse.rst:1570 -msgid "" -"The :meth:`~ArgumentParser.parse_args` method attempts to give errors " -"whenever the user has clearly made a mistake, but some situations are " -"inherently ambiguous. For example, the command-line argument ``-1`` could " -"either be an attempt to specify an option or an attempt to provide a " -"positional argument. The :meth:`~ArgumentParser.parse_args` method is " -"cautious here: positional arguments may only begin with ``-`` if they look " -"like negative numbers and there are no options in the parser that look like " -"negative numbers::" -msgstr "" -"La méthode :meth:`~ArgumentParser.parse_args` tente de signaler une erreur " -"quand l'utilisateur s'est clairement trompé. Par contre, certaines " -"situations sont intrinsèquement ambigües. Par exemple, l'argument de la " -"ligne de commande ``-1`` peut aussi bien être une tentative de spécifier une " -"option qu'une tentative de passer un argument positionnel. La " -"méthode :meth:`~ArgumentParser.parse_args` est prudente : les arguments " -"positionnels ne peuvent commencer par ``-`` que s'ils ont l'apparence d'un " -"nombre négatif et que l'analyseur ne contient aucune option qui a " -"l'apparence d'un nombre négatif ::" - -#: library/argparse.rst:1608 -msgid "" -"If you have positional arguments that must begin with ``-`` and don't look " -"like negative numbers, you can insert the pseudo-argument ``'--'`` which " -"tells :meth:`~ArgumentParser.parse_args` that everything after that is a " -"positional argument::" -msgstr "" -"Si l'utilisateur a des arguments positionnels qui commencent par ``-`` et " -"qui n'ont pas l'apparence d'un nombre négatif, il peut insérer le pseudo-" -"argument ``'--'`` qui indique à :meth:`~ArgumentParser.parse_args` de " -"traiter tout ce qui suit comme un argument positionnel ::" - -#: library/argparse.rst:1616 -msgid "" -"See also :ref:`the argparse howto on ambiguous arguments ` for more details." -msgstr "" - -#: library/argparse.rst:1622 -msgid "Argument abbreviations (prefix matching)" -msgstr "Arguments abrégés (par comparaison de leurs préfixes)" - -#: library/argparse.rst:1624 -msgid "" -"The :meth:`~ArgumentParser.parse_args` method :ref:`by default " -"` allows long options to be abbreviated to a prefix, if the " -"abbreviation is unambiguous (the prefix matches a unique option)::" -msgstr "" -"Par défaut, la méthode :meth:`~ArgumentParser.parse_args` accepte que les " -"options longues soient :ref:`abrégées ` par un préfixe pour " -"autant que l’abréviation soit non-ambigüe, c'est-à-dire qu'elle ne " -"corresponde à aucune autre option ::" - -#: library/argparse.rst:1639 -msgid "" -"An error is produced for arguments that could produce more than one options. " -"This feature can be disabled by setting :ref:`allow_abbrev` to ``False``." -msgstr "" -"Une erreur est générée pour les arguments qui peuvent produire plus d'une " -"option. Ce comportement peut être désactivé en passant ``False`` " -"à :ref:`allow_abbrev`." - -#: library/argparse.rst:1645 -msgid "Beyond ``sys.argv``" -msgstr "Au-delà de ``sys.argv``" - -#: library/argparse.rst:1647 -#, fuzzy -msgid "" -"Sometimes it may be useful to have an :class:`ArgumentParser` parse " -"arguments other than those of :data:`sys.argv`. This can be accomplished by " -"passing a list of strings to :meth:`~ArgumentParser.parse_args`. This is " -"useful for testing at the interactive prompt::" -msgstr "" -"Il est parfois désirable de demander à un objet ``ArgumentParser`` de faire " -"l'analyse d'arguments autres que ceux de :data:`sys.argv`. On peut faire ce " -"traitement en passant une liste de chaînes " -"à :meth:`~ArgumentParser.parse_args`. Cette approche est pratique pour faire " -"des tests depuis l'invite de commande ::" - -#: library/argparse.rst:1667 -msgid "The Namespace object" -msgstr "L'objet ``Namespace``" - -#: library/argparse.rst:1671 -msgid "" -"Simple class used by default by :meth:`~ArgumentParser.parse_args` to create " -"an object holding attributes and return it." -msgstr "" -"Classe rudimentaire utilisée par défaut " -"par :meth:`~ArgumentParser.parse_args` pour créer un objet qui stocke les " -"attributs. Cet objet est renvoyé par ``ArgumentParser.parse_args``." - -#: library/argparse.rst:1674 -msgid "" -"This class is deliberately simple, just an :class:`object` subclass with a " -"readable string representation. If you prefer to have dict-like view of the " -"attributes, you can use the standard Python idiom, :func:`vars`::" -msgstr "" -"Cette classe est délibérément rudimentaire : une sous-classe " -"d':class:`object` avec une représentation textuelle intelligible. Si vous " -"préférez une vue *dict-compatible*, vous devez utiliser :func:`vars` (un " -"idiome Python classique) ::" - -#: library/argparse.rst:1684 -msgid "" -"It may also be useful to have an :class:`ArgumentParser` assign attributes " -"to an already existing object, rather than a new :class:`Namespace` object. " -"This can be achieved by specifying the ``namespace=`` keyword argument::" -msgstr "" -"Il est parfois utile de demander à :class:`ArgumentParser` de faire " -"l'affectation des attributs sur un objet existant plutôt que de faire la " -"création d'un nouvel objet :class:`Namespace`. Ceci peut être réalisé avec " -"l'argument nommé ``namespace=`` ::" - -#: library/argparse.rst:1700 -msgid "Other utilities" -msgstr "Autres outils" - -#: library/argparse.rst:1703 -#, fuzzy -msgid "Subcommands" -msgstr "Sous commandes" - -#: library/argparse.rst:1710 -#, fuzzy -msgid "" -"Many programs split up their functionality into a number of subcommands, for " -"example, the ``svn`` program can invoke subcommands like ``svn checkout``, " -"``svn update``, and ``svn commit``. Splitting up functionality this way can " -"be a particularly good idea when a program performs several different " -"functions which require different kinds of command-line " -"arguments. :class:`ArgumentParser` supports the creation of such subcommands " -"with the :meth:`!add_subparsers` method. The :meth:`!add_subparsers` method " -"is normally called with no arguments and returns a special action object. " -"This object has a single method, :meth:`~_SubParsersAction.add_parser`, " -"which takes a command name and any :class:`!ArgumentParser` constructor " -"arguments, and returns an :class:`!ArgumentParser` object that can be " -"modified as usual." -msgstr "" -"Certains programmes organisent leurs fonctionnalités grâce à des sous-" -"commandes. Par exemple : le programme ``svn`` peut être invoqué comme ``svn " -"checkout``, ``svn update`` et ``svn commit``. Cette manière d'organiser les " -"fonctionnalités est judicieuse quand le programme effectue plusieurs " -"fonctions différentes qui requièrent différents types de lignes de " -"commandes. :class:`ArgumentParser` prend en charge la création de ce genre " -"de sous-commandes grâce à la méthode :meth:`add_subparsers`. La " -"méthode :meth:`add_subparsers` est généralement appelée sans argument et " -"elle renvoie un objet ``Action`` spécial. Cet objet possède une seule " -"méthode, :meth:`~_SubParsersAction..add_parser`, qui prend le nom d'une " -"commande et n'importe quels arguments du constructeur " -"d':class:`ArgumentParser` ; elle renvoie un objet :class:`ArgumentParser` " -"qui peut être modifié normalement." - -#: library/argparse.rst:1722 -msgid "Description of parameters:" -msgstr "Description des paramètres :" - -#: library/argparse.rst:1724 -#, fuzzy -msgid "" -"*title* - title for the sub-parser group in help output; by default " -"\"subcommands\" if description is provided, otherwise uses title for " -"positional arguments" -msgstr "" -"``title`` – titre du groupe de ce sous-analyseur dans la sortie d'aide ; par " -"défaut : ``\"subcommands\"`` si ``description`` est fournie, sinon utilise " -"la valeur de ``title`` de la section sur les arguments positionnels ;" - -#: library/argparse.rst:1728 -#, fuzzy -msgid "" -"*description* - description for the sub-parser group in help output, by " -"default ``None``" -msgstr "" -"``description`` – description du groupe de ce sous-analyseur dans la sortie " -"d'aide ; par défaut : ``None`` ;" - -# I think the English version is very misleading here. Even for subcommands, -# ``prog`` is only a tiny prefix of the auto generater usage string. -#: library/argparse.rst:1731 -#, fuzzy -msgid "" -"*prog* - usage information that will be displayed with subcommand help, by " -"default the name of the program and any positional arguments before the " -"subparser argument" -msgstr "" -"``prog`` – nom du programme dans le message d'utilisation de l'aide des sous-" -"commandes ; par défaut : le nom du programme et les arguments positionnels " -"qui arrivent avant l'argument de ce sous-analyseur ;" - -#: library/argparse.rst:1735 -#, fuzzy -msgid "" -"*parser_class* - class which will be used to create sub-parser instances, by " -"default the class of the current parser (e.g. :class:`ArgumentParser`)" -msgstr "" -"``parser_class`` – classe utilisée pour créer les instances de sous-" -"analyseurs ; par défaut : la classe de l'analyseur courant (par exemple " -"``ArgumentParser``) ;" - -#: library/argparse.rst:1738 -msgid "" -"action_ - the basic type of action to be taken when this argument is " -"encountered at the command line" -msgstr "" -"action_ – action à entreprendre quand cet argument est reconnu sur la ligne " -"de commande ;" - -#: library/argparse.rst:1741 -#, fuzzy -msgid "" -"dest_ - name of the attribute under which subcommand name will be stored; by " -"default ``None`` and no value is stored" -msgstr "" -"dest_ – nom de l'attribut sous lequel la sous-commande est stockée ; par " -"défaut : ``None`` et aucune valeur n'est stockée ;" - -#: library/argparse.rst:1744 -msgid "" -"required_ - Whether or not a subcommand must be provided, by default " -"``False`` (added in 3.7)" -msgstr "" -"required_ – ``True`` si la sous-commande est obligatoire ; par défaut : " -"``False`` (ajouté dans 3.7) ;" - -#: library/argparse.rst:1747 -msgid "help_ - help for sub-parser group in help output, by default ``None``" -msgstr "" -"help_ – message d'aide pour le groupe du sous-analyseur dans la sortie " -"d'aide ; par défaut : ``None`` ;" - -#: library/argparse.rst:1749 -#, fuzzy -msgid "" -"metavar_ - string presenting available subcommands in help; by default it is " -"``None`` and presents subcommands in form {cmd1, cmd2, ..}" -msgstr "" -"metavar_ – chaîne qui représente les sous-commandes disponibles dans les " -"messages d'aide ; par défaut : ``None``, ce qui entraine la génération d'une " -"chaîne suivant le format ``'{cmd1, cmd2, …}'``." - -#: library/argparse.rst:1752 -msgid "Some example usage::" -msgstr "Quelques exemples d'utilisation ::" - -#: library/argparse.rst:1773 -#, fuzzy -msgid "" -"Note that the object returned by :meth:`~ArgumentParser.parse_args` will " -"only contain attributes for the main parser and the subparser that was " -"selected by the command line (and not any other subparsers). So in the " -"example above, when the ``a`` command is specified, only the ``foo`` and " -"``bar`` attributes are present, and when the ``b`` command is specified, " -"only the ``foo`` and ``baz`` attributes are present." -msgstr "" -"Prenez note que l'objet renvoyé par :meth:`parse_args` ne contient que les " -"attributs reconnus par l'analyseur principal et le sous-analyseur " -"sélectionné par la ligne de commande. Les autres sous-analyseurs n'ont pas " -"d'influence sur l'objet renvoyé. Ainsi dans l'exemple précédent, quand la " -"commande ``a`` est donnée, seuls les attributs ``foo`` et ``bar`` sont " -"présents alors que la commande ``b`` présente les attributs ``foo`` et " -"``baz``." - -#: library/argparse.rst:1780 -#, fuzzy -msgid "" -"Similarly, when a help message is requested from a subparser, only the help " -"for that particular parser will be printed. The help message will not " -"include parent parser or sibling parser messages. (A help message for each " -"subparser command, however, can be given by supplying the ``help=`` argument " -"to :meth:`~_SubParsersAction.add_parser` as above.)" -msgstr "" -"De même, quand le message d'aide est demandé depuis l'un des sous-" -"analyseurs, seul le message d'aide de cet analyseur est affiché. Le message " -"d'aide n'inclut pas le message de l'analyseur parent ni celui des sous-" -"analyseurs au même niveau. Il est toutefois possible de fournir un message " -"d'aide pour chacun des sous-analyseurs grâce à l'argument ``help=`` " -"d':meth:`add_parser` tel qu'illustré ci-dessus." - -#: library/argparse.rst:1816 -#, fuzzy -msgid "" -"The :meth:`~ArgumentParser.add_subparsers` method also supports ``title`` " -"and ``description`` keyword arguments. When either is present, the " -"subparser's commands will appear in their own group in the help output. For " -"example::" -msgstr "" -"La méthode :meth:`add_subparsers` accepte les arguments nommés ``title`` et " -"``description``. Quand au moins l'un des deux est présent, les commandes du " -"sous-analyseur sont affichées dans leur propre groupe dans la sortie d'aide. " -"Par exemple ::" - -#: library/argparse.rst:1837 -#, fuzzy -msgid "" -"One particularly effective way of handling subcommands is to combine the use " -"of the :meth:`~ArgumentParser.add_subparsers` method with calls " -"to :meth:`~ArgumentParser.set_defaults` so that each subparser knows which " -"Python function it should execute. For example::" -msgstr "" -"Une façon efficace de traiter les sous-commandes est de combiner " -"l'utilisation de la méthode :meth:`add_subparsers` avec des appels " -"à :meth:`set_defaults` pour que chaque sous-analyseur sache quelle fonction " -"Python doit être exécutée. Par exemple ::" - -#: library/argparse.rst:1874 -#, fuzzy -msgid "" -"This way, you can let :meth:`~ArgumentParser.parse_args` do the job of " -"calling the appropriate function after argument parsing is complete. " -"Associating functions with actions like this is typically the easiest way to " -"handle the different actions for each of your subparsers. However, if it is " -"necessary to check the name of the subparser that was invoked, the ``dest`` " -"keyword argument to the :meth:`~ArgumentParser.add_subparsers` call will " -"work::" -msgstr "" -"Ainsi, vous pouvez laisser à :meth:`parse_args` la responsabilité de faire " -"appel à la bonne fonction après avoir analysé les arguments. Associer " -"fonctions et actions est en général la façon la plus facile de gérer des " -"actions différentes pour chacun de vos sous-analyseurs. Par contre, si vous " -"avez besoin de consulter le nom du sous-analyseur qui a été invoqué, vous " -"pouvez utiliser l'argument nommé ``dest`` d':meth:`add_subparsers` ::" - -#: library/argparse.rst:1890 -#, fuzzy -msgid "New *required* keyword-only parameter." -msgstr "Introduction des arguments nommés obligatoires." - -#: library/argparse.rst:1893 -msgid "" -"Subparser's *prog* is no longer affected by a custom usage message in the " -"main parser." -msgstr "" - -#: library/argparse.rst:1901 -#, fuzzy -msgid "" -"Create and return a new :class:`ArgumentParser` object for the subcommand " -"*name*." -msgstr "``parser`` – L'objet ``ArgumentParser`` qui contient cette action ;" - -#: library/argparse.rst:1904 -msgid "The *name* argument is the name of the sub-command." -msgstr "" - -#: library/argparse.rst:1906 -msgid "The *help* argument provides a short description for this sub-command." -msgstr "" - -#: library/argparse.rst:1908 -msgid "" -"The *aliases* argument allows providing alternative names for this sub-" -"command. For example::" -msgstr "" - -#: library/argparse.rst:1918 -msgid "" -"The *deprecated* argument, if ``True``, marks the sub-command as deprecated " -"and will issue a warning when used. For example::" -msgstr "" - -#: library/argparse.rst:1928 -msgid "" -"All other keyword arguments are passed directly to the :class:`!" -"ArgumentParser` constructor." -msgstr "" - -#: library/argparse.rst:1931 -#, fuzzy -msgid "Added the *deprecated* parameter." -msgstr "Les arguments nommés ``encodings`` et ``errors``." - -#: library/argparse.rst:1936 -msgid "FileType objects" -msgstr "Objets ``FileType``" - -#: library/argparse.rst:1940 -msgid "" -"The :class:`FileType` factory creates objects that can be passed to the type " -"argument of :meth:`ArgumentParser.add_argument`. Arguments that " -"have :class:`FileType` objects as their type will open command-line " -"arguments as files with the requested modes, buffer sizes, encodings and " -"error handling (see the :func:`open` function for more details)::" -msgstr "" -"Le type fabrique :class:`FileType` crée des objets qui peuvent être passés à " -"l'argument ``type`` d':meth:`ArgumentParser.add_argument`. Les arguments qui " -"ont comme ``type`` un objet :class:`FileType` ouvrent les arguments de la " -"ligne de commande en tant que fichiers avec les options spécifiées : mode, " -"taille du tampon, encodage et gestion des erreurs (voir la " -"fonction :func:`open` pour plus de détails) ::" - -#: library/argparse.rst:1952 -msgid "" -"FileType objects understand the pseudo-argument ``'-'`` and automatically " -"convert this into :data:`sys.stdin` for readable :class:`FileType` objects " -"and :data:`sys.stdout` for writable :class:`FileType` objects::" -msgstr "" -"Les objets ``FileType`` reconnaissent le pseudo-argument ``'-'`` et le " -"convertissent automatiquement vers :data:`sys.stdin` pour les " -"objets :class:`FileType` ouverts en lecture, et vers :data:`sys.stdout` pour " -"les objets :class:`FileType` ouverts en écriture ::" - -#: library/argparse.rst:1963 -#, fuzzy -msgid "" -"If one argument uses *FileType* and then a subsequent argument fails, an " -"error is reported but the file is not automatically closed. This can also " -"clobber the output files. In this case, it would be better to wait until " -"after the parser has run and then use the :keyword:`with`-statement to " -"manage the files." -msgstr "" -"Même la classe :class:`~argparse.FileType` a ses limitations quand elle est " -"utilisée pour l'argument nommé ``type``. Si un argument utilise *FileType* " -"et qu'un argument ultérieur échoue, une erreur est annoncée mais le fichier " -"n'est pas automatiquement fermé. Dans ce cas, il serait mieux d'attendre la " -"fin de l'exécution de l'analyseur puis de gérer les fichiers à l'aide d'un " -"bloc :keyword:`with`." - -#: library/argparse.rst:1969 -#, fuzzy -msgid "Added the *encoding* and *errors* parameters." -msgstr "Les arguments nommés ``encodings`` et ``errors``." - -#: library/argparse.rst:1976 -msgid "Argument groups" -msgstr "Groupes d'arguments" - -#: library/argparse.rst:1981 -#, fuzzy -msgid "" -"By default, :class:`ArgumentParser` groups command-line arguments into " -"\"positional arguments\" and \"options\" when displaying help messages. When " -"there is a better conceptual grouping of arguments than this default one, " -"appropriate groups can be created using the :meth:`!add_argument_group` " -"method::" -msgstr "" -"Par défaut, :class:`ArgumentParser` regroupe les arguments de la ligne de " -"commande entre « arguments positionnels » et « arguments optionnels » dans " -"l'affichage de l'aide. Lorsqu'un meilleur regroupement conceptuel est " -"possible, celui-ci peut être créé avec la " -"méthode :meth:`add_argument_group` ::" - -#: library/argparse.rst:1998 -#, fuzzy -msgid "" -"The :meth:`add_argument_group` method returns an argument group object which " -"has an :meth:`~ArgumentParser.add_argument` method just like a " -"regular :class:`ArgumentParser`. When an argument is added to the group, " -"the parser treats it just like a normal argument, but displays the argument " -"in a separate group for help messages. The :meth:`!add_argument_group` " -"method accepts *title* and *description* arguments which can be used to " -"customize this display::" -msgstr "" -"La méthode :meth:`add_argument_group` renvoie un objet représentant le " -"groupe d'arguments. Cet objet possède une " -"méthode :meth:`~ArgumentParser.add_argument` semblable à celle " -"d':class:`ArgumentParser`. Quand un argument est ajouté au groupe, " -"l'analyseur le traite comme un argument normal, mais il affiche le nouvel " -"argument dans un groupe séparé dans les messages d'aide. Afin de " -"personnaliser l'affichage, la méthode :meth:`add_argument_group` accepte les " -"arguments ``title`` et ``description`` ::" - -#: library/argparse.rst:2024 -msgid "" -"The optional, keyword-only parameters argument_default_ and " -"conflict_handler_ allow for finer-grained control of the behavior of the " -"argument group. These parameters have the same meaning as in " -"the :class:`ArgumentParser` constructor, but apply specifically to the " -"argument group rather than the entire parser." -msgstr "" - -#: library/argparse.rst:2029 -msgid "" -"Note that any arguments not in your user-defined groups will end up back in " -"the usual \"positional arguments\" and \"optional arguments\" sections." -msgstr "" -"Prenez note que tout argument qui n'est pas dans l'un de vos groupes est " -"affiché dans l'une des sections usuelles *positional arguments* et *optional " -"arguments*." - -#: library/argparse.rst:2032 -msgid "" -"Within each argument group, arguments are displayed in help output in the " -"order in which they are added." -msgstr "" - -#: library/argparse.rst:2035 -#, fuzzy -msgid "" -"Calling :meth:`add_argument_group` on an argument group now raises an " -"exception. This nesting was never supported, often failed to work correctly, " -"and was unintentionally exposed through inheritance." -msgstr "" -"Appeler :meth:`add_argument_group` sur un groupe d'arguments est obsolète. " -"Cet emploi n'a jamais été pris en charge et ne fonctionne pas dans tous les " -"cas. La présence de cette fonction dans l'API est purement accidentelle et " -"celle-ci disparaîtra." - -#: library/argparse.rst:2040 -msgid "Passing prefix_chars_ to :meth:`add_argument_group` is now deprecated." -msgstr "" - -#: library/argparse.rst:2046 -msgid "Mutual exclusion" -msgstr "Exclusion mutuelle" - -#: library/argparse.rst:2050 -#, fuzzy -msgid "" -"Create a mutually exclusive group. :mod:`!argparse` will make sure that only " -"one of the arguments in the mutually exclusive group was present on the " -"command line::" -msgstr "" -"Crée un groupe mutuellement exclusif. Le module :mod:`argparse` vérifie " -"qu'au plus un des arguments du groupe mutuellement exclusif est présent sur " -"la ligne de commande ::" - -#: library/argparse.rst:2066 -msgid "" -"The :meth:`add_mutually_exclusive_group` method also accepts a *required* " -"argument, to indicate that at least one of the mutually exclusive arguments " -"is required::" -msgstr "" -"La méthode :meth:`add_mutually_exclusive_group` accepte aussi l'argument " -"``required`` pour indiquer qu'au moins un des arguments mutuellement " -"exclusifs est nécessaire ::" - -#: library/argparse.rst:2078 -#, fuzzy -msgid "" -"Note that currently mutually exclusive argument groups do not support the " -"*title* and *description* arguments " -"of :meth:`~ArgumentParser.add_argument_group`. However, a mutually exclusive " -"group can be added to an argument group that has a title and description. " -"For example::" -msgstr "" -"Prenez note que présentement les groupes d'arguments mutuellement exclusifs " -"n'acceptent pas les arguments ``title`` et ``description`` " -"d':meth:`~ArgumentParser.add_argument_group`." - -#: library/argparse.rst:2101 -#, fuzzy -msgid "" -"Calling :meth:`add_argument_group` or :meth:`add_mutually_exclusive_group` " -"on a mutually exclusive group now raises an exception. This nesting was " -"never supported, often failed to work correctly, and was unintentionally " -"exposed through inheritance." -msgstr "" -"Appeler :meth:`add_argument_group` ou :meth:`add_mutually_exclusive_group` " -"sur un groupe mutuellement exclusif est obsolète. Cet emploi n'a jamais été " -"pris en charge et ne fonctionne pas dans tous les cas. La présence de cette " -"fonction dans l'API est purement accidentelle et celle-ci disparaîtra." - -#: library/argparse.rst:2109 -msgid "Parser defaults" -msgstr "Valeurs par défaut de l'analyseur" - -#: library/argparse.rst:2113 -msgid "" -"Most of the time, the attributes of the object returned " -"by :meth:`parse_args` will be fully determined by inspecting the command-" -"line arguments and the argument actions. :meth:`set_defaults` allows some " -"additional attributes that are determined without any inspection of the " -"command line to be added::" -msgstr "" -"Dans la majorité des cas, les attributs de l'objet renvoyé " -"par :meth:`parse_args` sont entièrement définis par l'inspection des " -"arguments de la ligne de commande et par les actions des arguments. La " -"méthode :meth:`set_defaults` permet l'ajout d'attributs additionnels qui " -"sont définis sans nécessiter l'inspection de la ligne de commande ::" - -#: library/argparse.rst:2125 -msgid "" -"Note that defaults can be set at both the parser level " -"using :meth:`set_defaults` and at the argument level " -"using :meth:`add_argument`. If both are called for the same argument, the " -"last default set for an argument is used::" -msgstr "" - -#: library/argparse.rst:2135 -msgid "" -"Parser-level defaults can be particularly useful when working with multiple " -"parsers. See the :meth:`~ArgumentParser.add_subparsers` method for an " -"example of this type." -msgstr "" -"Les valeurs par défaut au niveau de l'analyseur sont particulièrement utiles " -"quand on travaille avec plusieurs analyseurs. Voir la " -"méthode :meth:`~ArgumentParser.add_subparsers` pour un exemple de cette " -"utilisation." - -#: library/argparse.rst:2141 -msgid "" -"Get the default value for a namespace attribute, as set by " -"either :meth:`~ArgumentParser.add_argument` or " -"by :meth:`~ArgumentParser.set_defaults`::" -msgstr "" -"Renvoie la valeur par défaut d'un attribut de l'objet ``Namespace`` tel " -"qu'il a été défini soit par :meth:`~ArgumentParser.add_argument` ou " -"par :meth:`~ArgumentParser.set_defaults` ::" - -#: library/argparse.rst:2152 -msgid "Printing help" -msgstr "Afficher l'aide" - -#: library/argparse.rst:2154 -msgid "" -"In most typical applications, :meth:`~ArgumentParser.parse_args` will take " -"care of formatting and printing any usage or error messages. However, " -"several formatting methods are available:" -msgstr "" -"Pour la majorité des applications, :meth:`~ArgumentParser.parse_args` se " -"charge du formatage et de l'affichage des messages d'erreur et " -"d'utilisation. Plusieurs méthodes de formatage sont toutefois disponibles :" - -#: library/argparse.rst:2160 -msgid "" -"Print a brief description of how the :class:`ArgumentParser` should be " -"invoked on the command line. If *file* is ``None``, :data:`sys.stdout` is " -"assumed." -msgstr "" -"Affiche une brève description sur la façon d'invoquer " -"l':class:`ArgumentParser` depuis la ligne de commande. Si ``file`` est " -"``None``, utilise :data:`sys.stdout`." - -#: library/argparse.rst:2166 -msgid "" -"Print a help message, including the program usage and information about the " -"arguments registered with the :class:`ArgumentParser`. If *file* is " -"``None``, :data:`sys.stdout` is assumed." -msgstr "" -"Affiche un message d'aide qui inclut l'utilisation du programme et " -"l'information sur les arguments répertoriés dans l':class:`ArgumentParser`. " -"Si ``file`` est ``None``, utilise :data:`sys.stdout`." - -#: library/argparse.rst:2170 -msgid "" -"There are also variants of these methods that simply return a string instead " -"of printing it:" -msgstr "" -"Des variantes de ces méthodes sont fournies pour renvoyer la chaîne plutôt " -"que de l'afficher :" - -#: library/argparse.rst:2175 -msgid "" -"Return a string containing a brief description of how " -"the :class:`ArgumentParser` should be invoked on the command line." -msgstr "" -"Renvoie une chaîne contenant une brève description sur la façon d'invoquer " -"l':class:`ArgumentParser` depuis la ligne de commande." - -#: library/argparse.rst:2180 -msgid "" -"Return a string containing a help message, including the program usage and " -"information about the arguments registered with the :class:`ArgumentParser`." -msgstr "" -"Renvoie une chaîne représentant un message d'aide qui inclut des " -"informations sur l'utilisation du programme et sur les arguments définis " -"dans l':class:`ArgumentParser`." - -#: library/argparse.rst:2185 -msgid "Partial parsing" -msgstr "Analyse partielle" - -#: library/argparse.rst:2189 -msgid "" -"Sometimes a script only needs to handle a specific set of command-line " -"arguments, leaving any unrecognized arguments for another script or program. " -"In these cases, the :meth:`~ArgumentParser.parse_known_args` method can be " -"useful." -msgstr "" - -#: library/argparse.rst:2194 -msgid "" -"This method works similarly to :meth:`~ArgumentParser.parse_args`, but it " -"does not raise an error for extra, unrecognized arguments. Instead, it " -"parses the known arguments and returns a two item tuple that contains the " -"populated namespace and the list of any unrecognized arguments." -msgstr "" - -#: library/argparse.rst:2208 -msgid "" -":ref:`Prefix matching ` rules apply " -"to :meth:`~ArgumentParser.parse_known_args`. The parser may consume an " -"option even if it's just a prefix of one of its known options, instead of " -"leaving it in the remaining arguments list." -msgstr "" -"Les règles d':ref:`acceptation des abréviations ` sont " -"applicables à :meth:`~ArgumentParser.parse_known_args`. L'analyseur peut " -"ainsi capturer une option même si elle n'est que le préfixe d'une option " -"reconnue plutôt que de la laisser dans la liste des arguments non-traités." - -#: library/argparse.rst:2215 -msgid "Customizing file parsing" -msgstr "Personnaliser le *parsing* de fichiers" - -#: library/argparse.rst:2219 -msgid "" -"Arguments that are read from a file (see the *fromfile_prefix_chars* keyword " -"argument to the :class:`ArgumentParser` constructor) are read one argument " -"per line. :meth:`convert_arg_line_to_args` can be overridden for fancier " -"reading." -msgstr "" -"Les arguments qui proviennent d'un fichier sont lus un par ligne. La " -"méthode :meth:`convert_arg_line_to_args` peut être surchargée pour accomplir " -"un traitement plus élaboré. Voir aussi l'argument nommé " -"``fromfile_prefix_chars`` du constructeur d':class:`ArgumentParser`." - -#: library/argparse.rst:2224 -msgid "" -"This method takes a single argument *arg_line* which is a string read from " -"the argument file. It returns a list of arguments parsed from this string. " -"The method is called once per line read from the argument file, in order." -msgstr "" -"La méthode ``convert_arg_line_to_args`` accepte un seul argument, " -"``arg_line``, qui est une chaîne lue dans le fichier d'arguments. Elle " -"renvoie une liste d'arguments analysés dans cette chaîne. La méthode est " -"appelée une fois pour chaque ligne lue du fichier d'arguments. L'ordre est " -"préservé." - -#: library/argparse.rst:2228 -msgid "" -"A useful override of this method is one that treats each space-separated " -"word as an argument. The following example demonstrates how to do this::" -msgstr "" -"Une surcharge utile de cette méthode est de permettre à chaque mot délimité " -"par des espaces d'être traité comme un argument. L'exemple suivant illustre " -"comment réaliser ceci ::" - -#: library/argparse.rst:2237 -msgid "Exiting methods" -msgstr "Méthodes d'interruptions" - -#: library/argparse.rst:2241 -#, fuzzy -msgid "" -"This method terminates the program, exiting with the specified *status* and, " -"if given, it prints a *message* to :data:`sys.stderr` before that. The user " -"can override this method to handle these steps differently::" -msgstr "" -"Cette méthode interrompt l'exécution du programme et renvoie ``status`` " -"comme valeur de retour du processus. Si ``message`` est fourni, la chaîne " -"est affichée avant la fin de l'exécution. Vous pouvez surcharger cette " -"méthode pour traiter ces étapes différemment ::" - -#: library/argparse.rst:2253 -#, fuzzy -msgid "" -"This method prints a usage message, including the *message*, " -"to :data:`sys.stderr` and terminates the program with a status code of 2." -msgstr "" -"Cette méthode affiche un message d'utilisation qui inclut la chaîne " -"``message`` sur la sortie d'erreur standard puis termine l'exécution avec le " -"code de fin d'exécution 2." - -#: library/argparse.rst:2258 -msgid "Intermixed parsing" -msgstr "Analyse entremêlée" - -#: library/argparse.rst:2263 -msgid "" -"A number of Unix commands allow the user to intermix optional arguments with " -"positional arguments. The :meth:`~ArgumentParser.parse_intermixed_args` " -"and :meth:`~ArgumentParser.parse_known_intermixed_args` methods support this " -"parsing style." -msgstr "" -"De nombreuses commandes Unix permettent à l'utilisateur d'entremêler les " -"arguments optionnels et les arguments positionnels. Les " -"méthodes :meth:`~ArgumentParser.parse_intermixed_args` " -"et :meth:`~ArgumentParser.parse_known_intermixed_args` permettent ce style " -"d'analyse." - -#: library/argparse.rst:2268 -#, fuzzy -msgid "" -"These parsers do not support all the :mod:`!argparse` features, and will " -"raise exceptions if unsupported features are used. In particular, " -"subparsers, and mutually exclusive groups that include both optionals and " -"positionals are not supported." -msgstr "" -"Ces analyseurs n'offrent pas toutes les fonctionnalités d'``argparse`` et " -"ils lèvent une exception si une fonctionnalité non prise en charge est " -"utilisée. En particulier, les sous-analyseurs et les groupes mutuellement " -"exclusifs qui contiennent à la fois des arguments optionnels et des " -"arguments positionnels ne sont pas pris en charge." - -#: library/argparse.rst:2273 -msgid "" -"The following example shows the difference " -"between :meth:`~ArgumentParser.parse_known_args` " -"and :meth:`~ArgumentParser.parse_intermixed_args`: the former returns " -"``['2', '3']`` as unparsed arguments, while the latter collects all the " -"positionals into ``rest``. ::" -msgstr "" -"L'exemple suivant illustre la différence " -"entre :meth:`~ArgumentParser.parse_known_args` " -"et :meth:`~ArgumentParser.parse_intermixed_args` : le premier renvoie " -"``['2', '3']`` comme arguments non-traités alors que le second capture tous " -"les arguments positionnels dans ``rest`` ::" - -#: library/argparse.rst:2288 -msgid "" -":meth:`~ArgumentParser.parse_known_intermixed_args` returns a two item tuple " -"containing the populated namespace and the list of remaining argument " -"strings. :meth:`~ArgumentParser.parse_intermixed_args` raises an error if " -"there are any remaining unparsed argument strings." -msgstr "" -":meth:`~ArgumentParser.parse_known_intermixed_args` renvoie une paire de " -"valeurs : l'objet ``Namespace`` rempli et une liste de chaînes d'arguments " -"non-traités. :meth:`~ArgumentParser.parse_intermixed_args` lève une erreur " -"s'il reste des chaînes d'arguments non-traités." - -#: library/argparse.rst:2297 -msgid "Registering custom types or actions" -msgstr "" - -#: library/argparse.rst:2301 -msgid "" -"Sometimes it's desirable to use a custom string in error messages to provide " -"more user-friendly output. In these cases, :meth:`!register` can be used to " -"register custom actions or types with a parser and allow you to reference " -"the type by their registered name instead of their callable name." -msgstr "" - -#: library/argparse.rst:2306 -msgid "" -"The :meth:`!register` method accepts three arguments - a *registry_name*, " -"specifying the internal registry where the object will be stored (e.g., " -"``action``, ``type``), *value*, which is the key under which the object will " -"be registered, and object, the callable to be registered." -msgstr "" - -#: library/argparse.rst:2311 -msgid "" -"The following example shows how to register a custom type with a parser::" -msgstr "" - -#: library/argparse.rst:2325 -msgid "Exceptions" -msgstr "Exceptions" - -#: library/argparse.rst:2329 -msgid "An error from creating or using an argument (optional or positional)." -msgstr "" - -#: library/argparse.rst:2331 -msgid "" -"The string value of this exception is the message, augmented with " -"information about the argument that caused it." -msgstr "" - -#: library/argparse.rst:2336 -msgid "" -"Raised when something goes wrong converting a command line string to a type." -msgstr "" - -#: library/argparse.rst:2340 -msgid "Guides and Tutorials" -msgstr "Guides et tutoriels" - -#, fuzzy -#~ msgid "" -#~ "Furthermore, :meth:`~_SubParsersAction.add_parser` supports an additional " -#~ "*aliases* argument, which allows multiple strings to refer to the same " -#~ "subparser. This example, like ``svn``, aliases ``co`` as a shorthand for " -#~ "``checkout``::" -#~ msgstr "" -#~ "De plus, ``add_parser`` accepte l'argument additionnel ``aliases`` qui " -#~ "permet à plusieurs chaînes de faire référence au même sous-analyseur. " -#~ "L'exemple suivant, à la manière de ``svn``, utilise ``co`` comme une " -#~ "abréviation de ``checkout`` ::" - -#~ msgid "" -#~ "Note that parser-level defaults always override argument-level defaults::" -#~ msgstr "" -#~ "Prenez note que les valeurs par défaut au niveau de l'analyseur ont " -#~ "précédence sur les valeurs par défaut au niveau de l'argument ::" - -#~ msgid "" -#~ "Sometimes a script may only parse a few of the command-line arguments, " -#~ "passing the remaining arguments on to another script or program. In these " -#~ "cases, the :meth:`~ArgumentParser.parse_known_args` method can be " -#~ "useful. It works much like :meth:`~ArgumentParser.parse_args` except " -#~ "that it does not produce an error when extra arguments are present. " -#~ "Instead, it returns a two item tuple containing the populated namespace " -#~ "and the list of remaining argument strings." -#~ msgstr "" -#~ "Parfois, un script n'analyse que quelques-uns des arguments de la ligne " -#~ "de commande avant de passer les arguments non-traités à un autre script " -#~ "ou programme. La méthode :meth:`~ArgumentParser.parse_known_args` est " -#~ "utile dans ces cas. Elle fonctionne similairement " -#~ "à :meth:`~ArgumentParser.parse_args`, mais elle ne lève pas d'erreur " -#~ "quand des arguments non-reconnus sont présents. Au lieu, elle renvoie une " -#~ "paire de valeurs : l'objet ``Namespace`` rempli et la liste des arguments " -#~ "non-traités." - -#, fuzzy -#~ msgid "" -#~ "*values* - The associated command-line arguments, with any type " -#~ "conversions" -#~ msgstr "" -#~ "type_ – Type vers lequel l'argument sur la ligne de commande doit être " -#~ "converti ;" - -#~ msgid "* (asterisk)" -#~ msgstr "* (astérisque)" - -#~ msgid "+ (plus)" -#~ msgstr "+ (plus)" - -#~ msgid "Core Functionality" -#~ msgstr "Fonctionnalité principale" - -#~ msgid "Quick Links for add_argument()" -#~ msgstr "Référence pour ``add_argument()``" - -#~ msgid "Name" -#~ msgstr "Nom" - -#~ msgid "Description" -#~ msgstr "Description" - -#~ msgid "Values" -#~ msgstr "Valeurs" - -#~ msgid "action_" -#~ msgstr "action_" - -#~ msgid "Specify how an argument should be handled" -#~ msgstr "Précise la gestion d'un argument" - -#~ msgid "" -#~ "``'store'``, ``'store_const'``, ``'store_true'``, ``'append'``, " -#~ "``'append_const'``, ``'count'``, ``'help'``, ``'version'``" -#~ msgstr "" -#~ "``'store'``, ``'store_const'``, ``'store_true'``, ``'append'``, " -#~ "``'append_const'``, ``'count'``, ``'help'``, ``'version'``" - -#~ msgid "choices_" -#~ msgstr "choices_" - -#~ msgid "Limit values to a specific set of choices" -#~ msgstr "Limite le choix à certaines valeurs" - -#~ msgid "" -#~ "``['foo', 'bar']``, ``range(1, 10)``, " -#~ "or :class:`~collections.abc.Container` instance" -#~ msgstr "" -#~ "``['foo', 'bar']``, ``range(1, 10)`` ou une instance " -#~ "de :class:`~collections.abc.Container`" - -#~ msgid "const_" -#~ msgstr "const_" - -#~ msgid "Store a constant value" -#~ msgstr "Utilise une valeur constante" - -#~ msgid "default_" -#~ msgstr "default_" - -#~ msgid "Default value used when an argument is not provided" -#~ msgstr "Valeur à utiliser en l'absence d'un argument" - -#~ msgid "Defaults to ``None``" -#~ msgstr "``None`` par défaut" - -#~ msgid "dest_" -#~ msgstr "dest_" - -#~ msgid "Specify the attribute name used in the result namespace" -#~ msgstr "" -#~ "Définit le nom de l'attribut à utiliser dans l'espace de nommage résultant" - -#~ msgid "help_" -#~ msgstr "help_" - -#~ msgid "Help message for an argument" -#~ msgstr "Message d'aide pour l'argument" - -#~ msgid "metavar_" -#~ msgstr "metavar_" - -#~ msgid "Alternate display name for the argument as shown in help" -#~ msgstr "Autre nom possible pour l'argument, est affiché dans l'aide" - -#~ msgid "nargs_" -#~ msgstr "nargs_" - -#~ msgid "Number of times the argument can be used" -#~ msgstr "Précise le nombre de répétitions de l'argument" - -#~ msgid ":class:`int`, ``'?'``, ``'*'``, or ``'+'``" -#~ msgstr ":class:`int`, ``'?'``, ``'*'`` ou ``'+'``" - -#~ msgid "required_" -#~ msgstr "required_" - -#~ msgid "Indicate whether an argument is required or optional" -#~ msgstr "Précise si l'argument est obligatoire ou optionnel" - -#~ msgid "``True`` or ``False``" -#~ msgstr "``True`` ou ``False``" - -#~ msgid "type_" -#~ msgstr "type_" - -#~ msgid "Automatically convert an argument to the given type" -#~ msgstr "Conversion automatique vers le type fourni" - -#~ msgid "" -#~ ":class:`int`, :class:`float`, ``argparse.FileType('w')``, or callable " -#~ "function" -#~ msgstr "" -#~ ":class:`int`, :class:`float`, ``argparse.FileType('w')`` ou une fonction" - -#~ msgid "Example" -#~ msgstr "Exemple" - -#~ msgid "" -#~ "The following code is a Python program that takes a list of integers and " -#~ "produces either the sum or the max::" -#~ msgstr "" -#~ "Le code suivant est un programme Python acceptant une liste de nombres " -#~ "entiers et en donnant soit la somme, soit le maximum ::" - -#~ msgid "" -#~ "Assuming the above Python code is saved into a file called ``prog.py``, " -#~ "it can be run at the command line and it provides useful help messages:" -#~ msgstr "" -#~ "Après avoir sauvegardé le code Python ci-dessus dans un fichier nommé " -#~ "``prog.py``, il peut être lancé en ligne de commande et fournit le " -#~ "message d'aide suivant :" - -#~ msgid "" -#~ "When run with the appropriate arguments, it prints either the sum or the " -#~ "max of the command-line integers:" -#~ msgstr "" -#~ "Lorsqu'il est lancé avec les arguments appropriés, il affiche la somme ou " -#~ "le maximum des entiers fournis :" - -#~ msgid "If invalid arguments are passed in, an error will be displayed:" -#~ msgstr "Si des arguments invalides sont passés, il affiche une erreur :" - -#~ msgid "The following sections walk you through this example." -#~ msgstr "Les sections suivantes vous guident au travers de cet exemple." - -#~ msgid "Creating a parser" -#~ msgstr "Créer un analyseur (*parser* en anglais)" - -#~ msgid "" -#~ "The first step in using the :mod:`argparse` is creating " -#~ "an :class:`ArgumentParser` object::" -#~ msgstr "" -#~ "La première étape dans l'utilisation de :mod:`argparse` est de créer un " -#~ "objet :class:`ArgumentParser` ::" - -#~ msgid "" -#~ "The :class:`ArgumentParser` object will hold all the information " -#~ "necessary to parse the command line into Python data types." -#~ msgstr "" -#~ "L'objet :class:`ArgumentParser` contiendra toutes les informations " -#~ "nécessaires pour interpréter la ligne de commande comme des types de " -#~ "données de Python." - -#~ msgid "Adding arguments" -#~ msgstr "Ajouter des arguments" - -#~ msgid "" -#~ "Filling an :class:`ArgumentParser` with information about program " -#~ "arguments is done by making calls to " -#~ "the :meth:`~ArgumentParser.add_argument` method. Generally, these calls " -#~ "tell the :class:`ArgumentParser` how to take the strings on the command " -#~ "line and turn them into objects. This information is stored and used " -#~ "when :meth:`~ArgumentParser.parse_args` is called. For example::" -#~ msgstr "" -#~ "Alimenter un :class:`ArgumentParser` avec des informations sur les " -#~ "arguments du programme s'effectue en faisant des appels à la " -#~ "méthode :meth:`~ArgumentParser.add_argument`. En général ces appels " -#~ "disent à l':class:`ArgumentParser` comment prendre les chaînes de " -#~ "caractères de la ligne de commande et les transformer en objets. Cette " -#~ "information est stockée et utilisée " -#~ "lorsque :meth:`~ArgumentParser.parse_args` est appelée. Par exemple ::" - -#~ msgid "" -#~ "Later, calling :meth:`~ArgumentParser.parse_args` will return an object " -#~ "with two attributes, ``integers`` and ``accumulate``. The ``integers`` " -#~ "attribute will be a list of one or more integers, and the ``accumulate`` " -#~ "attribute will be either the :func:`sum` function, if ``--sum`` was " -#~ "specified at the command line, or the :func:`max` function if it was not." -#~ msgstr "" -#~ "Ensuite, appeler :meth:`~ArgumentParser.parse_args` va renvoyer un objet " -#~ "avec deux attributs, ``integers`` et ``accumulate``. L'attribut " -#~ "``integers`` est une liste d'un ou plusieurs entiers, et l'attribut " -#~ "``accumulate`` est soit la fonction :func:`sum`, si ``--sum`` était " -#~ "fourni à la ligne de commande, soit la fonction :func:`max` dans le cas " -#~ "contraire." - -#~ msgid "Parsing arguments" -#~ msgstr "Analyse des arguments" - -#~ msgid "" -#~ ":class:`ArgumentParser` parses arguments through " -#~ "the :meth:`~ArgumentParser.parse_args` method. This will inspect the " -#~ "command line, convert each argument to the appropriate type and then " -#~ "invoke the appropriate action. In most cases, this means a " -#~ "simple :class:`Namespace` object will be built up from attributes parsed " -#~ "out of the command line::" -#~ msgstr "" -#~ ":class:`ArgumentParser` analyse les arguments avec la " -#~ "méthode :meth:`~ArgumentParser.parse_args`. Cette méthode inspecte la " -#~ "ligne de commande, convertit chaque argument au type approprié et invoque " -#~ "l'action requise. Dans la plupart des cas, le résultat est la " -#~ "construction d'un objet :class:`Namespace` à partir des attributs " -#~ "analysés dans la ligne de commande ::" - -#~ msgid "" -#~ "In a script, :meth:`~ArgumentParser.parse_args` will typically be called " -#~ "with no arguments, and the :class:`ArgumentParser` will automatically " -#~ "determine the command-line arguments from :data:`sys.argv`." -#~ msgstr "" -#~ "Dans un script, :meth:`~ArgumentParser.parse_args` est généralement " -#~ "appelée sans arguments et l'objet :class:`ArgumentParser` détermine " -#~ "automatiquement les arguments de la ligne de commande à partir " -#~ "de :data:`sys.argv`." - -#~ msgid "" -#~ "By default, :class:`ArgumentParser` objects use ``sys.argv[0]`` to " -#~ "determine how to display the name of the program in help messages. This " -#~ "default is almost always desirable because it will make the help messages " -#~ "match how the program was invoked on the command line. For example, " -#~ "consider a file named ``myprogram.py`` with the following code::" -#~ msgstr "" -#~ "Par défaut, l'objet :class:`ArgumentParser` utilise ``sys.argv[0]`` pour " -#~ "déterminer comment afficher le nom du programme dans les messages d'aide. " -#~ "Cette valeur par défaut est presque toujours souhaitable, car elle " -#~ "produit un message d'aide qui correspond à la méthode utilisée pour " -#~ "lancer le programme sur la ligne de commande. Par exemple, si on a un " -#~ "fichier nommé ``myprogram.py`` avec le code suivant ::" - -#~ msgid "" -#~ "The help for this program will display ``myprogram.py`` as the program " -#~ "name (regardless of where the program was invoked from):" -#~ msgstr "" -#~ "Le message d'aide pour ce programme affiche ``myprogram.py`` pour le nom " -#~ "du programme (peu importe d'où le programme est lancé) :" - -#~ msgid "" -#~ "To change this default behavior, another value can be supplied using the " -#~ "``prog=`` argument to :class:`ArgumentParser`::" -#~ msgstr "" -#~ "Pour changer ce comportement, une valeur alternative est passée par " -#~ "l'argument ``prog=`` du constructeur d':class:`ArgumentParser` ::" - -#~ msgid "" -#~ "The default message can be overridden with the ``usage=`` keyword " -#~ "argument::" -#~ msgstr "" -#~ "Le message par défaut peut être remplacé en utilisant l'argument nommé " -#~ "``usage=`` ::" - -#~ msgid "" -#~ "If ``-h`` or ``--help`` is supplied at the command line, the " -#~ "ArgumentParser help will be printed:" -#~ msgstr "" -#~ "Si ``-h`` ou ``--help`` est passé sur la ligne de commande, le message " -#~ "d'aide de l'``ArgumentParser`` est affiché :" - -#~ msgid "" -#~ "``'extend'`` - This stores a list, and extends each argument value to the " -#~ "list. Example usage::" -#~ msgstr "" -#~ "``'extend'`` – Stocke une liste et ajoute à la liste chacune des valeurs " -#~ "de l'argument reçues. Voici un exemple de son utilisation ::" - -#~ msgid "Upgrading optparse code" -#~ msgstr "Mettre à jour du code ``optparse``" - -# Surchargé n'est pas une traduction exact de monkey-patch, mais c'est -# probablement permission içi puisqu'on parle du context historique général -# plutôt que de détails d'implantation. -#~ msgid "" -#~ "Originally, the :mod:`argparse` module had attempted to maintain " -#~ "compatibility with :mod:`optparse`. However, :mod:`optparse` was " -#~ "difficult to extend transparently, particularly with the changes required " -#~ "to support the new ``nargs=`` specifiers and better usage messages. When " -#~ "most everything in :mod:`optparse` had either been copy-pasted over or " -#~ "monkey-patched, it no longer seemed practical to try to maintain the " -#~ "backwards compatibility." -#~ msgstr "" -#~ "Initialement, le module :mod:`argparse` tentait de rester compatible " -#~ "avec :mod:`optparse`. Hélas, il était difficile de faire des " -#~ "améliorations à :mod:`optparse` de façon transparente, en particulier " -#~ "pour les changements requis pour gérer les nouveaux spécificateurs de " -#~ "``nargs=`` et les messages d'utilisation améliorés. Après avoir porté ou " -#~ "surchargé tout le code d':mod:`optparse`, la rétro-compatibilité pouvait " -#~ "difficilement être conservée." - -#~ msgid "" -#~ "The :mod:`argparse` module improves on the standard " -#~ "library :mod:`optparse` module in a number of ways including:" -#~ msgstr "" -#~ "Le module :mod:`argparse` fournit plusieurs améliorations par rapport au " -#~ "module :mod:`optparse` de la bibliothèque standard :" - -#~ msgid "Handling positional arguments." -#~ msgstr "gère les arguments positionnels ;" - -#~ msgid "Supporting sub-commands." -#~ msgstr "prise en charge des sous commandes ;" - -#~ msgid "Allowing alternative option prefixes like ``+`` and ``/``." -#~ msgstr "" -#~ "permet d'utiliser les alternatives ``+`` ou ``/`` comme préfixes " -#~ "d'option ;" - -#~ msgid "Handling zero-or-more and one-or-more style arguments." -#~ msgstr "" -#~ "prend en charge la répétition de valeurs (zéro ou plus, un ou plus) ;" - -#~ msgid "Producing more informative usage messages." -#~ msgstr "fournit des messages d'aide plus complets ;" - -#~ msgid "" -#~ "Providing a much simpler interface for custom ``type`` and ``action``." -#~ msgstr "" -#~ "fournit une interface plus simple pour les types et les actions " -#~ "personnalisés." - -#~ msgid "A partial upgrade path from :mod:`optparse` to :mod:`argparse`:" -#~ msgstr "Le portage partiel d':mod:`optparse` à :mod:`argparse` :" - -#~ msgid "" -#~ "Replace all :meth:`optparse.OptionParser.add_option` calls " -#~ "with :meth:`ArgumentParser.add_argument` calls." -#~ msgstr "" -#~ "remplacer tous les appels à :meth:`optparse.OptionParser.add_option` par " -#~ "des appels à :meth:`ArgumentParser.add_argument` ;" - -#~ msgid "" -#~ "Replace ``(options, args) = parser.parse_args()`` with ``args = " -#~ "parser.parse_args()`` and add " -#~ "additional :meth:`ArgumentParser.add_argument` calls for the positional " -#~ "arguments. Keep in mind that what was previously called ``options``, now " -#~ "in the :mod:`argparse` context is called ``args``." -#~ msgstr "" -#~ "remplacer ``(options, args) = parser.parse_args()`` par ``args = " -#~ "parser.parse_args()`` et ajouter des appels " -#~ "à :meth:`ArgumentParser.add_argument` pour les arguments positionnels. " -#~ "Prenez note que les valeurs précédemment appelées ``options`` sont " -#~ "appelées ``args`` dans le contexte d':mod:`argparse` ;" - -#~ msgid "" -#~ "Replace :meth:`optparse.OptionParser.disable_interspersed_args` by " -#~ "using :meth:`~ArgumentParser.parse_intermixed_args` instead " -#~ "of :meth:`~ArgumentParser.parse_args`." -#~ msgstr "" -#~ "remplacer :meth:`optparse.OptionParser.disable_interspersed_args` en " -#~ "appelant :meth:`~ArgumentParser.parse_intermixed_args` plutôt " -#~ "que :meth:`~ArgumentParser.parse_args` ;" - -#~ msgid "" -#~ "Replace callback actions and the ``callback_*`` keyword arguments with " -#~ "``type`` or ``action`` arguments." -#~ msgstr "" -#~ "remplacer les actions de rappel (*callback actions* en anglais) et les " -#~ "arguments nommés ``callback_*`` par des arguments ``type`` et " -#~ "``actions`` ;" - -#~ msgid "" -#~ "Replace string names for ``type`` keyword arguments with the " -#~ "corresponding type objects (e.g. int, float, complex, etc)." -#~ msgstr "" -#~ "remplacer les chaînes représentant le nom des types pour l'argument nommé " -#~ "``type`` par les objets types correspondants (par exemple : ``int``, " -#~ "``float``, ``complex``, etc) ;" - -#~ msgid "" -#~ "Replace :class:`optparse.Values` with :class:`Namespace` " -#~ "and :exc:`optparse.OptionError` and :exc:`optparse.OptionValueError` " -#~ "with :exc:`ArgumentError`." -#~ msgstr "" -#~ "remplacer :class:`optparse.Values` par :class:`Namespace` ; " -#~ "et :exc:`optparse.OptionError` et :exc:`optparse.OptionValueError` " -#~ "par :exc:`ArgumentError` ;" - -#~ msgid "" -#~ "Replace strings with implicit arguments such as ``%default`` or ``%prog`` " -#~ "with the standard Python syntax to use dictionaries to format strings, " -#~ "that is, ``%(default)s`` and ``%(prog)s``." -#~ msgstr "" -#~ "remplacer les chaînes avec des arguments de formatage implicite (tels que " -#~ "``%default`` ou ``%prog``) par la syntaxe standard de Python pour " -#~ "l'interpolation d'un dictionnaire dans les chaînes de formatage (c'est-à-" -#~ "dire ``%(default)s`` et ``%(prog)s``) ;" - -#~ msgid "" -#~ "Replace the OptionParser constructor ``version`` argument with a call to " -#~ "``parser.add_argument('--version', action='version', version='')``." -#~ msgstr "" -#~ "remplacer l'argument ``version`` du constructeur d'``OptionParser`` par " -#~ "un appel à ``parser.add_argument('--version', action='version', " -#~ "version='')``." - -#~ msgid "" -#~ "With the ``'store_const'`` and ``'append_const'`` actions, the ``const`` " -#~ "keyword argument must be given. For other actions, it defaults to " -#~ "``None``." -#~ msgstr "" -#~ "Pour les actions ``'store_const'`` et ``'append_const'``, l'argument " -#~ "nommé ``const`` doit être spécifié. Pour toutes les autres actions, il " -#~ "est optionnel et sa valeur par défaut est ``None``." - -#~ msgid "" -#~ "See the section on the default_ keyword argument for information on when " -#~ "the ``type`` argument is applied to default arguments." -#~ msgstr "" -#~ "Consultez la rubrique de l'argument nommé default_ pour plus " -#~ "d'information sur quand l'argument ``type`` est appliqué aux arguments " -#~ "par défaut." - -#~ msgid "" -#~ "To ease the use of various types of files, the argparse module provides " -#~ "the factory FileType which takes the ``mode=``, ``bufsize=``, " -#~ "``encoding=`` and ``errors=`` arguments of the :func:`open` function. " -#~ "For example, ``FileType('w')`` can be used to create a writable file::" -#~ msgstr "" -#~ "Pour faciliter l'utilisation de types de fichiers variés, le module " -#~ "``argparse`` fournit le type fabrique ``FileType`` qui accepte les " -#~ "arguments ``mode=``, ``bufsize=``, ``encoding=`` et ``errors=`` de la " -#~ "fonction :func:`open`. Par exemple, ``FileType('w')`` peut être utilisé " -#~ "pour créer un fichier en mode écriture ::" - -#~ msgid "" -#~ "``type=`` can take any callable that takes a single string argument and " -#~ "returns the converted value::" -#~ msgstr "" -#~ "``type=`` peut prendre n'importe quelle fonction ou objet appelable qui " -#~ "prend une seule chaîne de caractère comme argument et qui renvoie la " -#~ "valeur convertie ::" - -#~ msgid "" -#~ "The choices_ keyword argument may be more convenient for type checkers " -#~ "that simply check against a range of values::" -#~ msgstr "" -#~ "L'argument nommé choices_ est parfois plus facile d'utilisation pour les " -#~ "vérificateurs de type qui comparent la valeur à une gamme prédéfinie ::" - -#~ msgid "See the choices_ section for more details." -#~ msgstr "Voir la rubrique de choices_ pour plus de détails." diff --git a/library/array.po b/library/array.po deleted file mode 100644 index 9fb7efe8e6..0000000000 --- a/library/array.po +++ /dev/null @@ -1,700 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-10-31 12:47+0100\n" -"Last-Translator: Cléo Buck \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" - -#: library/array.rst:2 -#, fuzzy -msgid ":mod:`!array` --- Efficient arrays of numeric values" -msgstr ":mod:`array` — Tableaux efficaces de valeurs numériques" - -#: library/array.rst:11 -#, fuzzy -msgid "" -"This module defines an object type which can compactly represent an array of " -"basic values: characters, integers, floating-point numbers, complex " -"numbers. Arrays are mutable :term:`sequence` types and behave very much " -"like lists, except that the type of objects stored in them is constrained. " -"The type is specified at object creation time by using a :dfn:`type code`, " -"which is a single character. The following type codes are defined:" -msgstr "" -"Ce module définit un type d'objet qui permet de représenter de façon " -"compacte un tableau (*array*) de valeurs élémentaires : caractères, entiers, " -"flottants. Les tableaux sont de type séquence et se comportent de manière " -"très similaire aux listes, sauf que les types d'objets qui y sont stockés " -"sont limités. Le type est spécifié au moment de la création de l’objet en " -"utilisant :dfn:`type code`, qui est un caractère unique. Voir ci-dessous " -"pour la définition des types :" - -#: library/array.rst:19 -msgid "Type code" -msgstr "Code d'indication du type" - -#: library/array.rst:19 -msgid "C Type" -msgstr "Type C" - -#: library/array.rst:19 -msgid "Python Type" -msgstr "Type Python" - -#: library/array.rst:19 -msgid "Minimum size in bytes" -msgstr "Taille minimum en octets" - -#: library/array.rst:19 -msgid "Notes" -msgstr "Notes" - -#: library/array.rst:21 -msgid "``'b'``" -msgstr "``'b'``" - -#: library/array.rst:21 -msgid "signed char" -msgstr "``signed char``" - -#: library/array.rst:23 library/array.rst:31 library/array.rst:35 -#: library/array.rst:39 library/array.rst:43 -msgid "int" -msgstr "*int*" - -#: library/array.rst:23 -msgid "1" -msgstr "1" - -#: library/array.rst:23 -msgid "``'B'``" -msgstr "``'B'``" - -#: library/array.rst:23 -msgid "unsigned char" -msgstr "``unsigned char``" - -#: library/array.rst:25 -msgid "``'u'``" -msgstr "``'u'``" - -#: library/array.rst:25 -msgid "wchar_t" -msgstr "" - -#: library/array.rst:27 -msgid "Unicode character" -msgstr "Caractère Unicode" - -#: library/array.rst:29 library/array.rst:33 library/array.rst:45 -msgid "2" -msgstr "2" - -#: library/array.rst:25 -msgid "\\(1)" -msgstr "\\(1)" - -#: library/array.rst:27 -msgid "``'w'``" -msgstr "``'w'``" - -#: library/array.rst:27 -msgid "Py_UCS4" -msgstr "" - -#: library/array.rst:37 library/array.rst:47 -msgid "4" -msgstr "4" - -#: library/array.rst:27 -msgid "\\(2)" -msgstr "\\(2)" - -#: library/array.rst:29 -msgid "``'h'``" -msgstr "``'h'``" - -#: library/array.rst:29 -msgid "signed short" -msgstr "``signed short``" - -#: library/array.rst:31 -msgid "``'H'``" -msgstr "``'H'``" - -#: library/array.rst:31 -msgid "unsigned short" -msgstr "``unsigned short``" - -#: library/array.rst:33 -msgid "``'i'``" -msgstr "``'i'``" - -#: library/array.rst:33 -msgid "signed int" -msgstr "``signed int``" - -#: library/array.rst:35 -msgid "``'I'``" -msgstr "``'I'``" - -#: library/array.rst:35 -msgid "unsigned int" -msgstr "``unsigned int``" - -#: library/array.rst:37 -msgid "``'l'``" -msgstr "``'l'``" - -#: library/array.rst:37 -msgid "signed long" -msgstr "``signed long``" - -#: library/array.rst:39 -msgid "``'L'``" -msgstr "``'L'``" - -#: library/array.rst:39 -msgid "unsigned long" -msgstr "``unsigned long``" - -#: library/array.rst:41 -msgid "``'q'``" -msgstr "``'q'``" - -#: library/array.rst:41 -msgid "signed long long" -msgstr "``signed long long``" - -#: library/array.rst:43 library/array.rst:51 -msgid "8" -msgstr "8" - -#: library/array.rst:43 -msgid "``'Q'``" -msgstr "``'Q'``" - -#: library/array.rst:43 -msgid "unsigned long long" -msgstr "``unsigned long long``" - -#: library/array.rst:45 -msgid "``'e'``" -msgstr "" - -#: library/array.rst:45 -#, fuzzy -msgid "_Float16" -msgstr "*float*" - -#: library/array.rst:47 library/array.rst:49 -msgid "float" -msgstr "*float*" - -#: library/array.rst:45 -msgid "\\(3)" -msgstr "" - -#: library/array.rst:47 -msgid "``'f'``" -msgstr "``'f'``" - -#: library/array.rst:49 -msgid "``'d'``" -msgstr "``'d'``" - -#: library/array.rst:49 -msgid "double" -msgstr "double" - -#: library/array.rst:51 -#, fuzzy -msgid "``'Zf'``" -msgstr "``'f'``" - -#: library/array.rst:51 -msgid "float complex" -msgstr "" - -#: library/array.rst:53 -msgid "complex" -msgstr "" - -#: library/array.rst:53 -msgid "\\(4)" -msgstr "" - -#: library/array.rst:53 -#, fuzzy -msgid "``'Zd'``" -msgstr "``'d'``" - -#: library/array.rst:53 -#, fuzzy -msgid "double complex" -msgstr "double" - -#: library/array.rst:53 -#, fuzzy -msgid "16" -msgstr "1" - -#: library/array.rst:57 -msgid "Notes:" -msgstr "Notes :" - -#: library/array.rst:60 -msgid "It can be 16 bits or 32 bits depending on the platform." -msgstr "" - -#: library/array.rst:62 -msgid "" -"``array('u')`` now uses :c:type:`wchar_t` as C type instead of deprecated " -"``Py_UNICODE``. This change doesn't affect its behavior because " -"``Py_UNICODE`` is alias of :c:type:`wchar_t` since Python 3.3." -msgstr "" - -#: library/array.rst:67 -msgid "Please migrate to ``'w'`` typecode." -msgstr "" - -#: library/array.rst:74 -msgid "" -"The IEEE 754 binary16 \"half precision\" type was introduced in the 2008 " -"revision of the `IEEE 754 standard `_. This type is not " -"widely supported by C compilers. It's available as :c:expr:`_Float16` type, " -"if the compiler supports the Annex H of the C23 standard." -msgstr "" - -#: library/array.rst:83 -msgid "" -"Complex types (``Zf`` and ``Zd``) are available unconditionally, regardless " -"on support for complex types (the Annex G of the C11 standard) by the C " -"compiler. As specified in the C11 standard, each complex type is represented " -"by a two-element C array containing, respectively, the real and imaginary " -"parts." -msgstr "" - -#: library/array.rst:93 -msgid "" -"The :ref:`ctypes ` and :ref:`struct ` modules, as well as third-party modules like `numpy `__, use similar -- but " -"slightly different -- type codes." -msgstr "" - -#: library/array.rst:99 -#, fuzzy -msgid "" -"The actual representation of values is determined by the machine " -"architecture (strictly speaking, by the C implementation). The actual size " -"can be accessed through the :attr:`array.itemsize` attribute." -msgstr "" -"La représentation réelle des valeurs est déterminée par l'architecture de la " -"machine (à proprement parler, par l'implémentation C). La taille réelle est " -"accessible via l'attribut :attr:`itemsize`." - -#: library/array.rst:103 -#, fuzzy -msgid "The module defines the following item:" -msgstr "Le module définit le type suivant :" - -#: library/array.rst:108 -#, fuzzy -msgid "A tuple with all available type codes." -msgstr "Une chaîne avec tous les codes de types disponibles." - -#: library/array.rst:110 -msgid "The type changed from :class:`str` to :class:`tuple`." -msgstr "" - -#: library/array.rst:114 -msgid "The module defines the following type:" -msgstr "Le module définit le type suivant :" - -#: library/array.rst:119 -#, fuzzy -msgid "" -"A new array whose items are restricted by *typecode*, and initialized from " -"the optional *initializer* value, which must be a :class:`bytes` " -"or :class:`bytearray` object, a Unicode string, or iterable over elements of " -"the appropriate type." -msgstr "" -"Un nouveau tableau dont les éléments sont limités par *typecode*, et " -"initialisés par la valeur optionnelle *initializer*, qui peut être une " -"liste, un :term:`bytes-like object`, ou un itérable sur des éléments du type " -"approprié." - -#: library/array.rst:124 -#, fuzzy -msgid "" -"If given a :class:`bytes` or :class:`bytearray` object, the initializer is " -"passed to the new array's :meth:`frombytes` method; if given a Unicode " -"string, the initializer is passed to the :meth:`fromunicode` method; " -"otherwise, the initializer's iterator is passed to the :meth:`extend` method " -"to add initial items to the array." -msgstr "" -"Si le paramètre *initializer* est une liste ou une chaîne de caractères, il " -"est passé à la méthode :meth:`fromlist`, :meth:`frombytes` " -"ou :meth:`fromunicode` du tableau (voir ci-dessous) pour ajouter les " -"éléments initiaux du tableau. Si c'est un itérable, il est passé à la " -"méthode :meth:`extend`." - -#: library/array.rst:131 -#, fuzzy -msgid "" -"Array objects support the ordinary :ref:`mutable ` :term:`sequence` operations of indexing, slicing, concatenation, " -"and multiplication. When using slice assignment, the assigned value must be " -"an array object with the same type code; in all other " -"cases, :exc:`TypeError` is raised. Array objects also implement the buffer " -"interface, and may be used wherever :term:`bytes-like objects ` are supported." -msgstr "" -"Les objets de tableau supportent les opérations classiques de séquence : " -"indiçage, découpage, concaténation et multiplication. Lors de l'utilisation " -"de tranche, la valeur assignée doit être un tableau du même type ; dans tous " -"les autres cas, l'exception :exc:`TypeError` est levée. Les objets de " -"tableau implémentent également l'interface tampon, et peuvent être utilisés " -"partout où :term:`bytes-like objects ` sont supportés." - -#: library/array.rst:137 -msgid "Arrays are :ref:`generic ` over the type of their contents." -msgstr "" - -#: library/array.rst:139 -msgid "" -"Raises an :ref:`auditing event ` ``array.__new__`` with arguments " -"``typecode``, ``initializer``." -msgstr "" -"Lève un :ref:`événement d'audit ` ``array.__new__`` avec les " -"arguments ``typecode``, ``initializer``." - -#: library/array.rst:144 -msgid "The typecode character used to create the array." -msgstr "" -"Le code (de type Python caractère) utilisé pour spécifier le type des " -"éléments du tableau." - -#: library/array.rst:149 -msgid "The length in bytes of one array item in the internal representation." -msgstr "" -"La longueur en octets d'un élément du tableau dans la représentation interne." - -#: library/array.rst:154 -#, fuzzy -msgid "Append a new item with the specified value to the end of the array." -msgstr "Ajoute un nouvel élément avec la valeur *x* à la fin du tableau." - -#: library/array.rst:159 -#, fuzzy -msgid "" -"Return a tuple ``(address, length)`` giving the current memory address and " -"the length in elements of the buffer used to hold array's contents. The " -"size of the memory buffer in bytes can be computed as ``array.buffer_info()" -"[1] * array.itemsize``. This is occasionally useful when working with low-" -"level (and inherently unsafe) I/O interfaces that require memory addresses, " -"such as certain :c:func:`!ioctl` operations. The returned numbers are valid " -"as long as the array exists and no length-changing operations are applied to " -"it." -msgstr "" -"Renvoie un *n*-uplet ``(address, length)`` indiquant l'adresse mémoire " -"courante et la longueur en éléments du tampon utilisé pour contenir le " -"contenu du tableau. La taille du tampon mémoire en octets peut être calculée " -"par ``array.buffer_info()[1] * array.itemsize``. Ceci est parfois utile " -"lorsque vous travaillez sur des interfaces E/S de bas niveau (et " -"intrinsèquement dangereuses) qui nécessitent des adresses mémoire, telles " -"que certaines opérations :c:func:`ioctl`. Les nombres renvoyés sont valides " -"tant que le tableau existe et qu'aucune opération qui modifie sa taille ne " -"lui est appliquée." - -#: library/array.rst:169 -msgid "" -"When using array objects from code written in C or C++ (the only way to " -"effectively make use of this information), it makes more sense to use the " -"buffer interface supported by array objects. This method is maintained for " -"backward compatibility and should be avoided in new code. The buffer " -"interface is documented in :ref:`bufferobjects`." -msgstr "" -"Lors de l'utilisation d'objets tableaux provenant de codes écrits en C ou C+" -"+ (le seul moyen d'utiliser efficacement ces informations), il est plus " -"logique d'utiliser l'interface tampon supportée par les objets tableaux. " -"Cette méthode est maintenue pour des raisons de rétrocompatibilité et " -"devrait être évitée dans un nouveau code. L'interface tampon est documentée " -"dans :ref:`bufferobjects`." - -#: library/array.rst:178 -#, fuzzy -msgid "" -"\"Byteswap\" all items of the array. This is only supported for values " -"which are 1, 2, 4, 8 or 16 bytes in size; for other types of " -"values, :exc:`RuntimeError` is raised. It is useful when reading data from " -"a file written on a machine with a different byte order. Note, that for " -"complex types the order of components (the real part, followed by imaginary " -"part) is preserved." -msgstr "" -"Boutisme de tous les éléments du tableau. Ceci n'est pris en charge que pour " -"les valeurs de 1, 2, 4 ou 8 octets ; pour les autres types de " -"valeur, :exc:`RuntimeError` est levée. Il est utile lors de la lecture de " -"données à partir d'un fichier écrit sur une machine avec un ordre d'octets " -"différent." - -#: library/array.rst:187 -#, fuzzy -msgid "Return the number of occurrences of *value* in the array." -msgstr "Renvoi le nombre d'occurrences de *x* dans le tableau." - -#: library/array.rst:192 -msgid "" -"Append items from *iterable* to the end of the array. If *iterable* is " -"another array, it must have *exactly* the same type code; if " -"not, :exc:`TypeError` will be raised. If *iterable* is not an array, it " -"must be iterable and its elements must be the right type to be appended to " -"the array." -msgstr "" -"Ajoute les éléments de *iterable* à la fin du tableau. Si *iterable* est un " -"autre tableau, il doit le même code d'indication du type ; dans le cas " -"contraire, :exc:`TypeError` sera levée. Si *iterable* n'est pas un tableau, " -"il doit être itérable et ces éléments doivent être du bon type pour être " -"ajoutés dans le tableau." - -#: library/array.rst:200 -#, fuzzy -msgid "" -"Appends items from the :term:`bytes-like object`, interpreting its content " -"as an array of machine values (as if it had been read from a file using " -"the :meth:`fromfile` method)." -msgstr "" -"Ajoute des éléments de la chaîne, interprétant la chaîne comme un tableau de " -"valeurs machine (comme si elle avait été lue depuis le fichier en utilisant " -"la méthode :meth:`from file`)." - -#: library/array.rst:204 -#, fuzzy -msgid ":meth:`!fromstring` is renamed to :meth:`frombytes` for clarity." -msgstr "" -":meth:`fromstring` est renommée en :meth:`frombytes` pour plus de lisibilité." - -#: library/array.rst:210 -#, fuzzy -msgid "" -"Read *n* items (as machine values) from the :term:`file object` *f* and " -"append them to the end of the array. If less than *n* items are " -"available, :exc:`EOFError` is raised, but the items that were available are " -"still inserted into the array." -msgstr "" -"Lit *n* éléments (en tant que valeurs machine) du :term:`file object` *f* et " -"les ajouter à la fin du tableau. Si moins de *n* éléments sont " -"disponibles, :exc:`EOFError` est levée, mais les éléments qui étaient " -"disponibles sont tout de même insérés dans le tableau. *f* doit être un " -"objet fichier natif ; quelque chose d'autre avec une méthode :meth:`read` ne " -"suffit pas." - -#: library/array.rst:218 -msgid "" -"Append items from the list. This is equivalent to ``for x in list: " -"a.append(x)`` except that if there is a type error, the array is unchanged." -msgstr "" -"Ajoute les éléments de la liste. C'est l'équivalent de ``for x in list: " -"a.append(x)`` sauf que s'il y a une erreur de type, le tableau est inchangé." - -#: library/array.rst:224 -#, fuzzy -msgid "" -"Extends this array with data from the given Unicode string. The array must " -"have type code ``'u'`` or ``'w'``; otherwise a :exc:`ValueError` is raised. " -"Use ``array.frombytes(unicodestring.encode(enc))`` to append Unicode data to " -"an array of some other type." -msgstr "" -"Étend ce tableau avec les données de la chaîne Unicode donnée. Le tableau " -"doit être de type ``'u'`` ; sinon :exc:`ValueError` est levée. Utiliser " -"``array.frombytes(unicodestring.encode(enc))`` pour ajouter des données " -"Unicode à un tableau d'un autre type." - -#: library/array.rst:232 -msgid "" -"Return the smallest *i* such that *i* is the index of the first occurrence " -"of *value* in the array. The optional arguments *start* and *stop* can be " -"specified to search for *value* within a subsection of the array. " -"Raise :exc:`ValueError` if *value* is not found." -msgstr "" - -#: library/array.rst:237 -msgid "Added optional *start* and *stop* parameters." -msgstr "" - -#: library/array.rst:243 -#, fuzzy -msgid "" -"Insert a new item *value* in the array before position *index*. Negative " -"values are treated as being relative to the end of the array." -msgstr "" -"Ajoute un nouvel élément avec la valeur *x* dans le tableau avant la " -"position *i*. Les valeurs négatives sont traitées relativement à la fin du " -"tableau." - -#: library/array.rst:249 -msgid "" -"Removes the item with the index *i* from the array and returns it. The " -"optional argument defaults to ``-1``, so that by default the last item is " -"removed and returned." -msgstr "" -"Supprime l'élément du tableau avec l'index *i* et le renvoie. L'argument " -"optionnel par défaut est à ``-1``, de sorte que par défaut le dernier " -"élément est supprimé et renvoyé." - -#: library/array.rst:256 -#, fuzzy -msgid "Remove the first occurrence of *value* from the array." -msgstr "Supprime la première occurrence de *x* du tableau." - -#: library/array.rst:261 -#, fuzzy -msgid "Remove all elements from the array." -msgstr "Supprime la première occurrence de *x* du tableau." - -#: library/array.rst:268 -msgid "Reverse the order of the items in the array." -msgstr "Inverse l'ordre des éléments du tableau." - -#: library/array.rst:273 -msgid "" -"Convert the array to an array of machine values and return the bytes " -"representation (the same sequence of bytes that would be written to a file " -"by the :meth:`tofile` method.)" -msgstr "" -"Convertit le tableau en un tableau de valeurs machine et renvoie la " -"représentation en octets (la même séquence d'octets qui serait écrite par la " -"méthode :meth:`tofile`)." - -#: library/array.rst:277 -#, fuzzy -msgid ":meth:`!tostring` is renamed to :meth:`tobytes` for clarity." -msgstr "" -":meth:`tostring` est renommé en :meth:`tobytes` pour plus de lisibilité." - -#: library/array.rst:283 -msgid "Write all items (as machine values) to the :term:`file object` *f*." -msgstr "" -"Écrit tous les éléments (en tant que valeurs machine) du :term:`file object` " -"*f*." - -#: library/array.rst:288 -msgid "Convert the array to an ordinary list with the same items." -msgstr "Convertit le tableau en une liste ordinaire avec les mêmes éléments." - -#: library/array.rst:293 -#, fuzzy -msgid "" -"Convert the array to a Unicode string. The array must have a type ``'u'`` " -"or ``'w'``; otherwise a :exc:`ValueError` is raised. Use " -"``array.tobytes().decode(enc)`` to obtain a Unicode string from an array of " -"some other type." -msgstr "" -"Convertit le tableau en une chaîne Unicode. Le tableau doit être un tableau " -"de type ``'u'`` ; sinon :exc:`ValueError` est levée. Utilisez " -"``array.tobytes().decode(enc)`` pour obtenir une chaîne Unicode depuis un " -"tableau de tout autre type." - -#: library/array.rst:298 -#, fuzzy -msgid "" -"The string representation of array objects has the form ``array(typecode, " -"initializer)``. The *initializer* is omitted if the array is empty, " -"otherwise it is a Unicode string if the *typecode* is ``'u'`` or ``'w'``, " -"otherwise it is a list of numbers. The string representation is guaranteed " -"to be able to be converted back to an array with the same type and value " -"using :func:`eval`, so long as the :class:`~array.array` class has been " -"imported using ``from array import array``. Variables ``inf`` and ``nan`` " -"must also be defined if it contains corresponding floating-point values. " -"Examples::" -msgstr "" -"Quand un objet tableau est affiché ou converti en chaîne, il est représenté " -"en tant que ``array(typecode, initializer)``. *initializer* est omis si le " -"tableau est vide, sinon c'est une chaine si le *typecode* est ``'u'``, sinon " -"c'est une liste de nombres. Il est garanti que la chaîne puisse être " -"convertie en un tableau avec le même type et la même valeur en " -"utilisant :func:`eval`, tant que la classe :class:`~array.array` a été " -"importée en utilisant ``from array import array``. Exemples ::" - -#: library/array.rst:318 -msgid "Module :mod:`struct`" -msgstr "Module :mod:`struct`" - -#: library/array.rst:319 -msgid "Packing and unpacking of heterogeneous binary data." -msgstr "Empaquetage et dépaquetage de données binaires hétérogènes." - -#: library/array.rst:321 -msgid "`NumPy `_" -msgstr "" - -#: library/array.rst:322 -msgid "The NumPy package defines another array type." -msgstr "" - -#~ msgid "Module :mod:`xdrlib`" -#~ msgstr "Module :mod:`xdrlib`" - -#~ msgid "" -#~ "Packing and unpacking of External Data Representation (XDR) data as used " -#~ "in some remote procedure call systems." -#~ msgstr "" -#~ "Empaquetage et dépaquetage des données XDR (External Data Representation) " -#~ "telles qu'elles sont utilisées dans certains systèmes d'appels de " -#~ "procédures à distance (ou RPC pour *remote procedure call* en anglais)." - -#~ msgid "The following data items and methods are also supported:" -#~ msgstr "" -#~ "Les éléments de données et méthodes suivants sont également supportés :" - -#~ msgid "" -#~ "Return the smallest *i* such that *i* is the index of the first " -#~ "occurrence of *x* in the array." -#~ msgstr "" -#~ "Renvoie le plus petit *i* tel que *i* est l'index de la première " -#~ "occurrence de *x* dans le tableau." - -#~ msgid "`The Numerical Python Documentation `_" -#~ msgstr "" -#~ "`La documentation de *Numerical Python* `" - -#~ msgid "" -#~ "The Numeric Python extension (NumPy) defines another array type; see " -#~ "http://www.numpy.org/ for further information about Numerical Python." -#~ msgstr "" -#~ "L'extension *Numeric Python* (NumPy) définit un autre type de tableau ; " -#~ "voir http://www.numpy.org/ pour plus d'informations sur *Numeric Python*." - -#~ msgid "Py_UNICODE" -#~ msgstr "Py_UNICODE" - -#~ msgid "" -#~ "The ``'u'`` type code corresponds to Python's obsolete unicode character " -#~ "(:c:type:`Py_UNICODE` which is :c:type:`wchar_t`). Depending on the " -#~ "platform, it can be 16 bits or 32 bits." -#~ msgstr "" -#~ "Le code de type ``'u'`` correspond au type obsolète de Python caractère " -#~ "Unicode (:c:type:`Py_UNICODE` de type :c:type:`wchar_t`). Selon la " -#~ "plateforme, il peut être 16 bits ou 32 bits." - -#~ msgid "" -#~ "``'u'`` will be removed together with the rest of " -#~ "the :c:type:`Py_UNICODE` API." -#~ msgstr "``'u'`` sera supprimé avec le reste de l'API :c:type:`Py_UNICODE`." - -#~ msgid "Deprecated alias for :meth:`frombytes`." -#~ msgstr "Alias obsolète de :meth:`frombytes`." - -#~ msgid "Deprecated alias for :meth:`tobytes`." -#~ msgstr "Alias obsolète de :meth:`tobytes`." diff --git a/library/ast.po b/library/ast.po deleted file mode 100644 index e47a73d2b4..0000000000 --- a/library/ast.po +++ /dev/null @@ -1,2229 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-09-15 23:54+0200\n" -"Last-Translator: Jean Abou Samra \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.1\n" - -#: library/ast.rst:2 -#, fuzzy -msgid ":mod:`!ast` --- Abstract syntax trees" -msgstr ":mod:`ast` — Arbres Syntaxiques Abstraits" - -#: library/ast.rst:11 -msgid "**Source code:** :source:`Lib/ast.py`" -msgstr "**Code source :** :source:`Lib/ast.py`" - -#: library/ast.rst:15 -#, fuzzy -msgid "" -"The :mod:`!ast` module helps Python applications to process trees of the " -"Python abstract syntax grammar. The abstract syntax itself might change " -"with each Python release; this module helps to find out programmatically " -"what the current grammar looks like." -msgstr "" -"Le module :mod:`ast` permet aux applications Python de traiter les arbres " -"syntaxiques, dérivés directement de la grammaire abstraite du langage. On " -"peut notamment déterminer dans un programme la forme de chaque élément de " -"grammaire, qui est susceptible d'être modifiée par les nouvelles versions de " -"Python." - -#: library/ast.rst:20 -msgid "" -"An abstract syntax tree can be generated by " -"passing :data:`ast.PyCF_ONLY_AST` as a flag to the :func:`compile` built-in " -"function, or using the :func:`parse` helper provided in this module. The " -"result will be a tree of objects whose classes all inherit " -"from :class:`ast.AST`. An abstract syntax tree can be compiled into a " -"Python code object using the built-in :func:`compile` function." -msgstr "" -"Un arbre syntaxique abstrait peut être généré en passant " -"l'option :data:`ast.PyCF_ONLY_AST` à la fonction native :func:`compile`, ou " -"à l'aide de la fonction auxiliaire :func:`parse` fournie par ce module. Le " -"résultat est un arbre composé d'objets dont les classes héritent toutes " -"de :class:`ast.AST`. On peut compiler les arbres en code objet Python à " -"l'aide de la fonction native :func:`compile`." - -#: library/ast.rst:30 -#, fuzzy -msgid "Abstract grammar" -msgstr "Grammaire abstraite" - -#: library/ast.rst:32 -msgid "The abstract grammar is currently defined as follows:" -msgstr "La grammaire abstraite est actuellement définie comme suit :" - -#: library/ast.rst:41 -msgid "Node classes" -msgstr "Classes de nœuds" - -#: library/ast.rst:45 -#, fuzzy -msgid "" -"This is the abstract base of all AST node classes. The actual node classes " -"are derived from the :file:`Parser/Python.asdl` file, which is " -"reproduced :ref:`above `. They are defined in the :mod:`!" -"_ast` C module and re-exported in :mod:`!ast`." -msgstr "" -"C'est la classe de base de toute classe de nœuds des d'arbres syntaxiques " -"abstraits. Les classes de nœuds elle-mêmes sont dérivées du " -"fichier :file:`Parser/Python.asdl`, qui est reproduit :ref:`ci-dessous " -"`. Elles sont définies dans le module C :mod:`_ast` et ré-" -"exportées dans le module :mod:`ast`." - -#: library/ast.rst:50 -msgid "" -"There is one class defined for each left-hand side symbol in the abstract " -"grammar (for example, :class:`ast.stmt` or :class:`ast.expr`). In addition, " -"there is one class defined for each constructor on the right-hand side; " -"these classes inherit from the classes for the left-hand side trees. For " -"example, :class:`ast.BinOp` inherits from :class:`ast.expr`. For production " -"rules with alternatives (aka \"sums\"), the left-hand side class is " -"abstract: only instances of specific constructor nodes are ever created." -msgstr "" -"Il y a une classe définie pour chacun des symboles présents à gauche dans la " -"grammaire abstraite (par exemple :class:`ast.stmt` ou :class:`ast.expr`). En " -"plus de cela, une classe est définie pour chacun des constructeurs présentés " -"à droite ; ces classes héritent des classes situées à leur gauche dans " -"l'arbre. Par exemple, la classe :class:`ast.BinOp` hérite de la " -"classe :class:`ast.expr`. Pour les règles de réécriture avec alternatives " -"(les « sommes »), la classe de la partie gauche est abstraite : seules les " -"classes de nœuds à droite sont instanciées." - -#: library/ast.rst:63 -#, fuzzy -msgid "" -"Each concrete class has an attribute :attr:`!_fields` which gives the names " -"of all child nodes." -msgstr "" -"Chaque classe concrète possède un attribut :attr:`_fields` donnant les noms " -"de tous les nœuds enfants." - -#: library/ast.rst:66 -msgid "" -"Each instance of a concrete class has one attribute for each child node, of " -"the type as defined in the grammar. For example, :class:`ast.BinOp` " -"instances have an attribute :attr:`left` of type :class:`ast.expr`." -msgstr "" -"Chaque instance d'une classe concrète possède un attribut pour chaque nœud " -"enfant, du type défini par la grammaire. Par exemple, les " -"instances :class:`ast.BinOp` possèdent un attribut :attr:`left` de " -"type :class:`ast.expr`." - -#: library/ast.rst:70 -msgid "" -"If these attributes are marked as optional in the grammar (using a question " -"mark), the value might be ``None``. If the attributes can have zero-or-more " -"values (marked with an asterisk), the values are represented as Python " -"lists. All possible attributes must be present and have valid values when " -"compiling an AST with :func:`compile`." -msgstr "" -"Si un attribut est marqué comme optionnel dans la grammaire (avec un point " -"d'interrogation ``?``), sa valeur peut être ``None``. S'il peut avoir zéro, " -"une ou plusieurs valeurs (ce qui est marqué par un astérisque ``*``), elles " -"sont regroupées dans une liste Python. Tous les attributs possibles doivent " -"être présents et avoir une valeur valide pour compiler un arbre syntaxique " -"avec :func:`compile`." - -#: library/ast.rst:78 -msgid "" -"The :attr:`!_field_types` attribute on each concrete class is a dictionary " -"mapping field names (as also listed in :attr:`_fields`) to their types." -msgstr "" - -#: library/ast.rst:93 -#, fuzzy -msgid "" -"Instances of :class:`ast.expr` and :class:`ast.stmt` subclasses " -"have :attr:`lineno`, :attr:`col_offset`, :attr:`end_lineno`, " -"and :attr:`end_col_offset` attributes. The :attr:`lineno` " -"and :attr:`end_lineno` are the first and last line numbers of source text " -"span (1-indexed so the first line is line 1) and the :attr:`col_offset` " -"and :attr:`end_col_offset` are the corresponding UTF-8 byte offsets of the " -"first and last tokens that generated the node. The UTF-8 offset is recorded " -"because the parser uses UTF-8 internally." -msgstr "" -"Les instances des sous-classes de :class:`ast.expr` et :class:`ast.stmt` " -"possèdent les " -"attributs :attr:`lineno`, :attr:`col_offset`, :attr:`end_lineno` " -"et :attr:`end_col_offset`. Les attributs :attr:`lineno` " -"et :attr:`end_lineno` sont les numéros de ligne de début et de fin dans le " -"code source (indexés à partir de 1, la première ligne est la ligne 1). Les " -"attributs :attr:`col_offset` et :attr:`end_col_offset` représentent quant à " -"eux les décalages respectifs, en octets au format UTF-8, du premier et du " -"dernier lexème qui ont généré le nœud. Les décalages sont exprimés en octets " -"au format UTF-8 parce que l'analyseur syntaxique utilise l'UTF-8 en interne." - -#: library/ast.rst:102 -msgid "" -"Note that the end positions are not required by the compiler and are " -"therefore optional. The end offset is *after* the last symbol, for example " -"one can get the source segment of a one-line expression node using " -"``source_line[node.col_offset : node.end_col_offset]``." -msgstr "" -"Les décalages *end…* ne sont pas obligatoires ni nécessaires au compilateur. " -"*end_col_offset* pointe *après* le dernier lexème. On peut donc obtenir la " -"partie du code source ayant donné lieu à une expression avec " -"``ligne_source[nœud.col_offset : nœud.end_col_offset]``." - -#: library/ast.rst:107 -msgid "" -"The constructor of a class :class:`ast.T` parses its arguments as follows:" -msgstr "" -"Le constructeur d'une classe nommée :class:`ast.T` analyse ses arguments " -"comme suit :" - -#: library/ast.rst:109 -msgid "" -"If there are positional arguments, there must be as many as there are items " -"in :attr:`T._fields`; they will be assigned as attributes of these names." -msgstr "" -"S'il y a des arguments positionnels, il doit y avoir autant de termes " -"dans :attr:`T._fields` ; ils sont assignés comme attributs portant ces noms." - -#: library/ast.rst:111 -msgid "" -"If there are keyword arguments, they will set the attributes of the same " -"names to the given values." -msgstr "" -"S'il y a des arguments nommés, ils définissent les attributs de mêmes noms " -"avec les valeurs données." - -#: library/ast.rst:114 -msgid "" -"For example, to create and populate an :class:`ast.UnaryOp` node, you could " -"use ::" -msgstr "" -"Par exemple, pour créer et peupler un nœud :class:`ast.UnaryOp`, on peut " -"utiliser ::" - -#: library/ast.rst:120 -msgid "" -"If a field that is optional in the grammar is omitted from the constructor, " -"it defaults to ``None``. If a list field is omitted, it defaults to the " -"empty list. If a field of type :class:`!ast.expr_context` is omitted, it " -"defaults to :class:`Load() `. If any other field is omitted, " -"a :exc:`DeprecationWarning` is raised and the AST node will not have this " -"field. In Python 3.15, this condition will raise an error." -msgstr "" - -#: library/ast.rst:129 -msgid "Class :class:`ast.Constant` is now used for all constants." -msgstr "" -"toutes les constantes sont désormais représentées par des instances " -"de :class:`ast.Constant`." - -#: library/ast.rst:133 -msgid "" -"Simple indices are represented by their value, extended slices are " -"represented as tuples." -msgstr "" - -#: library/ast.rst:138 -msgid "" -"AST node constructors were changed to provide sensible defaults for omitted " -"fields: optional fields now default to ``None``, list fields default to an " -"empty list, and fields of type :class:`!ast.expr_context` default " -"to :class:`Load() `. Previously, omitted attributes would not " -"exist on constructed nodes (accessing them raised :exc:`AttributeError`)." -msgstr "" - -#: library/ast.rst:146 -msgid "" -"The :meth:`~object.__repr__` output of :class:`~ast.AST` nodes includes the " -"values of the node fields." -msgstr "" - -#: library/ast.rst:151 -#, fuzzy -msgid "" -"Previous versions of Python provided the AST classes :class:`!" -"ast.Num`, :class:`!ast.Str`, :class:`!ast.Bytes`, :class:`!ast.NameConstant` " -"and :class:`!ast.Ellipsis`, which were deprecated in Python 3.8. These " -"classes were removed in Python 3.14, and their functionality has been " -"replaced with :class:`ast.Constant`." -msgstr "" -"les " -"classes :class:`ast.Num`, :class:`ast.Str`, :class:`ast.Bytes`, :class:`ast.NameConstant` " -"et :class:`ast.Ellipsis` sont toujours présentes, mais seront supprimées " -"dans une version future. Pour l'instant, leurs constructeurs renvoient des " -"instances de classes différentes." - -#: library/ast.rst:159 -#, fuzzy -msgid "" -"Old classes :class:`!ast.Index` and :class:`!ast.ExtSlice` are still " -"available, but they will be removed in future Python releases. In the " -"meantime, instantiating them will return an instance of a different class." -msgstr "" -"les classes :class:`ast.Index` et :class:`ast.ExtSlice` seront retirées à " -"l'avenir. Pour l'instant, elles sont toujours disponibles mais leurs " -"constructeurs renvoient des instances de classes différentes." - -#: library/ast.rst:166 -msgid "" -"Previous versions of Python allowed the creation of AST nodes that were " -"missing required fields. Similarly, AST node constructors allowed arbitrary " -"keyword arguments that were set as attributes of the AST node, even if they " -"did not match any of the fields of the AST node. These cases now raise " -"a :exc:`TypeError`." -msgstr "" - -#: library/ast.rst:173 -msgid "" -"In the :ref:`grammar above `, the AST node classes that " -"correspond to production rules with variants (aka \"sums\") are abstract " -"classes. Previous versions of Python allowed for the creation of direct " -"instances of these abstract node classes. This behavior is deprecated and " -"will be removed in Python 3.20." -msgstr "" - -#: library/ast.rst:181 -msgid "" -"The descriptions of the specific node classes displayed here were initially " -"adapted from the fantastic `Green Tree Snakes `__ project and all its " -"contributors." -msgstr "" -"Les descriptions individuelles des classes de nœuds dans la prochaine " -"section sont au départ adaptées du merveilleux projet `Green Tree Snakes " -"`_, porté par de nombreux " -"contributeurs." - -#: library/ast.rst:190 -msgid "Root nodes" -msgstr "" - -#: library/ast.rst:194 -msgid "" -"A Python module, as with :ref:`file input `. Node type generated " -"by :func:`ast.parse` in the default ``\"exec\"`` *mode*." -msgstr "" - -#: library/ast.rst:197 -msgid "``body`` is a :class:`list` of the module's :ref:`ast-statements`." -msgstr "" - -#: library/ast.rst:199 -msgid "" -"``type_ignores`` is a :class:`list` of the module's type ignore comments; " -"see :func:`ast.parse` for more details." -msgstr "" - -#: library/ast.rst:215 -msgid "" -"A single Python :ref:`expression input `. Node type " -"generated by :func:`ast.parse` when *mode* is ``\"eval\"``." -msgstr "" - -#: library/ast.rst:218 -msgid "" -"``body`` is a single node, one of the :ref:`expression types `." -msgstr "" - -#: library/ast.rst:230 -msgid "" -"A single :ref:`interactive input `, like in :ref:`tut-interac`. " -"Node type generated by :func:`ast.parse` when *mode* is ``\"single\"``." -msgstr "" - -#: library/ast.rst:233 -msgid "``body`` is a :class:`list` of :ref:`statement nodes `." -msgstr "" - -#: library/ast.rst:252 -msgid "" -"A representation of an old-style type comments for functions, as Python " -"versions prior to 3.5 didn't support :pep:`484` annotations. Node type " -"generated by :func:`ast.parse` when *mode* is ``\"func_type\"``." -msgstr "" - -#: library/ast.rst:256 -msgid "Such type comments would look like this::" -msgstr "" - -#: library/ast.rst:262 -msgid "" -"``argtypes`` is a :class:`list` of :ref:`expression nodes `." -msgstr "" - -#: library/ast.rst:264 -msgid "``returns`` is a single :ref:`expression node `." -msgstr "" - -#: library/ast.rst:281 -msgid "Literals" -msgstr "Littéraux" - -#: library/ast.rst:285 -#, fuzzy -msgid "" -"A constant value. The ``value`` attribute of the ``Constant`` literal " -"contains the Python object it represents. The values represented can be " -"instances " -"of :class:`str`, :class:`bytes`, :class:`int`, :class:`float`, :class:`complex`, " -"and :class:`bool`, and the constants :data:`None` and :data:`Ellipsis`." -msgstr "" -"Valeur constante, contenue dans le champ *value*. Les valeurs possibles sont " -"celles de types simples comme les nombres, les chaînes de caractères, ou " -"encore ``None``, mais aussi certains conteneurs immuables (*n*-uplets et " -"ensembles figés) lorsque tous leurs éléments sont constants." - -#: library/ast.rst:290 -msgid "" -"The ``kind`` attribute is an optional string. For string literals with a " -"``u`` prefix, ``kind`` is set to ``'u'``. For all other constants, ``kind`` " -"is ``None``." -msgstr "" - -#: library/ast.rst:306 -msgid "" -"Node representing a single formatting field in an f-string. If the string " -"contains a single formatting field and nothing else the node can be isolated " -"otherwise it appears in :class:`JoinedStr`." -msgstr "" -"Champ de formatage dans une chaîne littérale formatée (*f-string*). Ce nœud " -"peut être isolé si la chaîne contient un unique champ et rien d'autre. " -"Sinon, il apparaît dans :class:`JoinedStr`." - -#: library/ast.rst:310 -msgid "" -"``value`` is any expression node (such as a literal, a variable, or a " -"function call)." -msgstr "" -"*value* est un nœud d'expression quelconque (comme un littéral, une " -"variable, ou encore un appel de fonction)." - -#: library/ast.rst:394 -msgid "``conversion`` is an integer:" -msgstr "*conversion* est un entier parmi les valeurs suivantes :" - -#: library/ast.rst:314 -msgid "-1: no formatting" -msgstr "-1, aucun formatage ;" - -#: library/ast.rst:315 -#, fuzzy -msgid "97 (``ord('a')``): ``!a`` :func:`ASCII ` formatting" -msgstr "97, pour le formatage par ``ascii()`` correspondant à ``!a``." - -#: library/ast.rst:316 -#, fuzzy -msgid "114 (``ord('r')``): ``!r`` :func:`repr` formatting" -msgstr "114, pour le formatage par ``repr()`` correspondant à ``!r`` ;" - -#: library/ast.rst:317 -#, fuzzy -msgid "115 (``ord('s')``): ``!s`` :func:`string ` formatting" -msgstr "115, pour le formatage par ``str()`` correspondant à ``!s`` ;" - -#: library/ast.rst:319 -msgid "" -"``format_spec`` is a :class:`JoinedStr` node representing the formatting of " -"the value, or ``None`` if no format was specified. Both ``conversion`` and " -"``format_spec`` can be set at the same time." -msgstr "" -"*format_spec* est un nœud :class:`JoinedStr` qui précise la manière de " -"formater la valeur. Si aucun formatage particulier n'a été donné, " -"*format_spec* vaut ``None``. *conversion* et *format_spec* peuvent tout à " -"fait coexister." - -#: library/ast.rst:326 -msgid "" -"An f-string, comprising a series of :class:`FormattedValue` " -"and :class:`Constant` nodes." -msgstr "" -"Chaîne littérale formatée (*f-string*), qui contient une liste de " -"nœuds :class:`FormattedValue` et :class:`Constant`." - -#: library/ast.rst:355 -msgid "" -"Node representing a template string literal, comprising a series " -"of :class:`Interpolation` and :class:`Constant` nodes. These nodes may be " -"any order, and do not need to be interleaved." -msgstr "" - -#: library/ast.rst:383 -msgid "" -"Node representing a single interpolation field in a template string literal." -msgstr "" - -#: library/ast.rst:385 -#, fuzzy -msgid "" -"``value`` is any expression node (such as a literal, a variable, or a " -"function call). This has the same meaning as ``FormattedValue.value``." -msgstr "" -"*value* est un nœud d'expression quelconque (comme un littéral, une " -"variable, ou encore un appel de fonction)." - -#: library/ast.rst:388 -msgid "" -"``str`` is a constant containing the text of the interpolation expression." -msgstr "" - -#: library/ast.rst:390 -msgid "" -"If ``str`` is set to ``None``, then ``value`` is used to generate code when " -"calling :func:`ast.unparse`. This no longer guarantees that the generated " -"code is identical to the original and is intended for code generation." -msgstr "" - -#: library/ast.rst:396 -#, fuzzy -msgid "-1: no conversion" -msgstr "-1, aucun formatage ;" - -#: library/ast.rst:397 -msgid "97 (``ord('a')``): ``!a`` :func:`ASCII ` conversion" -msgstr "" - -#: library/ast.rst:398 -msgid "114 (``ord('r')``): ``!r`` :func:`repr` conversion" -msgstr "" - -#: library/ast.rst:399 -msgid "115 (``ord('s')``): ``!s`` :func:`string ` conversion" -msgstr "" - -#: library/ast.rst:401 -msgid "This has the same meaning as ``FormattedValue.conversion``." -msgstr "" - -#: library/ast.rst:402 -#, fuzzy -msgid "" -"``format_spec`` is a :class:`JoinedStr` node representing the formatting of " -"the value, or ``None`` if no format was specified. Both ``conversion`` and " -"``format_spec`` can be set at the same time. This has the same meaning as " -"``FormattedValue.format_spec``." -msgstr "" -"*format_spec* est un nœud :class:`JoinedStr` qui précise la manière de " -"formater la valeur. Si aucun formatage particulier n'a été donné, " -"*format_spec* vaut ``None``. *conversion* et *format_spec* peuvent tout à " -"fait coexister." - -#: library/ast.rst:411 -msgid "" -"A list or tuple. ``elts`` holds a list of nodes representing the elements. " -"``ctx`` is :class:`Store` if the container is an assignment target (i.e. " -"``(x,y)=something``), and :class:`Load` otherwise." -msgstr "" -"Liste ou *n*-uplet, dont les éléments sont rassemblés dans la liste *elts*. " -"*ctx* est une instance de :class:`Store` si la liste ou le *n*-uplet est la " -"cible d'une affectation (par exemple ``(x, y) = quelque_chose``). Sinon, " -"c'est une instance de :class:`Load`." - -#: library/ast.rst:435 -msgid "A set. ``elts`` holds a list of nodes representing the set's elements." -msgstr "Ensemble. *elts* est la liste de ses éléments." - -#: library/ast.rst:450 -msgid "" -"A dictionary. ``keys`` and ``values`` hold lists of nodes representing the " -"keys and the values respectively, in matching order (what would be returned " -"when calling :code:`dictionary.keys()` and :code:`dictionary.values()`)." -msgstr "" -"Dictionnaire. Les listes *keys* et *values* contiennent respectivement les " -"clés et les valeurs. Leurs ordres se correspondent, c'est-à-dire que la " -"valeur associée à l'élément d'indice *i* dans *keys* est à chercher à " -"l'indice *i* de *values*. *keys* et *values* sont donc des équivalents à " -"``dictionnaire.keys()`` et ``dictionnaire.values()``." - -#: library/ast.rst:454 -msgid "" -"When doing dictionary unpacking using dictionary literals the expression to " -"be expanded goes in the ``values`` list, with a ``None`` at the " -"corresponding position in ``keys``." -msgstr "" -"Si un dictionnaire littéral contient une expression doublement étoilée à " -"déballer, elle est intégrée dans *values*, et ``None`` est mis à la place " -"correspondante dans *keys*." - -#: library/ast.rst:472 -msgid "Variables" -msgstr "Variables" - -#: library/ast.rst:476 -msgid "" -"A variable name. ``id`` holds the name as a string, and ``ctx`` is one of " -"the following types." -msgstr "" -"Variable, dont le nom est *id* (une chaîne de caractères). *ctx* est de l'un " -"des trois types :" - -#: library/ast.rst:484 -msgid "" -"Variable references can be used to load the value of a variable, to assign a " -"new value to it, or to delete it. Variable references are given a context to " -"distinguish these cases." -msgstr "" -"Ces types de contexte distinguent les variables selon qu'elles sont " -"utilisées pour lire la valeur, mettre la variable à une nouvelle valeur, ou " -"supprimer la variable." - -#: library/ast.rst:514 -msgid "" -"A ``*var`` variable reference. ``value`` holds the variable, typically " -"a :class:`Name` node. This type must be used when building a :class:`Call` " -"node with ``*args``." -msgstr "" -"Élément étoilé. *value* est le nœud auquel s'applique l'étoile. Le plus " -"souvent, *value* est une instance de :class:`Name`. Ce type est notamment " -"nécessaire pour les appels de fonction avec déballage d'arguments (par " -"exemple ``fonction(*args)`` ; voir aussi :class:`Call`)." - -#: library/ast.rst:538 -msgid "Expressions" -msgstr "Expressions" - -#: library/ast.rst:542 -msgid "" -"When an expression, such as a function call, appears as a statement by " -"itself with its return value not used or stored, it is wrapped in this " -"container. ``value`` holds one of the other nodes in this section, " -"a :class:`Constant`, a :class:`Name`, a :class:`Lambda`, a :class:`Yield` " -"or :class:`YieldFrom` node." -msgstr "" -"Lorsque une expression, comme l'appel d'une fonction, apparaît comme une " -"instruction à elle seule, sans que la valeur ne soit utilisée ou " -"sauvegardée, l'expression est insérée dans ce conteneur. Le type de *value* " -"peut être l'un des autres nœuds décrits dans cette section, ou bien " -"parmi :class:`Constant`, :class:`Name`, :class:`Lambda`, :class:`Yield` " -"et :class:`YieldFrom`." - -#: library/ast.rst:560 -msgid "" -"A unary operation. ``op`` is the operator, and ``operand`` any expression " -"node." -msgstr "" -"Unité lexicale désignant une opération unaire. L'opérateur est *op*, " -"l'opérande *operand* est un nœud d'expression quelconque." - -#: library/ast.rst:569 -msgid "" -"Unary operator tokens. :class:`Not` is the ``not`` keyword, :class:`Invert` " -"is the ``~`` operator." -msgstr "" -"Unités lexicales désignant des opérations unaires. :class:`Not` correspond " -"au mot-clé ``not``, :class:`Invert` à l'opérateur ``~``." - -#: library/ast.rst:583 -msgid "" -"A binary operation (like addition or division). ``op`` is the operator, and " -"``left`` and ``right`` are any expression nodes." -msgstr "" -"Opération binaire (comme l'addition ou la division). L'opérateur est *op*, " -"les opérandes *left* et *right* sont des nœuds d'expression quelconques." - -#: library/ast.rst:610 -msgid "Binary operator tokens." -msgstr "Unités lexicales pour les opérations binaires." - -#: library/ast.rst:615 -msgid "" -"A boolean operation, 'or' or 'and'. ``op`` is :class:`Or` or :class:`And`. " -"``values`` are the values involved. Consecutive operations with the same " -"operator, such as ``a or b or c``, are collapsed into one node with several " -"values." -msgstr "" -"Opération booléenne, c'est-à-dire ``and`` ou ``or``, entre *op* et les " -"éléments de *values*. Les deux opérateurs sont distingués par le type de " -"*op*, à savoir :class:`And` ou :class:`Or`. Les applications successives du " -"même opérateur (comme ``a or b or c``) sont regroupées dans un nœud unique " -"avec plusieurs éléments dans la liste *values*." - -#: library/ast.rst:620 -msgid "This doesn't include ``not``, which is a :class:`UnaryOp`." -msgstr "" -"L'opérateur ``not`` n'est pas implémenté ici, mais bien " -"dans :class:`UnaryOp`." - -#: library/ast.rst:636 -msgid "Boolean operator tokens." -msgstr "Unités lexicales pour les opérations booléennes." - -#: library/ast.rst:641 -msgid "" -"A comparison of two or more values. ``left`` is the first value in the " -"comparison, ``ops`` the list of operators, and ``comparators`` the list of " -"values after the first element in the comparison." -msgstr "" -"Comparaison de deux valeurs ou plus. *left* est le premier élément de la " -"comparaison, *ops* la liste des opérateurs, et *comparators* la liste des " -"éléments restants de la comparaison." - -#: library/ast.rst:670 -msgid "Comparison operator tokens." -msgstr "Unités lexicales pour les comparaisons." - -#: library/ast.rst:675 -msgid "" -"A function call. ``func`` is the function, which will often be " -"a :class:`Name` or :class:`Attribute` object. Of the arguments:" -msgstr "" -"Appel d'une fonction. Le nœud *func*, représentant la fonction appelée, est " -"habituellement de type :class:`Name` ou :class:`Attribute`. Les arguments " -"sont contenus dans :" - -#: library/ast.rst:678 -msgid "``args`` holds a list of the arguments passed by position." -msgstr "" -"*args*, la liste des arguments passés sans les nommer (arguments " -"positionnels) ;" - -#: library/ast.rst:679 -#, fuzzy -msgid "" -"``keywords`` holds a list of :class:`.keyword` objects representing " -"arguments passed by keyword." -msgstr "" -"*keywords*, la liste des arguments nommés sous forme de " -"nœuds :class:`keyword`." - -#: library/ast.rst:682 -#, fuzzy -msgid "" -"The ``args`` and ``keywords`` arguments are optional and default to empty " -"lists." -msgstr "" -"Les arguments *args* et *keywords* du constructeur de ``Call`` sont " -"obligatoires (mais peuvent être des listes vides). *starargs* (arguments " -"étoilés) et *kwargs* (arguments nommés) sont facultatifs." - -#: library/ast.rst:704 -msgid "" -"A keyword argument to a function call or class definition. ``arg`` is a raw " -"string of the parameter name, ``value`` is a node to pass in." -msgstr "" - -#: library/ast.rst:710 -msgid "" -"An expression such as ``a if b else c``. Each field holds a single node, so " -"in the following example, all three are :class:`Name` nodes." -msgstr "" -"Expression ternaire (``a if b else c``). Chaque champ contient un unique " -"nœud. Dans l'exemple suivant, les trois sont de la classe :class:`Name`." - -#: library/ast.rst:725 -msgid "" -"Attribute access, e.g. ``d.keys``. ``value`` is a node, typically " -"a :class:`Name`. ``attr`` is a bare string giving the name of the attribute, " -"and ``ctx`` is :class:`Load`, :class:`Store` or :class:`Del` according to " -"how the attribute is acted on." -msgstr "" -"Accès à un attribut (comme ``d.keys``). *value* est un nœud, souvent de la " -"classe :class:`Name`. *attr* est le nom de l'attribut, sous forme de chaîne " -"de caractères. *ctx* est de classe :class:`Load`, :class:`Store` " -"ou :class:`Del` selon le type de l'action effectuée sur l'attribut." - -#: library/ast.rst:741 -msgid "" -"A named expression. This AST node is produced by the assignment expressions " -"operator (also known as the walrus operator). As opposed to " -"the :class:`Assign` node in which the first argument can be multiple nodes, " -"in this case both ``target`` and ``value`` must be single nodes." -msgstr "" -"Expression d'affectation. Ces nœuds proviennent de l'opérateur « morse » " -"``:=``. Contrairement à :class:`Assign`, dont le premier argument est une " -"liste qui peut contenir plusieurs cibles, les arguments *target* et *value* " -"sont ici des nœuds simples." - -#: library/ast.rst:757 -msgid "Subscripting" -msgstr "Indiçage" - -#: library/ast.rst:761 -msgid "" -"A subscript, such as ``l[1]``. ``value`` is the subscripted object (usually " -"sequence or mapping). ``slice`` is an index, slice or key. It can be " -"a :class:`Tuple` and contain a :class:`Slice`. ``ctx`` " -"is :class:`Load`, :class:`Store` or :class:`Del` according to the action " -"performed with the subscript." -msgstr "" -"Accès à un indice, par exemple ``liste[1]``. *value* est l'objet où l'indice " -"est pris, donc la plupart du temps une séquence ou une table associative. " -"*slice* est soit un indice, soit une tranche, soit une clé. Les instances " -"de :class:`Tuple` pour *slice* peuvent contenir des objets :class:`Slice`. " -"*ctx* est de type :class:`Load`, :class:`Store` ou :class:`Del` selon " -"l'action appliquée à l'indice." - -#: library/ast.rst:783 -msgid "" -"Regular slicing (on the form ``lower:upper`` or ``lower:upper:step``). Can " -"occur only inside the *slice* field of :class:`Subscript`, either directly " -"or as an element of :class:`Tuple`." -msgstr "" -"Tranches normales (de la forme ``début:fin`` ou ``début:fin:pas``). Les " -"instances de cette classe ne peuvent apparaître que dans le champ *slice* " -"d'un :class:`Subscript`, que ce soit directement ou en tant qu'élément " -"d'un :class:`Tuple`." - -#: library/ast.rst:799 -msgid "Comprehensions" -msgstr "Compréhensions" - -#: library/ast.rst:806 -msgid "" -"List and set comprehensions, generator expressions, and dictionary " -"comprehensions. ``elt`` (or ``key`` and ``value``) is a single node " -"representing the part that will be evaluated for each item." -msgstr "" -"Liste, ensemble ou dictionnaire en compréhension, ou expression génératrice. " -"*elt* est l'expression avant le premier ``for``, évaluée à chaque itération. " -"Il est remplacé par *key* (expression pour la clé) et *value* (expression " -"pour la valeur) dans le cas des dictionnaires." - -#: library/ast.rst:810 -msgid "``generators`` is a list of :class:`comprehension` nodes." -msgstr "*generators* est une liste de nœuds :class:`comprehension`." - -#: library/ast.rst:858 -msgid "" -"One ``for`` clause in a comprehension. ``target`` is the reference to use " -"for each element - typically a :class:`Name` or :class:`Tuple` node. " -"``iter`` is the object to iterate over. ``ifs`` is a list of test " -"expressions: each ``for`` clause can have multiple ``ifs``." -msgstr "" -"Une clause ``for`` à l'intérieur d'une compréhension. *iter* est l'objet à " -"parcourir, *target* est la cible de l'affectation qui se produit à chaque " -"itération (la plupart du temps un nœud :class:`Name` ou :class:`Tuple`). " -"*ifs* contient les tests qui décident si l'élément doit être inséré. C'est " -"une liste, car chaque ``for`` peut être suivi de plusieurs ``if``." - -#: library/ast.rst:863 -msgid "" -"``is_async`` indicates a comprehension is asynchronous (using an ``async " -"for`` instead of ``for``). The value is an integer (0 or 1)." -msgstr "" -"*is_async* est une valeur booléenne sous forme d'entier, 0 ou 1, qui indique " -"si la compréhension est asynchrone, c'est-à-dire qu'elle a été écrite avec " -"``async for`` au lieu de ``for``." - -#: library/ast.rst:928 -msgid "Statements" -msgstr "Instructions" - -#: library/ast.rst:932 -msgid "" -"An assignment. ``targets`` is a list of nodes, and ``value`` is a single " -"node." -msgstr "" -"Affectation. *targets* est une liste de nœuds, *value* est simplement un " -"nœud." - -#: library/ast.rst:934 -msgid "" -"Multiple nodes in ``targets`` represents assigning the same value to each. " -"Unpacking is represented by putting a :class:`Tuple` or :class:`List` within " -"``targets``." -msgstr "" -"S'il y a plusieurs nœuds dans *targets*, ils sont tous pris comme des cibles " -"auxquelles est affectée la même expression. Le déballage de séquences est " -"représenté par des nœuds :class:`Tuple` ou :class:`List` comme éléments de " -"*targets*." - -#: library/ast.rst:1238 library/ast.rst:1989 -msgid "" -"``type_comment`` is an optional string with the type annotation as a comment." -msgstr "" -"Le champ facultatif *type_comment* contient une annotation de type fournie " -"par un commentaire, et ce sous la forme d'une chaîne de caractères." - -#: library/ast.rst:968 -#, fuzzy -msgid "" -"An assignment with a type annotation. ``target`` is a single node and can be " -"a :class:`Name`, an :class:`Attribute` or a :class:`Subscript`. " -"``annotation`` is the annotation, such as a :class:`Constant` " -"or :class:`Name` node. ``value`` is a single optional node." -msgstr "" -"Affectation accompagnée d'une annotation de type. La cible *target* est un " -"nœud de type :class:`Name`, :class:`Attribute` ou :class:`Subscript`. " -"*annotation* est le contenu de l'annotation, par exemple un " -"nœud :class:`Constant` ou :class:`Name`. Le champ *value* est facultatif et " -"peut contenir un nœud, la valeur affectée à la cible. *simple* est une " -"valeur booléenne sous forme d'entier, 0 ou 1, qui vaut 1 si et seulement si " -"*target* est de type :class:`Name` et provient d'un nom sans parenthèses, " -"donc un nom simple plutôt qu'une expression." - -#: library/ast.rst:973 -msgid "" -"``simple`` is always either 0 (indicating a \"complex\" target) or 1 " -"(indicating a \"simple\" target). A \"simple\" target consists solely of " -"a :class:`Name` node that does not appear between parentheses; all other " -"targets are considered complex. Only simple targets appear in " -"the :attr:`~object.__annotations__` dictionary of modules and classes." -msgstr "" - -#: library/ast.rst:1023 -msgid "" -"Augmented assignment, such as ``a += 1``. In the following example, " -"``target`` is a :class:`Name` node for ``x`` (with the :class:`Store` " -"context), ``op`` is :class:`Add`, and ``value`` is a :class:`Constant` with " -"value for 1." -msgstr "" -"Affectation incrémentale, par exemple ``a += 1``. Dans l'exemple qui suit, " -"*target* est un nœud de type :class:`Name` avec le nom ``'x'`` (de " -"contexte :class:`Store`), *op* est une instance de :class:`Add`, et *value* " -"est un nœud :class:`Constant` contenant la valeur 1." - -#: library/ast.rst:1028 -#, fuzzy -msgid "" -"The ``target`` attribute cannot be of class :class:`Tuple` or :class:`List`, " -"unlike the targets of :class:`Assign`." -msgstr "" -"Contrairement aux cibles acceptées par :class:`Assign`, le champ *target* ne " -"peut pas être ici de type :class:`Tuple` ou :class:`List`." - -#: library/ast.rst:1044 -msgid "" -"A ``raise`` statement. ``exc`` is the exception object to be raised, " -"normally a :class:`Call` or :class:`Name`, or ``None`` for a standalone " -"``raise``. ``cause`` is the optional part for ``y`` in ``raise x from y``." -msgstr "" -"Instruction ``raise``. *exc* est l'exception à lever, la plupart du temps un " -"nœud de type :class:`Call` ou :class:`Name`. Ce champ vaut ``None`` dans le " -"cas d'un ``raise`` sans rien d'autre. Le champ facultatif *cause* correspond " -"à la partie après le ``from`` dans ``raise ... from ...``." - -#: library/ast.rst:1060 -msgid "" -"An assertion. ``test`` holds the condition, such as a :class:`Compare` node. " -"``msg`` holds the failure message." -msgstr "" -"Assertion. *test* est la condition, par exemple un nœud :class:`Compare`. " -"*msg* est le message d'erreur affiché si le test s'évalue comme faux." - -#: library/ast.rst:1075 -msgid "" -"Represents a ``del`` statement. ``targets`` is a list of nodes, such " -"as :class:`Name`, :class:`Attribute` or :class:`Subscript` nodes." -msgstr "" -"Instruction ``del``. Les éléments à supprimer sont rassemblés dans la liste " -"*target*. Ce sont généralement des nœuds de " -"type :class:`Name`, :class:`Attribute` ou :class:`Subscript`." - -#: library/ast.rst:1092 -msgid "A ``pass`` statement." -msgstr "Instruction ``pass``." - -#: library/ast.rst:1104 -msgid "" -"A :ref:`type alias ` created through the :keyword:`type` " -"statement. ``name`` is the name of the alias, ``type_params`` is a list " -"of :ref:`type parameters `, and ``value`` is the value of " -"the type alias." -msgstr "" - -#: library/ast.rst:1120 -msgid "" -"Other statements which are only applicable inside functions or loops are " -"described in other sections." -msgstr "" -"Il existe d'autres instructions, qui ne peuvent apparaître que dans certains " -"contextes spécifiques comme l'intérieur d'une fonction ou d'une boucle. " -"Elles sont décrites dans d'autres sections de ce document." - -#: library/ast.rst:1124 -msgid "Imports" -msgstr "Importations" - -#: library/ast.rst:1128 -msgid "An import statement. ``names`` is a list of :class:`alias` nodes." -msgstr "" -"Instruction ``import``. *names* prend la forme d'une liste de " -"nœuds :class:`alias`." - -#: library/ast.rst:1145 -msgid "" -"Represents ``from x import y``. ``module`` is a raw string of the 'from' " -"name, without any leading dots, or ``None`` for statements such as ``from . " -"import foo``. ``level`` is an integer holding the level of the relative " -"import (0 means absolute import)." -msgstr "" -"Instruction ``from ... import ...``. La partie après ``from`` est mise dans " -"*module* comme une simple chaîne de caractères. Dans le cas des importations " -"relatives, comme ``from ..module import quelque_chose``, *module* ne " -"contient pas les points au début. Dans les instructions de la forme ``from . " -"import toto``, *module* vaut ``None``. *level* est le niveau d'importation " -"relative sous forme d'entier (0 pour les importations absolues)." - -#: library/ast.rst:1167 -msgid "" -"Both parameters are raw strings of the names. ``asname`` can be ``None`` if " -"the regular name is to be used." -msgstr "" -"Correspond à ``... as ...`` dans une importation. *name* et *asname* sont de " -"simples chaînes de caractères, qui correspondent aux deux parties de ``... " -"as ...``. Dans les instructions sans ``as`` (où le module n'est pas " -"renommé), *asname* vaut ``None``." - -#: library/ast.rst:1184 -msgid "Control flow" -msgstr "Contrôle de l'exécution" - -#: library/ast.rst:1187 -msgid "" -"Optional clauses such as ``else`` are stored as an empty list if they're not " -"present." -msgstr "" -"Si une clause facultative comme ``else`` est absente, le champ correspondant " -"dans l'arbre est une liste vide." - -# Il faut développer un peu plus que l'original car le lecteur ne -# comprend pas forcément les termes « body » et « orelse ». La même -# considération s'applique à bien des descriptions par la suite. -#: library/ast.rst:1192 -msgid "" -"An ``if`` statement. ``test`` holds a single node, such as " -"a :class:`Compare` node. ``body`` and ``orelse`` each hold a list of nodes." -msgstr "" -"Instruction ``if``. La condition, *test*, est un nœud, par exemple une " -"instance de :class:`Compare`. *body* est la liste des instructions du bloc. " -"*orelse* contient les instructions dans le ``else`` (liste vide s'il n'y a " -"pas de ``else``)." - -#: library/ast.rst:1195 -msgid "" -"``elif`` clauses don't have a special representation in the AST, but rather " -"appear as extra :class:`If` nodes within the ``orelse`` section of the " -"previous one." -msgstr "" -"Les clauses ``elif`` ne possèdent pas de représentation particulière. Elles " -"sont simplement mises dans le *orelse* du ``if`` ou ``elif`` précédent, " -"comme nœuds de type :class:`If`." - -#: library/ast.rst:1229 -#, fuzzy -msgid "" -"A ``for`` loop. ``target`` holds the variable(s) the loop assigns to, as a " -"single :class:`Name`, :class:`Tuple`, :class:`List`, :class:`Attribute` " -"or :class:`Subscript` node. ``iter`` holds the item to be looped over, again " -"as a single node. ``body`` and ``orelse`` contain lists of nodes to execute. " -"Those in ``orelse`` are executed if the loop finishes normally, rather than " -"via a ``break`` statement." -msgstr "" -"Boucle ``for``. Elle porte sur l'itérable donné par le nœud *iter*. La cible " -"des affectations successives est *target*, qui est un nœud de " -"type :class:`Name`, :class:`Tuple` ou :class:`List`. Les instructions du " -"bloc ``for`` forment la liste *body*. Celles de la liste *orelse* " -"proviennent d'une éventuelle clause ``else`` et sont exécutées si la boucle " -"se termine par épuisement de l'itérable, et non pas par un ``break``." - -#: library/ast.rst:1263 -msgid "" -"A ``while`` loop. ``test`` holds the condition, such as a :class:`Compare` " -"node." -msgstr "" -"Boucle ``while``. *test* est la condition évaluée à chaque itération, par " -"exemple un nœud :class:`Compare`. *body* contient les instructions du bloc, " -"et *orelse* celles d'un éventuel bloc ``else``, exécuté lorsque la boucle " -"termine parce que la condition devient fausse et non pas à cause d'une " -"instruction ``break``." - -#: library/ast.rst:1289 -msgid "The ``break`` and ``continue`` statements." -msgstr "Instructions ``break`` et ``continue``." - -#: library/ast.rst:1322 -msgid "" -"``try`` blocks. All attributes are list of nodes to execute, except for " -"``handlers``, which is a list of :class:`ExceptHandler` nodes." -msgstr "" -"Bloc ``try``. Les nœuds de la liste *body* sont les instructions à exécuter " -"sous contrôle des exceptions. La liste *handlers* contient des " -"nœuds :class:`ExceptHandler`, un par ``except``. Les listes *orelse* et " -"*finalbody* contiennent respectivement les instructions se trouvant dans " -"d'éventuels blocs ``else`` et ``finally``." - -#: library/ast.rst:1367 -msgid "" -"``try`` blocks which are followed by ``except*`` clauses. The attributes are " -"the same as for :class:`Try` but the :class:`ExceptHandler` nodes in " -"``handlers`` are interpreted as ``except*`` blocks rather then ``except``." -msgstr "" - -#: library/ast.rst:1396 -msgid "" -"A single ``except`` clause. ``type`` is the exception type it will match, " -"typically a :class:`Name` node (or ``None`` for a catch-all ``except:`` " -"clause). ``name`` is a raw string for the name to hold the exception, or " -"``None`` if the clause doesn't have ``as foo``. ``body`` is a list of nodes." -msgstr "" -"Une clause ``except``. Elle intercepte les exceptions de types donnés par " -"*type*, qui est le plus souvent un nœud :class:`Name` ou bien ``None`` " -"(cette dernière valeur pour les clauses fourre-tout ``except:``). Le nom " -"éventuel de la variable à laquelle affecter l'exception est dans la chaîne " -"de caractères *name* (``None`` s'il n'y a pas de ``as``). Les instructions " -"sous le ``except`` sont dans la liste *body*." - -#: library/ast.rst:1427 -msgid "" -"A ``with`` block. ``items`` is a list of :class:`withitem` nodes " -"representing the context managers, and ``body`` is the indented block inside " -"the context." -msgstr "" -"Bloc ``with``. Les gestionnaires de contexte sont stockés dans *items* comme " -"instances de :class:`withitem`. Les instructions sous le ``with`` forment la " -"liste *body*." - -#: library/ast.rst:1437 -msgid "" -"A single context manager in a ``with`` block. ``context_expr`` is the " -"context manager, often a :class:`Call` node. ``optional_vars`` is " -"a :class:`Name`, :class:`Tuple` or :class:`List` for the ``as foo`` part, or " -"``None`` if that isn't used." -msgstr "" -"Gestionnaire de contexte dans un bloc ``with``. Le gestionnaire est donné " -"par le nœud *context_expr*, souvent une instance de :class:`Call`. S'il y a " -"affectation avec ``as``, *optional_vars* contient sa cible, qui est un nœud " -"de type :class:`Name`, :class:`Tuple` ou :class:`List`. Sinon, " -"*optional_vars* vaut ``None``." - -#: library/ast.rst:1468 -msgid "Pattern matching" -msgstr "" - -#: library/ast.rst:1473 -msgid "" -"A ``match`` statement. ``subject`` holds the subject of the match (the " -"object that is being matched against the cases) and ``cases`` contains an " -"iterable of :class:`match_case` nodes with the different cases." -msgstr "" - -#: library/ast.rst:1481 -msgid "" -"A single case pattern in a ``match`` statement. ``pattern`` contains the " -"match pattern that the subject will be matched against. Note that " -"the :class:`AST` nodes produced for patterns differ from those produced for " -"expressions, even when they share the same syntax." -msgstr "" - -#: library/ast.rst:1486 -msgid "" -"The ``guard`` attribute contains an expression that will be evaluated if the " -"pattern matches the subject." -msgstr "" - -#: library/ast.rst:1489 -msgid "" -"``body`` contains a list of nodes to execute if the pattern matches and the " -"result of evaluating the guard expression is true." -msgstr "" - -#: library/ast.rst:1530 -msgid "" -"A match literal or value pattern that compares by equality. ``value`` is an " -"expression node. Permitted value nodes are restricted as described in the " -"match statement documentation. This pattern succeeds if the match subject is " -"equal to the evaluated value." -msgstr "" - -#: library/ast.rst:1558 -msgid "" -"A match literal pattern that compares by identity. ``value`` is the " -"singleton to be compared against: ``None``, ``True``, or ``False``. This " -"pattern succeeds if the match subject is the given constant." -msgstr "" - -#: library/ast.rst:1584 -msgid "" -"A match sequence pattern. ``patterns`` contains the patterns to be matched " -"against the subject elements if the subject is a sequence. Matches a " -"variable length sequence if one of the subpatterns is a ``MatchStar`` node, " -"otherwise matches a fixed length sequence." -msgstr "" - -#: library/ast.rst:1616 -msgid "" -"Matches the rest of the sequence in a variable length match sequence " -"pattern. If ``name`` is not ``None``, a list containing the remaining " -"sequence elements is bound to that name if the overall sequence pattern is " -"successful." -msgstr "" - -#: library/ast.rst:1657 -msgid "" -"A match mapping pattern. ``keys`` is a sequence of expression nodes. " -"``patterns`` is a corresponding sequence of pattern nodes. ``rest`` is an " -"optional name that can be specified to capture the remaining mapping " -"elements. Permitted key expressions are restricted as described in the match " -"statement documentation." -msgstr "" - -#: library/ast.rst:1663 -msgid "" -"This pattern succeeds if the subject is a mapping, all evaluated key " -"expressions are present in the mapping, and the value corresponding to each " -"key matches the corresponding subpattern. If ``rest`` is not ``None``, a " -"dict containing the remaining mapping elements is bound to that name if the " -"overall mapping pattern is successful." -msgstr "" - -#: library/ast.rst:1704 -msgid "" -"A match class pattern. ``cls`` is an expression giving the nominal class to " -"be matched. ``patterns`` is a sequence of pattern nodes to be matched " -"against the class defined sequence of pattern matching attributes. " -"``kwd_attrs`` is a sequence of additional attributes to be matched " -"(specified as keyword arguments in the class pattern), ``kwd_patterns`` are " -"the corresponding patterns (specified as keyword values in the class " -"pattern)." -msgstr "" - -#: library/ast.rst:1711 -msgid "" -"This pattern succeeds if the subject is an instance of the nominated class, " -"all positional patterns match the corresponding class-defined attributes, " -"and any specified keyword attributes match their corresponding pattern." -msgstr "" - -#: library/ast.rst:1715 -msgid "" -"Note: classes may define a property that returns self in order to match a " -"pattern node against the instance being matched. Several builtin types are " -"also matched that way, as described in the match statement documentation." -msgstr "" - -#: library/ast.rst:1766 -msgid "" -"A match \"as-pattern\", capture pattern or wildcard pattern. ``pattern`` " -"contains the match pattern that the subject will be matched against. If the " -"pattern is ``None``, the node represents a capture pattern (i.e a bare name) " -"and will always succeed." -msgstr "" - -#: library/ast.rst:1771 -msgid "" -"The ``name`` attribute contains the name that will be bound if the pattern " -"is successful. If ``name`` is ``None``, ``pattern`` must also be ``None`` " -"and the node represents the wildcard pattern." -msgstr "" - -#: library/ast.rst:1808 -msgid "" -"A match \"or-pattern\". An or-pattern matches each of its subpatterns in " -"turn to the subject, until one succeeds. The or-pattern is then deemed to " -"succeed. If none of the subpatterns succeed the or-pattern fails. The " -"``patterns`` attribute contains a list of match pattern nodes that will be " -"matched against the subject." -msgstr "" - -#: library/ast.rst:1841 -msgid "Type annotations" -msgstr "" - -#: library/ast.rst:1845 -msgid "" -"A ``# type: ignore`` comment located at *lineno*. *tag* is the optional tag " -"specified by the form ``# type: ignore ``." -msgstr "" - -#: library/ast.rst:1871 -msgid "" -":class:`!TypeIgnore` nodes are not generated when the *type_comments* " -"parameter is set to ``False`` (default). See :func:`ast.parse` for more " -"details." -msgstr "" - -#: library/ast.rst:1879 -msgid "Type parameters" -msgstr "" - -#: library/ast.rst:1881 -msgid "" -":ref:`Type parameters ` can exist on classes, functions, and " -"type aliases." -msgstr "" - -#: library/ast.rst:1886 -msgid "" -"A :class:`typing.TypeVar`. ``name`` is the name of the type variable. " -"``bound`` is the bound or constraints, if any. If ``bound`` is " -"a :class:`Tuple`, it represents constraints; otherwise it represents the " -"bound. ``default_value`` is the default value; if the :class:`!TypeVar` has " -"no default, this attribute will be set to ``None``." -msgstr "" - -#: library/ast.rst:1942 library/ast.rst:1969 -#, fuzzy -msgid "Added the *default_value* parameter." -msgstr "ajout du paramètre *indent*." - -#: library/ast.rst:1915 -msgid "" -"A :class:`typing.ParamSpec`. ``name`` is the name of the parameter " -"specification. ``default_value`` is the default value; if the :class:`!" -"ParamSpec` has no default, this attribute will be set to ``None``." -msgstr "" - -#: library/ast.rst:1947 -msgid "" -"A :class:`typing.TypeVarTuple`. ``name`` is the name of the type variable " -"tuple. ``default_value`` is the default value; if the :class:`!TypeVarTuple` " -"has no default, this attribute will be set to ``None``." -msgstr "" - -#: library/ast.rst:1973 -msgid "Function and class definitions" -msgstr "Définition de fonctions et de classes" - -#: library/ast.rst:1977 -msgid "A function definition." -msgstr "Définition d'une fonction." - -#: library/ast.rst:1979 -msgid "``name`` is a raw string of the function name." -msgstr "" -"*name* donne le nom de la fonction sous forme d'une chaîne de caractères." - -#: library/ast.rst:1980 -#, fuzzy -msgid "``args`` is an :class:`arguments` node." -msgstr "" -"*args* est un nœud de type :class:`arguments` qui contient les arguments de " -"la signature." - -#: library/ast.rst:1981 -msgid "``body`` is the list of nodes inside the function." -msgstr "*body* est la liste des instructions dans le corps de la fonction." - -#: library/ast.rst:1982 -msgid "" -"``decorator_list`` is the list of decorators to be applied, stored outermost " -"first (i.e. the first in the list will be applied last)." -msgstr "" -"*decorators_list* est une liste de décorateurs appliqués à la fonction. Ils " -"sont rangés dans leur ordre d'apparition, c'est-à-dire que le premier de la " -"liste est appliqué en dernier." - -#: library/ast.rst:1984 -msgid "``returns`` is the return annotation." -msgstr "*returns* est l'annotation de renvoi éventuelle." - -#: library/ast.rst:2148 -msgid "``type_params`` is a list of :ref:`type parameters `." -msgstr "" - -#: library/ast.rst:2175 library/ast.rst:2186 -msgid "Added ``type_params``." -msgstr "" - -#: library/ast.rst:1997 -msgid "" -"``lambda`` is a minimal function definition that can be used inside an " -"expression. Unlike :class:`FunctionDef`, ``body`` holds a single node." -msgstr "" -"Fonction anonyme. Elle est créée avec le mot-clé ``lambda``, limitée à " -"renvoyer une simple expression, et peut être intégrée à une expression plus " -"large. Contrairement à :class:`FunctionDef`, *body* est ici un nœud unique. " -"*args* est une instance de ``arguments`` qui contient les arguments de la " -"signature." - -#: library/ast.rst:2016 -msgid "The arguments for a function." -msgstr "Arguments d'une fonction." - -#: library/ast.rst:2018 -msgid "" -"``posonlyargs``, ``args`` and ``kwonlyargs`` are lists of :class:`arg` nodes." -msgstr "" -"*posonlyargs*, *args* et *kwonlyargs* sont des listes de nœuds :class:`arg` " -"qui correspondent respectivement aux arguments obligatoirement positionnels, " -"positionnels ou nommés et obligatoirement nommés." - -#: library/ast.rst:2019 -msgid "" -"``vararg`` and ``kwarg`` are single :class:`arg` nodes, referring to the " -"``*args, **kwargs`` parameters." -msgstr "" -"*varargs* et *kwargs* sont des nœuds :class:`arg` qui apparaissent avec la " -"capture des arguments restants, positionnels (``*arguments_positionnels``) " -"et nommés (``**arguments_nommés``)." - -#: library/ast.rst:2021 -msgid "" -"``kw_defaults`` is a list of default values for keyword-only arguments. If " -"one is ``None``, the corresponding argument is required." -msgstr "" -"*kw_defaults* est la liste des valeurs par défaut pour les arguments " -"obligatoirement nommés. Si l'un des éléments n'est pas un nœud mais " -"``None``, il n'y a pas de valeur par défaut et l'argument correspondant doit " -"être passé obligatoirement à la fonction." - -#: library/ast.rst:2023 -msgid "" -"``defaults`` is a list of default values for arguments that can be passed " -"positionally. If there are fewer defaults, they correspond to the last n " -"arguments." -msgstr "" -"*defaults* est, quant à elle, la liste des valeurs par défauts pour les " -"arguments qui peuvent être passés de manière positionnelle (obligatoirement " -"ou non). S'il y a moins d'éléments dans la liste que d'arguments " -"positionnels, ces éléments donnent les valeurs par défaut des *n* derniers " -"arguments positionnels (avec *n* la longueur de *defaults*)." - -#: library/ast.rst:2030 -msgid "" -"A single argument in a list. ``arg`` is a raw string of the argument name; " -"``annotation`` is its annotation, such as a :class:`Name` node." -msgstr "" - -#: library/ast.rst:2035 -msgid "" -"``type_comment`` is an optional string with the type annotation as a comment" -msgstr "" -"Le champ facultatif *type_comment* est, sous forme de chaîne, une annotation " -"de type fournie par un commentaire." - -#: library/ast.rst:2077 -msgid "A ``return`` statement." -msgstr "Instruction ``return``, qui renvoie *value*." - -#: library/ast.rst:2091 -#, fuzzy -msgid "" -"A ``yield`` or ``yield from`` expression. Because these are expressions, " -"they must be wrapped in an :class:`Expr` node if the value sent back is not " -"used." -msgstr "" -"Expression ``yield`` ou ``yield from``. Ce sont bien des expressions, non " -"pas des instructions. Il faut donc les placer dans un nœud :class:`Expr` si " -"la valeur qu'elles renvoient n'est pas utilisée dans une expression plus " -"large." - -#: library/ast.rst:2114 -msgid "" -"``global`` and ``nonlocal`` statements. ``names`` is a list of raw strings." -msgstr "" -"Instruction ``global`` ou ``nonlocal``. Elle s'applique aux noms de " -"variables donnés dans *names*, une liste de chaînes de caractères." - -#: library/ast.rst:2139 -msgid "A class definition." -msgstr "Définition d'une classe." - -#: library/ast.rst:2141 -msgid "``name`` is a raw string for the class name" -msgstr "*name* est le nom de la classe sous forme de chaîne de caractères ;" - -#: library/ast.rst:2142 -msgid "``bases`` is a list of nodes for explicitly specified base classes." -msgstr "*bases* est la liste des classes mères données explicitement ;" - -#: library/ast.rst:2143 -#, fuzzy -msgid "" -"``keywords`` is a list of :class:`.keyword` nodes, principally for " -"'metaclass'. Other keywords will be passed to the metaclass, as " -"per :pep:`3115`." -msgstr "" -"*keywords* est une liste de nœuds de type :class:`keyword`. Le principal mot-" -"clé qui peut y apparaître est ``metaclass``. Les autres sont passés à la " -"métaclasse (voir la :pep:`3115`) ;" - -#: library/ast.rst:2145 -msgid "" -"``body`` is a list of nodes representing the code within the class " -"definition." -msgstr "" -"*body* est la liste des instructions contenues dans la définition de classe ;" - -#: library/ast.rst:2147 -msgid "``decorator_list`` is a list of nodes, as in :class:`FunctionDef`." -msgstr "" -"*decorators_list* est une liste de nœuds, comme pour :class:`FunctionDef`." - -#: library/ast.rst:2179 -msgid "Async and await" -msgstr "``async`` et ``await``" - -#: library/ast.rst:2183 -msgid "" -"An ``async def`` function definition. Has the same fields " -"as :class:`FunctionDef`." -msgstr "" -"Fonction déclarée avec ``async def``. Les champs sont les mêmes que " -"dans :class:`FunctionDef`." - -#: library/ast.rst:2192 -msgid "" -"An ``await`` expression. ``value`` is what it waits for. Only valid in the " -"body of an :class:`AsyncFunctionDef`." -msgstr "" -"Expression ``await``, qui attend *value*. Ces nœuds ne peuvent apparaître " -"qu'à l'intérieur de :class:`AsyncFunctionDef`." - -#: library/ast.rst:2216 -msgid "" -"``async for`` loops and ``async with`` context managers. They have the same " -"fields as :class:`For` and :class:`With`, respectively. Only valid in the " -"body of an :class:`AsyncFunctionDef`." -msgstr "" -"Instruction ``async for`` ou ``async with``. Les champs sont les mêmes que " -"ceux de :class:`For` et :class:`With`. Ces nœuds ne peuvent apparaître qu'à " -"l'intérieur de :class:`AsyncFunctionDef`." - -#: library/ast.rst:2221 -#, fuzzy -msgid "" -"When a string is parsed by :func:`ast.parse`, operator nodes (subclasses " -"of :class:`ast.operator`, :class:`ast.unaryop`, :class:`ast.cmpop`, :class:`ast.boolop` " -"and :class:`ast.expr_context`) on the returned tree will be singletons. " -"Changes to one will be reflected in all other occurrences of the same value " -"(for example, :class:`ast.Add`)." -msgstr "" -"Lorsqu'une chaîne contenant du code est transformée en arbre syntaxique " -"par :func:`ast.parse`, les nœuds représentants les opérateurs (classes " -"filles " -"de :class:`ast.operator`, :class:`ast.unaryop`, :class:`ast.cmpop`, :class:`ast.boolop` " -"et :class:`ast.expr_context`) sont des singletons à l'intérieur de l'arbre " -"renvoyé. Si l'un, par exemple une instance de :class:`ast.Add`, est muté, la " -"modification sera visible sur toutes les autres apparitions de l'opérateur." - -#: library/ast.rst:2229 -#, fuzzy -msgid ":mod:`!ast` helpers" -msgstr "Outils du module :mod:`ast`" - -#: library/ast.rst:2231 -#, fuzzy -msgid "" -"Apart from the node classes, the :mod:`!ast` module defines these utility " -"functions and classes for traversing abstract syntax trees:" -msgstr "" -"À part les classes de nœuds, le module :mod:`ast` définit plusieurs " -"fonctions et classes utilitaires pour traverser les arbres syntaxiques " -"abstraits :" - -#: library/ast.rst:2236 -#, fuzzy -msgid "" -"Parse the source into an AST node. Equivalent to ``compile(source, " -"filename, mode, flags=FLAGS_VALUE, optimize=optimize, module=module)``, " -"where ``FLAGS_VALUE`` is ``ast.PyCF_ONLY_AST`` if ``optimize <= 0`` and " -"``ast.PyCF_OPTIMIZED_AST`` otherwise." -msgstr "" -"Analyse le code source et renvoie un arbre syntaxique. Équivalent à " -"``compile(source, filename, mode, ast.PyCF_ONLY_AST)``." - -#: library/ast.rst:2241 -#, fuzzy -msgid "" -"If ``type_comments=True`` is given, the parser is modified to check and " -"return type comments as specified by :pep:`484` and :pep:`526`. This is " -"equivalent to adding :data:`ast.PyCF_TYPE_COMMENTS` to the flags passed " -"to :func:`compile`. This will report syntax errors for misplaced type " -"comments. Without this flag, type comments will be ignored, and the " -"``type_comment`` field on selected AST nodes will always be ``None``. In " -"addition, the locations of ``# type: ignore`` comments will be returned as " -"the ``type_ignores`` attribute of :class:`Module` (otherwise it is always an " -"empty list)." -msgstr "" -"Si *type_comments* est mis à ``True``, l'analyseur syntaxique reconnaît les " -"commentaires de type et les ajoute à l'arbre, comme décrit dans " -"la :pep:`484` et la :pep:`526`. Ceci revient à " -"ajouter :data:`ast.PyCF_TYPE_COMMENTS` à l'argument *flags* " -"de :func:`compile`. Une erreur de syntaxe est levée si un commentaire de " -"type est placé au mauvais endroit. Les commentaires ``# type: ignore`` sont " -"également détectés et leurs positions dans la source sont placées dans " -"l'attribut *type_ignores* du nœud :class:`Module`. Sans cette option, les " -"commentaires de type sont ignorés tout comme les commentaires ordinaires, et " -"l'attribut *type_comment* des nœuds dont le type possède ce champ sera " -"toujours mis à ``None``." - -#: library/ast.rst:2251 -msgid "" -"In addition, if ``mode`` is ``'func_type'``, the input syntax is modified to " -"correspond to :pep:`484` \"signature type comments\", e.g. ``(str, int) -> " -"List[str]``." -msgstr "" - -#: library/ast.rst:2255 -msgid "" -"Setting ``feature_version`` to a tuple ``(major, minor)`` will result in a " -"\"best-effort\" attempt to parse using that Python version's grammar. For " -"example, setting ``feature_version=(3, 9)`` will attempt to disallow parsing " -"of :keyword:`match` statements. Currently ``major`` must equal to ``3``. The " -"lowest supported version is ``(3, 7)`` (and this may increase in future " -"Python versions); the highest is ``sys.version_info[0:2]``. \"Best-effort\" " -"attempt means there is no guarantee that the parse (or success of the parse) " -"is the same as when run on the Python version corresponding to " -"``feature_version``." -msgstr "" - -#: library/ast.rst:2265 -msgid "" -"If source contains a null character (``\\0``), :exc:`ValueError` is raised." -msgstr "" - -#: library/ast.rst:2268 -msgid "" -"Note that successfully parsing source code into an AST object doesn't " -"guarantee that the source code provided is valid Python code that can be " -"executed as the compilation step can raise further :exc:`SyntaxError` " -"exceptions. For instance, the source ``return 42`` generates a valid AST " -"node for a return statement, but it cannot be compiled alone (it needs to be " -"inside a function node)." -msgstr "" - -#: library/ast.rst:2275 -msgid "" -"In particular, :func:`ast.parse` won't do any scoping checks, which the " -"compilation step does." -msgstr "" - -#: library/ast.rst:2279 -msgid "" -"It is possible to crash the Python interpreter with a sufficiently large/" -"complex string due to stack depth limitations in Python's AST compiler." -msgstr "" -"Il est possible de faire planter l'interpréteur Python avec des chaînes " -"suffisamment grandes ou complexes lors de la compilation d'un arbre " -"syntaxique en raison de la limitation de la profondeur de la pile d'appels." - -#: library/ast.rst:2283 -msgid "Added ``type_comments``, ``mode='func_type'`` and ``feature_version``." -msgstr "" -"ajout des paramètres *type_comments* et *feature_version* ainsi que de la " -"valeur ``'func_type'`` pour *mode*." - -#: library/ast.rst:2286 -msgid "" -"The minimum supported version for ``feature_version`` is now ``(3, 7)``. The " -"``optimize`` argument was added." -msgstr "" - -#: library/ast.rst:2290 -#, fuzzy -msgid "Added the *module* parameter." -msgstr "ajout du paramètre *indent*." - -#: library/ast.rst:2296 -msgid "" -"Unparse an :class:`ast.AST` object and generate a string with code that " -"would produce an equivalent :class:`ast.AST` object if parsed back " -"with :func:`ast.parse`." -msgstr "" -"À partir d'un arbre syntaxique :class:`ast.AST`, reconstruit un code sous " -"forme de chaîne de caractères. S'il est passé à :func:`ast.parse`, le " -"résultat produit un arbre :class:`ast.AST` équivalent à l'original." - -#: library/ast.rst:2301 -msgid "" -"The produced code string will not necessarily be equal to the original code " -"that generated the :class:`ast.AST` object (without any compiler " -"optimizations, such as constant tuples/frozensets)." -msgstr "" - -#: library/ast.rst:2306 -msgid "" -"Trying to unparse a highly complex expression would result " -"with :exc:`RecursionError`." -msgstr "" -"Une :exc:`RecursionError` est levée si l'expression comporte de très " -"nombreux niveaux d'imbrication." - -#: library/ast.rst:2314 -#, fuzzy -msgid "" -"Evaluate an expression node or a string containing only a Python literal or " -"container display. The string or node provided may only consist of the " -"following Python literal structures: strings, bytes, numbers, tuples, lists, " -"dicts, sets, booleans, ``None`` and ``Ellipsis``." -msgstr "" -"Évalue de manière sûre un nœud d'expression, ou bien une chaîne de " -"caractères contenant une valeur littérale simple ou un conteneur sous forme " -"littérale. La chaîne de caractères ou le nœud fourni ne doit contenir que " -"des littéraux parmi les types suivants : chaînes de caractères, octets, " -"nombres, *n*-uplets, listes, dictionnaires, ensembles, booléens, et ``None``." - -#: library/ast.rst:2319 -#, fuzzy -msgid "" -"This can be used for evaluating strings containing Python values without the " -"need to parse the values oneself. It is not capable of evaluating " -"arbitrarily complex expressions, for example involving operators or indexing." -msgstr "" -"Cela peut être utilisé pour évaluer de manière sûre la chaîne de caractères " -"contenant des valeurs Python de source non fiable sans avoir besoin " -"d'analyser les valeurs elles-mêmes. Cette fonction n'est pas capable " -"d'évaluer des expressions arbitrairement complexes, par exemple impliquant " -"des opérateurs ou de l'indiçage." - -#: library/ast.rst:2324 -msgid "" -"This function had been documented as \"safe\" in the past without defining " -"what that meant. That was misleading. This is specifically designed not to " -"execute Python code, unlike the more general :func:`eval`. There is no " -"namespace, no name lookups, or ability to call out. But it is not free from " -"attack: A relatively small input can lead to memory exhaustion or to C stack " -"exhaustion, crashing the process. There is also the possibility for " -"excessive CPU consumption denial of service on some inputs. Calling it on " -"untrusted data is thus not recommended." -msgstr "" - -#: library/ast.rst:2334 -#, fuzzy -msgid "" -"It is possible to crash the Python interpreter due to stack depth " -"limitations in Python's AST compiler." -msgstr "" -"Il est possible de faire planter l'interpréteur Python avec des chaînes " -"suffisamment grandes ou complexes lors de la compilation d'un arbre " -"syntaxique en raison de la limitation de la profondeur de la pile d'appels." - -#: library/ast.rst:2337 -msgid "" -"It can " -"raise :exc:`ValueError`, :exc:`TypeError`, :exc:`SyntaxError`, :exc:`MemoryError` " -"and :exc:`RecursionError` depending on the malformed input." -msgstr "" - -#: library/ast.rst:2341 -msgid "Now allows bytes and set literals." -msgstr "accepte maintenant les octets et ensembles littéraux." - -#: library/ast.rst:2344 -msgid "Now supports creating empty sets with ``'set()'``." -msgstr "accepte ``set()`` pour les ensembles vides." - -#: library/ast.rst:2347 -msgid "For string inputs, leading spaces and tabs are now stripped." -msgstr "" - -#: library/ast.rst:2353 -msgid "" -"Return the docstring of the given *node* (which must be " -"a :class:`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef`, " -"or :class:`Module` node), or ``None`` if it has no docstring. If *clean* is " -"true, clean up the docstring's indentation with :func:`inspect.cleandoc`." -msgstr "" -"Renvoie la *docstring* du nœud *node* (de " -"type :class:`FunctionDef`, :class:`AsyncFunctionDef`, :class:`ClassDef` " -"or :class:`Module`), ou ``None`` s'il n'a pas de *docstring*. Si *clean* est " -"vrai, cette fonction nettoie l'indentation de la *docstring* " -"avec :func:`inspect.cleandoc`." - -#: library/ast.rst:2359 -msgid ":class:`AsyncFunctionDef` is now supported." -msgstr ":class:`AsyncFunctionDef` est maintenant gérée." - -#: library/ast.rst:2365 -#, fuzzy -msgid "" -"Get source code segment of the *source* that generated *node*. If some " -"location information " -"(:attr:`~ast.AST.lineno`, :attr:`~ast.AST.end_lineno`, :attr:`~ast.AST.col_offset`, " -"or :attr:`~ast.AST.end_col_offset`) is missing, return ``None``." -msgstr "" -"Donne la partie de *source* (le code source) qui a donné lieu à *node*. Si " -"l'un des attributs de localisation du nœud " -"(:attr:`lineno`, :attr:`end_lineno`, :attr:`col_offset` " -"et :attr:`end_col_offset`) n'est pas rempli, cette fonction renvoie ``None``." - -#: library/ast.rst:2369 -msgid "" -"If *padded* is ``True``, the first line of a multi-line statement will be " -"padded with spaces to match its original position." -msgstr "" - -#: library/ast.rst:2377 -#, fuzzy -msgid "" -"When you compile a node tree with :func:`compile`, the compiler " -"expects :attr:`~ast.AST.lineno` and :attr:`~ast.AST.col_offset` attributes " -"for every node that supports them. This is rather tedious to fill in for " -"generated nodes, so this helper adds these attributes recursively where not " -"already set, by setting them to the values of the parent node. It works " -"recursively starting at *node*." -msgstr "" -"Lorsque l'on compile un arbre avec :func:`compile`, le compilateur attend " -"les attributs :attr:`lineno` et :attr:`col_offset` pour tous les nœuds qui " -"les prennent en charge. Il est fastidieux de les remplir pour les nœuds " -"générés par du code. Cette fonction utilitaire ajoute ces attributs de " -"manière récursive là où ils ne sont pas déjà définis, en les définissant " -"comme les valeurs du nœud parent. Elle fonctionne récursivement en démarrant " -"de *node*." - -#: library/ast.rst:2386 -msgid "" -"Increment the line number and end line number of each node in the tree " -"starting at *node* by *n*. This is useful to \"move code\" to a different " -"location in a file." -msgstr "" -"Incrémente de *n* les numéros des lignes de début et ligne de fin de chaque " -"nœud dans l'arbre, en commençant par le nœud *node*. C'est utile pour " -"« déplacer du code » à un endroit différent dans un fichier." - -#: library/ast.rst:2393 -#, fuzzy -msgid "" -"Copy source location " -"(:attr:`~ast.AST.lineno`, :attr:`~ast.AST.col_offset`, :attr:`~ast.AST.end_lineno`, " -"and :attr:`~ast.AST.end_col_offset`) from *old_node* to *new_node* if " -"possible, and return *new_node*." -msgstr "" -"Copie la position dans la source " -"(attributs :attr:`lineno`, :attr:`col_offset`, :attr:`end_lineno` " -"et :attr:`end_col_offset`) de l'ancien nœud *old_node* vers le nouveau nœud " -"*new_node*, si possible, et renvoie *new_node*." - -#: library/ast.rst:2400 -msgid "" -"Yield a tuple of ``(fieldname, value)`` for each field in ``node._fields`` " -"that is present on *node*." -msgstr "" -"Produit un *n*-uplet de couples ``(nom_du_champ, valeur)`` pour chaque champ " -"de ``node._fields`` qui est présent dans *node*." - -#: library/ast.rst:2406 -msgid "" -"Yield all direct child nodes of *node*, that is, all fields that are nodes " -"and all items of fields that are lists of nodes." -msgstr "" -"Produit tous les nœuds enfants directs de *node*, c'est-à-dire tous les " -"champs qui sont des nœuds et tous les éléments des champs qui sont des " -"listes de nœuds." - -#: library/ast.rst:2412 -msgid "" -"Recursively yield all descendant nodes in the tree starting at *node* " -"(including *node* itself), in no specified order. This is useful if you " -"only want to modify nodes in place and don't care about the context." -msgstr "" -"Produit récursivement tous les nœuds enfants dans l'arbre en commençant par " -"*node* (*node* lui-même est inclus), sans ordre spécifique. C'est utile " -"lorsque l'on souhaite modifier les nœuds sur place sans prêter attention au " -"contexte." - -#: library/ast.rst:2419 -msgid "" -"A node visitor base class that walks the abstract syntax tree and calls a " -"visitor function for every node found. This function may return a value " -"which is forwarded by the :meth:`visit` method." -msgstr "" -"Classe de base pour un visiteur de nœud, qui parcourt l'arbre syntaxique " -"abstrait et appelle une fonction de visite pour chacun des nœuds trouvés. " -"Cette fonction peut renvoyer une valeur, qui est transmise par la " -"méthode :meth:`visit`." - -#: library/ast.rst:2423 -msgid "" -"This class is meant to be subclassed, with the subclass adding visitor " -"methods." -msgstr "" -"Cette classe est faite pour être dérivée, en ajoutant des méthodes de visite " -"à la sous-classe." - -#: library/ast.rst:2428 -msgid "" -"Visit a node. The default implementation calls the method " -"called :samp:`self.visit_{classname}` where *classname* is the name of the " -"node class, or :meth:`generic_visit` if that method doesn't exist." -msgstr "" -"Visite un nœud. L'implémentation par défaut appelle la " -"méthode :samp:`self.visit_{classe}` où *classe* représente le nom de la " -"classe du nœud, ou :meth:`generic_visit` si cette méthode n'existe pas." - -#: library/ast.rst:2434 -msgid "This visitor calls :meth:`visit` on all children of the node." -msgstr "" -"Le visiteur appelle la méthode :meth:`visit` de tous les enfants du nœud." - -#: library/ast.rst:2436 -msgid "" -"Note that child nodes of nodes that have a custom visitor method won't be " -"visited unless the visitor calls :meth:`generic_visit` or visits them itself." -msgstr "" -"Notons que les nœuds enfants qui possèdent une méthode de visite spéciale ne " -"sont pas visités à moins que le visiteur n'appelle la " -"méthode :meth:`generic_visit` ou ne les visite lui-même." - -#: library/ast.rst:2442 -msgid "Handles all constant nodes." -msgstr "" - -#: library/ast.rst:2444 -msgid "" -"Don't use the :class:`NodeVisitor` if you want to apply changes to nodes " -"during traversal. For this a special visitor exists " -"(:class:`NodeTransformer`) that allows modifications." -msgstr "" -"N'utilisez pas :class:`NodeVisitor` si vous souhaitez appliquer des " -"changements sur les nœuds lors du parcours. Pour cela, un visiteur spécial " -"existe (:class:`NodeTransformer`) qui permet les modifications." - -#: library/ast.rst:2450 -#, fuzzy -msgid "" -"Methods :meth:`!visit_Num`, :meth:`!visit_Str`, :meth:`!" -"visit_Bytes`, :meth:`!visit_NameConstant` and :meth:`!visit_Ellipsis` will " -"not be called in Python 3.14+. Add the :meth:`visit_Constant` method " -"instead to handle all constant nodes." -msgstr "" -"les " -"méthodes :meth:`visit_Num`, :meth:`visit_Str`, :meth:`visit_Bytes`, :meth:`visit_NameConstant` " -"et :meth:`visit_Ellipsis` sont devenues obsolètes et cesseront d'être " -"appelées dans une version ultérieure de Python. Écrivez une " -"méthode :meth:`visit_Constant` pour traiter tous les nœuds qui représentent " -"des valeurs constantes." - -#: library/ast.rst:2458 -msgid "" -"A :class:`NodeVisitor` subclass that walks the abstract syntax tree and " -"allows modification of nodes." -msgstr "" -"Une sous-classe de :class:`NodeVisitor` qui traverse l'arbre syntaxique " -"abstrait et permet de modifier les nœuds." - -#: library/ast.rst:2461 -msgid "" -"The :class:`NodeTransformer` will walk the AST and use the return value of " -"the visitor methods to replace or remove the old node. If the return value " -"of the visitor method is ``None``, the node will be removed from its " -"location, otherwise it is replaced with the return value. The return value " -"may be the original node in which case no replacement takes place." -msgstr "" -"Le :class:`NodeTransformer` traverse l'arbre syntaxique et utilise la valeur " -"renvoyée par les méthodes du visiteur pour remplacer ou supprimer l'ancien " -"nœud. Si la valeur renvoyée par la méthode du visiteur est ``None``, le nœud " -"est supprimé de sa position, sinon il est remplacé par cette valeur. Elle " -"peut être le nœud original, auquel cas il n'y a pas de remplacement." - -#: library/ast.rst:2467 -msgid "" -"Here is an example transformer that rewrites all occurrences of name lookups " -"(``foo``) to ``data['foo']``::" -msgstr "" -"Voici un exemple de transformation qui réécrit tous les accès à la valeur " -"d'une variable ``toto`` en ``data['toto']`` ::" - -#: library/ast.rst:2479 -#, fuzzy -msgid "" -"Keep in mind that if the node you're operating on has child nodes you must " -"either transform the child nodes yourself or call " -"the :meth:`~ast.NodeVisitor.generic_visit` method for the node first." -msgstr "" -"Gardez en tête que si un nœud sur lequel vous travaillez a des nœuds " -"enfants, vous devez transformer également ces nœuds enfants vous-même ou " -"appeler d'abord la méthode :meth:`generic_visit` sur le nœud." - -#: library/ast.rst:2483 -msgid "" -"For nodes that were part of a collection of statements (that applies to all " -"statement nodes), the visitor may also return a list of nodes rather than " -"just a single node." -msgstr "" -"Pour les nœuds qui font partie d'un groupe (notamment toutes les " -"instructions), le visiteur peut aussi renvoyer une liste des nœuds plutôt " -"qu'un seul nœud." - -#: library/ast.rst:2487 -#, fuzzy -msgid "" -"If :class:`NodeTransformer` introduces new nodes (that weren't part of " -"original tree) without giving them location information (such " -"as :attr:`~ast.AST.lineno`), :func:`fix_missing_locations` should be called " -"with the new sub-tree to recalculate the location information::" -msgstr "" -"Si :class:`NodeTransformer` ajoute de nouveaux nœuds à l'original sans leur " -"donner les attributs de position dans la source (:attr:`lineno` et " -"consorts), il faut passer le nouvel arbre (ou la nouvelle partie de l'arbre) " -"à :func:`fix_missing_locations` pour calculer les positions manquantes ::" - -#: library/ast.rst:2495 -msgid "Usually you use the transformer like this::" -msgstr "Utilisation typique des transformations ::" - -#: library/ast.rst:2502 -msgid "" -"Return a formatted dump of the tree in *node*. This is mainly useful for " -"debugging purposes. If *annotate_fields* is true (by default), the returned " -"string will show the names and the values for fields. If *annotate_fields* " -"is false, the result string will be more compact by omitting unambiguous " -"field names. Attributes such as line numbers and column offsets are not " -"dumped by default. If this is wanted, *include_attributes* can be set to " -"true." -msgstr "" -"Renvoie une représentation sous forme de chaîne de caractères de l'arbre " -"contenu dans *node*. Ceci est principalement utile à des fins de débogage. " -"Par défaut, les champs sont passés comme paramètres nommés aux constructeurs " -"des classes d'arbre syntaxiques. Cependant, si *annotate_fields* est mis à " -"``False``, les valeurs sont passées, lorsque cela est possible, comme " -"arguments positionnels, rendant la représentation plus compacte. Les " -"attributs comme les numéros de lignes et positions sur les lignes sont " -"masqués par défaut, mais on peut les inclure en mettant *include_attributes* " -"à ``True``." - -#: library/ast.rst:2510 -msgid "" -"If *color* is ``True``, the returned string is syntax highlighted using ANSI " -"escape sequences. If ``False`` (the default), colored output is always " -"disabled." -msgstr "" - -#: library/ast.rst:2514 -msgid "" -"If *indent* is a non-negative integer or string, then the tree will be " -"pretty-printed with that indent level. An indent level of 0, negative, or " -"``\"\"`` will only insert newlines. ``None`` (the default) selects the " -"single line representation. Using a positive integer indent indents that " -"many spaces per level. If *indent* is a string (such as ``\"\\t\"``), that " -"string is used to indent each level." -msgstr "" -"La représentation peut comprendre une indentation afin d'être plus lisible. " -"Si *indent* est une chaîne de caractères (par exemple une tabulation " -"``\"\\t\"``), elle est insérée au début des lignes en la répétant autant de " -"fois que le niveau d'indentation. Un entier positif équivaut à un certain " -"nombre d'espaces. Un entier strictement négatif produit un effet identique à " -"0 ou la chaîne vide, c'est-à-dire des retours à la ligne sans indentation. " -"Avec la valeur par défaut de ``None``, la sortie tient sur une seule ligne." - -#: library/ast.rst:2521 -msgid "" -"If *show_empty* is false (the default), optional empty lists and ``Load()`` " -"values will be omitted from the output. Optional ``None`` values are always " -"omitted." -msgstr "" - -#: library/ast.rst:2542 -msgid "Added the *indent* option." -msgstr "ajout du paramètre *indent*." - -#: library/ast.rst:2545 -#, fuzzy -msgid "Added the *show_empty* option." -msgstr "ajout du paramètre *indent*." - -#: library/ast.rst:2548 -msgid "Omit optional ``Load()`` values by default." -msgstr "" - -#: library/ast.rst:2551 -#, fuzzy -msgid "Added the *color* parameter." -msgstr "ajout du paramètre *indent*." - -#: library/ast.rst:2557 -msgid "Recursively compares two ASTs." -msgstr "" - -#: library/ast.rst:2559 -msgid "" -"*compare_attributes* affects whether AST attributes are considered in the " -"comparison. If *compare_attributes* is ``False`` (default), then attributes " -"are ignored. Otherwise they must all be equal. This option is useful to " -"check whether the ASTs are structurally equal but differ in whitespace or " -"similar details. Attributes include line numbers and column offsets." -msgstr "" - -#: library/ast.rst:2572 -#, fuzzy -msgid "Compiler flags" -msgstr "Options du compilateur" - -#: library/ast.rst:2574 -msgid "" -"The following flags may be passed to :func:`compile` in order to change " -"effects on the compilation of a program:" -msgstr "" -"Les options suivantes sont prises en charge par la fonction :func:`compile`. " -"Elles permettent de modifier le comportement de la compilation :" - -#: library/ast.rst:2579 -msgid "" -"Enables support for top-level ``await``, ``async for``, ``async with`` and " -"async comprehensions." -msgstr "" -"Active la reconnaissance de ``await``, ``async for``, ``async with`` et des " -"compréhensions asynchrones au niveau le plus haut." - -#: library/ast.rst:2586 -msgid "" -"Generates and returns an abstract syntax tree instead of returning a " -"compiled code object." -msgstr "" -"Génère et renvoie un arbre syntaxique au lieu d'un objet de code compilé." - -#: library/ast.rst:2591 -msgid "" -"The returned AST is optimized according to the *optimize* argument " -"in :func:`compile` or :func:`ast.parse`." -msgstr "" - -#: library/ast.rst:2598 -msgid "" -"Enables support for :pep:`484` and :pep:`526` style type comments (``# type: " -"``, ``# type: ignore ``)." -msgstr "" -"Ajoute la prise en charge des commentaires de types tels que définis dans " -"la :pep:`484` et la :pep:`526` (``# type: un_type`` et ``# type: ignore``)." - -#: library/ast.rst:2607 -#, fuzzy -msgid "Command-line usage" -msgstr "Utilisation en ligne de commande" - -#: library/ast.rst:2611 -msgid "" -"The output is now syntax highlighted by default. This can " -"be :ref:`controlled using environment variables `." -msgstr "" - -#: library/ast.rst:2615 -#, fuzzy -msgid "" -"The :mod:`!ast` module can be executed as a script from the command line. It " -"is as simple as:" -msgstr "" -"Le module :mod:`ast` peut être exécuté en tant que script en ligne de " -"commande. C'est aussi simple que ceci :" - -#: library/ast.rst:2622 -msgid "The following options are accepted:" -msgstr "Les options suivantes sont acceptées :" - -#: library/ast.rst:2628 -msgid "Show the help message and exit." -msgstr "Affiche un message d'aide et quitte." - -#: library/ast.rst:2633 -msgid "" -"Specify what kind of code must be compiled, like the *mode* argument " -"in :func:`parse`." -msgstr "" -"Précise le type de code à compiler, comme l'argument *mode* de la " -"fonction :func:`parse`." - -#: library/ast.rst:2638 -msgid "Don't parse type comments." -msgstr "Désactive la reconnaissance des commentaires de type." - -#: library/ast.rst:2642 -msgid "Include attributes such as line numbers and column offsets." -msgstr "" -"Affiche les attributs comme les numéros de lignes et les décalages par " -"rapport aux débuts des lignes." - -#: library/ast.rst:2647 -msgid "Indentation of nodes in AST (number of spaces)." -msgstr "Nombre d'espaces pour chaque niveau d'indentation dans la sortie." - -#: library/ast.rst:2651 -msgid "" -"Python version in the format 3.x (for example, 3.10). Defaults to the " -"current version of the interpreter." -msgstr "" - -#: library/ast.rst:2659 -msgid "Optimization level for parser. Defaults to no optimization." -msgstr "" - -#: library/ast.rst:2665 -msgid "" -"Show empty lists and fields that are ``None``. Defaults to not showing empty " -"objects." -msgstr "" - -#: library/ast.rst:2671 -msgid "" -"If :file:`infile` is specified its contents are parsed to AST and dumped to " -"stdout. Otherwise, the content is read from stdin." -msgstr "" -"L'entrée est lue dans le fichier :file:`infile`, s'il est donné, ou l'entrée " -"standard sinon. Le code source est transformé en un arbre syntaxique, qui " -"est affiché sur la sortie standard." - -#: library/ast.rst:2677 -msgid "" -"`Green Tree Snakes `_, an external " -"documentation resource, has good details on working with Python ASTs." -msgstr "" -"`Green Tree Snakes `_, une " -"ressource documentaire externe, qui possède plus de détails pour travailler " -"avec des arbres syntaxiques Python." - -#: library/ast.rst:2680 -msgid "" -"`ASTTokens `_ " -"annotates Python ASTs with the positions of tokens and text in the source " -"code that generated them. This is helpful for tools that make source code " -"transformations." -msgstr "" -"`ASTTokens `_ " -"annote les arbres syntaxiques Python avec les positions des lexèmes et les " -"extraits de code source à partir desquels ils sont produits. Ceci est utile " -"pour les outils qui transforment du code source." - -#: library/ast.rst:2685 -#, fuzzy -msgid "" -"`leoAst.py `_ unifies the token-based and parse-tree-based views of python programs " -"by inserting two-way links between tokens and ast nodes." -msgstr "" -"`leoAst.py `_ unifie les " -"visions des lexèmes et des arbres syntaxiques en insérant des liens " -"bidirectionnels entre les deux." - -#: library/ast.rst:2690 -msgid "" -"`LibCST `_ parses code as a Concrete Syntax " -"Tree that looks like an ast tree and keeps all formatting details. It's " -"useful for building automated refactoring (codemod) applications and linters." -msgstr "" -"`LibCST `_ produit à partir du code source " -"des arbres syntaxiques concrets, qui ressemblent à leurs homologues " -"abstraits et conservent tous les détails du formatage. Cette bibliothèque " -"est utile aux outils de réusinage et d'analyse de code." - -#: library/ast.rst:2695 -#, fuzzy -msgid "" -"`Parso `_ is a Python parser that supports " -"error recovery and round-trip parsing for different Python versions (in " -"multiple Python versions). Parso is also able to list multiple syntax errors " -"in your Python file." -msgstr "" -"`Parso `_ est un analyseur syntaxique de code " -"Python qui gère la récupération d'erreurs et la génération de code (de " -"l'arbre syntaxique vers le code source), le tout pour les grammaires de " -"différentes versions de Python et en utilisant différentes versions. Il sait " -"également donner plusieurs erreurs de syntaxe en une seule fois." - -#~ msgid "* (asterisk)" -#~ msgstr "* (astérisque)" - -#~ msgid "or the more compact ::" -#~ msgstr "ou, plus compact ::" - -#~ msgid "" -#~ "Also, setting ``feature_version`` to a tuple ``(major, minor)`` will " -#~ "attempt to parse using that Python version's grammar. Currently ``major`` " -#~ "must equal to ``3``. For example, setting ``feature_version=(3, 4)`` " -#~ "will allow the use of ``async`` and ``await`` as variable names. The " -#~ "lowest supported version is ``(3, 4)``; the highest is " -#~ "``sys.version_info[0:2]``." -#~ msgstr "" -#~ "Si *feature_version* est défini à une version de Python, sous la forme " -#~ "d'un couple ``(version_majeure, version_mineure)``, l'analyseur tentera " -#~ "de lire la source en se conformant à la syntaxe de cette version. Ainsi, " -#~ "avec ``feature_version=(3, 4)``, les noms ``async`` et ``await`` peuvent " -#~ "nommer des variables. La version la plus ancienne prise en charge est " -#~ "actuellement ``(3, 4)`` ; la plus récente est ``sys.version_info[0:2]``." diff --git a/library/asynchat.po b/library/asynchat.po deleted file mode 100644 index 356a5ed75c..0000000000 --- a/library/asynchat.po +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/asynchat.rst:2 -msgid ":mod:`!asynchat` --- Asynchronous socket command/response handler" -msgstr "" - -#: library/asynchat.rst:10 -msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.12 ` after being " -"deprecated in Python 3.6. The removal was decided in :pep:`594`." -msgstr "" - -#: library/asynchat.rst:14 -msgid "Applications should use the :mod:`asyncio` module instead." -msgstr "" - -#: library/asynchat.rst:16 -msgid "" -"The last version of Python that provided the :mod:`!asynchat` module was " -"`Python 3.11 `_." -msgstr "" diff --git a/library/asyncio-api-index.po b/library/asyncio-api-index.po deleted file mode 100644 index c8e669574c..0000000000 --- a/library/asyncio-api-index.po +++ /dev/null @@ -1,470 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-15 22:33+0100\n" -"PO-Revision-Date: 2023-06-17 19:31+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-api-index.rst:6 -msgid "High-level API Index" -msgstr "Index de l'API de haut niveau" - -#: library/asyncio-api-index.rst:8 -msgid "This page lists all high-level async/await enabled asyncio APIs." -msgstr "" -"Cette page répertorie toutes les API *async/await* de haut niveau " -"disponibles dans l'API *asyncio*." - -#: library/asyncio-api-index.rst:12 -msgid "Tasks" -msgstr "Tâches" - -#: library/asyncio-api-index.rst:14 -msgid "" -"Utilities to run asyncio programs, create Tasks, and await on multiple " -"things with timeouts." -msgstr "" -"Utilitaires pour exécuter des programmes asynchrones, créer des tâches et " -"attendre plusieurs choses avec des délais maximaux d'attente." - -#: library/asyncio-api-index.rst:21 -msgid ":func:`run`" -msgstr ":func:`run`" - -#: library/asyncio-api-index.rst:22 -msgid "Create event loop, run a coroutine, close the loop." -msgstr "Crée une boucle d'événements, exécute une coroutine, ferme la boucle." - -#: library/asyncio-api-index.rst:24 -msgid ":class:`Runner`" -msgstr ":class:`Runner`" - -#: library/asyncio-api-index.rst:25 -msgid "A context manager that simplifies multiple async function calls." -msgstr "" -"Gestionnaire de contexte qui simplifie plusieurs appels de fonction " -"asynchrones." - -#: library/asyncio-api-index.rst:27 -msgid ":class:`Task`" -msgstr ":class:`Task`" - -#: library/asyncio-api-index.rst:28 -msgid "Task object." -msgstr "Objet de tâche." - -#: library/asyncio-api-index.rst:30 -msgid ":class:`TaskGroup`" -msgstr ":class:`TaskGroup`" - -#: library/asyncio-api-index.rst:31 -msgid "" -"A context manager that holds a group of tasks. Provides a convenient and " -"reliable way to wait for all tasks in the group to finish." -msgstr "" -"Gestionnaire de contexte pour un groupe de tâches. Fournit un moyen pratique " -"et fiable d'attendre la fin de toutes les tâches du groupe." - -#: library/asyncio-api-index.rst:35 -msgid ":func:`create_task`" -msgstr ":func:`create_task`" - -#: library/asyncio-api-index.rst:36 -msgid "Start an asyncio Task, then returns it." -msgstr "Démarre une tâche asynchrone, puis la renvoie." - -#: library/asyncio-api-index.rst:38 -msgid ":func:`current_task`" -msgstr ":func:`current_task`" - -#: library/asyncio-api-index.rst:39 -msgid "Return the current Task." -msgstr "Renvoie la tâche actuelle." - -#: library/asyncio-api-index.rst:41 -msgid ":func:`all_tasks`" -msgstr ":func:`all_tasks`" - -#: library/asyncio-api-index.rst:42 -msgid "Return all tasks that are not yet finished for an event loop." -msgstr "" -"Renvoie toutes les tâches qui ne sont pas encore terminées pour une boucle " -"d'événements." - -#: library/asyncio-api-index.rst:44 -msgid "``await`` :func:`sleep`" -msgstr "``await`` :func:`sleep`" - -#: library/asyncio-api-index.rst:45 -msgid "Sleep for a number of seconds." -msgstr "Dort quelques secondes." - -#: library/asyncio-api-index.rst:47 -msgid "``await`` :func:`gather`" -msgstr "``await`` :func:`gather`" - -#: library/asyncio-api-index.rst:48 -msgid "Schedule and wait for things concurrently." -msgstr "Planifie et attend des choses concurrentes." - -#: library/asyncio-api-index.rst:50 -msgid "``await`` :func:`wait_for`" -msgstr "``await`` :func:`wait_for`" - -#: library/asyncio-api-index.rst:51 -msgid "Run with a timeout." -msgstr "Exécute avec un délai d'attente." - -#: library/asyncio-api-index.rst:53 -msgid "``await`` :func:`shield`" -msgstr "``await`` :func:`shield`" - -#: library/asyncio-api-index.rst:54 -msgid "Shield from cancellation." -msgstr "Empêche l'annulation." - -#: library/asyncio-api-index.rst:56 -msgid "``await`` :func:`wait`" -msgstr "``await`` :func:`wait`" - -#: library/asyncio-api-index.rst:57 -msgid "Monitor for completion." -msgstr "Surveille l'achèvement." - -#: library/asyncio-api-index.rst:59 -msgid ":func:`timeout`" -msgstr ":func:`timeout`" - -#: library/asyncio-api-index.rst:60 -msgid "Run with a timeout. Useful in cases when ``wait_for`` is not suitable." -msgstr "" -"Exécute avec un délai d'attente. Utile dans les cas où ``wait_for`` ne " -"convient pas." - -#: library/asyncio-api-index.rst:62 -msgid ":func:`to_thread`" -msgstr ":func:`to_thread`" - -#: library/asyncio-api-index.rst:63 -msgid "Asynchronously run a function in a separate OS thread." -msgstr "" -"Exécute de manière asynchrone une fonction dans un fil d'exécution séparé." - -#: library/asyncio-api-index.rst:65 -msgid ":func:`run_coroutine_threadsafe`" -msgstr ":func:`run_coroutine_threadsafe`" - -#: library/asyncio-api-index.rst:66 -msgid "Schedule a coroutine from another OS thread." -msgstr "Planifie une coroutine à partir d'un autre fil d'exécution." - -#: library/asyncio-api-index.rst:68 -msgid "``for in`` :func:`as_completed`" -msgstr "``for in`` :func:`as_completed`" - -#: library/asyncio-api-index.rst:69 -msgid "Monitor for completion with a ``for`` loop." -msgstr "Surveille l'achèvement avec une boucle ``for``." - -#: library/asyncio-api-index.rst:73 library/asyncio-api-index.rst:109 -#: library/asyncio-api-index.rst:133 library/asyncio-api-index.rst:169 -#: library/asyncio-api-index.rst:205 library/asyncio-api-index.rst:230 -msgid "Examples" -msgstr "Exemples" - -#: library/asyncio-api-index.rst:74 -msgid "" -":ref:`Using asyncio.gather() to run things in parallel " -"`." -msgstr "" -":ref:`Utilisation d'asyncio.gather() pour exécuter des choses en parallèle " -"`." - -#: library/asyncio-api-index.rst:77 -msgid "" -":ref:`Using asyncio.wait_for() to enforce a timeout " -"`." -msgstr "" -":ref:`Utilisation d'asyncio.wait_for() pour appliquer un délai d'attente " -"`." - -#: library/asyncio-api-index.rst:80 -msgid ":ref:`Cancellation `." -msgstr ":ref:`Annulation `." - -#: library/asyncio-api-index.rst:82 -msgid ":ref:`Using asyncio.sleep() `." -msgstr ":ref:`Utilisation d'asyncio.sleep() `." - -#: library/asyncio-api-index.rst:84 -msgid "See also the main :ref:`Tasks documentation page `." -msgstr "Voir aussi la page de :ref:`documentation de Tasks `." - -#: library/asyncio-api-index.rst:88 -msgid "Queues" -msgstr "Files d'attente" - -#: library/asyncio-api-index.rst:90 -msgid "" -"Queues should be used to distribute work amongst multiple asyncio Tasks, " -"implement connection pools, and pub/sub patterns." -msgstr "" -"Les files d'attente doivent être utilisées pour répartir le travail entre " -"plusieurs tâches asynchrones, implémenter des pools de connexions et des " -"modèles *pub*/*sub*." - -#: library/asyncio-api-index.rst:98 -msgid ":class:`Queue`" -msgstr ":class:`Queue`" - -#: library/asyncio-api-index.rst:99 -msgid "A FIFO queue." -msgstr "File d'attente FIFO (premier entré, premier sorti)." - -#: library/asyncio-api-index.rst:101 -msgid ":class:`PriorityQueue`" -msgstr ":class:`PriorityQueue`" - -#: library/asyncio-api-index.rst:102 -msgid "A priority queue." -msgstr "File d'attente avec gestion des priorités." - -#: library/asyncio-api-index.rst:104 -msgid ":class:`LifoQueue`" -msgstr ":class:`LifoQueue`" - -#: library/asyncio-api-index.rst:105 -msgid "A LIFO queue." -msgstr "Pile LIFO (dernier entré, premier sorti)." - -#: library/asyncio-api-index.rst:110 -msgid "" -":ref:`Using asyncio.Queue to distribute workload between several Tasks " -"`." -msgstr "" -":ref:`Utilisation d'asyncio.Queue pour répartir la charge de travail entre " -"plusieurs tâches `." - -#: library/asyncio-api-index.rst:113 -msgid "See also the :ref:`Queues documentation page `." -msgstr "" -"Voir aussi la page de :ref:`documentation des Queues `." - -#: library/asyncio-api-index.rst:117 -msgid "Subprocesses" -msgstr "Sous-processus" - -#: library/asyncio-api-index.rst:119 -msgid "Utilities to spawn subprocesses and run shell commands." -msgstr "" -"Utilitaires pour générer des sous-processus et exécuter des commandes shell." - -#: library/asyncio-api-index.rst:125 -msgid "``await`` :func:`create_subprocess_exec`" -msgstr "``await`` :func:`create_subprocess_exec`" - -#: library/asyncio-api-index.rst:126 -msgid "Create a subprocess." -msgstr "Crée un sous-processus." - -#: library/asyncio-api-index.rst:128 -msgid "``await`` :func:`create_subprocess_shell`" -msgstr "``await`` :func:`create_subprocess_shell`" - -#: library/asyncio-api-index.rst:129 -msgid "Run a shell command." -msgstr "Exécute une commande shell." - -#: library/asyncio-api-index.rst:134 -msgid ":ref:`Executing a shell command `." -msgstr "" -":ref:`Exécution d'une commande shell `." - -#: library/asyncio-api-index.rst:136 -msgid "See also the :ref:`subprocess APIs ` documentation." -msgstr "" -"Voir aussi la documentation des :ref:`API subprocess `." - -#: library/asyncio-api-index.rst:141 -msgid "Streams" -msgstr "Flux (*streams*)" - -#: library/asyncio-api-index.rst:143 -msgid "High-level APIs to work with network IO." -msgstr "API de haut niveau pour travailler avec les entrées-sorties réseau." - -#: library/asyncio-api-index.rst:149 -msgid "``await`` :func:`open_connection`" -msgstr "``await`` :func:`open_connection`" - -#: library/asyncio-api-index.rst:150 -msgid "Establish a TCP connection." -msgstr "Établit une connexion TCP." - -#: library/asyncio-api-index.rst:152 -msgid "``await`` :func:`open_unix_connection`" -msgstr "``await`` :func:`open_unix_connection`" - -#: library/asyncio-api-index.rst:153 -msgid "Establish a Unix socket connection." -msgstr "Établit une connexion sur un connecteur Unix." - -#: library/asyncio-api-index.rst:155 -msgid "``await`` :func:`start_server`" -msgstr "``await`` :func:`start_server`" - -#: library/asyncio-api-index.rst:156 -msgid "Start a TCP server." -msgstr "Démarre un serveur TCP." - -#: library/asyncio-api-index.rst:158 -msgid "``await`` :func:`start_unix_server`" -msgstr "``await`` :func:`start_unix_server`" - -#: library/asyncio-api-index.rst:159 -msgid "Start a Unix socket server." -msgstr "Démarre un serveur de socket Unix." - -#: library/asyncio-api-index.rst:161 -msgid ":class:`StreamReader`" -msgstr ":class:`StreamReader`" - -#: library/asyncio-api-index.rst:162 -msgid "High-level async/await object to receive network data." -msgstr "Objet *async/await* de haut niveau pour recevoir des données réseau." - -#: library/asyncio-api-index.rst:164 -msgid ":class:`StreamWriter`" -msgstr ":class:`StreamWriter`" - -#: library/asyncio-api-index.rst:165 -msgid "High-level async/await object to send network data." -msgstr "Objet *async/await* de haut niveau pour envoyer des données réseau." - -#: library/asyncio-api-index.rst:170 -msgid ":ref:`Example TCP client `." -msgstr ":ref:`Exemple de client TCP `." - -#: library/asyncio-api-index.rst:172 -msgid "See also the :ref:`streams APIs ` documentation." -msgstr "Voir aussi la documentation des :ref:`API streams `." - -#: library/asyncio-api-index.rst:177 -msgid "Synchronization" -msgstr "Synchronisation" - -#: library/asyncio-api-index.rst:179 -msgid "Threading-like synchronization primitives that can be used in Tasks." -msgstr "" -"Primitives de synchronisation de type thread qui peuvent être utilisées dans " -"les tâches." - -#: library/asyncio-api-index.rst:185 -msgid ":class:`Lock`" -msgstr ":class:`Lock`" - -#: library/asyncio-api-index.rst:186 -msgid "A mutex lock." -msgstr "Verrou mutex." - -#: library/asyncio-api-index.rst:188 -msgid ":class:`Event`" -msgstr ":class:`Event`" - -#: library/asyncio-api-index.rst:189 -msgid "An event object." -msgstr "Objet événement." - -#: library/asyncio-api-index.rst:191 -msgid ":class:`Condition`" -msgstr ":class:`Condition`" - -#: library/asyncio-api-index.rst:192 -msgid "A condition object." -msgstr "Objet condition." - -#: library/asyncio-api-index.rst:194 -msgid ":class:`Semaphore`" -msgstr ":class:`Semaphore`" - -#: library/asyncio-api-index.rst:195 -msgid "A semaphore." -msgstr "Sémaphore." - -#: library/asyncio-api-index.rst:197 -msgid ":class:`BoundedSemaphore`" -msgstr ":class:`BoundedSemaphore`" - -#: library/asyncio-api-index.rst:198 -msgid "A bounded semaphore." -msgstr "Sémaphore avec des bornes." - -#: library/asyncio-api-index.rst:200 -msgid ":class:`Barrier`" -msgstr ":class:`Barrier`" - -#: library/asyncio-api-index.rst:201 -msgid "A barrier object." -msgstr "Objet barrière." - -#: library/asyncio-api-index.rst:206 -msgid ":ref:`Using asyncio.Event `." -msgstr ":ref:`Utilisation d'asyncio.Event `." - -#: library/asyncio-api-index.rst:208 -msgid ":ref:`Using asyncio.Barrier `." -msgstr ":ref:`Utilisation d'asyncio.Barrier `." - -#: library/asyncio-api-index.rst:210 -msgid "" -"See also the documentation of asyncio :ref:`synchronization primitives " -"`." -msgstr "" -"Voir aussi la documentation des :ref:`primitives asyncio de synchronisation " -"`." - -#: library/asyncio-api-index.rst:215 -msgid "Exceptions" -msgstr "Exceptions" - -#: library/asyncio-api-index.rst:222 -msgid ":exc:`asyncio.CancelledError`" -msgstr ":exc:`asyncio.CancelledError`" - -#: library/asyncio-api-index.rst:223 -msgid "Raised when a Task is cancelled. See also :meth:`Task.cancel`." -msgstr "Levée lorsqu'une tâche est annulée. Voir aussi :meth:`Task.cancel`." - -#: library/asyncio-api-index.rst:225 -msgid ":exc:`asyncio.BrokenBarrierError`" -msgstr ":exc:`asyncio.BrokenBarrierError`" - -#: library/asyncio-api-index.rst:226 -msgid "Raised when a Barrier is broken. See also :meth:`Barrier.wait`." -msgstr "Levée lorsqu'une barrière est brisée. Voir aussi :meth:`Barrier.wait`." - -#: library/asyncio-api-index.rst:231 -msgid "" -":ref:`Handling CancelledError to run code on cancellation request " -"`." -msgstr "" -":ref:`Utilisation de CancelledError pour exécuter le code sur la demande " -"d'annulation `." - -#: library/asyncio-api-index.rst:234 -msgid "" -"See also the full list of :ref:`asyncio-specific exceptions `." -msgstr "" -"Voir aussi la liste complète des :ref:`exceptions spécifiques asyncio " -"`." diff --git a/library/asyncio-dev.po b/library/asyncio-dev.po deleted file mode 100644 index 4f609928a9..0000000000 --- a/library/asyncio-dev.po +++ /dev/null @@ -1,484 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-06-19 22:57+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-dev.rst:7 -msgid "Developing with asyncio" -msgstr "Programmer avec *asyncio*" - -#: library/asyncio-dev.rst:9 -msgid "" -"Asynchronous programming is different from classic \"sequential\" " -"programming." -msgstr "" -"La programmation asynchrone est différente de la programmation " -"« séquentielle » classique." - -#: library/asyncio-dev.rst:12 -msgid "" -"This page lists common mistakes and traps and explains how to avoid them." -msgstr "" -"Cette page liste les pièges et erreurs communs que le développeur pourrait " -"rencontrer et décrit comment les éviter." - -#: library/asyncio-dev.rst:19 -msgid "Debug Mode" -msgstr "Mode débogage" - -#: library/asyncio-dev.rst:21 -msgid "" -"By default asyncio runs in production mode. In order to ease the " -"development asyncio has a *debug mode*." -msgstr "" -"Par défaut, *asyncio* s'exécute en mode production. Pour faciliter le " -"développement, *asyncio* possède un « mode débogage »." - -#: library/asyncio-dev.rst:24 -msgid "There are several ways to enable asyncio debug mode:" -msgstr "Il existe plusieurs façons d'activer le mode débogage de *asyncio* :" - -#: library/asyncio-dev.rst:26 -msgid "Setting the :envvar:`PYTHONASYNCIODEBUG` environment variable to ``1``." -msgstr "" -"en réglant la variable d’environnement :envvar:`PYTHONASYNCIODEBUG` à ``1`` ;" - -#: library/asyncio-dev.rst:28 -msgid "Using the :ref:`Python Development Mode `." -msgstr "" -"en utilisant le mode développement de Python (:ref:`Python Development Mode " -"`) ;" - -#: library/asyncio-dev.rst:30 -msgid "Passing ``debug=True`` to :func:`asyncio.run`." -msgstr "en passant ``debug=True`` à la fonction :func:`asyncio.run` ;" - -#: library/asyncio-dev.rst:32 -msgid "Calling :meth:`loop.set_debug`." -msgstr "en appelant la méthode :meth:`loop.set_debug`." - -#: library/asyncio-dev.rst:34 -msgid "In addition to enabling the debug mode, consider also:" -msgstr "En plus d'activer le mode débogage, vous pouvez également :" - -#: library/asyncio-dev.rst:36 -#, fuzzy -msgid "" -"setting the log level of the :ref:`asyncio logger ` " -"to :py:const:`logging.DEBUG`, for example the following snippet of code can " -"be run at startup of the application::" -msgstr "" -"régler le niveau de journalisation pour l'enregistreur d'*asyncio* " -"(:ref:`asyncio logger `) à :py:data:`logging.DEBUG` ; par " -"exemple, le fragment de code suivant peut être exécuté au démarrage de " -"l'application ::" - -#: library/asyncio-dev.rst:42 -msgid "" -"configuring the :mod:`warnings` module to display :exc:`ResourceWarning` " -"warnings. One way of doing that is by using the :option:`-W` ``default`` " -"command line option." -msgstr "" -"configurer le module :mod:`warnings` afin d'afficher les avertissements de " -"type :exc:`ResourceWarning` ; vous pouvez faire cela en utilisant " -"l'option :option:`-W` ``default`` sur la ligne de commande." - -#: library/asyncio-dev.rst:47 -msgid "When the debug mode is enabled:" -msgstr "Lorsque le mode débogage est activé :" - -# thread safe comment traduire -#: library/asyncio-dev.rst:49 -msgid "" -"Many non-threadsafe asyncio APIs (such as :meth:`loop.call_soon` " -"and :meth:`loop.call_at` methods) raise an exception if they are called from " -"a wrong thread." -msgstr "" -"beaucoup d'*API* *asyncio* ne prenant pas en charge les fils d'exécution " -"multiples (comme les méthodes :meth:`loop.call_soon` " -"et :meth:`loop.call_at`) lèvent une exception si elles sont appelées par le " -"mauvais fil d’exécution ;" - -#: library/asyncio-dev.rst:53 -msgid "" -"The execution time of the I/O selector is logged if it takes too long to " -"perform an I/O operation." -msgstr "" -"le temps d'exécution du sélecteur d'entrée-sortie est journalisé si une " -"opération prend trop de temps à s'effectuer ;" - -#: library/asyncio-dev.rst:56 -msgid "" -"Callbacks taking longer than 100 milliseconds are logged. " -"The :attr:`loop.slow_callback_duration` attribute can be used to set the " -"minimum execution duration in seconds that is considered \"slow\"." -msgstr "" -"les fonctions de rappel prenant plus de 100 ms sont journalisées ; " -"l'attribut :attr:`loop.slow_callback_duration` peut être utilisé pour " -"changer la limite (en secondes) après laquelle une fonction de rappel est " -"considérée comme « lente »." - -#: library/asyncio-dev.rst:64 -msgid "Concurrency and Multithreading" -msgstr "Programmation concurrente et multi-fils" - -#: library/asyncio-dev.rst:66 -msgid "" -"An event loop runs in a thread (typically the main thread) and executes all " -"callbacks and Tasks in its thread. While a Task is running in the event " -"loop, no other Tasks can run in the same thread. When a Task executes an " -"``await`` expression, the running Task gets suspended, and the event loop " -"executes the next Task." -msgstr "" -"Une boucle d'évènements s'exécute dans un fil d’exécution (typiquement dans " -"le fil principal) et traite toutes les fonctions de rappel (*callbacks*) " -"ainsi que toutes les tâches dans ce même fil. Lorsqu'une tâche est en cours " -"d'exécution dans la boucle d'évènements, aucune autre tâche ne peut " -"s'exécuter dans ce fil. Quand une tâche traite une expression ``await``, " -"elle se suspend et laisse la boucle d’évènements traiter la tâche suivante." - -#: library/asyncio-dev.rst:72 -msgid "" -"To schedule a :term:`callback` from another OS thread, " -"the :meth:`loop.call_soon_threadsafe` method should be used. Example::" -msgstr "" -"Pour planifier un :term:`rappel ` depuis un autre fil d'exécution " -"système, utilisez la méthode :meth:`loop.call_soon_threadsafe`. Par " -"exemple ::" - -#: library/asyncio-dev.rst:77 -msgid "" -"Almost all asyncio objects are not thread safe, which is typically not a " -"problem unless there is code that works with them from outside of a Task or " -"a callback. If there's a need for such code to call a low-level asyncio " -"API, the :meth:`loop.call_soon_threadsafe` method should be used, e.g.::" -msgstr "" -"La plupart des objets *asyncio* ne sont pas conçus pour être exécutés dans " -"un contexte multi-fils (*thread-safe*) mais cela n'est en général pas un " -"problème à moins que l'objet ne fasse appel à du code se trouvant en dehors " -"d'une tâche ou d'une fonction de rappel. Dans ce dernier cas, si le code " -"appelle les *API* bas niveau de *asyncio*, utilisez la " -"méthode :meth:`loop.call_soon_threadsafe`. Par exemple ::" - -#: library/asyncio-dev.rst:85 -msgid "" -"To schedule a coroutine object from a different OS thread, " -"the :func:`run_coroutine_threadsafe` function should be used. It returns " -"a :class:`concurrent.futures.Future` to access the result::" -msgstr "" -"Pour planifier un objet concurrent depuis un autre fil d'exécution système, " -"utilisez :func:`run_coroutine_threadsafe`. Cette fonction renvoie un " -"objet :class:`concurrent.futures.Future` pour accéder au résultat ::" - -#: library/asyncio-dev.rst:98 -#, fuzzy -msgid "To handle signals the event loop must be run in the main thread." -msgstr "" -"Pour pouvoir traiter les signaux et démarrer des processus enfants, la " -"boucle d'évènements doit être exécutée dans le fil principal." - -#: library/asyncio-dev.rst:101 -#, fuzzy -msgid "" -"The :meth:`loop.run_in_executor` method can be used with " -"a :class:`concurrent.futures.ThreadPoolExecutor` " -"or :class:`~concurrent.futures.InterpreterPoolExecutor` to execute blocking " -"code in a different OS thread without blocking the OS thread that the event " -"loop runs in." -msgstr "" -"La méthode :meth:`loop.run_in_executor` peut être utilisée " -"avec :class:`concurrent.futures.ThreadPoolExecutor` pour exécuter du code " -"bloquant dans un autre fil d'exécution, afin de ne pas bloquer le fil où la " -"boucle d'évènements se trouve." - -#: library/asyncio-dev.rst:107 -msgid "" -"There is currently no way to schedule coroutines or callbacks directly from " -"a different process (such as one started with :mod:`multiprocessing`). " -"The :ref:`asyncio-event-loop-methods` section lists APIs that can read from " -"pipes and watch file descriptors without blocking the event loop. In " -"addition, asyncio's :ref:`Subprocess ` APIs provide a " -"way to start a process and communicate with it from the event loop. Lastly, " -"the aforementioned :meth:`loop.run_in_executor` method can also be used with " -"a :class:`concurrent.futures.ProcessPoolExecutor` to execute code in a " -"different process." -msgstr "" -"Il n'y a actuellement aucune façon de planifier des coroutines ou des " -"rappels directement depuis un autre processus (comme, par exemple, un " -"processus démarré avec :mod:`multiprocessing`). La section :ref:`Méthodes de " -"la boucle d'évènements ` liste les *API* pouvant lire " -"les tubes (*pipes*) et surveiller les descripteurs de fichiers sans bloquer " -"la boucle d'évènements. De plus, les *API* :ref:`Subprocess ` d'*asyncio* fournissent un moyen de démarrer un processus et de " -"communiquer avec lui depuis la boucle d'évènements. Enfin, la " -"méthode :meth:`loop.run_in_executor` susmentionnée peut également être " -"utilisée avec :class:`concurrent.futures.ProcessPoolExecutor` pour exécuter " -"du code dans un processus différent." - -#: library/asyncio-dev.rst:121 -msgid "Running Blocking Code" -msgstr "Exécution de code bloquant" - -#: library/asyncio-dev.rst:123 -msgid "" -"Blocking (CPU-bound) code should not be called directly. For example, if a " -"function performs a CPU-intensive calculation for 1 second, all concurrent " -"asyncio Tasks and IO operations would be delayed by 1 second." -msgstr "" -"Du code bloquant sur des opérations de calcul (*CPU-bound*) ne devrait pas " -"être appelé directement. Par exemple, si une fonction effectue des calculs " -"utilisant le CPU intensivement pendant une seconde, toutes les tâches " -"*asyncio* concurrentes et les opérations d'entrées-sorties seront bloquées " -"pour une seconde." - -#: library/asyncio-dev.rst:128 -#, fuzzy -msgid "" -"An executor can be used to run a task in a different thread, including in a " -"different interpreter, or even in a different process to avoid blocking the " -"OS thread with the event loop. See the :meth:`loop.run_in_executor` method " -"for more details." -msgstr "" -"Un exécuteur peut être utilisé pour traiter une tâche dans un fil " -"d'exécution ou un processus différent, afin d'éviter de bloquer le fil " -"d'exécution système dans lequel se trouve la boucle d’évènements. " -"Voir :meth:`loop.run_in_executor` pour plus de détails." - -#: library/asyncio-dev.rst:138 -msgid "Logging" -msgstr "Journalisation" - -#: library/asyncio-dev.rst:140 -msgid "" -"asyncio uses the :mod:`logging` module and all logging is performed via the " -"``\"asyncio\"`` logger." -msgstr "" -"*Asyncio* utilise le module :mod:`logging`. Toutes les opérations de " -"journalisation sont effectuées via l'enregistreur (*logger*) ``\"asyncio\"``." - -#: library/asyncio-dev.rst:143 -#, fuzzy -msgid "" -"The default log level is :py:const:`logging.INFO`, which can be easily " -"adjusted::" -msgstr "" -"Le niveau de journalisation par défaut est :py:data:`logging.INFO` mais peut " -"être ajusté facilement ::" - -#: library/asyncio-dev.rst:149 -msgid "" -"Network logging can block the event loop. It is recommended to use a " -"separate thread for handling logs or use non-blocking IO. For example, " -"see :ref:`blocking-handlers`." -msgstr "" -"La journalisation réseau peut bloquer la boucle d'événements. Il est " -"recommandé d'utiliser un fil d'exécution séparé pour gérer les journaux ou " -"d'utiliser des entrées-sorties non bloquantes. Par exemple, " -"voir :ref:`blocking-handlers`." - -#: library/asyncio-dev.rst:157 -msgid "Detect never-awaited coroutines" -msgstr "Détection des coroutines jamais attendues" - -#: library/asyncio-dev.rst:159 -msgid "" -"When a coroutine function is called, but not awaited (e.g. ``coro()`` " -"instead of ``await coro()``) or the coroutine is not scheduled " -"with :meth:`asyncio.create_task`, asyncio will emit a :exc:`RuntimeWarning`::" -msgstr "" -"Lorsqu'une fonction coroutine est appelée mais qu'elle n'est pas attendue " -"(p. ex. ``coro()`` au lieu de ``await coro()``) ou si la coroutine n'est " -"pas planifiée avec :meth:`asyncio.create_task`, *asyncio* émet " -"un :exc:`RuntimeWarning` ::" - -#: library/asyncio-dev.rst:219 library/asyncio-dev.rst:450 -msgid "Output::" -msgstr "Sortie ::" - -#: library/asyncio-dev.rst:235 -msgid "Output in debug mode::" -msgstr "Affichage en mode débogage ::" - -#: library/asyncio-dev.rst:192 -msgid "" -"The usual fix is to either await the coroutine or call " -"the :meth:`asyncio.create_task` function::" -msgstr "" -"La façon habituelle de régler ce problème est d'attendre (*await*) la " -"coroutine ou bien d'appeler la fonction :meth:`asyncio.create_task` ::" - -#: library/asyncio-dev.rst:200 -msgid "Detect never-retrieved exceptions" -msgstr "Détection des exceptions jamais récupérées" - -#: library/asyncio-dev.rst:202 -msgid "" -"If a :meth:`Future.set_exception` is called but the Future object is never " -"awaited on, the exception would never be propagated to the user code. In " -"this case, asyncio would emit a log message when the Future object is " -"garbage collected." -msgstr "" -"Si la méthode :meth:`Future.set_exception` est appelée mais que l'objet " -"*Future* n'est pas attendu, l'exception n'est pas propagée au code " -"utilisateur. Dans ce cas, *asyncio* écrit un message dans le journal lorsque " -"l'objet *Future* est récupéré par le ramasse-miette." - -#: library/asyncio-dev.rst:207 -msgid "Example of an unhandled exception::" -msgstr "Exemple d'une exception non-gérée ::" - -#: library/asyncio-dev.rst:230 -msgid "" -":ref:`Enable the debug mode ` to get the traceback where " -"the task was created::" -msgstr "" -":ref:`Activez le mode débogage ` pour récupérer la trace " -"d'appels indiquant où la tâche a été créée ::" - -#: library/asyncio-dev.rst:254 -msgid "Asynchronous generators best practices" -msgstr "" - -#: library/asyncio-dev.rst:256 -msgid "" -"Writing correct and efficient asyncio code requires awareness of certain " -"pitfalls. This section outlines essential best practices that can save you " -"hours of debugging." -msgstr "" - -#: library/asyncio-dev.rst:261 -msgid "Close asynchronous generators explicitly" -msgstr "" - -#: library/asyncio-dev.rst:263 -msgid "" -"It is recommended to manually close the :term:`asynchronous generator " -"`. If a generator exits early - for " -"example, due to an exception raised in the body of an ``async for`` loop - " -"its asynchronous cleanup code may run in an unexpected context. This can " -"occur after the tasks it depends on have completed, or during the event loop " -"shutdown when the async-generator's garbage collection hook is called." -msgstr "" - -#: library/asyncio-dev.rst:271 -msgid "" -"To avoid this, explicitly close the generator by calling " -"its :meth:`~agen.aclose` method, or use the :func:`contextlib.aclosing` " -"context manager::" -msgstr "" - -#: library/asyncio-dev.rst:289 -msgid "" -"As noted above, the cleanup code for these asynchronous generators is " -"deferred. The following example demonstrates that the finalization of an " -"asynchronous generator can occur in an unexpected order::" -msgstr "" - -#: library/asyncio-dev.rst:319 -msgid "For this example, we get the following output::" -msgstr "" - -#: library/asyncio-dev.rst:336 -msgid "" -"The ``cursor()`` asynchronous generator was finalized before the ``rows`` " -"generator - an unexpected behavior." -msgstr "" - -#: library/asyncio-dev.rst:339 -msgid "" -"The example can be fixed by explicitly closing the ``cursor`` and ``rows`` " -"async-generators::" -msgstr "" - -#: library/asyncio-dev.rst:352 -msgid "Create asynchronous generators only when the event loop is running" -msgstr "" - -#: library/asyncio-dev.rst:354 -msgid "" -"It is recommended to create :term:`asynchronous generators ` only after the event loop has been created." -msgstr "" - -#: library/asyncio-dev.rst:358 -msgid "" -"To ensure that asynchronous generators close reliably, the event loop uses " -"the :func:`sys.set_asyncgen_hooks` function to register callback functions. " -"These callbacks update the list of running asynchronous generators to keep " -"it in a consistent state." -msgstr "" - -#: library/asyncio-dev.rst:363 -msgid "" -"When the :meth:`loop.shutdown_asyncgens() ` " -"function is called, the running generators are stopped gracefully and the " -"list is cleared." -msgstr "" - -#: library/asyncio-dev.rst:367 -msgid "" -"The asynchronous generator invokes the corresponding system hook during its " -"first iteration. At the same time, the generator records that the hook has " -"been called and does not call it again." -msgstr "" - -#: library/asyncio-dev.rst:371 -msgid "" -"Therefore, if iteration begins before the event loop is created, the event " -"loop will not be able to add the generator to its list of active generators " -"because the hooks are set after the generator attempts to call them. " -"Consequently, the event loop will not be able to terminate the generator if " -"necessary." -msgstr "" - -#: library/asyncio-dev.rst:377 -msgid "Consider the following example::" -msgstr "" - -#: library/asyncio-dev.rst:403 -msgid "This example can be fixed as follows::" -msgstr "" - -#: library/asyncio-dev.rst:422 -msgid "Avoid concurrent iteration and closure of the same generator" -msgstr "" - -#: library/asyncio-dev.rst:424 -msgid "" -"Async generators may be reentered while " -"another :meth:`~agen.__anext__` / :meth:`~agen.athrow` / :meth:`~agen.aclose` " -"call is in progress. This may lead to an inconsistent state of the async " -"generator and can cause errors." -msgstr "" - -#: library/asyncio-dev.rst:429 -msgid "Let's consider the following example::" -msgstr "" - -#: library/asyncio-dev.rst:471 -msgid "" -"Therefore, it is recommended to avoid using asynchronous generators in " -"parallel tasks or across multiple event loops." -msgstr "" - -# long ref -#~ msgid "" -#~ "asyncio checks for :ref:`coroutines that were not awaited ` and logs them; this mitigates the \"forgotten " -#~ "await\" pitfall." -#~ msgstr "" -#~ "*asyncio* surveille les :ref:`coroutines qui ne sont jamais attendues " -#~ "` et les journalise ; cela atténue le " -#~ "problème des « *await* oubliés » ;" diff --git a/library/asyncio-eventloop.po b/library/asyncio-eventloop.po deleted file mode 100644 index cf29c9c9de..0000000000 --- a/library/asyncio-eventloop.po +++ /dev/null @@ -1,3218 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-07-05 23:26+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-eventloop.rst:8 -#, fuzzy -msgid "Event loop" -msgstr "Boucle d'évènements" - -#: library/asyncio-eventloop.rst:10 -msgid "" -"**Source code:** :source:`Lib/asyncio/events.py`, :source:`Lib/asyncio/" -"base_events.py`" -msgstr "" -"**Code source :** :source:`Lib/asyncio/events.py`, :source:`Lib/asyncio/" -"base_events.py`" - -#: library/asyncio-eventloop.rst:16 -msgid "Preface" -msgstr "Préface" - -#: library/asyncio-eventloop.rst:17 -msgid "" -"The event loop is the core of every asyncio application. Event loops run " -"asynchronous tasks and callbacks, perform network IO operations, and run " -"subprocesses." -msgstr "" -"La boucle d'événements est au cœur de chaque application *asyncio*. Les " -"boucles d'événements exécutent des tâches et des rappels asynchrones, " -"effectuent des opérations d'entrée-sorite réseau et exécutent des sous-" -"processus." - -#: library/asyncio-eventloop.rst:21 -msgid "" -"Application developers should typically use the high-level asyncio " -"functions, such as :func:`asyncio.run`, and should rarely need to reference " -"the loop object or call its methods. This section is intended mostly for " -"authors of lower-level code, libraries, and frameworks, who need finer " -"control over the event loop behavior." -msgstr "" -"Les développeurs d'applications doivent généralement utiliser les fonctions " -"*asyncio* de haut niveau, telles que :func:`asyncio.run`, et ne doivent que " -"rarement référencer l'objet boucle ou appeler ses méthodes. Cette section " -"est principalement destinée aux auteurs de code, de bibliothèques et de " -"cadriciels de bas niveau, qui ont besoin d'un contrôle plus précis sur le " -"comportement de la boucle d'événements." - -#: library/asyncio-eventloop.rst:28 -msgid "Obtaining the Event Loop" -msgstr "Obtention d'une boucle d'évènements" - -#: library/asyncio-eventloop.rst:29 -msgid "" -"The following low-level functions can be used to get, set, or create an " -"event loop:" -msgstr "" -"Les fonctions de bas niveau suivantes peuvent être utilisées pour obtenir, " -"définir ou créer une boucle d'événements :" - -#: library/asyncio-eventloop.rst:34 -msgid "Return the running event loop in the current OS thread." -msgstr "" -"Renvoie la boucle d'événements en cours d'exécution dans le fil actuel du " -"système d'exploitation." - -#: library/asyncio-eventloop.rst:36 -msgid "Raise a :exc:`RuntimeError` if there is no running event loop." -msgstr "" -"Lève une :exc:`RuntimeError` s'il n'y a pas de boucle d'événements en cours " -"d'exécution." - -#: library/asyncio-eventloop.rst:38 -msgid "This function can only be called from a coroutine or a callback." -msgstr "" -"Cette fonction ne peut être appelée qu'à partir d'une coroutine ou d'une " -"fonction de rappel." - -#: library/asyncio-eventloop.rst:44 -msgid "Get the current event loop." -msgstr "Arrête l'exécution de la boucle d'évènements." - -#: library/asyncio-eventloop.rst:46 -msgid "" -"When called from a coroutine or a callback (e.g. scheduled with call_soon or " -"similar API), this function will always return the running event loop." -msgstr "" -"Lorsqu'elle est appelée depuis une coroutine ou une fonction de rappel (par " -"exemple planifiée avec *call_soon* ou une API similaire), cette fonction " -"renvoie toujours la boucle d'événement en cours." - -#: library/asyncio-eventloop.rst:50 -msgid "" -"If there is no running event loop set, the function will return the result " -"of the ``get_event_loop_policy().get_event_loop()`` call." -msgstr "" -"S'il n'y a pas de boucle d'événement en cours d'exécution, la fonction " -"renvoie le résultat de l'appel ``get_event_loop_policy().get_event_loop()``." - -#: library/asyncio-eventloop.rst:53 -msgid "" -"Because this function has rather complex behavior (especially when custom " -"event loop policies are in use), using the :func:`get_running_loop` function " -"is preferred to :func:`get_event_loop` in coroutines and callbacks." -msgstr "" -"Étant donné que cette fonction a un comportement plutôt complexe (en " -"particulier lorsque des politiques de boucle d'événements personnalisées " -"sont utilisées), l'utilisation de la fonction :func:`get_running_loop` est " -"préférable à :func:`get_event_loop` dans les coroutines et les fonctions de " -"rappel." - -#: library/asyncio-eventloop.rst:58 -msgid "" -"As noted above, consider using the higher-level :func:`asyncio.run` " -"function, instead of using these lower level functions to manually create " -"and close an event loop." -msgstr "" -"Comme indiqué ci-dessus, envisagez d'utiliser la fonction de haut " -"niveau :func:`asyncio.run`, au lieu d'utiliser ces fonctions de bas niveau " -"pour créer et fermer manuellement une boucle d'événements." - -#: library/asyncio-eventloop.rst:62 -#, fuzzy -msgid "Raises a :exc:`RuntimeError` if there is no current event loop." -msgstr "" -"Lève une :exc:`RuntimeError` s'il n'y a pas de boucle d'événements en cours " -"d'exécution." - -#: library/asyncio-eventloop.rst:67 -msgid "" -"The :mod:`!asyncio` policy system is deprecated and will be removed in " -"Python 3.16; from there on, this function will return the current running " -"event loop if present else it will return the loop set " -"by :func:`set_event_loop`." -msgstr "" - -#: library/asyncio-eventloop.rst:74 -msgid "Set *loop* as the current event loop for the current OS thread." -msgstr "" -"Définit *loop* comme boucle d'événements actuelle pour le fil d'exécution " -"actuel du système d'exploitation." - -#: library/asyncio-eventloop.rst:78 -msgid "Create and return a new event loop object." -msgstr "Crée et renvoie un nouvel objet de boucle d'événements." - -#: library/asyncio-eventloop.rst:80 -msgid "" -"Note that the behaviour of :func:`get_event_loop`, :func:`set_event_loop`, " -"and :func:`new_event_loop` functions can be altered by :ref:`setting a " -"custom event loop policy `." -msgstr "" -"Notez que le comportement des " -"fonctions :func:`get_event_loop`, :func:`set_event_loop` " -"et :func:`new_event_loop` peut être modifié en :ref:`définissant une " -"politique de boucle d'événement personnalisée `." - -#: library/asyncio-eventloop.rst:86 -msgid "Contents" -msgstr "Sommaire" - -#: library/asyncio-eventloop.rst:87 -msgid "This documentation page contains the following sections:" -msgstr "Cette page de documentation contient les sections suivantes :" - -# suit un : -#: library/asyncio-eventloop.rst:89 -msgid "" -"The `Event Loop Methods`_ section is the reference documentation of the " -"event loop APIs;" -msgstr "" -"la section `Event Loop Methods`_ est la documentation de référence des API " -"de boucle d'événements ;" - -# suit un : -#: library/asyncio-eventloop.rst:92 -msgid "" -"The `Callback Handles`_ section documents the :class:`Handle` " -"and :class:`TimerHandle` instances which are returned from scheduling " -"methods such as :meth:`loop.call_soon` and :meth:`loop.call_later`;" -msgstr "" -"la section `Callback Handles`_ documente les instances :class:`Handle` " -"et :class:`TimerHandle` qui sont renvoyées par les méthodes de planification " -"telles que :meth:`loop.call_soon` et :meth:`loop.call_later` ;" - -# suit un : -#: library/asyncio-eventloop.rst:96 -msgid "" -"The `Server Objects`_ section documents types returned from event loop " -"methods like :meth:`loop.create_server`;" -msgstr "" -"la section `Server Objects`_ documente les types renvoyés par les méthodes " -"de boucle d'événements comme :meth:`loop.create_server` ;" - -# suit un : -#: library/asyncio-eventloop.rst:99 -msgid "" -"The `Event Loop Implementations`_ section documents " -"the :class:`SelectorEventLoop` and :class:`ProactorEventLoop` classes;" -msgstr "" -"la section `Event Loop Implementations`_ documente les " -"classes :class:`SelectorEventLoop` et :class:`ProactorEventLoop` ;" - -# suit un : -#: library/asyncio-eventloop.rst:102 -msgid "" -"The `Examples`_ section showcases how to work with some event loop APIs." -msgstr "" -"la section `Exemples`_ montre comment travailler avec certaines API de " -"boucle d'événements." - -#: library/asyncio-eventloop.rst:109 -#, fuzzy -msgid "Event loop methods" -msgstr "Méthodes de la boucle d'évènements" - -#: library/asyncio-eventloop.rst:111 -msgid "Event loops have **low-level** APIs for the following:" -msgstr "" -"Les boucles d'événements ont des API **de bas niveau** pour les éléments " -"suivants :" - -#: library/asyncio-eventloop.rst:119 -msgid "Running and stopping the loop" -msgstr "Démarrer et arrêter une boucle d'évènements" - -#: library/asyncio-eventloop.rst:123 -msgid "Run until the *future* (an instance of :class:`Future`) has completed." -msgstr "" -"Lance la boucle jusqu'à ce que *future* (une instance de :class:`Future`) " -"soit terminée." - -#: library/asyncio-eventloop.rst:126 -msgid "" -"If the argument is a :ref:`coroutine object ` it is implicitly " -"scheduled to run as a :class:`asyncio.Task`." -msgstr "" -"Si l'argument est un objet :ref:`coroutine `, il est " -"implicitement programmé pour s'exécuter en tant que :class:`asyncio.Task`." - -#: library/asyncio-eventloop.rst:129 -msgid "Return the Future's result or raise its exception." -msgstr "Renvoie le résultat du *Future* ou lève son exception." - -#: library/asyncio-eventloop.rst:133 -msgid "Run the event loop until :meth:`stop` is called." -msgstr "" -"Exécute la boucle d'événement jusqu'à ce que :meth:`stop` soit appelée." - -#: library/asyncio-eventloop.rst:135 -#, fuzzy -msgid "" -"If :meth:`stop` is called before :meth:`run_forever` is called, the loop " -"will poll the I/O selector once with a timeout of zero, run all callbacks " -"scheduled in response to I/O events (and those that were already scheduled), " -"and then exit." -msgstr "" -"Si :meth:`stop` est appelée avant que :meth:`run_forever()` ne soit appelée, " -"la boucle interroge le sélecteur d'entrée-sortie une fois avec un délai " -"d'attente de zéro, exécute tous les rappels programmés en réponse aux " -"événements d'entrée-sortie (et ceux qui étaient déjà programmés), puis " -"quitte." - -#: library/asyncio-eventloop.rst:140 -msgid "" -"If :meth:`stop` is called while :meth:`run_forever` is running, the loop " -"will run the current batch of callbacks and then exit. Note that new " -"callbacks scheduled by callbacks will not run in this case; instead, they " -"will run the next time :meth:`run_forever` or :meth:`run_until_complete` is " -"called." -msgstr "" -"Si :meth:`stop` est appelée pendant que :meth:`run_forever` est en cours " -"d'exécution, la boucle exécute le lot actuel de rappels puis se termine. " -"Notez que les nouveaux rappels programmés par fonctions de rappel ne " -"s'exécuteront pas dans ce cas ; à la place, ils s'exécuteront la prochaine " -"fois que :meth:`run_forever` ou :meth:`run_until_complete` sera appelée." - -#: library/asyncio-eventloop.rst:148 -msgid "Stop the event loop." -msgstr "Arrête l'exécution de la boucle d'évènements." - -#: library/asyncio-eventloop.rst:152 -msgid "Return ``True`` if the event loop is currently running." -msgstr "Renvoie ``True`` si la boucle d'évènements est démarrée." - -#: library/asyncio-eventloop.rst:156 -msgid "Return ``True`` if the event loop was closed." -msgstr "Renvoie ``True`` si la boucle d'évènements est arrêtée." - -#: library/asyncio-eventloop.rst:160 -msgid "Close the event loop." -msgstr "Arrête la boucle d'évènements." - -#: library/asyncio-eventloop.rst:162 -msgid "" -"The loop must not be running when this function is called. Any pending " -"callbacks will be discarded." -msgstr "" -"La boucle ne doit pas être en cours d'exécution lorsque cette fonction est " -"appelée. Tous les rappels en attente seront ignorés." - -#: library/asyncio-eventloop.rst:165 -msgid "" -"This method clears all queues and shuts down the executor, but does not wait " -"for the executor to finish." -msgstr "" -"Cette méthode efface toutes les files d'attente et arrête l'exécuteur, mais " -"n'attend pas que l'exécuteur se termine." - -#: library/asyncio-eventloop.rst:168 -msgid "" -"This method is idempotent and irreversible. No other methods should be " -"called after the event loop is closed." -msgstr "" -"Cette méthode est idempotente et irréversible. Aucune autre méthode ne doit " -"être appelée après la fermeture de la boucle d'événements." - -#: library/asyncio-eventloop.rst:174 -#, fuzzy -msgid "" -"Schedule all currently open :term:`asynchronous generator` objects to close " -"with an :meth:`~agen.aclose` call. After calling this method, the event " -"loop will issue a warning if a new asynchronous generator is iterated. This " -"should be used to reliably finalize all scheduled asynchronous generators." -msgstr "" -"Planifie la fermeture de tous les objets :term:`générateurs asynchrones " -"` actuellement ouverts avec un " -"appel :meth:`~agen.aclose()`. Après avoir appelé cette méthode, la boucle " -"d'événements émet un avertissement si un nouveau générateur asynchrone est " -"itéré. Elle doit être utilisée pour finaliser de manière fiable tous les " -"générateurs asynchrones planifiés." - -#: library/asyncio-eventloop.rst:180 -msgid "" -"Note that there is no need to call this function when :func:`asyncio.run` is " -"used." -msgstr "" -"Notez qu'il n'est pas nécessaire d'appeler cette fonction " -"lorsque :func:`asyncio.run` est utilisée." - -#: library/asyncio-eventloop.rst:183 library/asyncio-eventloop.rst:1357 -#: library/asyncio-eventloop.rst:1819 -msgid "Example::" -msgstr "Exemple ::" - -#: library/asyncio-eventloop.rst:196 -msgid "" -"Schedule the closure of the default executor and wait for it to join all of " -"the threads in the :class:`~concurrent.futures.ThreadPoolExecutor`. Once " -"this method has been called, using the default executor " -"with :meth:`loop.run_in_executor` will raise a :exc:`RuntimeError`." -msgstr "" -"Planifie la fermeture de l'exécuteur par défaut et attend que tous les fils " -"se rejoignent dans le :class:`~concurrent.futures.ThreadPoolExecutor`. Une " -"fois cette méthode appelée, l'utilisation de l'exécuteur par défaut " -"avec :meth:`loop.run_in_executor` lève une :exc:`RuntimeError`." - -#: library/asyncio-eventloop.rst:202 -msgid "" -"The *timeout* parameter specifies the amount of time (in :class:`float` " -"seconds) the executor will be given to finish joining. With the default, " -"``None``, the executor is allowed an unlimited amount of time." -msgstr "" - -#: library/asyncio-eventloop.rst:207 -msgid "" -"If the *timeout* is reached, a :exc:`RuntimeWarning` is emitted and the " -"default executor is terminated without waiting for its threads to finish " -"joining." -msgstr "" - -# suit un : -#: library/asyncio-eventloop.rst:213 -msgid "" -"Do not call this method when using :func:`asyncio.run`, as the latter " -"handles default executor shutdown automatically." -msgstr "" -"n'appelez pas cette méthode lorsque vous utilisez :func:`asyncio.run`, car " -"cette dernière gère automatiquement l'arrêt de l'exécuteur par défaut." - -#: library/asyncio-eventloop.rst:218 -#, fuzzy -msgid "Added the *timeout* parameter." -msgstr "ajout du paramètre ``name``." - -#: library/asyncio-eventloop.rst:222 -msgid "Scheduling callbacks" -msgstr "Planification des fonctions de rappel" - -#: library/asyncio-eventloop.rst:226 -msgid "" -"Schedule the *callback* :term:`callback` to be called with *args* arguments " -"at the next iteration of the event loop." -msgstr "" -"Définit la :term:`fonction de rappel ` *callback* à appeler avec " -"les arguments *args* à la prochaine itération de la boucle d'événements." - -#: library/asyncio-eventloop.rst:229 -msgid "" -"Return an instance of :class:`asyncio.Handle`, which can be used later to " -"cancel the callback." -msgstr "" -"Renvoie une instance de :class:`asyncio.Handle`, qui pourra être utilisée " -"ultérieurement pour annuler le rappel." - -#: library/asyncio-eventloop.rst:232 -msgid "" -"Callbacks are called in the order in which they are registered. Each " -"callback will be called exactly once." -msgstr "" -"Les fonctions de rappels sont appelées dans l'ordre dans lequel elles sont " -"enregistrées. Chaque fonction de rappel sera appelée exactement une fois." - -#: library/asyncio-eventloop.rst:235 -msgid "" -"The optional keyword-only *context* argument specifies a " -"custom :class:`contextvars.Context` for the *callback* to run in. Callbacks " -"use the current context when no *context* is provided." -msgstr "" -"L'argument facultatif nommé uniquement *context* spécifie " -"un :class:`contextvars.Context` personnalisé pour le *callback* à exécuter. " -"Les rappels utilisent le contexte actuel lorsqu'aucun *context* n'est fourni." - -#: library/asyncio-eventloop.rst:239 -msgid "Unlike :meth:`call_soon_threadsafe`, this method is not thread-safe." -msgstr "" -"Contrairement à :meth:`call_soon_threadsafe`, cette méthode n'est pas " -"compatible avec les programmes à fils d'exécution multiples." - -#: library/asyncio-eventloop.rst:243 -msgid "" -"A thread-safe variant of :meth:`call_soon`. When scheduling callbacks from " -"another thread, this function *must* be used, since :meth:`call_soon` is not " -"thread-safe." -msgstr "" -"Une variante compatible avec les programmes à fils d'exécution multiples " -"de :meth:`call_soon`. Lors de la planification de rappels à partir d'un " -"autre fil d'exécution, cette fonction *doit* être utilisée, " -"puisque :meth:`call_soon` n'est pas thread-safe." - -#: library/asyncio-eventloop.rst:247 -msgid "" -"This function is safe to be called from a reentrant context or signal " -"handler, however, it is not safe or fruitful to use the returned handle in " -"such contexts." -msgstr "" - -#: library/asyncio-eventloop.rst:250 -msgid "" -"Raises :exc:`RuntimeError` if called on a loop that's been closed. This can " -"happen on a secondary thread when the main application is shutting down." -msgstr "" -"Lève :exc:`RuntimeError` si elle est appelée sur une boucle qui a été " -"fermée. Cela peut se produire sur un fil secondaire lorsque l'application " -"principale se ferme." - -#: library/asyncio-eventloop.rst:254 -msgid "" -"See the :ref:`concurrency and multithreading ` " -"section of the documentation." -msgstr "" -"Voir la section :ref:`exécution concurrente et multi-fils d'exécution " -"` de la documentation." - -# suit un : -#: library/asyncio-eventloop.rst:257 library/asyncio-eventloop.rst:314 -#: library/asyncio-eventloop.rst:340 -msgid "" -"The *context* keyword-only parameter was added. See :pep:`567` for more " -"details." -msgstr "" -"le paramètre nommé uniquement *context* a été ajouté. Voir :pep:`567` pour " -"plus de détails." - -# suit un : -#: library/asyncio-eventloop.rst:265 -msgid "" -"Most :mod:`asyncio` scheduling functions don't allow passing keyword " -"arguments. To do that, use :func:`functools.partial`::" -msgstr "" -"la plupart des fonctions d'ordonnancement :mod:`asyncio` n'autorisent pas le " -"passage d'arguments nommés. Pour le faire, " -"utilisez :func:`functools.partial` ::" - -#: library/asyncio-eventloop.rst:272 -msgid "" -"Using partial objects is usually more convenient than using lambdas, as " -"asyncio can render partial objects better in debug and error messages." -msgstr "" -"L'utilisation d'objets partiels est généralement plus pratique que " -"l'utilisation de lambdas, car *asyncio* peut mieux rendre les objets " -"partiels dans les messages de débogage et d'erreur." - -#: library/asyncio-eventloop.rst:280 -msgid "Scheduling delayed callbacks" -msgstr "Planification des rappels différés" - -#: library/asyncio-eventloop.rst:282 -msgid "" -"Event loop provides mechanisms to schedule callback functions to be called " -"at some point in the future. Event loop uses monotonic clocks to track time." -msgstr "" -"La boucle d'événements fournit des mécanismes pour programmer les fonctions " -"de rappel à appeler à un moment donné dans le futur. La boucle d'événements " -"utilise des horloges monotones pour suivre le temps." - -#: library/asyncio-eventloop.rst:289 -msgid "" -"Schedule *callback* to be called after the given *delay* number of seconds " -"(can be either an int or a float)." -msgstr "" -"Planifie le rappel *callback* à appeler après *delay* secondes (peut être un " -"entier ou un flottant)." - -#: library/asyncio-eventloop.rst:292 library/asyncio-eventloop.rst:331 -msgid "" -"An instance of :class:`asyncio.TimerHandle` is returned which can be used to " -"cancel the callback." -msgstr "" -"Une instance de :class:`asyncio.TimerHandle` est renvoyée et peut être " -"utilisée pour annuler le rappel." - -#: library/asyncio-eventloop.rst:295 -msgid "" -"*callback* will be called exactly once. If two callbacks are scheduled for " -"exactly the same time, the order in which they are called is undefined." -msgstr "" -"*callback* sera appelé exactement une fois. Si deux rappels sont programmés " -"exactement à la même heure, l'ordre dans lequel ils sont appelés n'est pas " -"défini." - -#: library/asyncio-eventloop.rst:299 -#, fuzzy -msgid "" -"The optional positional *args* will be passed to the callback when it is " -"called. Use :func:`functools.partial` :ref:`to pass keyword arguments " -"` to *callback*." -msgstr "" -"Utilisez :func:`functools.partial` pour :ref:`passer des arguments nommés " -"` à *callback*." - -#: library/asyncio-eventloop.rst:304 -msgid "" -"An optional keyword-only *context* argument allows specifying a " -"custom :class:`contextvars.Context` for the *callback* to run in. The " -"current context is used when no *context* is provided." -msgstr "" -"Un argument facultatif *context* nommé uniquement permet de spécifier " -"un :class:`contextvars.Context` personnalisé pour le *callback* à exécuter. " -"Le contexte actuel est utilisé lorsqu'aucun *context* n'est fourni." - -#: library/asyncio-eventloop.rst:310 -msgid "" -"For performance, callbacks scheduled with :meth:`loop.call_later` may run up " -"to one clock-resolution early (see " -"``time.get_clock_info('monotonic').resolution``)." -msgstr "" - -# suit un : -#: library/asyncio-eventloop.rst:318 -msgid "" -"In Python 3.7 and earlier with the default event loop implementation, the " -"*delay* could not exceed one day. This has been fixed in Python 3.8." -msgstr "" -"dans Python 3.7 et versions antérieures avec l'implémentation de la boucle " -"d'événements par défaut, le *delay* ne pouvait pas dépasser un jour. Cela a " -"été corrigé dans Python 3.8." - -#: library/asyncio-eventloop.rst:325 -msgid "" -"Schedule *callback* to be called at the given absolute timestamp *when* (an " -"int or a float), using the same time reference as :meth:`loop.time`." -msgstr "" -"Planifie l'appel de *callback* à l'horodatage absolu donné *when* (un *int* " -"ou un *float*), en utilisant la même référence de temps " -"que :meth:`loop.time`." - -#: library/asyncio-eventloop.rst:329 -msgid "This method's behavior is the same as :meth:`call_later`." -msgstr "Le comportement de cette méthode est le même que :meth:`call_later`." - -#: library/asyncio-eventloop.rst:336 -msgid "" -"For performance, callbacks scheduled with :meth:`loop.call_at` may run up to " -"one clock-resolution early (see " -"``time.get_clock_info('monotonic').resolution``)." -msgstr "" - -# suit un : -#: library/asyncio-eventloop.rst:344 -msgid "" -"In Python 3.7 and earlier with the default event loop implementation, the " -"difference between *when* and the current time could not exceed one day. " -"This has been fixed in Python 3.8." -msgstr "" -"dans Python 3.7 et versions antérieures avec l'implémentation de la boucle " -"d'événements par défaut, la différence entre *when* et l'heure actuelle ne " -"pouvait pas dépasser un jour. Cela a été corrigé dans Python 3.8." - -#: library/asyncio-eventloop.rst:351 -msgid "" -"Return the current time, as a :class:`float` value, according to the event " -"loop's internal monotonic clock." -msgstr "" -"Renvoie l'heure actuelle, sous la forme d'une valeur :class:`float`, selon " -"l'horloge monotone interne de la boucle d'événements." - -# suit un : -#: library/asyncio-eventloop.rst:355 -msgid "" -"In Python 3.7 and earlier timeouts (relative *delay* or absolute *when*) " -"should not exceed one day. This has been fixed in Python 3.8." -msgstr "" -"dans Python 3.7 et les versions antérieures, les délais d'expiration " -"(relatif *delay* ou absolu *when*) ne doivent pas dépasser un jour. Cela a " -"été corrigé dans Python 3.8." - -# suit un : -#: library/asyncio-eventloop.rst:361 -msgid "The :func:`asyncio.sleep` function." -msgstr "la fonction :func:`asyncio.sleep`." - -#: library/asyncio-eventloop.rst:365 -#, fuzzy -msgid "Creating futures and tasks" -msgstr "Création de *Futures* et des tâches" - -#: library/asyncio-eventloop.rst:369 -msgid "Create an :class:`asyncio.Future` object attached to the event loop." -msgstr "" -"Crée un objet :class:`asyncio.Future` attaché à la boucle d'événements." - -#: library/asyncio-eventloop.rst:371 -msgid "" -"This is the preferred way to create Futures in asyncio. This lets third-" -"party event loops provide alternative implementations of the Future object " -"(with better performance or instrumentation)." -msgstr "" -"C'est la méthode préférée pour créer des *Futures* avec *asyncio*. Cela " -"permet aux boucles d'événements tierces de fournir des implémentations " -"alternatives de l'objet *Future* (avec de meilleures performances ou " -"instrumentation)." - -#: library/asyncio-eventloop.rst:379 -msgid "" -"Schedule the execution of :ref:`coroutine ` *coro*. Return " -"a :class:`Task` object." -msgstr "" -"Planifie l'exécution de :ref:`coroutine ` *coro*. Renvoie un " -"objet :class:`Task`." - -#: library/asyncio-eventloop.rst:382 -msgid "" -"Third-party event loops can use their own subclass of :class:`Task` for " -"interoperability. In this case, the result type is a subclass " -"of :class:`Task`." -msgstr "" -"Les boucles d'événements tierces peuvent utiliser leur propre sous-classe " -"de :class:`Task` pour l'interopérabilité. Dans ce cas, le type de résultat " -"est une sous-classe de :class:`Task`." - -#: library/asyncio-eventloop.rst:386 -msgid "" -"The full function signature is largely the same as that of the :class:`Task` " -"constructor (or factory) - all of the keyword arguments to this function are " -"passed through to that interface." -msgstr "" - -#: library/asyncio-eventloop.rst:390 -msgid "" -"If the *name* argument is provided and not ``None``, it is set as the name " -"of the task using :meth:`Task.set_name`." -msgstr "" -"Si l'argument *name* est fourni et non ``None``, il est défini comme le nom " -"de la tâche en utilisant :meth:`Task.set_name`." - -#: library/asyncio-eventloop.rst:393 -msgid "" -"An optional keyword-only *context* argument allows specifying a " -"custom :class:`contextvars.Context` for the *coro* to run in. The current " -"context copy is created when no *context* is provided." -msgstr "" -"Argument facultatif *context* nommé uniquement qui permet de spécifier " -"un :class:`contextvars.Context` personnalisé pour la *coro* à exécuter. La " -"copie de contexte actuel est créée lorsqu'aucun *context* n'est fourni." - -#: library/asyncio-eventloop.rst:397 -msgid "" -"An optional keyword-only *eager_start* argument allows specifying if the " -"task should execute eagerly during the call to create_task, or be scheduled " -"later. If *eager_start* is not passed the mode set " -"by :meth:`loop.set_task_factory` will be used." -msgstr "" - -#: library/asyncio-eventloop.rst:402 -msgid "Added the *name* parameter." -msgstr "ajout du paramètre ``name``." - -#: library/asyncio-eventloop.rst:405 -msgid "Added the *context* parameter." -msgstr "ajout du paramètre ``context``." - -#: library/asyncio-eventloop.rst:408 -msgid "" -"Added ``kwargs`` which passes on arbitrary extra parameters, including " -"``name`` and ``context``." -msgstr "" - -#: library/asyncio-eventloop.rst:411 -msgid "" -"Rolled back the change that passes on *name* and *context* (if it is None), " -"while still passing on other arbitrary keyword arguments (to avoid breaking " -"backwards compatibility with 3.13.3)." -msgstr "" - -#: library/asyncio-eventloop.rst:415 -msgid "" -"All *kwargs* are now passed on. The *eager_start* parameter works with eager " -"task factories." -msgstr "" - -#: library/asyncio-eventloop.rst:420 -msgid "Set a task factory that will be used by :meth:`loop.create_task`." -msgstr "" -"Définit une fabrique de tâches qui sera utilisée " -"par :meth:`loop.create_task`." - -#: library/asyncio-eventloop.rst:423 -#, fuzzy -msgid "" -"If *factory* is ``None`` the default task factory will be set. Otherwise, " -"*factory* must be a *callable* with the signature matching ``(loop, coro, " -"**kwargs)``, where *loop* is a reference to the active event loop, and " -"*coro* is a coroutine object. The callable must pass on all *kwargs*, and " -"return a :class:`asyncio.Task`-compatible object." -msgstr "" -"Si *factory* est ``None``, la fabrique de tâches par défaut sera définie. " -"Sinon, *factory* doit être un *appelable* avec la signature correspondant à " -"``(loop, coro, context=None)``, où *loop* est une référence à la boucle " -"d'événements active et *coro* est un objet coroutine . L'appelable doit " -"renvoyer un objet compatible avec :class:`asyncio.Future`." - -#: library/asyncio-eventloop.rst:429 -msgid "Required that all *kwargs* are passed on to :class:`asyncio.Task`." -msgstr "" - -#: library/asyncio-eventloop.rst:432 -msgid "" -"*name* is no longer passed to task factories. *context* is no longer passed " -"to task factories if it is ``None``." -msgstr "" - -#: library/asyncio-eventloop.rst:436 -msgid "" -"*name* and *context* are now unconditionally passed on to task factories " -"again." -msgstr "" - -#: library/asyncio-eventloop.rst:441 -msgid "Return a task factory or ``None`` if the default one is in use." -msgstr "" -"Renvoie une fabrique de tâches ou ``None`` si celle par défaut est utilisée." - -#: library/asyncio-eventloop.rst:445 -msgid "Opening network connections" -msgstr "Création de connexions" - -#: library/asyncio-eventloop.rst:457 -msgid "" -"Open a streaming transport connection to a given address specified by *host* " -"and *port*." -msgstr "" -"Ouvre un flux de transport connecté à l'adresse spécifiée par *host* et " -"*port*." - -#: library/asyncio-eventloop.rst:460 -#, fuzzy -msgid "" -"The socket family can be either :py:const:`~socket.AF_INET` " -"or :py:const:`~socket.AF_INET6` depending on *host* (or the *family* " -"argument, if provided)." -msgstr "" -"La famille de connecteur peut être :py:data:`~socket.AF_INET` " -"ou :py:data:`~socket.AF_INET6` en fonction de *host* (ou l'argument " -"*family*, s'il est fourni)." - -#: library/asyncio-eventloop.rst:464 -#, fuzzy -msgid "The socket type will be :py:const:`~socket.SOCK_STREAM`." -msgstr "Le type de connecteur sera :py:data:`~socket.SOCK_STREAM`." - -#: library/asyncio-eventloop.rst:466 library/asyncio-eventloop.rst:1265 -#: library/asyncio-eventloop.rst:1282 -msgid "" -"*protocol_factory* must be a callable returning an :ref:`asyncio protocol " -"` implementation." -msgstr "" -"*protocol_factory* doit être un appelable renvoyant un protocole gérant " -"le :ref:`protocole asyncio `." - -#: library/asyncio-eventloop.rst:469 -msgid "" -"This method will try to establish the connection in the background. When " -"successful, it returns a ``(transport, protocol)`` pair." -msgstr "" -"Cette méthode tente d'établir la connexion en arrière-plan. En cas de " -"succès, elle renvoie une paire ``(transport, protocol)``." - -#: library/asyncio-eventloop.rst:472 -msgid "The chronological synopsis of the underlying operation is as follows:" -msgstr "Le synopsis chronologique de l'opération sous-jacente est le suivant :" - -#: library/asyncio-eventloop.rst:474 -msgid "" -"The connection is established and a :ref:`transport ` is " -"created for it." -msgstr "" -"La connexion est établie et un :ref:`transport asyncio ` " -"est créé pour cela." - -#: library/asyncio-eventloop.rst:477 -msgid "" -"*protocol_factory* is called without arguments and is expected to return " -"a :ref:`protocol ` instance." -msgstr "" -"*protocol_factory* est appelée sans arguments et doit renvoyer une instance " -"de :ref:`protocol asyncio `." - -#: library/asyncio-eventloop.rst:480 -msgid "" -"The protocol instance is coupled with the transport by calling " -"its :meth:`~BaseProtocol.connection_made` method." -msgstr "" -"L'instance de protocole est couplée au transport en appelant sa " -"méthode :meth:`~BaseProtocol.connection_made`." - -#: library/asyncio-eventloop.rst:483 -msgid "A ``(transport, protocol)`` tuple is returned on success." -msgstr "Un *n*-uplet ``(transport, protocol)`` est renvoyé en cas de succès." - -#: library/asyncio-eventloop.rst:485 -msgid "" -"The created transport is an implementation-dependent bidirectional stream." -msgstr "" -"Le transport créé est un flux bidirectionnel dépendant de l'implémentation." - -#: library/asyncio-eventloop.rst:488 library/asyncio-eventloop.rst:621 -msgid "Other arguments:" -msgstr "Autres arguments :" - -#: library/asyncio-eventloop.rst:490 -msgid "" -"*ssl*: if given and not false, a SSL/TLS transport is created (by default a " -"plain TCP transport is created). If *ssl* is a :class:`ssl.SSLContext` " -"object, this context is used to create the transport; if *ssl* " -"is :const:`True`, a default context returned " -"from :func:`ssl.create_default_context` is used." -msgstr "" -"*ssl* : s'il est donné et non faux, un transport SSL/TLS est créé (par " -"défaut un transport TCP simple est créé). Si *ssl* est un " -"objet :class:`ssl.SSLContext`, ce contexte est utilisé pour créer le " -"transport ; si *ssl* est :const:`True`, un contexte par défaut renvoyé " -"par :func:`ssl.create_default_context` est utilisé." - -#: library/asyncio-eventloop.rst:496 -msgid ":ref:`SSL/TLS security considerations `" -msgstr ":ref:`Considérations sur la sécurité SSL/TLS `" - -#: library/asyncio-eventloop.rst:498 -msgid "" -"*server_hostname* sets or overrides the hostname that the target server's " -"certificate will be matched against. Should only be passed if *ssl* is not " -"``None``. By default the value of the *host* argument is used. If *host* " -"is empty, there is no default and you must pass a value for " -"*server_hostname*. If *server_hostname* is an empty string, hostname " -"matching is disabled (which is a serious security risk, allowing for " -"potential man-in-the-middle attacks)." -msgstr "" -"*server_hostname* définit ou remplace le nom d'hôte auquel le certificat du " -"serveur cible sera comparé. Ne doit être passé que si *ssl* n'est pas " -"``None``. Par défaut, la valeur de l'argument *host* est utilisée. Si *host* " -"est vide, il n'y a pas de valeur par défaut et vous devez transmettre une " -"valeur pour *server_hostname*. Si *server_hostname* est une chaîne vide, la " -"correspondance du nom d'hôte est désactivée (ce qui constitue un risque de " -"sécurité sérieux, permettant des attaques potentielles de type « homme du " -"milieu »)." - -#: library/asyncio-eventloop.rst:506 -msgid "" -"*family*, *proto*, *flags* are the optional address family, protocol and " -"flags to be passed through to getaddrinfo() for *host* resolution. If given, " -"these should all be integers from the corresponding :mod:`socket` module " -"constants." -msgstr "" -"*family*, *proto*, *flags* sont facultatifs et sont la famille d'adresse, le " -"protocole et les drapeaux à transmettre à *getaddrinfo()* pour la résolution " -"de *host*. S'ils sont fournis, ils doivent tous être des entiers provenant " -"des constantes du module :mod:`socket`." - -#: library/asyncio-eventloop.rst:511 -msgid "" -"*happy_eyeballs_delay*, if given, enables Happy Eyeballs for this " -"connection. It should be a floating-point number representing the amount of " -"time in seconds to wait for a connection attempt to complete, before " -"starting the next attempt in parallel. This is the \"Connection Attempt " -"Delay\" as defined in :rfc:`8305`. A sensible default value recommended by " -"the RFC is ``0.25`` (250 milliseconds)." -msgstr "" -"*happy_eyeballs_delay*, s'il est fourni, active Happy Eyeballs pour cette " -"connexion. Il doit s'agir d'un nombre à virgule flottante représentant le " -"temps d'attente en secondes pour qu'une tentative de connexion se termine, " -"avant de démarrer la prochaine tentative en parallèle. Il s'agit du « délai " -"de tentative de connexion » tel que défini dans la :rfc:`8305`. Une valeur " -"par défaut raisonnable recommandée par la RFC est ``0.25`` (250 " -"millisecondes)." - -#: library/asyncio-eventloop.rst:519 -msgid "" -"*interleave* controls address reordering when a host name resolves to " -"multiple IP addresses. If ``0`` or unspecified, no reordering is done, and " -"addresses are tried in the order returned by :meth:`getaddrinfo`. If a " -"positive integer is specified, the addresses are interleaved by address " -"family, and the given integer is interpreted as \"First Address Family " -"Count\" as defined in :rfc:`8305`. The default is ``0`` if " -"*happy_eyeballs_delay* is not specified, and ``1`` if it is." -msgstr "" -"*interleave* contrôle la réorganisation des adresses lorsqu'un nom d'hôte se " -"résout en plusieurs adresses IP. S'il vaut ``0`` ou n'est pas spécifié, " -"aucune réorganisation n'est effectuée et les adresses sont essayées dans " -"l'ordre renvoyé par :meth:`getaddrinfo`. Si un entier positif est spécifié, " -"les adresses sont entrelacées par famille d'adresses et l'entier donné est " -"interprété comme \"First Address Family Count\" tel que défini dans " -"la :rfc:`8305`. La valeur par défaut est ``0`` si *happy_eyeballs_delay* " -"n'est pas spécifié, et ``1`` si c'est le cas." - -#: library/asyncio-eventloop.rst:528 -msgid "" -"*sock*, if given, should be an existing, already " -"connected :class:`socket.socket` object to be used by the transport. If " -"*sock* is given, none of *host*, *port*, *family*, *proto*, *flags*, " -"*happy_eyeballs_delay*, *interleave* and *local_addr* should be specified." -msgstr "" -"*sock*, s'il est fourni, doit être un objet :class:`socket.socket` existant " -"et déjà connecté à utiliser par le transport. Si *sock* est donné, aucun des " -"*host*, *port*, *family*, *proto*, *flags*, *happy_eyeballs_delay*, " -"*interleave* et *local_addr* ne doit être spécifié." - -# suit un : -#: library/asyncio-eventloop.rst:536 library/asyncio-eventloop.rst:658 -#: library/asyncio-eventloop.rst:906 -msgid "" -"The *sock* argument transfers ownership of the socket to the transport " -"created. To close the socket, call the " -"transport's :meth:`~asyncio.BaseTransport.close` method." -msgstr "" -"l'argument *sock* transfère la propriété du connecteur au transport créé. " -"Pour fermer le connecteur, appelez la " -"méthode :meth:`~asyncio.BaseTransport.close` du transport." - -#: library/asyncio-eventloop.rst:540 -msgid "" -"*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " -"the socket locally. The *local_host* and *local_port* are looked up using " -"``getaddrinfo()``, similarly to *host* and *port*." -msgstr "" -"*local_addr*, s'il est fourni, est un *n*-uplet ``(local_host, local_port)`` " -"utilisé pour lier le connecteur localement. *local_host* et *local_port* " -"sont recherchés en utilisant ``getaddrinfo()``, de la même manière que " -"*host* et *port*." - -#: library/asyncio-eventloop.rst:544 library/asyncio-eventloop.rst:1002 -msgid "" -"*ssl_handshake_timeout* is (for a TLS connection) the time in seconds to " -"wait for the TLS handshake to complete before aborting the connection. " -"``60.0`` seconds if ``None`` (default)." -msgstr "" -"*ssl_handshake_timeout* est (pour une connexion TLS) le temps en secondes à " -"attendre que la poignée de main TLS se termine avant d'abandonner la " -"connexion. ``60.0`` secondes si ``None`` (par défaut)." - -#: library/asyncio-eventloop.rst:548 library/asyncio-eventloop.rst:813 -#: library/asyncio-eventloop.rst:917 library/asyncio-eventloop.rst:1006 -msgid "" -"*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown " -"to complete before aborting the connection. ``30.0`` seconds if ``None`` " -"(default)." -msgstr "" -"*ssl_shutdown_timeout* est le temps en secondes à attendre que l'arrêt SSL " -"se termine avant d'abandonner la connexion. ``30.0`` secondes si ``None`` " -"(par défaut)." - -#: library/asyncio-eventloop.rst:552 -msgid "" -"*all_errors* determines what exceptions are raised when a connection cannot " -"be created. By default, only a single ``Exception`` is raised: the first " -"exception if there is only one or all errors have same message, or a single " -"``OSError`` with the error messages combined. When ``all_errors`` is " -"``True``, an ``ExceptionGroup`` will be raised containing all exceptions " -"(even if there is only one)." -msgstr "" - -# suit un : -#: library/asyncio-eventloop.rst:562 library/asyncio-eventloop.rst:825 -msgid "Added support for SSL/TLS in :class:`ProactorEventLoop`." -msgstr "" -"ajout de la prise en charge de SSL/TLS dans :class:`ProactorEventLoop`." - -# suit un : -#: library/asyncio-eventloop.rst:566 -#, fuzzy -msgid "" -"The socket option :ref:`socket.TCP_NODELAY ` is set " -"by default for all TCP connections." -msgstr "" -"l'option socket :py:data:`~socket.TCP_NODELAY` est définie par défaut pour " -"toutes les connexions TCP." - -#: library/asyncio-eventloop.rst:571 library/asyncio-eventloop.rst:927 -msgid "Added the *ssl_handshake_timeout* parameter." -msgstr "ajout du paramètre *ssl handshake timeout*" - -# suit un : -#: library/asyncio-eventloop.rst:575 -msgid "Added the *happy_eyeballs_delay* and *interleave* parameters." -msgstr "ajout des paramètres *happy_eyeballs_delay* et *interleave*." - -#: library/asyncio-eventloop.rst:577 -msgid "" -"Happy Eyeballs Algorithm: Success with Dual-Stack Hosts. When a server's " -"IPv4 path and protocol are working, but the server's IPv6 path and protocol " -"are not working, a dual-stack client application experiences significant " -"connection delay compared to an IPv4-only client. This is undesirable " -"because it causes the dual-stack client to have a worse user experience. " -"This document specifies requirements for algorithms that reduce this user-" -"visible delay and provides an algorithm." -msgstr "" -"Algorithme Happy Eyeballs : « succès avec les hôtes à double pile ». Lorsque " -"le chemin et le protocole IPv4 d'un serveur fonctionnent, mais que le chemin " -"et le protocole IPv6 du serveur ne fonctionnent pas, une application cliente " -"à double pile subit un retard de connexion important par rapport à un client " -"IPv4 uniquement. Ceci n'est pas souhaitable car cela entraîne une moins " -"bonne expérience utilisateur pour le client à double pile. Ce document " -"spécifie les exigences pour les algorithmes qui réduisent ce délai visible " -"par l'utilisateur et fournit un algorithme correspondant." - -#: library/asyncio-eventloop.rst:586 -#, fuzzy -msgid "For more information: https://datatracker.ietf.org/doc/html/rfc6555" -msgstr "" -"Pour plus d'informations, consultez : https://tools.ietf.org/html/rfc6555" - -#: library/asyncio-eventloop.rst:590 library/asyncio-eventloop.rst:722 -#: library/asyncio-eventloop.rst:839 library/asyncio-eventloop.rst:879 -#: library/asyncio-eventloop.rst:931 library/asyncio-eventloop.rst:1014 -msgid "Added the *ssl_shutdown_timeout* parameter." -msgstr "ajout du paramètre *ssl shutdown timeout*" - -#: library/asyncio-eventloop.rst:592 -msgid "*all_errors* was added." -msgstr "" - -# suit un : -#: library/asyncio-eventloop.rst:597 -msgid "" -"The :func:`open_connection` function is a high-level alternative API. It " -"returns a pair of (:class:`StreamReader`, :class:`StreamWriter`) that can be " -"used directly in async/await code." -msgstr "" -"la fonction :func:`open_connection` est une API alternative de haut niveau. " -"Elle renvoie une paire de (:class:`StreamReader`, :class:`StreamWriter`) qui " -"peut être utilisée directement dans le code *async/wait*." - -#: library/asyncio-eventloop.rst:608 -msgid "Create a datagram connection." -msgstr "Création d'une connexion par datagramme" - -#: library/asyncio-eventloop.rst:610 -#, fuzzy -msgid "" -"The socket family can be " -"either :py:const:`~socket.AF_INET`, :py:const:`~socket.AF_INET6`, " -"or :py:const:`~socket.AF_UNIX`, depending on *host* (or the *family* " -"argument, if provided)." -msgstr "" -"La famille de connecteur peut " -"être :py:data:`~socket.AF_INET`, :py:data:`~socket.AF_INET6` " -"ou :py:data:`~socket.AF_UNIX`, selon *host* (ou l'argument *family*, s'il " -"est fourni)." - -#: library/asyncio-eventloop.rst:614 -#, fuzzy -msgid "The socket type will be :py:const:`~socket.SOCK_DGRAM`." -msgstr "Le type de connecteur sera :py:data:`~socket.SOCK_DGRAM`." - -#: library/asyncio-eventloop.rst:616 library/asyncio-eventloop.rst:749 -#: library/asyncio-eventloop.rst:898 -msgid "" -"*protocol_factory* must be a callable returning a :ref:`protocol ` implementation." -msgstr "" -"*protocol_factory* doit être un appelable gérant le :ref:`protocole asyncio " -"`." - -#: library/asyncio-eventloop.rst:619 library/asyncio-eventloop.rst:704 -msgid "A tuple of ``(transport, protocol)`` is returned on success." -msgstr "Un *n*-uplet ``(transport, protocol)`` est renvoyé en cas de succès." - -#: library/asyncio-eventloop.rst:623 -msgid "" -"*local_addr*, if given, is a ``(local_host, local_port)`` tuple used to bind " -"the socket locally. The *local_host* and *local_port* are looked up " -"using :meth:`getaddrinfo`." -msgstr "" -"*local_addr*, s'il est fourni, est un *n*-uplet ``(local_host, local_port)`` " -"utilisé pour lier le connecteur localement. Le *local_host* et le " -"*local_port* sont recherchés en utilisant :meth:`getaddrinfo`." - -#: library/asyncio-eventloop.rst:629 -msgid "" -"On Windows, when using the proactor event loop with ``local_addr=None``, " -"an :exc:`OSError` with :attr:`!errno.WSAEINVAL` will be raised when running " -"it." -msgstr "" - -#: library/asyncio-eventloop.rst:633 -msgid "" -"*remote_addr*, if given, is a ``(remote_host, remote_port)`` tuple used to " -"connect the socket to a remote address. The *remote_host* and *remote_port* " -"are looked up using :meth:`getaddrinfo`." -msgstr "" -"*remote_addr*, s'il est fourni, est un *n*-uplet ``(remote_host, " -"remote_port)`` utilisé pour se connecter à une adresse distante. Le " -"*remote_host* et le *remote_port* sont recherchés en " -"utilisant :meth:`getaddrinfo`." - -#: library/asyncio-eventloop.rst:637 -msgid "" -"*family*, *proto*, *flags* are the optional address family, protocol and " -"flags to be passed through to :meth:`getaddrinfo` for *host* resolution. If " -"given, these should all be integers from the corresponding :mod:`socket` " -"module constants." -msgstr "" -"*family*, *proto*, *flags* sont facultatifs et représentent la famille " -"d'adresse, le protocole et les drapeaux à transmettre à :meth:`getaddrinfo` " -"pour la résolution *host*. S'ils sont fournis, ils doivent tous être des " -"entiers provenant des constantes du module :mod:`socket`." - -#: library/asyncio-eventloop.rst:642 -#, fuzzy -msgid "" -"*reuse_port* tells the kernel to allow this endpoint to be bound to the same " -"port as other existing endpoints are bound to, so long as they all set this " -"flag when being created. This option is not supported on Windows and some " -"Unixes. If the :ref:`socket.SO_REUSEPORT ` constant " -"is not defined then this capability is unsupported." -msgstr "" -"*reuse_port* indique au noyau d'autoriser ce point de terminaison à être lié " -"au même port que les autres points de terminaison existants, tant qu'ils " -"définissent tous cet indicateur lors de leur création. Cette option n'est " -"pas prise en charge sous Windows et certains Unix. Si la " -"constante :py:data:`~socket.SO_REUSEPORT` n'est pas définie, cette " -"fonctionnalité n'est pas prise en charge." - -#: library/asyncio-eventloop.rst:648 -msgid "" -"*allow_broadcast* tells the kernel to allow this endpoint to send messages " -"to the broadcast address." -msgstr "" -"*allow_broadcast* indique au noyau d'autoriser ce point de terminaison à " -"envoyer des messages à l'adresse de *broadcast*." - -#: library/asyncio-eventloop.rst:651 -msgid "" -"*sock* can optionally be specified in order to use a preexisting, already " -"connected, :class:`socket.socket` object to be used by the transport. If " -"specified, *local_addr* and *remote_addr* should be omitted (must " -"be :const:`None`)." -msgstr "" -"*sock* peut éventuellement être spécifié afin d'utiliser un " -"objet :class:`socket.socket` préexistant, déjà connecté, à utiliser par le " -"transport. Si spécifié, *local_addr* et *remote_addr* doivent être omis " -"(doit être :const:`None`)." - -#: library/asyncio-eventloop.rst:662 -msgid "" -"See :ref:`UDP echo client protocol ` " -"and :ref:`UDP echo server protocol ` " -"examples." -msgstr "" -"Voir les exemples :ref:`asyncio-udp-echo-client-protocol` et :ref:`asyncio-" -"udp-echo-server-protocol`." - -# suit un : -#: library/asyncio-eventloop.rst:665 -msgid "" -"The *family*, *proto*, *flags*, *reuse_address*, *reuse_port*, " -"*allow_broadcast*, and *sock* parameters were added." -msgstr "" -"les paramètres *family*, *proto*, *flags*, *reuse_address*, *reuse_port*, " -"*allow_broadcast* et *sock* ont été ajoutés." - -# suit un : -#: library/asyncio-eventloop.rst:669 -msgid "Added support for Windows." -msgstr "prise en charge sur Windows." - -# suit un : -#: library/asyncio-eventloop.rst:672 -#, fuzzy -msgid "" -"The *reuse_address* parameter is no longer supported, as " -"using :ref:`socket.SO_REUSEADDR ` poses a significant " -"security concern for UDP. Explicitly passing ``reuse_address=True`` will " -"raise an exception." -msgstr "" -"le paramètre *reuse_address* n'est plus pris en charge, car l'utilisation " -"de :py:data:`~sockets.SO_REUSEADDR` pose un problème de sécurité important " -"pour UDP. Passer explicitement ``reuse_address=True`` lève une exception." - -#: library/asyncio-eventloop.rst:678 -msgid "" -"When multiple processes with differing UIDs assign sockets to an identical " -"UDP socket address with ``SO_REUSEADDR``, incoming packets can become " -"randomly distributed among the sockets." -msgstr "" -"Lorsque plusieurs processus avec des UID différents attribuent des " -"connecteurs à une adresse de connecteur UDP identique avec ``SO_REUSEADDR``, " -"les paquets entrants peuvent être distribués de manière aléatoire entre les " -"connecteurs." - -#: library/asyncio-eventloop.rst:682 -#, fuzzy -msgid "" -"For supported platforms, *reuse_port* can be used as a replacement for " -"similar functionality. With *reuse_port*, :ref:`socket.SO_REUSEPORT ` is used instead, which specifically prevents processes with " -"differing UIDs from assigning sockets to the same socket address." -msgstr "" -"Pour les plates-formes prises en charge, *reuse_port* peut être utilisé en " -"remplacement d'une fonctionnalité similaire. Avec " -"*reuse_port*, :py:data:`~sockets.SO_REUSEPORT` est utilisé à la place, ce " -"qui empêche spécifiquement les processus avec des UID différents d'attribuer " -"des connecteurs à la même adresse de connecteur." - -# suit un : -#: library/asyncio-eventloop.rst:689 -#, fuzzy -msgid "" -"The *reuse_address* parameter, disabled since Python 3.8.1, 3.7.6 and " -"3.6.10, has been entirely removed." -msgstr "" -"le paramètre *reuse_address*, désactivé depuis Python 3.9.0, 3.8.1, 3.7.6 et " -"3.6.10, a été entièrement supprimé." - -#: library/asyncio-eventloop.rst:699 -msgid "Create a Unix connection." -msgstr "Crée une connexion Unix" - -#: library/asyncio-eventloop.rst:701 -#, fuzzy -msgid "" -"The socket family will be :py:const:`~socket.AF_UNIX`; socket type will " -"be :py:const:`~socket.SOCK_STREAM`." -msgstr "" -"La famille de connecteur est :py:data:`~socket.AF_UNIX` ; le type de " -"connecteur est :py:data:`~socket.SOCK_STREAM`." - -#: library/asyncio-eventloop.rst:706 -msgid "" -"*path* is the name of a Unix domain socket and is required, unless a *sock* " -"parameter is specified. Abstract Unix " -"sockets, :class:`str`, :class:`bytes`, and :class:`~pathlib.Path` paths are " -"supported." -msgstr "" -"*path* est le nom d'un connecteur de domaine Unix et est obligatoire, sauf " -"si un paramètre *sock* est spécifié. Les connecteurs Unix abstraits, les " -"chemins :class:`str`, :class:`bytes` et :class:`~pathlib.Path` sont pris en " -"charge." - -#: library/asyncio-eventloop.rst:711 -msgid "" -"See the documentation of the :meth:`loop.create_connection` method for " -"information about arguments to this method." -msgstr "" -"Voir la documentation de la méthode :meth:`loop.create_connection` pour plus " -"d'informations sur les arguments de cette méthode." - -#: library/asyncio-eventloop.rst:714 library/asyncio-eventloop.rst:870 -#: library/asyncio-eventloop.rst:1336 library/asyncio-eventloop.rst:1889 -#: library/asyncio-eventloop.rst:1896 -msgid "Availability" -msgstr "Disponibilité" - -#: library/asyncio-eventloop.rst:716 -msgid "" -"Added the *ssl_handshake_timeout* parameter. The *path* parameter can now be " -"a :term:`path-like object`." -msgstr "" -"ajout du paramètre *ssl_handshake_timeout*. Le paramètre *chemin* peut " -"désormais être un :term:`objet simili-chemin `." - -#: library/asyncio-eventloop.rst:726 -msgid "Creating network servers" -msgstr "Création de serveurs" - -#: library/asyncio-eventloop.rst:742 -#, fuzzy -msgid "" -"Create a TCP server (socket type :const:`~socket.SOCK_STREAM`) listening on " -"*port* of the *host* address." -msgstr "" -"Crée un serveur TCP (type de connecteur :data:`~socket.SOCK_STREAM`) " -"écoutant sur le *port* de l'adresse *hôte*." - -#: library/asyncio-eventloop.rst:745 -msgid "Returns a :class:`Server` object." -msgstr "Renvoie un objet :class:`Server`." - -#: library/asyncio-eventloop.rst:747 -msgid "Arguments:" -msgstr "Arguments :" - -#: library/asyncio-eventloop.rst:752 -msgid "" -"The *host* parameter can be set to several types which determine where the " -"server would be listening:" -msgstr "" -"Le paramètre *host* peut être défini sur plusieurs types qui déterminent où " -"le serveur écoute :" - -#: library/asyncio-eventloop.rst:755 -msgid "" -"If *host* is a string, the TCP server is bound to a single network interface " -"specified by *host*." -msgstr "" -"Si *host* est une chaîne, le serveur TCP est lié à une seule interface " -"réseau spécifiée par *host*." - -#: library/asyncio-eventloop.rst:758 -msgid "" -"If *host* is a sequence of strings, the TCP server is bound to all network " -"interfaces specified by the sequence." -msgstr "" -"Si *host* est une séquence de chaînes, le serveur TCP est lié à toutes les " -"interfaces réseau spécifiées par la séquence." - -#: library/asyncio-eventloop.rst:761 -msgid "" -"If *host* is an empty string or ``None``, all interfaces are assumed and a " -"list of multiple sockets will be returned (most likely one for IPv4 and " -"another one for IPv6)." -msgstr "" -"Si *host* est une chaîne vide ou ``None``, toutes les interfaces sont prises " -"en compte et une liste de plusieurs connecteurs est renvoyée (probablement " -"une pour IPv4 et une autre pour IPv6)." - -#: library/asyncio-eventloop.rst:765 -msgid "" -"The *port* parameter can be set to specify which port the server should " -"listen on. If ``0`` or ``None`` (the default), a random unused port will be " -"selected (note that if *host* resolves to multiple network interfaces, a " -"different random port will be selected for each interface)." -msgstr "" -"Le paramètre *port* peut être défini pour spécifier sur quel port le serveur " -"doit écouter. Si ``0`` ou ``None`` (la valeur par défaut), un port inutilisé " -"aléatoire est sélectionné (notez que si *host* se résout en plusieurs " -"interfaces réseau, un port aléatoire différent est sélectionné pour chaque " -"interface)." - -#: library/asyncio-eventloop.rst:770 -#, fuzzy -msgid "" -"*family* can be set to either :const:`socket.AF_INET` " -"or :const:`~socket.AF_INET6` to force the socket to use IPv4 or IPv6. If not " -"set, the *family* will be determined from host name (defaults " -"to :const:`~socket.AF_UNSPEC`)." -msgstr "" -"*family* peut être défini sur :data:`socket.AF_INET` ou " -"sur :data:`~socket.AF_INET6` pour forcer le connecteur à utiliser IPv4 ou " -"IPv6. Si elle n'est pas définie, *family* est déterminée à partir du nom " -"d'hôte (par défaut :data:`~socket.AF_UNSPEC`)." - -#: library/asyncio-eventloop.rst:775 -msgid "*flags* is a bitmask for :meth:`getaddrinfo`." -msgstr "*flags* est un masque de bits pour :meth:`getaddrinfo`." - -#: library/asyncio-eventloop.rst:777 -msgid "" -"*sock* can optionally be specified in order to use a preexisting socket " -"object. If specified, *host* and *port* must not be specified." -msgstr "" -"*sock* peut éventuellement être spécifié afin d'utiliser un objet connecteur " -"préexistant. S'il est spécifié, *host* et *port* ne doivent pas être " -"spécifiés." - -# suit un : -#: library/asyncio-eventloop.rst:782 -msgid "" -"The *sock* argument transfers ownership of the socket to the server created. " -"To close the socket, call the server's :meth:`~asyncio.Server.close` method." -msgstr "" -"l'argument *sock* transfère la propriété du connecteur au serveur créé. Pour " -"fermer le connecteur, appelez la méthode :meth:`~asyncio.Server.close` du " -"serveur." - -#: library/asyncio-eventloop.rst:786 -msgid "" -"*backlog* is the maximum number of queued connections passed " -"to :meth:`~socket.socket.listen` (defaults to 100)." -msgstr "" -"*backlog* est le nombre maximum de connexions en file d'attente passées " -"à :meth:`~socket.socket.listen` (par défaut à 100)." - -#: library/asyncio-eventloop.rst:789 -msgid "" -"*ssl* can be set to an :class:`~ssl.SSLContext` instance to enable TLS over " -"the accepted connections." -msgstr "" -"*ssl* peut être défini sur une instance :class:`~ssl.SSLContext` pour " -"activer TLS sur les connexions acceptées." - -#: library/asyncio-eventloop.rst:792 -msgid "" -"*reuse_address* tells the kernel to reuse a local socket in ``TIME_WAIT`` " -"state, without waiting for its natural timeout to expire. If not specified " -"will automatically be set to ``True`` on Unix." -msgstr "" -"*reuse_address* indique au noyau de réutiliser un connecteur local dans " -"l'état ``TIME_WAIT``, sans attendre l'expiration de son délai d'attente " -"naturel. S'il n'est pas spécifié, il est automatiquement défini sur ``True`` " -"sous Unix." - -#: library/asyncio-eventloop.rst:797 -msgid "" -"*reuse_port* tells the kernel to allow this endpoint to be bound to the same " -"port as other existing endpoints are bound to, so long as they all set this " -"flag when being created. This option is not supported on Windows." -msgstr "" -"*reuse_port* indique au noyau d'autoriser ce point de terminaison à être lié " -"au même port que les autres points de terminaison existants, tant qu'ils " -"définissent tous cet indicateur lors de leur création. Cette option n'est " -"pas prise en charge sous Windows." - -#: library/asyncio-eventloop.rst:802 -msgid "" -"*keep_alive* set to ``True`` keeps connections active by enabling the " -"periodic transmission of messages." -msgstr "" - -#: library/asyncio-eventloop.rst:807 -#, fuzzy -msgid "Added the *keep_alive* parameter." -msgstr "ajout du paramètre ``name``." - -#: library/asyncio-eventloop.rst:809 -msgid "" -"*ssl_handshake_timeout* is (for a TLS server) the time in seconds to wait " -"for the TLS handshake to complete before aborting the connection. ``60.0`` " -"seconds if ``None`` (default)." -msgstr "" -"*ssl_handshake_timeout* est (pour un serveur TLS) le temps en secondes à " -"attendre que la poignée de main TLS se termine avant d'abandonner la " -"connexion. ``60.0`` secondes si ``None`` (par défaut)." - -#: library/asyncio-eventloop.rst:817 -msgid "" -"*start_serving* set to ``True`` (the default) causes the created server to " -"start accepting connections immediately. When set to ``False``, the user " -"should await on :meth:`Server.start_serving` or :meth:`Server.serve_forever` " -"to make the server to start accepting connections." -msgstr "" -"*start_serving* défini à ``True`` (valeur par défaut) fait que le serveur " -"créé commence immédiatement à accepter les connexions. Lorsqu'il est défini " -"sur ``False``, l'utilisateur doit attendre sur :meth:`Server.start_serving` " -"ou :meth:`Server.serve_forever` pour que le serveur commence à accepter les " -"connexions." - -# suit un : -#: library/asyncio-eventloop.rst:829 -msgid "The *host* parameter can be a sequence of strings." -msgstr "le paramètre *host* peut être une séquence de chaînes." - -# suit un : -#: library/asyncio-eventloop.rst:833 -#, fuzzy -msgid "" -"Added *ssl_handshake_timeout* and *start_serving* parameters. The socket " -"option :ref:`socket.TCP_NODELAY ` is set by default " -"for all TCP connections." -msgstr "" -"ajout des paramètres *ssl_handshake_timeout* et *start_serving*. L'option " -"socket :py:data:`~socket.TCP_NODELAY` est définie par défaut pour toutes les " -"connexions TCP." - -# suit un : -#: library/asyncio-eventloop.rst:843 -msgid "" -"The :func:`start_server` function is a higher-level alternative API that " -"returns a pair of :class:`StreamReader` and :class:`StreamWriter` that can " -"be used in an async/await code." -msgstr "" -"la fonction :func:`start_server` est une API alternative de niveau supérieur " -"qui renvoie une paire de :class:`StreamReader` et :class:`StreamWriter` qui " -"peut être utilisée dans un code *async/wait*." - -#: library/asyncio-eventloop.rst:855 -#, fuzzy -msgid "" -"Similar to :meth:`loop.create_server` but works with " -"the :py:const:`~socket.AF_UNIX` socket family." -msgstr "" -"Similaire à :meth:`loop.create_server` mais fonctionne avec la famille de " -"connecteurs :py:data:`~socket.AF_UNIX`." - -#: library/asyncio-eventloop.rst:858 -msgid "" -"*path* is the name of a Unix domain socket, and is required, unless a *sock* " -"argument is provided. Abstract Unix sockets, :class:`str`, :class:`bytes`, " -"and :class:`~pathlib.Path` paths are supported." -msgstr "" -"*path* est le nom d'un connecteur de domaine Unix et est obligatoire, sauf " -"si un argument *sock* est fourni. Les connecteurs Unix abstraits, les " -"chemins :class:`str`, :class:`bytes` et :class:`~pathlib.Path` sont pris en " -"charge." - -#: library/asyncio-eventloop.rst:863 -msgid "" -"If *cleanup_socket* is true then the Unix socket will automatically be " -"removed from the filesystem when the server is closed, unless the socket has " -"been replaced after the server has been created." -msgstr "" - -#: library/asyncio-eventloop.rst:867 -msgid "" -"See the documentation of the :meth:`loop.create_server` method for " -"information about arguments to this method." -msgstr "" -"Voir la documentation de la méthode :meth:`loop.create_server` pour plus " -"d'informations sur les arguments de cette méthode." - -# suit un : -#: library/asyncio-eventloop.rst:874 -msgid "" -"Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* " -"parameter can now be a :class:`~pathlib.Path` object." -msgstr "" -"ajout des paramètres *ssl_handshake_timeout* et *start_serving*. Le " -"paramètre *path* peut maintenant être un objet :class:`~pathlib.Path`." - -#: library/asyncio-eventloop.rst:883 -#, fuzzy -msgid "Added the *cleanup_socket* parameter." -msgstr "ajout du paramètre ``context``." - -#: library/asyncio-eventloop.rst:891 -msgid "Wrap an already accepted connection into a transport/protocol pair." -msgstr "" -"Enveloppe une connexion déjà acceptée dans une paire transport/protocole." - -#: library/asyncio-eventloop.rst:893 -msgid "" -"This method can be used by servers that accept connections outside of " -"asyncio but that use asyncio to handle them." -msgstr "" -"Cette méthode peut être utilisée par les serveurs qui acceptent les " -"connexions en dehors d'*asyncio* mais qui utilisent *asyncio* pour les gérer." - -#: library/asyncio-eventloop.rst:896 library/asyncio-eventloop.rst:988 -msgid "Parameters:" -msgstr "Paramètres :" - -#: library/asyncio-eventloop.rst:901 -msgid "" -"*sock* is a preexisting socket object returned from :meth:`socket.accept " -"`." -msgstr "" -"*sock* est un objet connecteur préexistant renvoyé par :meth:`socket.accept " -"`." - -#: library/asyncio-eventloop.rst:910 -msgid "" -"*ssl* can be set to an :class:`~ssl.SSLContext` to enable SSL over the " -"accepted connections." -msgstr "" -"*ssl* peut être défini sur une :class:`~ssl.SSLContext` pour activer SSL sur " -"les connexions acceptées." - -#: library/asyncio-eventloop.rst:913 -msgid "" -"*ssl_handshake_timeout* is (for an SSL connection) the time in seconds to " -"wait for the SSL handshake to complete before aborting the connection. " -"``60.0`` seconds if ``None`` (default)." -msgstr "" -"*ssl_handshake_timeout* est (pour une connexion SSL) le temps en secondes à " -"attendre que la poignée de main SSL se termine avant d'abandonner la " -"connexion. ``60.0`` secondes si ``None`` (par défaut)." - -#: library/asyncio-eventloop.rst:921 -msgid "Returns a ``(transport, protocol)`` pair." -msgstr "Renvoie une paire ``(transport, protocole)``." - -#: library/asyncio-eventloop.rst:935 -msgid "Transferring files" -msgstr "Transfert de fichiers" - -#: library/asyncio-eventloop.rst:941 -msgid "" -"Send a *file* over a *transport*. Return the total number of bytes sent." -msgstr "" -"Envoie *file* via *transport*. Renvoie le nombre total d'octets envoyés." - -#: library/asyncio-eventloop.rst:944 -msgid "The method uses high-performance :meth:`os.sendfile` if available." -msgstr "" -"La méthode utilise :meth:`os.sendfile` (hautes performances) si elle est " -"disponible." - -#: library/asyncio-eventloop.rst:946 -msgid "*file* must be a regular file object opened in binary mode." -msgstr "*file* doit être un objet fichier normal ouvert en mode binaire." - -#: library/asyncio-eventloop.rst:948 library/asyncio-eventloop.rst:1209 -msgid "" -"*offset* tells from where to start reading the file. If specified, *count* " -"is the total number of bytes to transmit as opposed to sending the file " -"until EOF is reached. File position is always updated, even when this method " -"raises an error, and :meth:`file.tell() ` can be used to " -"obtain the actual number of bytes sent." -msgstr "" -"*offset* indique où commencer la lecture du fichier. Si spécifié, *count* " -"est le nombre total d'octets à transmettre, par opposition à l'envoi du " -"fichier jusqu'à ce que EOF soit atteint. La position du fichier est toujours " -"mise à jour, même lorsque cette méthode génère une " -"erreur. :meth:`file.tell() ` peut être utilisée pour obtenir " -"le nombre d'octets réellement envoyés." - -#: library/asyncio-eventloop.rst:955 -msgid "" -"*fallback* set to ``True`` makes asyncio to manually read and send the file " -"when the platform does not support the sendfile system call (e.g. Windows or " -"SSL socket on Unix)." -msgstr "" -"*fallback* défini sur ``True`` permet à *asyncio* de lire et d'envoyer " -"manuellement le fichier lorsque la plateforme ne prend pas en charge l'appel " -"système *sendfile* (par exemple, Windows ou connecteur SSL sous Unix)." - -#: library/asyncio-eventloop.rst:959 -msgid "" -"Raise :exc:`SendfileNotAvailableError` if the system does not support the " -"*sendfile* syscall and *fallback* is ``False``." -msgstr "" -"Lève :exc:`SendfileNotAvailableError` si le système ne prend pas en charge " -"l'appel système *sendfile* et que *fallback* est ``False``." - -#: library/asyncio-eventloop.rst:966 -#, fuzzy -msgid "TLS upgrade" -msgstr "Passage du flux en TLS" - -#: library/asyncio-eventloop.rst:974 -msgid "Upgrade an existing transport-based connection to TLS." -msgstr "Convertit une connexion existante en connexion TLS." - -#: library/asyncio-eventloop.rst:976 -msgid "" -"Create a TLS coder/decoder instance and insert it between the *transport* " -"and the *protocol*. The coder/decoder implements both *transport*-facing " -"protocol and *protocol*-facing transport." -msgstr "" -"Crée une instance de codeur-décodeur TLS et l'insère entre le *transport* et " -"le *protocol*. Le codeur-décodeur implémente à la fois le protocole vers le " -"*transport* et le transport vers le *protocol*." - -#: library/asyncio-eventloop.rst:980 -msgid "" -"Return the created two-interface instance. After *await*, the *protocol* " -"must stop using the original *transport* and communicate with the returned " -"object only because the coder caches *protocol*-side data and sporadically " -"exchanges extra TLS session packets with *transport*." -msgstr "" -"Renvoie l'instance à deux interfaces créée. Après *await*, le *protocol* " -"doit cesser d'utiliser le *transport* d'origine et communiquer avec l'objet " -"renvoyé uniquement parce que le codeur met en cache les données côté " -"*protocol* et échange sporadiquement des paquets de session TLS " -"supplémentaires avec *transport*." - -#: library/asyncio-eventloop.rst:985 -msgid "" -"In some situations (e.g. when the passed transport is already closing) this " -"may return ``None``." -msgstr "" - -#: library/asyncio-eventloop.rst:990 -msgid "" -"*transport* and *protocol* instances that methods " -"like :meth:`~loop.create_server` and :meth:`~loop.create_connection` return." -msgstr "" -"*transport* et *protocol* que des méthodes comme :meth:`~loop.create_server` " -"et :meth:`~loop.create_connection` renvoient." - -#: library/asyncio-eventloop.rst:994 -msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." -msgstr "*sslcontext* : une instance configurée de :class:`~ssl.SSLContext`." - -#: library/asyncio-eventloop.rst:996 -msgid "" -"*server_side* pass ``True`` when a server-side connection is being upgraded " -"(like the one created by :meth:`~loop.create_server`)." -msgstr "" -"*server_side* passe à ``True`` lorsqu'une connexion côté serveur est mise à " -"jour (comme celle créée par :meth:`~loop.create_server`)." - -#: library/asyncio-eventloop.rst:999 -msgid "" -"*server_hostname*: sets or overrides the host name that the target server's " -"certificate will be matched against." -msgstr "" -"*server_hostname* : définit ou remplace le nom d'hôte auquel le certificat " -"du serveur cible est comparé." - -#: library/asyncio-eventloop.rst:1019 -msgid "Watching file descriptors" -msgstr "Surveillance de descripteur de fichier" - -#: library/asyncio-eventloop.rst:1023 -msgid "" -"Start monitoring the *fd* file descriptor for read availability and invoke " -"*callback* with the specified arguments once *fd* is available for reading." -msgstr "" -"Commence à surveiller la disponibilité en lecture du descripteur de fichier " -"*fd* et appelle *callback* avec les arguments spécifiés une fois que *fd* " -"est disponible en lecture." - -#: library/asyncio-eventloop.rst:1027 library/asyncio-eventloop.rst:1041 -msgid "" -"Any preexisting callback registered for *fd* is cancelled and replaced by " -"*callback*." -msgstr "" - -#: library/asyncio-eventloop.rst:1032 -msgid "" -"Stop monitoring the *fd* file descriptor for read availability. Returns " -"``True`` if *fd* was previously being monitored for reads." -msgstr "" -"Arrête de surveiller le descripteur de fichier *fd* pour la disponibilité en " -"lecture. Renvoie ``True`` si *fd* était précédemment surveillé pour les " -"lectures." - -#: library/asyncio-eventloop.rst:1037 -#, fuzzy -msgid "" -"Start monitoring the *fd* file descriptor for write availability and invoke " -"*callback* with the specified arguments *args* once *fd* is available for " -"writing." -msgstr "" -"Commence à surveiller le descripteur de fichier *fd* pour la disponibilité " -"en écriture et appelle *callback* avec les arguments spécifiés une fois que " -"*fd* est disponible en écriture." - -#: library/asyncio-eventloop.rst:1044 library/asyncio-eventloop.rst:1323 -msgid "" -"Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *callback*." -msgstr "" -"Utilisez :func:`functools.partial` pour :ref:`passer des arguments nommés " -"` à *callback*." - -#: library/asyncio-eventloop.rst:1049 -msgid "" -"Stop monitoring the *fd* file descriptor for write availability. Returns " -"``True`` if *fd* was previously being monitored for writes." -msgstr "" -"Arrête de surveiller le descripteur de fichier *fd* pour la disponibilité en " -"écriture. Renvoie ``True`` si *fd* était précédemment surveillé pour les " -"écritures." - -#: library/asyncio-eventloop.rst:1052 -msgid "" -"See also :ref:`Platform Support ` section for some " -"limitations of these methods." -msgstr "" -"Voir aussi la section :ref:`Prise en charge de la plate-forme ` pour certaines limitations de ces méthodes." - -#: library/asyncio-eventloop.rst:1057 -msgid "Working with socket objects directly" -msgstr "Travail direct avec des objets *socket*" - -#: library/asyncio-eventloop.rst:1059 -msgid "" -"In general, protocol implementations that use transport-based APIs such " -"as :meth:`loop.create_connection` and :meth:`loop.create_server` are faster " -"than implementations that work with sockets directly. However, there are " -"some use cases when performance is not critical, and working " -"with :class:`~socket.socket` objects directly is more convenient." -msgstr "" -"En général, les implémentations de protocole qui utilisent des API basées " -"sur le transport telles que :meth:`loop.create_connection` " -"et :meth:`loop.create_server` sont plus rapides que les implémentations qui " -"fonctionnent directement avec les *sockets*. Cependant, il existe des cas " -"d'utilisation où les performances ne sont pas critiques, et travailler " -"directement avec les objets :class:`~socket.socket` est plus pratique." - -#: library/asyncio-eventloop.rst:1069 -msgid "" -"Receive up to *nbytes* from *sock*. Asynchronous version " -"of :meth:`socket.recv() `." -msgstr "" -"Reçoit jusqu'à *nbytes* de *sock*. Version asynchrone " -"de :meth:`socket.recv() `." - -#: library/asyncio-eventloop.rst:1072 -msgid "Return the received data as a bytes object." -msgstr "Renvoie les données reçues sous la forme d'un objet bytes." - -#: library/asyncio-eventloop.rst:1074 library/asyncio-eventloop.rst:1089 -#: library/asyncio-eventloop.rst:1101 library/asyncio-eventloop.rst:1114 -#: library/asyncio-eventloop.rst:1130 library/asyncio-eventloop.rst:1146 -#: library/asyncio-eventloop.rst:1157 library/asyncio-eventloop.rst:1184 -#: library/asyncio-eventloop.rst:1223 -msgid "*sock* must be a non-blocking socket." -msgstr "Le connecteur *sock* ne doit pas être bloquant." - -# suit un : -#: library/asyncio-eventloop.rst:1076 -msgid "" -"Even though this method was always documented as a coroutine method, " -"releases before Python 3.7 returned a :class:`Future`. Since Python 3.7 this " -"is an ``async def`` method." -msgstr "" -"même si cette méthode a toujours été documentée en tant que méthode " -"coroutine, les versions antérieures à Python 3.7 renvoyaient " -"un :class:`Future`. Depuis Python 3.7, il s'agit d'une méthode ``async def``." - -#: library/asyncio-eventloop.rst:1084 -msgid "" -"Receive data from *sock* into the *buf* buffer. Modeled after the " -"blocking :meth:`socket.recv_into() ` method." -msgstr "" -"Reçoit les données de *sock* dans le tampon *buf*. Basée sur le modèle de la " -"méthode bloquante :meth:`socket.recv_into() `." - -#: library/asyncio-eventloop.rst:1087 -msgid "Return the number of bytes written to the buffer." -msgstr "Renvoie le nombre d'octets écrits dans le tampon." - -#: library/asyncio-eventloop.rst:1096 -msgid "" -"Receive a datagram of up to *bufsize* from *sock*. Asynchronous version " -"of :meth:`socket.recvfrom() `." -msgstr "" -"Reçoit un datagramme jusqu'à *bufsize* de *sock*. Version asynchrone " -"de :meth:`socket.recvfrom() `." - -#: library/asyncio-eventloop.rst:1099 -msgid "Return a tuple of (received data, remote address)." -msgstr "Renvoie un *n*-uplet (données reçues, adresse distante)." - -#: library/asyncio-eventloop.rst:1108 -msgid "" -"Receive a datagram of up to *nbytes* from *sock* into *buf*. Asynchronous " -"version of :meth:`socket.recvfrom_into() `." -msgstr "" -"Reçoit un datagramme jusqu'à *nbytes* de *sock* vers *buf*. Version " -"asynchrone de :meth:`socket.recvfrom_into() `." - -#: library/asyncio-eventloop.rst:1112 -msgid "Return a tuple of (number of bytes received, remote address)." -msgstr "Renvoie un *n*-uplet (nombre d'octets reçus, adresse distante)." - -#: library/asyncio-eventloop.rst:1121 -msgid "" -"Send *data* to the *sock* socket. Asynchronous version " -"of :meth:`socket.sendall() `." -msgstr "" -"Envoie les données *data* au connecteur *sock*. Version asynchrone " -"de :meth:`socket.sendall() `." - -#: library/asyncio-eventloop.rst:1124 -msgid "" -"This method continues to send to the socket until either all data in *data* " -"has been sent or an error occurs. ``None`` is returned on success. On " -"error, an exception is raised. Additionally, there is no way to determine " -"how much data, if any, was successfully processed by the receiving end of " -"the connection." -msgstr "" -"Cette méthode continue d'envoyer des données au connecteur jusqu'à ce que " -"toutes les *data* aient été envoyées ou qu'une erreur se produise. ``None`` " -"est renvoyé en cas de succès. En cas d'erreur, une exception est levée. De " -"plus, il n'existe aucun moyen de déterminer la quantité de données, le cas " -"échéant, qui a été traitée avec succès par l'extrémité réceptrice de la " -"connexion." - -# suit un : -#: library/asyncio-eventloop.rst:1132 library/asyncio-eventloop.rst:1186 -msgid "" -"Even though the method was always documented as a coroutine method, before " -"Python 3.7 it returned a :class:`Future`. Since Python 3.7, this is an " -"``async def`` method." -msgstr "" -"même si la méthode a toujours été documentée en tant que méthode coroutine, " -"avant Python 3.7, elle renvoyait un :class:`Future`. Depuis Python 3.7, il " -"s'agit d'une méthode ``async def``." - -#: library/asyncio-eventloop.rst:1140 -msgid "" -"Send a datagram from *sock* to *address*. Asynchronous version " -"of :meth:`socket.sendto() `." -msgstr "" -"Envoie un datagramme de *sock* à *address*. Version asynchrone " -"de :meth:`socket.sendto() `." - -#: library/asyncio-eventloop.rst:1144 -msgid "Return the number of bytes sent." -msgstr "Renvoie le nombre d'octets envoyés." - -#: library/asyncio-eventloop.rst:1153 -msgid "Connect *sock* to a remote socket at *address*." -msgstr "Connecte *sock* à un connecteur distant situé à *address*." - -#: library/asyncio-eventloop.rst:1155 -msgid "" -"Asynchronous version of :meth:`socket.connect() `." -msgstr "" -"Version asynchrone de :meth:`socket.connect() `." - -#: library/asyncio-eventloop.rst:1159 -msgid "" -"``address`` no longer needs to be resolved. ``sock_connect`` will try to " -"check if the *address* is already resolved by " -"calling :func:`socket.inet_pton`. If not, :meth:`loop.getaddrinfo` will be " -"used to resolve the *address*." -msgstr "" -"``address`` n'a plus besoin d'être résolu. ``sock_connect`` essaie de " -"vérifier si *address* est déjà résolue en appelant :func:`socket.inet_pton`. " -"Sinon, :meth:`loop.getaddrinfo` est utilisé pour résoudre *address*." - -#: library/asyncio-eventloop.rst:1168 -msgid "" -":meth:`loop.create_connection` and :func:`asyncio.open_connection() " -"`." -msgstr "" -":meth:`loop.create_connection` et :func:`asyncio.open_connection() " -"`." - -#: library/asyncio-eventloop.rst:1175 -msgid "" -"Accept a connection. Modeled after the blocking :meth:`socket.accept() " -"` method." -msgstr "" -"Accepte une connexion. Basée sur le modèle de la méthode " -"bloquante :meth:`socket.accept() `." - -#: library/asyncio-eventloop.rst:1178 -msgid "" -"The socket must be bound to an address and listening for connections. The " -"return value is a pair ``(conn, address)`` where *conn* is a *new* socket " -"object usable to send and receive data on the connection, and *address* is " -"the address bound to the socket on the other end of the connection." -msgstr "" -"Le connecteur doit être lié à une adresse et écouter les connexions. La " -"valeur de retour est une paire ``(conn, adresse)`` où *conn* est un *nouvel* " -"objet socket utilisable pour envoyer et recevoir des données sur la " -"connexion, et *adresse* est l'adresse liée au connecteur de l'autre côté de " -"la connexion." - -#: library/asyncio-eventloop.rst:1193 -msgid ":meth:`loop.create_server` and :func:`start_server`." -msgstr ":meth:`loop.create_server` et :func:`start_server`." - -#: library/asyncio-eventloop.rst:1199 -msgid "" -"Send a file using high-performance :mod:`os.sendfile` if possible. Return " -"the total number of bytes sent." -msgstr "" -"Envoie le fichier en utilisant :mod:`os.sendfile` (haute performance) si " -"possible. Renvoie le nombre total d'octets envoyés." - -#: library/asyncio-eventloop.rst:1202 -msgid "" -"Asynchronous version of :meth:`socket.sendfile() `." -msgstr "" -"Version asynchrone de :meth:`socket.sendfile() `." - -#: library/asyncio-eventloop.rst:1204 -msgid "" -"*sock* must be a non-" -"blocking :const:`socket.SOCK_STREAM` :class:`~socket.socket`." -msgstr "" -"*sock* doit être un :const:`socket.SOCK_STREAM` :class:`~socket.socket` non " -"bloquant." - -#: library/asyncio-eventloop.rst:1207 -msgid "*file* must be a regular file object open in binary mode." -msgstr "*file* doit être un objet fichier normal ouvert en mode binaire." - -#: library/asyncio-eventloop.rst:1216 -msgid "" -"*fallback*, when set to ``True``, makes asyncio manually read and send the " -"file when the platform does not support the sendfile syscall (e.g. Windows " -"or SSL socket on Unix)." -msgstr "" -"*fallback*, lorsqu'il est défini à ``True``, permet à *asyncio* de lire et " -"d'envoyer manuellement le fichier lorsque la plateforme ne prend pas en " -"charge l'appel système *sendfile* (par exemple, Windows ou connecteur SSL " -"sous Unix)." - -#: library/asyncio-eventloop.rst:1220 -msgid "" -"Raise :exc:`SendfileNotAvailableError` if the system does not support " -"*sendfile* syscall and *fallback* is ``False``." -msgstr "" -"Lève une :exc:`SendfileNotAvailableError` si le système ne prend pas en " -"charge l'appel système *sendfile* et que *fallback* est ``False``." - -#: library/asyncio-eventloop.rst:1229 -msgid "DNS" -msgstr "DNS" - -#: library/asyncio-eventloop.rst:1235 -msgid "Asynchronous version of :meth:`socket.getaddrinfo`." -msgstr "Version asynchrone de :meth:`socket.getaddrinfo`." - -#: library/asyncio-eventloop.rst:1240 -msgid "Asynchronous version of :meth:`socket.getnameinfo`." -msgstr "Version asynchrone de :meth:`socket.getnameinfo`." - -#: library/asyncio-eventloop.rst:1243 -msgid "" -"Both *getaddrinfo* and *getnameinfo* internally utilize their synchronous " -"versions through the loop's default thread pool executor. When this executor " -"is saturated, these methods may experience delays, which higher-level " -"networking libraries may report as increased timeouts. To mitigate this, " -"consider using a custom executor for other user tasks, or setting a default " -"executor with a larger number of workers." -msgstr "" - -# suit un : -#: library/asyncio-eventloop.rst:1250 -msgid "" -"Both *getaddrinfo* and *getnameinfo* methods were always documented to " -"return a coroutine, but prior to Python 3.7 they were, in fact, " -"returning :class:`asyncio.Future` objects. Starting with Python 3.7 both " -"methods are coroutines." -msgstr "" -"les méthodes *getaddrinfo* et *getnameinfo* ont toujours été documentées " -"pour renvoyer une coroutine, mais avant Python 3.7, elles renvoyaient en " -"fait des objets :class:`asyncio.Future`. À partir de Python 3.7, les deux " -"méthodes sont des coroutines." - -#: library/asyncio-eventloop.rst:1258 -msgid "Working with pipes" -msgstr "Travail avec des tubes (*pipes*)" - -#: library/asyncio-eventloop.rst:1263 -msgid "Register the read end of *pipe* in the event loop." -msgstr "" -"Branche l'extrémité en lecture du tube *pipe* à la boucle d'évènements." - -#: library/asyncio-eventloop.rst:1268 -msgid "*pipe* is a :term:`file-like object `." -msgstr "*pipe* est un :term:`simili-fichier `." - -#: library/asyncio-eventloop.rst:1270 -msgid "" -"Return pair ``(transport, protocol)``, where *transport* supports " -"the :class:`ReadTransport` interface and *protocol* is an object " -"instantiated by the *protocol_factory*." -msgstr "" -"Renvoie la paire ``(transport, protocol)``, où *transport* prend en charge " -"l'interface :class:`ReadTransport` et *protocol* est un objet instancié par " -"*protocol_factory*." - -#: library/asyncio-eventloop.rst:1274 library/asyncio-eventloop.rst:1291 -msgid "" -"With :class:`SelectorEventLoop` event loop, the *pipe* is set to non-" -"blocking mode." -msgstr "" -"Avec la boucle d'événements :class:`SelectorEventLoop`, le *pipe* est mis en " -"mode non bloquant." - -#: library/asyncio-eventloop.rst:1280 -msgid "Register the write end of *pipe* in the event loop." -msgstr "Branche l'extrémité en écriture de *pipe* à la boucle d'évènements." - -#: library/asyncio-eventloop.rst:1285 -msgid "*pipe* is :term:`file-like object `." -msgstr "*pipe* est un :term:`simili-fichier `." - -#: library/asyncio-eventloop.rst:1287 -msgid "" -"Return pair ``(transport, protocol)``, where *transport* " -"supports :class:`WriteTransport` interface and *protocol* is an object " -"instantiated by the *protocol_factory*." -msgstr "" -"Renvoie la paire ``(transport, protocol)``, où *transport* prend en charge " -"l'interface :class:`WriteTransport` et *protocol* est un objet instancié par " -"*protocol_factory*." - -#: library/asyncio-eventloop.rst:1296 -msgid "" -":class:`SelectorEventLoop` does not support the above methods on Windows. " -"Use :class:`ProactorEventLoop` instead for Windows." -msgstr "" -":class:`SelectorEventLoop` ne prend pas en charge les méthodes ci-dessus " -"sous Windows. Utilisez :class:`ProactorEventLoop` à la place pour Windows." - -# suit un : -#: library/asyncio-eventloop.rst:1301 -msgid "" -"The :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods." -msgstr "" -"les méthodes :meth:`loop.subprocess_exec` et :meth:`loop.subprocess_shell`." - -#: library/asyncio-eventloop.rst:1306 -msgid "Unix signals" -msgstr "Signaux Unix" - -#: library/asyncio-eventloop.rst:1312 -#, fuzzy -msgid "" -"Set *callback* as the handler for the *signum* signal, passing *args* as " -"positional arguments." -msgstr "Définit *callback* comme gestionnaire du signal *signum*." - -#: library/asyncio-eventloop.rst:1315 -msgid "" -"The callback will be invoked by *loop*, along with other queued callbacks " -"and runnable coroutines of that event loop. Unlike signal handlers " -"registered using :func:`signal.signal`, a callback registered with this " -"function is allowed to interact with the event loop." -msgstr "" -"La fonction de rappel sera appelée par *loop*, avec d'autres rappels en file " -"d'attente et des coroutines exécutables de cette boucle d'événements. " -"Contrairement aux gestionnaires de signaux enregistrés à l'aide " -"de :func:`signal.signal`, un rappel enregistré avec cette fonction est " -"autorisé à interagir avec la boucle d'événements." - -#: library/asyncio-eventloop.rst:1320 -msgid "" -"Raise :exc:`ValueError` if the signal number is invalid or uncatchable. " -"Raise :exc:`RuntimeError` if there is a problem setting up the handler." -msgstr "" -"Lève une :exc:`ValueError` si le numéro de signal est invalide ou non " -"attrapable. Lève une :exc:`RuntimeError` s'il y a un problème lors de la " -"configuration du gestionnaire." - -#: library/asyncio-eventloop.rst:1326 -msgid "" -"Like :func:`signal.signal`, this function must be invoked in the main thread." -msgstr "" -"Comme :func:`signal.signal`, cette fonction doit être invoquée dans le fil " -"d'exécution principal." - -#: library/asyncio-eventloop.rst:1331 -msgid "Remove the handler for the *sig* signal." -msgstr "Supprime le gestionnaire du signal *sig*." - -#: library/asyncio-eventloop.rst:1333 -msgid "" -"Return ``True`` if the signal handler was removed, or ``False`` if no " -"handler was set for the given signal." -msgstr "" -"Renvoie ``True`` si le gestionnaire de signal a été supprimé, ou ``False`` " -"si aucun gestionnaire n'a été défini pour le signal donné." - -# suit un : -#: library/asyncio-eventloop.rst:1340 -msgid "The :mod:`signal` module." -msgstr "le module :mod:`signal`." - -#: library/asyncio-eventloop.rst:1344 -msgid "Executing code in thread or process pools" -msgstr "Exécution de code dans des pools de threads ou de processus" - -#: library/asyncio-eventloop.rst:1348 -#, fuzzy -msgid "" -"Arrange for *func* to be called in the specified executor passing *args* as " -"positional arguments." -msgstr "Fait en sorte que *func* soit appelée dans l'exécuteur spécifié." - -#: library/asyncio-eventloop.rst:1351 -msgid "" -"The *executor* argument should be an :class:`concurrent.futures.Executor` " -"instance. The default executor is used if *executor* is ``None``. The " -"default executor can be set by :meth:`loop.set_default_executor`, otherwise, " -"a :class:`concurrent.futures.ThreadPoolExecutor` will be lazy-initialized " -"and used by :func:`run_in_executor` if needed." -msgstr "" - -#: library/asyncio-eventloop.rst:1405 -msgid "" -"Note that the entry point guard (``if __name__ == '__main__'``) is required " -"for option 3 due to the peculiarities of :mod:`multiprocessing`, which is " -"used by :class:`~concurrent.futures.ProcessPoolExecutor`. See :ref:`Safe " -"importing of main module `." -msgstr "" -"Notez que la garde du point d'entrée (``if __name__ == '__main__'``) est " -"requis pour l'option 3 en raison des particularités " -"de :mod:`multiprocessing`, qui est utilisé " -"par :class:`~concurrent.futures.ProcessPoolExecutor`. Voir :ref:`Importation " -"sécurisée du module principal `." - -#: library/asyncio-eventloop.rst:1410 -msgid "This method returns a :class:`asyncio.Future` object." -msgstr "Cette méthode renvoie un objet :class:`asyncio.Future`." - -#: library/asyncio-eventloop.rst:1412 -msgid "" -"Use :func:`functools.partial` :ref:`to pass keyword arguments ` to *func*." -msgstr "" -"Utilisez :func:`functools.partial` pour :ref:`passer des arguments nommés " -"` à *func*." - -#: library/asyncio-eventloop.rst:1415 -msgid "" -":meth:`loop.run_in_executor` no longer configures the ``max_workers`` of the " -"thread pool executor it creates, instead leaving it up to the thread pool " -"executor (:class:`~concurrent.futures.ThreadPoolExecutor`) to set the " -"default." -msgstr "" -":meth:`loop.run_in_executor` ne configure plus le ``max_workers`` de " -"l'exécuteur de pool de threads qu'il crée, laissant à la place à l'exécuteur " -"de pool de threads (:class:`~concurrent.futures.ThreadPoolExecutor`) le soin " -"de définir le défaut." - -#: library/asyncio-eventloop.rst:1424 -#, fuzzy -msgid "" -"Set *executor* as the default executor used by :meth:`run_in_executor`. " -"*executor* must be an instance " -"of :class:`~concurrent.futures.ThreadPoolExecutor`, which " -"includes :class:`~concurrent.futures.InterpreterPoolExecutor`." -msgstr "" -"Définit *executor* comme exécuteur par défaut utilisé " -"par :meth:`run_in_executor`. *executor* doit être une instance " -"de :class:`~concurrent.futures.ThreadPoolExecutor`." - -#: library/asyncio-eventloop.rst:1429 -msgid "" -"*executor* must be an instance " -"of :class:`~concurrent.futures.ThreadPoolExecutor`." -msgstr "" -"*executor* doit être une instance " -"de :class:`~concurrent.futures.ThreadPoolExecutor`." - -#: library/asyncio-eventloop.rst:1435 -#, fuzzy -msgid "Error handling API" -msgstr "API de gestion d'erreur" - -#: library/asyncio-eventloop.rst:1437 -msgid "Allows customizing how exceptions are handled in the event loop." -msgstr "" -"Permet de personnaliser la façon dont les exceptions sont gérées dans la " -"boucle d'événements." - -#: library/asyncio-eventloop.rst:1441 -msgid "Set *handler* as the new event loop exception handler." -msgstr "" -"Définit *handler* comme nouveau gestionnaire d'exceptions de boucle " -"d'événements." - -#: library/asyncio-eventloop.rst:1443 -msgid "" -"If *handler* is ``None``, the default exception handler will be set. " -"Otherwise, *handler* must be a callable with the signature matching ``(loop, " -"context)``, where ``loop`` is a reference to the active event loop, and " -"``context`` is a ``dict`` object containing the details of the exception " -"(see :meth:`call_exception_handler` documentation for details about context)." -msgstr "" -"Si *handler* est ``None``, le gestionnaire d'exceptions par défaut est " -"activé. Sinon, *handler* doit être un appelable avec la signature " -"correspondant à ``(loop, context)``, où ``loop`` est une référence à la " -"boucle d'événements active et ``context`` est un ``dict`` contenant les " -"détails de l'exception (voir la documentation :meth:`call_exception_handler` " -"pour plus de détails sur le contexte)." - -#: library/asyncio-eventloop.rst:1451 -msgid "" -"If the handler is called on behalf of a :class:`~asyncio.Task` " -"or :class:`~asyncio.Handle`, it is run in the :class:`contextvars.Context` " -"of that task or callback handle." -msgstr "" - -#: library/asyncio-eventloop.rst:1457 -msgid "" -"The handler may be called in the :class:`~contextvars.Context` of the task " -"or handle where the exception originated." -msgstr "" - -#: library/asyncio-eventloop.rst:1462 -msgid "" -"Return the current exception handler, or ``None`` if no custom exception " -"handler was set." -msgstr "" -"Renvoie le gestionnaire d'exceptions actuel ou ``None`` si aucun " -"gestionnaire d'exceptions personnalisé n'a été défini." - -#: library/asyncio-eventloop.rst:1469 -msgid "Default exception handler." -msgstr "Gestionnaire d'exception par défaut." - -#: library/asyncio-eventloop.rst:1471 -msgid "" -"This is called when an exception occurs and no exception handler is set. " -"This can be called by a custom exception handler that wants to defer to the " -"default handler behavior." -msgstr "" -"Appelée lorsqu'une exception se produit et qu'aucun gestionnaire d'exception " -"n'est défini. Elle peut être appelée par un gestionnaire d'exceptions " -"personnalisé qui souhaite s'en remettre au comportement du gestionnaire par " -"défaut." - -#: library/asyncio-eventloop.rst:1475 -msgid "" -"*context* parameter has the same meaning as " -"in :meth:`call_exception_handler`." -msgstr "" -"Le paramètre *context* a la même signification que " -"dans :meth:`call_exception_handler`." - -#: library/asyncio-eventloop.rst:1480 -msgid "Call the current event loop exception handler." -msgstr "" -"Appelle le gestionnaire d'exception de la boucle d'évènements actuelle." - -#: library/asyncio-eventloop.rst:1482 -msgid "" -"*context* is a ``dict`` object containing the following keys (new keys may " -"be introduced in future Python versions):" -msgstr "" -"*context* est un objet ``dict`` contenant les clés suivantes (de nouvelles " -"clés pourront être introduites dans les futures versions de Python) :" - -#: library/asyncio-eventloop.rst:1485 -msgid "'message': Error message;" -msgstr "'message' : message d'erreur ;" - -#: library/asyncio-eventloop.rst:1486 -msgid "'exception' (optional): Exception object;" -msgstr "'exception' (facultatif) : objet exception ;" - -#: library/asyncio-eventloop.rst:1487 -msgid "'future' (optional): :class:`asyncio.Future` instance;" -msgstr "'future' (facultatif) : instance de :class:`asyncio.Future` ;" - -#: library/asyncio-eventloop.rst:1488 -msgid "'task' (optional): :class:`asyncio.Task` instance;" -msgstr "'task' (facultatif) : instance de :class:`asyncio.Task` ;" - -#: library/asyncio-eventloop.rst:1489 -msgid "'handle' (optional): :class:`asyncio.Handle` instance;" -msgstr "*'handle'* (facultatif) : instance de :class:`asyncio.Handle` ;" - -#: library/asyncio-eventloop.rst:1490 -msgid "'protocol' (optional): :ref:`Protocol ` instance;" -msgstr "" -"*'protocol'* (facultatif) : instance de :ref:`protocole asyncio ` ;" - -#: library/asyncio-eventloop.rst:1491 -msgid "'transport' (optional): :ref:`Transport ` instance;" -msgstr "" -"'transport' (facultatif) : instance de :ref:`transport asyncio ` ;" - -#: library/asyncio-eventloop.rst:1492 -msgid "'socket' (optional): :class:`socket.socket` instance;" -msgstr "'socket' (facultatif) : instance de :class:`socket.socket` ;" - -#: library/asyncio-eventloop.rst:1493 -msgid "'source_traceback' (optional): Traceback of the source;" -msgstr "" - -#: library/asyncio-eventloop.rst:1494 -msgid "'handle_traceback' (optional): Traceback of the handle;" -msgstr "" - -#: library/asyncio-eventloop.rst:1495 -msgid "'asyncgen' (optional): Asynchronous generator that caused" -msgstr "*'asyncgen'* (facultatif) : générateur asynchrone qui a causé" - -#: library/asyncio-eventloop.rst:1496 -msgid "the exception." -msgstr "l'exception" - -# suit un : -#: library/asyncio-eventloop.rst:1500 -#, fuzzy -msgid "" -"This method should not be overloaded in subclassed event loops. For custom " -"exception handling, use the :meth:`set_exception_handler` method." -msgstr "" -"cette méthode ne doit pas être surchargée dans les boucles d'événements sous-" -"classées. Pour la gestion personnalisée des exceptions, utilisez la " -"méthode :meth:`set_exception_handler()`." - -#: library/asyncio-eventloop.rst:1505 -msgid "Enabling debug mode" -msgstr "Activation du mode débogage" - -#: library/asyncio-eventloop.rst:1509 -msgid "Get the debug mode (:class:`bool`) of the event loop." -msgstr "Obtient le mode de débogage (:class:`bool`) de la boucle d'événements." - -#: library/asyncio-eventloop.rst:1511 -msgid "" -"The default value is ``True`` if the environment " -"variable :envvar:`PYTHONASYNCIODEBUG` is set to a non-empty string, " -"``False`` otherwise." -msgstr "" -"La valeur par défaut est ``True`` si la variable " -"d'environnement :envvar:`PYTHONASYNCIODEBUG` est définie sur une chaîne non " -"vide, ``False`` sinon." - -#: library/asyncio-eventloop.rst:1517 -msgid "Set the debug mode of the event loop." -msgstr "Active le mode débogage pour la boucle d'évènements." - -# suit un : -#: library/asyncio-eventloop.rst:1521 -msgid "" -"The new :ref:`Python Development Mode ` can now also be used to " -"enable the debug mode." -msgstr "" -"le nouveau :ref:`mode de développement Python ` peut désormais " -"également être utilisé pour activer le mode de débogage." - -#: library/asyncio-eventloop.rst:1526 -msgid "" -"This attribute can be used to set the minimum execution duration in seconds " -"that is considered \"slow\". When debug mode is enabled, \"slow\" callbacks " -"are logged." -msgstr "" - -#: library/asyncio-eventloop.rst:1530 -msgid "Default value is 100 milliseconds." -msgstr "" - -# suit un : -#: library/asyncio-eventloop.rst:1534 -msgid "The :ref:`debug mode of asyncio `." -msgstr "le :ref:`mode debogage d'asyncio `." - -#: library/asyncio-eventloop.rst:1538 -#, fuzzy -msgid "Running subprocesses" -msgstr "Exécution de sous-processus" - -#: library/asyncio-eventloop.rst:1540 -msgid "" -"Methods described in this subsections are low-level. In regular async/await " -"code consider using the high-level :func:`asyncio.create_subprocess_shell` " -"and :func:`asyncio.create_subprocess_exec` convenience functions instead." -msgstr "" -"Les méthodes décrites dans ces sous-sections sont de bas niveau. Dans le " -"code *async/await* normal, pensez à utiliser les fonctions de commodité de " -"haut niveau :func:`asyncio.create_subprocess_shell` " -"et :func:`asyncio.create_subprocess_exec` à la place." - -# suit un : -#: library/asyncio-eventloop.rst:1547 -msgid "" -"On Windows, the default event loop :class:`ProactorEventLoop` supports " -"subprocesses, whereas :class:`SelectorEventLoop` does not. " -"See :ref:`Subprocess Support on Windows ` for " -"details." -msgstr "" -"sous Windows, la boucle d'événements par défaut :class:`ProactorEventLoop` " -"prend en charge les sous-processus, contrairement " -"à :class:`SelectorEventLoop`. Voir :ref:`Prise en charge des sous-processus " -"sous Windows ` pour plus de détails." - -#: library/asyncio-eventloop.rst:1559 -msgid "" -"Create a subprocess from one or more string arguments specified by *args*." -msgstr "" -"Crée un sous-processus à partir d'un ou plusieurs arguments de chaîne " -"spécifiés par *args*." - -#: library/asyncio-eventloop.rst:1562 -msgid "*args* must be a list of strings represented by:" -msgstr "*args* doit être une liste de chaînes représentée par :" - -#: library/asyncio-eventloop.rst:1564 -msgid ":class:`str`;" -msgstr ":class:`str` ;" - -#: library/asyncio-eventloop.rst:1565 -msgid "" -"or :class:`bytes`, encoded to the :ref:`filesystem encoding `." -msgstr "" -"ou :class:`bytes`, encodés selon l':ref:`encodage du système de fichiers " -"`." - -#: library/asyncio-eventloop.rst:1568 -msgid "" -"The first string specifies the program executable, and the remaining strings " -"specify the arguments. Together, string arguments form the ``argv`` of the " -"program." -msgstr "" -"La première chaîne spécifie l'exécutable du programme et les chaînes " -"restantes spécifient les arguments. Ensemble, les arguments de chaîne " -"forment le ``argv`` du programme." - -#: library/asyncio-eventloop.rst:1572 -msgid "" -"This is similar to the standard library :class:`subprocess.Popen` class " -"called with ``shell=False`` and the list of strings passed as the first " -"argument; however, where :class:`~subprocess.Popen` takes a single argument " -"which is list of strings, *subprocess_exec* takes multiple string arguments." -msgstr "" -"C'est similaire à la classe standard de la " -"bibliothèque :class:`subprocess.Popen` appelée avec ``shell=False`` et la " -"liste des chaînes passées en premier argument ; cependant, " -"où :class:`~subprocess.Popen` prend un seul argument qui est une liste de " -"chaînes, *subprocess_exec* prend plusieurs arguments de chaînes." - -#: library/asyncio-eventloop.rst:1578 -msgid "" -"The *protocol_factory* must be a callable returning a subclass of " -"the :class:`asyncio.SubprocessProtocol` class." -msgstr "" -"Le *protocol_factory* doit être un appelable renvoyant une sous-classe de la " -"classe :class:`asyncio.SubprocessProtocol`." - -#: library/asyncio-eventloop.rst:1581 -msgid "Other parameters:" -msgstr "Autres paramètres :" - -#: library/asyncio-eventloop.rst:1583 -msgid "*stdin* can be any of these:" -msgstr "*stdin* peut être l'un de ces éléments :" - -#: library/asyncio-eventloop.rst:1585 library/asyncio-eventloop.rst:1596 -#: library/asyncio-eventloop.rst:1606 -msgid "a file-like object" -msgstr "" - -#: library/asyncio-eventloop.rst:1586 -msgid "" -"an existing file descriptor (a positive integer), for example those created " -"with :meth:`os.pipe`" -msgstr "" - -#: library/asyncio-eventloop.rst:1587 library/asyncio-eventloop.rst:1597 -#: library/asyncio-eventloop.rst:1607 -msgid "" -"the :const:`subprocess.PIPE` constant (default) which will create a new pipe " -"and connect it," -msgstr "" -"la constante :const:`subprocess.PIPE` (par défaut) qui va créer un nouveau " -"tube et le connecter," - -#: library/asyncio-eventloop.rst:1589 library/asyncio-eventloop.rst:1599 -#: library/asyncio-eventloop.rst:1609 -msgid "" -"the value ``None`` which will make the subprocess inherit the file " -"descriptor from this process" -msgstr "" -"la valeur ``None`` qui fera que le sous-processus héritera du descripteur de " -"fichier de ce processus," - -#: library/asyncio-eventloop.rst:1591 library/asyncio-eventloop.rst:1601 -#: library/asyncio-eventloop.rst:1611 -msgid "" -"the :const:`subprocess.DEVNULL` constant which indicates that the " -"special :data:`os.devnull` file will be used" -msgstr "" -"la constante :const:`subprocess.DEVNULL` qui indique que le fichier " -"spécial :data:`os.devnull` sera utilisé." - -#: library/asyncio-eventloop.rst:1594 -msgid "*stdout* can be any of these:" -msgstr "*stdout* peut être l'un de ces éléments :" - -#: library/asyncio-eventloop.rst:1604 -msgid "*stderr* can be any of these:" -msgstr "*stderr* peut être l'un de ces éléments :" - -#: library/asyncio-eventloop.rst:1613 -msgid "" -"the :const:`subprocess.STDOUT` constant which will connect the standard " -"error stream to the process' standard output stream" -msgstr "" -"la constante :const:`subprocess.STDOUT` qui connectera le flux d'erreur " -"standard au flux de sortie standard du processus." - -#: library/asyncio-eventloop.rst:1616 -msgid "" -"All other keyword arguments are passed to :class:`subprocess.Popen` without " -"interpretation, except for *bufsize*, *universal_newlines*, *shell*, *text*, " -"*encoding* and *errors*, which should not be specified at all." -msgstr "" -"Tous les autres arguments nommés sont passés à :class:`subprocess.Popen` " -"sans interprétation, à l'exception de *bufsize*, *universal_newlines*, " -"*shell*, *text*, *encoding* et *errors*, qui ne doivent pas être spécifiés " -"du tout." - -#: library/asyncio-eventloop.rst:1621 -msgid "" -"The ``asyncio`` subprocess API does not support decoding the streams as " -"text. :func:`bytes.decode` can be used to convert the bytes returned from " -"the stream to text." -msgstr "" -"L'API de sous-processus ``asyncio`` ne prend pas en charge le décodage des " -"flux sous forme de texte. :func:`bytes.decode` peut être utilisée pour " -"convertir les octets renvoyés par le flux en texte." - -#: library/asyncio-eventloop.rst:1625 -msgid "" -"If a file-like object passed as *stdin*, *stdout* or *stderr* represents a " -"pipe, then the other side of this pipe should be registered " -"with :meth:`~loop.connect_write_pipe` or :meth:`~loop.connect_read_pipe` for " -"use with the event loop." -msgstr "" - -#: library/asyncio-eventloop.rst:1630 -msgid "" -"See the constructor of the :class:`subprocess.Popen` class for documentation " -"on other arguments." -msgstr "" -"Voir le constructeur de la classe :class:`subprocess.Popen` pour la " -"documentation sur les autres arguments." - -#: library/asyncio-eventloop.rst:1633 -msgid "" -"Returns a pair of ``(transport, protocol)``, where *transport* conforms to " -"the :class:`asyncio.SubprocessTransport` base class and *protocol* is an " -"object instantiated by the *protocol_factory*." -msgstr "" -"Renvoie une paire ``(transport, protocol)``, où *transport* est conforme à " -"la classe de base :class:`asyncio.SubprocessTransport` et *protocol* est un " -"objet instancié par *protocol_factory*." - -#: library/asyncio-eventloop.rst:1637 library/asyncio-eventloop.rst:1663 -msgid "" -"If the transport is closed or is garbage collected, the child process is " -"killed if it is still running." -msgstr "" - -#: library/asyncio-eventloop.rst:1645 -msgid "" -"Create a subprocess from *cmd*, which can be a :class:`str` or " -"a :class:`bytes` string encoded to the :ref:`filesystem encoding `, using the platform's \"shell\" syntax." -msgstr "" -"Crée un sous-processus à partir de *cmd*, qui peut être une " -"chaîne :class:`str` ou une chaîne :class:`bytes` encodée avec " -"l':ref:`encodage du système de fichiers `, en utilisant " -"la syntaxe \"shell\" de la plate-forme." - -#: library/asyncio-eventloop.rst:1650 -msgid "" -"This is similar to the standard library :class:`subprocess.Popen` class " -"called with ``shell=True``." -msgstr "" -"C'est similaire à la classe standard de la " -"bibliothèque :class:`subprocess.Popen` appelée avec ``shell=True``." - -#: library/asyncio-eventloop.rst:1653 -msgid "" -"The *protocol_factory* must be a callable returning a subclass of " -"the :class:`SubprocessProtocol` class." -msgstr "" -"Le *protocol_factory* doit être un appelable renvoyant une sous-classe de la " -"classe :class:`SubprocessProtocol`." - -#: library/asyncio-eventloop.rst:1656 -msgid "" -"See :meth:`~loop.subprocess_exec` for more details about the remaining " -"arguments." -msgstr "" -"Voir :meth:`~loop.subprocess_exec` pour plus de détails sur les arguments " -"restants." - -#: library/asyncio-eventloop.rst:1659 -msgid "" -"Returns a pair of ``(transport, protocol)``, where *transport* conforms to " -"the :class:`SubprocessTransport` base class and *protocol* is an object " -"instantiated by the *protocol_factory*." -msgstr "" -"Renvoie une paire ``(transport, protocol)``, où *transport* est conforme à " -"la classe de base :class:`SubprocessTransport` et *protocol* est un objet " -"instancié par *protocol_factory*." - -# suit un : -#: library/asyncio-eventloop.rst:1667 -msgid "" -"It is the application's responsibility to ensure that all whitespace and " -"special characters are quoted appropriately to avoid `shell injection " -"`_ " -"vulnerabilities. The :func:`shlex.quote` function can be used to properly " -"escape whitespace and special characters in strings that are going to be " -"used to construct shell commands." -msgstr "" -"il est de la responsabilité de l'application de s'assurer que tous les " -"espaces blancs et les caractères spéciaux sont correctement échappés pour " -"éviter les vulnérabilités d'`injection de shell `_. La fonction :func:`shlex.quote` " -"peut être utilisée pour échapper correctement les espaces blancs et les " -"caractères spéciaux dans les chaînes qui seront utilisées pour construire " -"des commandes shell." - -#: library/asyncio-eventloop.rst:1676 -#, fuzzy -msgid "Callback handles" -msgstr "Fonctions de rappel sur des descripteurs" - -#: library/asyncio-eventloop.rst:1680 -msgid "" -"A callback wrapper object returned " -"by :meth:`loop.call_soon`, :meth:`loop.call_soon_threadsafe`." -msgstr "" -"Objet encapsulant une fonction de rappel renvoyé " -"par :meth:`loop.call_soon`, :meth:`loop.call_soon_threadsafe`." - -#: library/asyncio-eventloop.rst:1685 -#, fuzzy -msgid "" -"Return the :class:`contextvars.Context` object associated with the handle." -msgstr "Renvoie la boucle d'événement associée à l'objet serveur." - -#: library/asyncio-eventloop.rst:1692 -msgid "" -"Cancel the callback. If the callback has already been canceled or executed, " -"this method has no effect." -msgstr "" -"Annule le rappel. Si le rappel a déjà été annulé ou exécuté, cette méthode " -"n'a aucun effet." - -#: library/asyncio-eventloop.rst:1697 -msgid "Return ``True`` if the callback was cancelled." -msgstr "Renvoie ``True`` si la fonction de rappel a été annulée." - -#: library/asyncio-eventloop.rst:1703 -msgid "" -"A callback wrapper object returned by :meth:`loop.call_later`, " -"and :meth:`loop.call_at`." -msgstr "" -"Objet encapsulant la fonction de rappel renvoyé par :meth:`loop.call_later` " -"et :meth:`loop.call_at`." - -#: library/asyncio-eventloop.rst:1706 -msgid "This class is a subclass of :class:`Handle`." -msgstr "Cette classe est une sous-classe de :class:`Handle`." - -#: library/asyncio-eventloop.rst:1710 -msgid "Return a scheduled callback time as :class:`float` seconds." -msgstr "" -"Renvoie une heure de rappel planifiée sous forme de :class:`float` secondes." - -#: library/asyncio-eventloop.rst:1712 -msgid "" -"The time is an absolute timestamp, using the same time reference " -"as :meth:`loop.time`." -msgstr "" -"L'heure est un horodatage absolu, utilisant la même référence de temps " -"que :meth:`loop.time`." - -#: library/asyncio-eventloop.rst:1719 -#, fuzzy -msgid "Server objects" -msgstr "Objets Serveur" - -#: library/asyncio-eventloop.rst:1721 -msgid "" -"Server objects are created " -"by :meth:`loop.create_server`, :meth:`loop.create_unix_server`, :func:`start_server`, " -"and :func:`start_unix_server` functions." -msgstr "" -"Les objets serveur sont créés par les " -"fonctions :meth:`loop.create_server`, :meth:`loop.create_unix_server`, :func:`start_server` " -"et :func:`start_unix_server`." - -#: library/asyncio-eventloop.rst:1725 -#, fuzzy -msgid "Do not instantiate the :class:`Server` class directly." -msgstr "N'instanciez pas la classe directement." - -#: library/asyncio-eventloop.rst:1729 -msgid "" -"*Server* objects are asynchronous context managers. When used in an ``async " -"with`` statement, it's guaranteed that the Server object is closed and not " -"accepting new connections when the ``async with`` statement is completed::" -msgstr "" -"Les objets *Server* sont des gestionnaires de contexte asynchrones. " -"Lorsqu'il est utilisé dans une instruction ``async with``, il est garanti " -"que l'objet Serveur est fermé et n'accepte pas de nouvelle connexion lorsque " -"l'instruction ``async with`` est terminée ::" - -# suit un : -#: library/asyncio-eventloop.rst:1742 -msgid "Server object is an asynchronous context manager since Python 3.7." -msgstr "" -"l'objet serveur est un gestionnaire de contexte asynchrone depuis Python 3.7." - -#: library/asyncio-eventloop.rst:1745 -msgid "" -"This class was exposed publicly as ``asyncio.Server`` in Python 3.9.11, " -"3.10.3 and 3.11." -msgstr "" - -#: library/asyncio-eventloop.rst:1750 -msgid "" -"Stop serving: close listening sockets and set the :attr:`sockets` attribute " -"to ``None``." -msgstr "" -"Arrête le serveur : ferme les connecteurs d'écoute et définit " -"l'attribut :attr:`sockets` à ``None``." - -#: library/asyncio-eventloop.rst:1753 -msgid "" -"The sockets that represent existing incoming client connections are left " -"open." -msgstr "" -"Les connecteurs qui représentent les connexions client entrantes existantes " -"restent ouvertes." - -#: library/asyncio-eventloop.rst:1756 -#, fuzzy -msgid "" -"The server is closed asynchronously; use the :meth:`wait_closed` coroutine " -"to wait until the server is closed (and no more connections are active)." -msgstr "" -"Le serveur est fermé de manière asynchrone, utilisez la " -"coroutine :meth:`wait_closed` pour attendre que le serveur soit fermé." - -#: library/asyncio-eventloop.rst:1762 -#, fuzzy -msgid "Close all existing incoming client connections." -msgstr "" -"Les connecteurs qui représentent les connexions client entrantes existantes " -"restent ouvertes." - -#: library/asyncio-eventloop.rst:1764 -msgid "" -"Calls :meth:`~asyncio.BaseTransport.close` on all associated transports." -msgstr "" - -#: library/asyncio-eventloop.rst:1767 -msgid "" -":meth:`close` should be called before :meth:`close_clients` when closing the " -"server to avoid races with new clients connecting." -msgstr "" - -#: library/asyncio-eventloop.rst:1774 -msgid "" -"Close all existing incoming client connections immediately, without waiting " -"for pending operations to complete." -msgstr "" - -#: library/asyncio-eventloop.rst:1777 -msgid "" -"Calls :meth:`~asyncio.WriteTransport.abort` on all associated transports." -msgstr "" - -#: library/asyncio-eventloop.rst:1780 -msgid "" -":meth:`close` should be called before :meth:`abort_clients` when closing the " -"server to avoid races with new clients connecting." -msgstr "" - -#: library/asyncio-eventloop.rst:1787 -msgid "Return the event loop associated with the server object." -msgstr "Renvoie la boucle d'événement associée à l'objet serveur." - -#: library/asyncio-eventloop.rst:1794 -msgid "Start accepting connections." -msgstr "Commence à accepter les connexions." - -#: library/asyncio-eventloop.rst:1796 -msgid "" -"This method is idempotent, so it can be called when the server is already " -"serving." -msgstr "" -"Cette méthode est idempotente, elle peut donc être appelée lorsque le " -"serveur est déjà en service." - -#: library/asyncio-eventloop.rst:1799 -msgid "" -"The *start_serving* keyword-only parameter to :meth:`loop.create_server` " -"and :meth:`asyncio.start_server` allows creating a Server object that is not " -"accepting connections initially. In this case ``Server.start_serving()``, " -"or :meth:`Server.serve_forever` can be used to make the Server start " -"accepting connections." -msgstr "" -"Le paramètre nommé *start_serving* de :meth:`loop.create_server` " -"et :meth:`asyncio.start_server` permet de créer un objet *Server* qui " -"n'accepte pas les connexions initialement. Dans ce cas, " -"``Server.start_serving()`` ou :meth:`Server.serve_forever` peut être " -"utilisée pour que le serveur commence à accepter les connexions." - -#: library/asyncio-eventloop.rst:1811 -msgid "" -"Start accepting connections until the coroutine is cancelled. Cancellation " -"of ``serve_forever`` task causes the server to be closed." -msgstr "" -"Commence à accepter les connexions jusqu'à ce que la coroutine soit annulée. " -"L'annulation de la tâche ``serve_forever`` provoque la fermeture du serveur." - -#: library/asyncio-eventloop.rst:1815 -msgid "" -"This method can be called if the server is already accepting connections. " -"Only one ``serve_forever`` task can exist per one *Server* object." -msgstr "" -"Cette méthode peut être appelée si le serveur accepte déjà les connexions. " -"Une seule tâche ``serve_forever`` peut exister par objet *Server*." - -#: library/asyncio-eventloop.rst:1837 -msgid "Return ``True`` if the server is accepting new connections." -msgstr "Renvoie ``True`` si le serveur accepte de nouvelles connexions." - -#: library/asyncio-eventloop.rst:1844 -#, fuzzy -msgid "" -"Wait until the :meth:`close` method completes and all active connections " -"have finished." -msgstr "Attend que la méthode :meth:`close` se termine." - -#: library/asyncio-eventloop.rst:1849 -#, fuzzy -msgid "" -"List of socket-like objects, ``asyncio.trsock.TransportSocket``, which the " -"server is listening on." -msgstr "" -"Liste les objets :class:`socket.socket` sur lesquels le serveur écoute." - -# vulnérabilités -#: library/asyncio-eventloop.rst:1852 -msgid "" -"Prior to Python 3.7 ``Server.sockets`` used to return an internal list of " -"server sockets directly. In 3.7 a copy of that list is returned." -msgstr "" -"avant Python 3.7, ``Server.sockets`` renvoyait directement une liste interne " -"de sockets de serveur. En 3.7, une copie de cette liste est renvoyée." - -#: library/asyncio-eventloop.rst:1862 -#, fuzzy -msgid "Event loop implementations" -msgstr "Implémentations de boucle d'évènements" - -#: library/asyncio-eventloop.rst:1864 -msgid "" -"asyncio ships with two different event loop " -"implementations: :class:`SelectorEventLoop` and :class:`ProactorEventLoop`." -msgstr "" -"*asyncio* est livré avec deux implémentations de boucles d'événements " -"différentes : :class:`SelectorEventLoop` et :class:`ProactorEventLoop`." - -#: library/asyncio-eventloop.rst:1867 -#, fuzzy -msgid "By default asyncio is configured to use :class:`EventLoop`." -msgstr "" -"Par défaut, *asyncio* est configuré pour utiliser :class:`SelectorEventLoop` " -"sous Unix et :class:`ProactorEventLoop` sous Windows." - -#: library/asyncio-eventloop.rst:1872 -#, fuzzy -msgid "" -"A subclass of :class:`AbstractEventLoop` based on the :mod:`selectors` " -"module." -msgstr "Boucle d'événements basée sur le module :mod:`selectors`." - -#: library/asyncio-eventloop.rst:1875 -msgid "" -"Uses the most efficient *selector* available for the given platform. It is " -"also possible to manually configure the exact selector implementation to be " -"used::" -msgstr "" -"Utilise le *sélecteur* le plus efficace disponible pour la plate-forme " -"donnée. Il est également possible de configurer manuellement " -"l'implémentation exacte du sélecteur à utiliser ::" - -#: library/asyncio-eventloop.rst:1894 -#, fuzzy -msgid "" -"A subclass of :class:`AbstractEventLoop` for Windows that uses \"I/O " -"Completion Ports\" (IOCP)." -msgstr "" -"Boucle d'événements pour Windows qui utilise des \"I/O Completion Ports\" " -"(IOCP)." - -#: library/asyncio-eventloop.rst:1900 -#, fuzzy -msgid "" -"`MSDN documentation on I/O Completion Ports `_." -msgstr "" -"`Documentation MSDN sur les ports de saisie semi-automatique d’E/S `_." - -#: library/asyncio-eventloop.rst:1905 -msgid "" -"An alias to the most efficient available subclass " -"of :class:`AbstractEventLoop` for the given platform." -msgstr "" - -#: library/asyncio-eventloop.rst:1908 -#, fuzzy -msgid "" -"It is an alias to :class:`SelectorEventLoop` on Unix " -"and :class:`ProactorEventLoop` on Windows." -msgstr "" -"Par défaut, *asyncio* est configuré pour utiliser :class:`SelectorEventLoop` " -"sous Unix et :class:`ProactorEventLoop` sous Windows." - -#: library/asyncio-eventloop.rst:1914 -msgid "Abstract base class for asyncio-compliant event loops." -msgstr "" -"Classe abstraite pour les boucles d'événements conforme à *asyncio*." - -#: library/asyncio-eventloop.rst:1916 -msgid "" -"The :ref:`asyncio-event-loop-methods` section lists all methods that an " -"alternative implementation of ``AbstractEventLoop`` should have defined." -msgstr "" -"La section :ref:`asyncio-event-loop-methods` liste toutes les méthodes " -"qu'une implémentation alternative de ``AbstractEventLoop`` doit définir." - -#: library/asyncio-eventloop.rst:1922 -msgid "Examples" -msgstr "Exemples" - -#: library/asyncio-eventloop.rst:1924 -msgid "" -"Note that all examples in this section **purposefully** show how to use the " -"low-level event loop APIs, such as :meth:`loop.run_forever` " -"and :meth:`loop.call_soon`. Modern asyncio applications rarely need to be " -"written this way; consider using the high-level functions " -"like :func:`asyncio.run`." -msgstr "" -"Notez que tous les exemples de cette section montrent **à dessein** comment " -"utiliser les API de boucle d'événement de bas niveau, telles " -"que :meth:`loop.run_forever` et :meth:`loop.call_soon`. Les applications " -"*asyncio* modernes ont rarement besoin d'être écrites de cette façon ; " -"pensez à utiliser les fonctions de haut niveau comme :func:`asyncio.run`." - -#: library/asyncio-eventloop.rst:1934 -msgid "Hello World with call_soon()" -msgstr "\"Hello World\" avec ``call_soon()``" - -#: library/asyncio-eventloop.rst:1936 -msgid "" -"An example using the :meth:`loop.call_soon` method to schedule a callback. " -"The callback displays ``\"Hello World\"`` and then stops the event loop::" -msgstr "" -"Un exemple utilisant la méthode :meth:`loop.call_soon` pour programmer un " -"rappel. Le rappel affiche ``\"Hello World\"`` puis arrête la boucle " -"d'événements ::" - -# suit un : -#: library/asyncio-eventloop.rst:1960 -msgid "" -"A similar :ref:`Hello World ` example created with a coroutine " -"and the :func:`run` function." -msgstr "" -"un exemple similaire de :ref:`Hello World ` créé avec une " -"coroutine et la fonction :func:`run`." - -#: library/asyncio-eventloop.rst:1967 -msgid "Display the current date with call_later()" -msgstr "Affichage de la date actuelle avec ``call_later()``" - -#: library/asyncio-eventloop.rst:1969 -msgid "" -"An example of a callback displaying the current date every second. The " -"callback uses the :meth:`loop.call_later` method to reschedule itself after " -"5 seconds, and then stops the event loop::" -msgstr "" -"Un exemple de rappel affichant la date actuelle toutes les secondes. Le " -"rappel utilise la méthode :meth:`loop.call_later` pour se re-planifier après " -"5 secondes, puis arrête la boucle d'événements ::" - -# suit un : -#: library/asyncio-eventloop.rst:1997 -msgid "" -"A similar :ref:`current date ` example created with a " -"coroutine and the :func:`run` function." -msgstr "" -"un exemple similaire de :ref:`date actuelle ` créé " -"avec une coroutine et la fonction :func:`run`." - -#: library/asyncio-eventloop.rst:2004 -msgid "Watch a file descriptor for read events" -msgstr "Surveillance des événements de lecture pour un descripteur de fichier" - -#: library/asyncio-eventloop.rst:2006 -msgid "" -"Wait until a file descriptor received some data using " -"the :meth:`loop.add_reader` method and then close the event loop::" -msgstr "" -"Attend qu'un descripteur de fichier reçoive des données en utilisant la " -"méthode :meth:`loop.add_reader` puis ferme la boucle d'événements ::" - -# suit un : -#: library/asyncio-eventloop.rst:2044 -msgid "" -"A similar :ref:`example ` using " -"transports, protocols, and the :meth:`loop.create_connection` method." -msgstr "" -"un :ref:`exemple ` similaire utilisant " -"les transports, les protocoles et la méthode :meth:`loop.create_connection`," - -# suit un : -#: library/asyncio-eventloop.rst:2048 -msgid "" -"Another similar :ref:`example ` " -"using the high-level :func:`asyncio.open_connection` function and streams." -msgstr "" -"un autre :ref:`exemple ` " -"utilisant la fonction et les flux de haut " -"niveau :func:`asyncio.open_connection`." - -#: library/asyncio-eventloop.rst:2056 -msgid "Set signal handlers for SIGINT and SIGTERM" -msgstr "Gestion des signaux *SIGINT* et *SIGTERM*" - -#: library/asyncio-eventloop.rst:2058 -#, fuzzy -msgid "(This ``signal`` example only works on Unix.)" -msgstr "(Cet exemple ne fonctionne que sur Unix.)" - -#: library/asyncio-eventloop.rst:2060 -#, fuzzy -msgid "" -"Register handlers for signals :const:`~signal.SIGINT` " -"and :const:`~signal.SIGTERM` using the :meth:`loop.add_signal_handler` " -"method::" -msgstr "" -"Enregistre des gestionnaires pour les signaux :py:data:`SIGINT` " -"et :py:data:`SIGTERM` en utilisant la " -"méthode :meth:`loop.add_signal_handler` ::" - -#~ msgid "" -#~ "The optional positional *args* will be passed to the callback when it is " -#~ "called. If you want the callback to be called with keyword arguments " -#~ "use :func:`functools.partial`." -#~ msgstr "" -#~ "L'argument positionnel facultatif *args* sera transmis au rappel " -#~ "lorsqu'il sera appelé. Si vous voulez que le rappel soit appelé avec des " -#~ "arguments nommés, utilisez :func:`functools.partial`." - -# suit un : -#~ msgid "" -#~ "In Python versions 3.10.0--3.10.8 and 3.11.0 this function (and other " -#~ "functions which use it implicitly) emitted a :exc:`DeprecationWarning` if " -#~ "there was no running event loop, even if the current loop was set on the " -#~ "policy. In Python versions 3.10.9, 3.11.1 and 3.12 they emit " -#~ "a :exc:`DeprecationWarning` if there is no running event loop and no " -#~ "current loop is set. In some future Python release this will become an " -#~ "error." -#~ msgstr "" -#~ "dans les versions Python 3.10.0–3.10.8 et 3.11.0, cette fonction (et " -#~ "d'autres fonctions qui l'utilisent implicitement) levait " -#~ "un :exc:`DeprecationWarning` s'il n'y avait pas de boucle d'événements en " -#~ "cours d'exécution, même si la boucle actuelle était définie dans la " -#~ "politique. Dans les versions Python 3.10.9, 3.11.1 et 3.12, elles lèvent " -#~ "un :exc:`DeprecationWarning` s'il n'y a pas de boucle d'événements en " -#~ "cours et qu'aucune boucle actuelle n'est définie. Dans une future version " -#~ "de Python, cela deviendra une erreur." - -#~ msgid ":ref:`Availability `: Unix." -#~ msgstr ":ref:`Disponibilité ` : Unix." - -#~ msgid "" -#~ "The *executor* argument should be an :class:`concurrent.futures.Executor` " -#~ "instance. The default executor is used if *executor* is ``None``." -#~ msgstr "" -#~ "L'argument *executor* doit être une " -#~ "instance :class:`concurrent.futures.Executor`. L'exécuteur par défaut est " -#~ "utilisé si *executor* vaut ``None``." - -#~ msgid "" -#~ "a file-like object representing a pipe to be connected to the " -#~ "subprocess's standard input stream using :meth:`~loop.connect_write_pipe`" -#~ msgstr "" -#~ "un objet de type fichier représentant un tube à connecter au flux " -#~ "d'entrée standard du sous-processus en " -#~ "utilisant :meth:`~loop.connect_write_pipe`," - -#~ msgid "" -#~ "a file-like object representing a pipe to be connected to the " -#~ "subprocess's standard output stream using :meth:`~loop.connect_write_pipe`" -#~ msgstr "" -#~ "un objet de type fichier représentant un tube à connecter au flux de " -#~ "sortie standard du sous-processus en " -#~ "utilisant :meth:`~loop.connect_write_pipe`," - -#~ msgid "" -#~ "a file-like object representing a pipe to be connected to the " -#~ "subprocess's standard error stream using :meth:`~loop.connect_write_pipe`" -#~ msgstr "" -#~ "un objet de type fichier représentant un tube à connecter au flux " -#~ "d'erreurs standard du sous-processus en " -#~ "utilisant :meth:`~loop.connect_write_pipe`," - -#~ msgid ":ref:`Availability `: Unix, Windows." -#~ msgstr ":ref:`Disponibilité ` : Unix, Windows." - -#~ msgid ":ref:`Availability `: Windows." -#~ msgstr ":ref:`Disponibilité ` : Windows." diff --git a/library/asyncio-exceptions.po b/library/asyncio-exceptions.po deleted file mode 100644 index c7804c276e..0000000000 --- a/library/asyncio-exceptions.po +++ /dev/null @@ -1,117 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-06-11 22:40+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-exceptions.rst:8 -msgid "Exceptions" -msgstr "Exceptions" - -#: library/asyncio-exceptions.rst:10 -msgid "**Source code:** :source:`Lib/asyncio/exceptions.py`" -msgstr "**Code source :** :source:`Lib/asyncio/exceptions.py`" - -#: library/asyncio-exceptions.rst:16 -msgid "" -"A deprecated alias of :exc:`TimeoutError`, raised when the operation has " -"exceeded the given deadline." -msgstr "" -"Alias obsolète de :exc:`TimeoutError`, levée lorsque l'opération a dépassé " -"le délai donné." - -# suit un : -#: library/asyncio-exceptions.rst:21 -msgid "This class was made an alias of :exc:`TimeoutError`." -msgstr "cette classe est devenue un alias de :exc:`TimeoutError`." - -#: library/asyncio-exceptions.rst:26 -msgid "The operation has been cancelled." -msgstr "L'opération a été annulée." - -#: library/asyncio-exceptions.rst:28 -msgid "" -"This exception can be caught to perform custom operations when asyncio Tasks " -"are cancelled. In almost all situations the exception must be re-raised." -msgstr "" -"Cette exception peut être interceptée pour effectuer des opérations " -"personnalisées lorsque des tâches asynchrones sont annulées. Dans presque " -"toutes les situations, l'exception doit être relancée." - -#: library/asyncio-exceptions.rst:34 -#, fuzzy -msgid "" -":exc:`CancelledError` is now a subclass of :class:`BaseException` rather " -"than :class:`Exception`." -msgstr "" -":exc:`CancelledError` est maintenant une sous-classe " -"de :class:`BaseException`." - -#: library/asyncio-exceptions.rst:39 -msgid "Invalid internal state of :class:`Task` or :class:`Future`." -msgstr "État interne non valide de :class:`Task` ou :class:`Future`." - -#: library/asyncio-exceptions.rst:41 -msgid "" -"Can be raised in situations like setting a result value for a *Future* " -"object that already has a result value set." -msgstr "" -"Peut être levée dans des situations telles que la définition d'une valeur de " -"résultat pour un objet *Future* qui a déjà une valeur de résultat définie." - -#: library/asyncio-exceptions.rst:47 -msgid "" -"The \"sendfile\" syscall is not available for the given socket or file type." -msgstr "" -"L'appel système *sendfile* n'est pas disponible pour le connecteur ou le " -"type de fichier donné." - -#: library/asyncio-exceptions.rst:50 -msgid "A subclass of :exc:`RuntimeError`." -msgstr "Sous-classe de :exc:`RuntimeError`." - -#: library/asyncio-exceptions.rst:55 -msgid "The requested read operation did not complete fully." -msgstr "L'opération de lecture demandée s'est terminée avant d'être complète." - -#: library/asyncio-exceptions.rst:57 -msgid "Raised by the :ref:`asyncio stream APIs`." -msgstr "Levée par les API de :ref:`flux asyncio `." - -#: library/asyncio-exceptions.rst:59 -msgid "This exception is a subclass of :exc:`EOFError`." -msgstr "Cette exception est une sous-classe de :exc:`EOFError`." - -#: library/asyncio-exceptions.rst:63 -msgid "The total number (:class:`int`) of expected bytes." -msgstr "Nombre total (:class:`int`) d'octets attendus." - -#: library/asyncio-exceptions.rst:67 -msgid "A string of :class:`bytes` read before the end of stream was reached." -msgstr "" -"Chaîne de :class:`bytes` lue avant que la fin du flux ne soit atteinte." - -#: library/asyncio-exceptions.rst:72 -msgid "Reached the buffer size limit while looking for a separator." -msgstr "" -"La limite de taille de tampon a été atteinte lors de la recherche d'un " -"séparateur." - -#: library/asyncio-exceptions.rst:74 -msgid "Raised by the :ref:`asyncio stream APIs `." -msgstr "Levée par les API :ref:`flux asyncio `." - -#: library/asyncio-exceptions.rst:78 -msgid "The total number of to be consumed bytes." -msgstr "Nombre total d'octets à consommer." diff --git a/library/asyncio-extending.po b/library/asyncio-extending.po deleted file mode 100644 index 513e481aa4..0000000000 --- a/library/asyncio-extending.po +++ /dev/null @@ -1,192 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-06-17 19:00+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-extending.rst:6 -msgid "Extending" -msgstr "Extension" - -#: library/asyncio-extending.rst:8 -msgid "" -"The main direction for :mod:`asyncio` extending is writing custom *event " -"loop* classes. Asyncio has helpers that could be used to simplify this task." -msgstr "" -"La direction principale pour l'extension d':mod:`asyncio` est l'écriture de " -"classes *event loop* personnalisées. *Asyncio* a des assistants qui peuvent " -"être utilisés pour simplifier cette tâche." - -# suit un : -#: library/asyncio-extending.rst:13 -msgid "" -"Third-parties should reuse existing asyncio code with caution, a new Python " -"version is free to break backward compatibility in *internal* part of API." -msgstr "" -"la réutilisation du code asynchrone existant doit se faire avec prudence, " -"une nouvelle version de Python est libre de rompre la compatibilité " -"descendante dans la partie *interne* de l'API." - -#: library/asyncio-extending.rst:19 -msgid "Writing a Custom Event Loop" -msgstr "Écriture d'une boucle d'événements personnalisée" - -#: library/asyncio-extending.rst:21 -msgid "" -":class:`asyncio.AbstractEventLoop` declares very many methods. Implementing " -"all them from scratch is a tedious job." -msgstr "" -":class:`asyncio.AbstractEventLoop` déclare de très nombreuses méthodes. Les " -"mettre en œuvre à partir de zéro est un travail fastidieux." - -#: library/asyncio-extending.rst:24 -msgid "" -"A loop can get many common methods implementation for free by inheriting " -"from :class:`asyncio.BaseEventLoop`." -msgstr "" -"Une boucle d'événements peut obtenir gratuitement l'implémentation de " -"nombreuses méthodes courantes en héritant de :class:`asyncio.BaseEventLoop`." - -#: library/asyncio-extending.rst:27 -msgid "" -"In turn, the successor should implement a bunch of *private* methods " -"declared but not implemented in :class:`asyncio.BaseEventLoop`." -msgstr "" -"Le successeur doit, pour ce qui le concerne, implémenter un ensemble de " -"méthodes *privées* déclarées mais non implémentées " -"dans :class:`asyncio.BaseEventLoop`." - -#: library/asyncio-extending.rst:30 -msgid "" -"For example, ``loop.create_connection()`` checks arguments, resolves DNS " -"addresses, and calls ``loop._make_socket_transport()`` that should be " -"implemented by inherited class. The ``_make_socket_transport()`` method is " -"not documented and is considered as an *internal* API." -msgstr "" -"Par exemple, ``loop.create_connection()`` vérifie les arguments, résout les " -"adresses DNS et appelle ``loop._make_socket_transport()`` qui doit être " -"implémentée par la classe héritée. La méthode ``_make_socket_transport()`` " -"n'est pas documentée et est considérée comme une API *interne*." - -#: library/asyncio-extending.rst:38 -msgid "Future and Task private constructors" -msgstr "Constructeurs privés *Future* et *Task*" - -#: library/asyncio-extending.rst:40 -msgid "" -":class:`asyncio.Future` and :class:`asyncio.Task` should be never created " -"directly, please use corresponding :meth:`loop.create_future` " -"and :meth:`loop.create_task`, or :func:`asyncio.create_task` factories " -"instead." -msgstr "" -":class:`asyncio.Future` et :class:`asyncio.Task` ne doivent jamais être " -"créées directement, veuillez utiliser les " -"correspondances :meth:`loop.create_future` et :meth:`loop.create_task`, ou " -"les fabriques :func:`asyncio.create_task` à la place." - -#: library/asyncio-extending.rst:44 -msgid "" -"However, third-party *event loops* may *reuse* built-in future and task " -"implementations for the sake of getting a complex and highly optimized code " -"for free." -msgstr "" -"Cependant, les *boucles d'événements* tierces peuvent *réutiliser* les " -"implémentations de *Future* et de *Task* intégrées dans le but d'obtenir " -"gratuitement un code complexe et hautement optimisé." - -#: library/asyncio-extending.rst:47 -msgid "For this purpose the following, *private* constructors are listed:" -msgstr "À cette fin, les constructeurs *privés* suivants sont répertoriés :" - -#: library/asyncio-extending.rst:51 -msgid "Create a built-in future instance." -msgstr "Crée une instance de la *future* native." - -#: library/asyncio-extending.rst:53 -msgid "*loop* is an optional event loop instance." -msgstr "*loop* est une instance de boucle d'événements facultative." - -#: library/asyncio-extending.rst:57 -msgid "Create a built-in task instance." -msgstr "Crée une instance de la *Task* native." - -#: library/asyncio-extending.rst:59 -msgid "" -"*loop* is an optional event loop instance. The rest of arguments are " -"described in :meth:`loop.create_task` description." -msgstr "" -"*loop* est une instance de boucle d'événements facultative. Le reste des " -"arguments est décrit dans la description de :meth:`loop.create_task`." - -# suit un : -#: library/asyncio-extending.rst:64 -msgid "*context* argument is added." -msgstr "l'argument *contexte* a été ajouté." - -#: library/asyncio-extending.rst:69 -msgid "Task lifetime support" -msgstr "Prise en charge de la durée de vie des tâches" - -#: library/asyncio-extending.rst:71 -#, fuzzy -msgid "" -"A third party task implementation should call the following functions to " -"keep a task visible by :func:`asyncio.all_tasks` " -"and :func:`asyncio.current_task`:" -msgstr "" -"Une implémentation tierce de tâche doit appeler les fonctions suivantes pour " -"garder une tâche visible par :func:`asyncio.get_tasks` " -"et :func:`asyncio.current_task` :" - -#: library/asyncio-extending.rst:76 -msgid "Register a new *task* as managed by *asyncio*." -msgstr "Enregistre une nouvelle *tâche* comme gérée par *asyncio*." - -#: library/asyncio-extending.rst:78 -msgid "Call the function from a task constructor." -msgstr "Appelez la fonction à partir d'un constructeur de tâche." - -#: library/asyncio-extending.rst:82 -msgid "Unregister a *task* from *asyncio* internal structures." -msgstr "Désinscrit une *tâche* des structures internes *asyncio*." - -#: library/asyncio-extending.rst:84 -msgid "The function should be called when a task is about to finish." -msgstr "" -"La fonction doit être appelée lorsqu'une tâche est sur le point de se " -"terminer." - -#: library/asyncio-extending.rst:88 -msgid "Switch the current task to the *task* argument." -msgstr "Bascule la tâche en cours vers l'argument *task*." - -#: library/asyncio-extending.rst:90 -msgid "" -"Call the function just before executing a portion of embedded *coroutine* " -"(:meth:`coroutine.send` or :meth:`coroutine.throw`)." -msgstr "" -"Appelez la fonction juste avant d'exécuter une partie de la *coroutine* " -"intégrée (:meth:`coroutine.send` ou :meth:`coroutine.throw`)." - -#: library/asyncio-extending.rst:95 -msgid "Switch the current task back from *task* to ``None``." -msgstr "Rebascule la tâche en cours de *task* à ``None``." - -#: library/asyncio-extending.rst:97 -msgid "" -"Call the function just after :meth:`coroutine.send` " -"or :meth:`coroutine.throw` execution." -msgstr "" -"Appelez la fonction juste après l'exécution de :meth:`coroutine.send` " -"ou :meth:`coroutine.throw`." diff --git a/library/asyncio-future.po b/library/asyncio-future.po deleted file mode 100644 index 1e31b59c2d..0000000000 --- a/library/asyncio-future.po +++ /dev/null @@ -1,459 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-06-17 10:41+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-future.rst:8 -msgid "Futures" -msgstr "Futures" - -#: library/asyncio-future.rst:10 -msgid "" -"**Source code:** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/" -"base_futures.py`" -msgstr "" -"**Code source :** :source:`Lib/asyncio/futures.py`, :source:`Lib/asyncio/" -"base_futures.py`" - -#: library/asyncio-future.rst:15 -msgid "" -"*Future* objects are used to bridge **low-level callback-based code** with " -"high-level async/await code." -msgstr "" -"Les objets *Future* sont utilisés comme passerelles entre du **code bas " -"niveau basé sur des fonctions de rappel** et du code haut niveau utilisant " -"*async* et *await*." - -#: library/asyncio-future.rst:20 -msgid "Future Functions" -msgstr "Fonctions pour *Future*" - -#: library/asyncio-future.rst:24 -msgid "Return ``True`` if *obj* is either of:" -msgstr "Renvoie ``True`` si *obj* est soit :" - -#: library/asyncio-future.rst:26 -msgid "an instance of :class:`asyncio.Future`," -msgstr "une instance de :class:`asyncio.Future` ;" - -#: library/asyncio-future.rst:27 -msgid "an instance of :class:`asyncio.Task`," -msgstr "une instance de :class:`asyncio.Task` ;" - -#: library/asyncio-future.rst:28 -msgid "a Future-like object with a ``_asyncio_future_blocking`` attribute." -msgstr "" -"un objet se comportant comme *Future* et possédant un attribut " -"``_asyncio_future_blocking``." - -#: library/asyncio-future.rst:36 -msgid "Return:" -msgstr "Renvoie :" - -#: library/asyncio-future.rst:38 -msgid "" -"*obj* argument as is, if *obj* is a :class:`Future`, a :class:`Task`, or a " -"Future-like object (:func:`isfuture` is used for the test.)" -msgstr "" -"l'objet *obj* tel quel si c'est un objet :class:`Future`, :class:`Task` ou " -"se comportant comme un *Future*. :func:`isfuture` est utilisée pour le test ;" - -#: library/asyncio-future.rst:42 -msgid "" -"a :class:`Task` object wrapping *obj*, if *obj* is a coroutine " -"(:func:`iscoroutine` is used for the test); in this case the coroutine will " -"be scheduled by ``ensure_future()``." -msgstr "" -"un objet :class:`Task` encapsulant *obj* si ce dernier est une coroutine " -"(:func:`iscoroutine` est utilisée pour le test). Dans ce cas, l’exécution de " -"la coroutine sera planifiée par ``ensure_future()`` ;" - -#: library/asyncio-future.rst:47 -msgid "" -"a :class:`Task` object that would await on *obj*, if *obj* is an awaitable " -"(:func:`inspect.isawaitable` is used for the test.)" -msgstr "" -"un objet :class:`Task` qui attendra (*await*) *obj* si ce dernier peut être " -"attendu (*awaitable*). :func:`iscoroutine` est utilisée pour le test." - -#: library/asyncio-future.rst:50 -msgid "If *obj* is neither of the above a :exc:`TypeError` is raised." -msgstr "" -"Si *obj* ne correspond à aucun des critères ci-dessus, une " -"exception :exc:`TypeError` est levée." - -#: library/asyncio-future.rst:54 -msgid "" -"Save a reference to the result of this function, to avoid a task " -"disappearing mid-execution." -msgstr "" -"Gardez une référence au résultat de cette fonction pour éviter de voir une " -"tâche disparaitre au milieu de son exécution." - -#: library/asyncio-future.rst:57 -#, fuzzy -msgid "" -"See also the :func:`create_task` function which is the preferred way for " -"creating new tasks or use :class:`asyncio.TaskGroup` which keeps reference " -"to the task internally." -msgstr "" -"Voir aussi la fonction :func:`create_task` qui est la manière privilégiée " -"pour créer des nouvelles tâches." - -#: library/asyncio-future.rst:61 -msgid "The function accepts any :term:`awaitable` object." -msgstr "La fonction accepte n'importe quel objet :term:`awaitable`." - -#: library/asyncio-future.rst:64 -msgid "" -"Deprecation warning is emitted if *obj* is not a Future-like object and " -"*loop* is not specified and there is no running event loop." -msgstr "" -"Un ``DeprecationWarning`` est levé si *obj* n'est pas un objet se comportant " -"comme un *Future*, si *loop* n'est pas spécifié et s'il n'y a pas de boucle " -"d'évènements en cours d'exécution." - -#: library/asyncio-future.rst:71 -msgid "" -"Wrap a :class:`concurrent.futures.Future` object in " -"a :class:`asyncio.Future` object." -msgstr "" -"Encapsule un objet :class:`concurrent.futures.Future` dans un " -"objet :class:`asyncio.Future`." - -#: library/asyncio-future.rst:74 -msgid "" -"Deprecation warning is emitted if *future* is not a Future-like object and " -"*loop* is not specified and there is no running event loop." -msgstr "" -"Un ``DeprecationWarning`` est levé si *future* n'est pas un objet se " -"comportant comme un *Future*, si *loop* n'est pas spécifié et s'il n'y a pas " -"de boucle d'évènements en cours d'exécution." - -#: library/asyncio-future.rst:81 -msgid "Future Object" -msgstr "Objet *Future*" - -#: library/asyncio-future.rst:85 -msgid "" -"A Future represents an eventual result of an asynchronous operation. Not " -"thread-safe." -msgstr "" -"Un *Future* représente le résultat final d'une opération asynchrone. Il " -"n'est pas conçu pour pouvoir être utilisé par plusieurs fils d'exécution." - -#: library/asyncio-future.rst:88 -msgid "" -"Future is an :term:`awaitable` object. Coroutines can await on Future " -"objects until they either have a result or an exception set, or until they " -"are cancelled. A Future can be awaited multiple times and the result is same." -msgstr "" -"*Future* est un objet qui peut être attendu (:term:`awaitable`). Les " -"coroutines peuvent attendre les objets *Future* jusqu'à ce qu'ils renvoient " -"un résultat, ils lèvent une exception ou qu'ils soient annulés. Un *Future* " -"peut être attendu plusieurs fois et le résultat est le même." - -#: library/asyncio-future.rst:93 -msgid "" -"Typically Futures are used to enable low-level callback-based code (e.g. in " -"protocols implemented using asyncio :ref:`transports `) to interoperate with high-level async/await code." -msgstr "" -"Les *Futures* sont habituellement utilisés pour permettre à du code bas " -"niveau basé sur des fonctions de rappel (par exemple : les protocoles " -"utilisant *asyncio* :ref:`transports `) " -"d'interagir avec du code haut niveau utilisant *async* et *await*." - -#: library/asyncio-future.rst:98 -msgid "" -"The rule of thumb is to never expose Future objects in user-facing APIs, and " -"the recommended way to create a Future object is to " -"call :meth:`loop.create_future`. This way alternative event loop " -"implementations can inject their own optimized implementations of a Future " -"object." -msgstr "" -"Une bonne règle empirique est de ne jamais exposer des objets *Future* dans " -"des *API* destinées à l'utilisateur. La façon privilégiée de créer des " -"objets *Future* est d'appeler la méthode :meth:`loop.create_future`. Cela " -"permet aux implémentations alternatives de la boucle d'évènements d'utiliser " -"leur propre implémentation de l'objet *Future*." - -#: library/asyncio-future.rst:104 -msgid "Futures are :ref:`generic ` over the type of their results." -msgstr "" - -#: library/asyncio-future.rst:106 -msgid "Added support for the :mod:`contextvars` module." -msgstr "Ajout du support du module :mod:`contextvars`." - -#: library/asyncio-future.rst:109 -msgid "" -"Deprecation warning is emitted if *loop* is not specified and there is no " -"running event loop." -msgstr "" -"Un ``DeprecationWarning`` est levé si *loop* n'est pas spécifié et s'il n'y " -"a pas de boucle d'évènements en cours d'exécution." - -#: library/asyncio-future.rst:115 -msgid "Return the result of the Future." -msgstr "Renvoie le résultat du *Future*." - -#: library/asyncio-future.rst:117 -msgid "" -"If the Future is *done* and has a result set by the :meth:`set_result` " -"method, the result value is returned." -msgstr "" -"Si le *Future* est « terminé » et a un résultat défini par la " -"méthode :meth:`set_result`, ce résultat est renvoyé." - -#: library/asyncio-future.rst:120 -msgid "" -"If the Future is *done* and has an exception set by " -"the :meth:`set_exception` method, this method raises the exception." -msgstr "" -"Si le *Future* est « terminé » et a une exception définie par la " -"méthode :meth:`set_exception`, cette méthode lève l'exception." - -#: library/asyncio-future.rst:215 -msgid "" -"If the Future has been *cancelled*, this method raises " -"a :exc:`CancelledError` exception." -msgstr "" -"Si le *Future* a été *annulé*, cette méthode lève une " -"exception :exc:`CancelledError`." - -#: library/asyncio-future.rst:126 -#, fuzzy -msgid "" -"If the Future's result isn't yet available, this method raises " -"an :exc:`InvalidStateError` exception." -msgstr "" -"Si le résultat de la tâche n'est pas encore disponible, cette méthode lève " -"une exception :exc:`InvalidStateError`." - -#: library/asyncio-future.rst:131 -msgid "Mark the Future as *done* and set its result." -msgstr "Marque le *Future* comme « terminé » et définit son résultat." - -#: library/asyncio-future.rst:140 -#, fuzzy -msgid "" -"Raises an :exc:`InvalidStateError` error if the Future is already *done*." -msgstr "" -"Lève une erreur :exc:`InvalidStateError` si le *Future* est déjà « terminé »." - -#: library/asyncio-future.rst:138 -msgid "Mark the Future as *done* and set an exception." -msgstr "Marque le *Future* comme « terminé » et définit une exception." - -#: library/asyncio-future.rst:145 -msgid "Return ``True`` if the Future is *done*." -msgstr "Renvoie ``True`` si le *Future* est « terminé »." - -#: library/asyncio-future.rst:147 -msgid "" -"A Future is *done* if it was *cancelled* or if it has a result or an " -"exception set with :meth:`set_result` or :meth:`set_exception` calls." -msgstr "" -"Un *Future* est « terminé » s'il a été « annulé » ou si un résultat ou une " -"exception a été définie par les méthodes :meth:`set_result` " -"ou :meth:`set_exception`." - -#: library/asyncio-future.rst:153 -msgid "Return ``True`` if the Future was *cancelled*." -msgstr "Renvoie ``True`` si le *Future* a été « annulé »." - -#: library/asyncio-future.rst:155 -msgid "" -"The method is usually used to check if a Future is not *cancelled* before " -"setting a result or an exception for it::" -msgstr "" -"Cette méthode est habituellement utilisée pour vérifier qu'un *Future* n'est " -"pas « annulé » avant de définir un résultat ou une exception pour celui-ci ::" - -#: library/asyncio-future.rst:163 -msgid "Add a callback to be run when the Future is *done*." -msgstr "" -"Ajoute une fonction de rappel à exécuter lorsque le *Future* est « terminé »." - -#: library/asyncio-future.rst:165 -msgid "The *callback* is called with the Future object as its only argument." -msgstr "" -"L'argument *callback* est appelé avec l'objet *Future* comme seul argument." - -#: library/asyncio-future.rst:168 -msgid "" -"If the Future is already *done* when this method is called, the callback is " -"scheduled with :meth:`loop.call_soon`." -msgstr "" -"Si le *Future* est déjà « terminé » lorsque la méthode est appelée, " -"l'exécution de la fonction de rappel est planifiée " -"avec :meth:`loop.call_soon`." - -#: library/asyncio-future.rst:171 -msgid "" -"An optional keyword-only *context* argument allows specifying a " -"custom :class:`contextvars.Context` for the *callback* to run in. The " -"current context is used when no *context* is provided." -msgstr "" -"L'argument nommé optionnel *context* permet de spécifier une " -"classe :class:`contextvars.Context` personnalisée dans laquelle la fonction " -"de rappel s’exécutera. Le contexte actuel est utilisé si *context* n'est pas " -"fourni." - -#: library/asyncio-future.rst:175 -msgid "" -":func:`functools.partial` can be used to pass parameters to the callback, " -"e.g.::" -msgstr "" -":func:`functools.partial` peut être utilisée pour passer des paramètres à la " -"fonction de rappel ::" - -#: library/asyncio-future.rst:182 -msgid "" -"The *context* keyword-only parameter was added. See :pep:`567` for more " -"details." -msgstr "" -"Ajout de l'argument nommé *context*. Voir :pep:`567` pour plus de détails." - -#: library/asyncio-future.rst:188 -msgid "Remove *callback* from the callbacks list." -msgstr "Retire *callback* de la liste de fonctions de rappel." - -#: library/asyncio-future.rst:190 -msgid "" -"Returns the number of callbacks removed, which is typically 1, unless a " -"callback was added more than once." -msgstr "" -"Renvoie le nombre de fonctions de rappel retiré. La méthode renvoie " -"généralement 1, à moins que la fonction ait été ajoutée plus d'une fois." - -#: library/asyncio-future.rst:195 -msgid "Cancel the Future and schedule callbacks." -msgstr "Annule le *Future* et planifie l'exécution des fonctions de rappel." - -#: library/asyncio-future.rst:197 -msgid "" -"If the Future is already *done* or *cancelled*, return ``False``. Otherwise, " -"change the Future's state to *cancelled*, schedule the callbacks, and return " -"``True``." -msgstr "" -"Si le *Future* est déjà « terminé » ou « annulé », renvoie ``False``. " -"Autrement, change l'état du *Future* à « annulé », planifie l'exécution des " -"fonctions de rappel et renvoie ``True``." - -#: library/asyncio-future.rst:201 -msgid "" -"The optional string argument *msg* is passed as the argument to " -"the :exc:`CancelledError` exception raised when a cancelled Future is " -"awaited." -msgstr "" - -#: library/asyncio-future.rst:205 -msgid "Added the *msg* parameter." -msgstr "Ajout du paramètre *msg*." - -#: library/asyncio-future.rst:210 -msgid "Return the exception that was set on this Future." -msgstr "Renvoie l'exception définie pour ce *Future*." - -#: library/asyncio-future.rst:212 -msgid "" -"The exception (or ``None`` if no exception was set) is returned only if the " -"Future is *done*." -msgstr "" -"L'exception, ou ``None`` si aucune exception n'a été définie, est renvoyé " -"seulement si le *Future* est « terminé »." - -#: library/asyncio-future.rst:218 -msgid "" -"If the Future isn't *done* yet, this method raises " -"an :exc:`InvalidStateError` exception." -msgstr "" -"Si le *Future* n'est pas encore « terminé », cette méthode lève une " -"exception :exc:`InvalidStateError`." - -#: library/asyncio-future.rst:223 -msgid "Return the event loop the Future object is bound to." -msgstr "Renvoie la boucle d'évènements à laquelle le *Future* est attaché." - -#: library/asyncio-future.rst:230 -msgid "" -"This example creates a Future object, creates and schedules an asynchronous " -"Task to set result for the Future, and waits until the Future has a result::" -msgstr "" -"Cet exemple crée un objet *Future*, puis crée et planifie l’exécution d'une " -"tâche asynchrone qui définira le résultat du *Future* et attend jusqu'à ce " -"que le *Future* ait un résultat ::" - -#: library/asyncio-future.rst:265 -msgid "" -"The Future object was designed to mimic :class:`concurrent.futures.Future`. " -"Key differences include:" -msgstr "" -"L'objet *Future* est conçu pour imiter la " -"classe :class:`concurrent.futures.Future`. Les principales différences sont :" - -#: library/asyncio-future.rst:268 -msgid "" -"unlike asyncio Futures, :class:`concurrent.futures.Future` instances cannot " -"be awaited." -msgstr "" -"contrairement au *Future asyncio*, les instances " -"de :class:`concurrent.futures.Future` ne peuvent pas être attendues ;" - -#: library/asyncio-future.rst:271 -msgid "" -":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` do not " -"accept the *timeout* argument." -msgstr "" -":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` " -"n'acceptent pas d'argument *timeout* ;" - -#: library/asyncio-future.rst:274 -msgid "" -":meth:`asyncio.Future.result` and :meth:`asyncio.Future.exception` raise " -"an :exc:`InvalidStateError` exception when the Future is not *done*." -msgstr "" -":meth:`asyncio.Future.result` et :meth:`asyncio.Future.exception` lèvent une " -"exception :exc:`InvalidStateError` lorsque le *Future* n'est pas " -"« terminé » ;" - -#: library/asyncio-future.rst:278 -msgid "" -"Callbacks registered with :meth:`asyncio.Future.add_done_callback` are not " -"called immediately. They are scheduled with :meth:`loop.call_soon` instead." -msgstr "" -"les fonctions de rappel enregistrées à l'aide " -"de :meth:`asyncio.Future.add_done_callback` ne sont pas exécutées " -"immédiatement mais planifiées avec :meth:`loop.call_soon` ;" - -#: library/asyncio-future.rst:282 -msgid "" -"asyncio Future is not compatible with the :func:`concurrent.futures.wait` " -"and :func:`concurrent.futures.as_completed` functions." -msgstr "" -"les *Future asyncio* ne sont pas compatibles avec les " -"fonctions :func:`concurrent.futures.wait` " -"et :func:`concurrent.futures.as_completed` ;" - -#: library/asyncio-future.rst:286 -#, fuzzy -msgid "" -":meth:`asyncio.Future.cancel` accepts an optional ``msg`` argument, " -"but :meth:`concurrent.futures.Future.cancel` does not." -msgstr "" -":meth:`asyncio.Future.cancel` accepte un argument optionnel ``msg`` mais " -"pas :func:`concurrent.futures.cancel`." diff --git a/library/asyncio-graph.po b/library/asyncio-graph.po deleted file mode 100644 index bdfdaf6476..0000000000 --- a/library/asyncio-graph.po +++ /dev/null @@ -1,174 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/asyncio-graph.rst:8 -msgid "Call Graph Introspection" -msgstr "" - -#: library/asyncio-graph.rst:10 -msgid "**Source code:** :source:`Lib/asyncio/graph.py`" -msgstr "" - -#: library/asyncio-graph.rst:14 -msgid "" -"asyncio has powerful runtime call graph introspection utilities to trace the " -"entire call graph of a running *coroutine* or *task*, or a suspended " -"*future*. These utilities and the underlying machinery can be used from " -"within a Python program or by external profilers and debuggers." -msgstr "" - -#: library/asyncio-graph.rst:25 -msgid "" -"Print the async call graph for the current task or the " -"provided :class:`Task` or :class:`Future`." -msgstr "" - -#: library/asyncio-graph.rst:28 -msgid "" -"This function prints entries starting from the top frame and going down " -"towards the invocation point." -msgstr "" - -#: library/asyncio-graph.rst:31 -msgid "" -"The function receives an optional *future* argument. If not passed, the " -"current running task will be used." -msgstr "" - -#: library/asyncio-graph.rst:93 -msgid "" -"If the function is called on *the current task*, the optional keyword-only " -"*depth* argument can be used to skip the specified number of frames from top " -"of the stack." -msgstr "" - -#: library/asyncio-graph.rst:38 -msgid "" -"If the optional keyword-only *limit* argument is provided, each call stack " -"in the resulting graph is truncated to include at most ``abs(limit)`` " -"entries. If *limit* is positive, the entries left are the closest to the " -"invocation point. If *limit* is negative, the topmost entries are left. If " -"*limit* is omitted or ``None``, all entries are present. If *limit* is " -"``0``, the call stack is not printed at all, only \"awaited by\" information " -"is printed." -msgstr "" - -#: library/asyncio-graph.rst:46 -msgid "" -"If *file* is omitted or ``None``, the function will print " -"to :data:`sys.stdout`." -msgstr "" - -#: library/asyncio-graph.rst:49 -msgid "**Example:**" -msgstr "" - -#: library/asyncio-graph.rst:51 -msgid "The following Python code:" -msgstr "" - -#: library/asyncio-graph.rst:66 -msgid "will print::" -msgstr "affiche ::" - -#: library/asyncio-graph.rst:79 -msgid "" -"Like :func:`print_call_graph`, but returns a string. If *future* is ``None`` " -"and there's no current task, the function returns an empty string." -msgstr "" - -#: library/asyncio-graph.rst:86 -msgid "" -"Capture the async call graph for the current task or the " -"provided :class:`Task` or :class:`Future`." -msgstr "" - -#: library/asyncio-graph.rst:89 -msgid "" -"The function receives an optional *future* argument. If not passed, the " -"current running task will be used. If there's no current task, the function " -"returns ``None``." -msgstr "" - -#: library/asyncio-graph.rst:97 -msgid "Returns a ``FutureCallGraph`` data class object:" -msgstr "" - -#: library/asyncio-graph.rst:99 -msgid "``FutureCallGraph(future, call_stack, awaited_by)``" -msgstr "" - -#: library/asyncio-graph.rst:101 -msgid "" -"Where *future* is a reference to a :class:`Future` or a :class:`Task` (or " -"their subclasses.)" -msgstr "" - -#: library/asyncio-graph.rst:104 -msgid "``call_stack`` is a tuple of ``FrameCallGraphEntry`` objects." -msgstr "" - -#: library/asyncio-graph.rst:106 -msgid "``awaited_by`` is a tuple of ``FutureCallGraph`` objects." -msgstr "" - -#: library/asyncio-graph.rst:108 -msgid "``FrameCallGraphEntry(frame)``" -msgstr "" - -#: library/asyncio-graph.rst:110 -msgid "" -"Where *frame* is a frame object of a regular Python function in the call " -"stack." -msgstr "" - -#: library/asyncio-graph.rst:115 -msgid "Low level utility functions" -msgstr "" - -#: library/asyncio-graph.rst:117 -msgid "" -"To introspect an async call graph asyncio requires cooperation from control " -"flow structures, such as :func:`shield` or :class:`TaskGroup`. Any time an " -"intermediate :class:`Future` object with low-level APIs " -"like :meth:`Future.add_done_callback() ` " -"is involved, the following two functions should be used to inform asyncio " -"about how exactly such intermediate future objects are connected with the " -"tasks they wrap or control." -msgstr "" - -#: library/asyncio-graph.rst:128 -msgid "Record that *future* is awaited on by *waiter*." -msgstr "" - -#: library/asyncio-graph.rst:143 -msgid "" -"Both *future* and *waiter* must be instances of :class:`Future` " -"or :class:`Task` or their subclasses, otherwise the call would have no " -"effect." -msgstr "" - -#: library/asyncio-graph.rst:134 -msgid "" -"A call to ``future_add_to_awaited_by()`` must be followed by an eventual " -"call to the :func:`future_discard_from_awaited_by` function with the same " -"arguments." -msgstr "" - -#: library/asyncio-graph.rst:141 -msgid "Record that *future* is no longer awaited on by *waiter*." -msgstr "" diff --git a/library/asyncio-llapi-index.po b/library/asyncio-llapi-index.po deleted file mode 100644 index a180d08732..0000000000 --- a/library/asyncio-llapi-index.po +++ /dev/null @@ -1,1108 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-06-17 22:35+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-llapi-index.rst:6 -msgid "Low-level API Index" -msgstr "Index de l'API de bas niveau" - -#: library/asyncio-llapi-index.rst:8 -msgid "This page lists all low-level asyncio APIs." -msgstr "Cette page répertorie toutes les API asynchrones de bas niveau." - -#: library/asyncio-llapi-index.rst:12 -msgid "Obtaining the Event Loop" -msgstr "Obtenir une boucle d'évènements" - -#: library/asyncio-llapi-index.rst:18 -msgid ":func:`asyncio.get_running_loop`" -msgstr ":func:`asyncio.get_running_loop`" - -#: library/asyncio-llapi-index.rst:19 -msgid "The **preferred** function to get the running event loop." -msgstr "" -"La fonction **préférée** pour obtenir la boucle d'événements en cours " -"d'exécution." - -#: library/asyncio-llapi-index.rst:21 -msgid ":func:`asyncio.get_event_loop`" -msgstr ":func:`asyncio.get_event_loop`" - -#: library/asyncio-llapi-index.rst:22 -msgid "Get an event loop instance (running or current via the current policy)." -msgstr "" -"Renvoie une instance de boucle d'événements (en cours d'exécution ou " -"actuelle via la politique actuelle)." - -#: library/asyncio-llapi-index.rst:24 -msgid ":func:`asyncio.set_event_loop`" -msgstr ":func:`asyncio.set_event_loop`" - -#: library/asyncio-llapi-index.rst:25 -msgid "Set the event loop as current via the current policy." -msgstr "" -"Définit la boucle d'événements comme actuelle via la politique actuelle." - -#: library/asyncio-llapi-index.rst:27 -msgid ":func:`asyncio.new_event_loop`" -msgstr ":func:`asyncio.new_event_loop`" - -#: library/asyncio-llapi-index.rst:28 -msgid "Create a new event loop." -msgstr "Crée une nouvelle boucle d'événements." - -#: library/asyncio-llapi-index.rst:32 library/asyncio-llapi-index.rst:269 -msgid "Examples" -msgstr "Exemples" - -#: library/asyncio-llapi-index.rst:33 -msgid ":ref:`Using asyncio.get_running_loop() `." -msgstr "" -":ref:`Utilisation d'asyncio.get_running_loop() `." - -#: library/asyncio-llapi-index.rst:37 -msgid "Event Loop Methods" -msgstr "Méthodes de la boucle d'évènements" - -#: library/asyncio-llapi-index.rst:39 -msgid "" -"See also the main documentation section about the :ref:`asyncio-event-loop-" -"methods`." -msgstr "" -"Voir aussi la section principale de la documentation sur les :ref:`asyncio-" -"event-loop-methods`." - -#: library/asyncio-llapi-index.rst:42 -msgid "Lifecycle" -msgstr "Cycle de vie" - -#: library/asyncio-llapi-index.rst:47 -msgid ":meth:`loop.run_until_complete`" -msgstr ":meth:`loop.run_until_complete`" - -#: library/asyncio-llapi-index.rst:48 -msgid "Run a Future/Task/awaitable until complete." -msgstr "Exécute un Future/Task/awaitable jusqu'à ce qu'il soit terminé." - -#: library/asyncio-llapi-index.rst:50 -msgid ":meth:`loop.run_forever`" -msgstr ":meth:`loop.run_forever`" - -#: library/asyncio-llapi-index.rst:51 -msgid "Run the event loop forever." -msgstr "Exécute la boucle d'événements pour toujours." - -#: library/asyncio-llapi-index.rst:53 -msgid ":meth:`loop.stop`" -msgstr ":meth:`loop.stop`" - -#: library/asyncio-llapi-index.rst:54 -msgid "Stop the event loop." -msgstr "Arrête l'exécution de la boucle d'évènements." - -#: library/asyncio-llapi-index.rst:56 -msgid ":meth:`loop.close`" -msgstr ":meth:`loop.close`" - -#: library/asyncio-llapi-index.rst:57 -msgid "Close the event loop." -msgstr "Arrête la boucle d'évènements." - -#: library/asyncio-llapi-index.rst:59 -#, fuzzy -msgid ":meth:`loop.is_running`" -msgstr ":meth:`loop.is_running()`" - -#: library/asyncio-llapi-index.rst:60 -msgid "Return ``True`` if the event loop is running." -msgstr "Renvoie ``True`` si la boucle d'événements est en cours d'exécution." - -#: library/asyncio-llapi-index.rst:62 -#, fuzzy -msgid ":meth:`loop.is_closed`" -msgstr ":meth:`loop.is_closed()`" - -#: library/asyncio-llapi-index.rst:63 -msgid "Return ``True`` if the event loop is closed." -msgstr "Renvoie ``True`` si la boucle d'évènements est arrêtée." - -#: library/asyncio-llapi-index.rst:65 -msgid "``await`` :meth:`loop.shutdown_asyncgens`" -msgstr "``await`` :meth:`loop.shutdown_asyncgens`" - -#: library/asyncio-llapi-index.rst:66 -msgid "Close asynchronous generators." -msgstr "Ferme les générateurs asynchrones." - -#: library/asyncio-llapi-index.rst:69 -msgid "Debugging" -msgstr "Débogage" - -#: library/asyncio-llapi-index.rst:74 -msgid ":meth:`loop.set_debug`" -msgstr ":meth:`loop.set_debug`" - -#: library/asyncio-llapi-index.rst:75 -msgid "Enable or disable the debug mode." -msgstr "Active ou désactive le mode débogage." - -#: library/asyncio-llapi-index.rst:77 -msgid ":meth:`loop.get_debug`" -msgstr ":meth:`loop.get_debug`" - -#: library/asyncio-llapi-index.rst:78 -msgid "Get the current debug mode." -msgstr "Renvoie le mode de débogage actuel." - -#: library/asyncio-llapi-index.rst:81 -msgid "Scheduling Callbacks" -msgstr "Planification des rappels" - -#: library/asyncio-llapi-index.rst:86 -msgid ":meth:`loop.call_soon`" -msgstr ":meth:`loop.call_soon`" - -#: library/asyncio-llapi-index.rst:87 -msgid "Invoke a callback soon." -msgstr "Invoque un rappel bientôt." - -#: library/asyncio-llapi-index.rst:89 -msgid ":meth:`loop.call_soon_threadsafe`" -msgstr ":meth:`loop.call_soon_threadsafe`" - -#: library/asyncio-llapi-index.rst:90 -msgid "A thread-safe variant of :meth:`loop.call_soon`." -msgstr "" -"Une variante compatible avec les programmes à fils d'exécution multiples " -"de :meth:`loop.call_soon`." - -#: library/asyncio-llapi-index.rst:92 -msgid ":meth:`loop.call_later`" -msgstr ":meth:`loop.call_later`" - -#: library/asyncio-llapi-index.rst:93 -msgid "Invoke a callback *after* the given time." -msgstr "Invoque un rappel *après* le temps imparti." - -#: library/asyncio-llapi-index.rst:95 -msgid ":meth:`loop.call_at`" -msgstr ":meth:`loop.call_at`" - -#: library/asyncio-llapi-index.rst:96 -msgid "Invoke a callback *at* the given time." -msgstr "Invoque un rappel *à l'heure* indiquée." - -#: library/asyncio-llapi-index.rst:99 -#, fuzzy -msgid "Thread/Interpreter/Process Pool" -msgstr "Pool de fils d'exécution ou processus" - -#: library/asyncio-llapi-index.rst:104 -msgid "``await`` :meth:`loop.run_in_executor`" -msgstr "``await`` :meth:`loop.run_in_executor`" - -#: library/asyncio-llapi-index.rst:105 -msgid "" -"Run a CPU-bound or other blocking function in a :mod:`concurrent.futures` " -"executor." -msgstr "" -"Exécute une fonction utilisant beaucoup de CPU ou une autre fonction " -"bloquante dans un exécuteur :mod:`concurrent.futures`." - -#: library/asyncio-llapi-index.rst:108 -msgid ":meth:`loop.set_default_executor`" -msgstr ":meth:`loop.set_default_executor`" - -#: library/asyncio-llapi-index.rst:109 -msgid "Set the default executor for :meth:`loop.run_in_executor`." -msgstr "Définit l'exécuteur par défaut pour :meth:`loop.run_in_executor`." - -#: library/asyncio-llapi-index.rst:112 -msgid "Tasks and Futures" -msgstr "Tâches et *Futures*" - -#: library/asyncio-llapi-index.rst:117 -msgid ":meth:`loop.create_future`" -msgstr ":meth:`loop.create_future`" - -#: library/asyncio-llapi-index.rst:118 -msgid "Create a :class:`Future` object." -msgstr "Crée un objet :class:`Future`." - -#: library/asyncio-llapi-index.rst:120 -msgid ":meth:`loop.create_task`" -msgstr ":meth:`loop.create_task`" - -#: library/asyncio-llapi-index.rst:121 -msgid "Schedule coroutine as a :class:`Task`." -msgstr "Planifie la coroutine en tant que :class:`Task`." - -#: library/asyncio-llapi-index.rst:123 -msgid ":meth:`loop.set_task_factory`" -msgstr ":meth:`loop.set_task_factory`" - -#: library/asyncio-llapi-index.rst:124 -msgid "" -"Set a factory used by :meth:`loop.create_task` to create :class:`Tasks " -"`." -msgstr "" -"Définit une fabrique utilisée par :meth:`loop.create_task` pour créer " -"des :class:`Tasks `." - -#: library/asyncio-llapi-index.rst:127 -msgid ":meth:`loop.get_task_factory`" -msgstr ":meth:`loop.get_task_factory`" - -#: library/asyncio-llapi-index.rst:128 -msgid "" -"Get the factory :meth:`loop.create_task` uses to create :class:`Tasks " -"`." -msgstr "" -"Récupère la fabrique que :meth:`loop.create_task` utilise pour créer " -"des :class:`Tasks `." - -#: library/asyncio-llapi-index.rst:132 -msgid "DNS" -msgstr "DNS" - -#: library/asyncio-llapi-index.rst:137 -msgid "``await`` :meth:`loop.getaddrinfo`" -msgstr "``await`` :meth:`loop.getaddrinfo`" - -#: library/asyncio-llapi-index.rst:138 -msgid "Asynchronous version of :meth:`socket.getaddrinfo`." -msgstr "Version asynchrone de :meth:`socket.getaddrinfo`." - -#: library/asyncio-llapi-index.rst:140 -msgid "``await`` :meth:`loop.getnameinfo`" -msgstr "``await`` :meth:`loop.getnameinfo`" - -#: library/asyncio-llapi-index.rst:141 -msgid "Asynchronous version of :meth:`socket.getnameinfo`." -msgstr "Version asynchrone de :meth:`socket.getnameinfo`." - -#: library/asyncio-llapi-index.rst:144 -msgid "Networking and IPC" -msgstr "Réseau et communication inter-processus" - -#: library/asyncio-llapi-index.rst:149 -msgid "``await`` :meth:`loop.create_connection`" -msgstr "``await`` :meth:`loop.create_connection`" - -#: library/asyncio-llapi-index.rst:150 -msgid "Open a TCP connection." -msgstr "Ouvre une connexion TCP." - -#: library/asyncio-llapi-index.rst:152 -msgid "``await`` :meth:`loop.create_server`" -msgstr "``await`` :meth:`loop.create_server`" - -#: library/asyncio-llapi-index.rst:153 -msgid "Create a TCP server." -msgstr "Crée un serveur TCP." - -#: library/asyncio-llapi-index.rst:155 -msgid "``await`` :meth:`loop.create_unix_connection`" -msgstr "``await`` :meth:`loop.create_unix_connection`" - -#: library/asyncio-llapi-index.rst:156 -msgid "Open a Unix socket connection." -msgstr "Ouvre une connexion socket Unix." - -#: library/asyncio-llapi-index.rst:158 -msgid "``await`` :meth:`loop.create_unix_server`" -msgstr "``await`` :meth:`loop.create_unix_server`" - -#: library/asyncio-llapi-index.rst:159 -msgid "Create a Unix socket server." -msgstr "Crée un serveur de socket Unix." - -#: library/asyncio-llapi-index.rst:161 -msgid "``await`` :meth:`loop.connect_accepted_socket`" -msgstr "``await`` :meth:`loop.connect_accepted_socket`" - -#: library/asyncio-llapi-index.rst:162 -msgid "Wrap a :class:`~socket.socket` into a ``(transport, protocol)`` pair." -msgstr "" -"Enveloppe une :class:`~socket.socket` dans une paire ``(transport, " -"protocol)``." - -#: library/asyncio-llapi-index.rst:165 -msgid "``await`` :meth:`loop.create_datagram_endpoint`" -msgstr "``await`` :meth:`loop.create_datagram_endpoint`" - -#: library/asyncio-llapi-index.rst:166 -msgid "Open a datagram (UDP) connection." -msgstr "Ouvre une connexion par datagramme (UDP)." - -#: library/asyncio-llapi-index.rst:168 -msgid "``await`` :meth:`loop.sendfile`" -msgstr "``await`` :meth:`loop.sendfile`" - -#: library/asyncio-llapi-index.rst:169 -msgid "Send a file over a transport." -msgstr "Envoie un fichier via un transport." - -#: library/asyncio-llapi-index.rst:171 -msgid "``await`` :meth:`loop.start_tls`" -msgstr "``await`` :meth:`loop.start_tls`" - -#: library/asyncio-llapi-index.rst:172 -msgid "Upgrade an existing connection to TLS." -msgstr "Bascule une connexion existante vers TLS." - -#: library/asyncio-llapi-index.rst:174 -msgid "``await`` :meth:`loop.connect_read_pipe`" -msgstr "``await`` :meth:`loop.connect_read_pipe`" - -#: library/asyncio-llapi-index.rst:175 -msgid "Wrap a read end of a pipe into a ``(transport, protocol)`` pair." -msgstr "" -"Enveloppe une extrémité de lecture d'un tube dans une paire ``(transport, " -"protocol)``." - -#: library/asyncio-llapi-index.rst:177 -msgid "``await`` :meth:`loop.connect_write_pipe`" -msgstr "``await`` :meth:`loop.connect_write_pipe`" - -#: library/asyncio-llapi-index.rst:178 -msgid "Wrap a write end of a pipe into a ``(transport, protocol)`` pair." -msgstr "" -"Enveloppe une extrémité d'écriture d'un tube dans une paire ``(transport, " -"protocol)``." - -#: library/asyncio-llapi-index.rst:181 -msgid "Sockets" -msgstr "Interfaces de connexion (*sockets*)" - -#: library/asyncio-llapi-index.rst:186 -msgid "``await`` :meth:`loop.sock_recv`" -msgstr "``await`` :meth:`loop.sock_recv`" - -#: library/asyncio-llapi-index.rst:187 -msgid "Receive data from the :class:`~socket.socket`." -msgstr "Reçoit les données de :class:`~socket.socket`." - -#: library/asyncio-llapi-index.rst:189 -msgid "``await`` :meth:`loop.sock_recv_into`" -msgstr "``await`` :meth:`loop.sock_recv_into`" - -#: library/asyncio-llapi-index.rst:190 -msgid "Receive data from the :class:`~socket.socket` into a buffer." -msgstr "Reçoit les données de :class:`~socket.socket` dans un tampon." - -#: library/asyncio-llapi-index.rst:192 -msgid "``await`` :meth:`loop.sock_recvfrom`" -msgstr "``await`` :meth:`loop.sock_recvfrom`" - -#: library/asyncio-llapi-index.rst:193 -msgid "Receive a datagram from the :class:`~socket.socket`." -msgstr "Reçoit un datagramme de :class:`~socket.socket`." - -#: library/asyncio-llapi-index.rst:195 -msgid "``await`` :meth:`loop.sock_recvfrom_into`" -msgstr "``await`` :meth:`loop.sock_recvfrom_into`" - -#: library/asyncio-llapi-index.rst:196 -msgid "Receive a datagram from the :class:`~socket.socket` into a buffer." -msgstr "Reçoit un datagramme de :class:`~socket.socket` dans un tampon." - -#: library/asyncio-llapi-index.rst:198 -msgid "``await`` :meth:`loop.sock_sendall`" -msgstr "``await`` :meth:`loop.sock_sendall`" - -#: library/asyncio-llapi-index.rst:199 -msgid "Send data to the :class:`~socket.socket`." -msgstr "Envoie des données à :class:`~socket.socket`." - -#: library/asyncio-llapi-index.rst:201 -msgid "``await`` :meth:`loop.sock_sendto`" -msgstr "``await`` :meth:`loop.sock_sendto`" - -#: library/asyncio-llapi-index.rst:202 -msgid "Send a datagram via the :class:`~socket.socket` to the given address." -msgstr "Envoie un datagramme via :class:`~socket.socket` à l'adresse indiquée." - -#: library/asyncio-llapi-index.rst:204 -msgid "``await`` :meth:`loop.sock_connect`" -msgstr "``await`` :meth:`loop.sock_connect`" - -#: library/asyncio-llapi-index.rst:205 -msgid "Connect the :class:`~socket.socket`." -msgstr "Connecte la :class:`~socket.socket`." - -#: library/asyncio-llapi-index.rst:207 -msgid "``await`` :meth:`loop.sock_accept`" -msgstr "``await`` :meth:`loop.sock_accept`" - -#: library/asyncio-llapi-index.rst:208 -msgid "Accept a :class:`~socket.socket` connection." -msgstr "Accepte une connexion :class:`~socket.socket`." - -#: library/asyncio-llapi-index.rst:210 -msgid "``await`` :meth:`loop.sock_sendfile`" -msgstr "``await`` :meth:`loop.sock_sendfile`" - -#: library/asyncio-llapi-index.rst:211 -msgid "Send a file over the :class:`~socket.socket`." -msgstr "Envoie un fichier via :class:`~socket.socket`." - -#: library/asyncio-llapi-index.rst:213 -msgid ":meth:`loop.add_reader`" -msgstr ":meth:`loop.add_reader`" - -#: library/asyncio-llapi-index.rst:214 -msgid "Start watching a file descriptor for read availability." -msgstr "" -"Commence à observer un descripteur de fichier pour la disponibilité en " -"lecture." - -#: library/asyncio-llapi-index.rst:216 -msgid ":meth:`loop.remove_reader`" -msgstr ":meth:`loop.remove_reader`" - -#: library/asyncio-llapi-index.rst:217 -msgid "Stop watching a file descriptor for read availability." -msgstr "" -"Arrête d'observer un descripteur de fichier pour la disponibilité en lecture." - -#: library/asyncio-llapi-index.rst:219 -msgid ":meth:`loop.add_writer`" -msgstr ":meth:`loop.add_writer`" - -#: library/asyncio-llapi-index.rst:220 -msgid "Start watching a file descriptor for write availability." -msgstr "" -"Commence à observer un descripteur de fichier pour la disponibilité en " -"écriture." - -#: library/asyncio-llapi-index.rst:222 -msgid ":meth:`loop.remove_writer`" -msgstr ":meth:`loop.remove_writer`" - -#: library/asyncio-llapi-index.rst:223 -msgid "Stop watching a file descriptor for write availability." -msgstr "" -"Arrête d'observer un descripteur de fichier pour la disponibilité en " -"écriture." - -#: library/asyncio-llapi-index.rst:226 -msgid "Unix Signals" -msgstr "Signaux Unix" - -#: library/asyncio-llapi-index.rst:231 -msgid ":meth:`loop.add_signal_handler`" -msgstr ":meth:`loop.add_signal_handler`" - -#: library/asyncio-llapi-index.rst:232 -msgid "Add a handler for a :mod:`signal`." -msgstr "Ajoute un gestionnaire pour le :mod:`signal`." - -#: library/asyncio-llapi-index.rst:234 -msgid ":meth:`loop.remove_signal_handler`" -msgstr ":meth:`loop.remove_signal_handler`" - -#: library/asyncio-llapi-index.rst:235 -msgid "Remove a handler for a :mod:`signal`." -msgstr "Supprime un gestionnaire pour le :mod:`signal`." - -#: library/asyncio-llapi-index.rst:238 -msgid "Subprocesses" -msgstr "Sous-processus" - -#: library/asyncio-llapi-index.rst:243 -msgid ":meth:`loop.subprocess_exec`" -msgstr ":meth:`loop.subprocess_exec`" - -#: library/asyncio-llapi-index.rst:244 -msgid "Spawn a subprocess." -msgstr "Crée un sous-processus." - -#: library/asyncio-llapi-index.rst:246 -msgid ":meth:`loop.subprocess_shell`" -msgstr ":meth:`loop.subprocess_shell`" - -#: library/asyncio-llapi-index.rst:247 -msgid "Spawn a subprocess from a shell command." -msgstr "Crée un sous-processus à partir d'une commande shell." - -#: library/asyncio-llapi-index.rst:250 -msgid "Error Handling" -msgstr "Gestion des erreurs" - -#: library/asyncio-llapi-index.rst:255 -msgid ":meth:`loop.call_exception_handler`" -msgstr ":meth:`loop.call_exception_handler`" - -#: library/asyncio-llapi-index.rst:256 -msgid "Call the exception handler." -msgstr "Appelle le gestionnaire d'exceptions." - -#: library/asyncio-llapi-index.rst:258 -msgid ":meth:`loop.set_exception_handler`" -msgstr ":meth:`loop.set_exception_handler`" - -#: library/asyncio-llapi-index.rst:259 -msgid "Set a new exception handler." -msgstr "Définit un nouveau gestionnaire d'exceptions." - -#: library/asyncio-llapi-index.rst:261 -msgid ":meth:`loop.get_exception_handler`" -msgstr ":meth:`loop.get_exception_handler`" - -#: library/asyncio-llapi-index.rst:262 -msgid "Get the current exception handler." -msgstr "Renvoie le gestionnaire d'exceptions actuel." - -#: library/asyncio-llapi-index.rst:264 -msgid ":meth:`loop.default_exception_handler`" -msgstr ":meth:`loop.default_exception_handler`" - -#: library/asyncio-llapi-index.rst:265 -msgid "The default exception handler implementation." -msgstr "Implémentation du gestionnaire d'exceptions par défaut." - -#: library/asyncio-llapi-index.rst:270 -msgid "" -":ref:`Using asyncio.new_event_loop() and loop.run_forever() " -"`." -msgstr "" -":ref:`Utilisation d'asyncio.new_event_loop() et de loop.run_forever() " -"`." - -#: library/asyncio-llapi-index.rst:273 -msgid ":ref:`Using loop.call_later() `." -msgstr ":ref:`Utilisation de loop.call_later() `." - -#: library/asyncio-llapi-index.rst:275 -msgid "" -"Using ``loop.create_connection()`` to implement :ref:`an echo-client " -"`." -msgstr "" -"Utilisation de ``loop.create_connection()`` pour implémenter :ref:`un client " -"écho `." - -#: library/asyncio-llapi-index.rst:278 -msgid "" -"Using ``loop.create_connection()`` to :ref:`connect a socket " -"`." -msgstr "" -"Utilisation de ``loop.create_connection()`` pour :ref:`connecter un socket " -"`." - -#: library/asyncio-llapi-index.rst:281 -msgid "" -":ref:`Using add_reader() to watch an FD for read events " -"`." -msgstr "" -":ref:`Utilisation de add_reader() pour surveiller un descripteur de fichier " -"pour les événements de lecture `." - -#: library/asyncio-llapi-index.rst:284 -msgid ":ref:`Using loop.add_signal_handler() `." -msgstr "" -":ref:`Utilisation de loop.add_signal_handler() " -"`." - -#: library/asyncio-llapi-index.rst:286 -msgid ":ref:`Using loop.subprocess_exec() `." -msgstr "" -":ref:`Utilisation de loop.subprocess_exec() " -"`." - -#: library/asyncio-llapi-index.rst:290 -msgid "Transports" -msgstr "Transports" - -#: library/asyncio-llapi-index.rst:292 -msgid "All transports implement the following methods:" -msgstr "Tous les transports mettent en œuvre les méthodes suivantes :" - -#: library/asyncio-llapi-index.rst:298 -msgid ":meth:`transport.close() `" -msgstr ":meth:`transport.close() `" - -#: library/asyncio-llapi-index.rst:299 -msgid "Close the transport." -msgstr "Ferme le transport." - -#: library/asyncio-llapi-index.rst:301 -msgid ":meth:`transport.is_closing() `" -msgstr ":meth:`transport.is_closing() `" - -#: library/asyncio-llapi-index.rst:302 -msgid "Return ``True`` if the transport is closing or is closed." -msgstr "Renvoie ``True`` si le transport se ferme ou est fermé." - -#: library/asyncio-llapi-index.rst:304 -msgid ":meth:`transport.get_extra_info() `" -msgstr ":meth:`transport.get_extra_info() `" - -#: library/asyncio-llapi-index.rst:305 -msgid "Request for information about the transport." -msgstr "Demande d'informations sur le transport." - -#: library/asyncio-llapi-index.rst:307 -msgid ":meth:`transport.set_protocol() `" -msgstr ":meth:`transport.set_protocol() `" - -#: library/asyncio-llapi-index.rst:308 -msgid "Set a new protocol." -msgstr "Change le protocole." - -#: library/asyncio-llapi-index.rst:310 -msgid ":meth:`transport.get_protocol() `" -msgstr ":meth:`transport.get_protocol() `" - -#: library/asyncio-llapi-index.rst:311 -msgid "Return the current protocol." -msgstr "Renvoie le protocole courant." - -#: library/asyncio-llapi-index.rst:314 -msgid "" -"Transports that can receive data (TCP and Unix connections, pipes, etc). " -"Returned from methods " -"like :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.connect_read_pipe`, " -"etc:" -msgstr "" -"Transports pouvant recevoir des données (connexions TCP et Unix, pipes, " -"etc.). Renvoyé par des méthodes telles " -"que :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.connect_read_pipe`, " -"etc :" - -#: library/asyncio-llapi-index.rst:319 -msgid "Read Transports" -msgstr "Transports en lecture" - -#: library/asyncio-llapi-index.rst:324 -msgid ":meth:`transport.is_reading() `" -msgstr ":meth:`transport.is_reading() `" - -#: library/asyncio-llapi-index.rst:325 -msgid "Return ``True`` if the transport is receiving." -msgstr "Renvoie ``True`` si le transport est en cours de réception." - -#: library/asyncio-llapi-index.rst:327 -msgid ":meth:`transport.pause_reading() `" -msgstr ":meth:`transport.pause_reading() `" - -#: library/asyncio-llapi-index.rst:328 -msgid "Pause receiving." -msgstr "Suspend la réception." - -#: library/asyncio-llapi-index.rst:330 -msgid ":meth:`transport.resume_reading() `" -msgstr ":meth:`transport.resume_reading() `" - -#: library/asyncio-llapi-index.rst:331 -msgid "Resume receiving." -msgstr "Reprend la réception." - -#: library/asyncio-llapi-index.rst:334 -msgid "" -"Transports that can Send data (TCP and Unix connections, pipes, etc). " -"Returned from methods " -"like :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.connect_write_pipe`, " -"etc:" -msgstr "" -"Transports pouvant envoyer des données (connexions TCP et Unix, pipes, " -"etc.). Renvoyé par des méthodes telles " -"que :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.connect_write_pipe`, " -"etc :" - -#: library/asyncio-llapi-index.rst:339 -msgid "Write Transports" -msgstr "Transports en écriture" - -#: library/asyncio-llapi-index.rst:344 -msgid ":meth:`transport.write() `" -msgstr ":meth:`transport.write() `" - -#: library/asyncio-llapi-index.rst:345 -msgid "Write data to the transport." -msgstr "Écrit des données dans le transport." - -#: library/asyncio-llapi-index.rst:347 -msgid ":meth:`transport.writelines() `" -msgstr ":meth:`transport.writelines() `" - -#: library/asyncio-llapi-index.rst:348 -msgid "Write buffers to the transport." -msgstr "Écrit des tampons dans le transport." - -#: library/asyncio-llapi-index.rst:350 -msgid ":meth:`transport.can_write_eof() `" -msgstr ":meth:`transport.can_write_eof() `" - -#: library/asyncio-llapi-index.rst:351 -msgid "Return :const:`True` if the transport supports sending EOF." -msgstr "Renvoie :const:`True` si le transport prend en charge l'envoi d'EOF." - -#: library/asyncio-llapi-index.rst:353 -msgid ":meth:`transport.write_eof() `" -msgstr ":meth:`transport.write_eof() `" - -#: library/asyncio-llapi-index.rst:354 -msgid "Close and send EOF after flushing buffered data." -msgstr "" -"Ferme et envoie EOF après avoir vidé les données mises en mémoire tampon." - -#: library/asyncio-llapi-index.rst:356 -msgid ":meth:`transport.abort() `" -msgstr ":meth:`transport.abort() `" - -#: library/asyncio-llapi-index.rst:357 library/asyncio-llapi-index.rst:383 -msgid "Close the transport immediately." -msgstr "Ferme immédiatement le transport." - -#: library/asyncio-llapi-index.rst:359 -msgid "" -":meth:`transport.get_write_buffer_size() " -"`" -msgstr "" -":meth:`transport.get_write_buffer_size() " -"`" - -#: library/asyncio-llapi-index.rst:361 -#, fuzzy -msgid "Return the current size of the output buffer." -msgstr "Renvoie la taille actuelle du tampon de sortie." - -#: library/asyncio-llapi-index.rst:363 -msgid "" -":meth:`transport.get_write_buffer_limits() " -"`" -msgstr "" -":meth:`transport.get_write_buffer_limits() " -"`" - -#: library/asyncio-llapi-index.rst:365 -msgid "Return high and low water marks for write flow control." -msgstr "Renvoie les seuils haut et bas pour le contrôle du flux d'écriture." - -#: library/asyncio-llapi-index.rst:367 -msgid "" -":meth:`transport.set_write_buffer_limits() " -"`" -msgstr "" -":meth:`transport.set_write_buffer_limits() " -"`" - -#: library/asyncio-llapi-index.rst:369 -msgid "Set new high and low water marks for write flow control." -msgstr "" -"Définit de nouvelles bornes hautes et basses pour le contrôle du flux " -"d'écriture." - -#: library/asyncio-llapi-index.rst:372 -msgid "Transports returned by :meth:`loop.create_datagram_endpoint`:" -msgstr "Transports renvoyés par :meth:`loop.create_datagram_endpoint` :" - -#: library/asyncio-llapi-index.rst:374 -msgid "Datagram Transports" -msgstr "Transports par datagrammes" - -#: library/asyncio-llapi-index.rst:379 -msgid ":meth:`transport.sendto() `" -msgstr ":meth:`transport.sendto() `" - -#: library/asyncio-llapi-index.rst:380 -msgid "Send data to the remote peer." -msgstr "Envoie des données au pair distant." - -#: library/asyncio-llapi-index.rst:382 -msgid ":meth:`transport.abort() `" -msgstr ":meth:`transport.abort() `" - -#: library/asyncio-llapi-index.rst:386 -msgid "" -"Low-level transport abstraction over subprocesses. Returned " -"by :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell`:" -msgstr "" -"Abstraction de transport de bas niveau sur les sous-processus. Renvoyé " -"par :meth:`loop.subprocess_exec` et :meth:`loop.subprocess_shell` :" - -#: library/asyncio-llapi-index.rst:390 -msgid "Subprocess Transports" -msgstr "Transports vers des sous-processus" - -#: library/asyncio-llapi-index.rst:395 -msgid ":meth:`transport.get_pid() `" -msgstr ":meth:`transport.get_pid() `" - -#: library/asyncio-llapi-index.rst:396 -msgid "Return the subprocess process id." -msgstr "Renvoie l'ID de processus du sous-processus." - -#: library/asyncio-llapi-index.rst:398 -msgid "" -":meth:`transport.get_pipe_transport() " -"`" -msgstr "" -":meth:`transport.get_pipe_transport() " -"`" - -#: library/asyncio-llapi-index.rst:400 -msgid "" -"Return the transport for the requested communication pipe (*stdin*, " -"*stdout*, or *stderr*)." -msgstr "" -"Renvoie le transport pour le tube de communication demandé (*stdin*, " -"*stdout* ou *stderr*)." - -#: library/asyncio-llapi-index.rst:403 -msgid ":meth:`transport.get_returncode() `" -msgstr "" -":meth:`transport.get_returncode() `" - -#: library/asyncio-llapi-index.rst:404 -msgid "Return the subprocess return code." -msgstr "Renvoie le code de retour du sous-processus." - -#: library/asyncio-llapi-index.rst:406 -msgid ":meth:`transport.kill() `" -msgstr ":meth:`transport.kill() `" - -#: library/asyncio-llapi-index.rst:407 -msgid "Kill the subprocess." -msgstr "Tue le sous-processus." - -#: library/asyncio-llapi-index.rst:409 -msgid ":meth:`transport.send_signal() `" -msgstr ":meth:`transport.send_signal() `" - -#: library/asyncio-llapi-index.rst:410 -msgid "Send a signal to the subprocess." -msgstr "Envoie un signal au sous-processus." - -#: library/asyncio-llapi-index.rst:412 -msgid ":meth:`transport.terminate() `" -msgstr ":meth:`transport.terminate() `" - -#: library/asyncio-llapi-index.rst:413 -msgid "Stop the subprocess." -msgstr "Termine le sous-processus." - -#: library/asyncio-llapi-index.rst:415 -msgid ":meth:`transport.close() `" -msgstr ":meth:`transport.close() `" - -#: library/asyncio-llapi-index.rst:416 -msgid "Kill the subprocess and close all pipes." -msgstr "Tue le sous-processus et ferme tous les tubes." - -#: library/asyncio-llapi-index.rst:420 -msgid "Protocols" -msgstr "Protocoles" - -#: library/asyncio-llapi-index.rst:422 -msgid "Protocol classes can implement the following **callback methods**:" -msgstr "" -"Les classes de protocole peuvent implémenter les **méthodes de rappel** " -"suivantes :" - -#: library/asyncio-llapi-index.rst:428 -msgid "``callback`` :meth:`connection_made() `" -msgstr "``callback`` :meth:`connection_made() `" - -#: library/asyncio-llapi-index.rst:429 -msgid "Called when a connection is made." -msgstr "Appelée lorsqu'une connexion est établie." - -#: library/asyncio-llapi-index.rst:431 -msgid "``callback`` :meth:`connection_lost() `" -msgstr "``callback`` :meth:`connection_lost() `" - -#: library/asyncio-llapi-index.rst:432 -msgid "Called when the connection is lost or closed." -msgstr "Appelé lorsqu'une connexion est perdue ou fermée." - -#: library/asyncio-llapi-index.rst:434 -msgid "``callback`` :meth:`pause_writing() `" -msgstr "``callback`` :meth:`pause_writing() `" - -#: library/asyncio-llapi-index.rst:435 -msgid "Called when the transport's buffer goes over the high water mark." -msgstr "Appelée lorsque la mémoire tampon du transport dépasse le seuil haut." - -#: library/asyncio-llapi-index.rst:437 -msgid "``callback`` :meth:`resume_writing() `" -msgstr "``callback`` :meth:`resume_writing() `" - -#: library/asyncio-llapi-index.rst:438 -msgid "Called when the transport's buffer drains below the low water mark." -msgstr "" -"Appelée lorsque la mémoire tampon du transport passe sous le seuil bas." - -#: library/asyncio-llapi-index.rst:441 -msgid "Streaming Protocols (TCP, Unix Sockets, Pipes)" -msgstr "Protocoles de flux (TCP, Unix Sockets, Pipes)" - -#: library/asyncio-llapi-index.rst:446 -msgid "``callback`` :meth:`data_received() `" -msgstr "``callback`` :meth:`data_received() `" - -#: library/asyncio-llapi-index.rst:447 -msgid "Called when some data is received." -msgstr "Appelée lorsque certaines données sont reçues." - -#: library/asyncio-llapi-index.rst:449 -msgid "``callback`` :meth:`eof_received() `" -msgstr "``callback`` :meth:`eof_received() `" - -#: library/asyncio-llapi-index.rst:450 library/asyncio-llapi-index.rst:465 -msgid "Called when an EOF is received." -msgstr "Appelée lorsqu'un EOF est reçu." - -#: library/asyncio-llapi-index.rst:453 -msgid "Buffered Streaming Protocols" -msgstr "Protocoles de flux tamponnés" - -#: library/asyncio-llapi-index.rst:458 -msgid "``callback`` :meth:`get_buffer() `" -msgstr "``callback`` :meth:`get_buffer() `" - -#: library/asyncio-llapi-index.rst:459 -msgid "Called to allocate a new receive buffer." -msgstr "Appelée pour allouer un nouveau tampon de réception." - -#: library/asyncio-llapi-index.rst:461 -msgid "``callback`` :meth:`buffer_updated() `" -msgstr "" -"``callback`` :meth:`buffer_updated() `" - -#: library/asyncio-llapi-index.rst:462 -msgid "Called when the buffer was updated with the received data." -msgstr "Appelée lorsque le tampon a été mis à jour avec les données reçues." - -#: library/asyncio-llapi-index.rst:464 -msgid "``callback`` :meth:`eof_received() `" -msgstr "``callback`` :meth:`eof_received() `" - -#: library/asyncio-llapi-index.rst:468 -msgid "Datagram Protocols" -msgstr "Protocoles par datagrammes (non-connectés)" - -#: library/asyncio-llapi-index.rst:473 -msgid "" -"``callback`` :meth:`datagram_received() `" -msgstr "" -"``callback`` :meth:`datagram_received() `" - -#: library/asyncio-llapi-index.rst:475 -msgid "Called when a datagram is received." -msgstr "Appelée lorsqu'un datagramme est reçu." - -#: library/asyncio-llapi-index.rst:477 -msgid "``callback`` :meth:`error_received() `" -msgstr "" -"``callback`` :meth:`error_received() `" - -#: library/asyncio-llapi-index.rst:478 -msgid "" -"Called when a previous send or receive operation raises an :class:`OSError`." -msgstr "" -"Appelée lorsqu'une opération d'envoi ou de réception précédente lève " -"une :class:`OSError`." - -#: library/asyncio-llapi-index.rst:482 -msgid "Subprocess Protocols" -msgstr "Protocoles liés aux sous-processus" - -#: library/asyncio-llapi-index.rst:487 -#, fuzzy -msgid "``callback`` :meth:`~SubprocessProtocol.pipe_data_received`" -msgstr "" -"``callback`` :meth:`pipe_data_received() " -"`" - -#: library/asyncio-llapi-index.rst:488 -msgid "" -"Called when the child process writes data into its *stdout* or *stderr* pipe." -msgstr "" -"Appelée lorsqu'un processus enfant écrit sur sa sortie d'erreur ou sa sortie " -"standard." - -#: library/asyncio-llapi-index.rst:491 -#, fuzzy -msgid "``callback`` :meth:`~SubprocessProtocol.pipe_connection_lost`" -msgstr "" -"``callback`` :meth:`pipe_connection_lost() " -"`" - -#: library/asyncio-llapi-index.rst:492 -msgid "" -"Called when one of the pipes communicating with the child process is closed." -msgstr "" -"Appelée lorsqu'un tube de communication avec un sous-processus est fermée." - -#: library/asyncio-llapi-index.rst:495 -msgid "" -"``callback`` :meth:`process_exited() `" -msgstr "" -"``callback`` :meth:`process_exited() `" - -#: library/asyncio-llapi-index.rst:497 -msgid "" -"Called when the child process has exited. It can be called " -"before :meth:`~SubprocessProtocol.pipe_data_received` " -"and :meth:`~SubprocessProtocol.pipe_connection_lost` methods." -msgstr "" - -#: library/asyncio-llapi-index.rst:503 -msgid "Event Loop Policies" -msgstr "Politiques de boucle d'événements" - -#: library/asyncio-llapi-index.rst:505 -msgid "" -"Policies is a low-level mechanism to alter the behavior of functions " -"like :func:`asyncio.get_event_loop`. See also the main :ref:`policies " -"section ` for more details." -msgstr "" -"Les politiques sont un mécanisme de bas niveau pour modifier le comportement " -"de fonctions telles que :func:`asyncio.get_event_loop`. Voir aussi la " -"section principale :ref:`asyncio-policies` pour plus de détails." - -#: library/asyncio-llapi-index.rst:511 -msgid "Accessing Policies" -msgstr "Accès aux politiques" - -#: library/asyncio-llapi-index.rst:516 -msgid ":meth:`asyncio.get_event_loop_policy`" -msgstr ":meth:`asyncio.get_event_loop_policy`" - -#: library/asyncio-llapi-index.rst:517 -msgid "Return the current process-wide policy." -msgstr "Renvoie la politique actuelle à l'échelle du processus." - -#: library/asyncio-llapi-index.rst:519 -msgid ":meth:`asyncio.set_event_loop_policy`" -msgstr ":meth:`asyncio.set_event_loop_policy`" - -#: library/asyncio-llapi-index.rst:520 -msgid "Set a new process-wide policy." -msgstr "Définit une nouvelle politique à l'échelle du processus." - -#: library/asyncio-llapi-index.rst:522 -msgid ":class:`AbstractEventLoopPolicy`" -msgstr ":class:`AbstractEventLoopPolicy`" - -#: library/asyncio-llapi-index.rst:523 -msgid "Base class for policy objects." -msgstr "Classe mère pour les objets de politique." - -#~ msgid "Called when the child process has exited." -#~ msgstr "Appelée lorsqu'un processus enfant se termine." diff --git a/library/asyncio-platforms.po b/library/asyncio-platforms.po deleted file mode 100644 index db2d3f033d..0000000000 --- a/library/asyncio-platforms.po +++ /dev/null @@ -1,204 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-06-17 17:57+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-platforms.rst:9 -msgid "Platform Support" -msgstr "Prise en charge de la plate-forme" - -#: library/asyncio-platforms.rst:11 -msgid "" -"The :mod:`asyncio` module is designed to be portable, but some platforms " -"have subtle differences and limitations due to the platforms' underlying " -"architecture and capabilities." -msgstr "" -"Le module :mod:`asyncio` est conçu pour être portable, mais certaines plates-" -"formes présentent des différences et des limitations subtiles en raison de " -"l'architecture et des capacités sous-jacentes des plates-formes." - -#: library/asyncio-platforms.rst:17 -msgid "All Platforms" -msgstr "Toutes plateformes" - -#: library/asyncio-platforms.rst:19 -msgid "" -":meth:`loop.add_reader` and :meth:`loop.add_writer` cannot be used to " -"monitor file I/O." -msgstr "" -":meth:`loop.add_reader` et :meth:`loop.add_writer` ne peuvent pas être " -"utilisées pour surveiller les entrées-sorties de fichiers." - -#: library/asyncio-platforms.rst:24 -msgid "Windows" -msgstr "Windows" - -#: library/asyncio-platforms.rst:26 -msgid "" -"**Source code:** :source:`Lib/asyncio/proactor_events.py`, :source:`Lib/" -"asyncio/windows_events.py`, :source:`Lib/asyncio/windows_utils.py`" -msgstr "" -"**Code source :** :source:`Lib/asyncio/proactor_events.py`, :source:`Lib/" -"asyncio/windows_events.py`, :source:`Lib/asyncio/windows_utils.py`" - -# suit un : -#: library/asyncio-platforms.rst:34 -msgid "On Windows, :class:`ProactorEventLoop` is now the default event loop." -msgstr "" -"sous Windows, :class:`ProactorEventLoop` est désormais la boucle " -"d'événements par défaut." - -#: library/asyncio-platforms.rst:36 -msgid "All event loops on Windows do not support the following methods:" -msgstr "" -"Aucune boucle d'événements sous Windows ne prend en charge les méthodes " -"suivantes :" - -#: library/asyncio-platforms.rst:38 -#, fuzzy -msgid "" -":meth:`loop.create_unix_connection` and :meth:`loop.create_unix_server` are " -"not supported. The :const:`socket.AF_UNIX` socket family is specific to Unix." -msgstr "" -":meth:`loop.create_unix_connection` et :meth:`loop.create_unix_server` ne " -"sont pas prises en charge. La famille de connecteurs :data:`socket.AF_UNIX` " -"est spécifique à Unix." - -#: library/asyncio-platforms.rst:42 -msgid "" -":meth:`loop.add_signal_handler` and :meth:`loop.remove_signal_handler` are " -"not supported." -msgstr "" -":meth:`loop.add_signal_handler` et :meth:`loop.remove_signal_handler` ne " -"sont pas prises en charge." - -#: library/asyncio-platforms.rst:45 -msgid ":class:`SelectorEventLoop` has the following limitations:" -msgstr ":class:`SelectorEventLoop` a les limitations suivantes :" - -#: library/asyncio-platforms.rst:47 -msgid "" -":class:`~selectors.SelectSelector` is used to wait on socket events: it " -"supports sockets and is limited to 512 sockets." -msgstr "" -":class:`~selectors.SelectSelector` est utilisée pour attendre les événements " -"de connecteur (*sockets*) : elle prend en charge les connecteurs et est " -"limitée à 512 connecteurs." - -#: library/asyncio-platforms.rst:50 -msgid "" -":meth:`loop.add_reader` and :meth:`loop.add_writer` only accept socket " -"handles (e.g. pipe file descriptors are not supported)." -msgstr "" -":meth:`loop.add_reader` et :meth:`loop.add_writer` n'acceptent que les " -"descripteurs de connecteur (par exemple, les descripteurs de tube fichier ne " -"sont pas pris en charge)." - -#: library/asyncio-platforms.rst:53 -msgid "" -"Pipes are not supported, so the :meth:`loop.connect_read_pipe` " -"and :meth:`loop.connect_write_pipe` methods are not implemented." -msgstr "" -"Les tubes ne sont pas pris en charge, donc les " -"méthodes :meth:`loop.connect_read_pipe` et :meth:`loop.connect_write_pipe` " -"ne sont pas implémentées." - -#: library/asyncio-platforms.rst:56 -msgid "" -":ref:`Subprocesses ` are not supported, " -"i.e. :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` methods " -"are not implemented." -msgstr "" -"Les :ref:`sous-processus ` ne sont pas pris en charge, " -"c'est-à-dire que les méthodes :meth:`loop.subprocess_exec` " -"et :meth:`loop.subprocess_shell` ne sont pas implémentées." - -#: library/asyncio-platforms.rst:60 -msgid ":class:`ProactorEventLoop` has the following limitations:" -msgstr ":class:`ProactorEventLoop` a les limitations suivantes :" - -#: library/asyncio-platforms.rst:62 -msgid "" -"The :meth:`loop.add_reader` and :meth:`loop.add_writer` methods are not " -"supported." -msgstr "" -"Les méthodes :meth:`loop.add_reader` et :meth:`loop.add_writer` ne sont pas " -"prises en charge." - -#: library/asyncio-platforms.rst:65 -msgid "" -"The resolution of the monotonic clock on Windows is usually around 15.6 " -"milliseconds. The best resolution is 0.5 milliseconds. The resolution " -"depends on the hardware (availability of `HPET `_) and on the Windows configuration." -msgstr "" -"La résolution de l'horloge monotone sous Windows est généralement d'environ " -"15,6 millisecondes. La meilleure résolution est de 0,5 milliseconde. La " -"résolution dépend du matériel (disponibilité de `HPET `_) et de la configuration " -"de Windows." - -#: library/asyncio-platforms.rst:75 -msgid "Subprocess Support on Windows" -msgstr "Prise en charge des sous-processus sous Windows" - -#: library/asyncio-platforms.rst:77 -msgid "" -"On Windows, the default event loop :class:`ProactorEventLoop` supports " -"subprocesses, whereas :class:`SelectorEventLoop` does not." -msgstr "" -"Sous Windows, la boucle d'événements par défaut :class:`ProactorEventLoop` " -"prend en charge les sous-processus, contrairement " -"à :class:`SelectorEventLoop`." - -#: library/asyncio-platforms.rst:82 -msgid "macOS" -msgstr "macOS" - -#: library/asyncio-platforms.rst:84 -msgid "Modern macOS versions are fully supported." -msgstr "Les versions modernes de macOS sont entièrement prises en charge." - -#: library/asyncio-platforms.rst:87 -msgid "macOS <= 10.8" -msgstr "macOS ≤ 10.8" - -#: library/asyncio-platforms.rst:88 -msgid "" -"On macOS 10.6, 10.7 and 10.8, the default event loop " -"uses :class:`selectors.KqueueSelector`, which does not support character " -"devices on these versions. The :class:`SelectorEventLoop` can be manually " -"configured to use :class:`~selectors.SelectSelector` " -"or :class:`~selectors.PollSelector` to support character devices on these " -"older versions of macOS. Example::" -msgstr "" -"Sur macOS 10.6, 10.7 et 10.8, la boucle d'événements par défaut " -"utilise :class:`selectors.KqueueSelector`, qui ne prend pas en charge les " -"périphériques de caractères sur ces versions. La :class:`SelectorEventLoop` " -"peut être configurée manuellement pour " -"utiliser :class:`~selectors.SelectSelector` " -"ou :class:`~selectors.PollSelector` pour prendre en charge les périphériques " -"de caractères sur ces anciennes versions de macOS. Par exemple ::" - -#~ msgid "" -#~ "The :meth:`policy.set_child_watcher() " -#~ "` function is also not " -#~ "supported, as :class:`ProactorEventLoop` has a different mechanism to " -#~ "watch child processes." -#~ msgstr "" -#~ "La fonction :meth:`policy.set_child_watcher() " -#~ "` n'est pas non plus prise en " -#~ "charge, car :class:`ProactorEventLoop` a un mécanisme différent pour " -#~ "surveiller les processus enfants." diff --git a/library/asyncio-policy.po b/library/asyncio-policy.po deleted file mode 100644 index 1b4fa8d30e..0000000000 --- a/library/asyncio-policy.po +++ /dev/null @@ -1,537 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-06-17 17:44+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-policy.rst:8 -msgid "Policies" -msgstr "Politiques" - -#: library/asyncio-policy.rst:12 -msgid "" -"Policies are deprecated and will be removed in Python 3.16. Users are " -"encouraged to use the :func:`asyncio.run` function or " -"the :class:`asyncio.Runner` with *loop_factory* to use the desired loop " -"implementation." -msgstr "" - -#: library/asyncio-policy.rst:18 -msgid "" -"An event loop policy is a global object used to get and set the " -"current :ref:`event loop `, as well as create new event " -"loops. The default policy can be :ref:`replaced ` " -"with :ref:`built-in alternatives ` to use different " -"event loop implementations, or substituted by a :ref:`custom policy ` that can override these behaviors." -msgstr "" -"Une politique de boucle d'événements est un objet global utilisé pour " -"obtenir et définir la :ref:`boucle d'événements ` " -"actuelle, ainsi que créer de nouvelles boucles d'événements. La politique " -"par défaut peut être :ref:`remplacée ` par " -"des :ref:`alternatives intégrées ` afin d'utiliser " -"d'autres implémentations de boucles d'événements, ou remplacée par " -"une :ref:`politique personnalisée ` qui peut " -"remplacer ces comportements." - -#: library/asyncio-policy.rst:27 -msgid "" -"The :ref:`policy object ` gets and sets a separate " -"event loop per *context*. This is per-thread by default, though custom " -"policies could define *context* differently." -msgstr "" -"Un :ref:`objet politique ` définit la notion de " -"*contexte* et gère une boucle d'événement distincte par contexte. Ceci est " -"valable fil par fil d'exécution par défaut, bien que les politiques " -"personnalisées puissent définir le *contexte* différemment." - -#: library/asyncio-policy.rst:32 -msgid "" -"Custom event loop policies can control the behavior " -"of :func:`get_event_loop`, :func:`set_event_loop`, " -"and :func:`new_event_loop`." -msgstr "" -"En utilisant une politique de boucle d'événement personnalisée, le " -"comportement des fonctions :func:`get_event_loop`, :func:`set_event_loop` " -"et :func:`new_event_loop` peut être personnalisé." - -#: library/asyncio-policy.rst:35 -msgid "" -"Policy objects should implement the APIs defined in " -"the :class:`AbstractEventLoopPolicy` abstract base class." -msgstr "" -"Les objets politiques doivent implémenter les API définies dans la classe " -"abstraite :class:`AbstractEventLoopPolicy`." - -#: library/asyncio-policy.rst:42 -msgid "Getting and Setting the Policy" -msgstr "Obtenir et définir la politique" - -#: library/asyncio-policy.rst:44 -msgid "" -"The following functions can be used to get and set the policy for the " -"current process:" -msgstr "" -"Les fonctions suivantes peuvent être utilisées pour obtenir et définir la " -"politique du processus en cours :" - -#: library/asyncio-policy.rst:49 -msgid "Return the current process-wide policy." -msgstr "Renvoie la politique actuelle à l'échelle du processus." - -#: library/asyncio-policy.rst:51 -msgid "" -"The :func:`get_event_loop_policy` function is deprecated and will be removed " -"in Python 3.16." -msgstr "" - -#: library/asyncio-policy.rst:57 -msgid "Set the current process-wide policy to *policy*." -msgstr "" -"Définit la politique actuelle sur l'ensemble du processus sur *policy*." - -#: library/asyncio-policy.rst:59 -msgid "If *policy* is set to ``None``, the default policy is restored." -msgstr "" -"Si *policy* est définie sur ``None``, la politique par défaut est restaurée." - -#: library/asyncio-policy.rst:61 -msgid "" -"The :func:`set_event_loop_policy` function is deprecated and will be removed " -"in Python 3.16." -msgstr "" - -#: library/asyncio-policy.rst:69 -msgid "Policy Objects" -msgstr "Objets politiques" - -#: library/asyncio-policy.rst:71 -msgid "The abstract event loop policy base class is defined as follows:" -msgstr "" -"La classe abstraite de la politique de boucle d'événements est définie " -"comme suit :" - -#: library/asyncio-policy.rst:75 -msgid "An abstract base class for asyncio policies." -msgstr "Une classe de base abstraite pour les politiques *asyncio*." - -#: library/asyncio-policy.rst:79 -msgid "Get the event loop for the current context." -msgstr "Récupère la boucle d'évènements pour le contexte actuel." - -#: library/asyncio-policy.rst:81 -msgid "" -"Return an event loop object implementing the :class:`AbstractEventLoop` " -"interface." -msgstr "" -"Renvoie un objet de boucle d'événements en implémentant " -"l'interface :class:`AbstractEventLoop`." - -#: library/asyncio-policy.rst:96 -msgid "This method should never return ``None``." -msgstr "Cette méthode ne devrait jamais renvoyer ``None``." - -#: library/asyncio-policy.rst:90 -msgid "Set the event loop for the current context to *loop*." -msgstr "Définit la boucle d'événements du contexte actuel sur *loop*." - -#: library/asyncio-policy.rst:94 -msgid "Create and return a new event loop object." -msgstr "Crée et renvoie un nouvel objet de boucle d'événements." - -#: library/asyncio-policy.rst:98 -msgid "" -"The :class:`AbstractEventLoopPolicy` class is deprecated and will be removed " -"in Python 3.16." -msgstr "" - -#: library/asyncio-policy.rst:105 -msgid "asyncio ships with the following built-in policies:" -msgstr "*asyncio* est livré avec les politiques intégrées suivantes :" - -#: library/asyncio-policy.rst:110 -msgid "" -"The default asyncio policy. Uses :class:`SelectorEventLoop` on Unix " -"and :class:`ProactorEventLoop` on Windows." -msgstr "" -"La politique *asyncio* par défaut. Utilise :class:`SelectorEventLoop` sur " -"les plates-formes Unix et :class:`ProactorEventLoop` sur Windows." - -#: library/asyncio-policy.rst:113 -msgid "" -"There is no need to install the default policy manually. asyncio is " -"configured to use the default policy automatically." -msgstr "" -"Il n'est pas nécessaire d'installer la politique par défaut manuellement. " -"*asyncio* est configuré pour utiliser automatiquement la politique par " -"défaut." - -#: library/asyncio-policy.rst:118 -msgid "On Windows, :class:`ProactorEventLoop` is now used by default." -msgstr "" -"Sous Windows, :class:`ProactorEventLoop` est désormais utilisée par défaut." - -#: library/asyncio-policy.rst:120 -#, fuzzy -msgid "" -"The :meth:`get_event_loop` method of the default asyncio policy now raises " -"a :exc:`RuntimeError` if there is no set event loop." -msgstr "" -"Dans les versions Python 3.10.9, 3.11.1 et 3.12, la " -"méthode :meth:`get_event_loop` de la politique *asyncio* par défaut lève " -"un :exc:`DeprecationWarning` s'il n'y a pas de boucle d'événements en cours " -"et qu'aucune boucle actuelle n'est définie. Dans une future version de " -"Python, cela deviendra une erreur." - -#: library/asyncio-policy.rst:124 -msgid "" -"The :class:`DefaultEventLoopPolicy` class is deprecated and will be removed " -"in Python 3.16." -msgstr "" - -#: library/asyncio-policy.rst:131 -msgid "" -"An alternative event loop policy that uses the :class:`SelectorEventLoop` " -"event loop implementation." -msgstr "" -"Politique de boucle d'événements alternative utilisant l'implémentation de " -"la boucle d'événements :class:`ProactorEventLoop`." - -#: library/asyncio-policy.rst:146 -msgid "Availability" -msgstr "Disponibilité" - -#: library/asyncio-policy.rst:136 -msgid "" -"The :class:`WindowsSelectorEventLoopPolicy` class is deprecated and will be " -"removed in Python 3.16." -msgstr "" - -#: library/asyncio-policy.rst:143 -msgid "" -"An alternative event loop policy that uses the :class:`ProactorEventLoop` " -"event loop implementation." -msgstr "" -"Politique de boucle d'événements alternative utilisant l'implémentation de " -"la boucle d'événements :class:`ProactorEventLoop`." - -#: library/asyncio-policy.rst:148 -msgid "" -"The :class:`WindowsProactorEventLoopPolicy` class is deprecated and will be " -"removed in Python 3.16." -msgstr "" - -#: library/asyncio-policy.rst:156 -msgid "Custom Policies" -msgstr "Politiques personnalisées" - -#: library/asyncio-policy.rst:158 -msgid "" -"To implement a new event loop policy, it is recommended to " -"subclass :class:`DefaultEventLoopPolicy` and override the methods for which " -"custom behavior is wanted, e.g.::" -msgstr "" -"Pour implémenter une nouvelle politique de boucle d’événements, il est " -"recommandé de sous-classer :class:`DefaultEventLoopPolicy` et de " -"réimplémenter les méthodes pour lesquelles un comportement personnalisé est " -"souhaité, par exemple ::" - -#~ msgid "Get a child process watcher object." -#~ msgstr "Récupère un objet observateur du processus enfant." - -#~ msgid "" -#~ "Return a watcher object implementing the :class:`AbstractChildWatcher` " -#~ "interface." -#~ msgstr "" -#~ "Renvoie un objet observateur implémentant " -#~ "l'interface :class:`AbstractChildWatcher`." - -#~ msgid "This function is Unix specific." -#~ msgstr "Cette fonction est spécifique à Unix." - -#~ msgid "Set the current child process watcher to *watcher*." -#~ msgstr "Définit l'observateur du processus enfant actuel à *watcher*." - -#~ msgid "Process Watchers" -#~ msgstr "Observateurs de processus" - -#~ msgid "" -#~ "A process watcher allows customization of how an event loop monitors " -#~ "child processes on Unix. Specifically, the event loop needs to know when " -#~ "a child process has exited." -#~ msgstr "" -#~ "Un observateur de processus permet de personnaliser la manière dont une " -#~ "boucle d'événements surveille les processus enfants sous Unix. Plus " -#~ "précisément, la boucle d'événements a besoin de savoir quand un processus " -#~ "enfant s'est terminé." - -#~ msgid "" -#~ "In asyncio, child processes are created " -#~ "with :func:`create_subprocess_exec` and :meth:`loop.subprocess_exec` " -#~ "functions." -#~ msgstr "" -#~ "Dans *asyncio*, les processus enfants sont créés avec les " -#~ "fonctions :func:`create_subprocess_exec` et :meth:`loop.subprocess_exec`." - -#~ msgid "" -#~ "asyncio defines the :class:`AbstractChildWatcher` abstract base class, " -#~ "which child watchers should implement, and has four different " -#~ "implementations: :class:`ThreadedChildWatcher` (configured to be used by " -#~ "default), :class:`MultiLoopChildWatcher`, :class:`SafeChildWatcher`, " -#~ "and :class:`FastChildWatcher`." -#~ msgstr "" -#~ "*asyncio* définit la classe abstraite :class:`AbstractChildWatcher`, " -#~ "que les observateurs enfants doivent implémenter et possède quatre " -#~ "implémentations différentes : :class:`ThreadedChildWatcher` (configurée " -#~ "pour être utilisé par " -#~ "défaut), :class:`MultiLoopChildWatcher`, :class:`SafeChildWatcher` " -#~ "et :class:`FastChildWatcher`." - -#~ msgid "" -#~ "See also the :ref:`Subprocess and Threads ` " -#~ "section." -#~ msgstr "" -#~ "Voir aussi la section :ref:`sous-processus et fils d'exécution `." - -#~ msgid "" -#~ "The following two functions can be used to customize the child process " -#~ "watcher implementation used by the asyncio event loop:" -#~ msgstr "" -#~ "Les deux fonctions suivantes peuvent être utilisées pour personnaliser " -#~ "l'implémentation de l'observateur de processus enfant utilisé par la " -#~ "boucle d'événements *asyncio* :" - -#~ msgid "Return the current child watcher for the current policy." -#~ msgstr "Renvoie l'observateur enfant actuel pour la politique actuelle." - -#~ msgid "" -#~ "Set the current child watcher to *watcher* for the current policy. " -#~ "*watcher* must implement methods defined in " -#~ "the :class:`AbstractChildWatcher` base class." -#~ msgstr "" -#~ "Définit l'observateur enfant actuel à *watcher* pour la politique " -#~ "actuelle. *watcher* doit implémenter les méthodes définies dans la classe " -#~ "de base :class:`AbstractChildWatcher`." - -#~ msgid "" -#~ "Third-party event loops implementations might not support custom child " -#~ "watchers. For such event loops, using :func:`set_child_watcher` might be " -#~ "prohibited or have no effect." -#~ msgstr "" -#~ "Les implémentations de boucles d'événements tierces peuvent ne pas " -#~ "prendre en charge les observateurs enfants personnalisés. Pour ces " -#~ "boucles d'événements, utiliser :func:`set_child_watcher` pourrait être " -#~ "interdit ou n'avoir aucun effet." - -#~ msgid "Register a new child handler." -#~ msgstr "Enregistre un nouveau gestionnaire." - -#~ msgid "" -#~ "Arrange for ``callback(pid, returncode, *args)`` to be called when a " -#~ "process with PID equal to *pid* terminates. Specifying another callback " -#~ "for the same process replaces the previous handler." -#~ msgstr "" -#~ "Organise l'appel de ``callback(pid, returncode, * args)`` lorsqu'un " -#~ "processus dont le *PID* est égal à *pid* se termine. La spécification " -#~ "d'un autre rappel pour le même processus remplace le gestionnaire " -#~ "précédent." - -#~ msgid "The *callback* callable must be thread-safe." -#~ msgstr "" -#~ "L'appelable *callback* doit être compatible avec les programmes à fils " -#~ "d'exécution multiples." - -#~ msgid "Removes the handler for process with PID equal to *pid*." -#~ msgstr "Supprime le gestionnaire de processus avec un PID égal à *pid*." - -#~ msgid "" -#~ "The function returns ``True`` if the handler was successfully removed, " -#~ "``False`` if there was nothing to remove." -#~ msgstr "" -#~ "La fonction renvoie ``True`` si le gestionnaire a été supprimé avec " -#~ "succès, ``False`` s'il n'y a rien à supprimer." - -#~ msgid "Attach the watcher to an event loop." -#~ msgstr "Attache l'observateur à une boucle d'événement." - -#~ msgid "" -#~ "If the watcher was previously attached to an event loop, then it is first " -#~ "detached before attaching to the new loop." -#~ msgstr "" -#~ "Si l'observateur était précédemment attaché à une boucle d'événements, il " -#~ "est d'abord détaché avant d'être rattaché à la nouvelle boucle." - -#~ msgid "Note: loop may be ``None``." -#~ msgstr "Remarque : la boucle peut être ``None``." - -#~ msgid "Return ``True`` if the watcher is ready to use." -#~ msgstr "Renvoie ``True`` si l'observateur est prêt à être utilisé." - -#~ msgid "" -#~ "Spawning a subprocess with *inactive* current child watcher " -#~ "raises :exc:`RuntimeError`." -#~ msgstr "" -#~ "La création d'un sous-processus avec un observateur enfant actuel " -#~ "*inactif* lève une :exc:`RuntimeError`." - -#~ msgid "Close the watcher." -#~ msgstr "Ferme l'observateur." - -#~ msgid "" -#~ "This method has to be called to ensure that underlying resources are " -#~ "cleaned-up." -#~ msgstr "" -#~ "Cette méthode doit être appelée pour s'assurer que les ressources sous-" -#~ "jacentes sont nettoyées." - -#~ msgid "" -#~ "This implementation starts a new waiting thread for every subprocess " -#~ "spawn." -#~ msgstr "" -#~ "Cette implémentation démarre un nouveau fil d'exécution en attente pour " -#~ "chaque génération de sous-processus." - -#~ msgid "" -#~ "It works reliably even when the asyncio event loop is run in a non-main " -#~ "OS thread." -#~ msgstr "" -#~ "Il fonctionne de manière fiable même lorsque la boucle d'événements " -#~ "*asyncio* est exécutée dans un fil d'exécution non principal." - -#, fuzzy -#~ msgid "" -#~ "There is no noticeable overhead when handling a big number of children " -#~ "(*O*\\ (1) each time a child terminates), but starting a thread per " -#~ "process requires extra memory." -#~ msgstr "" -#~ "Il n'y a pas de surcharge visible lors de la manipulation d'un grand " -#~ "nombre d'enfants (*O(1)* à chaque fois qu'un enfant se termine)." - -#~ msgid "This watcher is used by default." -#~ msgstr "Cet observateur est utilisé par défaut." - -#~ msgid "" -#~ "This implementation registers a :py:data:`SIGCHLD` signal handler on " -#~ "instantiation. That can break third-party code that installs a custom " -#~ "handler for :py:data:`SIGCHLD` signal." -#~ msgstr "" -#~ "Cette implémentation enregistre un gestionnaire de " -#~ "signal :py:data:`SIGCHLD` lors de l'instanciation. Cela peut casser le " -#~ "code tiers qui installe un gestionnaire personnalisé pour le " -#~ "signal :py:data:`SIGCHLD`." - -#~ msgid "" -#~ "The watcher avoids disrupting other code spawning processes by polling " -#~ "every process explicitly on a :py:data:`SIGCHLD` signal." -#~ msgstr "" -#~ "L'observateur évite de perturber un autre code qui crée des processus en " -#~ "interrogeant explicitement chaque processus sur un " -#~ "signal :py:data:`SIGCHLD`." - -#~ msgid "" -#~ "There is no limitation for running subprocesses from different threads " -#~ "once the watcher is installed." -#~ msgstr "" -#~ "Il n'y a aucune limitation pour l'exécution de sous-processus à partir de " -#~ "différents fils d'exécution une fois l'observateur installé." - -#, fuzzy -#~ msgid "" -#~ "The solution is safe but it has a significant overhead when handling a " -#~ "big number of processes (*O*\\ (*n*) each time a :py:data:`SIGCHLD` is " -#~ "received)." -#~ msgstr "" -#~ "La solution est sûre mais elle a une surcharge importante lors de la " -#~ "gestion d'un grand nombre de processus (*O(n)* chaque fois " -#~ "qu'un :py:data:`SIGCHLD` est reçu)." - -#~ msgid "" -#~ "This implementation uses active event loop from the main thread to " -#~ "handle :py:data:`SIGCHLD` signal. If the main thread has no running event " -#~ "loop another thread cannot spawn a subprocess (:exc:`RuntimeError` is " -#~ "raised)." -#~ msgstr "" -#~ "Cette implémentation utilise une boucle d'événements active du fil " -#~ "d'exécution principal pour gérer le signal :py:data:`SIGCHLD`. Si le fil " -#~ "d'exécution principal n'a pas de boucle d'événements en cours " -#~ "d'exécution, un autre fil ne pourra pas générer de sous-processus " -#~ "(une :exc:`RuntimeError` est levée)." - -#, fuzzy -#~ msgid "" -#~ "This solution is as safe as :class:`MultiLoopChildWatcher` and has the " -#~ "same *O*\\ (*n*) complexity but requires a running event loop in the main " -#~ "thread to work." -#~ msgstr "" -#~ "Cette solution est aussi sûre que :class:`MultiLoopChildWatcher` et a la " -#~ "même complexité en *O(N)* mais nécessite une boucle d'événements en cours " -#~ "d'exécution dans le fil d'exécution principal pour fonctionner." - -#~ msgid "" -#~ "This implementation reaps every terminated processes by calling " -#~ "``os.waitpid(-1)`` directly, possibly breaking other code spawning " -#~ "processes and waiting for their termination." -#~ msgstr "" -#~ "Cette implémentation récupère tous les processus terminés en appelant " -#~ "directement ``os.waitpid(-1)``, cassant éventuellement un autre code qui " -#~ "génère des processus et attend leur fin." - -#, fuzzy -#~ msgid "" -#~ "There is no noticeable overhead when handling a big number of children " -#~ "(*O*\\ (1) each time a child terminates)." -#~ msgstr "" -#~ "Il n'y a pas de surcharge visible lors de la manipulation d'un grand " -#~ "nombre d'enfants (*O(1)* à chaque fois qu'un enfant se termine)." - -#~ msgid "" -#~ "This solution requires a running event loop in the main thread to work, " -#~ "as :class:`SafeChildWatcher`." -#~ msgstr "" -#~ "Cette solution nécessite une boucle d'événements en cours d'exécution " -#~ "dans le fil d'exécution principal pour fonctionner, " -#~ "comme :class:`SafeChildWatcher`." - -#~ msgid "" -#~ "This implementation polls process file descriptors (pidfds) to await " -#~ "child process termination. In some respects, :class:`PidfdChildWatcher` " -#~ "is a \"Goldilocks\" child watcher implementation. It doesn't require " -#~ "signals or threads, doesn't interfere with any processes launched outside " -#~ "the event loop, and scales linearly with the number of subprocesses " -#~ "launched by the event loop. The main disadvantage is that pidfds are " -#~ "specific to Linux, and only work on recent (5.3+) kernels." -#~ msgstr "" -#~ "Cette implémentation interroge les descripteurs de fichiers de processus " -#~ "(*pidfds*) pour attendre la fin du processus enfant. À certains " -#~ "égards, :class:`PidfdChildWatcher` est une implémentation d'observateur " -#~ "d'enfants *Goldilocks*. Elle ne nécessite ni signaux ni threads, " -#~ "n'interfère avec aucun processus lancé en dehors de la boucle " -#~ "d'événements et évolue de manière linéaire avec le nombre de sous-" -#~ "processus lancés par la boucle d'événements. Le principal inconvénient " -#~ "est que les *pidfds* sont spécifiques à Linux et ne fonctionnent que sur " -#~ "les noyaux récents (5.3+)." - -#~ msgid ":ref:`Availability `: Windows." -#~ msgstr ":ref:`Disponibilité ` : Windows." - -#~ msgid "" -#~ "An event loop policy is a global per-process object that controls the " -#~ "management of the event loop. Each event loop has a default policy, which " -#~ "can be changed and customized using the policy API." -#~ msgstr "" -#~ "Une stratégie de boucle d'événements est un objet global, pour chaque " -#~ "processus, qui contrôle la gestion de la boucle d'événement. Chaque " -#~ "boucle d'événement a une stratégie par défaut, qui peut être modifiée et " -#~ "personnalisée à l'aide de l'API de la stratégie." diff --git a/library/asyncio-protocol.po b/library/asyncio-protocol.po deleted file mode 100644 index 7f699fd240..0000000000 --- a/library/asyncio-protocol.po +++ /dev/null @@ -1,1379 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-06-19 23:01+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-protocol.rst:9 -msgid "Transports and Protocols" -msgstr "Transports et Protocoles" - -#: library/asyncio-protocol.rst:12 -msgid "Preface" -msgstr "Préface" - -#: library/asyncio-protocol.rst:13 -msgid "" -"Transports and Protocols are used by the **low-level** event loop APIs such " -"as :meth:`loop.create_connection`. They use callback-based programming " -"style and enable high-performance implementations of network or IPC " -"protocols (e.g. HTTP)." -msgstr "" -"Les transports et les protocoles sont utilisés par les API de boucle " -"d'événements **de bas niveau** telles que :meth:`loop.create_connection`. " -"Ils utilisent un style de programmation basé sur les fonctions de rappel et " -"permettent des implémentations hautes performances de protocoles réseau (par " -"exemple, HTTP) ou de communication inter-processus (*IPC*)." - -#: library/asyncio-protocol.rst:18 -msgid "" -"Essentially, transports and protocols should only be used in libraries and " -"frameworks and never in high-level asyncio applications." -msgstr "" -"Avant tout, les transports et les protocoles ne doivent être utilisés que " -"dans des bibliothèques et des cadriciels et jamais dans des applications " -"asynchrones de haut niveau." - -#: library/asyncio-protocol.rst:22 -msgid "This documentation page covers both `Transports`_ and `Protocols`_." -msgstr "" -"Cette page de documentation couvre à la fois `Transports`_ et `Protocoles`_." - -#: library/asyncio-protocol.rst:25 -msgid "Introduction" -msgstr "Introduction" - -#: library/asyncio-protocol.rst:26 -msgid "" -"At the highest level, the transport is concerned with *how* bytes are " -"transmitted, while the protocol determines *which* bytes to transmit (and to " -"some extent when)." -msgstr "" -"Au plus haut niveau, le transport concerne *comment* les octets sont " -"transmis, tandis que le protocole détermine *quels* octets transmettre (et " -"dans une certaine mesure quand)." - -#: library/asyncio-protocol.rst:30 -msgid "" -"A different way of saying the same thing: a transport is an abstraction for " -"a socket (or similar I/O endpoint) while a protocol is an abstraction for an " -"application, from the transport's point of view." -msgstr "" -"Pour l'écrire autrement : un transport est une abstraction pour un " -"connecteur (*socket* ou tout autre point de terminaison d'entrée-sortie) " -"tandis qu'un protocole est une abstraction pour une application, du point de " -"vue du transport." - -#: library/asyncio-protocol.rst:35 -msgid "" -"Yet another view is the transport and protocol interfaces together define an " -"abstract interface for using network I/O and interprocess I/O." -msgstr "" -"Encore une autre vue est que les interfaces de transport et de protocole " -"définissent ensemble une interface abstraite pour utiliser les entrées-" -"sorties réseau et les entrées-sorties inter-processus." - -#: library/asyncio-protocol.rst:39 -msgid "" -"There is always a 1:1 relationship between transport and protocol objects: " -"the protocol calls transport methods to send data, while the transport calls " -"protocol methods to pass it data that has been received." -msgstr "" -"Il existe toujours une relation 1:1 entre les objets de transport et de " -"protocole : le protocole appelle les méthodes de transport pour envoyer des " -"données, tandis que le transport appelle les méthodes de protocole pour lui " -"transmettre les données reçues." - -#: library/asyncio-protocol.rst:44 -msgid "" -"Most of connection oriented event loop methods (such " -"as :meth:`loop.create_connection`) usually accept a *protocol_factory* " -"argument used to create a *Protocol* object for an accepted connection, " -"represented by a *Transport* object. Such methods usually return a tuple of " -"``(transport, protocol)``." -msgstr "" -"La plupart des méthodes de boucles d'événements orientées connexion (telles " -"que :meth:`loop.create_connection`) acceptent généralement un argument " -"*protocol_factory* utilisé pour créer un objet *Protocol* pour une connexion " -"acceptée, représentée par un objet *Transport*. De telles méthodes renvoient " -"généralement un *n*-uplet ``(transport, protocol)``." - -#: library/asyncio-protocol.rst:51 -msgid "Contents" -msgstr "Sommaire" - -#: library/asyncio-protocol.rst:52 -msgid "This documentation page contains the following sections:" -msgstr "Cette page de documentation contient les sections suivantes :" - -#: library/asyncio-protocol.rst:54 -msgid "" -"The `Transports`_ section documents " -"asyncio :class:`BaseTransport`, :class:`ReadTransport`, :class:`WriteTransport`, :class:`Transport`, :class:`DatagramTransport`, " -"and :class:`SubprocessTransport` classes." -msgstr "" -"La section `Transports`_ documente les classes " -"*asyncio* :class:`BaseTransport`, :class:`ReadTransport`, :class:`WriteTransport`, :class:`Transport`, :class:`DatagramTransport` " -"et :class:`SubprocessTransport`." - -#: library/asyncio-protocol.rst:59 -msgid "" -"The `Protocols`_ section documents " -"asyncio :class:`BaseProtocol`, :class:`Protocol`, :class:`BufferedProtocol`, :class:`DatagramProtocol`, " -"and :class:`SubprocessProtocol` classes." -msgstr "" -"La section `Protocols`_ documente les classes " -"*asyncio* :class:`BaseProtocol`, :class:`Protocol`, :class:`BufferedProtocol`, :class:`DatagramProtocol` " -"et :class:`SubprocessProtocol`." - -#: library/asyncio-protocol.rst:63 -msgid "" -"The `Examples`_ section showcases how to work with transports, protocols, " -"and low-level event loop APIs." -msgstr "" -"La section `Examples`_ montre comment utiliser les transports, les " -"protocoles et les API de boucle d'événements de bas niveau." - -#: library/asyncio-protocol.rst:70 -msgid "Transports" -msgstr "Transports" - -#: library/asyncio-protocol.rst:72 -msgid "**Source code:** :source:`Lib/asyncio/transports.py`" -msgstr "**Code source :** :source:`Lib/asyncio/transports.py`" - -#: library/asyncio-protocol.rst:76 -msgid "" -"Transports are classes provided by :mod:`asyncio` in order to abstract " -"various kinds of communication channels." -msgstr "" -"Les transports sont des classes fournies par :mod:`asyncio` afin d'abstraire " -"différents types de canaux de communication." - -#: library/asyncio-protocol.rst:79 -msgid "" -"Transport objects are always instantiated by an :ref:`asyncio event loop " -"`." -msgstr "" -"Les objets de transport sont toujours instanciés par une :ref:`boucle " -"d'événements asyncio `." - -#: library/asyncio-protocol.rst:82 -msgid "" -"asyncio implements transports for TCP, UDP, SSL, and subprocess pipes. The " -"methods available on a transport depend on the transport's kind." -msgstr "" -"*asyncio* implémente les transports pour TCP, UDP, SSL et les tubes de sous-" -"processus. Les méthodes disponibles sur un transport dépendent du type de " -"transport." - -#: library/asyncio-protocol.rst:85 -msgid "" -"The transport classes are :ref:`not thread safe `." -msgstr "" -"Les classes de transport ne sont :ref:`pas compatibles avec les fils " -"d'exécution multiples `." - -#: library/asyncio-protocol.rst:89 -msgid "Transports Hierarchy" -msgstr "Hiérarchie des transports" - -#: library/asyncio-protocol.rst:93 -msgid "" -"Base class for all transports. Contains methods that all asyncio transports " -"share." -msgstr "" -"Classe de base pour tous les transports. Contient des méthodes partagées par " -"tous les transports *asyncio*." - -#: library/asyncio-protocol.rst:98 -msgid "A base transport for write-only connections." -msgstr "Transport de base pour les connexions en écriture seule." - -#: library/asyncio-protocol.rst:100 -msgid "" -"Instances of the *WriteTransport* class are returned from " -"the :meth:`loop.connect_write_pipe` event loop method and are also used by " -"subprocess-related methods like :meth:`loop.subprocess_exec`." -msgstr "" -"Les instances de la classe *WriteTransport* sont renvoyées par la méthode de " -"boucle d'événements :meth:`loop.connect_write_pipe` et sont également " -"utilisées par les méthodes liées aux sous-processus " -"comme :meth:`loop.subprocess_exec`." - -#: library/asyncio-protocol.rst:107 -msgid "A base transport for read-only connections." -msgstr "Transport de base pour les connexions en lecture seule." - -#: library/asyncio-protocol.rst:109 -msgid "" -"Instances of the *ReadTransport* class are returned from " -"the :meth:`loop.connect_read_pipe` event loop method and are also used by " -"subprocess-related methods like :meth:`loop.subprocess_exec`." -msgstr "" -"Les instances de la classe *ReadTransport* sont renvoyées par la méthode de " -"boucle d'événements :meth:`loop.connect_read_pipe` et sont également " -"utilisées par les méthodes liées aux sous-processus " -"comme :meth:`loop.subprocess_exec`." - -#: library/asyncio-protocol.rst:116 -msgid "" -"Interface representing a bidirectional transport, such as a TCP connection." -msgstr "" -"Interface représentant un transport bidirectionnel, comme une connexion TCP." - -#: library/asyncio-protocol.rst:119 -msgid "" -"The user does not instantiate a transport directly; they call a utility " -"function, passing it a protocol factory and other information necessary to " -"create the transport and protocol." -msgstr "" -"L'utilisateur n'instancie pas un transport directement ; il appelle une " -"fonction utilitaire, lui transmettant une fabrique de protocoles et d'autres " -"informations nécessaires pour créer le transport et le protocole." - -#: library/asyncio-protocol.rst:123 -msgid "" -"Instances of the *Transport* class are returned from or used by event loop " -"methods " -"like :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.create_server`, :meth:`loop.sendfile`, " -"etc." -msgstr "" -"Les instances de la classe *Transport* sont renvoyées ou utilisées par des " -"méthodes de boucle d'événements " -"comme :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.create_server`, :meth:`loop.sendfile`, " -"etc." - -#: library/asyncio-protocol.rst:131 -msgid "A transport for datagram (UDP) connections." -msgstr "Transport pour les connexions par datagrammes (UDP)." - -#: library/asyncio-protocol.rst:133 -msgid "" -"Instances of the *DatagramTransport* class are returned from " -"the :meth:`loop.create_datagram_endpoint` event loop method." -msgstr "" -"Les instances de la classe *DatagramTransport* sont renvoyées par la méthode " -"de boucle d'événements :meth:`loop.create_datagram_endpoint`." - -#: library/asyncio-protocol.rst:139 -msgid "" -"An abstraction to represent a connection between a parent and its child OS " -"process." -msgstr "" -"Abstraction pour représenter une connexion entre un parent et son processus " -"enfant au niveau du système d'exploitation." - -#: library/asyncio-protocol.rst:142 -msgid "" -"Instances of the *SubprocessTransport* class are returned from event loop " -"methods :meth:`loop.subprocess_shell` and :meth:`loop.subprocess_exec`." -msgstr "" -"Les instances de la classe *SubprocessTransport* sont renvoyées par les " -"méthodes de boucle d'événements :meth:`loop.subprocess_shell` " -"et :meth:`loop.subprocess_exec`." - -#: library/asyncio-protocol.rst:148 -msgid "Base Transport" -msgstr "Classe de base des Transports" - -#: library/asyncio-protocol.rst:152 -msgid "Close the transport." -msgstr "Ferme le transport." - -#: library/asyncio-protocol.rst:154 -msgid "" -"If the transport has a buffer for outgoing data, buffered data will be " -"flushed asynchronously. No more data will be received. After all buffered " -"data is flushed, the protocol's :meth:`protocol.connection_lost() " -"` method will be called with :const:`None` as " -"its argument. The transport should not be used once it is closed." -msgstr "" -"Si le transport a une mémoire tampon pour les données sortantes, les données " -"mises en mémoire tampon seront vidées de manière asynchrone. Aucune autre " -"donnée ne sera reçue. Une fois que toutes les données mises en mémoire " -"tampon ont été vidées, la méthode :meth:`protocol.connection_lost() " -"` sera appelée avec :const:`None` comme " -"argument. Le transport ne doit pas être utilisé une fois qu'il est fermé." - -#: library/asyncio-protocol.rst:164 -msgid "Return ``True`` if the transport is closing or is closed." -msgstr "Renvoie ``True`` si le transport se ferme ou est fermé." - -#: library/asyncio-protocol.rst:168 -msgid "Return information about the transport or underlying resources it uses." -msgstr "" -"Renvoie des informations sur le transport ou les ressources sous-jacentes " -"qu'il utilise." - -#: library/asyncio-protocol.rst:171 -msgid "" -"*name* is a string representing the piece of transport-specific information " -"to get." -msgstr "" -"*name* est une chaîne représentant l'information spécifique au transport à " -"obtenir." - -#: library/asyncio-protocol.rst:174 -msgid "" -"*default* is the value to return if the information is not available, or if " -"the transport does not support querying it with the given third-party event " -"loop implementation or on the current platform." -msgstr "" -"*default* est la valeur à renvoyer si les informations ne sont pas " -"disponibles ou si le transport ne prend pas en charge l'implémentation de " -"boucle d'événements tierce donnée ou la plateforme actuelle." - -#: library/asyncio-protocol.rst:179 -msgid "" -"For example, the following code attempts to get the underlying socket object " -"of the transport::" -msgstr "" -"Par exemple, le code suivant tente d'obtenir l'objet *socket* sous-jacent du " -"transport :" - -#: library/asyncio-protocol.rst:186 -msgid "Categories of information that can be queried on some transports:" -msgstr "" -"Catégories d'informations pouvant être interrogées sur certains transports :" - -#: library/asyncio-protocol.rst:188 -msgid "socket:" -msgstr "*socket* :" - -#: library/asyncio-protocol.rst:190 -msgid "" -"``'peername'``: the remote address to which the socket is connected, result " -"of :meth:`socket.socket.getpeername` (``None`` on error)" -msgstr "" -"``'peername'`` : l'adresse distante à laquelle le *socket* est connecté, " -"résultat de :meth:`socket.socket.getpeername` (``None`` en cas d'erreur)" - -#: library/asyncio-protocol.rst:194 -msgid "``'socket'``: :class:`socket.socket` instance" -msgstr "``'socket'`` : Instance de :class:`socket.socket`" - -#: library/asyncio-protocol.rst:196 -msgid "" -"``'sockname'``: the socket's own address, result " -"of :meth:`socket.socket.getsockname`" -msgstr "" -"``'sockname'`` : la propre adresse du connecteur, résultat " -"de :meth:`socket.socket.getsockname`" - -#: library/asyncio-protocol.rst:199 -msgid "SSL socket:" -msgstr "Connecteur (*socket*) SSL :" - -#: library/asyncio-protocol.rst:201 -msgid "" -"``'compression'``: the compression algorithm being used as a string, or " -"``None`` if the connection isn't compressed; result " -"of :meth:`ssl.SSLSocket.compression`" -msgstr "" -"``'compression'`` : l'algorithme de compression utilisé (chaîne de " -"caractères), ou ``None`` si la connexion n'est pas compressée ; résultat " -"de :meth:`ssl.SSLSocket.compression`" - -#: library/asyncio-protocol.rst:205 -msgid "" -"``'cipher'``: a three-value tuple containing the name of the cipher being " -"used, the version of the SSL protocol that defines its use, and the number " -"of secret bits being used; result of :meth:`ssl.SSLSocket.cipher`" -msgstr "" -"``'cipher'`` : un *n*-uplet à trois valeurs contenant le nom du chiffrement " -"utilisé, la version du protocole SSL qui définit son utilisation et le " -"nombre de bits secrets utilisés ; résultat de :meth:`ssl.SSLSocket.cipher`" - -#: library/asyncio-protocol.rst:210 -msgid "" -"``'peercert'``: peer certificate; result of :meth:`ssl.SSLSocket.getpeercert`" -msgstr "" -"``'peercert'`` : certificat du pair ; résultat " -"de :meth:`ssl.SSLSocket.getpeercert`" - -#: library/asyncio-protocol.rst:213 -msgid "``'sslcontext'``: :class:`ssl.SSLContext` instance" -msgstr "``sslcontext'`` : instance de :class:`ssl.SSLContext`" - -#: library/asyncio-protocol.rst:215 -msgid "" -"``'ssl_object'``: :class:`ssl.SSLObject` or :class:`ssl.SSLSocket` instance" -msgstr "" -"``'ssl_object'`` : instance de :class:`ssl.SSLObject` ou " -"de :class:`ssl.SSLSocket`" - -#: library/asyncio-protocol.rst:218 -msgid "pipe:" -msgstr "tube :" - -#: library/asyncio-protocol.rst:220 -msgid "``'pipe'``: pipe object" -msgstr "``'pipe'`` : objet *pipe*" - -#: library/asyncio-protocol.rst:222 -msgid "subprocess:" -msgstr "sous-processus :" - -#: library/asyncio-protocol.rst:224 -msgid "``'subprocess'``: :class:`subprocess.Popen` instance" -msgstr "``'sous-processus'`` : instance de :class:`subprocess.Popen`" - -#: library/asyncio-protocol.rst:228 -msgid "Set a new protocol." -msgstr "Change le protocole." - -#: library/asyncio-protocol.rst:230 -msgid "" -"Switching protocol should only be done when both protocols are documented to " -"support the switch." -msgstr "" -"La commutation de protocole ne doit être effectuée que lorsque les deux " -"protocoles sont documentés pour prendre en charge la commutation." - -#: library/asyncio-protocol.rst:235 -msgid "Return the current protocol." -msgstr "Renvoie le protocole courant." - -#: library/asyncio-protocol.rst:239 -msgid "Read-only Transports" -msgstr "Transports en lecture seule" - -#: library/asyncio-protocol.rst:243 -msgid "Return ``True`` if the transport is receiving new data." -msgstr "Renvoie ``True`` si le transport reçoit de nouvelles données." - -#: library/asyncio-protocol.rst:249 -msgid "" -"Pause the receiving end of the transport. No data will be passed to the " -"protocol's :meth:`protocol.data_received() ` method " -"until :meth:`resume_reading` is called." -msgstr "" -"Met en pause l'extrémité de réception du transport. Aucune donnée ne sera " -"transmise à la méthode :meth:`protocol.data_received() " -"` du protocole jusqu'à ce que :meth:`resume_reading` " -"soit appelée." - -# suit un : -#: library/asyncio-protocol.rst:253 -msgid "" -"The method is idempotent, i.e. it can be called when the transport is " -"already paused or closed." -msgstr "" -"la méthode est idempotente, c'est-à-dire qu'elle peut être appelée lorsque " -"le transport est déjà en pause ou fermé." - -#: library/asyncio-protocol.rst:259 -msgid "" -"Resume the receiving end. The protocol's :meth:`protocol.data_received() " -"` method will be called once again if some data is " -"available for reading." -msgstr "" -"Reprend la réception. La méthode :meth:`protocol.data_received() " -"` du protocole sera appelée à nouveau si certaines " -"données sont disponibles pour la lecture." - -# suit un : -#: library/asyncio-protocol.rst:263 -msgid "" -"The method is idempotent, i.e. it can be called when the transport is " -"already reading." -msgstr "" -"la méthode est idempotente, c'est-à-dire qu'elle peut être appelée alors que " -"le transport est déjà en train de lire." - -#: library/asyncio-protocol.rst:269 -msgid "Write-only Transports" -msgstr "Transports en lecture-écriture" - -#: library/asyncio-protocol.rst:273 -msgid "" -"Close the transport immediately, without waiting for pending operations to " -"complete. Buffered data will be lost. No more data will be received. The " -"protocol's :meth:`protocol.connection_lost() ` " -"method will eventually be called with :const:`None` as its argument." -msgstr "" -"Ferme le transport immédiatement, sans attendre la fin des opérations en " -"attente. Les données mises en mémoire tampon sont perdues. Aucune autre " -"donnée ne sera reçue. La méthode :meth:`protocol.connection_lost() " -"` du protocole sera éventuellement appelée " -"avec :const:`None` comme argument." - -#: library/asyncio-protocol.rst:281 -msgid "" -"Return :const:`True` if the transport " -"supports :meth:`~WriteTransport.write_eof`, :const:`False` if not." -msgstr "" -"Renvoie :const:`True` si le transport " -"gère :meth:`~WriteTransport.write_eof`, :const:`False` sinon." - -#: library/asyncio-protocol.rst:286 -msgid "Return the current size of the output buffer used by the transport." -msgstr "" -"Renvoie la taille actuelle du tampon de sortie utilisé par le transport." - -#: library/asyncio-protocol.rst:290 -msgid "" -"Get the *high* and *low* watermarks for write flow control. Return a tuple " -"``(low, high)`` where *low* and *high* are positive number of bytes." -msgstr "" -"Obtient les seuils *high* et *low* pour le contrôle du flux d'écriture. " -"Renvoie un *n*-uplet ``(low, high)`` où *low* et *high* sont des nombres " -"positifs d'octets." - -#: library/asyncio-protocol.rst:294 -msgid "Use :meth:`set_write_buffer_limits` to set the limits." -msgstr "Utilisez :meth:`set_write_buffer_limits` pour définir les limites." - -#: library/asyncio-protocol.rst:300 -msgid "Set the *high* and *low* watermarks for write flow control." -msgstr "" -"Définit les seuils *high* et *low* pour le contrôle du flux d'écriture." - -#: library/asyncio-protocol.rst:302 -msgid "" -"These two values (measured in number of bytes) control when the " -"protocol's :meth:`protocol.pause_writing() ` " -"and :meth:`protocol.resume_writing() ` methods " -"are called. If specified, the low watermark must be less than or equal to " -"the high watermark. Neither *high* nor *low* can be negative." -msgstr "" -"Ces deux valeurs (mesurées en nombre d'octets) contrôlent quand les " -"méthodes :meth:`protocol.pause_writing() ` " -"et :meth:`protocol.resume_writing() ` du " -"protocole sont appelées. S'il est spécifié, le seuil bas doit être inférieur " -"ou égal au seuil haut. Ni *high* ni *low* ne peuvent être négatifs." - -#: library/asyncio-protocol.rst:310 -msgid "" -":meth:`~BaseProtocol.pause_writing` is called when the buffer size becomes " -"greater than or equal to the *high* value. If writing has been " -"paused, :meth:`~BaseProtocol.resume_writing` is called when the buffer size " -"becomes less than or equal to the *low* value." -msgstr "" -":meth:`~BaseProtocol.pause_writing` est appelée lorsque la taille du tampon " -"devient supérieure ou égale à la valeur *high*. Si l'écriture a été " -"interrompue, :meth:`~BaseProtocol.resume_writing` est appelée lorsque la " -"taille du tampon devient inférieure ou égale à la valeur *low*." - -#: library/asyncio-protocol.rst:315 -msgid "" -"The defaults are implementation-specific. If only the high watermark is " -"given, the low watermark defaults to an implementation-specific value less " -"than or equal to the high watermark. Setting *high* to zero forces *low* to " -"zero as well, and causes :meth:`~BaseProtocol.pause_writing` to be called " -"whenever the buffer becomes non-empty. Setting *low* to zero " -"causes :meth:`~BaseProtocol.resume_writing` to be called only once the " -"buffer is empty. Use of zero for either limit is generally sub-optimal as it " -"reduces opportunities for doing I/O and computation concurrently." -msgstr "" -"Les valeurs par défaut sont spécifiques à l'implémentation. Si seul le seuil " -"supérieur est donné, le seuil bas prend par défaut une valeur spécifique à " -"l'implémentation inférieure ou égale au seuil supérieur. Définir *high* sur " -"zéro force également *low* sur zéro et provoque l'appel " -"de :meth:`~BaseProtocol.pause_writing` chaque fois que le tampon devient non " -"vide. Définir *low* sur zéro entraîne l'appel " -"de :meth:`~BaseProtocol.resume_writing` uniquement une fois que le tampon " -"est vide. L'utilisation de zéro pour l'un ou l'autre seuil est généralement " -"sous-optimal car cela réduit les possibilités d'effectuer des entrées-" -"sorties et des calculs simultanément." - -#: library/asyncio-protocol.rst:326 -msgid "Use :meth:`~WriteTransport.get_write_buffer_limits` to get the limits." -msgstr "" -"Utilisez :meth:`~WriteTransport.get_write_buffer_limits` pour obtenir les " -"limites." - -#: library/asyncio-protocol.rst:331 -msgid "Write some *data* bytes to the transport." -msgstr "Écrit des octets de *data* sur le transport." - -#: library/asyncio-protocol.rst:333 library/asyncio-protocol.rst:362 -msgid "" -"This method does not block; it buffers the data and arranges for it to be " -"sent out asynchronously." -msgstr "" -"Cette méthode ne bloque pas ; elle met les données en mémoire tampon et " -"s'arrange pour qu'elles soient envoyées de manière asynchrone." - -#: library/asyncio-protocol.rst:338 -msgid "" -"Write a list (or any iterable) of data bytes to the transport. This is " -"functionally equivalent to calling :meth:`write` on each element yielded by " -"the iterable, but may be implemented more efficiently." -msgstr "" -"Écrit une liste (ou tout itérable) d'octets de données dans le transport. " -"Ceci est fonctionnellement équivalent à appeler :meth:`write` sur chaque " -"élément produit par l'itérable, mais peut être implémentée plus efficacement." - -#: library/asyncio-protocol.rst:345 -msgid "" -"Close the write end of the transport after flushing all buffered data. Data " -"may still be received." -msgstr "" -"Ferme l'extrémité d'écriture du transport après avoir vidé toutes les " -"données mises en mémoire tampon. Des données peuvent encore être reçues." - -#: library/asyncio-protocol.rst:348 -msgid "" -"This method can raise :exc:`NotImplementedError` if the transport (e.g. SSL) " -"doesn't support half-closed connections." -msgstr "" -"Cette méthode peut lever :exc:`NotImplementedError` si le transport (par " -"exemple SSL) ne prend pas en charge les connexions semi-fermées." - -#: library/asyncio-protocol.rst:353 -msgid "Datagram Transports" -msgstr "Transports par datagrammes" - -#: library/asyncio-protocol.rst:357 -msgid "" -"Send the *data* bytes to the remote peer given by *addr* (a transport-" -"dependent target address). If *addr* is :const:`None`, the data is sent to " -"the target address given on transport creation." -msgstr "" -"Envoie les octets *data* au pair distant indiqué par *addr* (une adresse " -"cible dépendante du transport). Si *addr* est :const:`None`, les données " -"sont envoyées à l'adresse cible indiquée lors de la création du transport." - -#: library/asyncio-protocol.rst:365 -msgid "" -"This method can be called with an empty bytes object to send a zero-length " -"datagram. The buffer size calculation used for flow control is also updated " -"to account for the datagram header." -msgstr "" - -#: library/asyncio-protocol.rst:372 -msgid "" -"Close the transport immediately, without waiting for pending operations to " -"complete. Buffered data will be lost. No more data will be received. The " -"protocol's :meth:`protocol.connection_lost() ` " -"method will eventually be called with :const:`None` as its argument." -msgstr "" -"Ferme le transport immédiatement, sans attendre la fin des opérations en " -"attente. Les données mises en mémoire tampon sont perdues. Aucune autre " -"donnée ne sera reçue. La méthode :meth:`protocol.connection_lost() " -"` du protocole sera éventuellement appelée " -"avec :const:`None` comme argument." - -#: library/asyncio-protocol.rst:382 -msgid "Subprocess Transports" -msgstr "Transports entre sous-processus" - -#: library/asyncio-protocol.rst:386 -msgid "Return the subprocess process id as an integer." -msgstr "" -"Renvoie l'identifiant du sous processus sous la forme d'un nombre entier." - -#: library/asyncio-protocol.rst:390 -msgid "" -"Return the transport for the communication pipe corresponding to the integer " -"file descriptor *fd*:" -msgstr "" -"Renvoie le transport pour le canal de communication correspondant au " -"descripteur de fichier *fd* donné sous forme d'un entier :" - -#: library/asyncio-protocol.rst:393 -#, fuzzy -msgid "" -"``0``: writable streaming transport of the standard input (*stdin*), " -"or :const:`None` if the subprocess was not created with ``stdin=PIPE``" -msgstr "" -"``0`` : transport de flux en lecture de l'entrée standard (*stdin*), " -"ou :const:`None` si le sous-processus n'a pas été créé avec ``stdin=PIPE``" - -#: library/asyncio-protocol.rst:395 -#, fuzzy -msgid "" -"``1``: readable streaming transport of the standard output (*stdout*), " -"or :const:`None` if the subprocess was not created with ``stdout=PIPE``" -msgstr "" -"``1`` : transport de flux en écriture de la sortie standard (*stdout*), " -"ou :const:`None` si le sous-processus n'a pas été créé avec ``stdout=PIPE``" - -#: library/asyncio-protocol.rst:397 -#, fuzzy -msgid "" -"``2``: readable streaming transport of the standard error (*stderr*), " -"or :const:`None` if the subprocess was not created with ``stderr=PIPE``" -msgstr "" -"``2`` : transport de flux en écriture de l'erreur standard (*stderr*), " -"ou :const:`None` si le sous-processus n'a pas été créé avec ``stderr=PIPE``" - -#: library/asyncio-protocol.rst:399 -msgid "other *fd*: :const:`None`" -msgstr "autre *fd* : :const:`None`" - -#: library/asyncio-protocol.rst:403 -msgid "" -"Return the subprocess return code as an integer or :const:`None` if it " -"hasn't returned, which is similar to the :attr:`subprocess.Popen.returncode` " -"attribute." -msgstr "" -"Renvoie le code de retour du sous-processus sous la forme d'un entier " -"ou :const:`None` s'il n'a pas été renvoyé, ce qui est similaire à " -"l'attribut :attr:`subprocess.Popen.returncode`." - -#: library/asyncio-protocol.rst:409 -msgid "Kill the subprocess." -msgstr "Tue le sous-processus." - -#: library/asyncio-protocol.rst:411 -msgid "" -"On POSIX systems, the function sends SIGKILL to the subprocess. On Windows, " -"this method is an alias for :meth:`terminate`." -msgstr "" -"Sur les systèmes POSIX, la fonction envoie SIGKILL au sous-processus. Sous " -"Windows, cette méthode est un alias pour :meth:`terminate`." - -#: library/asyncio-protocol.rst:414 -msgid "See also :meth:`subprocess.Popen.kill`." -msgstr "Voir aussi :meth:`subprocess.Popen.kill`." - -#: library/asyncio-protocol.rst:418 -msgid "" -"Send the *signal* number to the subprocess, as " -"in :meth:`subprocess.Popen.send_signal`." -msgstr "" -"Envoie le numéro de *signal* au sous-processus, comme " -"dans :meth:`subprocess.Popen.send_signal`." - -#: library/asyncio-protocol.rst:423 -msgid "Stop the subprocess." -msgstr "Termine le sous-processus." - -#: library/asyncio-protocol.rst:425 -#, fuzzy -msgid "" -"On POSIX systems, this method sends :py:const:`~signal.SIGTERM` to the " -"subprocess. On Windows, the Windows API function :c:func:`!TerminateProcess` " -"is called to stop the subprocess." -msgstr "" -"Sur les systèmes POSIX, cette méthode envoie SIGTERM au sous-processus. Sous " -"Windows, la fonction API Windows *TerminateProcess()* est appelée pour " -"arrêter le sous-processus." - -#: library/asyncio-protocol.rst:429 -msgid "See also :meth:`subprocess.Popen.terminate`." -msgstr "Voir aussi :meth:`subprocess.Popen.terminate`." - -#: library/asyncio-protocol.rst:433 -msgid "Kill the subprocess by calling the :meth:`kill` method." -msgstr "Tue le sous-processus en appelant la méthode :meth:`kill`." - -#: library/asyncio-protocol.rst:435 -msgid "" -"If the subprocess hasn't returned yet, and close transports of *stdin*, " -"*stdout*, and *stderr* pipes." -msgstr "" -"Si le sous-processus n'est pas encore terminé, ferme les transports des " -"tubes *stdin*, *stdout* et *stderr*." - -#: library/asyncio-protocol.rst:442 -msgid "Protocols" -msgstr "Protocoles" - -#: library/asyncio-protocol.rst:444 -msgid "**Source code:** :source:`Lib/asyncio/protocols.py`" -msgstr "**Code source :** :source:`Lib/asyncio/protocols.py`" - -#: library/asyncio-protocol.rst:448 -msgid "" -"asyncio provides a set of abstract base classes that should be used to " -"implement network protocols. Those classes are meant to be used together " -"with :ref:`transports `." -msgstr "" -"*asyncio* fournit un ensemble de classes abstraites qui doivent être " -"utilisées pour implémenter des protocoles réseau. Ces classes sont destinées " -"à être utilisées avec les :ref:`transports `." - -#: library/asyncio-protocol.rst:452 -msgid "" -"Subclasses of abstract base protocol classes may implement some or all " -"methods. All these methods are callbacks: they are called by transports on " -"certain events, for example when some data is received. A base protocol " -"method should be called by the corresponding transport." -msgstr "" -"Les sous-classes des classes abstraites de protocole peuvent " -"implémenter certaines ou toutes les méthodes. Toutes ces méthodes sont des " -"rappels : elles sont appelées par des transports sur certains événements, " -"par exemple lors de la réception de certaines données. Une méthode de " -"protocole de base doit être appelée par le transport correspondant." - -#: library/asyncio-protocol.rst:459 -msgid "Base Protocols" -msgstr "Protocoles de base" - -#: library/asyncio-protocol.rst:463 -msgid "Base protocol with methods that all protocols share." -msgstr "Protocole de base avec des méthodes partagées par tous les protocoles." - -#: library/asyncio-protocol.rst:467 -msgid "" -"The base class for implementing streaming protocols (TCP, Unix sockets, etc)." -msgstr "" -"Classe mère pour l'implémentation des protocoles de streaming (TCP, sockets " -"Unix, etc.)." - -#: library/asyncio-protocol.rst:472 -msgid "" -"A base class for implementing streaming protocols with manual control of the " -"receive buffer." -msgstr "" -"Classe mère pour implémenter des protocoles de streaming avec contrôle " -"manuel du tampon de réception." - -#: library/asyncio-protocol.rst:477 -msgid "The base class for implementing datagram (UDP) protocols." -msgstr "" -"Classe mère pour l'implémentation des protocoles par datagrammes (UDP)." - -#: library/asyncio-protocol.rst:481 -msgid "" -"The base class for implementing protocols communicating with child processes " -"(unidirectional pipes)." -msgstr "" -"Classe mère pour implémenter des protocoles communiquant avec des processus " -"enfants (canaux unidirectionnels)." - -#: library/asyncio-protocol.rst:486 -msgid "Base Protocol" -msgstr "Protocoles de base" - -#: library/asyncio-protocol.rst:488 -msgid "All asyncio protocols can implement Base Protocol callbacks." -msgstr "" -"Tous les protocoles asynchrones peuvent implémenter des rappels pour les " -"protocoles de base." - -#: library/asyncio-protocol.rst:491 -msgid "Connection Callbacks" -msgstr "Rappels pour les connexions" - -#: library/asyncio-protocol.rst:492 -msgid "" -"Connection callbacks are called on all protocols, exactly once per a " -"successful connection. All other protocol callbacks can only be called " -"between those two methods." -msgstr "" -"Les méthodes de rappel pour les connexions concernent tous les protocoles, " -"exactement une fois par connexion réussie. Tous les autres rappels de " -"protocole ne peuvent être appelés qu'entre ces deux méthodes." - -#: library/asyncio-protocol.rst:498 -msgid "Called when a connection is made." -msgstr "Appelée lorsqu'une connexion est établie." - -#: library/asyncio-protocol.rst:500 -msgid "" -"The *transport* argument is the transport representing the connection. The " -"protocol is responsible for storing the reference to its transport." -msgstr "" -"L'argument *transport* est le transport représentant la connexion. Le " -"protocole est chargé de stocker la référence à son transport." - -#: library/asyncio-protocol.rst:506 -msgid "Called when the connection is lost or closed." -msgstr "Appelée lorsqu'une connexion est perdue ou fermée." - -#: library/asyncio-protocol.rst:508 -msgid "" -"The argument is either an exception object or :const:`None`. The latter " -"means a regular EOF is received, or the connection was aborted or closed by " -"this side of the connection." -msgstr "" -"L'argument est soit un objet exception soit :const:`None`. Ce dernier " -"signifie qu'un EOF régulier est reçu, ou que la connexion a été interrompue " -"ou fermée par ce côté de la connexion." - -#: library/asyncio-protocol.rst:514 -msgid "Flow Control Callbacks" -msgstr "Rappels pour le contrôle de flux" - -#: library/asyncio-protocol.rst:515 -msgid "" -"Flow control callbacks can be called by transports to pause or resume " -"writing performed by the protocol." -msgstr "" -"Les méthodes de rappel pour le contrôle de flux concernent les transports et " -"sont utilisés pour suspendre ou reprendre l'écriture effectuée par le " -"protocole." - -#: library/asyncio-protocol.rst:518 -msgid "" -"See the documentation of the :meth:`~WriteTransport.set_write_buffer_limits` " -"method for more details." -msgstr "" -"Voir la documentation de la " -"méthode :meth:`~WriteTransport.set_write_buffer_limits` pour plus de détails." - -#: library/asyncio-protocol.rst:523 -msgid "Called when the transport's buffer goes over the high watermark." -msgstr "" -"Appelée lorsque la mémoire tampon du transport dépasse la limite supérieure." - -#: library/asyncio-protocol.rst:527 -msgid "Called when the transport's buffer drains below the low watermark." -msgstr "" -"Appelée lorsque la mémoire tampon du transport passe sous le seuil bas." - -#: library/asyncio-protocol.rst:529 -msgid "" -"If the buffer size equals the high " -"watermark, :meth:`~BaseProtocol.pause_writing` is not called: the buffer " -"size must go strictly over." -msgstr "" -"Si la taille du tampon est égale au seuil " -"haut, :meth:`~BaseProtocol.pause_writing` n'est pas appelée : la taille du " -"tampon doit être strictement supérieure." - -#: library/asyncio-protocol.rst:533 -msgid "" -"Conversely, :meth:`~BaseProtocol.resume_writing` is called when the buffer " -"size is equal or lower than the low watermark. These end conditions are " -"important to ensure that things go as expected when either mark is zero." -msgstr "" -"Inversement, :meth:`~BaseProtocol.resume_writing` est appelée lorsque la " -"taille du tampon est égale ou inférieure au seuil bas. Ces conditions de fin " -"sont importantes pour s'assurer que les choses se déroulent comme prévu " -"lorsque l'un ou l'autre seuil est à zéro." - -#: library/asyncio-protocol.rst:540 -msgid "Streaming Protocols" -msgstr "Protocoles connectés" - -#: library/asyncio-protocol.rst:542 -msgid "" -"Event methods, such " -"as :meth:`loop.create_server`, :meth:`loop.create_unix_server`, :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.connect_accepted_socket`, :meth:`loop.connect_read_pipe`, " -"and :meth:`loop.connect_write_pipe` accept factories that return streaming " -"protocols." -msgstr "" -"Les méthodes d'événement, telles " -"que :meth:`loop.create_server`, :meth:`loop.create_unix_server`, :meth:`loop.create_connection`, :meth:`loop.create_unix_connection`, :meth:`loop.connect_accepted_socket`, :meth:`loop.connect_read_pipe` " -"et :meth:`loop.connect_write_pipe` acceptent les fabriques qui renvoient des " -"protocoles connectés." - -#: library/asyncio-protocol.rst:550 -msgid "" -"Called when some data is received. *data* is a non-empty bytes object " -"containing the incoming data." -msgstr "" -"Appelée lorsque certaines données sont reçues. *data* est un objet bytes non " -"vide contenant les données entrantes." - -#: library/asyncio-protocol.rst:553 -msgid "" -"Whether the data is buffered, chunked or reassembled depends on the " -"transport. In general, you shouldn't rely on specific semantics and instead " -"make your parsing generic and flexible. However, data is always received in " -"the correct order." -msgstr "" -"Le fait que les données soient mises en mémoire tampon, fragmentées ou " -"réassemblées dépend du transport. En général, vous ne devez pas vous fier à " -"une sémantique spécifique et plutôt rendre votre analyse générique et " -"flexible. Cependant, les données sont toujours reçues dans le bon ordre." - -#: library/asyncio-protocol.rst:558 -msgid "" -"The method can be called an arbitrary number of times while a connection is " -"open." -msgstr "" -"La méthode peut être appelée un nombre arbitraire de fois lorsqu'une " -"connexion est ouverte." - -#: library/asyncio-protocol.rst:561 -msgid "" -"However, :meth:`protocol.eof_received() ` is called " -"at most once. Once ``eof_received()`` is called, ``data_received()`` is not " -"called anymore." -msgstr "" -"Cependant, :meth:`protocol.eof_received() ` est " -"appelée au plus une fois. Une fois que ``eof_received()`` est appelée, " -"``data_received()`` n'est plus appelée." - -#: library/asyncio-protocol.rst:567 -msgid "" -"Called when the other end signals it won't send any more data (for example " -"by calling :meth:`transport.write_eof() `, if the " -"other end also uses asyncio)." -msgstr "" -"Appelée lorsque l'autre extrémité signale qu'il n'enverra plus de données " -"(par exemple en appelant :meth:`transport.write_eof() " -"`, si l'autre extrémité utilise également " -"*asyncio*)." - -#: library/asyncio-protocol.rst:572 -msgid "" -"This method may return a false value (including ``None``), in which case the " -"transport will close itself. Conversely, if this method returns a true " -"value, the protocol used determines whether to close the transport. Since " -"the default implementation returns ``None``, it implicitly closes the " -"connection." -msgstr "" -"Cette méthode peut renvoyer une valeur évaluée à faux (y compris ``None``), " -"auquel cas le transport se ferme de lui-même. À l'inverse, si cette méthode " -"renvoie une valeur évaluée à vrai, le protocole utilisé détermine s'il faut " -"fermer le transport. Puisque l'implémentation par défaut renvoie ``None``, " -"elle ferme implicitement la connexion." - -#: library/asyncio-protocol.rst:578 -msgid "" -"Some transports, including SSL, don't support half-closed connections, in " -"which case returning true from this method will result in the connection " -"being closed." -msgstr "" -"Certains transports, y compris SSL, ne prennent pas en charge les connexions " -"semi-fermées, auquel cas renvoyer *True* à partir de cette méthode entraîne " -"la fermeture de la connexion." - -#: library/asyncio-protocol.rst:583 library/asyncio-protocol.rst:641 -msgid "State machine:" -msgstr "Machine à états :" - -#: library/asyncio-protocol.rst:594 -msgid "Buffered Streaming Protocols" -msgstr "Protocoles connectés avec tampon" - -#: library/asyncio-protocol.rst:598 -msgid "" -"Buffered Protocols can be used with any event loop method that supports " -"`Streaming Protocols`_." -msgstr "" -"Les protocoles avec mise en mémoire tampon peuvent être utilisés avec " -"n'importe quelle méthode de boucle d'événements prenant en charge les " -"`protocoles connectés`_." - -#: library/asyncio-protocol.rst:601 -msgid "" -"``BufferedProtocol`` implementations allow explicit manual allocation and " -"control of the receive buffer. Event loops can then use the buffer provided " -"by the protocol to avoid unnecessary data copies. This can result in " -"noticeable performance improvement for protocols that receive big amounts of " -"data. Sophisticated protocol implementations can significantly reduce the " -"number of buffer allocations." -msgstr "" -"Les implémentations de ``BufferedProtocol`` permettent une allocation et un " -"contrôle manuels explicites du tampon de réception. Les boucles d'événements " -"peuvent alors utiliser le tampon fourni par le protocole pour éviter les " -"copies de données inutiles. Cela peut entraîner une amélioration notable des " -"performances pour les protocoles qui reçoivent de grandes quantités de " -"données. Des implémentations de protocole sophistiquées peuvent réduire " -"considérablement le nombre d'allocations de mémoire tampon." - -#: library/asyncio-protocol.rst:608 -msgid "" -"The following callbacks are called on :class:`BufferedProtocol` instances:" -msgstr "" -"Les méthodes de rappel suivantes sont appelées sur les " -"instances :class:`BufferedProtocol` :" - -#: library/asyncio-protocol.rst:613 -msgid "Called to allocate a new receive buffer." -msgstr "Appelée pour allouer un nouveau tampon de réception." - -#: library/asyncio-protocol.rst:615 -msgid "" -"*sizehint* is the recommended minimum size for the returned buffer. It is " -"acceptable to return smaller or larger buffers than what *sizehint* " -"suggests. When set to -1, the buffer size can be arbitrary. It is an error " -"to return a buffer with a zero size." -msgstr "" -"*sizehint* est la taille minimale recommandée pour le tampon renvoyé. Il est " -"acceptable de renvoyer des tampons plus petits ou plus grands que ce que " -"suggère *sizehint*. Lorsqu'il est défini à −1, la taille du tampon peut être " -"arbitraire. C'est une erreur de renvoyer un tampon de taille nulle." - -#: library/asyncio-protocol.rst:620 -msgid "" -"``get_buffer()`` must return an object implementing the :ref:`buffer " -"protocol `." -msgstr "" -"``get_buffer()`` doit renvoyer un objet implémentant le :ref:`protocole " -"tampon `." - -#: library/asyncio-protocol.rst:625 -msgid "Called when the buffer was updated with the received data." -msgstr "Appelée lorsque le tampon a été mis à jour avec les données reçues." - -#: library/asyncio-protocol.rst:627 -msgid "*nbytes* is the total number of bytes that were written to the buffer." -msgstr "" -"*nbytes* est le nombre total d'octets qui ont été écrits dans la mémoire " -"tampon." - -#: library/asyncio-protocol.rst:631 -msgid "" -"See the documentation of the :meth:`protocol.eof_received() " -"` method." -msgstr "" -"Voir la documentation de la méthode :meth:`protocol.eof_received() " -"`." - -#: library/asyncio-protocol.rst:635 -msgid "" -":meth:`~BufferedProtocol.get_buffer` can be called an arbitrary number of " -"times during a connection. However, :meth:`protocol.eof_received() " -"` is called at most once and, if " -"called, :meth:`~BufferedProtocol.get_buffer` " -"and :meth:`~BufferedProtocol.buffer_updated` won't be called after it." -msgstr "" -":meth:`~BufferedProtocol.get_buffer` peut être appelée un nombre arbitraire " -"de fois pendant une connexion. Cependant, :meth:`protocol.eof_received() " -"` est appelée au plus une fois et, si elle est " -"appelée, :meth:`~BufferedProtocol.get_buffer` " -"et :meth:`~BufferedProtocol.buffer_updated` ne seront pas appelées après." - -#: library/asyncio-protocol.rst:654 -msgid "Datagram Protocols" -msgstr "Protocoles par datagrammes (non connectés)" - -#: library/asyncio-protocol.rst:656 -msgid "" -"Datagram Protocol instances should be constructed by protocol factories " -"passed to the :meth:`loop.create_datagram_endpoint` method." -msgstr "" -"Les instances du protocole par datagrammes doivent être construites par des " -"fabriques de protocole transmises à la " -"méthode :meth:`loop.create_datagram_endpoint`." - -#: library/asyncio-protocol.rst:661 -msgid "" -"Called when a datagram is received. *data* is a bytes object containing the " -"incoming data. *addr* is the address of the peer sending the data; the " -"exact format depends on the transport." -msgstr "" -"Appelée lorsqu'un datagramme est reçu. *data* est un objet bytes contenant " -"les données entrantes. *addr* est l'adresse du pair qui envoie les données ; " -"le format exact dépend du transport." - -#: library/asyncio-protocol.rst:667 -msgid "" -"Called when a previous send or receive operation raises " -"an :class:`OSError`. *exc* is the :class:`OSError` instance." -msgstr "" -"Appelée lorsqu'une opération d'envoi ou de réception précédente lève " -"une :class:`OSError`. *exc* est l'instance :class:`OSError`." - -#: library/asyncio-protocol.rst:670 -msgid "" -"This method is called in rare conditions, when the transport (e.g. UDP) " -"detects that a datagram could not be delivered to its recipient. In many " -"conditions though, undeliverable datagrams will be silently dropped." -msgstr "" -"Cette méthode est appelée dans de rares cas, lorsque le transport (par " -"exemple UDP) détecte qu'un datagramme n'a pas pu être livré à son " -"destinataire. Cependant, il est courant que les datagrammes qui ne peuvent " -"être acheminés soient supprimés silencieusement." - -#: library/asyncio-protocol.rst:677 -msgid "" -"On BSD systems (macOS, FreeBSD, etc.) flow control is not supported for " -"datagram protocols, because there is no reliable way to detect send failures " -"caused by writing too many packets." -msgstr "" -"Sur les systèmes BSD (macOS, FreeBSD, etc.), le contrôle de flux n'est pas " -"pris en charge pour les protocoles par datagrammes, car il n'existe aucun " -"moyen fiable de détecter les échecs d'envoi causés par l'écriture d'un trop " -"grand nombre de paquets." - -#: library/asyncio-protocol.rst:681 -msgid "" -"The socket always appears 'ready' and excess packets are dropped. " -"An :class:`OSError` with ``errno`` set to :const:`errno.ENOBUFS` may or may " -"not be raised; if it is raised, it will be reported " -"to :meth:`DatagramProtocol.error_received` but otherwise ignored." -msgstr "" -"Le connecteur apparaît toujours « prêt » et les paquets en excès sont " -"supprimés. Une :class:`OSError` avec ``errno`` définie " -"sur :const:`errno.ENOBUFS` peut être levée ou non ; si elle est levée, c'est " -"communiqué à :meth:`DatagramProtocol.error_received` et ignoré dans le cas " -"contraire." - -#: library/asyncio-protocol.rst:690 -msgid "Subprocess Protocols" -msgstr "Protocoles liés aux sous-processus" - -#: library/asyncio-protocol.rst:692 -msgid "" -"Subprocess Protocol instances should be constructed by protocol factories " -"passed to the :meth:`loop.subprocess_exec` and :meth:`loop.subprocess_shell` " -"methods." -msgstr "" -"Les instances de protocole de sous-processus doivent être construites par " -"des fabriques de protocole transmises aux " -"méthodes :meth:`loop.subprocess_exec` et :meth:`loop.subprocess_shell`." - -#: library/asyncio-protocol.rst:698 -msgid "" -"Called when the child process writes data into its stdout or stderr pipe." -msgstr "" -"Appelée lorsqu'un processus enfant écrit sur sa sortie d'erreur ou sa sortie " -"standard." - -#: library/asyncio-protocol.rst:701 -msgid "*fd* is the integer file descriptor of the pipe." -msgstr "*fd* est l'entier représentant le descripteur de fichier du tube." - -#: library/asyncio-protocol.rst:703 -msgid "*data* is a non-empty bytes object containing the received data." -msgstr "*data* est un objet bytes non vide contenant les données reçues." - -#: library/asyncio-protocol.rst:707 -msgid "" -"Called when one of the pipes communicating with the child process is closed." -msgstr "" -"Appelé lorsqu'un des tubes de communication avec un sous-processus est fermé." - -#: library/asyncio-protocol.rst:710 -msgid "*fd* is the integer file descriptor that was closed." -msgstr "" -"*fd* est l'entier représentant le descripteur de fichier qui a été fermé." - -#: library/asyncio-protocol.rst:714 -msgid "Called when the child process has exited." -msgstr "Appelée lorsqu'un processus enfant se termine." - -#: library/asyncio-protocol.rst:716 -msgid "" -"It can be called before :meth:`~SubprocessProtocol.pipe_data_received` " -"and :meth:`~SubprocessProtocol.pipe_connection_lost` methods." -msgstr "" - -#: library/asyncio-protocol.rst:721 -msgid "Examples" -msgstr "Exemples" - -#: library/asyncio-protocol.rst:726 -msgid "TCP Echo Server" -msgstr "Serveur *écho* en TCP" - -#: library/asyncio-protocol.rst:728 -msgid "" -"Create a TCP echo server using the :meth:`loop.create_server` method, send " -"back received data, and close the connection::" -msgstr "" -"Crée un serveur d'écho TCP en utilisant la " -"méthode :meth:`loop.create_server`, renvoie les données reçues et ferme la " -"connexion ::" - -#: library/asyncio-protocol.rst:769 -msgid "" -"The :ref:`TCP echo server using streams ` " -"example uses the high-level :func:`asyncio.start_server` function." -msgstr "" -"L'exemple :ref:`asyncio-tcp-echo-server-streams` utilise la fonction de haut " -"niveau :func:`asyncio.start_server`." - -#: library/asyncio-protocol.rst:775 -msgid "TCP Echo Client" -msgstr "Client *écho* en TCP" - -#: library/asyncio-protocol.rst:777 -msgid "" -"A TCP echo client using the :meth:`loop.create_connection` method, sends " -"data, and waits until the connection is closed::" -msgstr "" -"Client d'écho TCP utilisant la méthode :meth:`loop.create_connection` envoie " -"des données et attend que la connexion soit fermée ::" - -#: library/asyncio-protocol.rst:825 -msgid "" -"The :ref:`TCP echo client using streams ` " -"example uses the high-level :func:`asyncio.open_connection` function." -msgstr "" -"L'exemple :ref:`asyncio-tcp-echo-client-streams` utilise la fonction de haut " -"niveau :func:`asyncio.open_connection`." - -#: library/asyncio-protocol.rst:832 -msgid "UDP Echo Server" -msgstr "Serveur *écho* en UDP" - -#: library/asyncio-protocol.rst:834 -msgid "" -"A UDP echo server, using the :meth:`loop.create_datagram_endpoint` method, " -"sends back received data::" -msgstr "" -"Serveur d'écho UDP, utilisant la " -"méthode :meth:`loop.create_datagram_endpoint`, qui renvoie les données " -"reçues ::" - -#: library/asyncio-protocol.rst:876 -msgid "UDP Echo Client" -msgstr "Client *écho* en UDP" - -#: library/asyncio-protocol.rst:878 -msgid "" -"A UDP echo client, using the :meth:`loop.create_datagram_endpoint` method, " -"sends data and closes the transport when it receives the answer::" -msgstr "" -"Client d'écho UDP, utilisant la " -"méthode :meth:`loop.create_datagram_endpoint`, qui envoie des données et " -"ferme le transport lorsqu'il reçoit la réponse :" - -#: library/asyncio-protocol.rst:933 -msgid "Connecting Existing Sockets" -msgstr "Connexion de connecteurs existants" - -#: library/asyncio-protocol.rst:935 -msgid "" -"Wait until a socket receives data using the :meth:`loop.create_connection` " -"method with a protocol::" -msgstr "" -"Attend qu'un connecteur reçoive des données en utilisant la " -"méthode :meth:`loop.create_connection` avec un protocole ::" - -#: library/asyncio-protocol.rst:989 -msgid "" -"The :ref:`watch a file descriptor for read events " -"` example uses the low-" -"level :meth:`loop.add_reader` method to register an FD." -msgstr "" -"L'exemple :ref:`asyncio_example_watch_fd` utilise la méthode de bas " -"niveau :meth:`loop.add_reader` pour enregistrer un descripteur de fichier." - -#: library/asyncio-protocol.rst:993 -msgid "" -"The :ref:`register an open socket to wait for data using streams " -"` example uses high-level streams " -"created by the :func:`open_connection` function in a coroutine." -msgstr "" -"L'exemple :ref:`asyncio_example_create_connection-streams` utilise des flux " -"de haut niveau créés par la fonction :func:`open_connection` dans une " -"coroutine." - -#: library/asyncio-protocol.rst:1000 -msgid "loop.subprocess_exec() and SubprocessProtocol" -msgstr "*loop.subprocess_exec()* et *SubprocessProtocol*" - -#: library/asyncio-protocol.rst:1002 -msgid "" -"An example of a subprocess protocol used to get the output of a subprocess " -"and to wait for the subprocess exit." -msgstr "" -"Un exemple de protocole de sous-processus utilisé pour obtenir la sortie " -"d'un sous-processus et attendre la sortie du sous-processus." - -#: library/asyncio-protocol.rst:1005 -msgid "The subprocess is created by the :meth:`loop.subprocess_exec` method::" -msgstr "" -"Le sous-processus est créé par la méthode :meth:`loop.subprocess_exec` ::" - -#: library/asyncio-protocol.rst:1065 -msgid "" -"See also the :ref:`same example ` " -"written using high-level APIs." -msgstr "" -"Voir aussi le :ref:`même exemple ` " -"écrit à l'aide d'API de haut niveau." diff --git a/library/asyncio-queue.po b/library/asyncio-queue.po deleted file mode 100644 index a9eb08bb85..0000000000 --- a/library/asyncio-queue.po +++ /dev/null @@ -1,329 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-06-11 22:26+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-queue.rst:7 -msgid "Queues" -msgstr "Files d'attente (*queues*)" - -#: library/asyncio-queue.rst:9 -msgid "**Source code:** :source:`Lib/asyncio/queues.py`" -msgstr "**Code source :** :source:`Lib/asyncore.py`" - -#: library/asyncio-queue.rst:13 -msgid "" -"asyncio queues are designed to be similar to classes of the :mod:`queue` " -"module. Although asyncio queues are not thread-safe, they are designed to " -"be used specifically in async/await code." -msgstr "" -"Les files d'attente *asyncio* sont conçues pour être similaires aux classes " -"du module :mod:`queue`. Bien que les files d'attente *asyncio* ne soient pas " -"compatibles avec les programmes à multiples fils d'exécution, elles sont " -"conçues pour être utilisées spécifiquement dans le code *async/await*." - -#: library/asyncio-queue.rst:17 -msgid "" -"Note that methods of asyncio queues don't have a *timeout* parameter; " -"use :func:`asyncio.wait_for` function to do queue operations with a timeout." -msgstr "" -"Notez que les méthodes des files d'attente *asyncio* n'ont pas de paramètre " -"*timeout* ; utilisez la fonction :func:`asyncio.wait_for` pour effectuer des " -"opérations de file d'attente avec un délai d'attente." - -#: library/asyncio-queue.rst:21 -msgid "See also the `Examples`_ section below." -msgstr "Voir également la section `Exemples`_ ci-dessous." - -#: library/asyncio-queue.rst:24 -msgid "Queue" -msgstr "File d'attente (*queue*)" - -#: library/asyncio-queue.rst:28 -msgid "A first in, first out (FIFO) queue." -msgstr "" -"File d'attente premier entré, premier sorti (FIFO pour *fist in, first out*)." - -#: library/asyncio-queue.rst:30 -msgid "" -"If *maxsize* is less than or equal to zero, the queue size is infinite. If " -"it is an integer greater than ``0``, then ``await put()`` blocks when the " -"queue reaches *maxsize* until an item is removed by :meth:`get`." -msgstr "" -"Si *maxsize* est inférieur ou égal à zéro, la taille de la file d'attente " -"est infinie. Si c'est un entier supérieur à ``0``, alors ``await put()`` se " -"bloque lorsque la file d'attente atteint *maxsize* jusqu'à ce qu'un élément " -"soit supprimé par :meth:`get`." - -#: library/asyncio-queue.rst:35 -msgid "" -"Unlike the standard library threading :mod:`queue`, the size of the queue is " -"always known and can be returned by calling the :meth:`qsize` method." -msgstr "" -"Contrairement à la bibliothèque standard multi-fils :mod:`queue`, la taille " -"de la file d'attente est toujours connue et peut être renvoyée en appelant " -"la méthode :meth:`qsize`." - -# suit un : -#: library/asyncio-queue.rst:39 -msgid "Removed the *loop* parameter." -msgstr "suppression du paramètre *loop*." - -#: library/asyncio-queue.rst:43 -msgid "This class is :ref:`not thread safe `." -msgstr "" -"Cette classe n'est :ref:`pas compatible avec les fils d'exécution multiples " -"`." - -#: library/asyncio-queue.rst:47 -msgid "Number of items allowed in the queue." -msgstr "Nombre d'éléments autorisés dans la file d'attente." - -#: library/asyncio-queue.rst:51 -msgid "Return ``True`` if the queue is empty, ``False`` otherwise." -msgstr "Renvoie ``True`` si la file d'attente est vide, ``False`` sinon." - -#: library/asyncio-queue.rst:55 -msgid "Return ``True`` if there are :attr:`maxsize` items in the queue." -msgstr "" -"Renvoie ``True`` s'il y a :attr:`maxsize` éléments dans la file d'attente." - -#: library/asyncio-queue.rst:57 -#, fuzzy -msgid "" -"If the queue was initialized with ``maxsize=0`` (the default), " -"then :meth:`full` never returns ``True``." -msgstr "" -"Si la file d'attente a été initialisée avec ``maxsize=0`` (la valeur par " -"défaut), alors :meth:`full()` ne renvoie jamais ``True``." - -#: library/asyncio-queue.rst:63 -msgid "" -"Remove and return an item from the queue. If queue is empty, wait until an " -"item is available." -msgstr "" -"Supprime et renvoie un élément de la file d'attente. Si la file d'attente " -"est vide, attend qu'un élément soit disponible." - -#: library/asyncio-queue.rst:66 -msgid "" -"Raises :exc:`QueueShutDown` if the queue has been shut down and is empty, or " -"if the queue has been shut down immediately." -msgstr "" - -#: library/asyncio-queue.rst:71 -msgid "" -"Return an item if one is immediately available, else raise :exc:`QueueEmpty`." -msgstr "" -"Renvoie un élément s'il y en a un immédiatement disponible, sinon " -"lève :exc:`QueueEmpty`." - -#: library/asyncio-queue.rst:77 -msgid "Block until all items in the queue have been received and processed." -msgstr "" -"Bloque jusqu'à ce que tous les éléments de la file d'attente aient été " -"récupérés et traités." - -#: library/asyncio-queue.rst:79 -msgid "" -"The count of unfinished tasks goes up whenever an item is added to the " -"queue. The count goes down whenever a consumer coroutine " -"calls :meth:`task_done` to indicate that the item was retrieved and all work " -"on it is complete. When the count of unfinished tasks drops to " -"zero, :meth:`join` unblocks." -msgstr "" -"Le nombre de tâches inachevées augmente chaque fois qu'un élément est ajouté " -"à la file. Ce nombre diminue chaque fois qu'un fil d'exécution consommateur " -"appelle :meth:`task_done` pour indiquer que l'élément a été extrait et que " -"tout le travail à effectuer dessus est terminé. Lorsque le nombre de tâches " -"non terminées devient nul, :meth:`join` débloque." - -#: library/asyncio-queue.rst:88 -msgid "" -"Put an item into the queue. If the queue is full, wait until a free slot is " -"available before adding the item." -msgstr "" -"Met un élément dans la file d'attente. Si la file d'attente est pleine, " -"attend qu'un emplacement libre soit disponible avant d'ajouter l'élément." - -#: library/asyncio-queue.rst:91 -msgid "Raises :exc:`QueueShutDown` if the queue has been shut down." -msgstr "" - -#: library/asyncio-queue.rst:95 -msgid "Put an item into the queue without blocking." -msgstr "Ajoute un élément dans la file d'attente sans bloquer." - -#: library/asyncio-queue.rst:97 -msgid "If no free slot is immediately available, raise :exc:`QueueFull`." -msgstr "" -"Si aucun emplacement libre n'est immédiatement disponible, " -"lève :exc:`QueueFull`." - -#: library/asyncio-queue.rst:101 -msgid "Return the number of items in the queue." -msgstr "Renvoie le nombre d'éléments dans la file d'attente." - -#: library/asyncio-queue.rst:105 -msgid "Put a :class:`Queue` instance into a shutdown mode." -msgstr "" - -#: library/asyncio-queue.rst:107 -msgid "" -"The queue can no longer grow. Future calls to :meth:`~Queue.put` " -"raise :exc:`QueueShutDown`. Currently blocked callers of :meth:`~Queue.put` " -"will be unblocked and will raise :exc:`QueueShutDown` in the formerly " -"awaiting task." -msgstr "" - -#: library/asyncio-queue.rst:112 -msgid "" -"If *immediate* is false (the default), the queue can be wound down normally " -"with :meth:`~Queue.get` calls to extract tasks that have already been loaded." -msgstr "" - -#: library/asyncio-queue.rst:116 -msgid "" -"And if :meth:`~Queue.task_done` is called for each remaining task, a " -"pending :meth:`~Queue.join` will be unblocked normally." -msgstr "" - -#: library/asyncio-queue.rst:119 -msgid "" -"Once the queue is empty, future calls to :meth:`~Queue.get` will " -"raise :exc:`QueueShutDown`." -msgstr "" - -#: library/asyncio-queue.rst:122 -msgid "" -"If *immediate* is true, the queue is terminated immediately. The queue is " -"drained to be completely empty and the count of unfinished tasks is reduced " -"by the number of tasks drained. If unfinished tasks is zero, callers " -"of :meth:`~Queue.join` are unblocked. Also, blocked callers " -"of :meth:`~Queue.get` are unblocked and will raise :exc:`QueueShutDown` " -"because the queue is empty." -msgstr "" - -#: library/asyncio-queue.rst:130 -msgid "" -"Use caution when using :meth:`~Queue.join` with *immediate* set to true. " -"This unblocks the join even when no work has been done on the tasks, " -"violating the usual invariant for joining a queue." -msgstr "" - -#: library/asyncio-queue.rst:138 -#, fuzzy -msgid "Indicate that a formerly enqueued work item is complete." -msgstr "Indique qu'une tâche précédemment mise en file d'attente est terminée." - -#: library/asyncio-queue.rst:140 -#, fuzzy -msgid "" -"Used by queue consumers. For each :meth:`~Queue.get` used to fetch a work " -"item, a subsequent call to :meth:`task_done` tells the queue that the " -"processing on the work item is complete." -msgstr "" -"Utilisé par les consommateurs de file d'attente. Pour " -"chaque :meth:`~Queue.get` utilisé pour récupérer une tâche, un appel " -"ultérieur à :meth:`task_done` indique à la file d'attente que le traitement " -"de la tâche est terminé." - -#: library/asyncio-queue.rst:144 -msgid "" -"If a :meth:`join` is currently blocking, it will resume when all items have " -"been processed (meaning that a :meth:`task_done` call was received for every " -"item that had been :meth:`~Queue.put` into the queue)." -msgstr "" -"Si un :meth:`join` est actuellement bloquant, on reprendra lorsque tous les " -"éléments auront été traités (ce qui signifie qu'un appel à :meth:`task_done` " -"a été effectué pour chaque élément qui a été :meth:`put` dans la file)." - -#: library/asyncio-queue.rst:149 -msgid "" -"Raises :exc:`ValueError` if called more times than there were items placed " -"in the queue." -msgstr "" -"Lève une exception :exc:`ValueError` si elle est appelée plus de fois qu'il " -"n'y avait d'éléments dans la file." - -#: library/asyncio-queue.rst:154 -msgid "Priority Queue" -msgstr "File avec priorité" - -#: library/asyncio-queue.rst:158 -msgid "" -"A variant of :class:`Queue`; retrieves entries in priority order (lowest " -"first)." -msgstr "" -"Une variante de :class:`Queue` ; récupère les entrées par ordre de priorité " -"(la plus basse en premier)." - -#: library/asyncio-queue.rst:161 -msgid "Entries are typically tuples of the form ``(priority_number, data)``." -msgstr "" -"Les entrées sont généralement des *n*-uplets de la forme ``(priority_number, " -"data)``." - -#: library/asyncio-queue.rst:166 -msgid "LIFO Queue" -msgstr "Pile (LIFO)" - -#: library/asyncio-queue.rst:170 -msgid "" -"A variant of :class:`Queue` that retrieves most recently added entries first " -"(last in, first out)." -msgstr "" -"Une variante de :class:`Queue` qui récupère en premier les entrées les plus " -"récemment ajoutées (dernier entré, premier sorti)." - -#: library/asyncio-queue.rst:175 -msgid "Exceptions" -msgstr "Exceptions" - -#: library/asyncio-queue.rst:179 -msgid "" -"This exception is raised when the :meth:`~Queue.get_nowait` method is called " -"on an empty queue." -msgstr "" -"Cette exception est levée lorsque la méthode :meth:`~Queue.get_nowait` est " -"appelée sur une file d'attente vide." - -#: library/asyncio-queue.rst:185 -msgid "" -"Exception raised when the :meth:`~Queue.put_nowait` method is called on a " -"queue that has reached its *maxsize*." -msgstr "" -"Exception levée lorsque la méthode :meth:`~Queue.put_nowait` est appelée sur " -"une file d'attente qui a atteint sa *maxsize*." - -#: library/asyncio-queue.rst:191 -#, fuzzy -msgid "" -"Exception raised when :meth:`~Queue.put` or :meth:`~Queue.get` is called on " -"a queue which has been shut down." -msgstr "" -"Exception levée lorsque la méthode :meth:`~Queue.put_nowait` est appelée sur " -"une file d'attente qui a atteint sa *maxsize*." - -#: library/asyncio-queue.rst:198 -msgid "Examples" -msgstr "Exemples" - -#: library/asyncio-queue.rst:202 -msgid "" -"Queues can be used to distribute workload between several concurrent tasks::" -msgstr "" -"Les files d'attente peuvent être utilisées pour répartir la charge de " -"travail entre plusieurs tâches simultanées ::" diff --git a/library/asyncio-runner.po b/library/asyncio-runner.po deleted file mode 100644 index 45478576fe..0000000000 --- a/library/asyncio-runner.po +++ /dev/null @@ -1,316 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-06-29 21:12+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-runner.rst:6 -msgid "Runners" -msgstr "Exécuteurs (*runners*)" - -#: library/asyncio-runner.rst:8 -msgid "**Source code:** :source:`Lib/asyncio/runners.py`" -msgstr "**Code source :** :source:`Lib/asyncio/runners.py`" - -#: library/asyncio-runner.rst:11 -msgid "" -"This section outlines high-level asyncio primitives to run asyncio code." -msgstr "" -"Cette section décrit les primitives *asyncio* de haut niveau pour exécuter " -"du code asynchrone." - -#: library/asyncio-runner.rst:13 -msgid "" -"They are built on top of an :ref:`event loop ` with the " -"aim to simplify async code usage for common wide-spread scenarios." -msgstr "" -"Elles sont construites au-dessus d'une :ref:`boucle d'événements ` dans le but de simplifier l'utilisation du code asynchrone pour " -"les scénarios les plus courants." - -#: library/asyncio-runner.rst:23 -msgid "Running an asyncio Program" -msgstr "Exécution d'un programme asynchrone" - -#: library/asyncio-runner.rst:27 -#, fuzzy -msgid "Execute *coro* in an asyncio event loop and return the result." -msgstr "Exécute la :term:`coroutine` *coro* et renvoie le résultat." - -#: library/asyncio-runner.rst:121 -msgid "The argument can be any awaitable object." -msgstr "" - -#: library/asyncio-runner.rst:31 -#, fuzzy -msgid "" -"This function runs the awaitable, taking care of managing the asyncio event " -"loop, *finalizing asynchronous generators*, and closing the executor." -msgstr "" -"Cette fonction exécute la coroutine transmise, en s'occupant de gérer la " -"boucle d'événements *asyncio*, de *finaliser les générateurs asynchrones* et " -"de terminer correctement les fils d'exécution." - -#: library/asyncio-runner.rst:131 -msgid "" -"This function cannot be called when another asyncio event loop is running in " -"the same thread." -msgstr "" -"Cette fonction ne peut pas être appelée lorsqu'une autre boucle d'événement " -"asynchrone est en cours d'exécution dans le même fil d'exécution." - -#: library/asyncio-runner.rst:97 -msgid "" -"If *debug* is ``True``, the event loop will be run in debug mode. ``False`` " -"disables debug mode explicitly. ``None`` is used to respect the " -"global :ref:`asyncio-debug-mode` settings." -msgstr "" -"Si *debug* vaut ``True``, la boucle d'événements est exécutée en mode " -"débogage. ``False`` désactive explicitement le mode débogage. ``None`` est " -"utilisée pour respecter les paramètres globaux définis par :ref:`asyncio-" -"debug-mode`." - -#: library/asyncio-runner.rst:42 -msgid "" -"If *loop_factory* is not ``None``, it is used to create a new event loop; " -"otherwise :func:`asyncio.new_event_loop` is used. The loop is closed at the " -"end. This function should be used as a main entry point for asyncio " -"programs, and should ideally only be called once. It is recommended to use " -"*loop_factory* to configure the event loop instead of policies. " -"Passing :class:`asyncio.EventLoop` allows running asyncio without the policy " -"system." -msgstr "" - -#: library/asyncio-runner.rst:50 -msgid "" -"The executor is given a timeout duration of 5 minutes to shutdown. If the " -"executor hasn't finished within that duration, a warning is emitted and the " -"executor is closed." -msgstr "" - -#: library/asyncio-runner.rst:54 -msgid "Example::" -msgstr "Exemple ::" - -# suit un : -#: library/asyncio-runner.rst:64 -msgid "Updated to use :meth:`loop.shutdown_default_executor`." -msgstr "mise à jour pour utiliser :meth:`loop.shutdown_default_executor`." - -#: library/asyncio-runner.rst:69 -msgid "" -"*debug* is ``None`` by default to respect the global debug mode settings." -msgstr "" -"*debug* vaut ``None`` par défaut pour respecter les paramètres du mode de " -"débogage global." - -#: library/asyncio-runner.rst:73 -msgid "Added *loop_factory* parameter." -msgstr "" - -#: library/asyncio-runner.rst:136 -msgid "*coro* can be any awaitable object." -msgstr "" - -#: library/asyncio-runner.rst:81 -msgid "" -"The :mod:`!asyncio` policy system is deprecated and will be removed in " -"Python 3.16; from there on, an explicit *loop_factory* is needed to " -"configure the event loop." -msgstr "" - -#: library/asyncio-runner.rst:87 -msgid "Runner context manager" -msgstr "Gestionnaire de contexte de l'exécuteur" - -#: library/asyncio-runner.rst:91 -msgid "" -"A context manager that simplifies *multiple* async function calls in the " -"same context." -msgstr "" -"Gestionnaire de contexte englobant *plusieurs* appels de fonctions " -"asynchrones dans le même contexte." - -#: library/asyncio-runner.rst:94 -msgid "" -"Sometimes several top-level async functions should be called in the " -"same :ref:`event loop ` and :class:`contextvars.Context`." -msgstr "" -"Parfois, plusieurs fonctions asynchrones de niveau supérieur doivent être " -"appelées dans la même :ref:`boucle d'événements ` et le " -"même :class:`contextvars.Context`." - -#: library/asyncio-runner.rst:101 -msgid "" -"*loop_factory* could be used for overriding the loop creation. It is the " -"responsibility of the *loop_factory* to set the created loop as the current " -"one. By default :func:`asyncio.new_event_loop` is used and set as current " -"event loop with :func:`asyncio.set_event_loop` if *loop_factory* is ``None``." -msgstr "" -"*loop_factory* peut être utilisée pour remplacer la création de la boucle. " -"*loop_factory* a la responsabilité de définir la boucle créée comme boucle " -"courante. Par défaut :func:`asyncio.new_event_loop` est utilisée et définie " -"comme boucle d'événements actuelle avec :func:`asyncio.set_event_loop` si " -"*loop_factory* vaut ``None``." - -#: library/asyncio-runner.rst:106 -#, fuzzy -msgid "" -"Basically, :func:`asyncio.run` example can be rewritten with the runner " -"usage::" -msgstr "" -"Fondamentalement, l'exemple :func:`asyncio.run()` peut être réécrit avec " -"l'utilisation de l'exécuteur suivant ::" - -#: library/asyncio-runner.rst:119 -#, fuzzy -msgid "Execute *coro* in the embedded event loop." -msgstr "" -"Exécute la :term:`coroutine ` *coro* dans la boucle d'événements " -"en cours." - -#: library/asyncio-runner.rst:123 -msgid "If the argument is a coroutine, it is wrapped in a Task." -msgstr "" - -#: library/asyncio-runner.rst:125 -#, fuzzy -msgid "" -"An optional keyword-only *context* argument allows specifying a " -"custom :class:`contextvars.Context` for the code to run in. The runner's " -"default context is used if context is ``None``." -msgstr "" -"L'argument (uniquement nommé) facultatif *context* permet de spécifier " -"un :class:`contextvars.Context` personnalisé pour la coroutine à exécuter. " -"Le contexte par défaut de l'exécuteur est utilisé si *context* est ``None``." - -#: library/asyncio-runner.rst:129 -#, fuzzy -msgid "Returns the awaitable's result or raises an exception." -msgstr "Renvoie le résultat de la coroutine ou lève les exceptions afférentes." - -#: library/asyncio-runner.rst:140 -msgid "Close the runner." -msgstr "Termine l'exécuteur." - -#: library/asyncio-runner.rst:142 -msgid "" -"Finalize asynchronous generators, shutdown default executor, close the event " -"loop and release embedded :class:`contextvars.Context`." -msgstr "" -"Finalise les générateurs asynchrones, arrête l'exécuteur par défaut, ferme " -"la boucle d'événements et libère le :class:`contextvars.Context` en cours." - -#: library/asyncio-runner.rst:147 -msgid "Return the event loop associated with the runner instance." -msgstr "Renvoie la boucle d'événements associée à l'instance de l'exécuteur." - -#: library/asyncio-runner.rst:151 -msgid "" -":class:`Runner` uses the lazy initialization strategy, its constructor " -"doesn't initialize underlying low-level structures." -msgstr "" -":class:`Runner` utilise la stratégie d'initialisation paresseuse, son " -"constructeur n'initialise pas les structures de bas niveau sous-jacentes." - -#: library/asyncio-runner.rst:154 -msgid "" -"Embedded *loop* and *context* are created at the :keyword:`with` body " -"entering or the first call of :meth:`run` or :meth:`get_loop`." -msgstr "" -"La boucle d'événements *loop* et le *context* intégrés sont créés à " -"l'entrée du corps de :keyword:`with` ou au premier appel de :meth:`run` " -"ou :meth:`get_loop`." - -#: library/asyncio-runner.rst:159 -msgid "Handling Keyboard Interruption" -msgstr "Gestion de l'interruption par le clavier" - -#: library/asyncio-runner.rst:163 -msgid "" -"When :const:`signal.SIGINT` is raised by :kbd:`Ctrl-" -"C`, :exc:`KeyboardInterrupt` exception is raised in the main thread by " -"default. However this doesn't work with :mod:`asyncio` because it can " -"interrupt asyncio internals and can hang the program from exiting." -msgstr "" -"Lorsque :const:`signal.SIGINT` est déclenché par :kbd:`Ctrl-C`, " -"l'exception :exc:`KeyboardInterrupt` est levée par défaut dans le fils " -"d'exécution principal. Cependant, cela ne fonctionne pas avec :mod:`asyncio` " -"car cela peut interrompre le fonctionnement interne de *asyncio* et empêcher " -"le programme de se terminer." - -#: library/asyncio-runner.rst:168 -msgid "" -"To mitigate this issue, :mod:`asyncio` handles :const:`signal.SIGINT` as " -"follows:" -msgstr "" -"Pour contrer ce problème, :mod:`asyncio` gère :const:`signal.SIGINT` comme " -"suit :" - -#: library/asyncio-runner.rst:170 -msgid "" -":meth:`asyncio.Runner.run` installs a custom :const:`signal.SIGINT` handler " -"before any user code is executed and removes it when exiting from the " -"function." -msgstr "" -":meth:`asyncio.Runner.run` installe un gestionnaire :const:`signal.SIGINT` " -"personnalisé avant l'exécution de tout code utilisateur et le supprime à la " -"sortie de la fonction." - -#: library/asyncio-runner.rst:172 -msgid "" -"The :class:`~asyncio.Runner` creates the main task for the passed coroutine " -"for its execution." -msgstr "" -"Le :class:`~asyncio.Runner` crée la tâche principale pour la coroutine " -"transmise pour son exécution." - -#: library/asyncio-runner.rst:174 -msgid "" -"When :const:`signal.SIGINT` is raised by :kbd:`Ctrl-C`, the custom signal " -"handler cancels the main task by calling :meth:`asyncio.Task.cancel` which " -"raises :exc:`asyncio.CancelledError` inside the main task. This causes the " -"Python stack to unwind, ``try/except`` and ``try/finally`` blocks can be " -"used for resource cleanup. After the main task is " -"cancelled, :meth:`asyncio.Runner.run` raises :exc:`KeyboardInterrupt`." -msgstr "" -"Lorsque :const:`signal.SIGINT` est déclenché par :kbd:`Ctrl-C`, le " -"gestionnaire de signal personnalisé annule la tâche principale en " -"appelant :meth:`asyncio.Task.cancel` qui lève :exc:`asyncio.CancelledError` " -"à l'intérieur de la tâche principale. Cela entraîne la remontée dans la pile " -"Python, les blocs ``try/except`` et ``try/finally`` peuvent être utilisés " -"pour le nettoyage des ressources. Une fois la tâche principale " -"annulée, :meth:`asyncio.Runner.run` lève :exc:`KeyboardInterrupt`." - -#: library/asyncio-runner.rst:180 -msgid "" -"A user could write a tight loop which cannot be interrupted " -"by :meth:`asyncio.Task.cancel`, in which case the second " -"following :kbd:`Ctrl-C` immediately raises the :exc:`KeyboardInterrupt` " -"without cancelling the main task." -msgstr "" -"Un utilisateur peut écrire une boucle tellement petite qu'elle ne peut pas " -"être interrompue par :meth:`asyncio.Task.cancel` ; dans ce cas la seconde " -"suivante :kbd:`Ctrl-C` lève immédiatement le :exc:`KeyboardInterrupt` sans " -"annuler la tâche principale." - -#~ msgid "" -#~ "This function always creates a new event loop and closes it at the end. " -#~ "It should be used as a main entry point for asyncio programs, and should " -#~ "ideally only be called once." -#~ msgstr "" -#~ "Cette fonction crée toujours une nouvelle boucle d'événements et la ferme " -#~ "à la fin. Elle doit être utilisée comme point d'entrée principal pour les " -#~ "programmes asynchrones et ne doit idéalement être appelée qu'une seule " -#~ "fois." diff --git a/library/asyncio-stream.po b/library/asyncio-stream.po deleted file mode 100644 index 41bcfaa094..0000000000 --- a/library/asyncio-stream.po +++ /dev/null @@ -1,649 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-07-04 23:07+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-stream.rst:7 -msgid "Streams" -msgstr "Flux (*streams*)" - -#: library/asyncio-stream.rst:9 -msgid "**Source code:** :source:`Lib/asyncio/streams.py`" -msgstr "**Code source :** :source:`Lib/asyncore.py`" - -#: library/asyncio-stream.rst:13 -msgid "" -"Streams are high-level async/await-ready primitives to work with network " -"connections. Streams allow sending and receiving data without using " -"callbacks or low-level protocols and transports." -msgstr "" -"Les flux sont des primitives de haut niveau compatibles avec *async*/*await* " -"pour utiliser les connexions réseau. Les flux permettent d'envoyer et de " -"recevoir des données sans utiliser de fonctions de rappel ou des protocoles " -"de bas niveau." - -#: library/asyncio-stream.rst:19 -msgid "Here is an example of a TCP echo client written using asyncio streams::" -msgstr "" -"Voici un exemple de client « écho TCP » écrit en utilisant les flux " -"*asyncio* ::" - -#: library/asyncio-stream.rst:42 -msgid "See also the `Examples`_ section below." -msgstr "Voir également la section `Exemples`_ ci-dessous." - -#: library/asyncio-stream.rst:46 -msgid "Stream Functions" -msgstr "Fonctions de flux" - -#: library/asyncio-stream.rst:47 -msgid "" -"The following top-level asyncio functions can be used to create and work " -"with streams:" -msgstr "" -"Les fonctions *asyncio* de haut niveau suivantes peuvent être utilisées pour " -"créer et utiliser des flux :" - -#: library/asyncio-stream.rst:59 -msgid "" -"Establish a network connection and return a pair of ``(reader, writer)`` " -"objects." -msgstr "" -"Établit une connexion réseau et renvoie une paire d'objets ``(lecteur, " -"écrivain)``." - -#: library/asyncio-stream.rst:62 -msgid "" -"The returned *reader* and *writer* objects are instances " -"of :class:`StreamReader` and :class:`StreamWriter` classes." -msgstr "" -"Les objets *lecteur* et *écrivain* renvoyés sont des instances des " -"classes :class:`StreamReader` et :class:`StreamWriter`." - -#: library/asyncio-stream.rst:112 -msgid "" -"*limit* determines the buffer size limit used by the " -"returned :class:`StreamReader` instance. By default the *limit* is set to " -"64 KiB." -msgstr "" -"*limit* détermine la limite de taille de tampon utilisée par " -"l'instance :class:`StreamReader` renvoyée. Par défaut, *limit* est fixée à " -"64 Kio." - -#: library/asyncio-stream.rst:69 -msgid "" -"The rest of the arguments are passed directly " -"to :meth:`loop.create_connection`." -msgstr "" -"Le reste des arguments est passé directement " -"à :meth:`loop.create_connection`." - -# suit un : -#: library/asyncio-stream.rst:154 -msgid "" -"The *sock* argument transfers ownership of the socket to " -"the :class:`StreamWriter` created. To close the socket, call " -"its :meth:`~asyncio.StreamWriter.close` method." -msgstr "" -"l'argument *sock* transfère la propriété du connecteur réseau " -"au :class:`StreamWriter` créé. Pour fermer le connecteur, appelez sa " -"méthode :meth:`~asyncio.StreamWriter.close`." - -# suit un : -#: library/asyncio-stream.rst:78 -msgid "Added the *ssl_handshake_timeout* parameter." -msgstr "ajout du paramètre *ssl_handshake_timeout*." - -# suit un : -#: library/asyncio-stream.rst:81 -#, fuzzy -msgid "Added the *happy_eyeballs_delay* and *interleave* parameters." -msgstr "ajout des paramètres *happy_eyeballs_delay* et *interleave*." - -# suit un : -#: library/asyncio-stream.rst:128 library/asyncio-stream.rst:199 -msgid "Removed the *loop* parameter." -msgstr "suppression du paramètre *loop*." - -# suit un : -#: library/asyncio-stream.rst:131 library/asyncio-stream.rst:202 -#: library/asyncio-stream.rst:408 -msgid "Added the *ssl_shutdown_timeout* parameter." -msgstr "ajout du paramètre *ssl_shutdown_timeout*." - -#: library/asyncio-stream.rst:101 -msgid "Start a socket server." -msgstr "Démarre un serveur de connexions" - -#: library/asyncio-stream.rst:103 -msgid "" -"The *client_connected_cb* callback is called whenever a new client " -"connection is established. It receives a ``(reader, writer)`` pair as two " -"arguments, instances of the :class:`StreamReader` and :class:`StreamWriter` " -"classes." -msgstr "" -"La fonction de rappel *client_connected_cb* est appelée chaque fois qu'une " -"nouvelle connexion client est établie. Elle reçoit une paire d'arguments " -"``(lecteur, écrivain)``, instances des classes :class:`StreamReader` " -"et :class:`StreamWriter`." - -#: library/asyncio-stream.rst:108 -msgid "" -"*client_connected_cb* can be a plain callable or a :ref:`coroutine function " -"`; if it is a coroutine function, it will be automatically " -"scheduled as a :class:`Task`." -msgstr "" -"*client_connected_cb* peut être un simple appelable ou une " -"fonction :ref:`coroutine ` ; s'il s'agit d'une fonction " -"coroutine, elle sera automatiquement planifiée en tant que :class:`Task`." - -#: library/asyncio-stream.rst:116 -msgid "" -"The rest of the arguments are passed directly to :meth:`loop.create_server`." -msgstr "" -"Le reste des arguments est passé directement à :meth:`loop.create_server`." - -# suit un : -#: library/asyncio-stream.rst:189 -msgid "" -"The *sock* argument transfers ownership of the socket to the server created. " -"To close the socket, call the server's :meth:`~asyncio.Server.close` method." -msgstr "" -"l'argument *sock* transfère la propriété du connecteur au serveur créé. Pour " -"fermer le connecteur, appelez la méthode :meth:`~asyncio.Server.close` du " -"serveur." - -# suit un : -#: library/asyncio-stream.rst:125 -msgid "Added the *ssl_handshake_timeout* and *start_serving* parameters." -msgstr "ajout des paramètres *ssl_handshake_timeout* et *start_serving*." - -# suit un : -#: library/asyncio-stream.rst:134 -#, fuzzy -msgid "Added the *keep_alive* parameter." -msgstr "ajout du paramètre *ssl_handshake_timeout*." - -#: library/asyncio-stream.rst:139 -msgid "Unix Sockets" -msgstr "Connecteurs Unix (*sockets*)" - -#: library/asyncio-stream.rst:145 -msgid "" -"Establish a Unix socket connection and return a pair of ``(reader, writer)``." -msgstr "" -"Ouvre un connecteur Unix et renvoie une paire de ``(lecteur, écrivain)``." - -#: library/asyncio-stream.rst:148 -msgid "Similar to :func:`open_connection` but operates on Unix sockets." -msgstr "" -"Similaire à :func:`open_connection` mais fonctionne sur les connecteurs Unix." - -#: library/asyncio-stream.rst:150 -msgid "See also the documentation of :meth:`loop.create_unix_connection`." -msgstr "Voir aussi la documentation de :meth:`loop.create_unix_connection`." - -#: library/asyncio-stream.rst:193 -msgid "Availability" -msgstr "Disponibilité" - -# suit un : -#: library/asyncio-stream.rst:160 -msgid "" -"Added the *ssl_handshake_timeout* parameter. The *path* parameter can now be " -"a :term:`path-like object`" -msgstr "" -"ajout du paramètre *ssl_handshake_timeout*. Le paramètre *path* peut " -"désormais être un :term:`objet simili-chemin `" - -#: library/asyncio-stream.rst:177 -msgid "Start a Unix socket server." -msgstr "Démarre un connecteur Unix en mode serveur." - -#: library/asyncio-stream.rst:179 -msgid "Similar to :func:`start_server` but works with Unix sockets." -msgstr "" -"Similaire à :func:`start_server` mais fonctionne avec les connecteurs Unix." - -#: library/asyncio-stream.rst:181 -msgid "" -"If *cleanup_socket* is true then the Unix socket will automatically be " -"removed from the filesystem when the server is closed, unless the socket has " -"been replaced after the server has been created." -msgstr "" - -#: library/asyncio-stream.rst:185 -msgid "See also the documentation of :meth:`loop.create_unix_server`." -msgstr "Voir aussi la documentation de :meth:`loop.create_unix_server`." - -# suit un : -#: library/asyncio-stream.rst:195 -msgid "" -"Added the *ssl_handshake_timeout* and *start_serving* parameters. The *path* " -"parameter can now be a :term:`path-like object`." -msgstr "" -"ajout des paramètres *ssl_handshake_timeout* et *start_serving*. Le " -"paramètre *chemin* peut désormais être un :term:`simili-chemin`." - -# suit un : -#: library/asyncio-stream.rst:205 -#, fuzzy -msgid "Added the *cleanup_socket* parameter." -msgstr "ajout du paramètre *ssl_handshake_timeout*." - -#: library/asyncio-stream.rst:210 -msgid "StreamReader" -msgstr "Flux lecteurs (*StreamReader*)" - -#: library/asyncio-stream.rst:214 -msgid "" -"Represents a reader object that provides APIs to read data from the IO " -"stream. As an :term:`asynchronous iterable`, the object supports " -"the :keyword:`async for` statement." -msgstr "" -"Représente un objet lecteur qui fournit des API pour lire les données du " -"flux d'entrée-sortie. En tant que :term:`itérable asynchrone `, l'objet prend en charge l'instruction :keyword:`async for`." - -#: library/asyncio-stream.rst:218 -msgid "" -"It is not recommended to instantiate *StreamReader* objects directly; " -"use :func:`open_connection` and :func:`start_server` instead." -msgstr "" -"Il n'est pas recommandé d'instancier directement les objets *StreamReader* ; " -"utilisez :func:`open_connection` et :func:`start_server` à la place." - -#: library/asyncio-stream.rst:224 -msgid "Acknowledge the EOF." -msgstr "" - -#: library/asyncio-stream.rst:229 -msgid "Read up to *n* bytes from the stream." -msgstr "Lit jusqu'à *n* octets du flux." - -#: library/asyncio-stream.rst:231 -msgid "" -"If *n* is not provided or set to ``-1``, read until EOF, then return all " -"read :class:`bytes`. If EOF was received and the internal buffer is empty, " -"return an empty ``bytes`` object." -msgstr "" -"Si *n* n'est pas fourni ou défini à ``-1``, lit jusqu'à *EOF*, puis renvoie " -"tous les :class:`bytes` lus. Si *EOF* a été reçu et que le tampon interne " -"est vide, renvoie un objet ``bytes`` vide." - -#: library/asyncio-stream.rst:236 -msgid "If *n* is ``0``, return an empty ``bytes`` object immediately." -msgstr "Si *n* vaut ``0``, renvoie immédiatement un objet ``bytes`` vide." - -#: library/asyncio-stream.rst:238 -msgid "" -"If *n* is positive, return at most *n* available ``bytes`` as soon as at " -"least 1 byte is available in the internal buffer. If EOF is received before " -"any byte is read, return an empty ``bytes`` object." -msgstr "" -"Si *n* est positif, renvoie au plus *n* ``bytes`` disponibles dès qu'au " -"moins 1 octet est disponible dans le tampon interne. Si *EOF* est reçu avant " -"qu'aucun octet ne soit lu, renvoie un objet ``bytes`` vide." - -#: library/asyncio-stream.rst:246 -msgid "" -"Read one line, where \"line\" is a sequence of bytes ending with ``\\n``." -msgstr "" -"Lit une ligne, où une « ligne » est une séquence d'octets se terminant par " -"``\\n``." - -#: library/asyncio-stream.rst:249 -msgid "" -"If EOF is received and ``\\n`` was not found, the method returns partially " -"read data." -msgstr "" -"Si *EOF* est reçu et ``\\n`` n'a pas été trouvé, la méthode renvoie des " -"données partiellement lues." - -#: library/asyncio-stream.rst:252 -msgid "" -"If EOF is received and the internal buffer is empty, return an empty " -"``bytes`` object." -msgstr "" -"Si *EOF* est reçu et que le tampon interne est vide, renvoie un objet " -"``bytes`` vide." - -#: library/asyncio-stream.rst:258 -msgid "Read exactly *n* bytes." -msgstr "Lit exactement *n* octets." - -#: library/asyncio-stream.rst:260 -msgid "" -"Raise an :exc:`IncompleteReadError` if EOF is reached before *n* can be " -"read. Use the :attr:`IncompleteReadError.partial` attribute to get the " -"partially read data." -msgstr "" -"Lève une :exc:`IncompleteReadError` si *EOF* est atteint avant que *n* " -"octets ne puissent être lus. Utilisez " -"l'attribut :attr:`IncompleteReadError.partial` pour obtenir les données " -"partiellement lues." - -#: library/asyncio-stream.rst:267 -msgid "Read data from the stream until *separator* is found." -msgstr "Lit les données du flux jusqu'à ce que le *separator* soit trouvé." - -#: library/asyncio-stream.rst:269 -msgid "" -"On success, the data and separator will be removed from the internal buffer " -"(consumed). Returned data will include the separator at the end." -msgstr "" -"En cas de succès, les données et le séparateur sont supprimés du tampon " -"interne (consommés). Les données renvoyées incluent le séparateur à la fin." - -#: library/asyncio-stream.rst:273 -msgid "" -"If the amount of data read exceeds the configured stream limit, " -"a :exc:`LimitOverrunError` exception is raised, and the data is left in the " -"internal buffer and can be read again." -msgstr "" -"Si la quantité de données lues dépasse la limite de flux configurée, une " -"exception :exc:`LimitOverrunError` est levée et les données sont laissées " -"dans le tampon interne et peuvent être lues à nouveau." - -#: library/asyncio-stream.rst:277 -msgid "" -"If EOF is reached before the complete separator is found, " -"an :exc:`IncompleteReadError` exception is raised, and the internal buffer " -"is reset. The :attr:`IncompleteReadError.partial` attribute may contain a " -"portion of the separator." -msgstr "" -"Si *EOF* est atteint avant que le séparateur complet ne soit trouvé, une " -"exception :exc:`IncompleteReadError` est levée et le tampon interne est " -"réinitialisé. L'attribut :attr:`IncompleteReadError.partial` peut contenir " -"une partie du séparateur." - -#: library/asyncio-stream.rst:282 -msgid "" -"The *separator* may also be a tuple of separators. In this case the return " -"value will be the shortest possible that has any separator as the suffix. " -"For the purposes of :exc:`LimitOverrunError`, the shortest possible " -"separator is considered to be the one that matched." -msgstr "" - -#: library/asyncio-stream.rst:292 -msgid "The *separator* parameter may now be a :class:`tuple` of separators." -msgstr "" - -#: library/asyncio-stream.rst:297 -msgid "Return ``True`` if the buffer is empty and :meth:`feed_eof` was called." -msgstr "" -"Renvoie ``True`` si le tampon est vide et que :meth:`feed_eof` a été appelée." - -#: library/asyncio-stream.rst:302 -msgid "StreamWriter" -msgstr "Flux écrivains (*StreamWriter*)" - -#: library/asyncio-stream.rst:306 -msgid "" -"Represents a writer object that provides APIs to write data to the IO stream." -msgstr "" -"Représente un objet écrivain qui fournit des API pour écrire des données " -"dans le flux d'entrée-sortie." - -#: library/asyncio-stream.rst:309 -msgid "" -"It is not recommended to instantiate *StreamWriter* objects directly; " -"use :func:`open_connection` and :func:`start_server` instead." -msgstr "" -"Il n'est pas recommandé d'instancier directement les objets *StreamWriter* ; " -"utilisez :func:`open_connection` et :func:`start_server` à la place." - -#: library/asyncio-stream.rst:315 -msgid "" -"The method attempts to write the *data* to the underlying socket " -"immediately. If that fails, the data is queued in an internal write buffer " -"until it can be sent." -msgstr "" -"La méthode tente d'écrire immédiatement les *data* dans le connecteur sous-" -"jacent. Si cela échoue, les données sont mises en file d'attente dans un " -"tampon d'écriture interne jusqu'à ce qu'elles puissent être envoyées." - -#: library/asyncio-stream.rst:319 -msgid "" -"The *data* buffer should be a bytes, bytearray, or C-contiguous one-" -"dimensional memoryview object." -msgstr "" - -#: library/asyncio-stream.rst:335 -msgid "The method should be used along with the ``drain()`` method::" -msgstr "La méthode doit être utilisée avec la méthode ``drain()`` ::" - -#: library/asyncio-stream.rst:330 -msgid "" -"The method writes a list (or any iterable) of bytes to the underlying socket " -"immediately. If that fails, the data is queued in an internal write buffer " -"until it can be sent." -msgstr "" -"La méthode écrit immédiatement une liste (ou tout itérable) d'octets dans le " -"connecteur sous-jacent. Si cela échoue, les données sont mises en file " -"d'attente dans un tampon d'écriture interne jusqu'à ce qu'elles puissent " -"être envoyées." - -#: library/asyncio-stream.rst:342 -msgid "The method closes the stream and the underlying socket." -msgstr "La méthode ferme le flux et le connecteur sous-jacent." - -#: library/asyncio-stream.rst:344 -msgid "" -"The method should be used, though not mandatory, along with the " -"``wait_closed()`` method::" -msgstr "" -"La méthode doit être utilisée, bien que ce ne soit pas obligatoire, avec la " -"méthode ``wait_closed()`` ::" - -#: library/asyncio-stream.rst:352 -msgid "" -"Return ``True`` if the underlying transport supports the :meth:`write_eof` " -"method, ``False`` otherwise." -msgstr "" -"Renvoie ``True`` si le transport sous-jacent gère la " -"méthode :meth:`write_eof`, ``False`` sinon." - -#: library/asyncio-stream.rst:357 -msgid "" -"Close the write end of the stream after the buffered write data is flushed." -msgstr "" -"Ferme le flux en écriture après le vidage des données d'écriture en mémoire " -"tampon." - -#: library/asyncio-stream.rst:362 -msgid "Return the underlying asyncio transport." -msgstr "Renvoie le transport asynchrone sous-jacent." - -#: library/asyncio-stream.rst:366 -msgid "" -"Access optional transport information; " -"see :meth:`BaseTransport.get_extra_info` for details." -msgstr "" -"Donne accès aux informations de transport facultatives ; " -"voir :meth:`BaseTransport.get_extra_info` pour plus de détails." - -#: library/asyncio-stream.rst:372 -msgid "Wait until it is appropriate to resume writing to the stream. Example::" -msgstr "" -"Attend qu'il soit approprié de reprendre l'écriture dans le flux. Par " -"exemple ::" - -#: library/asyncio-stream.rst:378 -msgid "" -"This is a flow control method that interacts with the underlying IO write " -"buffer. When the size of the buffer reaches the high watermark, *drain()* " -"blocks until the size of the buffer is drained down to the low watermark and " -"writing can be resumed. When there is nothing to wait for, " -"the :meth:`drain` returns immediately." -msgstr "" -"Il s'agit d'une méthode de contrôle de flux qui interagit avec le tampon " -"d'écriture entrée-sortie sous-jacent. Lorsque la taille du tampon atteint la " -"limite haute, *drain()* bloque jusqu'à ce que la taille du tampon soit " -"drainée jusqu'à la limite basse et que l'écriture puisse reprendre. " -"Lorsqu'il n'y a rien à attendre, :meth:`drain` termine immédiatement." - -#: library/asyncio-stream.rst:389 -msgid "Upgrade an existing stream-based connection to TLS." -msgstr "Bascule la connexion basée sur le flux existant vers TLS." - -#: library/asyncio-stream.rst:391 -msgid "Parameters:" -msgstr "Paramètres :" - -#: library/asyncio-stream.rst:393 -msgid "*sslcontext*: a configured instance of :class:`~ssl.SSLContext`." -msgstr "*sslcontext* : une instance configurée de :class:`~ssl.SSLContext`." - -#: library/asyncio-stream.rst:395 -msgid "" -"*server_hostname*: sets or overrides the host name that the target server's " -"certificate will be matched against." -msgstr "" -"*server_hostname* : définit ou remplace le nom d'hôte auquel le certificat " -"du serveur cible sera comparé." - -#: library/asyncio-stream.rst:398 -msgid "" -"*ssl_handshake_timeout* is the time in seconds to wait for the TLS handshake " -"to complete before aborting the connection. ``60.0`` seconds if ``None`` " -"(default)." -msgstr "" -"*ssl_handshake_timeout* est le temps en secondes à attendre pour que la " -"poignée de main TLS se termine avant d'abandonner la connexion. ``60.0`` " -"secondes si ``None`` (par défaut)." - -#: library/asyncio-stream.rst:402 -#, fuzzy -msgid "" -"*ssl_shutdown_timeout* is the time in seconds to wait for the SSL shutdown " -"to complete before aborting the connection. ``30.0`` seconds if ``None`` " -"(default)." -msgstr "" -"*ssl_handshake_timeout* est le temps en secondes à attendre pour que la " -"poignée de main TLS se termine avant d'abandonner la connexion. ``60.0`` " -"secondes si ``None`` (par défaut)." - -#: library/asyncio-stream.rst:414 -msgid "" -"Return ``True`` if the stream is closed or in the process of being closed." -msgstr "Renvoie ``True`` si le flux est fermé ou en cours de fermeture." - -#: library/asyncio-stream.rst:422 -msgid "Wait until the stream is closed." -msgstr "Attend que le flux soit fermé." - -#: library/asyncio-stream.rst:424 -msgid "" -"Should be called after :meth:`close` to wait until the underlying connection " -"is closed, ensuring that all data has been flushed before e.g. exiting the " -"program." -msgstr "" -"Doit être appelée après :meth:`close` pour attendre que la connexion sous-" -"jacente soit fermée, en s'assurant que toutes les données ont été vidées " -"avant, par exemple, de quitter le programme." - -#: library/asyncio-stream.rst:432 -msgid "Examples" -msgstr "Exemples" - -#: library/asyncio-stream.rst:437 -msgid "TCP echo client using streams" -msgstr "Client d'écho TCP utilisant des flux" - -#: library/asyncio-stream.rst:439 -msgid "TCP echo client using the :func:`asyncio.open_connection` function::" -msgstr "" -"Client d'écho TCP utilisant la fonction :func:`asyncio.open_connection` ::" - -#: library/asyncio-stream.rst:463 -msgid "" -"The :ref:`TCP echo client protocol " -"` example uses the low-" -"level :meth:`loop.create_connection` method." -msgstr "" -"L'exemple :ref:`asyncio_example_tcp_echo_client_protocol` utilise la méthode " -"de bas niveau :meth:`loop.create_connection`." - -#: library/asyncio-stream.rst:470 -msgid "TCP echo server using streams" -msgstr "Serveur d'écho TCP utilisant des flux" - -#: library/asyncio-stream.rst:472 -msgid "TCP echo server using the :func:`asyncio.start_server` function::" -msgstr "" -"Serveur d'écho TCP utilisant la fonction :func:`asyncio.start_server` ::" - -#: library/asyncio-stream.rst:506 -msgid "" -"The :ref:`TCP echo server protocol " -"` example uses " -"the :meth:`loop.create_server` method." -msgstr "" -"L'exemple de :ref:`asyncio_example_tcp_echo_server_protocol` utilise la " -"méthode :meth:`loop.create_server`." - -#: library/asyncio-stream.rst:511 -msgid "Get HTTP headers" -msgstr "Récupération des en-têtes HTTP" - -#: library/asyncio-stream.rst:513 -msgid "" -"Simple example querying HTTP headers of the URL passed on the command line::" -msgstr "" -"Exemple simple d'interrogation des en-têtes HTTP de l'URL transmise sur la " -"ligne de commande ::" - -#: library/asyncio-stream.rst:552 -msgid "Usage::" -msgstr "Utilisation ::" - -#: library/asyncio-stream.rst:556 -msgid "or with HTTPS::" -msgstr "ou avec HTTPS ::" - -#: library/asyncio-stream.rst:564 -msgid "Register an open socket to wait for data using streams" -msgstr "Ouverture d'un connecteur pour attendre les données à l'aide de flux" - -#: library/asyncio-stream.rst:566 -msgid "" -"Coroutine waiting until a socket receives data using " -"the :func:`open_connection` function::" -msgstr "" -"Coroutine attendant qu'un connecteur reçoive des données en utilisant la " -"fonction :func:`open_connection` ::" - -#: library/asyncio-stream.rst:601 -msgid "" -"The :ref:`register an open socket to wait for data using a protocol " -"` example uses a low-level protocol and " -"the :meth:`loop.create_connection` method." -msgstr "" -"L'exemple :ref:`asyncio_example_create_connection` utilise un protocole de " -"bas niveau et la méthode :meth:`loop.create_connection`." - -#: library/asyncio-stream.rst:605 -msgid "" -"The :ref:`watch a file descriptor for read events " -"` example uses the low-" -"level :meth:`loop.add_reader` method to watch a file descriptor." -msgstr "" -"L'exemple :ref:`asyncio_example_watch_fd` utilise la méthode de bas " -"niveau :meth:`loop.add_reader` pour surveiller un descripteur de fichier." - -#~ msgid ":ref:`Availability `: Unix." -#~ msgstr ":ref:`Disponibilité ` : Unix." diff --git a/library/asyncio-subprocess.po b/library/asyncio-subprocess.po deleted file mode 100644 index 8e3ede0631..0000000000 --- a/library/asyncio-subprocess.po +++ /dev/null @@ -1,614 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-06-17 10:31+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-subprocess.rst:7 -msgid "Subprocesses" -msgstr "Sous-processus" - -#: library/asyncio-subprocess.rst:9 -msgid "" -"**Source code:** :source:`Lib/asyncio/subprocess.py`, :source:`Lib/asyncio/" -"base_subprocess.py`" -msgstr "" -"**Code source :** :source:`Lib/asyncio/subprocess.py`, :source:`Lib/asyncio/" -"base_subprocess.py`" - -#: library/asyncio-subprocess.rst:14 -msgid "" -"This section describes high-level async/await asyncio APIs to create and " -"manage subprocesses." -msgstr "" -"Cette section décrit des API de haut niveau de *asyncio* pour créer et gérer " -"des sous-processus via ``async``/``await``." - -#: library/asyncio-subprocess.rst:19 -msgid "" -"Here's an example of how asyncio can run a shell command and obtain its " -"result::" -msgstr "" -"Voici un exemple de comment *asyncio* peut lancer une commande shell et " -"obtenir son résultat ::" - -#: library/asyncio-subprocess.rst:40 -msgid "will print::" -msgstr "affiche ::" - -#: library/asyncio-subprocess.rst:46 -msgid "" -"Because all asyncio subprocess functions are asynchronous and asyncio " -"provides many tools to work with such functions, it is easy to execute and " -"monitor multiple subprocesses in parallel. It is indeed trivial to modify " -"the above example to run several commands simultaneously::" -msgstr "" -"Puisque toutes les fonctions à sous-processus d'*asyncio* sont synchrones et " -"qu'*asyncio* fournit de nombreux outils pour travailler avec de telles " -"fonctions, il est facile d'exécuter et de surveiller de nombreux processus " -"en parallèle. Il est en effet trivial de modifier l'exemple ci-dessus pour " -"exécuter plusieurs commandes simultanément ::" - -#: library/asyncio-subprocess.rst:58 -msgid "See also the `Examples`_ subsection." -msgstr "Voir également la section `Exemples`_." - -#: library/asyncio-subprocess.rst:62 -msgid "Creating Subprocesses" -msgstr "Créer des sous-processus" - -#: library/asyncio-subprocess.rst:68 -msgid "Create a subprocess." -msgstr "Crée un sous-processus." - -#: library/asyncio-subprocess.rst:70 library/asyncio-subprocess.rst:92 -#, fuzzy -msgid "" -"The *limit* argument sets the buffer limit for :class:`StreamReader` " -"wrappers for :attr:`~asyncio.subprocess.Process.stdout` " -"and :attr:`~asyncio.subprocess.Process.stderr` (if :const:`subprocess.PIPE` " -"is passed to *stdout* and *stderr* arguments)." -msgstr "" -"Le paramètre *limit* définit la taille maximale du tampon pour les instances " -"de :class:`StreamReader` encapsulant :attr:`Process.stdout` " -"et :attr:`Process.stderr` (Si :attr:`subprocess.PIPE` est passé aux " -"paramètres *stdout* et *stderr*)." - -#: library/asyncio-subprocess.rst:74 library/asyncio-subprocess.rst:96 -msgid "Return a :class:`~asyncio.subprocess.Process` instance." -msgstr "Renvoie une instance de :class:`~asyncio.subprocess.Process`." - -#: library/asyncio-subprocess.rst:76 -msgid "" -"See the documentation of :meth:`loop.subprocess_exec` for other parameters." -msgstr "" -"Voir la documentation de :meth:`loop.subprocess_exec` pour d'autres " -"paramètres." - -#: library/asyncio-subprocess.rst:79 library/asyncio-subprocess.rst:101 -msgid "" -"If the process object is garbage collected while the process is still " -"running, the child process will be killed." -msgstr "" - -# suit un : -#: library/asyncio-subprocess.rst:82 library/asyncio-subprocess.rst:113 -msgid "Removed the *loop* parameter." -msgstr "suppression du paramètre *loop*." - -#: library/asyncio-subprocess.rst:90 -msgid "Run the *cmd* shell command." -msgstr "Exécute la commande *cmd* dans un *shell*." - -#: library/asyncio-subprocess.rst:98 -msgid "" -"See the documentation of :meth:`loop.subprocess_shell` for other parameters." -msgstr "" -"Voir la documentation de :meth:`loop.subprocess_shell` pour d'autres " -"paramètres." - -#: library/asyncio-subprocess.rst:106 -msgid "" -"It is the application's responsibility to ensure that all whitespace and " -"special characters are quoted appropriately to avoid `shell injection " -"`_ " -"vulnerabilities. The :func:`shlex.quote` function can be used to properly " -"escape whitespace and special shell characters in strings that are going to " -"be used to construct shell commands." -msgstr "" -"Il est de la responsabilité de l'application de s'assurer que tous les " -"espaces et les caractères spéciaux sont correctement mis entre guillemets " -"pour éviter les vulnérabilités de type `injection de code `_. La " -"fonction :func:`shlex.quote` peut être utilisée pour l’échappement des " -"espaces et caractères spéciaux dans les chaînes utilisées pour construire " -"des commandes shell." - -# suit un : -#: library/asyncio-subprocess.rst:118 -msgid "" -"Subprocesses are available for Windows if a :class:`ProactorEventLoop` is " -"used. See :ref:`Subprocess Support on Windows ` " -"for details." -msgstr "" -"les sous-processus sont disponibles pour Windows si " -"un :class:`ProactorEventLoop` est utilisé. Voir :ref:`Support des sous-" -"processus sous Windows ` pour plus de précisions." - -#: library/asyncio-subprocess.rst:124 -msgid "" -"asyncio also has the following *low-level* APIs to work with " -"subprocesses: :meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :meth:`loop.connect_read_pipe`, :meth:`loop.connect_write_pipe`, " -"as well as the :ref:`Subprocess Transports ` " -"and :ref:`Subprocess Protocols `." -msgstr "" -"*asyncio* propose aussi les API de « bas niveau » suivantes pour travailler " -"avec les sous-" -"processus : :meth:`loop.subprocess_exec`, :meth:`loop.subprocess_shell`, :meth:`loop.connect_read_pipe`, :meth:`loop.connect_write_pipe`, " -"ainsi que les :ref:`asyncio-subprocess-transports` et :ref:`asyncio-" -"subprocess-protocols`." - -#: library/asyncio-subprocess.rst:132 -msgid "Constants" -msgstr "Constantes" - -#: library/asyncio-subprocess.rst:137 -msgid "Can be passed to the *stdin*, *stdout* or *stderr* parameters." -msgstr "Peut être passé aux paramètres *stdin*, *stdout* ou *stderr*." - -#: library/asyncio-subprocess.rst:139 -#, fuzzy -msgid "" -"If *PIPE* is passed to *stdin* argument, the :attr:`Process.stdin " -"` attribute will point to " -"a :class:`~asyncio.StreamWriter` instance." -msgstr "" -"Si *PIPE* est passé au paramètre *stdin*, l'attribut :attr:`Process.stdin " -"` ne pointera pas vers une instance " -"de :class:`StreamWriter`." - -#: library/asyncio-subprocess.rst:143 -#, fuzzy -msgid "" -"If *PIPE* is passed to *stdout* or *stderr* arguments, " -"the :attr:`Process.stdout ` " -"and :attr:`Process.stderr ` attributes " -"will point to :class:`~asyncio.StreamReader` instances." -msgstr "" -"Si *PIPE* est passé au paramètre *stdout* ou *stderr*, " -"l'attribut :attr:`Process.stdout ` " -"et :attr:`Process.stderr ` pointeront " -"vers des instances de :class:`StreamReader`." - -#: library/asyncio-subprocess.rst:151 -msgid "" -"Special value that can be used as the *stderr* argument and indicates that " -"standard error should be redirected into standard output." -msgstr "" -"Une valeur spéciale qui peut être passée au paramètre *stderr* et qui " -"indique que la sortie d'erreur doit être redirigée vers la sortie standard." - -#: library/asyncio-subprocess.rst:157 -msgid "" -"Special value that can be used as the *stdin*, *stdout* or *stderr* argument " -"to process creation functions. It indicates that the special " -"file :data:`os.devnull` will be used for the corresponding subprocess stream." -msgstr "" -"Une valeur spéciale qui peut être passée à l'argument *stdin*, *stdout* ou " -"*stderr* des fonctions créant des processus. Elle implique l'utilisation du " -"fichier :data:`os.devnull` pour le flux correspondant du processus." - -#: library/asyncio-subprocess.rst:163 -msgid "Interacting with Subprocesses" -msgstr "Interagir avec les sous-processus" - -#: library/asyncio-subprocess.rst:165 -msgid "" -"Both :func:`create_subprocess_exec` and :func:`create_subprocess_shell` " -"functions return instances of the *Process* class. *Process* is a high-" -"level wrapper that allows communicating with subprocesses and watching for " -"their completion." -msgstr "" -"Les fonctions :func:`create_subprocess_exec` " -"et :func:`create_subprocess_shell` renvoient des instances de la classe " -"*Process*. *Process* est une enveloppe de haut niveau qui permet de " -"communiquer avec les sous-processus et de surveiller leur achèvement." - -#: library/asyncio-subprocess.rst:173 -#, fuzzy -msgid "" -"An object that wraps OS processes created by " -"the :func:`~asyncio.create_subprocess_exec` " -"and :func:`~asyncio.create_subprocess_shell` functions." -msgstr "" -"Objet qui encapsule les processus du système d'exploitation créés par les " -"fonctions :func:`create_subprocess_exec` et :func:`create_subprocess_shell`." - -#: library/asyncio-subprocess.rst:177 -msgid "" -"This class is designed to have a similar API to " -"the :class:`subprocess.Popen` class, but there are some notable differences:" -msgstr "" -"Cette classe est conçue pour avoir une API similaire à la " -"classe :class:`subprocess.Popen`, mais il existe quelques différences " -"notables :" - -#: library/asyncio-subprocess.rst:181 -msgid "" -"unlike Popen, Process instances do not have an equivalent to " -"the :meth:`~subprocess.Popen.poll` method;" -msgstr "" -"contrairement à *Popen*, les instances Process n'ont pas d'équivalent à la " -"méthode :meth:`~subprocess.Popen.poll` ;" - -#: library/asyncio-subprocess.rst:184 -msgid "" -"the :meth:`~asyncio.subprocess.Process.communicate` " -"and :meth:`~asyncio.subprocess.Process.wait` methods don't have a *timeout* " -"parameter: use the :func:`~asyncio.wait_for` function;" -msgstr "" -"les méthodes :meth:`~asyncio.subprocess.Process.communicate` " -"et :meth:`~asyncio.subprocess.Process.wait` n'ont pas de paramètre " -"*timeout* : utilisez la fonction :func:`~asyncio.wait_for` ;" - -#: library/asyncio-subprocess.rst:188 -msgid "" -"the :meth:`Process.wait() ` method is " -"asynchronous, whereas :meth:`subprocess.Popen.wait` method is implemented as " -"a blocking busy loop;" -msgstr "" -":meth:`asyncio.subprocess.Process.wait` est asynchrone, tandis que la " -"méthode :meth:`subprocess.Popen.wait` est implémentée comme une boucle " -"bloquante ;" - -#: library/asyncio-subprocess.rst:192 -msgid "the *universal_newlines* parameter is not supported." -msgstr "le paramètre *universal_newlines* n'est pas pris en charge." - -#: library/asyncio-subprocess.rst:194 -msgid "This class is :ref:`not thread safe `." -msgstr "" -"Cette classe n'est :ref:`pas conçue pour un contexte multi-fils `." - -#: library/asyncio-subprocess.rst:196 -msgid "" -"See also the :ref:`Subprocess and Threads ` " -"section." -msgstr "" -"Voir aussi la section :ref:`sous-processus et fils d'exécution `." - -#: library/asyncio-subprocess.rst:202 -msgid "Wait for the child process to terminate." -msgstr "Attend que le sous processus s'arrête." - -#: library/asyncio-subprocess.rst:204 -msgid "Set and return the :attr:`returncode` attribute." -msgstr "Définit et renvoie l'attribut :attr:`returncode`." - -# suit un : -#: library/asyncio-subprocess.rst:208 -msgid "" -"This method can deadlock when using ``stdout=PIPE`` or ``stderr=PIPE`` and " -"the child process generates so much output that it blocks waiting for the OS " -"pipe buffer to accept more data. Use the :meth:`communicate` method when " -"using pipes to avoid this condition." -msgstr "" -"cette méthode peut générer un interblocage quand ``stdout=PIPE`` ou " -"``stderr=PIPE`` est utilisé et que le sous-processus génère tellement de " -"sorties qu'il se bloque, dans l'attente que le tampon du tube côté OS " -"accepte des données supplémentaires. Pour éviter cette situation, choisissez " -"la méthode :meth:`communicate` quand vous utilisez des tubes." - -#: library/asyncio-subprocess.rst:217 -msgid "Interact with process:" -msgstr "Interagit avec le processus :" - -#: library/asyncio-subprocess.rst:219 -msgid "send data to *stdin* (if *input* is not ``None``);" -msgstr "envoie des données sur le *stdin* (si *input* n'est pas ``None``) ;" - -#: library/asyncio-subprocess.rst:220 -msgid "closes *stdin*;" -msgstr "" - -#: library/asyncio-subprocess.rst:221 -msgid "read data from *stdout* and *stderr*, until EOF is reached;" -msgstr "" -"lit les données sur *stdout* et *stderr*, jusqu'à ce que le EOF soit " -"atteint ;" - -#: library/asyncio-subprocess.rst:222 -msgid "wait for process to terminate." -msgstr "attend que le processus s'arrête." - -#: library/asyncio-subprocess.rst:224 -msgid "" -"The optional *input* argument is the data (:class:`bytes` object) that will " -"be sent to the child process." -msgstr "" -"Le paramètre optionnel *input* (objet de type :class:`bytes`) représente les " -"données transmises au sous-processus." - -#: library/asyncio-subprocess.rst:227 -msgid "Return a tuple ``(stdout_data, stderr_data)``." -msgstr "Renvoie un *n*-uplet ``(stdout_data, stderr_data)``." - -#: library/asyncio-subprocess.rst:229 -msgid "" -"If either :exc:`BrokenPipeError` or :exc:`ConnectionResetError` exception is " -"raised when writing *input* into *stdin*, the exception is ignored. This " -"condition occurs when the process exits before all data are written into " -"*stdin*." -msgstr "" -"Si l'une des exceptions :exc:`BrokenPipeError` " -"ou :exc:`ConnectionResetError` est levée lors de l'écriture de *input* dans " -"*stdin*, l'exception est ignorée. Cette condition se produit lorsque le " -"processus se termine avant que toutes les données ne soient écrites dans " -"*stdin*." - -#: library/asyncio-subprocess.rst:234 -msgid "" -"If it is desired to send data to the process' *stdin*, the process needs to " -"be created with ``stdin=PIPE``. Similarly, to get anything other than " -"``None`` in the result tuple, the process has to be created with " -"``stdout=PIPE`` and/or ``stderr=PIPE`` arguments." -msgstr "" -"Si vous souhaitez envoyer des données au processus *stdin*, le processus " -"doit être créé avec ``stdin=PIPE``. De même, pour obtenir autre chose que " -"``None`` dans le *n*-uplet résultat, le processus doit être créé avec les " -"arguments ``stdout=PIPE`` et/ou ``stderr=PIPE``." - -#: library/asyncio-subprocess.rst:240 -msgid "" -"Note, that the data read is buffered in memory, so do not use this method if " -"the data size is large or unlimited." -msgstr "" -"Notez que les données lues sont mises en cache en mémoire, donc n'utilisez " -"pas cette méthode si la taille des données est importante voire illimitée." - -#: library/asyncio-subprocess.rst:245 -msgid "*stdin* gets closed when ``input=None`` too." -msgstr "" - -#: library/asyncio-subprocess.rst:249 -msgid "Sends the signal *signal* to the child process." -msgstr "Envoie le signal *signal* au sous-processus." - -# suit un : -#: library/asyncio-subprocess.rst:253 -#, fuzzy -msgid "" -"On Windows, :py:const:`~signal.SIGTERM` is an alias for :meth:`terminate`. " -"``CTRL_C_EVENT`` and ``CTRL_BREAK_EVENT`` can be sent to processes started " -"with a *creationflags* parameter which includes ``CREATE_NEW_PROCESS_GROUP``." -msgstr "" -"sous Windows, :py:data:`SIGTERM` est un alias pour :meth:`terminate`. " -"*CTRL_C_EVENT* et *CTRL_BREAK_EVENT* peuvent être envoyés aux processus " -"démarrés avec un paramètre *creationflags* incluant " -"``CREATE_NEW_PROCESS_GROUP``." - -#: library/asyncio-subprocess.rst:260 -msgid "Stop the child process." -msgstr "Arrête le sous-processus." - -#: library/asyncio-subprocess.rst:262 -#, fuzzy -msgid "" -"On POSIX systems this method sends :py:const:`~signal.SIGTERM` to the child " -"process." -msgstr "" -"Sur les systèmes POSIX, cette méthode envoie :py:data:`signal.SIGTERM` au " -"sous-processus." - -#: library/asyncio-subprocess.rst:265 -#, fuzzy -msgid "" -"On Windows the Win32 API function :c:func:`!TerminateProcess` is called to " -"stop the child process." -msgstr "" -"Sous Windows, la fonction API Win32 :c:func:`TerminateProcess` est appelée " -"pour arrêter le processus enfant." - -#: library/asyncio-subprocess.rst:270 -msgid "Kill the child process." -msgstr "Arrête le sous-processus." - -#: library/asyncio-subprocess.rst:272 -#, fuzzy -msgid "" -"On POSIX systems this method sends :py:data:`~signal.SIGKILL` to the child " -"process." -msgstr "" -"Sur les systèmes POSIX, cette méthode envoie :py:data:`signal.SIGTERM` au " -"sous-processus." - -#: library/asyncio-subprocess.rst:275 -msgid "On Windows this method is an alias for :meth:`terminate`." -msgstr "Sous Windows, cette méthode est un alias pour :meth:`terminate`." - -#: library/asyncio-subprocess.rst:279 -#, fuzzy -msgid "" -"Standard input stream (:class:`~asyncio.StreamWriter`) or ``None`` if the " -"process was created with ``stdin=None``." -msgstr "" -"Flux d'entrée standard (:class:`StreamWriter`) ou ``None`` si le processus a " -"été créé avec ``stdin=None``." - -#: library/asyncio-subprocess.rst:284 -#, fuzzy -msgid "" -"Standard output stream (:class:`~asyncio.StreamReader`) or ``None`` if the " -"process was created with ``stdout=None``." -msgstr "" -"Flux de sortie standard (:class:`StreamReader`) ou ``None`` si le processus " -"a été créé avec ``stdout=None``." - -#: library/asyncio-subprocess.rst:289 -#, fuzzy -msgid "" -"Standard error stream (:class:`~asyncio.StreamReader`) or ``None`` if the " -"process was created with ``stderr=None``." -msgstr "" -"Flux d'erreur standard (:class:`StreamReader`) ou ``None`` si le processus a " -"été créé avec ``stderr=None``." - -# suit un : -#: library/asyncio-subprocess.rst:294 -msgid "" -"Use the :meth:`communicate` method rather than :attr:`process.stdin.write() " -"`, :attr:`await process.stdout.read() ` or :attr:`await " -"process.stderr.read() `. This avoids deadlocks due to streams " -"pausing reading or writing and blocking the child process." -msgstr "" -"utilisez la méthode :meth:`communicate` plutôt " -"que :attr:`process.stdin.write() `, :attr:`wait process.stdout.read() " -"` ou :attr:`wait process.stderr.read() `. Cela évite les " -"interblocages dus aux flux qui interrompent la lecture ou l'écriture et " -"bloquent le processus enfant." - -#: library/asyncio-subprocess.rst:303 -msgid "Process identification number (PID)." -msgstr "" -"Numéro d'identification du processus (PID, pour *Process Identification " -"Number* en anglais)." - -#: library/asyncio-subprocess.rst:305 -#, fuzzy -msgid "" -"Note that for processes created by " -"the :func:`~asyncio.create_subprocess_shell` function, this attribute is the " -"PID of the spawned shell." -msgstr "" -"Notez que pour les processus créés par la " -"fonction :func:`create_subprocess_shell`, cet attribut est le PID du shell " -"généré." - -#: library/asyncio-subprocess.rst:310 -msgid "Return code of the process when it exits." -msgstr "Code de retour du processus quand il se termine." - -#: library/asyncio-subprocess.rst:312 -msgid "A ``None`` value indicates that the process has not terminated yet." -msgstr "Une valeur ``None`` indique que le processus n'est pas encore terminé." - -#: library/asyncio-subprocess.rst:314 -#, fuzzy -msgid "" -"For processes created with :func:`~asyncio.create_subprocess_exec`, a " -"negative value ``-N`` indicates that the child was terminated by signal " -"``N`` (POSIX only)." -msgstr "" -"Une valeur négative ``-N`` indique que le sous-processus a été terminé par " -"le signal ``N`` (seulement sur les systèmes *POSIX*)." - -#: library/asyncio-subprocess.rst:318 -msgid "" -"For processes created with :func:`~asyncio.create_subprocess_shell`, the " -"return code reflects the exit status of the shell itself (e.g. ``/bin/sh``), " -"which may map signals to codes such as ``128+N``. See the documentation of " -"the shell (for example, the Bash manual's Exit Status) for details." -msgstr "" - -#: library/asyncio-subprocess.rst:329 -msgid "Subprocess and Threads" -msgstr "Sous-processus et fils d'exécution" - -#: library/asyncio-subprocess.rst:331 -msgid "" -"Standard asyncio event loop supports running subprocesses from different " -"threads by default." -msgstr "" -"La boucle d'événement asynchrone standard prend en charge l'exécution de " -"sous-processus à partir de différents fils d'exécution par défaut." - -#: library/asyncio-subprocess.rst:334 -msgid "" -"On Windows subprocesses are provided by :class:`ProactorEventLoop` only " -"(default), :class:`SelectorEventLoop` has no subprocess support." -msgstr "" -"Sous Windows, les sous-processus sont fournis par :class:`ProactorEventLoop` " -"uniquement (par défaut), :class:`SelectorEventLoop` ne prend pas en charge " -"les sous-processus." - -#: library/asyncio-subprocess.rst:337 -msgid "" -"Note that alternative event loop implementations might have own limitations; " -"please refer to their documentation." -msgstr "" -"Notez que ces implémentations alternatives de la boucle d'événements peuvent " -"comporter leurs propres limitations. Veuillez vous référer à leur " -"documentation." - -# suit un : -#: library/asyncio-subprocess.rst:342 -msgid "" -"The :ref:`Concurrency and multithreading in asyncio ` section." -msgstr "" -"la section :ref:`Exécution concurrente et multi-fils d'exécution `." - -#: library/asyncio-subprocess.rst:347 -msgid "Examples" -msgstr "Exemples" - -#: library/asyncio-subprocess.rst:349 -msgid "" -"An example using the :class:`~asyncio.subprocess.Process` class to control a " -"subprocess and the :class:`StreamReader` class to read from its standard " -"output." -msgstr "" -"Un exemple utilisant la classe :class:`~asyncio.subprocess.Process` pour " -"contrôler un sous-processus et la classe :class:`StreamReader` pour lire sa " -"sortie standard." - -#: library/asyncio-subprocess.rst:355 -msgid "" -"The subprocess is created by the :func:`create_subprocess_exec` function::" -msgstr "" -"Le sous-processus est créé par la fonction :func:`create_subprocess_exec` ::" - -#: library/asyncio-subprocess.rst:382 -msgid "" -"See also the :ref:`same example ` written " -"using low-level APIs." -msgstr "" -"Voir également :ref:`le même exemple `, " -"écrit en utilisant des API de bas niveau." - -#~ msgid "" -#~ "On UNIX *child watchers* are used for subprocess finish waiting, " -#~ "see :ref:`asyncio-watchers` for more info." -#~ msgstr "" -#~ "Sous UNIX, les *observateurs d'enfants (child watchers)* sont utilisés " -#~ "pour l'attente de fin de sous-processus, voir :ref:`asyncio-watchers` " -#~ "pour plus d'informations." - -#~ msgid "" -#~ "UNIX switched to use :class:`ThreadedChildWatcher` for spawning " -#~ "subprocesses from different threads without any limitation." -#~ msgstr "" -#~ "UNIX est passé à l'utilisation de :class:`ThreadedChildWatcher` pour " -#~ "générer des sous-processus à partir de différents threads sans aucune " -#~ "limitation." - -#~ msgid "" -#~ "Spawning a subprocess with *inactive* current child watcher " -#~ "raises :exc:`RuntimeError`." -#~ msgstr "" -#~ "Instancier un sous-processus avec un observateur enfant actuel *inactif* " -#~ "lève l'exception :exc:`RuntimeError`." diff --git a/library/asyncio-sync.po b/library/asyncio-sync.po deleted file mode 100644 index da7d440ae7..0000000000 --- a/library/asyncio-sync.po +++ /dev/null @@ -1,615 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-06-11 16:49+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-sync.rst:7 -msgid "Synchronization Primitives" -msgstr "Primitives de synchronisation" - -#: library/asyncio-sync.rst:9 -msgid "**Source code:** :source:`Lib/asyncio/locks.py`" -msgstr "**Code source :** :source:`Lib/asyncio/locks.py`" - -#: library/asyncio-sync.rst:13 -msgid "" -"asyncio synchronization primitives are designed to be similar to those of " -"the :mod:`threading` module with two important caveats:" -msgstr "" -"Les primitives de synchronisation *asyncio* sont conçues pour être " -"similaires à celles du module :mod:`threading` avec deux mises en garde " -"importantes :" - -#: library/asyncio-sync.rst:16 -msgid "" -"asyncio primitives are not thread-safe, therefore they should not be used " -"for OS thread synchronization (use :mod:`threading` for that);" -msgstr "" -"les primitives *asyncio* ne sont pas *thread-safe*, elles ne doivent donc " -"pas être utilisées pour la synchronisation des fils d'exécution du système " -"d'exploitation (utilisez :mod:`threading` pour cela) ;" - -#: library/asyncio-sync.rst:20 -msgid "" -"methods of these synchronization primitives do not accept the *timeout* " -"argument; use the :func:`asyncio.wait_for` function to perform operations " -"with timeouts." -msgstr "" -"les méthodes de ces primitives de synchronisation n'acceptent pas l'argument " -"*timeout* ; utilisez la fonction :func:`asyncio.wait_for` pour effectuer des " -"opérations avec des délais d'attente." - -#: library/asyncio-sync.rst:24 -msgid "asyncio has the following basic synchronization primitives:" -msgstr "" -"*asyncio* possède les primitives de synchronisation de base suivantes :" - -#: library/asyncio-sync.rst:26 -msgid ":class:`Lock`" -msgstr ":class:`Lock`" - -#: library/asyncio-sync.rst:27 -msgid ":class:`Event`" -msgstr ":class:`Event`" - -#: library/asyncio-sync.rst:28 -msgid ":class:`Condition`" -msgstr ":class:`Condition`" - -#: library/asyncio-sync.rst:29 -msgid ":class:`Semaphore`" -msgstr ":class:`Semaphore`" - -#: library/asyncio-sync.rst:30 -msgid ":class:`BoundedSemaphore`" -msgstr ":class:`BoundedSemaphore`" - -#: library/asyncio-sync.rst:31 -msgid ":class:`Barrier`" -msgstr ":class:`Barrier`" - -#: library/asyncio-sync.rst:38 -msgid "Lock" -msgstr "Verrou (*lock*)" - -#: library/asyncio-sync.rst:42 -msgid "Implements a mutex lock for asyncio tasks. Not thread-safe." -msgstr "" -"Implémente un verrou exclusif (*mutex*) pour les tâches asynchrones. Ce " -"n'est pas compatible avec les programmes à fils d'exécution multiples." - -#: library/asyncio-sync.rst:44 -msgid "" -"An asyncio lock can be used to guarantee exclusive access to a shared " -"resource." -msgstr "" -"Un verrou *asyncio* peut être utilisé pour garantir un accès exclusif à une " -"ressource partagée." - -#: library/asyncio-sync.rst:47 -msgid "The preferred way to use a Lock is an :keyword:`async with` statement::" -msgstr "" -"La meilleure façon d'utiliser un verrou est une instruction :keyword:`async " -"with` ::" - -#: library/asyncio-sync.rst:201 library/asyncio-sync.rst:309 -msgid "which is equivalent to::" -msgstr "ce qui équivaut à ::" - -# suit un : -#: library/asyncio-sync.rst:113 library/asyncio-sync.rst:297 -#: library/asyncio-sync.rst:353 -msgid "Removed the *loop* parameter." -msgstr "suppression du paramètre *loop*." - -#: library/asyncio-sync.rst:73 -msgid "Acquire the lock." -msgstr "Verrouille (ou acquiert) le verrou." - -#: library/asyncio-sync.rst:75 -msgid "" -"This method waits until the lock is *unlocked*, sets it to *locked* and " -"returns ``True``." -msgstr "" -"Cette méthode attend que le verrou soit déverrouillé (*unlocked*), le " -"verrouille (positionné sur *locked*) et renvoie ``True``." - -#: library/asyncio-sync.rst:78 -msgid "" -"When more than one coroutine is blocked in :meth:`acquire` waiting for the " -"lock to be unlocked, only one coroutine eventually proceeds." -msgstr "" -"Lorsque plus d'une coroutine est bloquée dans :meth:`acquire` en attendant " -"que le verrou soit déverrouillé, seule une coroutine continue finalement." - -#: library/asyncio-sync.rst:82 -msgid "" -"Acquiring a lock is *fair*: the coroutine that proceeds will be the first " -"coroutine that started waiting on the lock." -msgstr "" -"L'acquisition d'un verrou est *équitable* : la coroutine qui acquiert le " -"verrou est celle qui était la première à attendre le verrou." - -#: library/asyncio-sync.rst:87 -msgid "Release the lock." -msgstr "Libère le verrou." - -#: library/asyncio-sync.rst:89 -msgid "When the lock is *locked*, reset it to *unlocked* and return." -msgstr "Lorsque le verrou est verrouillé, le déverrouille et termine." - -#: library/asyncio-sync.rst:91 -msgid "If the lock is *unlocked*, a :exc:`RuntimeError` is raised." -msgstr "Si le verrou est déjà déverrouillé, une :exc:`RuntimeError` est levée." - -#: library/asyncio-sync.rst:95 -msgid "Return ``True`` if the lock is *locked*." -msgstr "Renvoie ``True`` si le verrou est verrouillé." - -#: library/asyncio-sync.rst:99 -msgid "Event" -msgstr "Événement (*Event*)" - -#: library/asyncio-sync.rst:103 -msgid "An event object. Not thread-safe." -msgstr "" -"Objet événement. Non compatible avec les programmes à plusieurs fils " -"d'exécution." - -#: library/asyncio-sync.rst:105 -msgid "" -"An asyncio event can be used to notify multiple asyncio tasks that some " -"event has happened." -msgstr "" -"Un événement asynchrone peut être utilisé pour notifier plusieurs tâches " -"asynchrones qu'un événement s'est produit." - -#: library/asyncio-sync.rst:108 -msgid "" -"An Event object manages an internal flag that can be set to *true* with " -"the :meth:`~Event.set` method and reset to *false* with the :meth:`clear` " -"method. The :meth:`~Event.wait` method blocks until the flag is set to " -"*true*. The flag is set to *false* initially." -msgstr "" -"Un objet *Event* gère un drapeau interne qui peut être activé (ou mis à " -"*vrai*) avec la méthode :meth:`~Event.set` et désactivé (ou mis à *faux*) " -"avec la méthode :meth:`clear`. La méthode :meth:`~Event.wait` se bloque " -"jusqu'à ce que l'indicateur soit activé. L'indicateur est initialement " -"désactivé." - -#: library/asyncio-sync.rst:377 -msgid "Example::" -msgstr "Exemple ::" - -#: library/asyncio-sync.rst:144 -msgid "Wait until the event is set." -msgstr "Attend que l'évènement soit activé." - -#: library/asyncio-sync.rst:146 -msgid "" -"If the event is set, return ``True`` immediately. Otherwise block until " -"another task calls :meth:`~Event.set`." -msgstr "" -"Si l'événement est activé (*vrai*), renvoie ``True`` immédiatement. Sinon " -"bloque jusqu'à ce qu'une autre tâche appelle :meth:`~Event.set`." - -#: library/asyncio-sync.rst:151 -msgid "Set the event." -msgstr "Active l'événement." - -#: library/asyncio-sync.rst:153 -msgid "All tasks waiting for event to be set will be immediately awakened." -msgstr "" -"Toutes les tâches en attente de l'événement sont immédiatement réveillées." - -#: library/asyncio-sync.rst:158 -msgid "Clear (unset) the event." -msgstr "Efface (désactive) l'événement." - -#: library/asyncio-sync.rst:160 -#, fuzzy -msgid "" -"Subsequent tasks awaiting on :meth:`~Event.wait` will now block until " -"the :meth:`~Event.set` method is called again." -msgstr "" -"Les tâches en attente sur :meth:`~Event.wait` seront désormais bloquées " -"jusqu'à ce que la méthode :meth:`~Event.set` soit à nouveau appelée." - -#: library/asyncio-sync.rst:165 -msgid "Return ``True`` if the event is set." -msgstr "Renvoie ``True`` si l'évènement est actif." - -#: library/asyncio-sync.rst:169 -msgid "Condition" -msgstr "Condition" - -#: library/asyncio-sync.rst:173 -msgid "A Condition object. Not thread-safe." -msgstr "" -"Objet Condition. Non compatible avec les programmes à plusieurs fils " -"d'exécution." - -#: library/asyncio-sync.rst:175 -msgid "" -"An asyncio condition primitive can be used by a task to wait for some event " -"to happen and then get exclusive access to a shared resource." -msgstr "" -"Une primitive de condition asynchrone peut être utilisée par une tâche pour " -"attendre qu'un événement se produise, puis obtenir un accès exclusif à une " -"ressource partagée." - -#: library/asyncio-sync.rst:179 -msgid "" -"In essence, a Condition object combines the functionality of " -"an :class:`Event` and a :class:`Lock`. It is possible to have multiple " -"Condition objects share one Lock, which allows coordinating exclusive access " -"to a shared resource between different tasks interested in particular states " -"of that shared resource." -msgstr "" -"Essentiellement, un objet *Condition* combine les fonctionnalités " -"d'un :class:`Event` et d'un :class:`Lock`. Il est possible que plusieurs " -"objets *Condition* partagent un seul verrou, ce qui permet de coordonner " -"l'accès exclusif à une ressource partagée entre différentes tâches " -"intéressées par des états particuliers de cette ressource partagée." - -#: library/asyncio-sync.rst:185 -msgid "" -"The optional *lock* argument must be a :class:`Lock` object or ``None``. In " -"the latter case a new Lock object is created automatically." -msgstr "" -"L'argument optionnel *lock* doit être un objet :class:`Lock` ou ``None``. " -"Dans ce dernier cas, un nouvel objet *Lock* est créé automatiquement." - -#: library/asyncio-sync.rst:192 -msgid "" -"The preferred way to use a Condition is an :keyword:`async with` statement::" -msgstr "" -"La meilleure façon d'utiliser une *Condition* est une " -"instruction :keyword:`async with` ::" - -#: library/asyncio-sync.rst:215 -msgid "Acquire the underlying lock." -msgstr "Verrouille le verrou sous-jacent." - -#: library/asyncio-sync.rst:217 -msgid "" -"This method waits until the underlying lock is *unlocked*, sets it to " -"*locked* and returns ``True``." -msgstr "" -"Cette méthode attend que le verrou sous-jacent soit déverrouillé, le " -"verrouille et renvoie ``True``." - -#: library/asyncio-sync.rst:222 -#, fuzzy -msgid "" -"Wake up *n* tasks (1 by default) waiting on this condition. If fewer than " -"*n* tasks are waiting they are all awakened." -msgstr "" -"Réveille au plus *n* tâches (1 par défaut) en attente de cette condition. La " -"méthode ne fait rien si aucune tâche n'est en attente." - -#: library/asyncio-sync.rst:240 -msgid "" -"The lock must be acquired before this method is called and released shortly " -"after. If called with an *unlocked* lock a :exc:`RuntimeError` error is " -"raised." -msgstr "" -"Le verrou doit être verrouillé avant que cette méthode ne soit appelée et " -"libéré peu de temps après. S'il est appelé avec un verrou déverrouillé, une " -"erreur :exc:`RuntimeError` est levée." - -#: library/asyncio-sync.rst:231 -msgid "Return ``True`` if the underlying lock is acquired." -msgstr "Renvoie ``True`` si le verrou sous-jacent est verrouillé." - -#: library/asyncio-sync.rst:235 -msgid "Wake up all tasks waiting on this condition." -msgstr "Réveille toutes les tâches en attente sur cette condition." - -#: library/asyncio-sync.rst:237 -msgid "This method acts like :meth:`notify`, but wakes up all waiting tasks." -msgstr "" -"Cette méthode agit comme :meth:`notify`, mais réveille toutes les tâches en " -"attente." - -#: library/asyncio-sync.rst:246 -msgid "Release the underlying lock." -msgstr "Libère le verrou sous-jacent." - -#: library/asyncio-sync.rst:248 -msgid "When invoked on an unlocked lock, a :exc:`RuntimeError` is raised." -msgstr "" -"Lorsqu'elle est invoquée sur un verrou déverrouillé, une :exc:`RuntimeError` " -"est levée." - -#: library/asyncio-sync.rst:254 -msgid "Wait until notified." -msgstr "Attend d'être notifié." - -#: library/asyncio-sync.rst:256 -msgid "" -"If the calling task has not acquired the lock when this method is called, " -"a :exc:`RuntimeError` is raised." -msgstr "" -"Si la tâche appelante n'a pas verrouillé le verrou lorsque cette méthode est " -"appelée, une :exc:`RuntimeError` est levée." - -#: library/asyncio-sync.rst:259 -msgid "" -"This method releases the underlying lock, and then blocks until it is " -"awakened by a :meth:`notify` or :meth:`notify_all` call. Once awakened, the " -"Condition re-acquires its lock and this method returns ``True``." -msgstr "" -"Cette méthode libère le verrou sous-jacent, puis se bloque jusqu'à ce " -"qu'elle soit réveillée par un appel :meth:`notify` ou :meth:`notify_all`. " -"Une fois réveillée, la *Condition* verrouille à nouveau son verrou et cette " -"méthode renvoie ``True``." - -#: library/asyncio-sync.rst:264 -msgid "" -"Note that a task *may* return from this call spuriously, which is why the " -"caller should always re-check the state and be prepared " -"to :meth:`~Condition.wait` again. For this reason, you may prefer to " -"use :meth:`~Condition.wait_for` instead." -msgstr "" - -#: library/asyncio-sync.rst:272 -msgid "Wait until a predicate becomes *true*." -msgstr "Attend jusqu'à ce qu'un prédicat devienne vrai." - -#: library/asyncio-sync.rst:274 -#, fuzzy -msgid "" -"The predicate must be a callable which result will be interpreted as a " -"boolean value. The method will repeatedly :meth:`~Condition.wait` until the " -"predicate evaluates to *true*. The final value is the return value." -msgstr "" -"Le prédicat doit être un appelable dont le résultat est interprété comme une " -"valeur booléenne. La valeur finale est la valeur de retour." - -#: library/asyncio-sync.rst:281 -msgid "Semaphore" -msgstr "Sémaphore" - -#: library/asyncio-sync.rst:285 -msgid "A Semaphore object. Not thread-safe." -msgstr "" -"Objet *Sémaphore*. Non compatible avec les programmes à plusieurs fils " -"d'exécution." - -#: library/asyncio-sync.rst:287 -msgid "" -"A semaphore manages an internal counter which is decremented by " -"each :meth:`acquire` call and incremented by each :meth:`release` call. The " -"counter can never go below zero; when :meth:`acquire` finds that it is zero, " -"it blocks, waiting until some task calls :meth:`release`." -msgstr "" -"Un sémaphore gère un compteur interne qui est décrémenté à chaque " -"appel :meth:`acquire` et incrémenté à chaque appel :meth:`release`. Le " -"compteur ne peut jamais descendre en dessous de zéro ; quand :meth:`acquire` " -"trouve qu'il est égal à zéro, il se bloque, en attendant qu'une tâche " -"appelle :meth:`release`." - -#: library/asyncio-sync.rst:293 -msgid "" -"The optional *value* argument gives the initial value for the internal " -"counter (``1`` by default). If the given value is less than ``0`` " -"a :exc:`ValueError` is raised." -msgstr "" -"L'argument optionnel *value* donne la valeur initiale du compteur interne " -"(``1`` par défaut). Si la valeur donnée est inférieure à ``0`` " -"une :exc:`ValueError` est levée." - -#: library/asyncio-sync.rst:300 -msgid "" -"The preferred way to use a Semaphore is an :keyword:`async with` statement::" -msgstr "" -"La meilleure façon d'utiliser un sémaphore est une " -"instruction :keyword:`async with` ::" - -#: library/asyncio-sync.rst:323 -msgid "Acquire a semaphore." -msgstr "Acquiert un sémaphore." - -#: library/asyncio-sync.rst:325 -msgid "" -"If the internal counter is greater than zero, decrement it by one and return " -"``True`` immediately. If it is zero, wait until a :meth:`release` is called " -"and return ``True``." -msgstr "" -"Si le compteur interne est supérieur à zéro, le décrémente d'une unité et " -"renvoie ``True`` immédiatement. Si c'est zéro, attend que :meth:`release` " -"soit appelée et renvoie ``True``." - -#: library/asyncio-sync.rst:331 -msgid "Returns ``True`` if semaphore can not be acquired immediately." -msgstr "" -"Renvoie ``True`` si le sémaphore ne peut pas être acquis immédiatement." - -#: library/asyncio-sync.rst:335 -msgid "" -"Release a semaphore, incrementing the internal counter by one. Can wake up a " -"task waiting to acquire the semaphore." -msgstr "" -"Relâche un sémaphore, incrémentant le compteur interne d'une unité. Peut " -"réveiller une tâche en attente d'acquisition du sémaphore." - -#: library/asyncio-sync.rst:338 -msgid "" -"Unlike :class:`BoundedSemaphore`, :class:`Semaphore` allows making more " -"``release()`` calls than ``acquire()`` calls." -msgstr "" -"Contrairement à :class:`BoundedSemaphore`, :class:`Semaphore` permet de " -"faire plus d'appels ``release()`` que d'appels ``acquire()``." - -#: library/asyncio-sync.rst:343 -msgid "BoundedSemaphore" -msgstr "Sémaphore capé (*BoundedSemaphore*)" - -#: library/asyncio-sync.rst:347 -msgid "A bounded semaphore object. Not thread-safe." -msgstr "" -"Objet sémaphore capé. Non compatible avec les programmes à plusieurs fils " -"d'exécution." - -#: library/asyncio-sync.rst:349 -msgid "" -"Bounded Semaphore is a version of :class:`Semaphore` that raises " -"a :exc:`ValueError` in :meth:`~Semaphore.release` if it increases the " -"internal counter above the initial *value*." -msgstr "" -"*Bounded Semaphore* est une version de :class:`Semaphore` qui lève " -"une :exc:`ValueError` dans :meth:`~Semaphore.release` s'il augmente le " -"compteur interne au-dessus de la *value* initiale." - -#: library/asyncio-sync.rst:358 -msgid "Barrier" -msgstr "Barrière (*Barrier*)" - -#: library/asyncio-sync.rst:362 -msgid "A barrier object. Not thread-safe." -msgstr "" -"Objet barrière. Non compatible avec les programmes à plusieurs fils " -"d'exécution." - -#: library/asyncio-sync.rst:364 -msgid "" -"A barrier is a simple synchronization primitive that allows to block until " -"*parties* number of tasks are waiting on it. Tasks can wait on " -"the :meth:`~Barrier.wait` method and would be blocked until the specified " -"number of tasks end up waiting on :meth:`~Barrier.wait`. At that point all " -"of the waiting tasks would unblock simultaneously." -msgstr "" -"Une barrière est une simple primitive de synchronisation qui permet de " -"bloquer jusqu'à ce que *parties* tâches l'attendent. Les tâches attendent " -"sur la méthode :meth:`~Barrier.wait` et sont bloquées jusqu'à ce que le " -"nombre spécifié de tâches attendent sur :meth:`~Barrier.wait`. À ce stade, " -"toutes les tâches en attente se débloquent simultanément." - -#: library/asyncio-sync.rst:370 -msgid "" -":keyword:`async with` can be used as an alternative to awaiting " -"on :meth:`~Barrier.wait`." -msgstr "" -":keyword:`async with` peut être utilisé comme alternative à l'attente " -"sur :meth:`~Barrier.wait`." - -#: library/asyncio-sync.rst:373 -msgid "The barrier can be reused any number of times." -msgstr "La barrière peut être réutilisée un nombre illimité de fois." - -#: library/asyncio-sync.rst:400 -msgid "Result of this example is::" -msgstr "Le résultat de cet exemple est ::" - -#: library/asyncio-sync.rst:412 -msgid "" -"Pass the barrier. When all the tasks party to the barrier have called this " -"function, they are all unblocked simultaneously." -msgstr "" -"Passe la barrière. Lorsque toutes les tâches bloquées à la barrière ont " -"appelé cette fonction, elles sont toutes débloquées simultanément." - -#: library/asyncio-sync.rst:415 -msgid "" -"When a waiting or blocked task in the barrier is cancelled, this task exits " -"the barrier which stays in the same state. If the state of the barrier is " -"\"filling\", the number of waiting task decreases by 1." -msgstr "" -"Lorsqu'une tâche en attente ou bloquée à la barrière est annulée, cette " -"tâche sort de la barrière qui reste dans le même état. Si la barrière est en " -"cours de « remplissage », le nombre de tâche en attente diminue de 1." - -#: library/asyncio-sync.rst:420 -msgid "" -"The return value is an integer in the range of 0 to ``parties-1``, different " -"for each task. This can be used to select a task to do some special " -"housekeeping, e.g.::" -msgstr "" -"La valeur de retour est un entier compris entre 0 et ``parties-1``, " -"différent pour chaque tâche. Cela peut être utilisé pour sélectionner une " -"tâche qui fera du ménage, par exemple ::" - -#: library/asyncio-sync.rst:430 -msgid "" -"This method may raise a :class:`BrokenBarrierError` exception if the barrier " -"is broken or reset while a task is waiting. It could raise " -"a :exc:`CancelledError` if a task is cancelled." -msgstr "" -"Cette méthode peut lever une exception :class:`BrokenBarrierError` si la " -"barrière est brisée ou réinitialisée alors qu'une tâche est en attente. Cela " -"peut lever une :exc:`CancelledError` si une tâche est annulée." - -#: library/asyncio-sync.rst:437 -msgid "" -"Return the barrier to the default, empty state. Any tasks waiting on it " -"will receive the :class:`BrokenBarrierError` exception." -msgstr "" -"Ramène la barrière à l'état vide par défaut. Toutes les tâches en attente " -"reçoivent l'exception :class:`BrokenBarrierError`." - -#: library/asyncio-sync.rst:440 -msgid "" -"If a barrier is broken it may be better to just leave it and create a new " -"one." -msgstr "" -"Si une barrière est brisée, il peut être préférable de la quitter et d'en " -"créer une nouvelle." - -#: library/asyncio-sync.rst:445 -#, fuzzy -msgid "" -"Put the barrier into a broken state. This causes any active or future calls " -"to :meth:`~Barrier.wait` to fail with the :class:`BrokenBarrierError`. Use " -"this for example if one of the tasks needs to abort, to avoid infinite " -"waiting tasks." -msgstr "" -"Met la barrière dans un état cassé. Cela provoque l'échec de tout appel " -"actif ou futur à :meth:`wait` avec une :class:`BrokenBarrierError`. Utilisez " -"ceci par exemple si l'une des tâches doit être abandonnée, pour éviter des " -"tâches en attente infinie." - -#: library/asyncio-sync.rst:452 -msgid "The number of tasks required to pass the barrier." -msgstr "Le nombre de tâches nécessaires pour franchir la barrière." - -#: library/asyncio-sync.rst:456 -msgid "The number of tasks currently waiting in the barrier while filling." -msgstr "" -"Le nombre de tâches actuellement en attente à la barrière pendant le " -"remplissage." - -#: library/asyncio-sync.rst:460 -msgid "A boolean that is ``True`` if the barrier is in the broken state." -msgstr "Booléen qui vaut ``True`` si la barrière est rompue." - -#: library/asyncio-sync.rst:465 -msgid "" -"This exception, a subclass of :exc:`RuntimeError`, is raised when " -"the :class:`Barrier` object is reset or broken." -msgstr "" -"Cette exception, une sous-classe de :exc:`RuntimeError`, est déclenchée " -"lorsque l'objet :class:`Barrier` est réinitialisé ou cassé." - -# suit un : -#: library/asyncio-sync.rst:473 -msgid "" -"Acquiring a lock using ``await lock`` or ``yield from lock`` and/" -"or :keyword:`with` statement (``with await lock``, ``with (yield from " -"lock)``) was removed. Use ``async with lock`` instead." -msgstr "" -"l'acquisition d'un verrou en utilisant ``wait lock`` ou ``yield from lock`` " -"ou :keyword:`with` (``with await lock``, ``with (yield from lock)``) a été " -"supprimée. Utilisez ``async with lock`` à la place." diff --git a/library/asyncio-task.po b/library/asyncio-task.po deleted file mode 100644 index 0a3592f2f7..0000000000 --- a/library/asyncio-task.po +++ /dev/null @@ -1,2140 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-06-29 21:14+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/asyncio-task.rst:6 -#, fuzzy -msgid "Coroutines and tasks" -msgstr "Coroutines et tâches" - -#: library/asyncio-task.rst:8 -msgid "" -"This section outlines high-level asyncio APIs to work with coroutines and " -"Tasks." -msgstr "" -"Cette section donne un aperçu des API de haut-niveau du module *asyncio* " -"pour utiliser les coroutines et les tâches." - -#: library/asyncio-task.rst:148 -msgid "Coroutines" -msgstr "Coroutines" - -#: library/asyncio-task.rst:21 -msgid "**Source code:** :source:`Lib/asyncio/coroutines.py`" -msgstr "**Code source :** :source:`Lib/asyncio/coroutines.py`" - -#: library/asyncio-task.rst:25 -msgid "" -":term:`Coroutines ` declared with the async/await syntax is the " -"preferred way of writing asyncio applications. For example, the following " -"snippet of code prints \"hello\", waits 1 second, and then prints \"world\"::" -msgstr "" -"Les :term:`coroutines ` déclarées avec la syntaxe *async/await* " -"sont la manière privilégiée d’écrire des applications asynchrones. Par " -"exemple, l’extrait de code suivant affiche « hello », attend une seconde et " -"affiche ensuite « world » ::" - -#: library/asyncio-task.rst:41 -msgid "" -"Note that simply calling a coroutine will not schedule it to be executed::" -msgstr "" -"Remarquez que simplement appeler une coroutine ne la planifie pas pour " -"exécution ::" - -#: library/asyncio-task.rst:47 -msgid "To actually run a coroutine, asyncio provides the following mechanisms:" -msgstr "" -"Pour réellement exécuter une coroutine, *asyncio* fournit les mécanismes " -"suivants :" - -#: library/asyncio-task.rst:49 -msgid "" -"The :func:`asyncio.run` function to run the top-level entry point \"main()\" " -"function (see the above example.)" -msgstr "" -"La fonction :func:`asyncio.run` pour exécuter la fonction « main() », le " -"point d'entrée de haut-niveau (voir l'exemple ci-dessus)." - -#: library/asyncio-task.rst:52 -msgid "" -"Awaiting on a coroutine. The following snippet of code will print \"hello\" " -"after waiting for 1 second, and then print \"world\" after waiting for " -"*another* 2 seconds::" -msgstr "" -"Attendre une coroutine. Le morceau de code suivant attend une seconde, " -"affiche « hello », attend 2 secondes *supplémentaires*, puis affiche enfin " -"« world » ::" - -#: library/asyncio-task.rst:73 -msgid "Expected output::" -msgstr "Sortie attendue ::" - -#: library/asyncio-task.rst:80 -msgid "" -"The :func:`asyncio.create_task` function to run coroutines concurrently as " -"asyncio :class:`Tasks `." -msgstr "" -"La fonction :func:`asyncio.create_task` pour exécuter de manière concurrente " -"des coroutines en tant que :class:`tâches ` *asyncio*." - -#: library/asyncio-task.rst:83 -msgid "" -"Let's modify the above example and run two ``say_after`` coroutines " -"*concurrently*::" -msgstr "" -"Modifions l'exemple ci-dessus et lançons deux coroutines ``say_after`` *de " -"manière concurrente* ::" - -#: library/asyncio-task.rst:102 -msgid "" -"Note that expected output now shows that the snippet runs 1 second faster " -"than before::" -msgstr "" -"La sortie attendue montre à présent que ce code s'exécute une seconde plus " -"rapidement que le précédent ::" - -#: library/asyncio-task.rst:110 -msgid "" -"The :class:`asyncio.TaskGroup` class provides a more modern alternative " -"to :func:`create_task`. Using this API, the last example becomes::" -msgstr "" -"La classe :class:`asyncio.TaskGroup` fournit une alternative plus moderne " -"à :func:`create_task`. En utilisant cette API, le dernier exemple devient ::" - -#: library/asyncio-task.rst:128 -msgid "The timing and output should be the same as for the previous version." -msgstr "" -"Le temps d'exécution et la sortie doivent être les mêmes que pour la version " -"précédente." - -#: library/asyncio-task.rst:130 -msgid ":class:`asyncio.TaskGroup`." -msgstr ":class:`asyncio.TaskGroup`." - -#: library/asyncio-task.rst:137 -msgid "Awaitables" -msgstr "*Attendables*" - -#: library/asyncio-task.rst:139 -msgid "" -"We say that an object is an **awaitable** object if it can be used in " -"an :keyword:`await` expression. Many asyncio APIs are designed to accept " -"awaitables." -msgstr "" -"Un objet est dit *attendable* (*awaitable* en anglais, c.-à-d. qui peut être " -"attendu) s'il peut être utilisé dans une expression :keyword:`await`. " -"Beaucoup d'API d'*asyncio* sont conçues pour accepter des *attendables*." - -#: library/asyncio-task.rst:143 -msgid "" -"There are three main types of *awaitable* objects: **coroutines**, " -"**Tasks**, and **Futures**." -msgstr "" -"Il existe trois types principaux d'*attendables* : les **coroutines**, les " -"**tâches** et les **futurs**." - -#: library/asyncio-task.rst:149 -msgid "" -"Python coroutines are *awaitables* and therefore can be awaited from other " -"coroutines::" -msgstr "" -"Les coroutines sont des *awaitables* et peuvent donc être attendues par " -"d'autres coroutines ::" - -# suit un : -#: library/asyncio-task.rst:170 -msgid "" -"In this documentation the term \"coroutine\" can be used for two closely " -"related concepts:" -msgstr "" -"dans cette documentation, le terme « coroutine » est utilisé pour désigner " -"deux concepts voisins :" - -#: library/asyncio-task.rst:173 -msgid "a *coroutine function*: an :keyword:`async def` function;" -msgstr "une *fonction coroutine* : une fonction :keyword:`async def` ;" - -#: library/asyncio-task.rst:175 -msgid "" -"a *coroutine object*: an object returned by calling a *coroutine function*." -msgstr "un *objet coroutine* : un objet renvoyé par une *fonction coroutine*." - -#: library/asyncio-task.rst:180 -msgid "Tasks" -msgstr "Tâches" - -#: library/asyncio-task.rst:181 -msgid "*Tasks* are used to schedule coroutines *concurrently*." -msgstr "" -"Les *tâches* servent à planifier des coroutines de façon à ce qu'elles " -"s'exécutent de manière concurrente." - -#: library/asyncio-task.rst:183 -msgid "" -"When a coroutine is wrapped into a *Task* with functions " -"like :func:`asyncio.create_task` the coroutine is automatically scheduled to " -"run soon::" -msgstr "" -"Lorsqu'une coroutine est encapsulée dans une *tâche* à l'aide de fonctions " -"comme :func:`asyncio.create_task`, la coroutine est automatiquement " -"planifiée pour s'exécuter prochainement ::" - -#: library/asyncio-task.rst:205 -msgid "Futures" -msgstr "Futurs" - -#: library/asyncio-task.rst:206 -msgid "" -"A :class:`Future` is a special **low-level** awaitable object that " -"represents an **eventual result** of an asynchronous operation." -msgstr "" -"Un :class:`Future` est un objet *attendable* spécial de **bas-niveau**, qui " -"représente le **résultat final** d'une opération asynchrone." - -#: library/asyncio-task.rst:209 -msgid "" -"When a Future object is *awaited* it means that the coroutine will wait " -"until the Future is resolved in some other place." -msgstr "" -"Quand un objet *Future* est *attendu*, cela signifie que la coroutine " -"attendra que ce futur soit résolu à un autre endroit." - -#: library/asyncio-task.rst:212 -msgid "" -"Future objects in asyncio are needed to allow callback-based code to be used " -"with async/await." -msgstr "" -"Les objets *Future* d'*asyncio* sont nécessaires pour permettre l'exécution " -"de code basé sur les fonctions de rappel avec la syntaxe *async* / *await*." - -#: library/asyncio-task.rst:215 -msgid "" -"Normally **there is no need** to create Future objects at the application " -"level code." -msgstr "" -"Il est normalement **inutile** de créer des objets *Future* dans la couche " -"applicative du code." - -#: library/asyncio-task.rst:218 -msgid "" -"Future objects, sometimes exposed by libraries and some asyncio APIs, can be " -"awaited::" -msgstr "" -"Les objets *Future*, parfois exposés par des bibliothèques et quelques API " -"d'*asyncio*, peuvent être attendus ::" - -#: library/asyncio-task.rst:230 -msgid "" -"A good example of a low-level function that returns a Future object " -"is :meth:`loop.run_in_executor`." -msgstr "" -":meth:`loop.run_in_executor` est l'exemple typique d'une fonction bas-niveau " -"renvoyant un objet *Future*." - -#: library/asyncio-task.rst:235 -#, fuzzy -msgid "Creating tasks" -msgstr "Création de tâches" - -#: library/asyncio-task.rst:237 -msgid "**Source code:** :source:`Lib/asyncio/tasks.py`" -msgstr "**Code source :** :source:`Lib/asyncio/tasks.py`" - -#: library/asyncio-task.rst:243 -msgid "" -"Wrap the *coro* :ref:`coroutine ` into a :class:`Task` and " -"schedule its execution. Return the Task object." -msgstr "" -"Encapsule la :ref:`coroutine ` *coro* dans une tâche et la " -"planifie pour exécution. Renvoie l'objet :class:`Task`." - -#: library/asyncio-task.rst:246 -msgid "" -"The full function signature is largely the same as that of the :class:`Task` " -"constructor (or factory) - all of the keyword arguments to this function are " -"passed through to that interface." -msgstr "" - -#: library/asyncio-task.rst:250 -msgid "" -"An optional keyword-only *context* argument allows specifying a " -"custom :class:`contextvars.Context` for the *coro* to run in. The current " -"context copy is created when no *context* is provided." -msgstr "" -"L'argument (uniquement nommé) facultatif *context* permet de spécifier " -"un :class:`contextvars.Context` personnalisé pour la coroutine à exécuter. " -"La copie de contexte actuelle est créée lorsqu'aucun *context* n'est fourni." - -#: library/asyncio-task.rst:254 -msgid "" -"An optional keyword-only *eager_start* argument allows specifying if the " -"task should execute eagerly during the call to create_task, or be scheduled " -"later. If *eager_start* is not passed the mode set " -"by :meth:`loop.set_task_factory` will be used." -msgstr "" - -#: library/asyncio-task.rst:259 -msgid "" -"The task is executed in the loop returned " -"by :func:`get_running_loop`, :exc:`RuntimeError` is raised if there is no " -"running loop in current thread." -msgstr "" -"La tâche est exécutée dans la boucle renvoyée " -"par :func:`get_running_loop` ; :exc:`RuntimeError` est levée s'il n'y a pas " -"de boucle en cours d'exécution dans le fil actuel." - -#: library/asyncio-task.rst:265 -#, fuzzy -msgid "" -":meth:`asyncio.TaskGroup.create_task` is a new alternative leveraging " -"structural concurrency; it allows for waiting for a group of related tasks " -"with strong safety guarantees." -msgstr "" -":meth:`asyncio.TaskGroup.create_task` est une alternative plus récente qui " -"permet d'attendre facilement un groupe de tâches associées." - -# suit un : -#: library/asyncio-task.rst:271 -msgid "" -"Save a reference to the result of this function, to avoid a task " -"disappearing mid-execution. The event loop only keeps weak references to " -"tasks. A task that isn't referenced elsewhere may get garbage collected at " -"any time, even before it's done. For reliable \"fire-and-forget\" background " -"tasks, gather them in a collection::" -msgstr "" -"gardez une référence au résultat de cette fonction, pour éviter qu'une tâche " -"ne disparaisse en cours d'exécution. La boucle d'événements ne conserve que " -"les références faibles aux tâches. Une tâche qui n'est pas référencée " -"ailleurs peut être supprimée par le ramasse-miettes à tout moment, même " -"avant qu'elle ne soit terminée. Pour créer des tâches d'arrière-plan fiables " -"de type « lance et oublie », rassemblez-les dans une collection ::" - -# suit un : -#: library/asyncio-task.rst:1239 -msgid "Added the *name* parameter." -msgstr "ajout du paramètre *name*." - -# suit un : -#: library/asyncio-task.rst:1246 -msgid "Added the *context* parameter." -msgstr "ajout du paramètre *context*." - -# suit un : -#: library/asyncio-task.rst:299 -#, fuzzy -msgid "Added the *eager_start* parameter by passing on all *kwargs*." -msgstr "ajout du paramètre *name*." - -#: library/asyncio-task.rst:304 -#, fuzzy -msgid "Task cancellation" -msgstr "Annulation de tâche" - -#: library/asyncio-task.rst:306 -msgid "" -"Tasks can easily and safely be cancelled. When a task is " -"cancelled, :exc:`asyncio.CancelledError` will be raised in the task at the " -"next opportunity." -msgstr "" -"Les tâches peuvent être annulées facilement et en toute sécurité. Lorsqu'une " -"tâche est annulée, :exc:`asyncio.CancelledError` est levée dans la tâche à " -"la première occasion." - -#: library/asyncio-task.rst:310 -msgid "" -"It is recommended that coroutines use ``try/finally`` blocks to robustly " -"perform clean-up logic. In case :exc:`asyncio.CancelledError` is explicitly " -"caught, it should generally be propagated when clean-up is " -"complete. :exc:`asyncio.CancelledError` directly " -"subclasses :exc:`BaseException` so most code will not need to be aware of it." -msgstr "" -"Il est recommandé que les coroutines utilisent des blocs ``try/finally`` " -"pour exécuter de manière robuste la logique de nettoyage. Dans le cas " -"où :exc:`asyncio.CancelledError` est explicitement interceptée, elle devrait " -"généralement être propagée lorsque le nettoyage est " -"terminé. :exc:`asyncio.CancelledError` sous-classe " -"directement :exc:`BaseException` donc la plupart du code n'a pas besoin d'en " -"être conscient." - -#: library/asyncio-task.rst:316 -msgid "" -"The asyncio components that enable structured concurrency, " -"like :class:`asyncio.TaskGroup` and :func:`asyncio.timeout`, are implemented " -"using cancellation internally and might misbehave if a coroutine " -"swallows :exc:`asyncio.CancelledError`. Similarly, user code should not " -"generally call :meth:`uncancel `. However, in cases " -"when suppressing :exc:`asyncio.CancelledError` is truly desired, it is " -"necessary to also call ``uncancel()`` to completely remove the cancellation " -"state." -msgstr "" -"Les composants *asyncio* qui permettent la concurrence structurée, " -"comme :class:`asyncio.TaskGroup` et :func:`asyncio.timeout`, sont " -"implémentés en utilisant l'annulation en interne et peuvent mal se comporter " -"si une coroutine ne propage pas :exc:`asyncio.CancelledError`. De même, le " -"code utilisateur ne doit généralement pas " -"appeler :meth:`uncancel`. Cependant, dans les cas où " -"la suppression de :exc:`asyncio.CancelledError` est vraiment souhaitée, il " -"est également nécessaire d'appeler ``uncancel()`` pour supprimer " -"complètement l'état d'annulation." - -#: library/asyncio-task.rst:328 -#, fuzzy -msgid "Task groups" -msgstr "Groupes de tâches" - -#: library/asyncio-task.rst:330 -msgid "" -"Task groups combine a task creation API with a convenient and reliable way " -"to wait for all tasks in the group to finish." -msgstr "" -"Les groupes de tâches combinent une API de création de tâches avec un moyen " -"pratique et fiable d'attendre la fin de toutes les tâches du groupe." - -#: library/asyncio-task.rst:335 -msgid "" -"An :ref:`asynchronous context manager ` holding a " -"group of tasks. Tasks can be added to the group using :meth:`create_task`. " -"All tasks are awaited when the context manager exits." -msgstr "" -":ref:`Gestionnaire de contexte asynchrone ` " -"responsable d’un groupe de tâches. Des tâches peuvent être ajoutées au " -"groupe en utilisant :meth:`create_task`. Toutes les tâches sont attendues à " -"la sortie du gestionnaire de contexte." - -#: library/asyncio-task.rst:344 -msgid "" -"Create a task in this task group. The signature matches that " -"of :func:`asyncio.create_task`. If the task group is inactive (e.g. not yet " -"entered, already finished, or in the process of shutting down), we will " -"close the given ``coro``." -msgstr "" - -#: library/asyncio-task.rst:352 -msgid "Close the given coroutine if the task group is not active." -msgstr "" - -#: library/asyncio-task.rst:356 -msgid "Passes on all *kwargs* to :meth:`loop.create_task`" -msgstr "" - -#: library/asyncio-task.rst:360 -msgid "" -"Cancel the task group. This is a non-exceptional, early exit of the task " -"group's lifetime -- useful once the group's goal has been met or its " -"services no longer needed." -msgstr "" - -#: library/asyncio-task.rst:364 -msgid "" -":meth:`~asyncio.Task.cancel` will be called on any tasks in the group that " -"aren't yet done, as well as the parent (body) of the group. The task group " -"context manager will exit *without* :exc:`asyncio.CancelledError` being " -"raised." -msgstr "" - -#: library/asyncio-task.rst:368 -msgid "" -"If :meth:`cancel` is called before entering the task group, the group will " -"be cancelled upon entry. This is useful for patterns where one piece of " -"code passes an unused :class:`asyncio.TaskGroup` instance to another in " -"order to have the ability to cancel anything run within the group." -msgstr "" - -#: library/asyncio-task.rst:373 -msgid "" -":meth:`cancel` is idempotent and may be called after the task group has " -"already exited." -msgstr "" - -#: library/asyncio-task.rst:376 -msgid "Some ways to use :meth:`cancel`:" -msgstr "" - -#: library/asyncio-task.rst:378 -msgid "call it from the task group body based on some condition or event" -msgstr "" - -#: library/asyncio-task.rst:379 -msgid "" -"pass the task group instance to child tasks via :meth:`create_task`, " -"allowing a child task to conditionally cancel the entire entire group" -msgstr "" - -#: library/asyncio-task.rst:381 -msgid "" -"pass the task group instance or bound :meth:`cancel` method to some other " -"task *before* opening the task group, allowing remote cancellation" -msgstr "" - -#: library/asyncio-task.rst:546 library/asyncio-task.rst:780 -#: library/asyncio-task.rst:847 -msgid "Example::" -msgstr "Exemple ::" - -#: library/asyncio-task.rst:394 -#, fuzzy -msgid "" -"The ``async with`` statement will wait for all tasks in the group to finish. " -"While waiting, new tasks may still be added to the group (for example, by " -"passing ``tg`` into one of the coroutines and calling ``tg.create_task()`` " -"in that coroutine). There is also opportunity to request termination of the " -"entire task group with ``tg.cancel()``, based on some condition. Once the " -"last task has finished and the ``async with`` block is exited, no new tasks " -"may be added to the group." -msgstr "" -"L'instruction ``async with`` attend la fin de toutes les tâches du groupe. " -"Lors de l'attente, de nouvelles tâches peuvent encore être ajoutées au " -"groupe (par exemple, en passant ``tg`` dans l'une des coroutines et en " -"appelant ``tg.create_task()`` dans cette coroutine). Une fois que la " -"dernière tâche est terminée et que le bloc ``async with`` est quitté, aucune " -"nouvelle tâche ne peut être ajoutée au groupe." - -#: library/asyncio-task.rst:402 -msgid "" -"The first time any of the tasks belonging to the group fails with an " -"exception other than :exc:`asyncio.CancelledError`, the remaining tasks in " -"the group are cancelled. No further tasks can then be added to the group. At " -"this point, if the body of the ``async with`` statement is still active " -"(i.e., :meth:`~object.__aexit__` hasn't been called yet), the task directly " -"containing the ``async with`` statement is also cancelled. The " -"resulting :exc:`asyncio.CancelledError` will interrupt an ``await``, but it " -"will not bubble out of the containing ``async with`` statement." -msgstr "" -"La première fois que l'une des tâches appartenant au groupe échoue avec une " -"exception autre que :exc:`asyncio.CancelledError`, les tâches restantes du " -"groupe sont annulées. Aucune autre tâche ne peut alors être ajoutée au " -"groupe. À ce stade, si le corps de l'instruction ``async with`` est toujours " -"actif (par exemple, :meth:`~object.__aexit__` n'a pas encore été appelé), la " -"tâche contenant directement l'instruction ``async with`` est également " -"annulée. Le résultat :exc:`asyncio.CancelledError` interrompt un ``await``, " -"mais il ne sort pas de l'instruction ``async with`` englobante." - -#: library/asyncio-task.rst:412 -msgid "" -"Once all tasks have finished, if any tasks have failed with an exception " -"other than :exc:`asyncio.CancelledError`, those exceptions are combined in " -"an :exc:`ExceptionGroup` or :exc:`BaseExceptionGroup` (as appropriate; see " -"their documentation) which is then raised." -msgstr "" -"Une fois toutes les tâches terminées, si des tâches ont échoué avec une " -"exception autre que :exc:`asyncio.CancelledError`, ces exceptions sont " -"combinées dans un :exc:`ExceptionGroup` ou :exc:`BaseExceptionGroup` (selon " -"le cas ; voir leur documentation) qui est ensuite levé." - -#: library/asyncio-task.rst:419 -msgid "" -"Two base exceptions are treated specially: If any task fails " -"with :exc:`KeyboardInterrupt` or :exc:`SystemExit`, the task group still " -"cancels the remaining tasks and waits for them, but then the " -"initial :exc:`KeyboardInterrupt` or :exc:`SystemExit` is re-raised instead " -"of :exc:`ExceptionGroup` or :exc:`BaseExceptionGroup`." -msgstr "" -"Deux exceptions de base sont traitées spécialement : si une tâche échoue " -"avec :exc:`KeyboardInterrupt` ou :exc:`SystemExit`, le groupe de tâches " -"annule toujours les tâches restantes et les attend, mais alors " -"la :exc:`KeyboardInterrupt` ou la :exc:`SystemExit` initiale est levée à " -"nouveau au lieu de :exc:`ExceptionGroup` ou :exc:`BaseExceptionGroup`." - -#: library/asyncio-task.rst:425 -msgid "" -"If the body of the ``async with`` statement exits with an exception " -"(so :meth:`~object.__aexit__` is called with an exception set), this is " -"treated the same as if one of the tasks failed: the remaining tasks are " -"cancelled and then waited for, and non-cancellation exceptions are grouped " -"into an exception group and raised. The exception passed " -"into :meth:`~object.__aexit__`, unless it is :exc:`asyncio.CancelledError`, " -"is also included in the exception group. The same special case is made " -"for :exc:`KeyboardInterrupt` and :exc:`SystemExit` as in the previous " -"paragraph." -msgstr "" -"Si le corps de l'instruction ``async with`` se termine avec une exception " -"(donc :meth:`~object.__aexit__` est appelé avec un ensemble d'exceptions), " -"cela est traité de la même manière que si l'une des tâches échouait : les " -"tâches restantes sont annulées puis attendues, et les exceptions de non-" -"annulation sont regroupées dans un groupe d'exceptions et levées. " -"L'exception transmise à :meth:`~object.__aexit__`, à moins qu'il ne s'agisse " -"de :exc:`asyncio.CancelledError`, est également incluse dans le groupe " -"d'exceptions. Le même cas spécial concerne :exc:`KeyboardInterrupt` " -"et :exc:`SystemExit` comme dans le paragraphe précédent." - -#: library/asyncio-task.rst:437 -msgid "" -"Task groups are careful not to mix up the internal cancellation used to " -"\"wake up\" their :meth:`~object.__aexit__` with cancellation requests for " -"the task in which they are running made by other parties. In particular, " -"when one task group is syntactically nested in another, and both experience " -"an exception in one of their child tasks simultaneously, the inner task " -"group will process its exceptions, and then the outer task group will " -"receive another cancellation and process its own exceptions." -msgstr "" - -#: library/asyncio-task.rst:445 -msgid "" -"In the case where a task group is cancelled externally and also must raise " -"an :exc:`ExceptionGroup`, it will call the parent " -"task's :meth:`~asyncio.Task.cancel` method. This ensures that " -"a :exc:`asyncio.CancelledError` will be raised at the next :keyword:`await`, " -"so the cancellation is not lost." -msgstr "" - -#: library/asyncio-task.rst:451 -msgid "" -"Task groups preserve the cancellation count reported " -"by :meth:`asyncio.Task.cancelling`." -msgstr "" - -#: library/asyncio-task.rst:456 -msgid "" -"Improved handling of simultaneous internal and external cancellations and " -"correct preservation of cancellation counts." -msgstr "" - -#: library/asyncio-task.rst:460 -msgid "Sleeping" -msgstr "Attente" - -#: library/asyncio-task.rst:465 -msgid "Block for *delay* seconds." -msgstr "Attend pendant *delay* secondes." - -#: library/asyncio-task.rst:467 -msgid "" -"If *result* is provided, it is returned to the caller when the coroutine " -"completes." -msgstr "" -"Si *result* est spécifié, il est renvoyé à l'appelant quand la coroutine se " -"termine." - -#: library/asyncio-task.rst:470 -msgid "" -"``sleep()`` always suspends the current task, allowing other tasks to run." -msgstr "" -"``sleep()`` suspend systématiquement la tâche courante, ce qui permet aux " -"autres tâches de s'exécuter." - -#: library/asyncio-task.rst:473 -msgid "" -"Setting the delay to 0 provides an optimized path to allow other tasks to " -"run. This can be used by long-running functions to avoid blocking the event " -"loop for the full duration of the function call." -msgstr "" -"Définir le délai sur 0 fournit un chemin optimisé pour permettre à d'autres " -"tâches de s'exécuter. Cela peut être utilisé par les fonctions de longue " -"durée pour éviter de bloquer la boucle d'événements pendant toute la durée " -"de l'appel de fonction." - -#: library/asyncio-task.rst:479 -msgid "" -"Example of coroutine displaying the current date every second for 5 seconds::" -msgstr "" -"Exemple d'une coroutine affichant la date toutes les secondes pendant 5 " -"secondes ::" - -# suit un : -#: library/asyncio-task.rst:595 library/asyncio-task.rst:872 -#: library/asyncio-task.rst:984 -msgid "Removed the *loop* parameter." -msgstr "le paramètre *loop* a été enlevé." - -#: library/asyncio-task.rst:500 -msgid "Raises :exc:`ValueError` if *delay* is :data:`~math.nan`." -msgstr "" - -#: library/asyncio-task.rst:505 -#, fuzzy -msgid "Running tasks concurrently" -msgstr "Exécution de tâches de manière concurrente" - -#: library/asyncio-task.rst:509 -msgid "" -"Run :ref:`awaitable objects ` in the *aws* sequence " -"*concurrently*." -msgstr "" -"Exécute les objets :ref:`awaitable ` de la séquence " -"*aws*, *de manière concurrente*." - -#: library/asyncio-task.rst:512 -msgid "" -"If any awaitable in *aws* is a coroutine, it is automatically scheduled as a " -"Task." -msgstr "" -"Si un *attendable* de *aws* est une coroutine, celui-ci est automatiquement " -"planifié comme une tâche *Task*." - -#: library/asyncio-task.rst:515 -msgid "" -"If all awaitables are completed successfully, the result is an aggregate " -"list of returned values. The order of result values corresponds to the " -"order of awaitables in *aws*." -msgstr "" -"Si tous les *awaitables* s'achèvent avec succès, le résultat est la liste " -"des valeurs renvoyées. L'ordre de cette liste correspond à l'ordre des " -"*awaitables* dans *aws*." - -#: library/asyncio-task.rst:519 -msgid "" -"If *return_exceptions* is ``False`` (default), the first raised exception is " -"immediately propagated to the task that awaits on ``gather()``. Other " -"awaitables in the *aws* sequence **won't be cancelled** and will continue to " -"run." -msgstr "" -"Si *return_exceptions* vaut ``False`` (valeur par défaut), la première " -"exception levée est immédiatement propagée vers la tâche en attente dans le " -"``gather()``. Les autres *attendables* dans la séquence *aws* **ne sont pas " -"annulés** et poursuivent leur exécution." - -#: library/asyncio-task.rst:524 -msgid "" -"If *return_exceptions* is ``True``, exceptions are treated the same as " -"successful results, and aggregated in the result list." -msgstr "" -"Si *return_exceptions* vaut ``True``, les exceptions sont traitées de la " -"même manière que les exécutions normales, et incluses dans la liste des " -"résultats." - -#: library/asyncio-task.rst:527 -msgid "" -"If ``gather()`` is *cancelled*, all submitted awaitables (that have not " -"completed yet) are also *cancelled*." -msgstr "" -"Si ``gather()`` est *annulé*, tous les *awaitables* en cours (ceux qui n'ont " -"pas encore fini de s'exécuter) sont également *annulés*." - -#: library/asyncio-task.rst:530 -msgid "" -"If any Task or Future from the *aws* sequence is *cancelled*, it is treated " -"as if it raised :exc:`CancelledError` -- the ``gather()`` call is **not** " -"cancelled in this case. This is to prevent the cancellation of one " -"submitted Task/Future to cause other Tasks/Futures to be cancelled." -msgstr "" -"Si n'importe quel *Task* ou *Future* de la séquence *aws* est *annulé*, il " -"est traité comme s'il avait levé :exc:`CancelledError` — l'appel à " -"``gather()`` n'est alors **pas** annulé. Ceci permet d'empêcher que " -"l'annulation d'une tâche ou d'un futur entraîne l'annulation des autres " -"tâches ou futurs." - -#: library/asyncio-task.rst:537 -msgid "" -"A new alternative to create and run tasks concurrently and wait for their " -"completion is :class:`asyncio.TaskGroup`. *TaskGroup* provides stronger " -"safety guarantees than *gather* for scheduling a nesting of subtasks: if a " -"task (or a subtask, a task scheduled by a task) raises an exception, " -"*TaskGroup* will, while *gather* will not, cancel the remaining scheduled " -"tasks." -msgstr "" - -#: library/asyncio-task.rst:584 -#, fuzzy -msgid "" -"If *return_exceptions* is false, cancelling gather() after it has been " -"marked done won't cancel any submitted awaitables. For instance, gather can " -"be marked done after propagating an exception to the caller, therefore, " -"calling ``gather.cancel()`` after catching an exception (raised by one of " -"the awaitables) from gather won't cancel any other awaitables." -msgstr "" -"Si *return_exceptions* est faux, l'annulation de la fonction *gather* après " -"qu'elle a été marquée comme terminée n'annule pas les *attendables* soumis. " -"Par exemple, *gather* peut être marquée comme terminée après avoir propagé " -"une exception à l'appelant, par conséquent, appeler ``gather.cancel()`` " -"après avoir intercepté une exception (levée par l'un des *attendables*) de " -"la collecte n'annule aucun autre *attendable*." - -#: library/asyncio-task.rst:591 -msgid "" -"If the *gather* itself is cancelled, the cancellation is propagated " -"regardless of *return_exceptions*." -msgstr "" -"Si *gather* est lui-même annulé, l'annulation est propagée indépendamment de " -"*return_exceptions*." - -#: library/asyncio-task.rst:598 -msgid "" -"Deprecation warning is emitted if no positional arguments are provided or " -"not all positional arguments are Future-like objects and there is no running " -"event loop." -msgstr "" -"Un avertissement d'obsolescence est émis si aucun argument positionnel n'est " -"fourni ou si tous les arguments positionnels ne sont pas des objets de type " -"Future et qu'il n'y a pas de boucle d'événements en cours d'exécution." - -#: library/asyncio-task.rst:607 -msgid "Eager task factory" -msgstr "" - -#: library/asyncio-task.rst:611 -msgid "A task factory for eager task execution." -msgstr "" - -#: library/asyncio-task.rst:613 -msgid "" -"When using this factory " -"(via :meth:`loop.set_task_factory(asyncio.eager_task_factory) " -"`), coroutines begin execution synchronously " -"during :class:`Task` construction. Tasks are only scheduled on the event " -"loop if they block. This can be a performance improvement as the overhead of " -"loop scheduling is avoided for coroutines that complete synchronously." -msgstr "" - -#: library/asyncio-task.rst:619 -msgid "" -"A common example where this is beneficial is coroutines which employ caching " -"or memoization to avoid actual I/O when possible." -msgstr "" - -#: library/asyncio-task.rst:624 -msgid "" -"Immediate execution of the coroutine is a semantic change. If the coroutine " -"returns or raises, the task is never scheduled to the event loop. If the " -"coroutine execution blocks, the task is scheduled to the event loop. This " -"change may introduce behavior changes to existing applications. For example, " -"the application's task execution order is likely to change." -msgstr "" - -#: library/asyncio-task.rst:635 -msgid "" -"Create an eager task factory, similar to :func:`eager_task_factory`, using " -"the provided *custom_task_constructor* when creating a new task instead of " -"the default :class:`Task`." -msgstr "" - -#: library/asyncio-task.rst:639 -msgid "" -"*custom_task_constructor* must be a *callable* with the signature matching " -"the signature of :class:`Task.__init__ `. The callable must return " -"a :class:`asyncio.Task`-compatible object." -msgstr "" - -#: library/asyncio-task.rst:643 -msgid "" -"This function returns a *callable* intended to be used as a task factory of " -"an event loop via :meth:`loop.set_task_factory(factory) " -"`)." -msgstr "" - -#: library/asyncio-task.rst:650 -#, fuzzy -msgid "Shielding from cancellation" -msgstr "Protection contre l'annulation" - -#: library/asyncio-task.rst:654 -msgid "" -"Protect an :ref:`awaitable object ` from " -"being :meth:`cancelled `." -msgstr "" -"Empêche qu'un objet :ref:`awaitable ` puisse " -"être :meth:`annulé `." - -#: library/asyncio-task.rst:827 -msgid "If *aw* is a coroutine it is automatically scheduled as a Task." -msgstr "" -"Si *aw* est une coroutine, elle est planifiée automatiquement comme une " -"tâche." - -#: library/asyncio-task.rst:659 -msgid "The statement::" -msgstr "L'instruction ::" - -#: library/asyncio-task.rst:664 -msgid "is equivalent to::" -msgstr "est équivalente à ::" - -#: library/asyncio-task.rst:668 -msgid "" -"*except* that if the coroutine containing it is cancelled, the Task running " -"in ``something()`` is not cancelled. From the point of view of " -"``something()``, the cancellation did not happen. Although its caller is " -"still cancelled, so the \"await\" expression still raises " -"a :exc:`CancelledError`." -msgstr "" -"*à la différence près* que, si la coroutine qui la contient est annulée, la " -"tâche s'exécutant dans ``something()`` n'est pas annulée. Du point de vue de " -"``something()``, il n'y a pas eu d'annulation. Cependant, son appelant est " -"bien annulé, donc l'expression *await* lève bien une :exc:`CancelledError`." - -#: library/asyncio-task.rst:674 -msgid "" -"If ``something()`` is cancelled by other means (i.e. from within itself) " -"that would also cancel ``shield()``." -msgstr "" -"Si ``something()`` est annulée d'une autre façon (c.-à-d. depuis elle-même) " -"ceci annule également ``shield()``." - -#: library/asyncio-task.rst:677 -msgid "" -"If it is desired to completely ignore cancellation (not recommended) the " -"``shield()`` function should be combined with a try/except clause, as " -"follows::" -msgstr "" -"Pour ignorer complètement l'annulation (déconseillé), la fonction " -"``shield()`` peut être combinée à une clause *try* / *except*, comme dans le " -"code ci-dessous ::" - -# suit un : -#: library/asyncio-task.rst:689 -msgid "" -"Save a reference to tasks passed to this function, to avoid a task " -"disappearing mid-execution. The event loop only keeps weak references to " -"tasks. A task that isn't referenced elsewhere may get garbage collected at " -"any time, even before it's done." -msgstr "" -"sauvegardez une référence aux tâches passées à cette fonction, pour éviter " -"qu'une tâche ne disparaisse en cours d'exécution. La boucle d'événements ne " -"conserve que les références faibles aux tâches. Une tâche qui n'est pas " -"référencée ailleurs peut faire l'objet d'une suppression par le ramasse-" -"miettes à tout moment, même avant qu'elle ne soit terminée." - -# suit un : -#: library/asyncio-task.rst:697 -msgid "" -"Deprecation warning is emitted if *aw* is not Future-like object and there " -"is no running event loop." -msgstr "" -"un avertissement d'obsolescence est émis si *aw* n'est pas un objet de type " -"*future* et qu'il n'y a pas de boucle d'événement en cours d'exécution." - -#: library/asyncio-task.rst:703 -msgid "Timeouts" -msgstr "Délais d'attente" - -#: library/asyncio-task.rst:707 -#, fuzzy -msgid "" -"Return an :ref:`asynchronous context manager ` that " -"can be used to limit the amount of time spent waiting on something." -msgstr "" -":ref:`Gestionnaire de contexte asynchrone ` qui peut " -"être utilisé pour limiter le temps passé à attendre quelque chose." - -#: library/asyncio-task.rst:711 -msgid "" -"*delay* can either be ``None``, or a float/int number of seconds to wait. If " -"*delay* is ``None``, no time limit will be applied; this can be useful if " -"the delay is unknown when the context manager is created." -msgstr "" -"*delay* peut-être soit ``None``, soit le nombre de secondes (entier ou " -"décimal) d'attente. Si *delay* vaut ``None``, aucune limite n'est " -"appliquée ; cela peut être utile lorsque le délai d'attente est inconnu au " -"moment de la création du gestionnaire de contexte." - -#: library/asyncio-task.rst:716 -msgid "" -"In either case, the context manager can be rescheduled after creation " -"using :meth:`Timeout.reschedule`." -msgstr "" -"Dans les deux cas, le gestionnaire de contexte peut être redéfini après sa " -"création en utilisant :meth:`Timeout.reschedule`." - -#: library/asyncio-task.rst:725 -#, fuzzy -msgid "" -"If ``long_running_task`` takes more than 10 seconds to complete, the context " -"manager will cancel the current task and handle the " -"resulting :exc:`asyncio.CancelledError` internally, transforming it into " -"a :exc:`TimeoutError` which can be caught and handled." -msgstr "" -"Si ``long_running_task`` prend plus de 10 secondes pour se terminer, le " -"gestionnaire de contexte annule la tâche en cours et traite " -"l'erreur :exc:`asyncio.CancelledError` en interne, la transformant en " -"une :exc:`asyncio.TimeoutError` qui peut être interceptée et gérée." - -# suit un : -#: library/asyncio-task.rst:732 -#, fuzzy -msgid "" -"The :func:`asyncio.timeout` context manager is what transforms " -"the :exc:`asyncio.CancelledError` into a :exc:`TimeoutError`, which means " -"the :exc:`TimeoutError` can only be caught *outside* of the context manager." -msgstr "" -"le gestionnaire de contexte :func:`asyncio.timeout` est ce qui transforme " -"la :exc:`asyncio.CancelledError` en une :exc:`asyncio.TimeoutError`, ce qui " -"signifie que la :exc:`asyncio.TimeoutError` ne peut être interceptée qu' *en " -"dehors* du gestionnaire de contexte." - -#: library/asyncio-task.rst:737 -#, fuzzy -msgid "Example of catching :exc:`TimeoutError`::" -msgstr "Exemple de capture :exc:`asyncio.TimeoutError` ::" - -#: library/asyncio-task.rst:748 -msgid "" -"The context manager produced by :func:`asyncio.timeout` can be rescheduled " -"to a different deadline and inspected." -msgstr "" -"Le gestionnaire de contexte produit par :func:`asyncio.timeout` peut être " -"reprogrammé à une échéance différente et inspecté." - -#: library/asyncio-task.rst:753 -msgid "" -"An :ref:`asynchronous context manager ` for " -"cancelling overdue coroutines." -msgstr "" -":ref:`Gestionnaire de contexte asynchrone ` pour " -"annuler les coroutines en retard." - -#: library/asyncio-task.rst:756 -msgid "" -"Prefer using :func:`asyncio.timeout` or :func:`asyncio.timeout_at` rather " -"than instantiating :class:`!Timeout` directly." -msgstr "" - -#: library/asyncio-task.rst:759 -msgid "" -"``when`` should be an absolute time at which the context should time out, as " -"measured by the event loop's clock:" -msgstr "" -"``when`` doit être un temps absolu au bout duquel le contexte doit expirer, " -"tel que mesuré par l'horloge de la boucle d'événements :" - -#: library/asyncio-task.rst:762 -msgid "If ``when`` is ``None``, the timeout will never trigger." -msgstr "Si ``when`` vaut ``None``, le délai maximal ne se déclenche jamais." - -#: library/asyncio-task.rst:763 -msgid "" -"If ``when < loop.time()``, the timeout will trigger on the next iteration of " -"the event loop." -msgstr "" -"Si ``when < loop.time()``, le délai maximal se déclenche à la prochaine " -"itération de la boucle d'événement." - -#: library/asyncio-task.rst:768 -msgid "" -"Return the current deadline, or ``None`` if the current deadline is not set." -msgstr "" -"Renvoie la limite de temps d'exécution définie actuellement, ou ``None`` " -"s'il n'y en a pas." - -#: library/asyncio-task.rst:773 -msgid "Reschedule the timeout." -msgstr "Reprogramme le délai d'attente." - -#: library/asyncio-task.rst:777 -msgid "Return whether the context manager has exceeded its deadline (expired)." -msgstr "" -"Renvoie si le gestionnaire de contexte a dépassé son délai (c.-à-d. s'il a " -"expiré)." - -#: library/asyncio-task.rst:797 -msgid "Timeout context managers can be safely nested." -msgstr "" -"Les gestionnaires de contexte de délai maximal peuvent être imbriqués en " -"toute sécurité." - -#: library/asyncio-task.rst:803 -msgid "" -"Similar to :func:`asyncio.timeout`, except *when* is the absolute time to " -"stop waiting, or ``None``." -msgstr "" -"Semblable à :func:`asyncio.timeout`, sauf que *when* est le temps absolu " -"pour arrêter d'attendre, ou ``None``." - -#: library/asyncio-task.rst:824 -msgid "" -"Wait for the *aw* :ref:`awaitable ` to complete with a " -"timeout." -msgstr "" -"Attend la fin de l':ref:`awaitable ` *aw* avec délai " -"d'attente." - -#: library/asyncio-task.rst:829 -msgid "" -"*timeout* can either be ``None`` or a float or int number of seconds to wait " -"for. If *timeout* is ``None``, block until the future completes." -msgstr "" -"*timeout* peut-être soit ``None``, soit le nombre de secondes (entier ou " -"décimal) d'attente. Si *timeout* vaut ``None``, la fonction s'interrompt " -"jusqu'à ce que le futur s'achève." - -#: library/asyncio-task.rst:833 -msgid "" -"If a timeout occurs, it cancels the task and raises :exc:`TimeoutError`." -msgstr "" -"Si le délai d'attente maximal est dépassé, la tâche est annulée et " -"l'exception :exc:`TimeoutError` est levée." - -#: library/asyncio-task.rst:836 -msgid "" -"To avoid the task :meth:`cancellation `, wrap it " -"in :func:`shield`." -msgstr "" -"Pour empêcher :meth:`l'annulation ` de la tâche, il est " -"nécessaire de l'encapsuler dans une fonction :func:`shield`." - -#: library/asyncio-task.rst:839 -msgid "" -"The function will wait until the future is actually cancelled, so the total " -"wait time may exceed the *timeout*. If an exception happens during " -"cancellation, it is propagated." -msgstr "" -"Cette fonction attend que le futur soit réellement annulé, donc le temps " -"d'attente total peut être supérieur à *timeout*. Si une exception se produit " -"lors de l'annulation, elle est propagée." - -#: library/asyncio-task.rst:843 -msgid "If the wait is cancelled, the future *aw* is also cancelled." -msgstr "Si l'attente est annulée, le futur *aw* est également annulé." - -#: library/asyncio-task.rst:867 -msgid "" -"When *aw* is cancelled due to a timeout, ``wait_for`` waits for *aw* to be " -"cancelled. Previously, it raised :exc:`TimeoutError` immediately." -msgstr "" -"Si le dépassement du délai d'attente maximal provoque l'annulation de *aw*, " -"``wait_for`` attend que *aw* soit annulée. Auparavant, " -"l'exception :exc:`TimeoutError` était immédiatement levée." - -#: library/asyncio-task.rst:875 -#, fuzzy -msgid "Raises :exc:`TimeoutError` instead of :exc:`asyncio.TimeoutError`." -msgstr "" -"Lève une exception :exc:`TimeoutError` si le délai d'attente est dépassé " -"avant que tous les futurs ne soient achevés." - -#: library/asyncio-task.rst:880 -#, fuzzy -msgid "Waiting primitives" -msgstr "Primitives d'attente" - -#: library/asyncio-task.rst:885 -msgid "" -"Run :class:`~asyncio.Future` and :class:`~asyncio.Task` instances in the " -"*aws* iterable concurrently and block until the condition specified by " -"*return_when*." -msgstr "" -"Exécute les instances :class:`~asyncio.Future` et :class:`~asyncio.Task` de " -"l'itérable *aws* de manière concurrente, et s'interrompt jusqu'à ce que la " -"condition décrite dans *return_when* soit vraie." - -#: library/asyncio-task.rst:889 -#, fuzzy -msgid "The *aws* iterable must not be empty." -msgstr "L'itérable *aws* ne doit pas être vide." - -#: library/asyncio-task.rst:891 -msgid "Returns two sets of Tasks/Futures: ``(done, pending)``." -msgstr "Renvoie deux ensembles de *Tasks* / *Futures* : ``(done, pending)``." - -#: library/asyncio-task.rst:893 -msgid "Usage::" -msgstr "Utilisation ::" - -#: library/asyncio-task.rst:897 -msgid "" -"*timeout* (a float or int), if specified, can be used to control the maximum " -"number of seconds to wait before returning." -msgstr "" -"*timeout* (entier ou décimal), si précisé, peut-être utilisé pour contrôler " -"le nombre maximal de secondes d'attente avant de se terminer." - -#: library/asyncio-task.rst:900 -msgid "" -"Note that this function does not raise :exc:`TimeoutError`. Futures or Tasks " -"that aren't done when the timeout occurs are simply returned in the second " -"set." -msgstr "" -"Cette fonction ne lève pas :exc:`TimeoutError`. Les futurs et les tâches qui " -"ne sont pas finis quand le délai d'attente maximal est dépassé sont tout " -"simplement renvoyés dans le second ensemble." - -#: library/asyncio-task.rst:904 -msgid "" -"*return_when* indicates when this function should return. It must be one of " -"the following constants:" -msgstr "" -"*return_when* indique quand la fonction doit se terminer. Il peut prendre " -"les valeurs suivantes :" - -#: library/asyncio-task.rst:910 -msgid "Constant" -msgstr "Constante" - -#: library/asyncio-task.rst:911 -msgid "Description" -msgstr "Description" - -#: library/asyncio-task.rst:914 -msgid "The function will return when any future finishes or is cancelled." -msgstr "" -"La fonction se termine lorsque n'importe quel futur se termine ou est annulé." - -#: library/asyncio-task.rst:917 -#, fuzzy -msgid "" -"The function will return when any future finishes by raising an exception. " -"If no future raises an exception then it is equivalent " -"to :const:`ALL_COMPLETED`." -msgstr "" -"La fonction se termine lorsque n'importe quel futur se termine en levant une " -"exception. Si aucun *futur* ne lève d'exception, équivaut " -"à :const:`ALL_COMPLETED`." - -#: library/asyncio-task.rst:922 -msgid "The function will return when all futures finish or are cancelled." -msgstr "" -"La fonction se termine lorsque les *futurs* sont tous finis ou annulés." - -#: library/asyncio-task.rst:924 -msgid "" -"Unlike :func:`~asyncio.wait_for`, ``wait()`` does not cancel the futures " -"when a timeout occurs." -msgstr "" -"À la différence de :func:`~asyncio.wait_for`, ``wait()`` n'annule pas les " -"futurs quand le délai d'attente est dépassé." - -#: library/asyncio-task.rst:930 -msgid "Passing coroutine objects to ``wait()`` directly is forbidden." -msgstr "Passer directement des objets coroutines à ``wait()`` est interdit." - -#: library/asyncio-task.rst:991 -msgid "Added support for generators yielding tasks." -msgstr "" - -#: library/asyncio-task.rst:939 -#, fuzzy -msgid "" -"Run :ref:`awaitable objects ` in the *aws* iterable " -"concurrently. The returned object can be iterated to obtain the results of " -"the awaitables as they finish." -msgstr "" -"Exécute les objets :ref:`attendables ` de l'itérable " -"*aws* de manière concurrente. Renvoie un itérateur sur des coroutines. " -"Chaque coroutine renvoyée peut être attendue pour obtenir le premier " -"résultat suivant de l'ensemble des *attendables* restants." - -#: library/asyncio-task.rst:943 -msgid "" -"The object returned by ``as_completed()`` can be iterated as " -"an :term:`asynchronous iterator` or a plain :term:`iterator`. When " -"asynchronous iteration is used, the originally-supplied awaitables are " -"yielded if they are tasks or futures. This makes it easy to correlate " -"previously-scheduled tasks with their results. Example::" -msgstr "" - -#: library/asyncio-task.rst:963 -msgid "" -"During asynchronous iteration, implicitly-created tasks will be yielded for " -"supplied awaitables that aren't tasks or futures." -msgstr "" - -#: library/asyncio-task.rst:966 -msgid "" -"When used as a plain iterator, each iteration yields a new coroutine that " -"returns the result or raises the exception of the next completed awaitable. " -"This pattern is compatible with Python versions older than 3.13::" -msgstr "" - -#: library/asyncio-task.rst:980 -msgid "" -"A :exc:`TimeoutError` is raised if the timeout occurs before all awaitables " -"are done. This is raised by the ``async for`` loop during asynchronous " -"iteration or by the coroutines yielded during plain iteration." -msgstr "" - -#: library/asyncio-task.rst:987 -msgid "" -"Deprecation warning is emitted if not all awaitable objects in the *aws* " -"iterable are Future-like objects and there is no running event loop." -msgstr "" -"Un avertissement d'obsolescence est émis si tous les objets en attente dans " -"l'itérable *aws* ne sont pas des objets de type *Future* et qu'il n'y a pas " -"de boucle d'événement en cours d'exécution." - -#: library/asyncio-task.rst:994 -msgid "" -"The result can now be used as either an :term:`asynchronous iterator` or as " -"a plain :term:`iterator` (previously it was only a plain iterator)." -msgstr "" - -#: library/asyncio-task.rst:1000 -#, fuzzy -msgid "Running in threads" -msgstr "Exécution dans des fils d'exécution (*threads*)" - -#: library/asyncio-task.rst:1005 -msgid "Asynchronously run function *func* in a separate thread." -msgstr "" -"Exécute la fonction *func* de manière asynchrone dans un fil d'exécution " -"séparé." - -#: library/asyncio-task.rst:1007 -msgid "" -"Any \\*args and \\*\\*kwargs supplied for this function are directly passed " -"to *func*. Also, the current :class:`contextvars.Context` is propagated, " -"allowing context variables from the event loop thread to be accessed in the " -"separate thread." -msgstr "" -"Tous les *\\*args* et *\\*\\*kwargs* fournis à cette fonction sont " -"directement passés à *func*. De plus, le :class:`contextvars.Context` actuel " -"est propagé, ce qui permet d'accéder aux variables de contexte du fil de " -"boucle d'événements dans le fil séparé." - -#: library/asyncio-task.rst:1012 -msgid "" -"Return a coroutine that can be awaited to get the eventual result of *func*." -msgstr "" -"Renvoie une coroutine qui peut être attendue pour obtenir le résultat " -"éventuel de *func*." - -#: library/asyncio-task.rst:1014 -msgid "" -"This coroutine function is primarily intended to be used for executing IO-" -"bound functions/methods that would otherwise block the event loop if they " -"were run in the main thread. For example::" -msgstr "" -"Cette fonction coroutine est principalement destinée à être utilisée pour " -"exécuter des fonctions/méthodes faisant beaucoup d'entrées-sorties et qui " -"bloqueraient autrement la boucle d'événements si elles étaient exécutées " -"dans le fil d'exécution principal. Par exemple ::" - -#: library/asyncio-task.rst:1044 -msgid "" -"Directly calling ``blocking_io()`` in any coroutine would block the event " -"loop for its duration, resulting in an additional 1 second of run time. " -"Instead, by using ``asyncio.to_thread()``, we can run it in a separate " -"thread without blocking the event loop." -msgstr "" -"Appeler directement ``blocking_io()`` dans n'importe quelle coroutine " -"bloquerait la boucle d'événements pendant sa durée, ce qui entraînerait une " -"seconde supplémentaire de temps d'exécution. Au lieu de cela, en utilisant " -"``asyncio.to_thread()``, nous pouvons l'exécuter dans un fil d'exécution " -"séparé sans bloquer la boucle d'événements." - -# suit un : -#: library/asyncio-task.rst:1051 -msgid "" -"Due to the :term:`GIL`, ``asyncio.to_thread()`` can typically only be used " -"to make IO-bound functions non-blocking. However, for extension modules that " -"release the GIL or alternative Python implementations that don't have one, " -"``asyncio.to_thread()`` can also be used for CPU-bound functions." -msgstr "" -"en raison du :term:`GIL`, ``asyncio.to_thread()`` ne peut généralement être " -"utilisée que pour rendre les fonctions faisant beaucoup d'entrées-sorties " -"non bloquantes. Cependant, pour les modules d'extension qui relâchent le GIL " -"ou les implémentations Python alternatives qui n'en ont pas, " -"``asyncio.to_thread()`` peut également être utilisée pour les fonctions qui " -"sollicitent beaucoup le processeur." - -#: library/asyncio-task.rst:1060 -#, fuzzy -msgid "Scheduling from other threads" -msgstr "Planification depuis d'autres fils d'exécution" - -#: library/asyncio-task.rst:1064 -msgid "Submit a coroutine to the given event loop. Thread-safe." -msgstr "" -"Enregistre une coroutine dans la boucle d'exécution actuelle. Cette " -"opération est compatible avec les programmes à multiples fils d'exécution " -"(*thread-safe*)." - -#: library/asyncio-task.rst:1066 -msgid "" -"Return a :class:`concurrent.futures.Future` to wait for the result from " -"another OS thread." -msgstr "" -"Renvoie un :class:`concurrent.futures.Future` pour attendre le résultat d'un " -"autre fil d'exécution du système d'exploitation." - -#: library/asyncio-task.rst:1069 -msgid "" -"This function is meant to be called from a different OS thread than the one " -"where the event loop is running. Example::" -msgstr "" -"Cette fonction est faite pour être appelée par un fil d'exécution distinct " -"de celui dans laquelle la boucle d'événement s'exécute. Exemple ::" - -#: library/asyncio-task.rst:1092 -msgid "It's also possible to run the other way around. Example::" -msgstr "" - -#: library/asyncio-task.rst:1126 -msgid "" -"If an exception is raised in the coroutine, the returned Future will be " -"notified. It can also be used to cancel the task in the event loop::" -msgstr "" -"Si une exception est levée dans une coroutine, le futur renvoyé en sera " -"averti. Elle peut également être utilisée pour annuler la tâche de la boucle " -"d'événement ::" - -#: library/asyncio-task.rst:1140 -msgid "" -"See the :ref:`concurrency and multithreading ` " -"section of the documentation." -msgstr "" -"Voir la section :ref:`exécution concurrente et multi-fils d'exécution " -"` de la documentation." - -#: library/asyncio-task.rst:1143 -msgid "" -"Unlike other asyncio functions this function requires the *loop* argument to " -"be passed explicitly." -msgstr "" -"À la différence des autres fonctions d'*asyncio*, cette fonction requiert " -"que *loop* soit passé de manière explicite." - -#: library/asyncio-task.rst:1150 -msgid "Introspection" -msgstr "Introspection" - -#: library/asyncio-task.rst:1155 -msgid "" -"Return the currently running :class:`Task` instance, or ``None`` if no task " -"is running." -msgstr "" -"Renvoie l'instance de la :class:`Task` en cours d'exécution, ou ``None`` " -"s'il n'y a pas de tâche en cours." - -#: library/asyncio-task.rst:1158 -msgid "" -"If *loop* is ``None`` :func:`get_running_loop` is used to get the current " -"loop." -msgstr "" -"Si *loop* vaut ``None``, :func:`get_running_loop` est appelée pour récupérer " -"la boucle en cours d'exécution." - -#: library/asyncio-task.rst:1166 -msgid "Return a set of not yet finished :class:`Task` objects run by the loop." -msgstr "" -"Renvoie l'ensemble des :class:`Task` non terminés en cours d'exécution dans " -"la boucle." - -#: library/asyncio-task.rst:1169 -msgid "" -"If *loop* is ``None``, :func:`get_running_loop` is used for getting current " -"loop." -msgstr "" -"Si *loop* vaut ``None``, :func:`get_running_loop` est appelée pour récupérer " -"la boucle en cours d'exécution." - -#: library/asyncio-task.rst:1177 -msgid "Return ``True`` if *obj* is a coroutine object." -msgstr "Renvoie ``True`` si *obj* est un objet coroutine." - -#: library/asyncio-task.rst:1184 -#, fuzzy -msgid "Task object" -msgstr "Objets *Task*" - -#: library/asyncio-task.rst:1188 -msgid "" -"A :class:`Future-like ` object that runs a Python :ref:`coroutine " -"`. Not thread-safe." -msgstr "" -"Objet compatible avec :class:`Future ` qui exécute " -"une :ref:`coroutine ` Python. Cet objet n'est pas utilisable dans " -"des programmes à fils d'exécution multiples." - -#: library/asyncio-task.rst:1191 -msgid "" -"Tasks are used to run coroutines in event loops. If a coroutine awaits on a " -"Future, the Task suspends the execution of the coroutine and waits for the " -"completion of the Future. When the Future is *done*, the execution of the " -"wrapped coroutine resumes." -msgstr "" -"Les tâches servent à exécuter des coroutines dans des boucles d'événements. " -"Si une coroutine attend un futur, la tâche interrompt son exécution et " -"attend la fin de ce *futur*. Quand celui-ci est terminé, l'exécution de la " -"coroutine encapsulée reprend." - -#: library/asyncio-task.rst:1197 -msgid "" -"Event loops use cooperative scheduling: an event loop runs one Task at a " -"time. While a Task awaits for the completion of a Future, the event loop " -"runs other Tasks, callbacks, or performs IO operations." -msgstr "" -"Les boucles d'événement fonctionnent de manière *coopérative* : une boucle " -"d'événement exécute une tâche à la fois. Quand une tâche attend la fin d'un " -"futur, la boucle d'événement exécute d'autres tâches, des fonctions de " -"rappel, ou effectue des opérations d'entrées-sorties." - -#: library/asyncio-task.rst:1202 -msgid "" -"Use the high-level :func:`asyncio.create_task` function to create Tasks, or " -"the low-level :meth:`loop.create_task` or :func:`ensure_future` functions. " -"Manual instantiation of Tasks is discouraged." -msgstr "" -"La fonction de haut niveau :func:`asyncio.create_task` et les fonctions de " -"bas-niveau :meth:`loop.create_task` ou :func:`ensure_future` permettent de " -"créer des tâches. Il est déconseillé d'instancier manuellement des objets " -"*Task*." - -#: library/asyncio-task.rst:1207 -#, fuzzy -msgid "" -"To cancel a running Task use the :meth:`cancel` method. Calling it will " -"cause the Task to throw a :exc:`CancelledError` exception into the wrapped " -"coroutine. If a coroutine is awaiting on a future-like object during " -"cancellation, the awaited object will be cancelled." -msgstr "" -"La méthode :meth:`cancel` d'une tâche en cours d'exécution permet d'annuler " -"celle-ci. L'appel de cette méthode force la tâche à lever " -"l'exception :exc:`CancelledError` dans la coroutine encapsulée. Si la " -"coroutine attendait un *futur* au moment de l'annulation, celui-ci est " -"annulé." - -#: library/asyncio-task.rst:1212 -msgid "" -":meth:`cancelled` can be used to check if the Task was cancelled. The method " -"returns ``True`` if the wrapped coroutine did not suppress " -"the :exc:`CancelledError` exception and was actually cancelled." -msgstr "" -"La méthode :meth:`cancelled` permet de vérifier si la tâche a été annulée. " -"Elle renvoie ``True`` si la coroutine encapsulée n'a pas ignoré " -"l'exception :exc:`CancelledError` et a bien été annulée." - -#: library/asyncio-task.rst:1217 -msgid "" -":class:`asyncio.Task` inherits from :class:`Future` all of its APIs " -"except :meth:`Future.set_result` and :meth:`Future.set_exception`." -msgstr "" -":class:`asyncio.Task` hérite de :class:`Future`, de toute son API, à " -"l'exception de :meth:`Future.set_result` et de :meth:`Future.set_exception`." - -#: library/asyncio-task.rst:1221 -#, fuzzy -msgid "" -"An optional keyword-only *context* argument allows specifying a " -"custom :class:`contextvars.Context` for the *coro* to run in. If no " -"*context* is provided, the Task copies the current context and later runs " -"its coroutine in the copied context." -msgstr "" -"L'argument (uniquement nommé) facultatif *context* permet de spécifier " -"un :class:`contextvars.Context` personnalisé pour la coroutine à exécuter. " -"La copie de contexte actuelle est créée lorsqu'aucun *context* n'est fourni." - -#: library/asyncio-task.rst:1226 -msgid "" -"An optional keyword-only *eager_start* argument allows eagerly starting the " -"execution of the :class:`asyncio.Task` at task creation time. If set to " -"``True`` and the event loop is running, the task will start executing the " -"coroutine immediately, until the first time the coroutine blocks. If the " -"coroutine returns or raises without blocking, the task will be finished " -"eagerly and will skip scheduling to the event loop." -msgstr "" - -#: library/asyncio-task.rst:1233 -msgid "" -"Tasks are :ref:`generic ` over the return type of their wrapped " -"coroutines." -msgstr "" - -# suit un : -#: library/asyncio-task.rst:1236 -msgid "Added support for the :mod:`contextvars` module." -msgstr "ajout du support du module :mod:`contextvars`." - -# suit un : -#: library/asyncio-task.rst:1242 -msgid "" -"Deprecation warning is emitted if *loop* is not specified and there is no " -"running event loop." -msgstr "" -"un avertissement d'obsolescence est émis si *loop* n'est pas spécifié et " -"qu'il n'y a pas de boucle d'événement en cours d'exécution." - -# suit un : -#: library/asyncio-task.rst:1249 -#, fuzzy -msgid "Added the *eager_start* parameter." -msgstr "ajout du paramètre *name*." - -#: library/asyncio-task.rst:1254 -msgid "Return ``True`` if the Task is *done*." -msgstr "Renvoie ``True`` si la tâche est *achevée*." - -#: library/asyncio-task.rst:1256 -msgid "" -"A Task is *done* when the wrapped coroutine either returned a value, raised " -"an exception, or the Task was cancelled." -msgstr "" -"Une tâche est dite *achevée* quand la coroutine encapsulée a soit renvoyé " -"une valeur, soit levé une exception, ou que la tâche a été annulée." - -#: library/asyncio-task.rst:1261 -msgid "Return the result of the Task." -msgstr "Renvoie le résultat de la tâche." - -#: library/asyncio-task.rst:1263 -msgid "" -"If the Task is *done*, the result of the wrapped coroutine is returned (or " -"if the coroutine raised an exception, that exception is re-raised.)" -msgstr "" -"Si la tâche est *achevée*, le résultat de la coroutine encapsulée est " -"renvoyé (sinon, dans le cas où la coroutine a levé une exception, cette " -"exception est de nouveau levée)." - -#: library/asyncio-task.rst:1281 -msgid "" -"If the Task has been *cancelled*, this method raises a :exc:`CancelledError` " -"exception." -msgstr "" -"Si la tâche a été *annulée*, cette méthode lève une " -"exception :exc:`CancelledError`." - -#: library/asyncio-task.rst:1270 -#, fuzzy -msgid "" -"If the Task's result isn't yet available, this method raises " -"an :exc:`InvalidStateError` exception." -msgstr "" -"Si le résultat de la tâche n'est pas encore disponible, cette méthode lève " -"une exception :exc:`InvalidStateError`." - -#: library/asyncio-task.rst:1275 -msgid "Return the exception of the Task." -msgstr "Renvoie l'exception de la tâche." - -#: library/asyncio-task.rst:1277 -msgid "" -"If the wrapped coroutine raised an exception that exception is returned. If " -"the wrapped coroutine returned normally this method returns ``None``." -msgstr "" -"Si la coroutine encapsulée lève une exception, cette exception est renvoyée. " -"Si la coroutine s'est exécutée normalement, cette méthode renvoie ``None``." - -#: library/asyncio-task.rst:1284 -msgid "" -"If the Task isn't *done* yet, this method raises an :exc:`InvalidStateError` " -"exception." -msgstr "" -"Si la tâche n'est pas encore *achevée*, cette méthode lève une " -"exception :exc:`InvalidStateError`." - -#: library/asyncio-task.rst:1289 -msgid "Add a callback to be run when the Task is *done*." -msgstr "" -"Ajoute une fonction de rappel qui sera exécutée quand la tâche sera " -"*achevée*." - -#: library/asyncio-task.rst:1300 -msgid "This method should only be used in low-level callback-based code." -msgstr "" -"Cette méthode ne doit être utilisée que dans du code basé sur les fonctions " -"de rappel de bas-niveau." - -#: library/asyncio-task.rst:1293 -msgid "" -"See the documentation of :meth:`Future.add_done_callback` for more details." -msgstr "" -"Se référer à la documentation de :meth:`Future.add_done_callback` pour plus " -"de détails." - -#: library/asyncio-task.rst:1298 -msgid "Remove *callback* from the callbacks list." -msgstr "Retire *callback* de la liste de fonctions de rappel." - -#: library/asyncio-task.rst:1302 -msgid "" -"See the documentation of :meth:`Future.remove_done_callback` for more " -"details." -msgstr "" -"Se référer à la documentation de :meth:`Future.remove_done_callback` pour " -"plus de détails." - -#: library/asyncio-task.rst:1307 -msgid "Return the list of stack frames for this Task." -msgstr "Renvoie une liste représentant la pile d'appels de la tâche." - -#: library/asyncio-task.rst:1309 -msgid "" -"If the wrapped coroutine is not done, this returns the stack where it is " -"suspended. If the coroutine has completed successfully or was cancelled, " -"this returns an empty list. If the coroutine was terminated by an exception, " -"this returns the list of traceback frames." -msgstr "" -"Si la coroutine encapsulée n'est pas terminée, cette fonction renvoie la " -"pile d'appels à partir de l'endroit où celle-ci est interrompue. Si la " -"coroutine s'est terminée normalement ou a été annulée, cette fonction " -"renvoie une liste vide. Si la coroutine a été terminée par une exception, " -"ceci renvoie la pile d'erreurs." - -#: library/asyncio-task.rst:1315 -msgid "The frames are always ordered from oldest to newest." -msgstr "La pile est toujours affichée de l'appelant à l'appelé." - -#: library/asyncio-task.rst:1317 -msgid "Only one stack frame is returned for a suspended coroutine." -msgstr "Une seule ligne est renvoyée si la coroutine est suspendue." - -#: library/asyncio-task.rst:1319 -msgid "" -"The optional *limit* argument sets the maximum number of frames to return; " -"by default all available frames are returned. The ordering of the returned " -"list differs depending on whether a stack or a traceback is returned: the " -"newest frames of a stack are returned, but the oldest frames of a traceback " -"are returned. (This matches the behavior of the traceback module.)" -msgstr "" -"L'argument facultatif *limit* définit le nombre maximal d'appels à " -"renvoyer ; par défaut, tous sont renvoyés. L'ordre de la liste diffère selon " -"la nature de celle-ci : les appels les plus récents d'une pile d'appels sont " -"renvoyés, si la pile est une pile d'erreurs, ce sont les appels les plus " -"anciens qui le sont (dans un souci de cohérence avec le module *traceback*)." - -#: library/asyncio-task.rst:1328 -msgid "Print the stack or traceback for this Task." -msgstr "Affiche la pile d'appels ou d'erreurs de la tâche." - -#: library/asyncio-task.rst:1330 -msgid "" -"This produces output similar to that of the traceback module for the frames " -"retrieved by :meth:`get_stack`." -msgstr "" -"Le format de sortie des appels produits par :meth:`get_stack` est similaire " -"à celui du module *traceback*." - -#: library/asyncio-task.rst:1333 -msgid "The *limit* argument is passed to :meth:`get_stack` directly." -msgstr "Le paramètre *limit* est directement passé à :meth:`get_stack`." - -#: library/asyncio-task.rst:1335 -msgid "" -"The *file* argument is an I/O stream to which the output is written; by " -"default output is written to :data:`sys.stdout`." -msgstr "" -"Le paramètre *file* est un flux d'entrées-sorties sur lequel le résultat est " -"écrit ; par défaut, :data:`sys.stdout`." - -#: library/asyncio-task.rst:1340 -msgid "Return the coroutine object wrapped by the :class:`Task`." -msgstr "Renvoie l’objet *coroutine* encapsulé par la :class:`Task`." - -#: library/asyncio-task.rst:1344 -msgid "" -"This will return ``None`` for Tasks which have already completed eagerly. " -"See the :ref:`Eager Task Factory `." -msgstr "" - -#: library/asyncio-task.rst:1351 -msgid "Newly added eager task execution means result may be ``None``." -msgstr "" - -#: library/asyncio-task.rst:1355 -msgid "" -"Return the :class:`contextvars.Context` object associated with the task." -msgstr "" - -#: library/asyncio-task.rst:1362 -msgid "Return the name of the Task." -msgstr "Renvoie le nom de la tâche." - -#: library/asyncio-task.rst:1364 -msgid "" -"If no name has been explicitly assigned to the Task, the default asyncio " -"Task implementation generates a default name during instantiation." -msgstr "" -"Si aucun nom n’a été explicitement assigné à la tâche, l’implémentation par " -"défaut d’une *Task* *asyncio* génère un nom par défaut durant " -"l’instanciation." - -#: library/asyncio-task.rst:1372 -msgid "Set the name of the Task." -msgstr "Définit le nom de la tâche." - -#: library/asyncio-task.rst:1374 -msgid "" -"The *value* argument can be any object, which is then converted to a string." -msgstr "" -"L’argument *value* peut être n’importe quel objet qui sera ensuite converti " -"en chaine de caractères." - -#: library/asyncio-task.rst:1377 -msgid "" -"In the default Task implementation, the name will be visible in " -"the :func:`repr` output of a task object." -msgstr "" -"Dans l’implémentation par défaut de *Task*, le nom sera visible dans le " -"résultat de :func:`repr` d’un objet *Task*." - -#: library/asyncio-task.rst:1384 -msgid "Request the Task to be cancelled." -msgstr "Demande l'annulation d'une tâche." - -#: library/asyncio-task.rst:1386 -msgid "" -"If the Task is already *done* or *cancelled*, return ``False``, otherwise, " -"return ``True``." -msgstr "" - -#: library/asyncio-task.rst:1389 -#, fuzzy -msgid "" -"The method arranges for a :exc:`CancelledError` exception to be thrown into " -"the wrapped coroutine on the next cycle of the event loop." -msgstr "" -"Provisionne la levée de l'exception :exc:`CancelledError` dans la coroutine " -"encapsulée. L'exception sera levée au prochain cycle de la boucle " -"d'exécution." - -#: library/asyncio-task.rst:1392 -msgid "" -"The coroutine then has a chance to clean up or even deny the request by " -"suppressing the exception with a :keyword:`try` ... ... ``except " -"CancelledError`` ... :keyword:`finally` block. Therefore, " -"unlike :meth:`Future.cancel`, :meth:`Task.cancel` does not guarantee that " -"the Task will be cancelled, although suppressing cancellation completely is " -"not common and is actively discouraged. Should the coroutine nevertheless " -"decide to suppress the cancellation, it needs to call :meth:`Task.uncancel` " -"in addition to catching the exception." -msgstr "" -"La coroutine peut alors faire le ménage ou même ignorer la requête en " -"supprimant l'exception à l'aide d'un bloc :keyword:`try` … … ``except " -"CancelledError`` … :keyword:`finally`. Par conséquent, contrairement " -"à :meth:`Future.cancel`, :meth:`Task.cancel` ne garantit pas que la tâche " -"sera annulée, bien qu'ignorer totalement une annulation ne soit ni une " -"pratique courante, ni encouragé. Si la coroutine décide néanmoins de " -"supprimer l'annulation, elle doit appeler :meth:`Task.uncancel` en plus " -"d'intercepter l'exception." - -#: library/asyncio-task.rst:1402 -msgid "" -"If the Task being cancelled is currently awaiting on a future-like object, " -"that awaited object will also be cancelled. This cancellation propagates " -"down the entire chain of awaited objects." -msgstr "" - -# suit un : -#: library/asyncio-task.rst:1406 -msgid "Added the *msg* parameter." -msgstr "ajout du paramètre *msg*." - -# suit un : -#: library/asyncio-task.rst:1409 -msgid "The ``msg`` parameter is propagated from cancelled task to its awaiter." -msgstr "" -"le paramètre ``msg`` est propagé de la tâche annulée vers celle qui l'attend." - -#: library/asyncio-task.rst:1414 -msgid "" -"The following example illustrates how coroutines can intercept the " -"cancellation request::" -msgstr "" -"L'exemple ci-dessous illustre comment une coroutine peut intercepter une " -"requête d'annulation ::" - -#: library/asyncio-task.rst:1453 -msgid "Return ``True`` if the Task is *cancelled*." -msgstr "Renvoie ``True`` si la tâche est *annulée*." - -#: library/asyncio-task.rst:1455 -msgid "" -"The Task is *cancelled* when the cancellation was requested " -"with :meth:`cancel` and the wrapped coroutine propagated " -"the :exc:`CancelledError` exception thrown into it." -msgstr "" -"La tâche est *annulée* quand l'annulation a été demandée avec :meth:`cancel` " -"et la coroutine encapsulée a propagé l'exception :exc:`CancelledError` qui a " -"été levée en son sein." - -#: library/asyncio-task.rst:1461 -msgid "Decrement the count of cancellation requests to this Task." -msgstr "Décrémente le nombre de demandes d'annulation pour cette tâche." - -#: library/asyncio-task.rst:1463 -msgid "Returns the remaining number of cancellation requests." -msgstr "Renvoie le nombre restant de demandes d'annulation." - -#: library/asyncio-task.rst:1465 -msgid "" -"Note that once execution of a cancelled task completed, further calls " -"to :meth:`uncancel` are ineffective." -msgstr "" -"Notez qu'une fois l'exécution d'une tâche annulée terminée, les appels " -"ultérieurs à :meth:`uncancel` ne font rien." - -#: library/asyncio-task.rst:1470 -msgid "" -"This method is used by asyncio's internals and isn't expected to be used by " -"end-user code. In particular, if a Task gets successfully uncancelled, this " -"allows for elements of structured concurrency like :ref:`taskgroups` " -"and :func:`asyncio.timeout` to continue running, isolating cancellation to " -"the respective structured block. For example::" -msgstr "" -"Cette méthode est utilisée par les composants internes d'*asyncio* et elle " -"ne devrait pas être utilisée par le code de l'utilisateur final. En " -"particulier, si une tâche est annulée avec succès, cela permet aux " -"structures permettant le multi-fils tels que :ref:`taskgroups` " -"et :func:`asyncio.timeout` de continuer à s'exécuter, isolant l'annulation " -"au bloc concerné. Par exemple ::" - -#: library/asyncio-task.rst:1488 -msgid "" -"While the block with ``make_request()`` and ``make_another_request()`` might " -"get cancelled due to the timeout, ``unrelated_code()`` should continue " -"running even in case of the timeout. This is implemented " -"with :meth:`uncancel`. :class:`TaskGroup` context managers " -"use :func:`uncancel` in a similar fashion." -msgstr "" -"Alors que le bloc avec ``make_request()`` et ``make_another_request()`` peut " -"être annulé en raison du délai d'attente, ``unrelated_code()`` devrait " -"continuer à s'exécuter même en cas d'atteinte du délai maximal. Ceci est " -"implémenté avec :meth:`uncancel`. Les gestionnaires de " -"contexte :class:`TaskGroup` utilisent :func:`uncancel` de la même manière." - -#: library/asyncio-task.rst:1494 -#, fuzzy -msgid "" -"If end-user code is, for some reason, suppressing cancellation by " -"catching :exc:`CancelledError`, it needs to call this method to remove the " -"cancellation state." -msgstr "" -"Si, pour une raison quelconque, le code de l'utilisateur final supprime " -"l'annulation en interceptant :exc:`CancelledError`, il doit appeler cette " -"méthode pour supprimer l'état d'annulation." - -#: library/asyncio-task.rst:1498 -msgid "" -"When this method decrements the cancellation count to zero, the method " -"checks if a previous :meth:`cancel` call had arranged " -"for :exc:`CancelledError` to be thrown into the task. If it hasn't been " -"thrown yet, that arrangement will be rescinded (by resetting the internal " -"``_must_cancel`` flag)." -msgstr "" - -#: library/asyncio-task.rst:1504 -msgid "Changed to rescind pending cancellation requests upon reaching zero." -msgstr "" - -#: library/asyncio-task.rst:1509 -msgid "" -"Return the number of pending cancellation requests to this Task, i.e., the " -"number of calls to :meth:`cancel` less the number of :meth:`uncancel` calls." -msgstr "" -"Renvoie le nombre de demandes d'annulation en attente à cette tâche, c'est-à-" -"dire le nombre d'appels à :meth:`cancel` moins le nombre d'appels " -"à :meth:`uncancel`." - -#: library/asyncio-task.rst:1513 -msgid "" -"Note that if this number is greater than zero but the Task is still " -"executing, :meth:`cancelled` will still return ``False``. This is because " -"this number can be lowered by calling :meth:`uncancel`, which can lead to " -"the task not being cancelled after all if the cancellation requests go down " -"to zero." -msgstr "" -"Notez que si ce nombre est supérieur à zéro mais que la tâche est toujours " -"en cours d'exécution, :meth:`cancelled` renvoie toujours ``False``. En " -"effet, ce nombre peut être réduit en appelant :meth:`uncancel`, ce qui peut " -"empêcher en fin de compte la tâche d'être annulée si les demandes " -"d'annulation tombent à zéro." - -#: library/asyncio-task.rst:1519 -msgid "" -"This method is used by asyncio's internals and isn't expected to be used by " -"end-user code. See :meth:`uncancel` for more details." -msgstr "" -"Cette méthode est utilisée par les composants internes d'*asyncio* et ne " -"devrait pas être utilisée par le code de l'utilisateur final. " -"Voir :meth:`uncancel` pour plus de détails." - -#, fuzzy -#~ msgid "Expected output:" -#~ msgstr "Sortie attendue ::" - -#~ msgid "" -#~ "If *name* is not ``None``, it is set as the name of the task " -#~ "using :meth:`Task.set_name`." -#~ msgstr "" -#~ "Si *name* n’est pas ``None``, il est défini comme le nom de la tâche en " -#~ "utilisant :meth:`Task.set_name`." - -#~ msgid "" -#~ "Create a task in this task group. The signature matches that " -#~ "of :func:`asyncio.create_task`." -#~ msgstr "" -#~ "Crée une tâche dans ce groupe de tâches. La signature correspond à celle " -#~ "de :func:`asyncio.create_task`." - -#~ msgid "" -#~ "Raises :exc:`TimeoutError` if the timeout occurs before all Futures are " -#~ "done." -#~ msgstr "" -#~ "Lève une exception :exc:`TimeoutError` si le délai d'attente est dépassé " -#~ "avant que tous les futurs ne soient achevés." - -#~ msgid "" -#~ "A more modern way to create and run tasks concurrently and wait for their " -#~ "completion is :class:`asyncio.TaskGroup`." -#~ msgstr "" -#~ "Une façon plus moderne de créer et d'exécuter des tâches simultanément et " -#~ "d'attendre leur achèvement est :class:`asyncio.TaskGroup`." - -#~ msgid ":const:`FIRST_COMPLETED`" -#~ msgstr ":const:`FIRST_COMPLETED`" - -#~ msgid ":const:`FIRST_EXCEPTION`" -#~ msgstr ":const:`FIRST_EXCEPTION`" - -#~ msgid ":const:`ALL_COMPLETED`" -#~ msgstr ":const:`ALL_COMPLETED`" - -#~ msgid "" -#~ "Tasks support the :mod:`contextvars` module. When a Task is created it " -#~ "copies the current context and later runs its coroutine in the copied " -#~ "context." -#~ msgstr "" -#~ "*Task* implémente le module :mod:`contextvars`. Lors de sa création, une " -#~ "tâche effectue une copie du contexte actuel et exécute ses coroutines " -#~ "dans cette copie." - -#~ msgid "Running an asyncio Program" -#~ msgstr "Exécution d'un programme *asyncio*" - -#~ msgid "Execute the :term:`coroutine` *coro* and return the result." -#~ msgstr "Exécute la :term:`coroutine` *coro* et renvoie le résultat." - -#, fuzzy -#~ msgid "" -#~ "This function runs the passed coroutine, taking care of managing the " -#~ "asyncio event loop, *finalizing asynchronous generators*, and closing the " -#~ "threadpool." -#~ msgstr "" -#~ "Cette fonction exécute la coroutine passée en argument. Elle gère la " -#~ "boucle d'événements *asyncio* et *finalise les générateurs asynchrones*." - -#~ msgid "" -#~ "This function cannot be called when another asyncio event loop is running " -#~ "in the same thread." -#~ msgstr "" -#~ "Cette fonction ne peut pas être appelée si une autre boucle d'événement " -#~ "*asyncio* s'exécute dans le même fil d'exécution." - -#~ msgid "If *debug* is ``True``, the event loop will be run in debug mode." -#~ msgstr "" -#~ "Si *debug* vaut ``True``, la boucle d'événement s'exécute en mode de " -#~ "débogage." - -#~ msgid "" -#~ "This function always creates a new event loop and closes it at the end. " -#~ "It should be used as a main entry point for asyncio programs, and should " -#~ "ideally only be called once." -#~ msgstr "" -#~ "Cette fonction crée toujours une nouvelle boucle d'événement et la clôt à " -#~ "la fin. Elle doit être utilisée comme point d'entrée principal des " -#~ "programmes *asyncio* et ne doit être idéalement appelée qu'une seule fois." - -#~ msgid "" -#~ "The source code for ``asyncio.run()`` can be found in :source:`Lib/" -#~ "asyncio/runners.py`." -#~ msgstr "" -#~ "Le code source pour ``asyncio.run()`` est disponible dans :source:`Lib/" -#~ "asyncio/runners.py`." - -#~ msgid "" -#~ "This function has been **added in Python 3.7**. Prior to Python 3.7, the " -#~ "low-level :func:`asyncio.ensure_future` function can be used instead::" -#~ msgstr "" -#~ "Cette fonction a été **ajoutée dans Python 3.7**. Pour les versions " -#~ "antérieures à la 3.7, la fonction de bas-" -#~ "niveau :func:`asyncio.ensure_future` peut-être utilisée ::" - -#~ msgid "" -#~ "asyncio also supports legacy :ref:`generator-based " -#~ "` coroutines." -#~ msgstr "" -#~ "*asyncio* implémente également les coroutines :ref:`basées sur des " -#~ "générateurs ` ; celles-ci sont obsolètes." - -#~ msgid "" -#~ "If any awaitable in *aws* is a coroutine, it is automatically scheduled " -#~ "as a Task. Passing coroutines objects to ``wait()`` directly is " -#~ "deprecated as it leads to :ref:`confusing behavior " -#~ "`." -#~ msgstr "" -#~ "Si un *awaitable* de *aws* est une coroutine, celle-ci est " -#~ "automatiquement planifiée comme une tâche. Passer directement des objets " -#~ "coroutines à ``wait()`` est obsolète, car ceci conduisait :ref:`à un " -#~ "comportement portant à confusion `." - -#~ msgid "" -#~ "``wait()`` schedules coroutines as Tasks automatically and later returns " -#~ "those implicitly created Task objects in ``(done, pending)`` sets. " -#~ "Therefore the following code won't work as expected::" -#~ msgstr "" -#~ "``wait()`` planifie automatiquement les coroutines comme des tâches et " -#~ "renvoie les objets *Task* ainsi créés dans les ensembles ``(done, " -#~ "pending)``. Le code suivant ne fonctionne donc pas comme voulu ::" - -#~ msgid "Here is how the above snippet can be fixed::" -#~ msgstr "Voici comment corriger le morceau de code ci-dessus ::" - -#~ msgid "Generator-based Coroutines" -#~ msgstr "Coroutines basées sur des générateurs" - -#~ msgid "" -#~ "Support for generator-based coroutines is **deprecated** and is scheduled " -#~ "for removal in Python 3.10." -#~ msgstr "" -#~ "Les coroutines basées sur des générateurs sont **obsolètes** et il est " -#~ "prévu de les supprimer en Python 3.10." - -#~ msgid "" -#~ "Generator-based coroutines predate async/await syntax. They are Python " -#~ "generators that use ``yield from`` expressions to await on Futures and " -#~ "other coroutines." -#~ msgstr "" -#~ "Les coroutines basées sur des générateurs sont antérieures à la syntaxe " -#~ "*async* / *await*. Il existe des générateurs *Python* qui utilisent les " -#~ "expressions ``yield from`` pour attendre des *futurs* et autres " -#~ "coroutines." - -#~ msgid "" -#~ "Generator-based coroutines should be decorated " -#~ "with :func:`@asyncio.coroutine `, although this is not " -#~ "enforced." -#~ msgstr "" -#~ "Les coroutines basées sur des générateurs doivent être décorées " -#~ "avec :func:`@asyncio.coroutine `, même si ce n'est pas " -#~ "vérifié par l'interpréteur." - -#~ msgid "Decorator to mark generator-based coroutines." -#~ msgstr "Décorateur pour coroutines basées sur des générateurs." - -#~ msgid "" -#~ "This decorator enables legacy generator-based coroutines to be compatible " -#~ "with async/await code::" -#~ msgstr "" -#~ "Ce décorateur rend compatibles les coroutines basées sur des générateurs " -#~ "avec le code *async* / *await* ::" - -#~ msgid "" -#~ "This decorator should not be used for :keyword:`async def` coroutines." -#~ msgstr "" -#~ "Ce décorateur ne doit pas être utilisé avec des " -#~ "coroutines :keyword:`async def`." - -# pas de majuscule car suit un deux-points -#~ msgid "Use :keyword:`async def` instead." -#~ msgstr "utilisez :keyword:`async def` à la place." - -#~ msgid "" -#~ "This method is different from :func:`inspect.iscoroutine` because it " -#~ "returns ``True`` for generator-based coroutines." -#~ msgstr "" -#~ "Cette méthode est différente de :func:`inspect.iscoroutine` car elle " -#~ "renvoie ``True`` pour des coroutines basées sur des générateurs." - -#~ msgid "" -#~ "Return ``True`` if *func* is a :ref:`coroutine function `." -#~ msgstr "" -#~ "Renvoie ``True`` si *func* est une :ref:`fonction coroutine `." - -#~ msgid "" -#~ "This method is different from :func:`inspect.iscoroutinefunction` because " -#~ "it returns ``True`` for generator-based coroutine functions decorated " -#~ "with :func:`@coroutine `." -#~ msgstr "" -#~ "Cette méthode est différente de :func:`inspect.iscoroutinefunction` car " -#~ "elle renvoie ``True`` pour des coroutines basées sur des générateurs, " -#~ "décorées avec :func:`@coroutine `." diff --git a/library/asyncio.po b/library/asyncio.po deleted file mode 100644 index acab2e6dc2..0000000000 --- a/library/asyncio.po +++ /dev/null @@ -1,197 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-05-24 21:49-0400\n" -"Last-Translator: Antoine Wecxsteen\n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.3\n" - -#: library/asyncio.rst:100 -msgid "High-level APIs" -msgstr "Bibliothèques de haut-niveau" - -#: library/asyncio.rst:113 -msgid "Low-level APIs" -msgstr "Bibliothèques de bas-niveau" - -#: library/asyncio.rst:124 -msgid "Guides and Tutorials" -msgstr "Guides et tutoriels" - -#: library/asyncio.rst:2 -#, fuzzy -msgid ":mod:`!asyncio` --- Asynchronous I/O" -msgstr ":mod:`asyncio` — Entrées/Sorties asynchrones" - -#: library/asyncio.rst:9 -msgid "Hello World!" -msgstr "Hello World !" - -#: library/asyncio.rst:22 -msgid "" -"asyncio is a library to write **concurrent** code using the **async/await** " -"syntax." -msgstr "" -"``asyncio`` est une bibliothèque permettant de faire de la programmation " -"asynchrone en utilisant la syntaxe *async*/*await*." - -#: library/asyncio.rst:25 -msgid "" -"asyncio is used as a foundation for multiple Python asynchronous frameworks " -"that provide high-performance network and web-servers, database connection " -"libraries, distributed task queues, etc." -msgstr "" -"``asyncio`` constitue la base de nombreux cadriciels (*frameworks*) Python " -"asynchrones qui fournissent des utilitaires réseau et des serveurs web " -"performants, des bibliothèques de connexion à des bases de données, des " -"files d'exécution distribuées, etc." - -#: library/asyncio.rst:29 -msgid "" -"asyncio is often a perfect fit for IO-bound and high-level **structured** " -"network code." -msgstr "" -"``asyncio`` est souvent le bon choix pour écrire du code réseau de haut-" -"niveau et tributaire des entrées-sorties (*IO-bound*)." - -#: library/asyncio.rst:34 -msgid ":ref:`a-conceptual-overview-of-asyncio`" -msgstr "" - -#: library/asyncio.rst:35 -msgid "Explanation of the fundamentals of asyncio." -msgstr "" - -#: library/asyncio.rst:37 -msgid "asyncio provides a set of **high-level** APIs to:" -msgstr "" -"``asyncio`` fournit des interfaces de programmation **haut-niveau** pour :" - -#: library/asyncio.rst:39 -msgid "" -":ref:`run Python coroutines ` concurrently and have full control " -"over their execution;" -msgstr "" -":ref:`exécuter des coroutines Python ` de manière concurrente et " -"d'avoir le contrôle total sur leur exécution ;" - -#: library/asyncio.rst:42 -msgid "perform :ref:`network IO and IPC `;" -msgstr "" -"effectuer :ref:`des entrées/sorties réseau et de la communication inter-" -"processus ` ;" - -#: library/asyncio.rst:44 -msgid "control :ref:`subprocesses `;" -msgstr "contrôler des :ref:`sous-processus ` ;" - -#: library/asyncio.rst:46 -msgid "distribute tasks via :ref:`queues `;" -msgstr "distribuer des tâches avec des :ref:`queues ` ;" - -#: library/asyncio.rst:48 -msgid ":ref:`synchronize ` concurrent code;" -msgstr "" -":ref:`synchroniser ` du code s'exécutant de manière " -"concurrente ;" - -#: library/asyncio.rst:50 -msgid "" -"Additionally, there are **low-level** APIs for *library and framework " -"developers* to:" -msgstr "" -"En plus, il existe des bibliothèques de **bas-niveau** pour que les " -"*développeurs de bibliothèques et de frameworks* puissent :" - -#: library/asyncio.rst:53 -#, fuzzy -msgid "" -"create and manage :ref:`event loops `, which provide " -"asynchronous APIs for :ref:`networking `, " -"running :ref:`subprocesses `, handling :ref:`OS " -"signals `, etc;" -msgstr "" -"créer et gérer des :ref:`boucles d'événements `, qui " -"fournissent des bibliothèques asynchrones de :meth:`réseau " -"`, d'exécution de :meth:`subprocesses " -"`, de gestion de :meth:`signaux système " -"`, etc ;" - -#: library/asyncio.rst:58 -msgid "" -"implement efficient protocols using :ref:`transports `;" -msgstr "" -"implémenter des protocoles efficaces à l'aide de :ref:`transports ` ;" - -#: library/asyncio.rst:61 -msgid "" -":ref:`bridge ` callback-based libraries and code with async/" -"await syntax." -msgstr "" -":ref:`lier ` des bibliothèques basées sur les fonctions de " -"rappel et développer avec la syntaxe *async*/*await*." - -#: includes/wasm-notavail.rst:3 -msgid "Availability" -msgstr "Disponibilité" - -#: includes/wasm-notavail.rst:5 -msgid "" -"This module does not work or is not available on WebAssembly. See :ref:`wasm-" -"availability` for more information." -msgstr "" - -#: library/asyncio.rst:69 -msgid "asyncio REPL" -msgstr "" - -#: library/asyncio.rst:70 -msgid "" -"You can experiment with an ``asyncio`` concurrent context in " -"the :term:`REPL`:" -msgstr "" - -#: library/asyncio.rst:82 -msgid "" -"This REPL provides limited compatibility with :envvar:`PYTHON_BASIC_REPL`. " -"It is recommended that the default REPL is used for full functionality and " -"the latest features." -msgstr "" - -#: library/asyncio.rst:86 -msgid "" -"Raises an :ref:`auditing event ` ``cpython.run_stdin`` with no " -"arguments." -msgstr "" -"Lève un :ref:`évènement d'audit ` ``cpython.run_stdin`` sans " -"argument." - -#: library/asyncio.rst:88 -msgid "(also 3.11.10, 3.10.15, 3.9.20, and 3.8.20) Emits audit events." -msgstr "" - -#: library/asyncio.rst:91 -msgid "" -"Uses PyREPL if possible, in which case :envvar:`PYTHONSTARTUP` is also " -"executed. Emits audit events." -msgstr "" - -#: library/asyncio.rst:99 -msgid "Reference" -msgstr "Sommaire" - -#: library/asyncio.rst:133 -msgid "The source code for asyncio can be found in :source:`Lib/asyncio/`." -msgstr "" -"Le code source d'``asyncio`` est disponible dans :source:`Lib/asyncio/`." diff --git a/library/asyncore.po b/library/asyncore.po deleted file mode 100644 index 0df6326662..0000000000 --- a/library/asyncore.po +++ /dev/null @@ -1,37 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/asyncore.rst:2 -msgid ":mod:`!asyncore` --- Asynchronous socket handler" -msgstr "" - -#: library/asyncore.rst:10 -msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.12 ` after being " -"deprecated in Python 3.6. The removal was decided in :pep:`594`." -msgstr "" - -#: library/asyncore.rst:14 -msgid "Applications should use the :mod:`asyncio` module instead." -msgstr "" - -#: library/asyncore.rst:16 -msgid "" -"The last version of Python that provided the :mod:`!asyncore` module was " -"`Python 3.11 `_." -msgstr "" diff --git a/library/atexit.po b/library/atexit.po deleted file mode 100644 index c9aaba526f..0000000000 --- a/library/atexit.po +++ /dev/null @@ -1,208 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-03-23 13:05-0600\n" -"Last-Translator: Yannick Gingras \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 3.0\n" - -#: library/atexit.rst:2 -#, fuzzy -msgid ":mod:`!atexit` --- Exit handlers" -msgstr ":mod:`atexit` — Gestionnaire de fin de programme" - -#: library/atexit.rst:9 -#, fuzzy -msgid "" -"The :mod:`!atexit` module defines functions to register and unregister " -"cleanup functions. Functions thus registered are automatically executed " -"upon normal interpreter termination. :mod:`!atexit` runs these functions in " -"the *reverse* order in which they were registered; if you register ``A``, " -"``B``, and ``C``, at interpreter termination time they will be run in the " -"order ``C``, ``B``, ``A``." -msgstr "" -"Le module :mod:`atexit` définit des fonctions pour inscrire et désinscrire " -"des fonctions de nettoyage. Les fonctions ainsi inscrites sont " -"automatiquement exécutées au moment de l'arrêt normal de " -"l'interpréteur. :mod:`atexit` exécute ces fonctions dans l'ordre inverse " -"dans lequel elles ont été inscrites ; si vous inscrivez ``A``, ``B``, et " -"``C``, au moment de l'arrêt de l'interpréteur elles seront exécutées dans " -"l'ordre ``C``, ``B``, ``A``." - -#: library/atexit.rst:16 -msgid "" -"**Note:** The functions registered via this module are not called when the " -"program is killed by a signal not handled by Python, when a Python fatal " -"internal error is detected, or when :func:`os._exit` is called." -msgstr "" -"**Note:** Les fonctions inscrites via ce module ne sont pas appelées quand " -"le programme est tué par un signal non géré par Python, quand une erreur " -"fatale interne de Python est détectée, ou quand :func:`os._exit` est appelé." - -#: library/atexit.rst:20 -msgid "" -"**Note:** The effect of registering or unregistering functions from within a " -"cleanup function is undefined." -msgstr "" - -#: library/atexit.rst:23 -msgid "" -"When used with C-API subinterpreters, registered functions are local to the " -"interpreter they were registered in." -msgstr "" -"Quand elles sont utilisées avec des sous-interpréteurs de l'API C, les " -"fonctions inscrites sont locales à l'interpréteur dans lequel elles ont été " -"inscrites." - -#: library/atexit.rst:29 -msgid "" -"Register *func* as a function to be executed at termination. Any optional " -"arguments that are to be passed to *func* must be passed as arguments " -"to :func:`register`. It is possible to register the same function and " -"arguments more than once." -msgstr "" -"Inscrit *func* comme une fonction à exécuter au moment de l'arrêt de " -"l'interpréteur. Tout argument optionnel qui doit être passé à *func* doit " -"être passé comme argument à :func:`register`. Il est possible d'inscrire les " -"mêmes fonctions et arguments plus d'une fois." - -#: library/atexit.rst:34 -msgid "" -"At normal program termination (for instance, if :func:`sys.exit` is called " -"or the main module's execution completes), all functions registered are " -"called in last in, first out order. The assumption is that lower level " -"modules will normally be imported before higher level modules and thus must " -"be cleaned up later." -msgstr "" -"Lors d'un arrêt normal du programme (par exemple, si :func:`sys.exit` est " -"appelée ou l’exécution du module principal se termine), toutes les fonctions " -"inscrites sont appelées, dans l'ordre de la dernière arrivée, première " -"servie. La supposition est que les modules les plus bas niveau vont " -"normalement être importés avant les modules haut niveau et ainsi être " -"nettoyés en dernier." - -#: library/atexit.rst:40 -msgid "" -"If an exception is raised during execution of the exit handlers, a traceback " -"is printed (unless :exc:`SystemExit` is raised) and the exception " -"information is saved. After all exit handlers have had a chance to run, the " -"last exception to be raised is re-raised." -msgstr "" -"Si une exception est levée durant l'exécution du gestionnaire de fin de " -"programme, une trace d'appels est affichée (à moins que :exc:`SystemExit` " -"ait été levée) et les informations de l'exception sont sauvegardées. Une " -"fois que tous les gestionnaires de fin de programme ont eu une chance de " -"s'exécuter, la dernière exception à avoir été levée l'est de nouveau." - -#: library/atexit.rst:45 -msgid "" -"This function returns *func*, which makes it possible to use it as a " -"decorator." -msgstr "" -"Cette fonction renvoie *func*, ce qui rend possible de l'utiliser en tant " -"que décorateur." - -#: library/atexit.rst:49 -msgid "" -"Starting new threads or calling :func:`os.fork` from a registered function " -"can lead to race condition between the main Python runtime thread freeing " -"thread states while internal :mod:`threading` routines or the new process " -"try to use that state. This can lead to crashes rather than clean shutdown." -msgstr "" - -#: library/atexit.rst:55 -msgid "" -"Attempts to start a new thread or :func:`os.fork` a new process in a " -"registered function now leads to :exc:`RuntimeError`." -msgstr "" - -#: library/atexit.rst:61 -#, fuzzy -msgid "" -"Remove *func* from the list of functions to be run at interpreter " -"shutdown. :func:`unregister` silently does nothing if *func* was not " -"previously registered. If *func* has been registered more than once, every " -"occurrence of that function in the :mod:`!atexit` call stack will be " -"removed. Equality comparisons (``==``) are used internally during " -"unregistration, so function references do not need to have matching " -"identities." -msgstr "" -"Retire *func* de la liste des fonctions à exécuter au moment de l'arrêt de " -"l'interpréteur. :func:`unregister` ne fait rien et reste silencieux si " -"*func* n'a pas été préalablement inscrite. Si *func* a été inscrite plus " -"d'une fois, toutes les occurrences de cette fonction sont retirées de la " -"pile d'appels de :mod:`atexit`. La comparaison d'égalité (``==``) est " -"utilisée dans l'implémentation interne de la désinscription. Les références " -"des fonctions n'ont donc pas besoin d'avoir la même identité." - -#: library/atexit.rst:71 -msgid "Module :mod:`readline`" -msgstr "Module :mod:`readline`" - -#: library/atexit.rst:72 -#, fuzzy -msgid "" -"Useful example of :mod:`!atexit` to read and write :mod:`readline` history " -"files." -msgstr "" -"Un exemple utile de l'usage de :mod:`atexit` pour lire et écrire des " -"fichiers d'historique :mod:`readline`." - -#: library/atexit.rst:79 -#, fuzzy -msgid ":mod:`!atexit` Example" -msgstr "Exemple avec :mod:`atexit`" - -#: library/atexit.rst:81 -msgid "" -"The following simple example demonstrates how a module can initialize a " -"counter from a file when it is imported and save the counter's updated value " -"automatically when the program terminates without relying on the application " -"making an explicit call into this module at termination. ::" -msgstr "" -"Le simple exemple suivant démontre comment un module peut initialiser un " -"compteur depuis un fichier quand il est importé, et sauver le valeur mise à " -"jour du compteur automatiquement quand le programme se termine, sans avoir " -"besoin que l'application fasse un appel explicite dans ce module au moment " -"de l'arrêt de l'interpréteur. ::" - -#: library/atexit.rst:104 -msgid "" -"Positional and keyword arguments may also be passed to :func:`register` to " -"be passed along to the registered function when it is called::" -msgstr "" -"Les arguments positionnels et nommés peuvent aussi être passés " -"à :func:`register` afin d'être repassés à la fonction inscrite lors de son " -"appel ::" - -#: library/atexit.rst:116 -msgid "Usage as a :term:`decorator`::" -msgstr "Utilisation en tant que :term:`décorateur ` ::" - -#: library/atexit.rst:124 -msgid "This only works with functions that can be called without arguments." -msgstr "" -"Ceci fonctionne uniquement avec des fonctions qui peuvent être appelées sans " -"argument." - -#~ msgid "" -#~ "Remove *func* from the list of functions to be run at interpreter " -#~ "shutdown. After calling :func:`unregister`, *func* is guaranteed not to " -#~ "be called when the interpreter shuts down, even if it was registered more " -#~ "than once. :func:`unregister` silently does nothing if *func* was not " -#~ "previously registered." -#~ msgstr "" -#~ "Retire *func* de la liste des fonctions à exécuter à l'arrêt de " -#~ "l’interpréteur. Après avoir appelé :func:`unregister`, *func* est " -#~ "garantie de ne pas être appelée à l'arrêt de l’interpréteur, même si elle " -#~ "a été inscrite plus d'une fois. :func:`unregister` ne fait rien et reste " -#~ "muette dans le cas où *func* n'a pas été inscrite précédemment." diff --git a/library/audioop.po b/library/audioop.po deleted file mode 100644 index 74419821d0..0000000000 --- a/library/audioop.po +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/audioop.rst:2 -msgid ":mod:`!audioop` --- Manipulate raw audio data" -msgstr "" - -#: library/audioop.rst:10 -msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." -msgstr "" - -#: library/audioop.rst:14 -msgid "" -"The last version of Python that provided the :mod:`!audioop` module was " -"`Python 3.12 `_." -msgstr "" diff --git a/library/audit_events.po b/library/audit_events.po deleted file mode 100644 index ebd0eadbfb..0000000000 --- a/library/audit_events.po +++ /dev/null @@ -1,148 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2022-11-15 14:54+0100\n" -"Last-Translator: Lucie Roux \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3\n" - -#: library/audit_events.rst:6 -msgid "Audit events table" -msgstr "Table des évènements d'audit" - -#: library/audit_events.rst:8 -#, fuzzy -msgid "" -"This table contains all events raised by :func:`sys.audit` " -"or :c:func:`PySys_Audit` calls throughout the CPython runtime and the " -"standard library. These calls were added in 3.8 or later (see :pep:`578`)." -msgstr "" -"Cette table contient tous les évènements levés par les appels " -"de :func:`sys.audit` ou :c:func:`PySys_Audit` durant l'exécution de CPython " -"et de la bibliothèque standard. Ces appels ont été ajoutés dans les versions " -"3.8.0 et ultérieures." - -#: library/audit_events.rst:12 -msgid "" -"See :func:`sys.addaudithook` and :c:func:`PySys_AddAuditHook` for " -"information on handling these events." -msgstr "" -"Voir :func:`sys.addaudithook` et :c:func:`PySys_AddAuditHook` pour plus " -"d'informations sur la gestion de ces évènements." - -#: library/audit_events.rst:17 -msgid "" -"This table is generated from the CPython documentation, and may not " -"represent events raised by other implementations. See your runtime specific " -"documentation for actual events raised." -msgstr "" -"Cette table est générée à partir de la documentation de CPython et peut ne " -"pas représenter des évènements levés par d'autres implémentations. Consultez " -"la documentation propre à votre implémentation pour connaître les évènements " -"réellement levés." - -#: library/audit_events.rst:23 -msgid "" -"The following events are raised internally and do not correspond to any " -"public API of CPython:" -msgstr "" -"Les évènements suivants sont levés en interne et ne correspondent à aucune " -"API publique de CPython :" - -#: library/audit_events.rst:27 -#, fuzzy -msgid "Audit event" -msgstr "Table des évènements d'audit" - -#: library/audit_events.rst:27 -msgid "Arguments" -msgstr "Arguments" - -#: library/audit_events.rst:29 -msgid "_winapi.CreateFile" -msgstr "_winapi.CreateFile" - -#: library/audit_events.rst:29 -msgid "" -"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " -"``flags_and_attributes``" -msgstr "" -"``file_name``, ``desired_access``, ``share_mode``, ``creation_disposition``, " -"``flags_and_attributes``" - -#: library/audit_events.rst:33 -msgid "_winapi.CreateJunction" -msgstr "_winapi.CreateJunction" - -#: library/audit_events.rst:33 -msgid "``src_path``, ``dst_path``" -msgstr "``src_path``, ``dst_path``" - -#: library/audit_events.rst:35 -msgid "_winapi.CreateNamedPipe" -msgstr "_winapi.CreateNamedPipe" - -#: library/audit_events.rst:35 -msgid "``name``, ``open_mode``, ``pipe_mode``" -msgstr "``name``, ``open_mode``, ``pipe_mode``" - -#: library/audit_events.rst:37 -msgid "_winapi.CreatePipe" -msgstr "_winapi.CreatePipe" - -#: library/audit_events.rst:39 -msgid "_winapi.CreateProcess" -msgstr "_winapi.CreateProcess" - -#: library/audit_events.rst:39 -msgid "``application_name``, ``command_line``, ``current_directory``" -msgstr "``application_name``, ``command_line``, ``current_directory``" - -#: library/audit_events.rst:42 -msgid "_winapi.OpenProcess" -msgstr "_winapi.OpenProcess" - -#: library/audit_events.rst:42 -msgid "``process_id``, ``desired_access``" -msgstr "``process_id``, ``desired_access``" - -#: library/audit_events.rst:44 -msgid "_winapi.TerminateProcess" -msgstr "_winapi.TerminateProcess" - -#: library/audit_events.rst:44 -msgid "``handle``, ``exit_code``" -msgstr "``handle``, ``exit_code``" - -#: library/audit_events.rst:46 -msgid "_posixsubprocess.fork_exec" -msgstr "" - -#: library/audit_events.rst:46 -msgid "``exec_list``, ``args``, ``env``" -msgstr "" - -#: library/audit_events.rst:48 -msgid "ctypes.PyObj_FromPtr" -msgstr "ctypes.PyObj_FromPtr" - -#: library/audit_events.rst:48 -msgid "``obj``" -msgstr "``obj``" - -#: library/audit_events.rst:51 -msgid "The ``_posixsubprocess.fork_exec`` internal audit event." -msgstr "" - -#, fuzzy -#~ msgid "audit events" -#~ msgstr "Table des évènements d'audit" diff --git a/library/base64.po b/library/base64.po deleted file mode 100644 index 36935e6423..0000000000 --- a/library/base64.po +++ /dev/null @@ -1,860 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-10-18 15:43+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" - -#: library/base64.rst:2 -#, fuzzy -msgid ":mod:`!base64` --- Base16, Base32, Base64, Base85 Data Encodings" -msgstr ":mod:`base64` — Encodages base16, base32, base64 et base85" - -#: library/base64.rst:8 -msgid "**Source code:** :source:`Lib/base64.py`" -msgstr "**Code source :** :source:`Lib/base64.py`" - -#: library/base64.rst:16 -#, fuzzy -msgid "" -"This module provides functions for encoding binary data to printable ASCII " -"characters and decoding such encodings back to binary data. This includes " -"the :ref:`encodings specified in ` :rfc:`4648` (Base64, " -"Base32 and Base16), the :ref:`Base85 encoding ` specified in " -"`PDF 2.0 `_, and non-standard " -"variants of Base85 used elsewhere." -msgstr "" -"Ce module fournit des fonctions permettant de coder des données binaires en " -"caractères ASCII affichables ainsi que de décoder ces caractères vers des " -"données binaires en retour. Il fournit des fonctions d'encodage et de " -"décodage pour les codages spécifiés par la :rfc:`3548` qui définit les " -"algorithmes base16, base32 et base64, ainsi que les encodages standards *de " -"facto* Ascii85 et base85." - -#: library/base64.rst:24 -#, fuzzy -msgid "" -"There are two interfaces provided by this module. The modern interface " -"supports encoding :term:`bytes-like objects ` to " -"ASCII :class:`bytes`, and decoding :term:`bytes-like objects ` or strings containing ASCII to :class:`bytes`. Both base-64 " -"alphabets defined in :rfc:`4648` (normal, and URL- and filesystem-safe) are " -"supported." -msgstr "" -"Ce module présente deux interfaces. L'interface moderne gère l'encodage " -"d':term:`objets octet-compatibles ` en :class:`bytes` " -"ASCII ainsi que le décodage d':term:`objets octet-compatibles ` ou de chaînes de caractères contenant de l'ASCII en :class:`bytes`. " -"Les deux alphabets de l'algorithme base64 définis par la :rfc:`3548` (normal " -"et sûr pour les systèmes de fichiers ou URL) sont gérés." - -#: library/base64.rst:30 -#, fuzzy -msgid "" -"The :ref:`legacy interface ` does not support decoding from " -"strings, but it does provide functions for encoding and decoding to and " -"from :term:`file objects `. It only supports the Base64 " -"standard alphabet, and it adds newlines every 76 characters as " -"per :rfc:`2045`. Note that if you are looking for :rfc:`2045` support you " -"probably want to be looking at the :mod:`email` package instead." -msgstr "" -"L'interface historique ne permet pas le décodage des chaînes de caractères " -"mais fournit des fonctions permettant d'encoder et décoder depuis et vers " -"des :term:`objets fichiers `. Elle ne gère que l'alphabet " -"base64 standard et ajoute une nouvelle ligne tous les 76 caractères, comme " -"spécifié par la :rfc:`2045`. Notez que le paquet :mod:`email` est " -"probablement ce que vous cherchez si vous souhaitez une implémentation de " -"la :rfc:`2045`." - -#: library/base64.rst:38 -msgid "" -"ASCII-only Unicode strings are now accepted by the decoding functions of the " -"modern interface." -msgstr "" -"Les chaînes de caractères Unicode contenant uniquement des caractères ASCII " -"sont désormais acceptées par les fonctions de décodage de l'interface " -"moderne." - -#: library/base64.rst:42 -msgid "" -"Any :term:`bytes-like objects ` are now accepted by all " -"encoding and decoding functions in this module. Ascii85/Base85 support " -"added." -msgstr "" -"Tous les :term:`objets octet-compatibles ` sont désormais " -"acceptés par l'ensemble des fonctions d'encodage et de décodage de ce " -"module. La gestion de Ascii85/base85 a été ajoutée." - -#: library/base64.rst:50 -msgid "RFC 4648 Encodings" -msgstr "" - -#: library/base64.rst:52 -#, fuzzy -msgid "" -"The :rfc:`4648` encodings are suitable for encoding binary data so that it " -"can be safely sent by email, used as parts of URLs, or included as part of " -"an HTTP POST request." -msgstr "" -"Les encodages définis par la :rfc:`3548` sont adaptés au codage des données " -"binaires pour leur transfert par courriel, comme éléments d'une URL ou d'une " -"requête HTTP POST. L'algorithme d'encodage ne doit pas être confondu avec le " -"programme :program:`uuencode`." - -#: library/base64.rst:58 -msgid "" -"Encode the :term:`bytes-like object` *s* using Base64 and return the " -"encoded :class:`bytes`." -msgstr "" -"Encode un :term:`objet octet-compatible ` *s* en " -"utilisant l'algorithme base64 et renvoie les :class:`bytes` encodés." - -#: library/base64.rst:61 -#, fuzzy -msgid "" -"Optional *altchars* must be a :term:`bytes-like object` of length 2 which " -"specifies an alternative alphabet for the ``+`` and ``/`` characters. This " -"allows an application to e.g. generate URL or filesystem safe Base64 " -"strings. The default is ``None``, for which the standard Base64 alphabet is " -"used." -msgstr "" -"L'option *altchars* doit être un :term:`bytes-like object` de longueur au " -"moins 2 (les caractères additionnels sont ignorés) qui spécifie un alphabet " -"alternatif pour les délimiteurs ``+`` et ``/``. Cela permet de générer des " -"chaînes de caractères base64 pouvant être utilisées pour une URL ou dans un " -"système de fichiers. La valeur par défaut est ``None``, auquel cas " -"l'alphabet standard base64 est utilisé." - -#: library/base64.rst:66 -msgid "" -"If *padded* is true (default), pad the encoded data with the '=' character " -"to a size multiple of 4. If *padded* is false, do not add the pad characters." -msgstr "" - -#: library/base64.rst:323 -msgid "" -"If *wrapcol* is non-zero, insert a newline (``b'\\n'``) character after at " -"most every *wrapcol* characters. If *wrapcol* is zero (default), do not " -"insert any newlines." -msgstr "" - -#: library/base64.rst:183 library/base64.rst:231 -msgid "Added the *padded* and *wrapcol* parameters." -msgstr "" - -#: library/base64.rst:81 -msgid "" -"Decode the Base64 encoded :term:`bytes-like object` or ASCII string *s* and " -"return the decoded :class:`bytes`." -msgstr "" -"Décode un :term:`objet octet-compatible ` ou une chaîne " -"de caractères ASCII *s* encodée en base64 et renvoie les :class:`bytes` " -"décodés." - -#: library/base64.rst:84 -#, fuzzy -msgid "" -"Optional *altchars* must be a :term:`bytes-like object` or ASCII string of " -"length 2 which specifies the alternative alphabet used instead of the ``+`` " -"and ``/`` characters." -msgstr "" -"L'option *altchars* doit être un :term:`bytes-like object` de longueur au " -"moins égale à 2 (les caractères additionnels sont ignorés) qui spécifie un " -"alphabet alternatif pour les délimiteurs ``+`` et ``/``." - -#: library/base64.rst:88 -msgid "" -"If *padded* is true, the last group of 4 base 64 alphabet characters must be " -"padded with the '=' character. If *padded* is false, padding is neither " -"required nor recognized: the '=' character is not treated as padding but as " -"a non-alphabet character, which means it is silently discarded when " -"*validate* is false, or causes an :exc:`~binascii.Error` when *validate* is " -"true unless b'=' is included in *ignorechars*." -msgstr "" - -#: library/base64.rst:96 -msgid "" -"A :exc:`binascii.Error` exception is raised if *s* is incorrectly padded." -msgstr "" -"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une " -"longueur attendue." - -#: library/base64.rst:99 -msgid "" -"If *ignorechars* is specified, it should be a :term:`bytes-like object` " -"containing characters to ignore from the input when *validate* is true. If " -"*ignorechars* contains the pad character ``'='``, the pad characters " -"presented before the end of the encoded data and the excess pad characters " -"will be ignored. The default value of *validate* is ``True`` if " -"*ignorechars* is specified, ``False`` otherwise." -msgstr "" - -#: library/base64.rst:107 -#, fuzzy -msgid "" -"If *validate* is false, characters that are neither in the normal base-64 " -"alphabet nor (if *ignorechars* is not specified) the alternative alphabet " -"are discarded prior to the padding check, but the ``+`` and ``/`` characters " -"keep their meaning if they are not in *altchars* (they will be discarded in " -"future Python versions)." -msgstr "" -"Si *validate* est ``False`` (par défaut), les caractères qui ne sont ni dans " -"l'alphabet base64 normal, ni dans l'alphabet alternatif, sont ignorés avant " -"la vérification de la longueur du remplissage. Si *validate* est ``True``, " -"les caractères hors de l'alphabet de l'entrée produisent " -"une :exc:`binascii.Error`." - -#: library/base64.rst:114 -msgid "" -"If *validate* is true, these non-alphabet characters in the input result in " -"a :exc:`binascii.Error`." -msgstr "" - -#: library/base64.rst:117 -msgid "" -"If *canonical* is true, non-zero padding bits are rejected. " -"See :func:`binascii.a2b_base64` for details." -msgstr "" - -#: library/base64.rst:120 -msgid "" -"For more information about the strict base64 check, " -"see :func:`binascii.a2b_base64`" -msgstr "" - -#: library/base64.rst:220 library/base64.rst:247 -msgid "Added the *canonical*, *ignorechars*, and *padded* parameters." -msgstr "" - -#: library/base64.rst:125 -msgid "" -"Accepting the ``+`` and ``/`` characters with an alternative alphabet is now " -"deprecated." -msgstr "" - -#: library/base64.rst:132 -msgid "" -"Encode :term:`bytes-like object` *s* using the standard Base64 alphabet and " -"return the encoded :class:`bytes`." -msgstr "" -"Encode un :term:`objet octet-compatible ` *s* en " -"utilisant l'alphabet standard base64 et renvoie les :class:`bytes` encodés." - -#: library/base64.rst:138 -msgid "" -"Decode :term:`bytes-like object` or ASCII string *s* using the standard " -"Base64 alphabet and return the decoded :class:`bytes`." -msgstr "" -"Décode un :term:`objet octet-compatible ` ou une chaîne " -"de caractères ASCII *s* utilisant l'alphabet base64 standard et renvoie " -"les :class:`bytes` décodés." - -#: library/base64.rst:144 -#, fuzzy -msgid "" -"Encode :term:`bytes-like object` *s* using the URL- and filesystem-safe " -"alphabet, which substitutes ``-`` instead of ``+`` and ``_`` instead of ``/" -"`` in the standard Base64 alphabet, and return the encoded :class:`bytes`. " -"The result can still contain ``=`` if *padded* is true (default)." -msgstr "" -"Encode un :term:`objet byte-compatible ` *s* en utilisant " -"un alphabet sûr pour les URL et systèmes de fichiers qui substitue ``-`` et " -"``_`` à ``+`` et ``/`` dans l'alphabet standard base64 et renvoie " -"les :class:`bytes` encodés." - -#: library/base64.rst:150 -msgid "Added the *padded* parameter." -msgstr "" - -#: library/base64.rst:156 -msgid "" -"Decode :term:`bytes-like object` or ASCII string *s* using the URL- and " -"filesystem-safe alphabet, which substitutes ``-`` instead of ``+`` and ``_`` " -"instead of ``/`` in the standard Base64 alphabet, and return the " -"decoded :class:`bytes`." -msgstr "" -"Décode un :term:`objet octet-compatible ` ou une chaîne " -"de caractères ASCII *s* utilisant un alphabet sûr pour les URL et systèmes " -"de fichiers qui substitue ``-`` et ``_`` à ``+`` et ``/`` dans l'alphabet " -"standard base64 et renvoie les :class:`bytes` décodés." - -#: library/base64.rst:162 -msgid "" -"Added the *padded* parameter. Padding of input is no longer required by " -"default." -msgstr "" - -#: library/base64.rst:166 -msgid "Accepting the ``+`` and ``/`` characters is now deprecated." -msgstr "" - -#: library/base64.rst:172 -msgid "" -"Encode the :term:`bytes-like object` *s* using Base32 and return the " -"encoded :class:`bytes`." -msgstr "" -"Encode un :term:`objet byte-compatible ` *s* en utilisant " -"l'algorithme base32 et renvoie les :class:`bytes` encodés." - -#: library/base64.rst:175 -msgid "" -"If *padded* is true (default), pad the encoded data with the '=' character " -"to a size multiple of 8. If *padded* is false, do not add the pad characters." -msgstr "" - -#: library/base64.rst:256 library/base64.rst:421 -msgid "" -"If *wrapcol* is non-zero, insert a newline (``b'\\n'``) character after at " -"most every *wrapcol* characters. If *wrapcol* is zero (default), do not add " -"any newlines." -msgstr "" - -#: library/base64.rst:189 -msgid "" -"Decode the Base32 encoded :term:`bytes-like object` or ASCII string *s* and " -"return the decoded :class:`bytes`." -msgstr "" -"Décode un :term:`objet octet-compatible ` ou une chaîne " -"de caractères ASCII *s* encodé en base32 et renvoie les :class:`bytes` " -"décodés." - -#: library/base64.rst:269 -msgid "" -"Optional *casefold* is a flag specifying whether a lowercase alphabet is " -"acceptable as input. For security purposes, the default is ``False``." -msgstr "" -"L'option *casefold* est un drapeau spécifiant si l'utilisation d'un alphabet " -"en minuscules est acceptable comme entrée. Pour des raisons de sécurité, " -"cette option est à ``False`` par défaut." - -#: library/base64.rst:196 -#, fuzzy -msgid "" -":rfc:`4648` allows for optional mapping of the digit 0 (zero) to the letter " -"O (oh), and for optional mapping of the digit 1 (one) to either the letter I " -"(eye) or letter L (el). The optional argument *map01* when not ``None``, " -"specifies which letter the digit 1 should be mapped to (when *map01* is not " -"``None``, the digit 0 is always mapped to the letter O). For security " -"purposes the default is ``None``, so that 0 and 1 are not allowed in the " -"input." -msgstr "" -"La :rfc:`3548` autorise une correspondance optionnelle du chiffre 0 (zéro) " -"vers la lettre O (/o/) ainsi que du chiffre 1 (un) vers soit la lettre I (/" -"i/) ou la lettre L (/l/). L'argument optionnel *map01*, lorsqu'il diffère de " -"``None``, spécifie en quelle lettre le chiffre 1 doit être transformé " -"(lorsque *map01* n'est pas ``None``, le chiffre 0 est toujours transformé en " -"la lettre O). Pour des raisons de sécurité, le défaut est ``None``, de telle " -"sorte que 0 et 1 ne sont pas autorisés dans l'entrée." - -#: library/base64.rst:203 -msgid "" -"If *padded* is true, the last group of 8 base 32 alphabet characters must be " -"padded with the '=' character. If *padded* is false, padding is neither " -"required nor recognized: the '=' character is not treated as padding but as " -"a non-alphabet character, which means it raises an :exc:`~binascii.Error` " -"unless b'=' is included in *ignorechars*." -msgstr "" - -#: library/base64.rst:273 library/base64.rst:439 -#, fuzzy -msgid "" -"*ignorechars* should be a :term:`bytes-like object` containing characters to " -"ignore from the input." -msgstr "" -"*ignorechars* doit être un :term:`bytes-like object` ou une chaîne ASCII " -"contenant des caractères à ignorer dans l'entrée. Il ne doit contenir que " -"des caractères d'espacement et contient par défaut l'ensemble des caractères " -"d'espacement de l'alphabet ASCII." - -#: library/base64.rst:213 -msgid "" -"If *canonical* is true, non-zero padding bits are rejected. " -"See :func:`binascii.a2b_base32` for details." -msgstr "" - -#: library/base64.rst:276 -msgid "" -"A :exc:`binascii.Error` is raised if *s* is incorrectly padded or if there " -"are non-alphabet characters present in the input." -msgstr "" -"Une exception :exc:`binascii.Error` est levée si *s* n'est pas remplie à une " -"longueur attendue ou si elle contient des caractères hors de l'alphabet." - -#: library/base64.rst:226 -msgid "" -"Similar to :func:`b32encode` but uses the Extended Hex Alphabet, as defined " -"in :rfc:`4648`." -msgstr "" - -#: library/base64.rst:237 -msgid "" -"Similar to :func:`b32decode` but uses the Extended Hex Alphabet, as defined " -"in :rfc:`4648`." -msgstr "" - -#: library/base64.rst:240 -msgid "" -"This version does not allow the digit 0 (zero) to the letter O (oh) and " -"digit 1 (one) to either the letter I (eye) or letter L (el) mappings, all " -"these characters are included in the Extended Hex Alphabet and are not " -"interchangeable." -msgstr "" - -#: library/base64.rst:253 -msgid "" -"Encode the :term:`bytes-like object` *s* using Base16 and return the " -"encoded :class:`bytes`." -msgstr "" -"Encode un :term:`objet byte-compatible ` *s* en utilisant " -"l'algorithme base16 et renvoie les :class:`bytes` encodés." - -#: library/base64.rst:388 library/base64.rst:430 -msgid "Added the *wrapcol* parameter." -msgstr "" - -#: library/base64.rst:266 -msgid "" -"Decode the Base16 encoded :term:`bytes-like object` or ASCII string *s* and " -"return the decoded :class:`bytes`." -msgstr "" -"Décode un :term:`objet octet-compatible ` ou une chaîne " -"de caractères ASCII *s* encodé en base16 et renvoie les :class:`bytes` " -"décodés." - -#: library/base64.rst:280 -msgid "Added the *ignorechars* parameter." -msgstr "" - -#: library/base64.rst:287 -msgid "Base85 Encodings" -msgstr "" - -#: library/base64.rst:289 -msgid "" -"Base85 encoding is a family of algorithms which represent four bytes using " -"five ASCII characters. Originally implemented in the Unix ``btoa(1)`` " -"utility, a version of it was later adopted by Adobe in the PostScript " -"language and is standardized in PDF 2.0 (ISO 32000-2). This version, in both " -"its ``btoa`` and PDF variants, is implemented by :func:`a85encode`." -msgstr "" - -#: library/base64.rst:296 -msgid "" -"A separate version, using a different output character set, was defined as " -"an April Fool's joke in :rfc:`1924` but is now used by Git and other " -"software. This version is implemented by :func:`b85encode`." -msgstr "" - -#: library/base64.rst:300 -msgid "" -"Finally, a third version, using yet another output character set designed " -"for safe inclusion in programming language strings, is defined by ZeroMQ and " -"implemented here by :func:`z85encode`." -msgstr "" - -#: library/base64.rst:304 -msgid "" -"The functions present in this module differ in how they handle the following:" -msgstr "" - -#: library/base64.rst:306 -msgid "Whether to include and expect enclosing ``<~`` and ``~>`` markers." -msgstr "" - -#: library/base64.rst:307 -msgid "Whether to fold the input into multiple lines." -msgstr "" - -#: library/base64.rst:308 -msgid "The set of ASCII characters used for encoding." -msgstr "" - -#: library/base64.rst:309 -msgid "Compact encodings of sequences of spaces and null bytes." -msgstr "" - -#: library/base64.rst:310 -msgid "The encoding of zero-padding bytes applied to the input." -msgstr "" - -#: library/base64.rst:312 -msgid "" -"Refer to the documentation of the individual functions for more information." -msgstr "" - -#: library/base64.rst:316 -msgid "" -"Encode the :term:`bytes-like object` *b* using Ascii85 and return the " -"encoded :class:`bytes`." -msgstr "" -"Encode un :term:`objet byte-compatible ` *s* en utilisant " -"l'algorithme Ascii85 et renvoie les :class:`bytes` encodés." - -#: library/base64.rst:319 -#, fuzzy -msgid "" -"*foldspaces* is an optional flag that uses the special short sequence 'y' " -"instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This " -"feature is not supported by the standard encoding used in PDF." -msgstr "" -"L'option *foldspaces* permet d'utiliser la séquence spéciale 'y' à la place " -"de quatre espaces consécutives (ASCII ``0x20``) comme pris en charge par " -"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » " -"Ascii85." - -#: library/base64.rst:327 -msgid "" -"*pad* controls whether zero-padding applied to the end of the input is fully " -"retained in the output encoding, as done by ``btoa``, producing an exact " -"multiple of 5 bytes of output. This is not part of the standard encoding " -"used in PDF, as it does not preserve the length of the data." -msgstr "" - -#: library/base64.rst:333 -msgid "" -"*adobe* controls whether the encoded byte sequence is framed with ``<~`` and " -"``~>``, as in a PostScript base-85 string literal. Note that while " -"ASCII85Decode streams in PDF documents *must* be terminated with ``~>``, " -"they *must not* use a leading ``<~``." -msgstr "" - -#: library/base64.rst:343 -msgid "" -"Decode the Ascii85 encoded :term:`bytes-like object` or ASCII string *b* and " -"return the decoded :class:`bytes`." -msgstr "" -"Décode un :term:`objet octet-compatible ` ou une chaîne " -"de caractères ASCII *s* encodé en Ascii85 et renvoie les :class:`bytes` " -"décodés." - -#: library/base64.rst:346 -#, fuzzy -msgid "" -"*foldspaces* is a flag that specifies whether the 'y' short sequence should " -"be accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature " -"is not supported by the standard Ascii85 encoding used in PDF and PostScript." -msgstr "" -"L'option *foldspaces* permet d'utiliser la séquence spéciale 'y' à la place " -"de quatre espaces consécutives (ASCII ``0x20``) comme pris en charge par " -"*btoa*. Cette fonctionnalité n'est pas gérée par l'encodage « standard » " -"Ascii85." - -#: library/base64.rst:351 -msgid "" -"*adobe* controls whether the ``<~`` and ``~>`` markers are present. While " -"the leading ``<~`` is not required, the input must end with ``~>``, or " -"a :exc:`ValueError` is raised." -msgstr "" - -#: library/base64.rst:355 -#, fuzzy -msgid "" -"*ignorechars* should be a :term:`bytes-like object` containing characters to " -"ignore from the input. This should only contain whitespace characters, and " -"by default contains all whitespace characters in ASCII." -msgstr "" -"*ignorechars* doit être un :term:`bytes-like object` ou une chaîne ASCII " -"contenant des caractères à ignorer dans l'entrée. Il ne doit contenir que " -"des caractères d'espacement et contient par défaut l'ensemble des caractères " -"d'espacement de l'alphabet ASCII." - -#: library/base64.rst:360 -msgid "" -"If *canonical* is true, non-canonical encodings are rejected. " -"See :func:`binascii.a2b_ascii85` for details." -msgstr "" - -#: library/base64.rst:365 -msgid "" -"Added the *canonical* parameter. Single-character final groups are now " -"always rejected as encoding violations." -msgstr "" - -#: library/base64.rst:373 -msgid "" -"Encode the :term:`bytes-like object` *b* using base85 (as used in e.g. git-" -"style binary diffs) and return the encoded :class:`bytes`." -msgstr "" -"Encode un :term:`objet byte-compatible ` *s* en utilisant " -"l'algorithme base85 (tel qu'utilisé par exemple par le programme *git-diff* " -"sur des données binaires) et renvoie les :class:`bytes` encodés." - -#: library/base64.rst:376 -msgid "" -"The input is padded with ``b'\\0'`` so its length is a multiple of 4 bytes " -"before encoding. If *pad* is true, all the resulting characters are " -"retained in the output, which will always be a multiple of 5 bytes, and thus " -"the length of the data may not be preserved on decoding." -msgstr "" - -#: library/base64.rst:394 -#, fuzzy -msgid "" -"Decode the base85-encoded :term:`bytes-like object` or ASCII string *b* and " -"return the decoded :class:`bytes`." -msgstr "" -"Décode un :term:`objet octet-compatible ` ou une chaîne " -"de caractères ASCII *s* encodé en Ascii85 et renvoie les :class:`bytes` " -"décodés." - -#: library/base64.rst:442 -msgid "" -"If *canonical* is true, non-canonical encodings are rejected. " -"See :func:`binascii.a2b_base85` for details." -msgstr "" - -#: library/base64.rst:447 -msgid "" -"Added the *canonical* and *ignorechars* parameters. Single-character final " -"groups are now always rejected as encoding violations." -msgstr "" - -#: library/base64.rst:413 -#, fuzzy -msgid "" -"Encode the :term:`bytes-like object` *s* using Z85 (as used in ZeroMQ) and " -"return the encoded :class:`bytes`." -msgstr "" -"Encode un :term:`objet octet-compatible ` *s* en " -"utilisant l'algorithme base64 et renvoie les :class:`bytes` encodés." - -#: library/base64.rst:416 -msgid "" -"The input is padded with ``b'\\0'`` so its length is a multiple of 4 bytes " -"before encoding. If *pad* is true, all the resulting characters are " -"retained in the output, which will always be a multiple of 5 bytes, as " -"required by the ZeroMQ standard." -msgstr "" - -#: library/base64.rst:427 -msgid "The *pad* parameter was added." -msgstr "" - -#: library/base64.rst:436 -#, fuzzy -msgid "" -"Decode the Z85-encoded :term:`bytes-like object` or ASCII string *s* and " -"return the decoded :class:`bytes`." -msgstr "" -"Décode un :term:`objet octet-compatible ` ou une chaîne " -"de caractères ASCII *s* encodé en Ascii85 et renvoie les :class:`bytes` " -"décodés." - -#: library/base64.rst:456 -#, fuzzy -msgid "Legacy Interface" -msgstr "L'interface historique :" - -#: library/base64.rst:460 -msgid "" -"Decode the contents of the binary *input* file and write the resulting " -"binary data to the *output* file. *input* and *output* must be :term:`file " -"objects `. *input* will be read until ``input.readline()`` " -"returns an empty bytes object." -msgstr "" -"Décode le contenu d'un fichier binaire *input* et écrit les données binaires " -"résultantes dans le fichier *output*. *input* et *output* doivent être " -"des :term:`objets fichiers `. *input* est lu jusqu'à ce que " -"``input.readline()`` renvoie un objet *bytes* vide." - -#: library/base64.rst:468 -msgid "" -"Decode the :term:`bytes-like object` *s*, which must contain one or more " -"lines of base64 encoded data, and return the decoded :class:`bytes`." -msgstr "" -"Décode un :term:`objet octet-compatible ` *s* devant " -"contenir une ou plusieurs lignes de données encodées en base64 et renvoie " -"les :class:`bytes` décodés." - -#: library/base64.rst:476 -msgid "" -"Encode the contents of the binary *input* file and write the resulting " -"base64 encoded data to the *output* file. *input* and *output* must " -"be :term:`file objects `. *input* will be read until " -"``input.read()`` returns an empty bytes object. :func:`encode` inserts a " -"newline character (``b'\\n'``) after every 76 bytes of the output, as well " -"as ensuring that the output always ends with a newline, as per :rfc:`2045` " -"(MIME)." -msgstr "" -"Encode le contenu du fichier binaire *input* et écrit les données encodées " -"en base64 résultantes dans le fichier *output. *input* et *output* doivent " -"être des :term:`objets fichiers `. *input* est lu jusqu'à ce " -"que ``input.readline()`` renvoie un objet *bytes* vide. :func:`encode` " -"insère un caractère de saut de ligne (``b'\\n'``) tous les 76 octets de " -"sortie et assure que celle-ci se termine par une nouvelle ligne, comme " -"spécifié par la :rfc:`2045` (MIME)." - -#: library/base64.rst:486 -msgid "" -"Encode the :term:`bytes-like object` *s*, which can contain arbitrary binary " -"data, and return :class:`bytes` containing the base64-encoded data, with " -"newlines (``b'\\n'``) inserted after every 76 bytes of output, and ensuring " -"that there is a trailing newline, as per :rfc:`2045` (MIME)." -msgstr "" -"Encode un :term:`objet octet-compatible ` *s* pouvant " -"contenir des données binaires arbitraires et renvoie les :class:`bytes` " -"contenant les données encodées en base64. Un caractère de saut de ligne " -"(``b'\\n'``) est inséré tous les 76 octets de sortie et celle-ci se termine " -"par une nouvelle ligne, comme spécifié par la :rfc:`2045` (MIME)." - -#: library/base64.rst:494 -msgid "An example usage of the module:" -msgstr "Un exemple d'utilisation du module :" - -#: library/base64.rst:507 -msgid "Security Considerations" -msgstr "Considérations de sécurité" - -#: library/base64.rst:509 -msgid "" -"A new security considerations section was added to :rfc:`4648` (section 12); " -"it's recommended to review the security section for any code deployed to " -"production." -msgstr "" - -#: library/base64.rst:514 -msgid "Module :mod:`binascii`" -msgstr "Module :mod:`binascii`" - -#: library/base64.rst:515 -msgid "" -"Support module containing ASCII-to-binary and binary-to-ASCII conversions." -msgstr "" -"Module secondaire contenant les conversions ASCII vers binaire et binaire " -"vers ASCII." - -#: library/base64.rst:517 -msgid "" -":rfc:`1521` - MIME (Multipurpose Internet Mail Extensions) Part One: " -"Mechanisms for Specifying and Describing the Format of Internet Message " -"Bodies" -msgstr "" -":rfc:`1521` — MIME (*Multipurpose Internet Mail Extensions*) *Part One: " -"Mechanisms for Specifying and Describing the Format of Internet Message " -"Bodies*" - -#: library/base64.rst:518 -msgid "" -"Section 5.2, \"Base64 Content-Transfer-Encoding,\" provides the definition " -"of the base64 encoding." -msgstr "" -"La Section 5.2, \"*Base64 Content-Transfer-Encoding*\", donne la définition " -"de l'encodage base64." - -#: library/base64.rst:521 -msgid "" -"`ISO 32000-2 Portable document format - Part 2: PDF 2.0 `_" -msgstr "" - -#: library/base64.rst:522 -msgid "" -"Section 7.4.3, \"ASCII85Decode Filter,\" provides the definition of the " -"Ascii85 encoding used in PDF and PostScript, including the output character " -"set and the details of data length preservation using zero-padding and " -"partial output groups." -msgstr "" - -#: library/base64.rst:527 -msgid "`ZeroMQ RFC 32/Z85 `_" -msgstr "" - -#: library/base64.rst:528 -msgid "" -"The \"Formal Specification\" section provides the character set used in Z85." -msgstr "" - -#, fuzzy -#~ msgid "" -#~ "*wrapcol* controls whether the output should have newline (``b'\\n'``) " -#~ "characters added to it. If this is non-zero, each output line will be at " -#~ "most this many characters long, excluding the trailing newline." -#~ msgstr "" -#~ "*wrapcol* contrôle l'ajout de caractères de saut de ligne (``b'\\n'``) à " -#~ "la sortie. Chaque ligne de sortie contient au maximum *wrapcol* " -#~ "caractères si cette option diffère de zéro." - -#~ msgid "" -#~ "*pad* controls whether the input is padded to a multiple of 4 before " -#~ "encoding. Note that the ``btoa`` implementation always pads." -#~ msgstr "" -#~ "*pad* spécifie l'ajout de caractères de remplissage (*padding* en " -#~ "anglais) à l'entrée jusqu'à ce que sa longueur soit un multiple de 4 " -#~ "avant encodage. Notez que l'implémentation ``btoa`` effectue " -#~ "systématiquement ce remplissage." - -#~ msgid "" -#~ "*adobe* controls whether the encoded byte sequence is framed with ``<~`` " -#~ "and ``~>``, which is used by the Adobe implementation." -#~ msgstr "" -#~ "*adobe* contrôle si oui ou non la séquence encodée d'octets est encadrée " -#~ "par ``<~`` et ``~>`` comme utilisé dans l'implémentation Adobe." - -#~ msgid "" -#~ "*adobe* controls whether the input sequence is in Adobe Ascii85 format " -#~ "(i.e. is framed with <~ and ~>)." -#~ msgstr "" -#~ "*adobe* indique si la séquence d'entrée utilise le format Adobe Ascii85 " -#~ "(c'est-à-dire utilise l'encadrement par ``<~`` et ``~>``)." - -#~ msgid "" -#~ "If *pad* is true, the input is padded with ``b'\\0'`` so its length is a " -#~ "multiple of 4 bytes before encoding." -#~ msgstr "" -#~ "Si *pad* est vrai, des caractères de remplissage ``b'\\0'`` (*padding* en " -#~ "anglais) sont ajoutés à l'entrée jusqu'à ce que sa longueur soit un " -#~ "multiple de 4 octets avant encodage." - -#~ msgid "" -#~ "Decode the base85-encoded :term:`bytes-like object` or ASCII string *b* " -#~ "and return the decoded :class:`bytes`. Padding is implicitly removed, if " -#~ "necessary." -#~ msgstr "" -#~ "Décode un :term:`objet octet-compatible ` ou une " -#~ "chaîne de caractères ASCII *b* encodé en base85 et renvoie " -#~ "les :class:`bytes` décodés. Les caractères de remplissage sont " -#~ "implicitement retirés si nécessaire." - -#, fuzzy -#~ msgid "" -#~ "Encode the :term:`bytes-like object` *s* using Z85 (as used in ZeroMQ) " -#~ "and return the encoded :class:`bytes`. See `Z85 specification `_ for more information." -#~ msgstr "" -#~ "Encode un :term:`objet byte-compatible ` *s* en " -#~ "utilisant l'algorithme base85 (tel qu'utilisé par exemple par le " -#~ "programme *git-diff* sur des données binaires) et renvoie " -#~ "les :class:`bytes` encodés." - -#, fuzzy -#~ msgid "" -#~ "Decode the Z85-encoded :term:`bytes-like object` or ASCII string *s* and " -#~ "return the decoded :class:`bytes`. See `Z85 specification `_ for more information." -#~ msgstr "" -#~ "Décode un :term:`objet octet-compatible ` ou une " -#~ "chaîne de caractères ASCII *b* encodé en base85 et renvoie " -#~ "les :class:`bytes` décodés. Les caractères de remplissage sont " -#~ "implicitement retirés si nécessaire." - -#~ msgid "The modern interface provides:" -#~ msgstr "L'interface moderne propose :" - -#~ msgid "base64" -#~ msgstr "base64" - -#~ msgid "Deprecated alias of :func:`decodebytes`." -#~ msgstr "Alias obsolète de :func:`decodebytes`." - -#~ msgid "Deprecated alias of :func:`encodebytes`." -#~ msgstr "Alias obsolète de :func:`encodebytes`." diff --git a/library/bdb.po b/library/bdb.po deleted file mode 100644 index f6e3cf58d5..0000000000 --- a/library/bdb.po +++ /dev/null @@ -1,666 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: library/bdb.rst:2 -#, fuzzy -msgid ":mod:`!bdb` --- Debugger framework" -msgstr ":mod:`bdb` — Framework de débogage" - -#: library/bdb.rst:7 -msgid "**Source code:** :source:`Lib/bdb.py`" -msgstr "**Code source :** :source:`Lib/bdb.py`" - -#: library/bdb.rst:11 -msgid "" -"The :mod:`!bdb` module handles basic debugger functions, like setting " -"breakpoints or managing execution via the debugger." -msgstr "" - -#: library/bdb.rst:14 -msgid "The following exception is defined:" -msgstr "L'exception suivante est définie :" - -#: library/bdb.rst:18 -msgid "Exception raised by the :class:`Bdb` class for quitting the debugger." -msgstr "" - -#: library/bdb.rst:21 -#, fuzzy -msgid "The :mod:`!bdb` module also defines two classes:" -msgstr "Le module :mod:`bdb` définis deux classes :" - -#: library/bdb.rst:25 -msgid "" -"This class implements temporary breakpoints, ignore counts, disabling and " -"(re-)enabling, and conditionals." -msgstr "" - -#: library/bdb.rst:28 -msgid "" -"Breakpoints are indexed by number through a list called :attr:`bpbynumber` " -"and by ``(file, line)`` pairs through :attr:`bplist`. The former points to " -"a single instance of class :class:`Breakpoint`. The latter points to a list " -"of such instances since there may be more than one breakpoint per line." -msgstr "" - -#: library/bdb.rst:33 -msgid "" -"When creating a breakpoint, its associated :attr:`file name ` should " -"be in canonical form. If a :attr:`funcname` is defined, a " -"breakpoint :attr:`hit ` will be counted when the first line of that " -"function is executed. A :attr:`conditional ` breakpoint always counts " -"a :attr:`hit `." -msgstr "" - -#: library/bdb.rst:39 -msgid ":class:`Breakpoint` instances have the following methods:" -msgstr "" - -#: library/bdb.rst:43 -msgid "" -"Delete the breakpoint from the list associated to a file/line. If it is the " -"last breakpoint in that position, it also deletes the entry for the file/" -"line." -msgstr "" - -#: library/bdb.rst:50 -msgid "Mark the breakpoint as enabled." -msgstr "Active le point d'arrêt." - -#: library/bdb.rst:55 -msgid "Mark the breakpoint as disabled." -msgstr "Désactive le point d'arrêt." - -#: library/bdb.rst:60 -msgid "" -"Return a string with all the information about the breakpoint, nicely " -"formatted:" -msgstr "" - -#: library/bdb.rst:63 -#, fuzzy -msgid "Breakpoint number." -msgstr "Le numéro du point d'arrêt." - -#: library/bdb.rst:64 -msgid "Temporary status (del or keep)." -msgstr "" - -#: library/bdb.rst:65 -msgid "File/line position." -msgstr "" - -#: library/bdb.rst:66 -msgid "Break condition." -msgstr "" - -#: library/bdb.rst:67 -msgid "Number of times to ignore." -msgstr "" - -#: library/bdb.rst:68 -msgid "Number of times hit." -msgstr "" - -#: library/bdb.rst:74 -msgid "" -"Print the output of :meth:`bpformat` to the file *out*, or if it is " -"``None``, to standard output." -msgstr "" - -#: library/bdb.rst:77 -msgid ":class:`Breakpoint` instances have the following attributes:" -msgstr "" - -#: library/bdb.rst:81 -msgid "File name of the :class:`Breakpoint`." -msgstr "" - -#: library/bdb.rst:85 -msgid "Line number of the :class:`Breakpoint` within :attr:`file`." -msgstr "" - -#: library/bdb.rst:89 -#, fuzzy -msgid "``True`` if a :class:`Breakpoint` at (file, line) is temporary." -msgstr "Active le point d'arrêt." - -#: library/bdb.rst:93 -msgid "Condition for evaluating a :class:`Breakpoint` at (file, line)." -msgstr "" - -#: library/bdb.rst:97 -msgid "" -"Function name that defines whether a :class:`Breakpoint` is hit upon " -"entering the function." -msgstr "" - -#: library/bdb.rst:102 -#, fuzzy -msgid "``True`` if :class:`Breakpoint` is enabled." -msgstr "Active le point d'arrêt." - -#: library/bdb.rst:106 -msgid "Numeric index for a single instance of a :class:`Breakpoint`." -msgstr "" - -#: library/bdb.rst:110 -msgid "" -"Dictionary of :class:`Breakpoint` instances indexed by " -"(:attr:`file`, :attr:`line`) tuples." -msgstr "" - -#: library/bdb.rst:115 -msgid "Number of times to ignore a :class:`Breakpoint`." -msgstr "" - -#: library/bdb.rst:119 -msgid "Count of the number of times a :class:`Breakpoint` has been hit." -msgstr "" - -#: library/bdb.rst:123 -msgid "The :class:`Bdb` class acts as a generic Python debugger base class." -msgstr "" - -#: library/bdb.rst:125 -msgid "" -"This class takes care of the details of the trace facility; a derived class " -"should implement user interaction. The standard debugger class " -"(:class:`pdb.Pdb`) is an example." -msgstr "" - -#: library/bdb.rst:129 -msgid "" -"The *skip* argument, if given, must be an iterable of glob-style module name " -"patterns. The debugger will not step into frames that originate in a module " -"that matches one of these patterns. Whether a frame is considered to " -"originate in a certain module is determined by the ``__name__`` in the frame " -"globals." -msgstr "" - -#: library/bdb.rst:135 -msgid "" -"The *backend* argument specifies the backend to use for :class:`Bdb`. It can " -"be either ``'settrace'`` or ``'monitoring'``. ``'settrace'`` " -"uses :func:`sys.settrace` which has the best backward compatibility. The " -"``'monitoring'`` backend uses the new :mod:`sys.monitoring` that was " -"introduced in Python 3.12, which can be much more efficient because it can " -"disable unused events. We are trying to keep the exact interfaces for both " -"backends, but there are some differences. The debugger developers are " -"encouraged to use the ``'monitoring'`` backend to achieve better performance." -msgstr "" - -#: library/bdb.rst:145 -#, fuzzy -msgid "Added the *skip* parameter." -msgstr "L'argument *skip*." - -#: library/bdb.rst:148 -#, fuzzy -msgid "Added the *backend* parameter." -msgstr "L'argument *skip*." - -#: library/bdb.rst:151 -msgid "" -"The following methods of :class:`Bdb` normally don't need to be overridden." -msgstr "" - -#: library/bdb.rst:155 -msgid "Return canonical form of *filename*." -msgstr "" - -#: library/bdb.rst:157 -msgid "" -"For real file names, the canonical form is an operating-system-" -"dependent, :func:`case-normalized ` :func:`absolute path " -"`. A *filename* with angle brackets, such as " -"``\"\"`` generated in interactive mode, is returned unchanged." -msgstr "" - -#: library/bdb.rst:164 -msgid "" -"Start tracing. For ``'settrace'`` backend, this method is equivalent to " -"``sys.settrace(self.trace_dispatch)``" -msgstr "" - -#: library/bdb.rst:171 -msgid "" -"Stop tracing. For ``'settrace'`` backend, this method is equivalent to " -"``sys.settrace(None)``" -msgstr "" - -#: library/bdb.rst:178 -msgid "" -"Set the :attr:`!botframe`, :attr:`!stopframe`, :attr:`!returnframe` " -"and :attr:`quitting ` attributes with values ready to start " -"debugging." -msgstr "" - -#: library/bdb.rst:183 -msgid "" -"This function is installed as the trace function of debugged frames. Its " -"return value is the new trace function (in most cases, that is, itself)." -msgstr "" - -#: library/bdb.rst:186 -msgid "" -"The default implementation decides how to dispatch a frame, depending on the " -"type of event (passed as a string) that is about to be executed. *event* can " -"be one of the following:" -msgstr "" - -#: library/bdb.rst:190 -msgid "``\"line\"``: A new line of code is going to be executed." -msgstr "" - -#: library/bdb.rst:191 -msgid "" -"``\"call\"``: A function is about to be called, or another code block " -"entered." -msgstr "" - -#: library/bdb.rst:193 -msgid "``\"return\"``: A function or other code block is about to return." -msgstr "" - -#: library/bdb.rst:194 -msgid "``\"exception\"``: An exception has occurred." -msgstr "``\"exception\"`` : Une exception est survenue." - -#: library/bdb.rst:196 -msgid "For all the events, specialized functions (see below) are called." -msgstr "" - -#: library/bdb.rst:198 -msgid "The *arg* parameter depends on the previous event." -msgstr "Le paramètre *arg* dépend de l'événement précédent." - -#: library/bdb.rst:200 -msgid "" -"See the documentation for :func:`sys.settrace` for more information on the " -"trace function. For more information on code and frame objects, refer " -"to :ref:`types`." -msgstr "" - -#: library/bdb.rst:206 -msgid "" -"If the debugger should stop on the current line, invoke " -"the :meth:`user_line` method (which should be overridden in subclasses). " -"Raise a :exc:`BdbQuit` exception if the :attr:`quitting ` " -"flag is set (which can be set from :meth:`user_line`). Return a reference " -"to the :meth:`trace_dispatch` method for further tracing in that scope." -msgstr "" - -#: library/bdb.rst:214 -msgid "" -"If the debugger should stop on this function call, invoke " -"the :meth:`user_call` method (which should be overridden in subclasses). " -"Raise a :exc:`BdbQuit` exception if the :attr:`quitting ` " -"flag is set (which can be set from :meth:`user_call`). Return a reference " -"to the :meth:`trace_dispatch` method for further tracing in that scope." -msgstr "" - -#: library/bdb.rst:222 -msgid "" -"If the debugger should stop on this function return, invoke " -"the :meth:`user_return` method (which should be overridden in subclasses). " -"Raise a :exc:`BdbQuit` exception if the :attr:`quitting ` " -"flag is set (which can be set from :meth:`user_return`). Return a reference " -"to the :meth:`trace_dispatch` method for further tracing in that scope." -msgstr "" - -#: library/bdb.rst:230 -msgid "" -"If the debugger should stop at this exception, invokes " -"the :meth:`user_exception` method (which should be overridden in " -"subclasses). Raise a :exc:`BdbQuit` exception if the :attr:`quitting " -"` flag is set (which can be set from :meth:`user_exception`). " -"Return a reference to the :meth:`trace_dispatch` method for further tracing " -"in that scope." -msgstr "" - -#: library/bdb.rst:236 -msgid "" -"Normally derived classes don't override the following methods, but they may " -"if they want to redefine the definition of stopping and breakpoints." -msgstr "" - -#: library/bdb.rst:241 -msgid "Return ``True`` if *module_name* matches any skip pattern." -msgstr "" - -#: library/bdb.rst:245 -msgid "Return ``True`` if *frame* is below the starting frame in the stack." -msgstr "" - -#: library/bdb.rst:249 -msgid "Return ``True`` if there is an effective breakpoint for this line." -msgstr "" - -#: library/bdb.rst:251 -msgid "" -"Check whether a line or function breakpoint exists and is in effect. Delete " -"temporary breakpoints based on information from :func:`effective`." -msgstr "" - -#: library/bdb.rst:256 -msgid "Return ``True`` if any breakpoint exists for *frame*'s filename." -msgstr "" - -#: library/bdb.rst:258 -msgid "" -"Derived classes should override these methods to gain control over debugger " -"operation." -msgstr "" - -#: library/bdb.rst:263 -msgid "" -"Called from :meth:`dispatch_call` if a break might stop inside the called " -"function." -msgstr "" - -#: library/bdb.rst:266 -msgid "" -"*argument_list* is not used anymore and will always be ``None``. The " -"argument is kept for backwards compatibility." -msgstr "" - -#: library/bdb.rst:271 -msgid "" -"Called from :meth:`dispatch_line` when either :meth:`stop_here` " -"or :meth:`break_here` returns ``True``." -msgstr "" - -#: library/bdb.rst:276 -msgid "" -"Called from :meth:`dispatch_return` when :meth:`stop_here` returns ``True``." -msgstr "" - -#: library/bdb.rst:280 -msgid "" -"Called from :meth:`dispatch_exception` when :meth:`stop_here` returns " -"``True``." -msgstr "" - -#: library/bdb.rst:285 -msgid "Handle how a breakpoint must be removed when it is a temporary one." -msgstr "" - -#: library/bdb.rst:287 -msgid "This method must be implemented by derived classes." -msgstr "" - -#: library/bdb.rst:290 -msgid "" -"Derived classes and clients can call the following methods to affect the " -"stepping state." -msgstr "" - -#: library/bdb.rst:295 -msgid "Stop after one line of code." -msgstr "Arrête après une ligne de code." - -#: library/bdb.rst:299 -msgid "Stop on the next line in or below the given frame." -msgstr "" - -#: library/bdb.rst:303 -msgid "Stop when returning from the given frame." -msgstr "" - -#: library/bdb.rst:307 -msgid "" -"Stop when the line with the *lineno* greater than the current one is reached " -"or when returning from current frame." -msgstr "" - -#: library/bdb.rst:312 -msgid "" -"Start debugging from *frame*. If *frame* is not specified, debugging starts " -"from caller's frame." -msgstr "" - -#: library/bdb.rst:315 -msgid "" -":func:`set_trace` will enter the debugger immediately, rather than on the " -"next line of code to be executed." -msgstr "" - -#: library/bdb.rst:321 -msgid "" -"Stop only at breakpoints or when finished. If there are no breakpoints, set " -"the system trace function to ``None``." -msgstr "" - -#: library/bdb.rst:328 -msgid "" -"Set the :attr:`!quitting` attribute to ``True``. This raises :exc:`BdbQuit` " -"in the next call to one of the :meth:`!dispatch_\\*` methods." -msgstr "" - -#: library/bdb.rst:332 -msgid "" -"Derived classes and clients can call the following methods to manipulate " -"breakpoints. These methods return a string containing an error message if " -"something went wrong, or ``None`` if all is well." -msgstr "" - -#: library/bdb.rst:338 -msgid "" -"Set a new breakpoint. If the *lineno* line doesn't exist for the *filename* " -"passed as argument, return an error message. The *filename* should be in " -"canonical form, as described in the :meth:`canonic` method." -msgstr "" - -#: library/bdb.rst:344 -msgid "" -"Delete the breakpoints in *filename* and *lineno*. If none were set, return " -"an error message." -msgstr "" - -#: library/bdb.rst:349 -msgid "" -"Delete the breakpoint which has the index *arg* in " -"the :attr:`Breakpoint.bpbynumber`. If *arg* is not numeric or out of range, " -"return an error message." -msgstr "" - -#: library/bdb.rst:355 -msgid "" -"Delete all breakpoints in *filename*. If none were set, return an error " -"message." -msgstr "" - -#: library/bdb.rst:360 -msgid "" -"Delete all existing breakpoints. If none were set, return an error message." -msgstr "" - -#: library/bdb.rst:365 -msgid "" -"Return a breakpoint specified by the given number. If *arg* is a string, it " -"will be converted to a number. If *arg* is a non-numeric string, if the " -"given breakpoint never existed or has been deleted, a :exc:`ValueError` is " -"raised." -msgstr "" - -#: library/bdb.rst:374 -msgid "Return ``True`` if there is a breakpoint for *lineno* in *filename*." -msgstr "" - -#: library/bdb.rst:378 -msgid "" -"Return all breakpoints for *lineno* in *filename*, or an empty list if none " -"are set." -msgstr "" - -#: library/bdb.rst:383 -msgid "Return all breakpoints in *filename*, or an empty list if none are set." -msgstr "" - -#: library/bdb.rst:387 -msgid "Return all breakpoints that are set." -msgstr "Donne tous les points d'arrêt définis." - -#: library/bdb.rst:390 -msgid "" -"Derived classes and clients can call the following methods to disable and " -"restart events to achieve better performance. These methods only work when " -"using the ``'monitoring'`` backend." -msgstr "" - -#: library/bdb.rst:396 -msgid "" -"Disable the current event until the next time :func:`restart_events` is " -"called. This is helpful when the debugger is not interested in the current " -"line." -msgstr "" - -#: library/bdb.rst:404 -msgid "" -"Restart all the disabled events. This function is automatically called in " -"``dispatch_*`` methods after ``user_*`` methods are called. If the " -"``dispatch_*`` methods are not overridden, the disabled events will be " -"restarted after each user interaction." -msgstr "" - -#: library/bdb.rst:412 -msgid "" -"Derived classes and clients can call the following methods to get a data " -"structure representing a stack trace." -msgstr "" - -#: library/bdb.rst:417 -msgid "Return a list of (frame, lineno) tuples in a stack trace, and a size." -msgstr "" - -#: library/bdb.rst:419 -msgid "" -"The most recently called frame is last in the list. The size is the number " -"of frames below the frame where the debugger was invoked." -msgstr "" - -#: library/bdb.rst:424 -msgid "" -"Return a string with information about a stack entry, which is a ``(frame, " -"lineno)`` tuple. The return string contains:" -msgstr "" - -#: library/bdb.rst:427 -msgid "The canonical filename which contains the frame." -msgstr "" - -#: library/bdb.rst:428 -#, fuzzy -msgid "The function name or ``\"\"``." -msgstr "Le nom de la fonction, ou ``\"\"``." - -#: library/bdb.rst:429 -msgid "The input arguments." -msgstr "Les arguments donnés." - -#: library/bdb.rst:430 -msgid "The return value." -msgstr "Le résultat." - -#: library/bdb.rst:431 -msgid "The line of code (if it exists)." -msgstr "La ligne de code (si elle existe)." - -#: library/bdb.rst:434 -msgid "" -"The following two methods can be called by clients to use a debugger to " -"debug a :term:`statement`, given as a string." -msgstr "" - -#: library/bdb.rst:439 -msgid "" -"Debug a statement executed via the :func:`exec` function. *globals* " -"defaults to :attr:`!__main__.__dict__`, *locals* defaults to *globals*." -msgstr "" - -#: library/bdb.rst:444 -msgid "" -"Debug an expression executed via the :func:`eval` function. *globals* and " -"*locals* have the same meaning as in :meth:`run`." -msgstr "" - -#: library/bdb.rst:449 -msgid "For backwards compatibility. Calls the :meth:`run` method." -msgstr "" - -#: library/bdb.rst:453 -msgid "Debug a single function call, and return its result." -msgstr "" - -#: library/bdb.rst:456 -msgid "Finally, the module defines the following functions:" -msgstr "" - -#: library/bdb.rst:460 -msgid "" -"Return ``True`` if we should break here, depending on the way " -"the :class:`Breakpoint` *b* was set." -msgstr "" - -#: library/bdb.rst:463 -msgid "" -"If it was set via line number, it checks if :attr:`b.line " -"` is the same as the one in *frame*. If the breakpoint " -"was set via :attr:`function name `, we have to " -"check we are in the right *frame* (the right function) and if we are on its " -"first executable line." -msgstr "" - -#: library/bdb.rst:472 -msgid "" -"Return ``(active breakpoint, delete temporary flag)`` or ``(None, None)`` as " -"the breakpoint to act upon." -msgstr "" - -#: library/bdb.rst:475 -msgid "" -"The *active breakpoint* is the first entry in :attr:`bplist " -"` for the (:attr:`file " -"`, :attr:`line `) (which must " -"exist) that is :attr:`enabled `, for " -"which :func:`checkfuncname` is true, and that has neither a " -"false :attr:`condition ` nor positive :attr:`ignore " -"` count. The *flag*, meaning that a temporary " -"breakpoint should be deleted, is ``False`` only when the :attr:`cond " -"` cannot be evaluated (in which case, :attr:`ignore " -"` count is ignored)." -msgstr "" - -#: library/bdb.rst:486 -msgid "If no such entry exists, then ``(None, None)`` is returned." -msgstr "" - -#: library/bdb.rst:491 -msgid "Start debugging with a :class:`Bdb` instance from caller's frame." -msgstr "" - -#~ msgid "``\"c_call\"``: A C function is about to be called." -#~ msgstr "``\"c_call\"`` : Une fonction C est sur le point d'être appelée." - -#~ msgid "``\"c_return\"``: A C function has returned." -#~ msgstr "``\"c_return\"`` : Une fonction C s'est terminée." - -#~ msgid "If it is temporary or not." -#~ msgstr "S'il est temporaire ou non." - -#~ msgid "Delete all existing breakpoints." -#~ msgstr "Supprime tous les points d'arrêt définis." diff --git a/library/binary.po b/library/binary.po deleted file mode 100644 index ca729c2ba5..0000000000 --- a/library/binary.po +++ /dev/null @@ -1,49 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2017-11-07 23:13+0100\n" -"Last-Translator: FULL NAME \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" - -#: library/binary.rst:5 -msgid "Binary Data Services" -msgstr "Services autour des Données Binaires" - -#: library/binary.rst:7 -msgid "" -"The modules described in this chapter provide some basic services operations " -"for manipulation of binary data. Other operations on binary data, " -"specifically in relation to file formats and network protocols, are " -"described in the relevant sections." -msgstr "" -"Les modules décrits dans ce chapitre fournissent des services élémentaires " -"pour manipuler des données binaires. Les autres manipulations sur les " -"données binaires, particulièrement celles en relation avec les formats de " -"fichier et les protocoles réseaux sont décrits dans leurs propres chapitres." - -#: library/binary.rst:12 -msgid "" -"Some libraries described under :ref:`textservices` also work with either " -"ASCII-compatible binary formats (for example, :mod:`re`) or all binary data " -"(for example, :mod:`difflib`)." -msgstr "" -"Certaines bibliothèques décrites dans :ref:`textservices` fonctionnent aussi " -"avec soit des formats binaires compatibles ASCII (comme le module :mod:`re`) " -"soit toutes les données binaires (comme le module :mod:`difflib`)." - -#: library/binary.rst:16 -msgid "" -"In addition, see the documentation for Python's built-in binary data types " -"in :ref:`binaryseq`." -msgstr "" -"En complément, consultez la documentation des types natifs binaires " -"dans :ref:`binaryseq`." diff --git a/library/binascii.po b/library/binascii.po deleted file mode 100644 index b49d8df1bd..0000000000 --- a/library/binascii.po +++ /dev/null @@ -1,708 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2020-05-10 13:40+0200\n" -"Last-Translator: ZepmanBC \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" - -#: library/binascii.rst:2 -#, fuzzy -msgid ":mod:`!binascii` --- Convert between binary and ASCII" -msgstr ":mod:`binascii` — Conversion entre binaire et ASCII" - -#: library/binascii.rst:13 -#, fuzzy -msgid "" -"The :mod:`!binascii` module contains a number of methods to convert between " -"binary and various ASCII-encoded binary representations. Normally, you will " -"not use these functions directly but use wrapper modules like :mod:`base64` " -"instead. The :mod:`!binascii` module contains low-level functions written in " -"C for greater speed that are used by the higher-level modules." -msgstr "" -"Le module :mod:`binascii` contient des méthodes pour convertir entre binaire " -"et diverses représentations binaires encodées en ASCII. Normalement, vous " -"n’allez pas utiliser ces fonctions directement mais vous utiliserez des " -"modules d’encapsulage comme :mod:`uu`, :mod:`base64`, or :mod:`binhex` à la " -"place. Le module :mod:`binascii` contient des fonctions bas-niveau écrites " -"en C plus rapides qui sont utilisées par des modules haut-niveau." - -#: library/binascii.rst:22 -msgid "" -"``a2b_*`` functions accept Unicode strings containing only ASCII characters. " -"Other functions only accept :term:`bytes-like objects ` " -"(such as :class:`bytes`, :class:`bytearray` and other objects that support " -"the buffer protocol)." -msgstr "" -"La fonction ``a2b_*`` accepte des chaînes de caractères contenant seulement " -"des caractères ASCII. D’autres fonctions acceptent seulement des " -"objets :term:`bytes et similaire ` (tel " -"que :class:`bytes`, :class:`bytearray` et autres objets qui supportent le " -"protocole tampon)." - -#: library/binascii.rst:27 -msgid "ASCII-only unicode strings are now accepted by the ``a2b_*`` functions." -msgstr "" -"Les chaines de caractères *unicode* seulement composées de caractères ASCII " -"sont désormais acceptées par les fonctions ``a2b_*``." - -#: library/binascii.rst:31 -#, fuzzy -msgid "The :mod:`!binascii` module defines the following functions:" -msgstr "Le module :mod:`binascii` définit les fonctions suivantes :" - -#: library/binascii.rst:36 -msgid "" -"Convert a single line of uuencoded data back to binary and return the binary " -"data. Lines normally contain 45 (binary) bytes, except for the last line. " -"Line data may be followed by whitespace." -msgstr "" -"Convertit une seule ligne de donnée *uuencoded* en binaire et renvoie la " -"donnée binaire. Les lignes contiennent normalement 45 octets (binaire), sauf " -"pour la dernière ligne. Il se peut que la ligne de donnée soit suivie d’un " -"espace blanc." - -#: library/binascii.rst:43 -msgid "" -"Convert binary data to a line of ASCII characters, the return value is the " -"converted line, including a newline char. The length of *data* should be at " -"most 45. If *backtick* is true, zeros are represented by ``'`'`` instead of " -"spaces." -msgstr "" -"Convertit les données binaires en une ligne de caractères ASCII, la valeur " -"renvoyée est la ligne convertie incluant un caractère de nouvelle ligne. La " -"longueur de *data* doit être au maximum de 45. Si *backtick* est vraie, les " -"zéros sont représentés par ``'`'`` plutôt que par des espaces." - -#: library/binascii.rst:47 -msgid "Added the *backtick* parameter." -msgstr "Ajout du paramètre *backtick*." - -#: library/binascii.rst:54 -msgid "" -"Convert a block of base64 data back to binary and return the binary data. " -"More than one line may be passed at a time." -msgstr "" -"Convertit un bloc de donnée en *base64* en binaire et renvoie la donnée " -"binaire. Plus d’une ligne peut être passé à la fois." - -#: library/binascii.rst:57 -msgid "" -"Optional *alphabet* must be a :class:`bytes` object of length 64 which " -"specifies an alternative alphabet." -msgstr "" - -#: library/binascii.rst:60 -msgid "" -"If *padded* is true, the last group of 4 base 64 alphabet characters must be " -"padded with the '=' character. If *padded* is false, padding is neither " -"required nor recognized: the '=' character is not treated as padding but as " -"a non-alphabet character, which means it is silently discarded when " -"*strict_mode* is false, or causes an :exc:`~binascii.Error` when " -"*strict_mode* is true unless b'=' is included in *ignorechars*." -msgstr "" - -#: library/binascii.rst:68 -msgid "" -"If *ignorechars* is specified, it should be a :term:`bytes-like object` " -"containing characters to ignore from the input when *strict_mode* is true. " -"If *ignorechars* contains the pad character ``'='``, the pad characters " -"presented before the end of the encoded data and the excess pad characters " -"will be ignored. The default value of *strict_mode* is ``True`` if " -"*ignorechars* is specified, ``False`` otherwise." -msgstr "" - -#: library/binascii.rst:76 -msgid "" -"If *strict_mode* is true, only valid base64 data will be converted. Invalid " -"base64 data will raise :exc:`binascii.Error`." -msgstr "" - -#: library/binascii.rst:79 -msgid "Valid base64:" -msgstr "" - -#: library/binascii.rst:81 -msgid "Conforms to :rfc:`4648`." -msgstr "" - -#: library/binascii.rst:82 -msgid "Contains only characters from the base64 alphabet." -msgstr "" - -#: library/binascii.rst:83 -msgid "" -"Contains no excess data after padding (including excess padding, newlines, " -"etc.)." -msgstr "" - -#: library/binascii.rst:84 -msgid "Does not start with a padding." -msgstr "" - -#: library/binascii.rst:86 -msgid "" -"If *canonical* is true, non-zero padding bits in the last group are rejected " -"with :exc:`binascii.Error`, enforcing canonical encoding as defined " -"in :rfc:`4648` section 3.5. This check is independent of *strict_mode*." -msgstr "" - -#: library/binascii.rst:90 -#, fuzzy -msgid "Added the *strict_mode* parameter." -msgstr "Ajout du paramètre *backtick*." - -#: library/binascii.rst:93 -msgid "" -"Added the *alphabet*, *canonical*, *ignorechars*, and *padded* parameters." -msgstr "" - -#: library/binascii.rst:99 -msgid "" -"Convert binary data to a line(s) of ASCII characters in base64 coding, as " -"specified in :rfc:`4648`." -msgstr "" - -#: library/binascii.rst:102 -msgid "" -"If *padded* is true (default), pad the encoded data with the '=' character " -"to a size multiple of 4. If *padded* is false, do not add the pad characters." -msgstr "" - -#: library/binascii.rst:166 library/binascii.rst:280 -msgid "" -"If *wrapcol* is non-zero, insert a newline (``b'\\n'``) character after at " -"most every *wrapcol* characters. If *wrapcol* is zero (default), do not " -"insert any newlines." -msgstr "" - -#: library/binascii.rst:110 -msgid "" -"If *newline* is true (default), a newline character will be added at the end " -"of the output." -msgstr "" - -#: library/binascii.rst:113 -msgid "Added the *newline* parameter." -msgstr "Ajout du paramètre *newline*." - -#: library/binascii.rst:116 -#, fuzzy -msgid "Added the *alphabet*, *padded* and *wrapcol* parameters." -msgstr "Ajout du paramètre *newline*." - -#: library/binascii.rst:122 -#, fuzzy -msgid "Convert Ascii85 data back to binary and return the binary data." -msgstr "" -"Convertit un bloc de donnée en *base64* en binaire et renvoie la donnée " -"binaire. Plus d’une ligne peut être passé à la fois." - -#: library/binascii.rst:124 -msgid "" -"Valid Ascii85 data contains characters from the Ascii85 alphabet in groups " -"of five (except for the final group, which may have from two to five " -"characters). Each group encodes 32 bits of binary data in the range from " -"``0`` to ``2 ** 32 - 1``, inclusive. The special character ``z`` is accepted " -"as a short form of the group ``!!!!!``, which encodes four consecutive null " -"bytes. A single-character final group is always rejected as an encoding " -"violation." -msgstr "" - -#: library/binascii.rst:132 -msgid "" -"*foldspaces* is a flag that specifies whether the 'y' short sequence should " -"be accepted as shorthand for 4 consecutive spaces (ASCII 0x20). This feature " -"is not supported by the \"standard\" Ascii85 encoding." -msgstr "" - -#: library/binascii.rst:136 -msgid "" -"*adobe* controls whether the encoded byte sequence is framed with ``<~`` and " -"``~>``, as in a PostScript base-85 string literal. If *adobe* is true, a " -"leading ``<~`` is optionally accepted, while a trailing ``~>`` is " -"*required*, and :exc:`binascii.Error` is raised if it is not found." -msgstr "" - -#: library/binascii.rst:142 -msgid "" -"*ignorechars* should be a :term:`bytes-like object` containing characters to " -"ignore from the input. This should only contain whitespace characters." -msgstr "" - -#: library/binascii.rst:146 -msgid "" -"If *canonical* is true, non-canonical encodings are rejected " -"with :exc:`binascii.Error`. Here \"canonical\" means the encoding " -"that :func:`b2a_ascii85` would produce: the ``z`` abbreviation must be used " -"for all-zero groups (rather than ``!!!!!``), and partial final groups must " -"use the same padding digits as the encoder." -msgstr "" - -#: library/binascii.rst:152 -msgid "Invalid Ascii85 data will raise :exc:`binascii.Error`." -msgstr "" - -#: library/binascii.rst:159 -#, fuzzy -msgid "" -"Convert binary data to a formatted sequence of ASCII characters in Ascii85 " -"coding. The return value is the converted data." -msgstr "" -"Convertit les données binaires en une ligne de caractères ASCII en codage " -"base 64. La valeur de renvoyée et la ligne convertie, incluant un caractère " -"de nouvelle ligne si *newline* est vraie. La sortie de cette fonction se " -"conforme à :rfc:`3548`." - -#: library/binascii.rst:162 -msgid "" -"*foldspaces* is an optional flag that uses the special short sequence 'y' " -"instead of 4 consecutive spaces (ASCII 0x20) as supported by 'btoa'. This " -"feature is not supported by the \"standard\" Ascii85 encoding." -msgstr "" - -#: library/binascii.rst:170 -msgid "" -"If *pad* is true, the zero-padding applied to the end of the input is fully " -"retained in the output encoding, as done by ``btoa``, producing an exact " -"multiple of 5 bytes of output. This is not part of the standard encoding " -"used in PDF, as it does not preserve the length of the data." -msgstr "" - -#: library/binascii.rst:176 -msgid "" -"*adobe* controls whether the encoded byte sequence is framed with ``<~`` and " -"``~>``, as in a PostScript base-85 string literal. Note that while " -"ASCII85Decode streams in PDF documents *must* be terminated with ``~>``, " -"they *must not* use a leading ``<~``." -msgstr "" - -#: library/binascii.rst:186 -#, fuzzy -msgid "" -"Convert Base85 data back to binary and return the binary data. More than one " -"line may be passed at a time." -msgstr "" -"Convertit un bloc de donnée en *base64* en binaire et renvoie la donnée " -"binaire. Plus d’une ligne peut être passé à la fois." - -#: library/binascii.rst:189 -msgid "" -"Valid Base85 data contains characters from the Base85 alphabet in groups of " -"five (except for the final group, which may have from two to five " -"characters). Each group encodes 32 bits of binary data in the range from " -"``0`` to ``2 ** 32 - 1``, inclusive. A single-character final group is " -"always rejected as an encoding violation." -msgstr "" - -#: library/binascii.rst:195 -msgid "" -"Optional *alphabet* must be a :class:`bytes` object of length 85 which " -"specifies an alternative alphabet." -msgstr "" - -#: library/binascii.rst:367 -msgid "" -"*ignorechars* should be a :term:`bytes-like object` containing characters to " -"ignore from the input." -msgstr "" - -#: library/binascii.rst:201 -msgid "" -"If *canonical* is true, non-canonical encodings are rejected " -"with :exc:`binascii.Error`. Here \"canonical\" means the encoding " -"that :func:`b2a_base85` would produce: partial final groups must use the " -"same padding digits as the encoder." -msgstr "" - -#: library/binascii.rst:206 -msgid "Invalid Base85 data will raise :exc:`binascii.Error`." -msgstr "" - -#: library/binascii.rst:213 -#, fuzzy -msgid "" -"Convert binary data to a line of ASCII characters in Base85 coding. The " -"return value is the converted line." -msgstr "" -"Convertit les données binaires en une ligne de caractères ASCII en codage " -"base 64. La valeur de renvoyée et la ligne convertie, incluant un caractère " -"de nouvelle ligne si *newline* est vraie. La sortie de cette fonction se " -"conforme à :rfc:`3548`." - -#: library/binascii.rst:216 -msgid "" -"Optional *alphabet* must be a :term:`bytes-like object` of length 85 which " -"specifies an alternative alphabet." -msgstr "" - -#: library/binascii.rst:223 -msgid "" -"If *pad* is true, the zero-padding applied to the end of the input is " -"retained in the output, which will always be a multiple of 5 bytes, and thus " -"the length of the data may not be preserved on decoding." -msgstr "" - -#: library/binascii.rst:233 -#, fuzzy -msgid "Convert base32 data back to binary and return the binary data." -msgstr "" -"Convertit un bloc de donnée en *base64* en binaire et renvoie la donnée " -"binaire. Plus d’une ligne peut être passé à la fois." - -#: library/binascii.rst:235 -msgid "" -"Valid base32 data contains characters from the base32 alphabet specified " -"in :rfc:`4648` in groups of eight (if necessary, the final group is padded " -"to eight characters with ``=``). Each group encodes 40 bits of binary data " -"in the range from ``0`` to ``2 ** 40 - 1``, inclusive." -msgstr "" - -#: library/binascii.rst:241 -msgid "" -"This function does not map lowercase characters (which are invalid in " -"standard base32) to their uppercase counterparts, nor does it contextually " -"map ``0`` to ``O`` and ``1`` to ``I``/``L`` as :rfc:`4648` allows." -msgstr "" - -#: library/binascii.rst:246 -msgid "" -"Optional *alphabet* must be a :class:`bytes` object of length 32 which " -"specifies an alternative alphabet." -msgstr "" - -#: library/binascii.rst:249 -msgid "" -"If *padded* is true, the last group of 8 base 32 alphabet characters must be " -"padded with the '=' character. If *padded* is false, the '=' character is " -"treated as other non-alphabet characters (depending on the value of " -"*ignorechars*)." -msgstr "" - -#: library/binascii.rst:254 -msgid "" -"*ignorechars* should be a :term:`bytes-like object` containing characters to " -"ignore from the input. If *ignorechars* contains the pad character ``'='``, " -"the pad characters presented before the end of the encoded data and the " -"excess pad characters will be ignored." -msgstr "" - -#: library/binascii.rst:260 -msgid "" -"If *canonical* is true, non-zero padding bits in the last group are rejected " -"with :exc:`binascii.Error`, enforcing canonical encoding as defined " -"in :rfc:`4648` section 3.5." -msgstr "" - -#: library/binascii.rst:264 -msgid "Invalid base32 data will raise :exc:`binascii.Error`." -msgstr "" - -#: library/binascii.rst:270 -#, fuzzy -msgid "" -"Convert binary data to a line of ASCII characters in base32 coding, as " -"specified in :rfc:`4648`. The return value is the converted line." -msgstr "" -"Convertit les données binaires en une ligne de caractères ASCII en codage " -"base 64. La valeur de renvoyée et la ligne convertie, incluant un caractère " -"de nouvelle ligne si *newline* est vraie. La sortie de cette fonction se " -"conforme à :rfc:`3548`." - -#: library/binascii.rst:273 -msgid "" -"Optional *alphabet* must be a :term:`bytes-like object` of length 32 which " -"specifies an alternative alphabet." -msgstr "" - -#: library/binascii.rst:276 -msgid "" -"If *padded* is true (default), pad the encoded data with the '=' character " -"to a size multiple of 8. If *padded* is false, do not add the pad characters." -msgstr "" - -#: library/binascii.rst:288 -msgid "" -"Convert a block of quoted-printable data back to binary and return the " -"binary data. More than one line may be passed at a time. If the optional " -"argument *header* is present and true, underscores will be decoded as spaces." -msgstr "" -"Convertit un bloc de données *quoted-printable* en binaire et renvoie les " -"données binaires. Plus d’une ligne peut être passée à la fois. Si l’argument " -"optionnel *header* est présent et vrai, les traits soulignés seront décodés " -"en espaces." - -#: library/binascii.rst:295 -msgid "" -"Convert binary data to a line(s) of ASCII characters in quoted-printable " -"encoding. The return value is the converted line(s). If the optional " -"argument *quotetabs* is present and true, all tabs and spaces will be " -"encoded. If the optional argument *istext* is present and true, newlines " -"are not encoded but trailing whitespace will be encoded. If the optional " -"argument *header* is present and true, spaces will be encoded as underscores " -"per :rfc:`1522`. If the optional argument *header* is present and false, " -"newline characters will be encoded as well; otherwise linefeed conversion " -"might corrupt the binary data stream." -msgstr "" -"Convertit les données binaires en ligne(s) de caractères ASCII en codage " -"imprimable entre guillemets. La valeur de retour est la\\les lignes(s) " -"convertie(s). Si l’argument optionnel *quotetabs* est présent et vrai, " -"toutes les tabulations et espaces seront encodés. Si l’argument optionnel " -"*istext* est présent et faux, les nouvelles lignes ne sont pas encodées mais " -"les espaces de fin de ligne le seront. Si l’argument optionnel *header* est " -"présent et vrai, les espaces vont être encodés comme de traits soulignés " -"selon :rfc:`1522`. Si l’argument optionnel *header* est présent et faux, les " -"caractères de nouvelle ligne seront également encodés ; sinon la conversion " -"de saut de ligne pourrait corrompre le flux de données binaire." - -#: library/binascii.rst:308 -msgid "" -"Compute a 16-bit CRC value of *data*, starting with *value* as the initial " -"CRC, and return the result. This uses the CRC-CCITT polynomial *x*:sup:`16` " -"+ *x*:sup:`12` + *x*:sup:`5` + 1, often represented as 0x1021. This CRC is " -"used in the binhex4 format." -msgstr "" -"Calcule une valeur en CRC 16-bit de *data*, commençant par *value* comme CRC " -"initial et renvoie le résultat. Ceci utilise le CRC-CCITT polynomial " -"*x*:sup:`16` + *x*:sup:`12` + *x*:sup:`5` + 1, souvent représenté comme " -"*0x1021*. Ce CRC est utilisé dans le format *binhex4*." - -#: library/binascii.rst:316 -#, fuzzy -msgid "" -"Compute CRC-32, the unsigned 32-bit checksum of *data*, starting with an " -"initial CRC of *value*. The default initial CRC is zero. The algorithm is " -"consistent with the ZIP file checksum. Since the algorithm is designed for " -"use as a checksum algorithm, it is not suitable for use as a general hash " -"algorithm. Use as follows::" -msgstr "" -"Calcule CRC-32, la somme de contrôle 32-bit de *data*, commençant par un CRC " -"initial de *value*. Le CRC initial par défaut est zéro. L’algorithme est " -"cohérent avec la somme de contrôle du fichier ZIP. Comme l’algorithme est " -"conçu pour être utilisé comme un algorithme de somme de contrôle, il ne " -"convient pas comme algorithme de hachage général. Utiliser comme suit ::" - -#: library/binascii.rst:328 -msgid "The result is always unsigned." -msgstr "Renvoie une valeur non-signée." - -#: library/binascii.rst:334 -msgid "" -"Return the hexadecimal representation of the binary *data*. Every byte of " -"*data* is converted into the corresponding 2-digit hex representation. The " -"returned bytes object is therefore twice as long as the length of *data*." -msgstr "" -"Renvoie la représentation hexadécimale du binaire *data*. Chaque octet de " -"*data* est converti en la représentation 2 chiffres correspondante. L’objet " -"octets renvoyé est donc deux fois plus long que la longueur de *data*." - -#: library/binascii.rst:338 -msgid "" -"Similar functionality (but returning a text string) is also conveniently " -"accessible using the :meth:`bytes.hex` method." -msgstr "" -"Fonctionnalité similaire est également commodément accessible en utilisant " -"la méthode :meth:`bytes.hex`." - -#: library/binascii.rst:341 -msgid "" -"If *sep* is specified, it must be a single character str or bytes object. It " -"will be inserted in the output after every *bytes_per_sep* input bytes. " -"Separator placement is counted from the right end of the output by default, " -"if you wish to count from the left, supply a negative *bytes_per_sep* value." -msgstr "" -"Si *sep* est spécifié, il doit s'agir d'une chaîne de caractères ou d'un " -"objet *byte*. Il sera inséré dans la sortie tous les *bytes_per_sep* octets. " -"Par défaut, l'emplacement du séparateur est compté à partir de l'extrémité " -"droite de la sortie. Si vous souhaitez compter à partir de la gauche, " -"indiquez une valeur *bytes_per_sep* négative." - -#: library/binascii.rst:356 -msgid "The *sep* and *bytes_per_sep* parameters were added." -msgstr "ajout des paramètres *sep* et *bytes_per_sep*." - -#: library/binascii.rst:362 -msgid "" -"Return the binary data represented by the hexadecimal string *hexstr*. This " -"function is the inverse of :func:`b2a_hex`. *hexstr* must contain an even " -"number of hexadecimal digits (which can be upper or lower case), otherwise " -"an :exc:`Error` exception is raised." -msgstr "" -"Renvoie la donnée binaire représentée par la chaîne de caractères " -"hexadécimale *hexstr*. Cette fonction est l’inverse de :func:`b2a_hex`. " -"*hexstr* doit contenir un nombre pair de chiffres hexadécimaux (qui peuvent " -"être en majuscule ou minuscule), sinon une exception :exc:`Error` est levée." - -#: library/binascii.rst:370 -#, fuzzy -msgid "" -"Similar functionality (but more liberal towards whitespace) is also " -"accessible using the :meth:`bytes.fromhex` class method." -msgstr "" -"Une fonctionnalité similaire (n’acceptant que les arguments de chaîne de " -"texte, mais plus libérale vis-à-vis des espaces blancs) est également " -"accessible en utilisant la méthode de classe :meth:`bytes.fromhex`." - -#: library/binascii.rst:373 -#, fuzzy -msgid "Added the *ignorechars* parameter." -msgstr "Ajout du paramètre *newline*." - -#: library/binascii.rst:379 -msgid "Exception raised on errors. These are usually programming errors." -msgstr "" -"Exception levée en cas d'erreurs. Ce sont typiquement des erreurs de " -"programmation." - -#: library/binascii.rst:384 -msgid "" -"Exception raised on incomplete data. These are usually not programming " -"errors, but may be handled by reading a little more data and trying again." -msgstr "" -"Exception levée par des données incomplète. Il ne s’agit généralement pas " -"d’erreurs de programmation, mais elles peuvent être traitées en lisant un " -"peu plus de données et en réessayant." - -#: library/binascii.rst:390 -msgid "The Base 64 alphabet according to :rfc:`4648`." -msgstr "" - -#: library/binascii.rst:396 -msgid "" -"The \"URL and filename safe\" Base 64 alphabet according to :rfc:`4648`." -msgstr "" - -#: library/binascii.rst:402 -msgid "The uuencoding alphabet." -msgstr "" - -#: library/binascii.rst:408 -msgid "" -"The Base 64 alphabet used in the :manpage:`crypt(3)` routine and in the " -"GEDCOM format." -msgstr "" - -#: library/binascii.rst:414 -msgid "The Base 64 alphabet used in BinHex 4 (HQX) within the classic Mac OS." -msgstr "" - -#: library/binascii.rst:420 -msgid "The Base85 alphabet." -msgstr "" - -#: library/binascii.rst:426 -msgid "The Ascii85 alphabet." -msgstr "" - -#: library/binascii.rst:432 -msgid "The `Z85 `_ alphabet." -msgstr "" - -#: library/binascii.rst:438 -msgid "The Base 32 alphabet according to :rfc:`4648`." -msgstr "" - -#: library/binascii.rst:444 -msgid "" -"The \"Extended Hex\" Base 32 alphabet according to :rfc:`4648`. Data encoded " -"with this alphabet maintains its sort order during bitwise comparisons." -msgstr "" - -#: library/binascii.rst:453 -msgid "Module :mod:`base64`" -msgstr "Module :mod:`base64`" - -#: library/binascii.rst:454 -msgid "" -"Support for RFC compliant base64-style encoding in base 16, 32, 64, and 85." -msgstr "" -"Support de l’encodage *base64-style* conforme RFC en base 16, 32, 64 et 85." - -#: library/binascii.rst:457 -msgid "Module :mod:`quopri`" -msgstr "Module :mod:`quopri`" - -#: library/binascii.rst:458 -msgid "Support for quoted-printable encoding used in MIME email messages." -msgstr "" -"Support de l’encodage *quote-printable* utilisé par les messages *email* " -"MIME." - -#~ msgid "module" -#~ msgstr "module" - -#~ msgid "base64" -#~ msgstr "base64" - -#~ msgid "Module :mod:`uu`" -#~ msgstr "Module :mod:`uu`" - -#~ msgid "Support for UU encoding used on Unix." -#~ msgstr "Gestion de l'encodage UU utilisé sur Unix." - -#, fuzzy -#~ msgid "" -#~ "The result is always unsigned. To generate the same numeric value when " -#~ "using Python 2 or earlier, use ``crc32(data) & 0xffffffff``." -#~ msgstr "" -#~ "Le résultat est toujours non signé. Pour générer la même valeur numérique " -#~ "sur toutes les versions de Python et plateformes, utilisez ``crc32(data) " -#~ "& 0xffffffff``." - -#~ msgid "" -#~ "Convert binhex4 formatted ASCII data to binary, without doing RLE-" -#~ "decompression. The string should contain a complete number of binary " -#~ "bytes, or (in case of the last portion of the binhex4 data) have the " -#~ "remaining bits zero." -#~ msgstr "" -#~ "Convertit un bloc de donnée ASCII au format *binhex4* en binaire, sans " -#~ "faire de décompression RLE. La chaîne de caractères doit contenir un " -#~ "nombre complet d’octet binaires ou (au cas où la dernière portion de " -#~ "donnée est au format *binhex4*) avoir les bits restants à 0." - -#~ msgid "" -#~ "Perform RLE-decompression on the data, as per the binhex4 standard. The " -#~ "algorithm uses ``0x90`` after a byte as a repeat indicator, followed by a " -#~ "count. A count of ``0`` specifies a byte value of ``0x90``. The routine " -#~ "returns the decompressed data, unless data input data ends in an orphaned " -#~ "repeat indicator, in which case the :exc:`Incomplete` exception is raised." -#~ msgstr "" -#~ "Réalise une décompression RLE sur la donnée, d’après la norme *binhex4*. " -#~ "L’algorithme utilise ``0x90`` après un octet comme un indicateur de " -#~ "répétition, suivi d’un décompte. Un décompte de ``0`` définit une valeur " -#~ "d’octet de ``0x90``. La routine renvoie la donnée décompressée, sauf si " -#~ "la donnée entrante se finit sur un indicateur de répétition orphelin. " -#~ "Dans ce cas l’exception :exc:`Incomplete` est levée." - -#~ msgid "Accept only bytestring or bytearray objects as input." -#~ msgstr "Accepte seulement des objets *bytestring* ou *bytearray* en entrée." - -#~ msgid "" -#~ "Perform binhex4 style RLE-compression on *data* and return the result." -#~ msgstr "" -#~ "Réalise une compression RLE de type *binhex4* sur *data* et renvoie le " -#~ "résultat." - -#~ msgid "" -#~ "Perform hexbin4 binary-to-ASCII translation and return the resulting " -#~ "string. The argument should already be RLE-coded, and have a length " -#~ "divisible by 3 (except possibly the last fragment)." -#~ msgstr "" -#~ "Réalise une traduction *hexbin4* de binaire à ASCII et renvoie la chaîne " -#~ "de caractères résultante. L’argument doit être *RLE-coded*, et avoir une " -#~ "longueur divisible par 3 (sauf, éventuellement, le dernier fragment)." - -#~ msgid "Module :mod:`binhex`" -#~ msgstr "Module :mod:`binhex`" - -#~ msgid "Support for the binhex format used on the Macintosh." -#~ msgstr "Support pour le format *binhex* utilisé sur Macintosh." diff --git a/library/bisect.po b/library/bisect.po deleted file mode 100644 index 6086e8d018..0000000000 --- a/library/bisect.po +++ /dev/null @@ -1,336 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-10-17 12:13+0200\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/bisect.rst:2 -#, fuzzy -msgid ":mod:`!bisect` --- Array bisection algorithm" -msgstr ":mod:`bisect` — Algorithme de bissection de listes" - -#: library/bisect.rst:7 -msgid "**Source code:** :source:`Lib/bisect.py`" -msgstr "**Code source :** :source:`Lib/bisect.py`" - -#: library/bisect.rst:11 -#, fuzzy -msgid "" -"This module provides support for maintaining a list in sorted order without " -"having to sort the list after each insertion. For long lists of items with " -"expensive comparison operations, this can be an improvement over linear " -"searches or frequent resorting." -msgstr "" -"Ce module fournit des outils pour maintenir une liste triée sans avoir à la " -"trier à chaque insertion. Il pourrait être plus rapide que l'approche " -"classique pour de longues listes d'éléments dont les opérations de " -"comparaison sont lourdes. Le module se nomme :mod:`bisect` car il utilise " -"une approche simple par bissection. Si vous voulez un exemple de cet " -"algorithme, le mieux est d'aller lire le code source de ce module (les " -"conditions sur les limites y étant justes !)." - -#: library/bisect.rst:16 -msgid "" -"The module is called :mod:`!bisect` because it uses a basic bisection " -"algorithm to do its work. Unlike other bisection tools that search for a " -"specific value, the functions in this module are designed to locate an " -"insertion point. Accordingly, the functions never call " -"an :meth:`~object.__eq__` method to determine whether a value has been " -"found. Instead, the functions only call the :meth:`~object.__lt__` method " -"and will return an insertion point between values in an array." -msgstr "" - -#: library/bisect.rst:26 -msgid "" -"The functions in this module are not thread-safe. If multiple threads " -"concurrently use :mod:`!bisect` functions on the same sequence, this may " -"result in undefined behaviour. Likewise, if the provided sequence is mutated " -"by a different thread while a :mod:`!bisect` function is operating on it, " -"the result is undefined. For example, using :py:func:`~bisect.insort_left` " -"on the same list from multiple threads may result in the list becoming " -"unsorted." -msgstr "" - -#: library/bisect.rst:36 -msgid "The following functions are provided:" -msgstr "Les fonctions suivantes sont fournies :" - -#: library/bisect.rst:41 -msgid "" -"Locate the insertion point for *x* in *a* to maintain sorted order. The " -"parameters *lo* and *hi* may be used to specify a subset of the list which " -"should be considered; by default the entire list is used. If *x* is already " -"present in *a*, the insertion point will be before (to the left of) any " -"existing entries. The return value is suitable for use as the first " -"parameter to ``list.insert()`` assuming that *a* is already sorted." -msgstr "" -"Trouve le point d'insertion de *x* dans *a* permettant de conserver l'ordre. " -"Les paramètres *lo* et *hi* permettent de limiter les emplacements à " -"vérifier dans la liste, par défaut toute la liste est utilisée. Si *x* est " -"déjà présent dans *a*, le point d'insertion proposé sera avant (à gauche) de " -"l'entrée existante. Si *a* est déjà triée, la valeur renvoyée peut " -"directement être utilisée comme premier paramètre de ``list.insert()``." - -#: library/bisect.rst:48 -#, fuzzy -msgid "" -"The returned insertion point *ip* partitions the array *a* into two slices " -"such that ``all(elem < x for elem in a[lo : ip])`` is true for the left " -"slice and ``all(elem >= x for elem in a[ip : hi])`` is true for the right " -"slice." -msgstr "" -"Le point d'insertion renvoyé, *i*, coupe la liste *a* en deux moitiés telles " -"que, pour la moitié de gauche : ``all(val < x for val in a[lo : i])``, et " -"pour la partie de droite : ``all(val >= x for val in a[i : hi])``." - -#: library/bisect.rst:53 -#, fuzzy -msgid "" -"*key* specifies a :term:`key function` of one argument that is used to " -"extract a comparison key from each element in the array. To support " -"searching complex records, the key function is not applied to the *x* value." -msgstr "" -"Le paramètre facultatif *key* est une :term:`fonction clé ` " -"prenant un argument. S'il est fourni, les comparaisons se font sur les " -"valeurs renvoyées par la fonction clé. Par défaut, les éléments sont " -"comparés directement." - -#: library/bisect.rst:57 -msgid "" -"If *key* is ``None``, the elements are compared directly and no key function " -"is called." -msgstr "" - -#: library/bisect.rst:74 library/bisect.rst:112 -msgid "Added the *key* parameter." -msgstr "ajout du paramètre *key*." - -#: library/bisect.rst:67 -#, fuzzy -msgid "" -"Similar to :py:func:`~bisect.bisect_left`, but returns an insertion point " -"which comes after (to the right of) any existing entries of *x* in *a*." -msgstr "" -"Semblable à :func:`bisect_left`, mais renvoie un point d'insertion après (à " -"droite) d'une potentielle entrée existante valant *x* dans *a*." - -#: library/bisect.rst:70 -#, fuzzy -msgid "" -"The returned insertion point *ip* partitions the array *a* into two slices " -"such that ``all(elem <= x for elem in a[lo : ip])`` is true for the left " -"slice and ``all(elem > x for elem in a[ip : hi])`` is true for the right " -"slice." -msgstr "" -"Le point d'insertion renvoyé, *i*, coupe la liste *a* en deux moitiés telles " -"que, pour la moitié de gauche : ``all(val <= x for val in a[lo : i])`` et " -"pour la moitié de droite : ``all(val > x for val in a[i : hi])``." - -#: library/bisect.rst:80 -msgid "Insert *x* in *a* in sorted order." -msgstr "Insère *x* dans *a* en préservant l'ordre." - -#: library/bisect.rst:82 -#, fuzzy -msgid "" -"This function first runs :py:func:`~bisect.bisect_left` to locate an " -"insertion point. Next, it runs the :meth:`~sequence.insert` method on *a* to " -"insert *x* at the appropriate position to maintain sort order." -msgstr "" -"Cette fonction commence par appliquer :func:`bisect_left` pour déterminer la " -"position de l'insertion, puis appelle la méthode :meth:`insert` de *a* pour " -"ajouter *x* à l'endroit adéquat." - -#: library/bisect.rst:106 -msgid "" -"To support inserting records in a table, the *key* function (if any) is " -"applied to *x* for the search step but not for the insertion step." -msgstr "" - -#: library/bisect.rst:109 -#, fuzzy -msgid "" -"Keep in mind that the *O*\\ (log *n*) search is dominated by the slow *O*\\ " -"(*n*) insertion step." -msgstr "" -"Gardez à l'esprit que la complexité logarithmique :math:`O(\\ln(n))` de la " -"recherche est dominée par la lenteur de l'insertion, de complexité " -"linéaire :math:`O(n)`." - -#: library/bisect.rst:99 -#, fuzzy -msgid "" -"Similar to :py:func:`~bisect.insort_left`, but inserting *x* in *a* after " -"any existing entries of *x*." -msgstr "" -"Similaire à :func:`insort_left`, mais en insérant *x* dans *a* après une " -"potentielle entrée existante égale à *x*." - -#: library/bisect.rst:102 -#, fuzzy -msgid "" -"This function first runs :py:func:`~bisect.bisect_right` to locate an " -"insertion point. Next, it runs the :meth:`~sequence.insert` method on *a* to " -"insert *x* at the appropriate position to maintain sort order." -msgstr "" -"Le principe est le même que :func:`insort_left`, mais " -"avec :func:`bisect_right`." - -#: library/bisect.rst:117 -msgid "Performance Notes" -msgstr "Notes sur la performance" - -#: library/bisect.rst:119 -msgid "" -"When writing time sensitive code using *bisect()* and *insort()*, keep these " -"thoughts in mind:" -msgstr "" -"Pour écrire du code sensible à la performance utilisant ``bisect()`` et " -"``insort()``, prenez en compte ces quelques considérations :" - -#: library/bisect.rst:122 -msgid "" -"Bisection is effective for searching ranges of values. For locating specific " -"values, dictionaries are more performant." -msgstr "" -"La bissection est une bonne idée pour rechercher une plage de valeurs. Pour " -"une seule valeur, mieux vaut un dictionnaire." - -#: library/bisect.rst:125 -#, fuzzy -msgid "" -"The *insort()* functions are *O*\\ (*n*) because the logarithmic search step " -"is dominated by the linear time insertion step." -msgstr "" -"Les fonctions d'insertion dans une liste classée ont une complexité linéaire " -"car c'est le coût d'une insertion, même si la recherche est logarithmique." - -#: library/bisect.rst:128 -#, fuzzy -msgid "" -"The search functions are stateless and discard key function results after " -"they are used. Consequently, if the search functions are used in a loop, " -"the key function may be called again and again on the same array elements. " -"If the key function isn't fast, consider wrapping it " -"with :py:func:`functools.cache` to avoid duplicate computations. " -"Alternatively, consider searching an array of precomputed keys to locate the " -"insertion point (as shown in the examples section below)." -msgstr "" -"Les fonctions de recherche ne maintiennent pas d'état et ne conservent pas " -"le résultat de la fonction clé après utilisation. Par conséquent, si elles " -"sont appelées dans une boucle, la fonction clé peut être appelée de " -"nombreuses fois sur les mêmes entrées. Si cette fonction clé est lente, une " -"possibilité est de l'encapsuler dans :func:`functools.cache` pour éviter de " -"répéter les opérations. Une autre possibilité est d'effectuer la recherche " -"sur un tableau de clés pré-calculées pour trouver le point d'insertion (voir " -"les exemples plus bas)." - -#: library/bisect.rst:138 -#, fuzzy -msgid "" -"`Sorted Collections `_ is a " -"high performance module that uses *bisect* to managed sorted collections of " -"data." -msgstr "" -"`Sorted Collections `_ " -"est un module de haute performance qui fait appel à *bisect* pour maintenir " -"des données ordonnées." - -#: library/bisect.rst:142 -msgid "" -"The `SortedCollection recipe `_ uses bisect to build a full-featured collection class " -"with straight-forward search methods and support for a key-function. The " -"keys are precomputed to save unnecessary calls to the key function during " -"searches." -msgstr "" -"`SortedCollection recipe `_ utilise le module *bisect* pour construire une classe " -"collection exposant des méthodes de recherches naturelles et gérant une " -"fonction clef. Les clefs sont pré-calculées pour économiser des appels " -"inutiles à la fonction clef durant les recherches." - -#: library/bisect.rst:150 -msgid "Searching Sorted Lists" -msgstr "Chercher dans des listes triées" - -#: library/bisect.rst:152 -#, fuzzy -msgid "" -"The above `bisect functions`_ are useful for finding insertion points but " -"can be tricky or awkward to use for common searching tasks. The following " -"five functions show how to transform them into the standard lookups for " -"sorted lists::" -msgstr "" -"Les fonctions :func:`bisect` ci-dessus sont utiles pour insérer des " -"éléments, mais peuvent être étranges et peu naturelles à utiliser pour " -"rechercher des éléments. Les cinq fonctions suivantes montrent comment les " -"transformer en recherche plus classique pour les listes triées ::" - -#: library/bisect.rst:194 -msgid "Examples" -msgstr "Exemples" - -#: library/bisect.rst:198 -#, fuzzy -msgid "" -"The :py:func:`~bisect.bisect` function can be useful for numeric table " -"lookups. This example uses :py:func:`~bisect.bisect` to look up a letter " -"grade for an exam score (say) based on a set of ordered numeric breakpoints: " -"90 and up is an 'A', 80 to 89 is a 'B', and so on::" -msgstr "" -"La fonction :func:`bisect` peut être utile pour des recherches dans des " -"tableaux de nombres. Cet exemple utilise :func:`bisect` pour rechercher la " -"note (sous forme de lettre) correspondant à une note sous forme de points, " -"en se basant sur une échelle prédéfinie : plus de 90 vaut 'A', de 80 à 89 " -"vaut 'B', etc ::" - -#: library/bisect.rst:210 -msgid "" -"The :py:func:`~bisect.bisect` and :py:func:`~bisect.insort` functions also " -"work with lists of tuples. The *key* argument can serve to extract the " -"field used for ordering records in a table::" -msgstr "" - -#: library/bisect.rst:244 -#, fuzzy -msgid "" -"If the key function is expensive, it is possible to avoid repeated function " -"calls by searching a list of precomputed keys to find the index of a record::" -msgstr "" -"Une technique consiste à utiliser une liste de clefs pré-calculée pour " -"chercher l'indice de l'enregistrement en question ::" - -#~ msgid "" -#~ "Insert *x* in *a* in sorted order. This is equivalent to " -#~ "``a.insert(bisect.bisect_left(a, x, lo, hi), x)`` assuming that *a* is " -#~ "already sorted. Keep in mind that the O(log n) search is dominated by " -#~ "the slow O(n) insertion step." -#~ msgstr "" -#~ "Insère *x* dans *a* en conservant le tri. C'est l'équivalent de " -#~ "``a.insert(bisect.bisect_left(a, x, lo, hi), x)``, tant que *a* est déjà " -#~ "triée. Gardez en tête que bien que la recherche ne coûte que O(log n), " -#~ "l'insertion coûte O(n)." - -#~ msgid "" -#~ "Unlike the :func:`sorted` function, it does not make sense for " -#~ "the :func:`bisect` functions to have *key* or *reversed* arguments " -#~ "because that would lead to an inefficient design (successive calls to " -#~ "bisect functions would not \"remember\" all of the previous key lookups)." -#~ msgstr "" -#~ "Contrairement à la fonction :func:`sorted`, ça n'aurait pas de sens pour " -#~ "la fonction :func:`bisect` d'avoir un paramètre *key* ou *reversed*, qui " -#~ "conduiraient à une utilisation inefficace (des appels successifs à la " -#~ "fonction *bisect* n'auraient aucun moyen de se \"souvenir\" des " -#~ "recherches de clef précédentes)." diff --git a/library/builtins.po b/library/builtins.po deleted file mode 100644 index 94f3e31e50..0000000000 --- a/library/builtins.po +++ /dev/null @@ -1,77 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2018-07-29 00:46+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/builtins.rst:2 -#, fuzzy -msgid ":mod:`!builtins` --- Built-in objects" -msgstr ":mod:`builtins` — Objets natifs" - -#: library/builtins.rst:9 -#, fuzzy -msgid "" -"This module provides direct access to all 'built-in' identifiers of Python; " -"for example, ``builtins.open`` is the full name for the built-in " -"function :func:`open`." -msgstr "" -"Ce module fournit un accès direct aux identifiants 'natifs' de Python; par " -"exemple, ``builtins.open`` est le nom complet pour la fonction " -"native :func:`open`. Voir :ref:`built-in-funcs` et :ref:`built-in-consts` " -"pour plus de documentation." - -#: library/builtins.rst:12 -msgid "" -"This module is not normally accessed explicitly by most applications, but " -"can be useful in modules that provide objects with the same name as a built-" -"in value, but in which the built-in of that name is also needed. For " -"example, in a module that wants to implement an :func:`open` function that " -"wraps the built-in :func:`open`, this module can be used directly::" -msgstr "" -"Ce module n'est normalement pas accédé explicitement par la plupart des " -"applications, mais peut être utile dans des modules qui exposent des objets " -"de même nom qu'une valeur native, mais pour qui le natif de même nom est " -"aussi nécessaire. Par exemple, dans un module qui voudrait implémenter une " -"fonction :func:`open` autour de la fonction native :func:`open`, ce module " -"peut être utilisé directement ::" - -#: library/builtins.rst:35 -msgid "" -"As an implementation detail, most modules have the name ``__builtins__`` " -"made available as part of their globals. The value of ``__builtins__`` is " -"normally either this module or the value of this " -"module's :attr:`~object.__dict__` attribute. Since this is an implementation " -"detail, it may not be used by alternate implementations of Python." -msgstr "" -"Spécificité de l'implémentation: La plupart des modules ont ``__builtins__`` " -"dans leurs globales. La valeur de ``__builtins__`` est classiquement soit " -"ce module, soit la valeur de l'attribut :attr:`~object.__dict__` du module. " -"Puisque c'est une spécificité de CPython, ce n'est peut-être pas utilisé par " -"toutes les autres implémentations." - -#: library/builtins.rst:43 -msgid ":ref:`built-in-consts`" -msgstr "" - -#: library/builtins.rst:44 -msgid ":ref:`bltin-exceptions`" -msgstr "" - -#: library/builtins.rst:45 -msgid ":ref:`built-in-funcs`" -msgstr "" - -#: library/builtins.rst:46 -msgid ":ref:`bltin-types`" -msgstr "" diff --git a/library/bz2.po b/library/bz2.po deleted file mode 100644 index da24af0a63..0000000000 --- a/library/bz2.po +++ /dev/null @@ -1,582 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-10-18 15:44+0200\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/bz2.rst:2 -#, fuzzy -msgid ":mod:`!bz2` --- Support for :program:`bzip2` compression" -msgstr ":mod:`bz2` — Prise en charge de la compression :program:`bzip2`" - -#: library/bz2.rst:7 -msgid "**Source code:** :source:`Lib/bz2.py`" -msgstr "**Code Source :** :source:`Lib/bz2.py`" - -#: library/bz2.rst:11 -msgid "" -"This module provides a comprehensive interface for compressing and " -"decompressing data using the bzip2 compression algorithm." -msgstr "" -"Ce module fournit une interface complète pour compresser et décompresser les " -"données en utilisant l'algorithme de compression *bzip2*." - -#: library/bz2.rst:14 -#, fuzzy -msgid "The :mod:`!bz2` module contains:" -msgstr "Le module :mod:`bz2` contient :" - -#: library/bz2.rst:16 -msgid "" -"The :func:`.open` function and :class:`BZ2File` class for reading and " -"writing compressed files." -msgstr "" -"La fonction :func:`.open` et la classe :class:`BZ2File` pour lire et écrire " -"des fichiers compressés." - -#: library/bz2.rst:18 -msgid "" -"The :class:`BZ2Compressor` and :class:`BZ2Decompressor` classes for " -"incremental (de)compression." -msgstr "" -"Les classes :class:`BZ2Compressor` et :class:`BZ2Decompressor` pour la " -"(dé)compression incrémentielle." - -#: library/bz2.rst:20 -msgid "" -"The :func:`compress` and :func:`decompress` functions for one-shot " -"(de)compression." -msgstr "" -"Les fonctions :func:`compress` et :func:`decompress` pour la (dé)compression " -"en une seule fois." - -#: includes/optional-module.rst:1 -msgid "" -"This is an :term:`optional module`. If it is missing from your copy of " -"CPython, look for documentation from your distributor (that is, whoever " -"provided Python to you). If you are the distributor, see :ref:`optional-" -"module-requirements`." -msgstr "" - -#: library/bz2.rst:27 -msgid "(De)compression of files" -msgstr "(Dé)compression de fichiers" - -#: library/bz2.rst:31 -msgid "" -"Open a bzip2-compressed file in binary or text mode, returning a :term:`file " -"object`." -msgstr "" -"Ouvre un fichier compressé par *bzip2* en mode binaire ou texte, le " -"renvoyant en :term:`file object`." - -#: library/bz2.rst:34 -msgid "" -"As with the constructor for :class:`BZ2File`, the *filename* argument can be " -"an actual filename (a :class:`str` or :class:`bytes` object), or an existing " -"file object to read from or write to." -msgstr "" -"Tout comme avec le constructeur pour la classe :class:`BZ2File`, l'argument " -"*filename* peut être un nom de fichier réel (un objet :class:`str` " -"ou :class:`bytes`), ou un objet fichier existant à lire ou à écrire." - -#: library/bz2.rst:38 -msgid "" -"The *mode* argument can be any of ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, " -"``'x'``, ``'xb'``, ``'a'`` or ``'ab'`` for binary mode, or ``'rt'``, " -"``'wt'``, ``'xt'``, or ``'at'`` for text mode. The default is ``'rb'``." -msgstr "" -"L'argument *mode* peut valoir ``'r'``, ``'rb'``, ``'w'``, ``'wb'``, ``'x'``, " -"``'xb'``, ``'a'`` ou ``'ab'`` pour le mode binaire, ou ``'rt'``, ``'wt'``, " -"``'xt'`` ou ``'at'`` pour le mode texte. Il vaut par défaut ``'rb'``." - -#: library/bz2.rst:42 -msgid "" -"The *compresslevel* argument is an integer from 1 to 9, as for " -"the :class:`BZ2File` constructor." -msgstr "" -"L'argument *compresslevel* est un entier de 1 à 9, comme pour le " -"constructeur :class:`BZ2File`." - -#: library/bz2.rst:45 -msgid "" -"For binary mode, this function is equivalent to the :class:`BZ2File` " -"constructor: ``BZ2File(filename, mode, compresslevel=compresslevel)``. In " -"this case, the *encoding*, *errors* and *newline* arguments must not be " -"provided." -msgstr "" -"Pour le mode binaire, cette fonction est équivalente au " -"constructeur :class:`BZ2File` : ``BZ2File(filename, mode, " -"compresslevel=compresslevel)``. Dans ce cas, les arguments *encoding*, " -"*errors* et *newline* arguments ne doivent pas être fournis." - -#: library/bz2.rst:50 -msgid "" -"For text mode, a :class:`BZ2File` object is created, and wrapped in " -"an :class:`io.TextIOWrapper` instance with the specified encoding, error " -"handling behavior, and line ending(s)." -msgstr "" -"Pour le mode texte, un objet :class:`BZ2File` est créé et encapsulé dans une " -"instance :class:`io.TextIOWrapper` avec l'encodage spécifié, le comportement " -"de gestion des erreurs et les fins de ligne." - -#: library/bz2.rst:172 -msgid "The ``'x'`` (exclusive creation) mode was added." -msgstr "Le mode ``'x'`` (création exclusive) est ajouté." - -#: library/bz2.rst:179 -msgid "Accepts a :term:`path-like object`." -msgstr "Accepte un :term:`path-like object`." - -#: library/bz2.rst:65 -msgid "Open a bzip2-compressed file in binary mode." -msgstr "Ouvre un fichier *bzip2* en mode binaire." - -#: library/bz2.rst:67 -msgid "" -"If *filename* is a :class:`str` or :class:`bytes` object, open the named " -"file directly. Otherwise, *filename* should be a :term:`file object`, which " -"will be used to read or write the compressed data." -msgstr "" -"Si *filename* est un objet :class:`str` ou :class:`bytes`, ouvre le nom de " -"fichier directement. Autrement, *filename* doit être un :term:`file object`, " -"qui est utilisé pour lire ou écrire les données compressées." - -#: library/bz2.rst:71 -msgid "" -"The *mode* argument can be either ``'r'`` for reading (default), ``'w'`` for " -"overwriting, ``'x'`` for exclusive creation, or ``'a'`` for appending. These " -"can equivalently be given as ``'rb'``, ``'wb'``, ``'xb'`` and ``'ab'`` " -"respectively." -msgstr "" -"L'argument *mode* peut être soit ``'r'`` pour lire (par défaut), ``'w'`` " -"pour écraser, ``'x'`` pour créer exclusivement, ou ``'a'`` pour ajouter. Ils " -"peuvent également être écrits respectivement comme ``'rb'``, ``'wb'``, " -"``'xb'`` et ``'ab'``." - -#: library/bz2.rst:76 -msgid "" -"If *filename* is a file object (rather than an actual file name), a mode of " -"``'w'`` does not truncate the file, and is instead equivalent to ``'a'``." -msgstr "" -"Si *filename* est un objet fichier (plutôt que le nom de fichier réel), le " -"mode ``'w'`` ne tronque pas le fichier, mais équivaut à ``'a'``." - -#: library/bz2.rst:79 -msgid "" -"If *mode* is ``'w'`` or ``'a'``, *compresslevel* can be an integer between " -"``1`` and ``9`` specifying the level of compression: ``1`` produces the " -"least compression, and ``9`` (default) produces the most compression." -msgstr "" -"Si *mode* est ``'w'`` ou ``'a'``, *compresslevel* peut être un entier entre " -"``1`` et ``9`` spécifiant le niveau de compression : ``1`` utilise la " -"compression la moins forte, et ``9`` (par défaut) la compression la plus " -"forte." - -#: library/bz2.rst:83 -msgid "" -"If *mode* is ``'r'``, the input file may be the concatenation of multiple " -"compressed streams." -msgstr "" -"Si *mode* est ``'r'``, le fichier d'entrée peut être la concaténation de " -"plusieurs flux compressés." - -#: library/bz2.rst:86 -#, fuzzy -msgid "" -":class:`BZ2File` provides all of the members specified by " -"the :class:`io.BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` " -"and :meth:`~io.IOBase.truncate`. Iteration and the :keyword:`with` statement " -"are supported." -msgstr "" -":class:`BZ2File` fournit tous les membres spécifiés par la " -"classe :class:`io.BufferedIOBase`, excepté les méthodes :meth:`detach` " -"et :meth:`truncate`. L'itération et l'instruction :keyword:`with` sont " -"prises en charge." - -#: library/bz2.rst:91 -#, fuzzy -msgid ":class:`BZ2File` also provides the following methods and attributes:" -msgstr ":class:`BZ2File` fournit aussi la méthode suivante :" - -#: library/bz2.rst:95 -msgid "" -"Return buffered data without advancing the file position. At least one byte " -"of data will be returned (unless at EOF). The exact number of bytes returned " -"is unspecified." -msgstr "" -"Renvoie des données en mémoire tampon sans avancer la position du fichier. " -"Au moins un octet de donnée (sauf l'EOF) est renvoyé. Le nombre exact " -"d'octets renvoyés n'est pas spécifié." - -#: library/bz2.rst:99 -msgid "" -"While calling :meth:`peek` does not change the file position of " -"the :class:`BZ2File`, it may change the position of the underlying file " -"object (e.g. if the :class:`BZ2File` was constructed by passing a file " -"object for *filename*)." -msgstr "" -"Bien que l'appel à la méthode :meth:`peek` ne change pas la position du " -"fichier de la classe :class:`BZ2File`, il peut changer la position de " -"l'objet fichier sous-jacent (e.g. si la classe :class:`BZ2File` a été " -"construite en passant un objet fichier à *filename*)." - -#: library/bz2.rst:108 -msgid "Return the file descriptor for the underlying file." -msgstr "" - -#: library/bz2.rst:114 -msgid "Return whether the file was opened for reading." -msgstr "" - -#: library/bz2.rst:120 -msgid "Return whether the file supports seeking." -msgstr "" - -#: library/bz2.rst:126 -msgid "Return whether the file was opened for writing." -msgstr "" - -#: library/bz2.rst:132 -msgid "" -"Read up to *size* uncompressed bytes, while trying to avoid making multiple " -"reads from the underlying stream. Reads up to a buffer's worth of data if " -"size is negative." -msgstr "" - -#: library/bz2.rst:136 -msgid "Returns ``b''`` if the file is at EOF." -msgstr "" - -#: library/bz2.rst:142 -msgid "Read bytes into *b*." -msgstr "" - -#: library/bz2.rst:144 -msgid "Returns the number of bytes read (0 for EOF)." -msgstr "" - -#: library/bz2.rst:150 -msgid "``'rb'`` for reading and ``'wb'`` for writing." -msgstr "" - -#: library/bz2.rst:156 -msgid "" -"The bzip2 file name. Equivalent to the :attr:`~io.FileIO.name` attribute of " -"the underlying :term:`file object`." -msgstr "" - -#: library/bz2.rst:162 -msgid "Support for the :keyword:`with` statement was added." -msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." - -#: library/bz2.rst:165 -msgid "" -"Support was added for *filename* being a :term:`file object` instead of an " -"actual filename." -msgstr "" -"La gestion de *filename* comme :term:`file object` au lieu d'un nom de " -"fichier réel a été ajoutée." - -#: library/bz2.rst:169 -msgid "" -"The ``'a'`` (append) mode was added, along with support for reading multi-" -"stream files." -msgstr "" -"Le mode ``'a'`` (ajout) a été ajouté, avec la prise en charge de la lecture " -"des fichiers *multiflux*." - -#: library/bz2.rst:175 -msgid "" -"The :meth:`~io.BufferedIOBase.read` method now accepts an argument of " -"``None``." -msgstr "" -"La méthode :meth:`~io.BufferedIOBase.read` accepte maintenant un argument " -"``None``." - -#: library/bz2.rst:182 -msgid "" -"The *buffering* parameter has been removed. It was ignored and deprecated " -"since Python 3.0. Pass an open file object to control how the file is opened." -msgstr "" -"Le paramètre *buffering* a été supprimé. Il était ignoré et obsolète depuis " -"Python 3.0. Passez un objet fichier déjà ouvert si vous voulez contrôler la " -"façon dont le fichier est ouvert." - -#: library/bz2.rst:187 -msgid "The *compresslevel* parameter became keyword-only." -msgstr "" -"Le paramètre *compresslevel* est devenu un paramètre exclusivement nommé." - -#: library/bz2.rst:189 -msgid "" -"This class is thread unsafe in the face of multiple simultaneous readers or " -"writers, just like its equivalent classes in :mod:`gzip` and :mod:`lzma` " -"have always been." -msgstr "" -"Cette classe n'est plus protégée d'un accès concurrent malheureux par " -"plusieurs lecteurs ou compresseurs. C'était déjà le cas depuis toujours des " -"classes analogues dans les modules :mod:`gzip` et :mod:`lzma`." - -#: library/bz2.rst:196 -msgid "Incremental (de)compression" -msgstr "(Dé)compression incrémentielle" - -#: library/bz2.rst:200 -msgid "" -"Create a new compressor object. This object may be used to compress data " -"incrementally. For one-shot compression, use the :func:`compress` function " -"instead." -msgstr "" -"Crée un nouvel objet compresseur. Cet objet peut être utilisé pour " -"compresser les données de manière incrémentielle. Pour une compression en " -"une seule fois, utilisez à la place la fonction :func:`compress`." - -#: library/bz2.rst:292 -msgid "" -"*compresslevel*, if given, must be an integer between ``1`` and ``9``. The " -"default is ``9``." -msgstr "" -"*compresslevel*, s'il est fourni, doit être un entier entre ``1`` et ``9``. " -"Sa valeur par défaut est ``9``." - -#: library/bz2.rst:209 -msgid "" -"Provide data to the compressor object. Returns a chunk of compressed data if " -"possible, or an empty byte string otherwise." -msgstr "" -"Fournit la donnée à l'objet compresseur. Renvoie un bloc de données " -"compressées si possible, ou autrement une chaîne d'octet vide." - -#: library/bz2.rst:212 -msgid "" -"When you have finished providing data to the compressor, call " -"the :meth:`flush` method to finish the compression process." -msgstr "" -"Quand vous avez fini de fournir des données au compresseur, appelez la " -"méthode :meth:`flush` pour finir le processus de compression." - -#: library/bz2.rst:218 -msgid "" -"Finish the compression process. Returns the compressed data left in internal " -"buffers." -msgstr "" -"Finit le processus de compression. Renvoie la donnée compressée restante " -"dans les tampons internes." - -#: library/bz2.rst:221 -msgid "" -"The compressor object may not be used after this method has been called." -msgstr "" -"L'objet compresseur ne peut pas être utilisé après que cette méthode a été " -"appelée." - -#: library/bz2.rst:226 -msgid "" -"Create a new decompressor object. This object may be used to decompress data " -"incrementally. For one-shot compression, use the :func:`decompress` function " -"instead." -msgstr "" -"Crée un nouvel objet décompresseur. Cet objet peut être utilisé pour " -"décompresser les données de manière incrémentielle. Pour une compression en " -"une seule fois, utilisez à la place la fonction :func:`decompress`." - -#: library/bz2.rst:231 -msgid "" -"This class does not transparently handle inputs containing multiple " -"compressed streams, unlike :func:`decompress` and :class:`BZ2File`. If you " -"need to decompress a multi-stream input with :class:`BZ2Decompressor`, you " -"must use a new decompressor for each stream." -msgstr "" -"Cette classe ne gère pas de manière transparente les entrées contenant " -"plusieurs flux compressés, à la différence de :func:`decompress` " -"et :class:`BZ2File`. Si vous avez besoin de décompresser une entrée " -"*multiflux* avec la classe :class:`BZ2Decompressor`, vous devez utiliser un " -"nouveau décompresseur pour chaque flux." - -#: library/bz2.rst:238 -msgid "" -"Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " -"as bytes. Some of *data* may be buffered internally, for use in later calls " -"to :meth:`decompress`. The returned data should be concatenated with the " -"output of any previous calls to :meth:`decompress`." -msgstr "" -"Décompresse *data* (un :term:`bytes-like object`), renvoyant une donnée non " -"compressée en tant que chaîne d'octets. Certaines de ces *data* peuvent être " -"mises en interne en tampon, pour un usage lors d'appels ultérieurs par la " -"méthode :meth:`decompress`. La donnée renvoyée doit être concaténée avec la " -"sortie des appels précédents à la méthode :meth:`decompress`." - -#: library/bz2.rst:244 -msgid "" -"If *max_length* is nonnegative, returns at most *max_length* bytes of " -"decompressed data. If this limit is reached and further output can be " -"produced, the :attr:`~.needs_input` attribute will be set to ``False``. In " -"this case, the next call to :meth:`~.decompress` may provide *data* as " -"``b''`` to obtain more of the output." -msgstr "" -"Si *max_length* est positif, renvoie au plus *max_length* octets de données " -"compressées. Si la limite est atteinte et que d'autres sorties peuvent être " -"produites, l'attribut :attr:`~.needs_input` est positionné sur ``False``. " -"Dans ce cas, lors de l'appel suivant à la méthode :meth:`~.decompress`, vous " -"pouvez fournir ``b''`` dans *data* afin d'obtenir la suite de la sortie." - -#: library/bz2.rst:251 -msgid "" -"If all of the input data was decompressed and returned (either because this " -"was less than *max_length* bytes, or because *max_length* was negative), " -"the :attr:`~.needs_input` attribute will be set to ``True``." -msgstr "" -"Si toutes les données entrées ont été décompressées et renvoyées (soit parce " -"qu'il y avait moins de *max_length* octets, ou parce que *max_length* était " -"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``." - -#: library/bz2.rst:256 -#, fuzzy -msgid "" -"Attempting to decompress data after the end of stream is reached raises " -"an :exc:`EOFError`. Any data found after the end of the stream is ignored " -"and saved in the :attr:`~.unused_data` attribute." -msgstr "" -"Essayer de décompresser des données après que la fin du flux soit atteinte " -"lève une erreur ``EOFError``. Toute donnée trouvée après la fin du flux est " -"ignorée et sauvegardée dans l'attribut :attr:`~.unused_data`." - -#: library/bz2.rst:260 -msgid "Added the *max_length* parameter." -msgstr "Ajout du paramètre *max_length*." - -#: library/bz2.rst:265 -msgid "``True`` if the end-of-stream marker has been reached." -msgstr "``True`` si le marqueur de fin de flux a été atteint." - -#: library/bz2.rst:272 -msgid "Data found after the end of the compressed stream." -msgstr "Donnée trouvée après la fin du flux compressé." - -#: library/bz2.rst:274 -msgid "" -"If this attribute is accessed before the end of the stream has been reached, " -"its value will be ``b''``." -msgstr "" -"Si l'attribut est accédé avant que la fin du flux ait été atteint, sa valeur " -"sera ``b''``." - -#: library/bz2.rst:279 -msgid "" -"``False`` if the :meth:`.decompress` method can provide more decompressed " -"data before requiring new uncompressed input." -msgstr "" -"``False`` si la méthode :meth:`.decompress` peut fournir plus de données " -"décompressées avant l'acquisition d'une nouvelle entrée non compressée." - -#: library/bz2.rst:286 -msgid "One-shot (de)compression" -msgstr "(Dé)compression en une fois" - -#: library/bz2.rst:290 -msgid "Compress *data*, a :term:`bytes-like object `." -msgstr "Compresse *data*, un :term:`bytes-like object `." - -#: library/bz2.rst:295 -msgid "For incremental compression, use a :class:`BZ2Compressor` instead." -msgstr "" -"Pour la compression incrémentielle, utilisez à la place la " -"classe :class:`BZ2Compressor`." - -#: library/bz2.rst:300 -msgid "Decompress *data*, a :term:`bytes-like object `." -msgstr "Décompresse *data*, un :term:`bytes-like object `." - -#: library/bz2.rst:302 -msgid "" -"If *data* is the concatenation of multiple compressed streams, decompress " -"all of the streams." -msgstr "" -"Si *data* est la concaténation de multiples flux compressés, décompresse " -"tous les flux." - -#: library/bz2.rst:305 -msgid "For incremental decompression, use a :class:`BZ2Decompressor` instead." -msgstr "" -"Pour une décompression incrémentielle, utilisez à la place la " -"classe :class:`BZ2Decompressor`." - -#: library/bz2.rst:307 -msgid "Support for multi-stream inputs was added." -msgstr "Prise en charge des entrées *multiflux*." - -#: library/bz2.rst:313 -msgid "Examples of usage" -msgstr "Exemples d'utilisation" - -#: library/bz2.rst:315 -#, fuzzy -msgid "Below are some examples of typical usage of the :mod:`!bz2` module." -msgstr "" -"Ci-dessous, nous présentons quelques exemples typiques de l'utilisation du " -"module :mod:`bz2`." - -#: library/bz2.rst:317 -msgid "" -"Using :func:`compress` and :func:`decompress` to demonstrate round-trip " -"compression:" -msgstr "" -"Utilise les fonctions :func:`compress` et :func:`decompress` pour démontrer " -"une compression aller-retour :" - -#: library/bz2.rst:335 -msgid "Using :class:`BZ2Compressor` for incremental compression:" -msgstr "" -"Utilise la classe :class:`BZ2Compressor` pour une compression " -"incrémentielle :" - -#: library/bz2.rst:353 -#, fuzzy -msgid "" -"The example above uses a very \"nonrandom\" stream of data (a stream of " -"``b\"z\"`` chunks). Random data tends to compress poorly, while ordered, " -"repetitive data usually yields a high compression ratio." -msgstr "" -"L'exemple ci-dessus utilise un flux de données vraiment pas aléatoire (un " -"flux de blocs de ``b\"z\"``). Les données aléatoires ont tendance à mal se " -"compresser, alors que les données répétitives ou ordonnées donnent " -"généralement un taux de compression élevé." - -#: library/bz2.rst:357 -msgid "Writing and reading a bzip2-compressed file in binary mode:" -msgstr "" -"Écriture et lecture en mode binaire d'un fichier compressé avec *bzip2* :" - -#~ msgid "" -#~ "The :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:`writable`, :meth:`read1` " -#~ "and :meth:`readinto` methods were added." -#~ msgstr "" -#~ "Les " -#~ "méthodes :meth:`fileno`, :meth:`readable`, :meth:`seekable`, :meth:`writable`, :meth:`read1` " -#~ "et :meth:`readinto` ont été ajoutées." - -#~ msgid "" -#~ "All of the classes in this module may safely be accessed from multiple " -#~ "threads." -#~ msgstr "" -#~ "Toutes les classes de ce module peuvent en toute sécurité être accédées " -#~ "depuis de multiples fils d'exécution." - -#~ msgid "" -#~ "The *buffering* argument is ignored. Its use is deprecated since Python " -#~ "3.0." -#~ msgstr "" -#~ "L'argument *buffering* est ignoré. Son usage est obsolète depuis Python " -#~ "3.0." diff --git a/library/calendar.po b/library/calendar.po deleted file mode 100644 index 44446c1965..0000000000 --- a/library/calendar.po +++ /dev/null @@ -1,922 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-11-19 12:21-0500\n" -"Last-Translator: Édith Viau \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.0.1\n" - -#: library/calendar.rst:2 -#, fuzzy -msgid ":mod:`!calendar` --- General calendar-related functions" -msgstr ":mod:`calendar` — Fonctions calendaires générales" - -#: library/calendar.rst:8 -msgid "**Source code:** :source:`Lib/calendar.py`" -msgstr "**Code source :** :source:`Lib/calendar.py`" - -#: library/calendar.rst:12 -msgid "" -"This module allows you to output calendars like the Unix :program:`cal` " -"program, and provides additional useful functions related to the calendar. " -"By default, these calendars have Monday as the first day of the week, and " -"Sunday as the last (the European convention). Use :func:`setfirstweekday` to " -"set the first day of the week to Sunday (6) or to any other weekday. " -"Parameters that specify dates are given as integers. For related " -"functionality, see also the :mod:`datetime` and :mod:`time` modules." -msgstr "" -"Ce module permet d'afficher un calendrier comme le fait le programme " -"Unix :program:`cal`, et il fournit des fonctions utiles relatives au " -"calendrier. Par défaut, ces calendriers ont le lundi comme premier jour de " -"la semaine et le dimanche comme dernier jour. " -"Utilisez :func:`setfirstweekday` pour définir le premier jour de la semaine " -"à dimanche (6) ou à tout autre jour de la semaine. Les paramètres pour " -"spécifier les dates sont donnés sous forme de nombres entiers. Voir aussi " -"les modules :mod:`datetime` et :mod:`time`." - -#: library/calendar.rst:20 -msgid "" -"The functions and classes defined in this module use an idealized calendar, " -"the current Gregorian calendar extended indefinitely in both directions. " -"This matches the definition of the \"proleptic Gregorian\" calendar in " -"Dershowitz and Reingold's book \"Calendrical Calculations\", where it's the " -"base calendar for all computations. Zero and negative years are interpreted " -"as prescribed by the ISO 8601 standard. Year 0 is 1 BC, year -1 is 2 BC, " -"and so on." -msgstr "" -"Les fonctions et les classes définies dans ce module utilisent un calendrier " -"idéalisé, le calendrier grégorien actuel s'étendant indéfiniment dans les " -"deux sens. Cela correspond à la définition du calendrier grégorien " -"proleptique dans le livre de Dershowitz et Reingold « *Calendrical " -"Calculations* », œuvre dans lequel il est le calendrier de référence de tous " -"les calculs. Les années zéros et les années négatives sont interprétées " -"comme prescrit par la norme ISO 8601. L'année 0 est 1 avant JC, l'année " -"``-1`` est 2 avant JC et ainsi de suite." - -#: library/calendar.rst:31 -msgid "" -"Creates a :class:`Calendar` object. *firstweekday* is an integer specifying " -"the first day of the week. :const:`MONDAY` is ``0`` (the " -"default), :const:`SUNDAY` is ``6``." -msgstr "" -"Crée un objet :class:`Calendar`. *firstweekday* est un entier spécifiant le " -"premier jour de la semaine, valant par défaut ``0`` (soit :const:`MONDAY` " -"pour lundi), pouvant aller jusqu'à ``6`` (soit :const:`SUNDAY` pour " -"dimanche)." - -#: library/calendar.rst:34 -msgid "" -"A :class:`Calendar` object provides several methods that can be used for " -"preparing the calendar data for formatting. This class doesn't do any " -"formatting itself. This is the job of subclasses." -msgstr "" -"L'objet :class:`Calendar` fournit plusieurs méthodes pouvant être utilisées " -"pour préparer les données du calendrier pour le formatage. Cette classe ne " -"fait pas de formatage elle-même. Il s'agit du travail des sous-classes." - -#: library/calendar.rst:39 -#, fuzzy -msgid ":class:`Calendar` instances have the following methods and attributes:" -msgstr "Les instances de :class:`Calendar` ont les méthodes suivantes :" - -#: library/calendar.rst:43 -msgid "The first weekday as an integer (0--6)." -msgstr "" - -#: library/calendar.rst:45 -msgid "" -"This property can also be set and read " -"using :meth:`~Calendar.setfirstweekday` " -"and :meth:`~Calendar.getfirstweekday` respectively." -msgstr "" - -#: library/calendar.rst:51 -msgid "Return an :class:`int` for the current first weekday (0--6)." -msgstr "" - -#: library/calendar.rst:53 -msgid "Identical to reading the :attr:`~Calendar.firstweekday` property." -msgstr "" - -#: library/calendar.rst:57 -msgid "" -"Set the first weekday to *firstweekday*, passed as an :class:`int` (0--6)." -msgstr "" - -#: library/calendar.rst:59 -msgid "Identical to setting the :attr:`~Calendar.firstweekday` property." -msgstr "" - -#: library/calendar.rst:63 -#, fuzzy -msgid "" -"Return an iterator for the weekday numbers that will be used for one week. " -"The first value from the iterator will be the same as the value of " -"the :attr:`~Calendar.firstweekday` property." -msgstr "" -"Renvoie un itérateur sur les numéros des jours d'une semaine. La première " -"valeur est donc la même que la valeur de la propriété :attr:`firstweekday`." - -#: library/calendar.rst:70 -msgid "" -"Return an iterator for the month *month* (1--12) in the year *year*. This " -"iterator will return all days (as :class:`datetime.date` objects) for the " -"month and all days before the start of the month or after the end of the " -"month that are required to get a complete week." -msgstr "" -"Renvoie un itérateur sur les jours du mois *month* (1 à 12) de l'année " -"*year*. Cet itérateur renvoie tous les jours du mois (sous forme d'instances " -"de :class:`datetime.date`) ainsi que tous les jours avant le début du mois " -"et après la fin du mois nécessaires pour obtenir des semaines complètes." - -#: library/calendar.rst:78 -msgid "" -"Return an iterator for the month *month* in the year *year* similar " -"to :meth:`itermonthdates`, but not restricted by the :class:`datetime.date` " -"range. Days returned will simply be day of the month numbers. For the days " -"outside of the specified month, the day number is ``0``." -msgstr "" -"Renvoie un itérateur sur les jours du mois *month* de l'année *year*, " -"comme :meth:`itermonthdates`, sans être limité par l'intervalle " -"de :class:`datetime.date`. Les jours renvoyés sont simplement les numéros " -"des jours du mois. Pour les jours en dehors du mois spécifié, le numéro du " -"jour est ``0``." - -#: library/calendar.rst:86 -#, fuzzy -msgid "" -"Return an iterator for the month *month* in the year *year* similar " -"to :meth:`itermonthdates`, but not restricted by the :class:`datetime.date` " -"range. Days returned will be tuples consisting of a day of the month number " -"and a weekday number." -msgstr "" -"Renvoie un itérateur sur les jours du mois *month* de l'année *year* " -"comme :meth:`itermonthdates`, sans être limité par la " -"plage :class:`datetime.date`. Les jours renvoyés sont des paires composées " -"du numéro du jour dans le mois et du numéro du jour dans la semaine." - -#: library/calendar.rst:94 -msgid "" -"Return an iterator for the month *month* in the year *year* similar " -"to :meth:`itermonthdates`, but not restricted by the :class:`datetime.date` " -"range. Days returned will be tuples consisting of a year, a month and a day " -"of the month numbers." -msgstr "" -"Renvoie un itérateur sur les jours du *month* de l'année *year*, " -"comme :meth:`itermonthdates`, sans être limité par l'intervalle " -"de :class:`datetime.date`. Les jours sont renvoyés sous forme de triplets " -"composés du numéro de l'année, du mois et du jour dans le mois." - -#: library/calendar.rst:104 -msgid "" -"Return an iterator for the month *month* in the year *year* similar " -"to :meth:`itermonthdates`, but not restricted by the :class:`datetime.date` " -"range. Days returned will be tuples consisting of a year, a month, a day of " -"the month, and a day of the week numbers." -msgstr "" -"Renvoie un itérateur sur les jours du mois *month* de l'année *year*, " -"comme :meth:`itermonthdates`, sans être limité par l'intervalle " -"de :class:`datetime.date`. Le jours sont renvoyés sous forme de quadruplets " -"contenant le numéro de l'année, du mois, du jour du mois et du jour de la " -"semaine." - -#: library/calendar.rst:114 -msgid "" -"Return a list of the weeks in the month *month* of the *year* as full " -"weeks. Weeks are lists of seven :class:`datetime.date` objects." -msgstr "" -"Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " -"Les semaines sont des listes de sept objets :class:`datetime.date`." - -#: library/calendar.rst:120 -msgid "" -"Return a list of the weeks in the month *month* of the *year* as full " -"weeks. Weeks are lists of seven tuples of day numbers and weekday numbers." -msgstr "" -"Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " -"Les semaines sont des listes de sept paires contenant le numéro du jour dans " -"le mois et du numéro du jour dans la semaine." - -#: library/calendar.rst:127 -msgid "" -"Return a list of the weeks in the month *month* of the *year* as full " -"weeks. Weeks are lists of seven day numbers." -msgstr "" -"Renvoie la liste des semaines complètes du mois *month* de l'année *year*. " -"Les semaines sont une liste de sept numéros de jours." - -#: library/calendar.rst:133 -msgid "" -"Return the data for the specified year ready for formatting. The return " -"value is a list of month rows. Each month row contains up to *width* months " -"(defaulting to 3). Each month contains between 4 and 6 weeks and each week " -"contains 1--7 days. Days are :class:`datetime.date` objects." -msgstr "" -"Renvoie ce qu'il faut pour afficher correctement une année. La valeur " -"renvoyée est une liste de lignes de mois. Chaque ligne mensuelle contient " -"jusqu'à *width* mois (avec une valeur par défaut à 3). Chaque mois contient " -"de 4 à 6 semaines et chaque semaine 1 à 7 jours. Les jours sont des " -"objets :class:`datetime.date`." - -#: library/calendar.rst:141 -msgid "" -"Return the data for the specified year ready for formatting (similar " -"to :meth:`yeardatescalendar`). Entries in the week lists are tuples of day " -"numbers and weekday numbers. Day numbers outside this month are zero." -msgstr "" -"Renvoie ce qu'il faut pour afficher correctement une année, (similaire " -"à :meth:`yeardatescalendar`). Les listes des semaines contiennent des paires " -"contenant le numéro du jour du mois et le numéro du jour de la semaine. Les " -"numéro des jours en dehors de ce mois sont à zéro." - -#: library/calendar.rst:148 -msgid "" -"Return the data for the specified year ready for formatting (similar " -"to :meth:`yeardatescalendar`). Entries in the week lists are day numbers. " -"Day numbers outside this month are zero." -msgstr "" -"Renvoie ce qu'il faut pour afficher correctement une année, (similaire " -"à :meth:`yeardatescalendar`). Les listes de semaines contiennent des numéros " -"de jours. Les numéros de jours en dehors de ce mois sont de zéro." - -#: library/calendar.rst:155 -msgid "This class can be used to generate plain text calendars." -msgstr "" -"Cette classe peut être utilisée pour générer des calendriers en texte brut." - -#: library/calendar.rst:157 -msgid ":class:`TextCalendar` instances have the following methods:" -msgstr "Les instances :class:`TextCalendar` exposent les méthodes suivantes :" - -#: library/calendar.rst:161 -#, fuzzy -msgid "" -"Print a week's calendar as returned by :meth:`formatweek` and without a " -"final newline." -msgstr "" -"Affiche le calendrier d'un mois tel que renvoyé par :meth:`formatmonth`." - -#: library/calendar.rst:167 -msgid "" -"Return a string representing a single day formatted with the given *width*. " -"If *theday* is ``0``, return a string of spaces of the specified width, " -"representing an empty day. The *weekday* parameter is unused." -msgstr "" - -#: library/calendar.rst:174 -#, fuzzy -msgid "" -"Return a single week in a string with no newline. If *w* is provided, it " -"specifies the width of the date columns, which are centered. Depends on the " -"first weekday as specified in the constructor or set by " -"the :meth:`setfirstweekday` method." -msgstr "" -"Donne le calendrier d'un mois dans une chaîne multi-ligne. Si *w* est " -"fourni, il spécifie la largeur des colonnes de date, qui sont centrées. Si " -"*l* est donné, il spécifie le nombre de lignes que chaque semaine utilisera. " -"Le résultat varie en fonction du premier jour de la semaine spécifié dans le " -"constructeur ou défini par la méthode :meth:`setfirstweekday`." - -#: library/calendar.rst:182 -msgid "" -"Return a string representing the name of a single weekday formatted to the " -"specified *width*. The *weekday* parameter is an integer representing the " -"day of the week, where ``0`` is Monday and ``6`` is Sunday." -msgstr "" - -#: library/calendar.rst:189 -msgid "" -"Return a string containing the header row of weekday names, formatted with " -"the given *width* for each column. The names depend on the locale settings " -"and are padded to the specified width." -msgstr "" - -#: library/calendar.rst:196 -msgid "" -"Return a month's calendar in a multi-line string. If *w* is provided, it " -"specifies the width of the date columns, which are centered. If *l* is " -"given, it specifies the number of lines that each week will use. Depends on " -"the first weekday as specified in the constructor or set by " -"the :meth:`setfirstweekday` method." -msgstr "" -"Donne le calendrier d'un mois dans une chaîne multi-ligne. Si *w* est " -"fourni, il spécifie la largeur des colonnes de date, qui sont centrées. Si " -"*l* est donné, il spécifie le nombre de lignes que chaque semaine utilisera. " -"Le résultat varie en fonction du premier jour de la semaine spécifié dans le " -"constructeur ou défini par la méthode :meth:`setfirstweekday`." - -#: library/calendar.rst:205 -msgid "" -"Return a string representing the month's name centered within the specified " -"*width*. If *withyear* is ``True``, include the year in the output. The " -"*theyear* and *themonth* parameters specify the year and month for the name " -"to be formatted respectively." -msgstr "" - -#: library/calendar.rst:213 -msgid "Print a month's calendar as returned by :meth:`formatmonth`." -msgstr "" -"Affiche le calendrier d'un mois tel que renvoyé par :meth:`formatmonth`." - -#: library/calendar.rst:218 -msgid "" -"Return a *m*-column calendar for an entire year as a multi-line string. " -"Optional parameters *w*, *l*, and *c* are for date column width, lines per " -"week, and number of spaces between month columns, respectively. Depends on " -"the first weekday as specified in the constructor or set by " -"the :meth:`setfirstweekday` method. The earliest year for which a calendar " -"can be generated is platform-dependent." -msgstr "" -"Renvoie un calendrier de *m* colonnes pour une année entière sous forme de " -"chaîne multi-ligne. Les paramètres facultatifs *w*, *l* et *c* correspondent " -"respectivement à la largeur de la colonne date, les lignes par semaines, le " -"nombre d'espace entre les colonnes de mois. Le résultat varie en fonction du " -"premier jour de la semaine spécifié dans le constructeur ou défini par la " -"méthode :meth:`setfirstweekday`. La première année pour laquelle un " -"calendrier peut être généré, dépend de la plateforme." - -#: library/calendar.rst:228 -msgid "" -"Print the calendar for an entire year as returned by :meth:`formatyear`." -msgstr "" -"Affiche le calendrier pour une année entière comme renvoyé " -"par :meth:`formatyear`." - -#: library/calendar.rst:233 -msgid "This class can be used to generate HTML calendars." -msgstr "Cette classe peut être utilisée pour générer des calendriers HTML." - -#: library/calendar.rst:236 -msgid ":class:`!HTMLCalendar` instances have the following methods:" -msgstr "" -"Les instances de :class:`!HTMLCalendar` utilisent les méthodes suivantes :" - -#: library/calendar.rst:240 -msgid "" -"Return a month's calendar as an HTML table. If *withyear* is true the year " -"will be included in the header, otherwise just the month name will be used." -msgstr "" -"Renvoie le calendrier d'un mois sous la forme d'une table HTML. Si " -"*withyear* est vrai l'année sera inclue dans l'en-tête, sinon seul le nom du " -"mois sera utilisé." - -#: library/calendar.rst:247 -msgid "" -"Return a year's calendar as an HTML table. *width* (defaulting to 3) " -"specifies the number of months per row." -msgstr "" -"Renvoie le calendrier d'une année sous la forme d'une table HTML. *width* " -"(par défaut à 3) spécifie le nombre de mois par ligne." - -#: library/calendar.rst:253 -#, fuzzy -msgid "" -"Return a year's calendar as a complete HTML page. *width* (defaulting to 3) " -"specifies the number of months per row. *css* is the name for the cascading " -"style sheet to be used. :const:`None` can be passed if no style sheet should " -"be used. *encoding* specifies the encoding to be used for the output " -"(defaulting to ``'utf-8'``)." -msgstr "" -"Renvoie le calendrier d'une année sous la forme d'une page HTML complète. " -"*width* (par défaut à 3) spécifie le nombre de mois par ligne. *css* est le " -"nom de la feuille de style en cascade à utiliser. :const:`None` peut être " -"passé si aucune feuille de style ne doit être utilisée. *encoding* spécifie " -"l'encodage à utiliser pour les données de sortie (par défaut l'encodage par " -"défaut du système)." - -#: library/calendar.rst:262 -#, fuzzy -msgid "" -"Return a month name as an HTML table row. If *withyear* is true the year " -"will be included in the row, otherwise just the month name will be used." -msgstr "" -"Renvoie le calendrier d'un mois sous la forme d'une table HTML. Si " -"*withyear* est vrai l'année sera inclue dans l'en-tête, sinon seul le nom du " -"mois sera utilisé." - -#: library/calendar.rst:267 -msgid "" -":class:`!HTMLCalendar` has the following attributes you can override to " -"customize the CSS classes used by the calendar:" -msgstr "" -":class:`!HTMLCalendar` possède les attributs suivants que vous pouvez " -"surcharger pour personnaliser les classes CSS utilisées par le calendrier :" - -#: library/calendar.rst:272 -msgid "" -"A list of CSS classes used for each weekday. The default class list is::" -msgstr "" -"Une liste de classes CSS utilisées pour chaque jour de la semaine. La liste " -"par défaut de la classe est ::" - -#: library/calendar.rst:276 -msgid "more styles can be added for each day::" -msgstr "davantage de styles peuvent être ajoutés pour chaque jour ::" - -#: library/calendar.rst:280 -msgid "Note that the length of this list must be seven items." -msgstr "Notez que la longueur de cette liste doit être de sept éléments." - -#: library/calendar.rst:285 -msgid "The CSS class for a weekday occurring in the previous or coming month." -msgstr "" -"La classe CSS pour le jour de la semaine apparaissant dans le mois précédent " -"ou à venir." - -#: library/calendar.rst:292 -msgid "" -"A list of CSS classes used for weekday names in the header row. The default " -"is the same as :attr:`cssclasses`." -msgstr "" -"Une liste de classes CSS utilisées pour les noms des jours de la semaine " -"dans la ligne d'en-tête. Par défaut les mêmes que :attr:`cssclasses`." - -#: library/calendar.rst:300 -msgid "" -"The month's head CSS class (used by :meth:`formatmonthname`). The default " -"value is ``\"month\"``." -msgstr "" -"La classe CSS du mois en en-tête (utilisé par :meth:`formatmonthname`). La " -"valeur par défaut est ``\"month\"``." - -#: library/calendar.rst:308 -msgid "" -"The CSS class for the whole month's table (used by :meth:`formatmonth`). The " -"default value is ``\"month\"``." -msgstr "" -"La classe CSS pour la table du mois entière (utilisé " -"par :meth:`formatmonth`). La valeur par défaut est ``\"month\"``." - -#: library/calendar.rst:316 -msgid "" -"The CSS class for the whole year's table of tables (used " -"by :meth:`formatyear`). The default value is ``\"year\"``." -msgstr "" -"La classe CSS pour la table entière des tables de l'année (utilisé " -"par :meth:`formatyear`). La valeur par défaut est ``\"year\"``." - -#: library/calendar.rst:324 -msgid "" -"The CSS class for the table head for the whole year (used " -"by :meth:`formatyear`). The default value is ``\"year\"``." -msgstr "" -"La classe CSS pour l'en-tête de la table pour l'année entière (utilisé " -"par :meth:`formatyear`). La valeur par défaut est ``\"year\"``." - -#: library/calendar.rst:330 -msgid "" -"Note that although the naming for the above described class attributes is " -"singular (e.g. ``cssclass_month`` ``cssclass_noday``), one can replace the " -"single CSS class with a space separated list of CSS classes, for example::" -msgstr "" -"Notez que même si le nommage ci-dessus des attributs de classe est au " -"singulier (p. ex. ``cssclass_month`` ``cssclass_noday``), on peut remplacer " -"la seule classe CSS par une liste de classes CSS séparées par une espace, " -"par exemple ::" - -#: library/calendar.rst:336 -msgid "Here is an example how :class:`!HTMLCalendar` can be customized::" -msgstr "" -"Voici un exemple de comment peut être personnalisée :class:`!HTMLCalendar` ::" - -#: library/calendar.rst:348 -msgid "" -"This subclass of :class:`TextCalendar` can be passed a locale name in the " -"constructor and will return month and weekday names in the specified locale." -msgstr "" -"Il est possible de passer un nom de locale au constructeur de la sous-classe " -"de :class:`TextCalendar`. Elle renvoie les noms des mois et des jours de la " -"semaine dans la locale précisée." - -#: library/calendar.rst:354 -msgid "" -"This subclass of :class:`HTMLCalendar` can be passed a locale name in the " -"constructor and will return month and weekday names in the specified locale." -msgstr "" -"Il est possible de passer un nom de locale au constructeur de la sous-classe " -"de :class:`HTMLCalendar`. Elle renvoie les noms des mois et des jours de la " -"semaine dans la locale précisée." - -#: library/calendar.rst:360 -#, fuzzy -msgid "" -"The constructor, :meth:`!formatweekday` and :meth:`!formatmonthname` methods " -"of these two classes temporarily change the ``LC_TIME`` locale to the given " -"*locale*. Because the current locale is a process-wide setting, they are not " -"thread-safe." -msgstr "" -"Les méthodes :meth:`formatweekday` et :meth:`formatmonthname` de ces deux " -"classes changent temporairement le paramètre régional courant ``LC_TIME`` " -"pour le paramètre donné via *locale* . Comme le paramètre régional est " -"appliqué à l'ensemble du processus, elles ne sont pas verrouillées ni " -"isolées par un fil d'exécution." - -#: library/calendar.rst:366 -msgid "For simple text calendars this module provides the following functions." -msgstr "" -"Pour les calendriers texte simples ce module fournit les fonctions suivantes." - -#: library/calendar.rst:370 -msgid "" -"Sets the weekday (``0`` is Monday, ``6`` is Sunday) to start each week. The " -"values :const:`MONDAY`, :const:`TUESDAY`, :const:`WEDNESDAY`, :const:`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, " -"and :const:`SUNDAY` are provided for convenience. For example, to set the " -"first weekday to Sunday::" -msgstr "" -"Fixe le jour de la semaine (``0`` pour lundi, ``6`` pour dimanche) qui " -"débute chaque semaine. Les " -"valeurs :const:`MONDAY`, :const:`TUESDAY`, :const:`WEDNESDAY`, :const:`THURSDAY`, :const:`FRIDAY`, :const:`SATURDAY`, " -"et :const:`SUNDAY` sont fournies par commodité. Par exemple, pour fixer le " -"premier jour de la semaine à dimanche ::" - -#: library/calendar.rst:381 -msgid "Returns the current setting for the weekday to start each week." -msgstr "" -"Renvoie le réglage courant pour le jour de la semaine débutant chaque " -"semaine." - -#: library/calendar.rst:386 -msgid "" -"Returns :const:`True` if *year* is a leap year, otherwise :const:`False`." -msgstr "" -"Renvoie :const:`True` si *year* est une année bissextile, " -"sinon :const:`False`." - -#: library/calendar.rst:391 -msgid "" -"Returns the number of leap years in the range from *y1* to *y2* (exclusive), " -"where *y1* and *y2* are years." -msgstr "" -"Renvoie le nombre d'années bissextiles dans la période de *y1* à *y2* (non " -"inclus), où *y1* et *y2* sont des années." - -#: library/calendar.rst:394 -msgid "This function works for ranges spanning a century change." -msgstr "" -"Cette fonction marche pour les périodes couvrant un changement de siècle." - -#: library/calendar.rst:399 -msgid "" -"Returns the day of the week (``0`` is Monday) for *year* (``1970``--...), " -"*month* (``1``--``12``), *day* (``1``--``31``)." -msgstr "" -"Renvoie le jour de la semaine (``0`` pour lundi) pour *year* (``1970``-- …), " -"*month* (``1``--``12``), *day* (``1``--``31``)." - -#: library/calendar.rst:405 -msgid "" -"Return a header containing abbreviated weekday names. *n* specifies the " -"width in characters for one weekday." -msgstr "" -"Renvoie un en-tête contenant les jours de la semaine en abrégé. *n* spécifie " -"la largeur en caractères pour un jour de la semaine." - -#: library/calendar.rst:411 -#, fuzzy -msgid "" -"Returns weekday of first day of the month and number of days in month, for " -"the specified *year* and *month*." -msgstr "" -"Renvoie le jour de la semaine correspondant au premier jour du mois et le " -"nombre de jours dans le mois, pour l'année *year* et le mois *month* " -"spécifiés." - -#: library/calendar.rst:417 -msgid "" -"Returns a matrix representing a month's calendar. Each row represents a " -"week; days outside of the month are represented by zeros. Each week begins " -"with Monday unless set by :func:`setfirstweekday`." -msgstr "" -"Renvoie une matrice représentant le calendrier d'un mois. Chaque ligne " -"représente une semaine ; les jours en dehors du mois sont représentés par " -"des zéros. Chaque semaine débute avec le lundi à moins de l'avoir modifié " -"avec :func:`setfirstweekday`." - -#: library/calendar.rst:424 -msgid "Prints a month's calendar as returned by :func:`month`." -msgstr "Affiche le calendrier d'un mois tel que renvoyé par :func:`month`." - -#: library/calendar.rst:429 -#, fuzzy -msgid "" -"Returns a month's calendar in a multi-line string using " -"the :meth:`~TextCalendar.formatmonth` of the :class:`TextCalendar` class." -msgstr "" -"Renvoie le calendrier d'un mois dans une chaîne multi-lignes en utilisant la " -"méthode :meth:`formatmonth` de la classe :class:`TextCalendar`." - -#: library/calendar.rst:435 -msgid "" -"Prints the calendar for an entire year as returned by :func:`calendar`." -msgstr "" -"Affiche le calendrier pour une année entière tel que renvoyé " -"par :func:`calendar`." - -#: library/calendar.rst:440 -#, fuzzy -msgid "" -"Returns a 3-column calendar for an entire year as a multi-line string using " -"the :meth:`~TextCalendar.formatyear` of the :class:`TextCalendar` class." -msgstr "" -"Renvoie un calendrier sur 3 colonnes pour une année entière dans une chaîne " -"multi-lignes en utilisant la méthode :meth:`formatyear` de la " -"classe :class:`TextCalendar`." - -#: library/calendar.rst:446 -#, fuzzy -msgid "" -"An unrelated but handy function that takes a time tuple such as returned by " -"the :func:`~time.gmtime` function in the :mod:`time` module, and returns the " -"corresponding Unix timestamp value, assuming an epoch of 1970, and the POSIX " -"encoding. In fact, :func:`time.gmtime` and :func:`timegm` are each other's " -"inverse." -msgstr "" -"Une fonction sans rapport mais pratique, qui prend un *n*-uplet temporel tel " -"que celui renvoyé par la fonction :func:`~time.gmtime` dans le " -"module :mod:`time`, et renvoie la valeur d'horodatage Unix (*timestamp* en " -"anglais) correspondante, en supposant une époque de 1970, et l'encodage " -"POSIX. En fait, :func:`time.gmtime` et :func:`timegm` sont l'inverse l'un de " -"l'autre." - -#: library/calendar.rst:453 -#, fuzzy -msgid "The :mod:`!calendar` module exports the following data attributes:" -msgstr "Le module :mod:`calendar` exporte les attributs suivants :" - -#: library/calendar.rst:457 -#, fuzzy -msgid "" -"A sequence that represents the days of the week in the current locale, where " -"Monday is day number 0." -msgstr "" -"Un tableau qui représente les jours de la semaine pour les paramètres " -"régionaux actifs." - -#: library/calendar.rst:467 -#, fuzzy -msgid "" -"A sequence that represents the abbreviated days of the week in the current " -"locale, where Mon is day number 0." -msgstr "" -"Un tableau qui représente les jours de la semaine en abrégé pour les " -"paramètres régionaux actifs." - -#: library/calendar.rst:482 -#, fuzzy -msgid "" -"Aliases for the days of the week, where ``MONDAY`` is ``0`` and ``SUNDAY`` " -"is ``6``." -msgstr "" -"Alias pour les nombres des jours de la semaine. Lundi (``MONDAY``) est ``0`` " -"et dimanche (``SUNDAY``) est ``6``." - -#: library/calendar.rst:490 -msgid "" -"Enumeration defining days of the week as integer constants. The members of " -"this enumeration are exported to the module scope as :data:`MONDAY` " -"through :data:`SUNDAY`." -msgstr "" - -#: library/calendar.rst:499 -#, fuzzy -msgid "" -"A sequence that represents the months of the year in the current locale. " -"This follows normal convention of January being month number 1, so it has a " -"length of 13 and ``month_name[0]`` is the empty string." -msgstr "" -"Un tableau qui représente les mois de l'année pour les paramètres régionaux " -"actifs. Ceux-ci respectent la convention usuelle où janvier est le mois " -"numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la chaîne " -"vide." - -#: library/calendar.rst:509 -msgid "" -"In locales with alternative month names forms, the :data:`!month_name` " -"sequence may not be suitable when a month name stands by itself and not as " -"part of a date. For instance, in Greek and in many Slavic and Baltic " -"languages, :data:`!month_name` will produce the month in genitive case. " -"Use :data:`standalone_month_name` for a form suitable for standalone use." -msgstr "" - -#: library/calendar.rst:518 -#, fuzzy -msgid "" -"A sequence that represents the abbreviated months of the year in the current " -"locale. This follows normal convention of January being month number 1, so " -"it has a length of 13 and ``month_abbr[0]`` is the empty string." -msgstr "" -"Un tableau qui représente les mois de l'année en abrégé pour les paramètres " -"régionaux actifs. Celui-ci respectent la convention usuelle où janvier est " -"le mois numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la " -"chaîne vide." - -#: library/calendar.rst:528 -msgid "" -"In locales with alternative month names forms, the :data:`!month_abbr` " -"sequence may not be suitable when a month name stands by itself and not as " -"part of a date. Use :data:`standalone_month_abbr` for a form suitable for " -"standalone use." -msgstr "" - -#: library/calendar.rst:535 -#, fuzzy -msgid "" -"A sequence that represents the months of the year in the current locale in " -"the standalone form if the locale provides one. Else it is equivalent " -"to :data:`month_name`." -msgstr "" -"Un tableau qui représente les mois de l'année pour les paramètres régionaux " -"actifs. Ceux-ci respectent la convention usuelle où janvier est le mois " -"numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la chaîne " -"vide." - -#: library/calendar.rst:544 -#, fuzzy -msgid "" -"A sequence that represents the abbreviated months of the year in the current " -"locale in the standalone form if the locale provides one. Else it is " -"equivalent to :data:`month_abbr`." -msgstr "" -"Un tableau qui représente les mois de l'année en abrégé pour les paramètres " -"régionaux actifs. Celui-ci respectent la convention usuelle où janvier est " -"le mois numéro 1, donc il a une longueur de 13 et ``month_name[0]`` est la " -"chaîne vide." - -#: library/calendar.rst:564 -#, fuzzy -msgid "" -"Aliases for the months of the year, where ``JANUARY`` is ``1`` and " -"``DECEMBER`` is ``12``." -msgstr "" -"Alias pour les nombres des jours de la semaine. Lundi (``MONDAY``) est ``0`` " -"et dimanche (``SUNDAY``) est ``6``." - -#: library/calendar.rst:572 -msgid "" -"Enumeration defining months of the year as integer constants. The members of " -"this enumeration are exported to the module scope as :data:`JANUARY` " -"through :data:`DECEMBER`." -msgstr "" - -#: library/calendar.rst:579 -#, fuzzy -msgid "The :mod:`!calendar` module defines the following exceptions:" -msgstr "Le module :mod:`calendar` exporte les attributs suivants :" - -#: library/calendar.rst:583 -msgid "" -"A subclass of :exc:`ValueError` and :exc:`IndexError`, raised when the given " -"month number is outside of the range 1-12 (inclusive)." -msgstr "" - -#: library/calendar.rst:586 -msgid "" -":exc:`IllegalMonthError` is now also a subclass of :exc:`ValueError`. New " -"code should avoid catching :exc:`IndexError`." -msgstr "" - -#: library/calendar.rst:593 -msgid "The invalid month number." -msgstr "" - -#: library/calendar.rst:598 -msgid "" -"A subclass of :exc:`ValueError`, raised when the given weekday number is " -"outside of the range 0-6 (inclusive)." -msgstr "" - -#: library/calendar.rst:603 -msgid "The invalid weekday number." -msgstr "" - -#: library/calendar.rst:608 -msgid "Module :mod:`datetime`" -msgstr "Module :mod:`datetime`" - -#: library/calendar.rst:609 -msgid "" -"Object-oriented interface to dates and times with similar functionality to " -"the :mod:`time` module." -msgstr "" -"Interface orientée objet pour les dates et les heures avec des " -"fonctionnalités similaires au module :mod:`time`." - -#: library/calendar.rst:612 -msgid "Module :mod:`time`" -msgstr "Module :mod:`time`" - -#: library/calendar.rst:613 -msgid "Low-level time related functions." -msgstr "Fonctions bas niveau relatives au temps." - -#: library/calendar.rst:619 -#, fuzzy -msgid "Command-line usage" -msgstr "Utilisation en ligne de commande." - -#: library/calendar.rst:623 -msgid "" -"The :mod:`!calendar` module can be executed as a script from the command " -"line to interactively print a calendar." -msgstr "" - -#: library/calendar.rst:633 -msgid "For example, to print a calendar for the year 2000:" -msgstr "" - -#: library/calendar.rst:676 -msgid "The following options are accepted:" -msgstr "Les options suivantes sont acceptées :" - -#: library/calendar.rst:683 -msgid "Show the help message and exit." -msgstr "Affiche un message d'aide et quitte." - -#: library/calendar.rst:688 -msgid "The locale to use for month and weekday names. Defaults to English." -msgstr "" - -#: library/calendar.rst:694 -msgid "" -"The encoding to use for output. :option:`--encoding` is required " -"if :option:`--locale` is set." -msgstr "" - -#: library/calendar.rst:700 -msgid "Print the calendar to the terminal as text, or as an HTML document." -msgstr "" - -#: library/calendar.rst:706 -msgid "" -"The weekday to start each week. Must be a number between 0 (Monday) and 6 " -"(Sunday). Defaults to 0." -msgstr "" - -#: library/calendar.rst:714 -msgid "The year to print the calendar for. Defaults to the current year." -msgstr "" - -#: library/calendar.rst:720 -msgid "" -"The month of the specified :option:`year` to print the calendar for. Must be " -"a number between 1 and 12. Defaults to printing a calendar for the full year." -msgstr "" - -#: library/calendar.rst:725 -msgid "*Text-mode options:*" -msgstr "" - -#: library/calendar.rst:729 -msgid "" -"The width of the date column in terminal columns. The date is printed " -"centred in the column. Any value lower than 2 is ignored. Defaults to 2." -msgstr "" - -#: library/calendar.rst:737 -msgid "" -"The number of lines for each week in terminal rows. The date is printed top-" -"aligned. Any value lower than 1 is ignored. Defaults to 1." -msgstr "" - -#: library/calendar.rst:745 -msgid "" -"The space between months in columns. Any value lower than 2 is ignored. " -"Defaults to 6." -msgstr "" - -#: library/calendar.rst:752 -msgid "The number of months printed per row. Defaults to 3." -msgstr "" - -#: library/calendar.rst:755 -msgid "" -"By default, today's date is highlighted in color and can be :ref:`controlled " -"using environment variables `." -msgstr "" - -#: library/calendar.rst:759 -msgid "" -"By default, the month is now also highlighted in color, and the days of the " -"week are also in color. This behavior can be :ref:`controlled using " -"environment variables `." -msgstr "" - -#: library/calendar.rst:764 -msgid "*HTML-mode options:*" -msgstr "" - -#: library/calendar.rst:768 -msgid "" -"The path of a CSS stylesheet to use for the calendar. This must either be " -"relative to the generated HTML, or an absolute HTTP or ``file:///`` URL." -msgstr "" diff --git a/library/cgi.po b/library/cgi.po deleted file mode 100644 index 28ffd2b8a2..0000000000 --- a/library/cgi.po +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/cgi.rst:2 -msgid ":mod:`!cgi` --- Common Gateway Interface support" -msgstr "" - -#: library/cgi.rst:10 -msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." -msgstr "" - -#: library/cgi.rst:14 -msgid "" -"A fork of the module on PyPI can be used instead: :pypi:`legacy-cgi`. This " -"is a copy of the cgi module, no longer maintained or supported by the core " -"Python team." -msgstr "" - -#: library/cgi.rst:18 -msgid "" -"The last version of Python that provided the :mod:`!cgi` module was `Python " -"3.12 `_." -msgstr "" diff --git a/library/cgitb.po b/library/cgitb.po deleted file mode 100644 index ede007ed4c..0000000000 --- a/library/cgitb.po +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/cgitb.rst:2 -msgid ":mod:`!cgitb` --- Traceback manager for CGI scripts" -msgstr "" - -#: library/cgitb.rst:10 -msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." -msgstr "" - -#: library/cgitb.rst:14 -msgid "" -"A fork of the module on PyPI can now be used instead: :pypi:`legacy-cgi`. " -"This is a copy of the cgi module, no longer maintained or supported by the " -"core Python team." -msgstr "" - -#: library/cgitb.rst:18 -msgid "" -"The last version of Python that provided the :mod:`!cgitb` module was " -"`Python 3.12 `_." -msgstr "" diff --git a/library/chunk.po b/library/chunk.po deleted file mode 100644 index 8f4f6d3b7a..0000000000 --- a/library/chunk.po +++ /dev/null @@ -1,33 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/chunk.rst:2 -msgid ":mod:`!chunk` --- Read IFF chunked data" -msgstr "" - -#: library/chunk.rst:10 -msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." -msgstr "" - -#: library/chunk.rst:14 -msgid "" -"The last version of Python that provided the :mod:`!chunk` module was " -"`Python 3.12 `_." -msgstr "" diff --git a/library/cmath.po b/library/cmath.po deleted file mode 100644 index a24baa8192..0000000000 --- a/library/cmath.po +++ /dev/null @@ -1,805 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-05-28 20:19+0200\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.3\n" - -#: library/cmath.rst:2 -#, fuzzy -msgid ":mod:`!cmath` --- Mathematical functions for complex numbers" -msgstr "Fonctions mathématiques pour nombres complexes — :mod:`cmath`" - -#: library/cmath.rst:9 -#, fuzzy -msgid "" -"This module provides access to mathematical functions for complex numbers. " -"The functions in this module accept integers, floating-point numbers or " -"complex numbers as arguments. They will also accept any Python object that " -"has either a :meth:`~object.__complex__` or a :meth:`~object.__float__` " -"method: these methods are used to convert the object to a complex or " -"floating-point number, respectively, and the function is then applied to the " -"result of the conversion." -msgstr "" -"Ce module fournit l'accès aux fonctions mathématiques pour les nombres " -"complexes. Les fonctions de ce module acceptent les entiers, les nombres " -"flottants ou les nombres complexes comme arguments. Elles acceptent " -"également tout objet Python ayant une méthode :meth:`__complex__` " -"(respectivement :meth:`__float__`) : cette méthode est utilisée pour " -"convertir l’objet en nombre complexe (respectivement un nombre flottant) et " -"la fonction est ensuite appliquée sur le résultat de la conversion." - -#: library/cmath.rst:18 -msgid "" -"For functions involving branch cuts, we have the problem of deciding how to " -"define those functions on the cut itself. Following Kahan's \"Branch cuts " -"for complex elementary functions\" paper, as well as Annex G of C99 and " -"later C standards, we use the sign of zero to distinguish one side of the " -"branch cut from the other: for a branch cut along (a portion of) the real " -"axis we look at the sign of the imaginary part, while for a branch cut along " -"the imaginary axis we look at the sign of the real part." -msgstr "" - -#: library/cmath.rst:26 -msgid "" -"For example, the :func:`cmath.sqrt` function has a branch cut along the " -"negative real axis. An argument of ``-2-0j`` is treated as though it lies " -"*below* the branch cut, and so gives a result on the negative imaginary " -"axis::" -msgstr "" - -#: library/cmath.rst:34 -msgid "" -"But an argument of ``-2+0j`` is treated as though it lies above the branch " -"cut::" -msgstr "" - -#: library/cmath.rst:42 -#, fuzzy -msgid "**Conversions to and from polar coordinates**" -msgstr "Conversion vers et à partir de coordonnées polaires" - -#: library/cmath.rst:44 -msgid ":func:`phase(z) `" -msgstr "" - -#: library/cmath.rst:44 -#, fuzzy -msgid "Return the phase of *z*" -msgstr "Renvoie le sinus de *x*." - -#: library/cmath.rst:45 -msgid ":func:`polar(z) `" -msgstr "" - -#: library/cmath.rst:45 -#, fuzzy -msgid "Return the representation of *z* in polar coordinates" -msgstr "Conversion vers et à partir de coordonnées polaires" - -#: library/cmath.rst:46 -msgid ":func:`rect(r, phi) `" -msgstr "" - -#: library/cmath.rst:46 -#, fuzzy -msgid "Return the complex number *z* with polar coordinates *r* and *phi*" -msgstr "" -"Renvoie le nombre complexe *x* dont les coordonnées polaires sont *r* et " -"*phi*. Équivalent à ``r * (math.cos(phi) + math.sin(phi)*1j)``." - -#: library/cmath.rst:48 -#, fuzzy -msgid "**Power and logarithmic functions**" -msgstr "Fonctions logarithme et exponentielle" - -#: library/cmath.rst:50 -msgid ":func:`exp(z) `" -msgstr "" - -#: library/cmath.rst:50 -msgid "Return *e* raised to the power *z*" -msgstr "" - -#: library/cmath.rst:51 -msgid ":func:`log(z[, base]) `" -msgstr "" - -#: library/cmath.rst:51 -msgid "Return the logarithm of *z* to the given *base* (*e* by default)" -msgstr "" - -#: library/cmath.rst:52 -msgid ":func:`log10(z) `" -msgstr "" - -#: library/cmath.rst:52 -#, fuzzy -msgid "Return the base-10 logarithm of *z*" -msgstr "Renvoie la tangente de *x*." - -#: library/cmath.rst:53 -msgid ":func:`sqrt(z) `" -msgstr "" - -#: library/cmath.rst:53 -#, fuzzy -msgid "Return the square root of *z*" -msgstr "Renvoie le sinus de *x*." - -#: library/cmath.rst:55 -#, fuzzy -msgid "**Trigonometric functions**" -msgstr "Fonctions trigonométriques" - -#: library/cmath.rst:57 -msgid ":func:`acos(z) `" -msgstr "" - -#: library/cmath.rst:57 -#, fuzzy -msgid "Return the arc cosine of *z*" -msgstr "Renvoie le cosinus de *x*." - -#: library/cmath.rst:58 -msgid ":func:`asin(z) `" -msgstr "" - -#: library/cmath.rst:58 -#, fuzzy -msgid "Return the arc sine of *z*" -msgstr "Renvoie le cosinus de *x*." - -#: library/cmath.rst:59 -msgid ":func:`atan(z) `" -msgstr "" - -#: library/cmath.rst:59 -#, fuzzy -msgid "Return the arc tangent of *z*" -msgstr "Renvoie la tangente de *x*." - -#: library/cmath.rst:60 -msgid ":func:`cos(z) `" -msgstr "" - -#: library/cmath.rst:60 -#, fuzzy -msgid "Return the cosine of *z*" -msgstr "Renvoie le cosinus de *x*." - -#: library/cmath.rst:61 -msgid ":func:`sin(z) `" -msgstr "" - -#: library/cmath.rst:61 -#, fuzzy -msgid "Return the sine of *z*" -msgstr "Renvoie le sinus de *x*." - -#: library/cmath.rst:62 -msgid ":func:`tan(z) `" -msgstr "" - -#: library/cmath.rst:62 -#, fuzzy -msgid "Return the tangent of *z*" -msgstr "Renvoie la tangente de *x*." - -#: library/cmath.rst:64 -#, fuzzy -msgid "**Hyperbolic functions**" -msgstr "Fonctions hyperboliques" - -#: library/cmath.rst:66 -msgid ":func:`acosh(z) `" -msgstr "" - -#: library/cmath.rst:66 -#, fuzzy -msgid "Return the inverse hyperbolic cosine of *z*" -msgstr "Renvoie le cosinus hyperbolique de *x*." - -#: library/cmath.rst:67 -msgid ":func:`asinh(z) `" -msgstr "" - -#: library/cmath.rst:67 -#, fuzzy -msgid "Return the inverse hyperbolic sine of *z*" -msgstr "Renvoie le sinus hyperbolique de *x*." - -#: library/cmath.rst:68 -msgid ":func:`atanh(z) `" -msgstr "" - -#: library/cmath.rst:68 -#, fuzzy -msgid "Return the inverse hyperbolic tangent of *z*" -msgstr "Renvoie la tangente hyperbolique de *x*." - -#: library/cmath.rst:69 -msgid ":func:`cosh(z) `" -msgstr "" - -#: library/cmath.rst:69 -#, fuzzy -msgid "Return the hyperbolic cosine of *z*" -msgstr "Renvoie le cosinus hyperbolique de *x*." - -#: library/cmath.rst:70 -msgid ":func:`sinh(z) `" -msgstr "" - -#: library/cmath.rst:70 -#, fuzzy -msgid "Return the hyperbolic sine of *z*" -msgstr "Renvoie le sinus hyperbolique de *x*." - -#: library/cmath.rst:71 -msgid ":func:`tanh(z) `" -msgstr "" - -#: library/cmath.rst:71 -#, fuzzy -msgid "Return the hyperbolic tangent of *z*" -msgstr "Renvoie la tangente hyperbolique de *x*." - -#: library/cmath.rst:73 -#, fuzzy -msgid "**Classification functions**" -msgstr "Fonctions de classifications" - -#: library/cmath.rst:75 -msgid ":func:`isfinite(z) `" -msgstr "" - -#: library/cmath.rst:75 -msgid "Check if all components of *z* are finite" -msgstr "" - -#: library/cmath.rst:76 -msgid ":func:`isinf(z) `" -msgstr "" - -#: library/cmath.rst:76 -msgid "Check if any component of *z* is infinite" -msgstr "" - -#: library/cmath.rst:77 -msgid ":func:`isnan(z) `" -msgstr "" - -#: library/cmath.rst:77 -msgid "Check if any component of *z* is a NaN" -msgstr "" - -#: library/cmath.rst:78 -msgid ":func:`isclose(a, b, *, rel_tol, abs_tol) `" -msgstr "" - -#: library/cmath.rst:78 -#, fuzzy -msgid "Check if the values *a* and *b* are close to each other" -msgstr "" -"Renvoie ``True`` si les valeurs *a* et *b* sont proches l'une de l'autre, et " -"``False`` sinon." - -#: library/cmath.rst:80 -#, fuzzy -msgid "**Constants**" -msgstr "Constantes" - -#: library/cmath.rst:82 -msgid ":data:`pi`" -msgstr "" - -#: library/cmath.rst:82 -msgid "*π* = 3.141592..." -msgstr "" - -#: library/cmath.rst:83 -msgid ":data:`e`" -msgstr "" - -#: library/cmath.rst:83 -msgid "*e* = 2.718281..." -msgstr "" - -#: library/cmath.rst:84 -msgid ":data:`tau`" -msgstr "" - -#: library/cmath.rst:84 -msgid "*τ* = 2\\ *π* = 6.283185..." -msgstr "" - -#: library/cmath.rst:85 -msgid ":data:`inf`" -msgstr "" - -#: library/cmath.rst:85 -msgid "Positive infinity" -msgstr "" - -#: library/cmath.rst:86 -msgid ":data:`infj`" -msgstr "" - -#: library/cmath.rst:86 -msgid "Pure imaginary infinity" -msgstr "" - -#: library/cmath.rst:87 -msgid ":data:`nan`" -msgstr "" - -#: library/cmath.rst:87 -msgid "\"Not a number\" (NaN)" -msgstr "" - -#: library/cmath.rst:88 -msgid ":data:`nanj`" -msgstr "" - -#: library/cmath.rst:88 -msgid "Pure imaginary NaN" -msgstr "" - -#: library/cmath.rst:93 -msgid "Conversions to and from polar coordinates" -msgstr "Conversion vers et à partir de coordonnées polaires" - -#: library/cmath.rst:95 -#, fuzzy -msgid "" -"A Python complex number ``z`` is stored internally using *rectangular* or " -"*Cartesian* coordinates. It is completely determined by its *real part* " -"``z.real`` and its *imaginary part* ``z.imag``." -msgstr "" -"Un nombre complexe Python ``z`` est stocké de manière interne en coordonnées " -"*cartésiennes*. Il est entièrement défini par sa *partie réelle* ``z.real`` " -"et sa *partie complexe* ``z.imag``. En d'autres termes ::" - -#: library/cmath.rst:99 -msgid "" -"*Polar coordinates* give an alternative way to represent a complex number. " -"In polar coordinates, a complex number *z* is defined by the modulus *r* and " -"the phase angle *phi*. The modulus *r* is the distance from *z* to the " -"origin, while the phase *phi* is the counterclockwise angle, measured in " -"radians, from the positive x-axis to the line segment that joins the origin " -"to *z*." -msgstr "" -"Les *coordonnées polaires* donnent une manière alternative de représenter un " -"nombre complexe. En coordonnées polaires, un nombre complexe *z* est défini " -"par son module *r* et par son argument (*angle de phase*) *phi*. Le module " -"*r* est la distance entre *z* et l'origine, alors que l'argument *phi* est " -"l'angle (dans le sens inverse des aiguilles d'une montre, ou sens " -"trigonométrique), mesuré en radians, à partir de l'axe X positif, et vers le " -"segment de droite joignant *z* à l'origine." - -#: library/cmath.rst:106 -msgid "" -"The following functions can be used to convert from the native rectangular " -"coordinates to polar coordinates and back." -msgstr "" -"Les fonctions suivantes peuvent être utilisées pour convertir à partir des " -"coordonnées rectangulaires natives vers les coordonnées polaires, et vice-" -"versa." - -#: library/cmath.rst:111 -#, fuzzy -msgid "" -"Return the phase of *z* (also known as the *argument* of *z*), as a float. " -"``phase(z)`` is equivalent to ``math.atan2(z.imag, z.real)``. The result " -"lies in the range [-\\ *π*, *π*], and the branch cut for this operation lies " -"along the negative real axis. The sign of the result is the same as the " -"sign of ``z.imag``, even when ``z.imag`` is zero::" -msgstr "" -"Renvoie l'argument de *x*, dans un nombre flottant. ``phase(x)`` est " -"équivalent à ``math.atan2(x.imag, x.real)``. Le résultat se situe dans " -"l'intervalle [-\\ *π*, *π*], et la coupure par cette opération se situe sur " -"la partie négative de l'axe des réels, continue par au-dessus. Sur les " -"systèmes supportant les zéros signés (ce qui inclut la plupart des systèmes " -"utilisés actuellement), cela signifie que le signe du résultat est le même " -"que ``x.imag`` même quand ``x.imag`` vaut zéro ::" - -#: library/cmath.rst:125 -#, fuzzy -msgid "" -"The modulus (absolute value) of a complex number *z* can be computed using " -"the built-in :func:`abs` function. There is no separate :mod:`!cmath` " -"module function for this operation." -msgstr "" -"Le module (valeur absolue) d'un nombre complexe *x* peut être calculé en " -"utilisant la primitive :func:`abs`. Il n'y a pas de fonction spéciale du " -"module :mod:`cmath` pour cette opération." - -#: library/cmath.rst:132 -#, fuzzy -msgid "" -"Return the representation of *z* in polar coordinates. Returns a pair ``(r, " -"phi)`` where *r* is the modulus of *z* and *phi* is the phase of *z*. " -"``polar(z)`` is equivalent to ``(abs(z), phase(z))``." -msgstr "" -"Renvoie la représentation de *x* en coordonnées polaires. Renvoie une paire " -"``(r, phi)`` où *r* est le module de *x* et phi est l'argument de *x*. " -"``polar(x)`` est équivalent à ``(abs(x), phase(x))``." - -#: library/cmath.rst:140 -#, fuzzy -msgid "" -"Return the complex number *z* with polar coordinates *r* and *phi*. " -"Equivalent to ``complex(r * math.cos(phi), r * math.sin(phi))``." -msgstr "" -"Renvoie le nombre complexe *x* dont les coordonnées polaires sont *r* et " -"*phi*. Équivalent à ``r * (math.cos(phi) + math.sin(phi)*1j)``." - -#: library/cmath.rst:145 -msgid "Power and logarithmic functions" -msgstr "Fonctions logarithme et exponentielle" - -#: library/cmath.rst:149 -#, fuzzy -msgid "" -"Return *e* raised to the power *z*, where *e* is the base of natural " -"logarithms." -msgstr "" -"Renvoie *e* élevé à la puissance *x*, où *e* est la base des logarithmes " -"naturels." - -#: library/cmath.rst:155 -#, fuzzy -msgid "" -"Return the logarithm of *z* to the given *base*. If the *base* is not " -"specified, returns the natural logarithm of *z*. There is one branch cut, " -"from 0 along the negative real axis to -∞." -msgstr "" -"Renvoie le logarithme de *x* dans la *base* précisée. Si la *base* n'est pas " -"spécifiée, le logarithme *naturel* (népérien) de *x* est renvoyé. Il y a une " -"coupure, partant de 0 sur l'axe réel négatif et vers ``-∞``, continue par au-" -"dessus." - -#: library/cmath.rst:162 -#, fuzzy -msgid "" -"Return the base-10 logarithm of *z*. This has the same branch cut " -"as :func:`log`." -msgstr "" -"Renvoie le logarithme en base 10 de *x*. Elle a la même coupure " -"que :func:`log`." - -#: library/cmath.rst:168 -#, fuzzy -msgid "" -"Return the square root of *z*. This has the same branch cut as :func:`log`." -msgstr "" -"Renvoie la racine carrée de *x*. Elle a la même coupure que :func:`log`." - -#: library/cmath.rst:172 -msgid "Trigonometric functions" -msgstr "Fonctions trigonométriques" - -#: library/cmath.rst:176 -#, fuzzy -msgid "" -"Return the arc cosine of *z*. There are two branch cuts: One extends right " -"from 1 along the real axis to ∞. The other extends left from -1 along the " -"real axis to -∞." -msgstr "" -"Renvoie l'arc cosinus de *x*. Il y a deux coupures : une allant de 1 sur " -"l'axe réel vers ∞, continue par en-dessous ; l'autre allant de ``-1`` sur " -"l'axe réel vers ``-∞``, continue par au-dessus." - -#: library/cmath.rst:183 -#, fuzzy -msgid "" -"Return the arc sine of *z*. This has the same branch cuts as :func:`acos`." -msgstr "" -"Renvoie l'arc sinus de *x*. Elle a les mêmes coupures que :func:`acos`." - -#: library/cmath.rst:188 -#, fuzzy -msgid "" -"Return the arc tangent of *z*. There are two branch cuts: One extends from " -"``1j`` along the imaginary axis to ``∞j``. The other extends from ``-1j`` " -"along the imaginary axis to ``-∞j``." -msgstr "" -"Renvoie la tangente de *x*. l y a deux coupures : une allant de ``1j`` sur " -"l'axe imaginaire vers ``∞j``, continue par la droite ; l'autre allant de " -"``-1j`` sur l'axe imaginaire vers ``-∞j``, continue par la gauche." - -#: library/cmath.rst:195 -#, fuzzy -msgid "Return the cosine of *z*." -msgstr "Renvoie le cosinus de *x*." - -#: library/cmath.rst:200 -#, fuzzy -msgid "Return the sine of *z*." -msgstr "Renvoie le sinus de *x*." - -#: library/cmath.rst:205 -#, fuzzy -msgid "Return the tangent of *z*." -msgstr "Renvoie la tangente de *x*." - -#: library/cmath.rst:209 -msgid "Hyperbolic functions" -msgstr "Fonctions hyperboliques" - -#: library/cmath.rst:213 -#, fuzzy -msgid "" -"Return the inverse hyperbolic cosine of *z*. There is one branch cut, " -"extending left from 1 along the real axis to -∞." -msgstr "" -"Renvoie l'arc cosinus hyperbolique de *x*. Il y a une coupure, allant de 1 " -"sur l'axe réel vers ``-∞``, continue par au-dessus." - -#: library/cmath.rst:219 -#, fuzzy -msgid "" -"Return the inverse hyperbolic sine of *z*. There are two branch cuts: One " -"extends from ``1j`` along the imaginary axis to ``∞j``. The other extends " -"from ``-1j`` along the imaginary axis to ``-∞j``." -msgstr "" -"Renvoie l'arc sinus hyperbolique de *x*. Il y a deux coupures : une allant " -"de ``1j`` sur l'axe imaginaire vers ``∞j``, continue par la droite ; l'autre " -"allant de ``-1j`` sur l'axe imaginaire vers ``∞j``, continue par la gauche." - -#: library/cmath.rst:226 -#, fuzzy -msgid "" -"Return the inverse hyperbolic tangent of *z*. There are two branch cuts: One " -"extends from ``1`` along the real axis to ``∞``. The other extends from " -"``-1`` along the real axis to ``-∞``." -msgstr "" -"Renvoie l'arc tangente hyperbolique de *x*. Il y a deux coupures : une " -"allant de ``1`` sur l'axe réel allant vers ``∞``, continue par en-dessous ; " -"l'autre allant de ``-1`` sur l'axe réel vers ``-∞``, continue par au-dessus." - -#: library/cmath.rst:233 -#, fuzzy -msgid "Return the hyperbolic cosine of *z*." -msgstr "Renvoie le cosinus hyperbolique de *x*." - -#: library/cmath.rst:238 -#, fuzzy -msgid "Return the hyperbolic sine of *z*." -msgstr "Renvoie le sinus hyperbolique de *x*." - -#: library/cmath.rst:243 -#, fuzzy -msgid "Return the hyperbolic tangent of *z*." -msgstr "Renvoie la tangente hyperbolique de *x*." - -#: library/cmath.rst:247 -msgid "Classification functions" -msgstr "Fonctions de classifications" - -#: library/cmath.rst:251 -#, fuzzy -msgid "" -"Return ``True`` if both the real and imaginary parts of *z* are finite, and " -"``False`` otherwise." -msgstr "" -"Renvoie ``True`` si la partie réelle *et* la partie imaginaire de *x* sont " -"finies, et ``False`` sinon." - -#: library/cmath.rst:259 -#, fuzzy -msgid "" -"Return ``True`` if either the real or the imaginary part of *z* is an " -"infinity, and ``False`` otherwise." -msgstr "" -"Renvoie ``True`` si soit la partie réelle *ou* la partie imaginaire de *x* " -"est infinie, et ``False`` sinon." - -#: library/cmath.rst:265 -#, fuzzy -msgid "" -"Return ``True`` if either the real or the imaginary part of *z* is a NaN, " -"and ``False`` otherwise." -msgstr "" -"Renvoie ``True`` si soit la partie réelle *ou* la partie imaginaire de *x* " -"est NaN, et ``False`` sinon." - -#: library/cmath.rst:271 -msgid "" -"Return ``True`` if the values *a* and *b* are close to each other and " -"``False`` otherwise." -msgstr "" -"Renvoie ``True`` si les valeurs *a* et *b* sont proches l'une de l'autre, et " -"``False`` sinon." - -#: library/cmath.rst:274 -#, fuzzy -msgid "" -"Whether or not two values are considered close is determined according to " -"given absolute and relative tolerances. If no errors occur, the result will " -"be: ``abs(a-b) <= max(rel_tol * max(abs(a), abs(b)), abs_tol)``." -msgstr "" -"Déterminer si deux valeurs sont proches se fait à l'aide des tolérances " -"absolues et relatives données en paramètres." - -#: library/cmath.rst:278 -#, fuzzy -msgid "" -"*rel_tol* is the relative tolerance -- it is the maximum allowed difference " -"between *a* and *b*, relative to the larger absolute value of *a* or *b*. " -"For example, to set a tolerance of 5%, pass ``rel_tol=0.05``. The default " -"tolerance is ``1e-09``, which assures that the two values are the same " -"within about 9 decimal digits. *rel_tol* must be nonnegative and less than " -"``1.0``." -msgstr "" -"*rel_tol* est la tolérance relative -- c'est la différence maximale permise " -"entre *a* et *b*, relativement à la plus grande valeur de *a* ou de *b*. Par " -"exemple, pour définir une tolérance de 5%,, précisez ``rel_tol=0.05``. La " -"tolérance par défaut est ``1e-09``, ce qui assure que deux valeurs sont les " -"mêmes à partir de la 9\\ :sup:`e` décimale. *rel_tol* doit être supérieur à " -"zéro." - -#: library/cmath.rst:285 -msgid "" -"*abs_tol* is the absolute tolerance; it defaults to ``0.0`` and it must be " -"nonnegative. When comparing ``x`` to ``0.0``, ``isclose(x, 0)`` is computed " -"as ``abs(x) <= rel_tol * abs(x)``, which is ``False`` for any ``x`` and " -"rel_tol less than ``1.0``. So add an appropriate positive abs_tol argument " -"to the call." -msgstr "" - -#: library/cmath.rst:291 -msgid "" -"The IEEE 754 special values of ``NaN``, ``inf``, and ``-inf`` will be " -"handled according to IEEE rules. Specifically, ``NaN`` is not considered " -"close to any other value, including ``NaN``. ``inf`` and ``-inf`` are only " -"considered close to themselves." -msgstr "" -"Les valeurs spécifiques suivantes : ``NaN``, ``inf``, et ``-inf`` définies " -"dans la norme IEEE 754 seront manipulées selon les règles du standard IEEE. " -"En particulier, ``NaN`` n'est considéré proche d'aucune autre valeur, " -"``NaN`` inclus. ``inf`` et ``-inf`` ne sont considérés proches que d'eux-" -"mêmes." - -#: library/cmath.rst:300 -msgid ":pep:`485` -- A function for testing approximate equality" -msgstr ":pep:`485` -- Une fonction pour tester des égalités approximées" - -#: library/cmath.rst:304 -msgid "Constants" -msgstr "Constantes" - -#: library/cmath.rst:308 -msgid "The mathematical constant *π*, as a float." -msgstr "La constante mathématique *π*, en tant que flottant." - -#: library/cmath.rst:313 -msgid "The mathematical constant *e*, as a float." -msgstr "La constante mathématique *e*, en tant que flottant." - -#: library/cmath.rst:318 -msgid "The mathematical constant *τ*, as a float." -msgstr "La constante mathématique *τ*, sous forme de flottant." - -#: library/cmath.rst:325 -msgid "Floating-point positive infinity. Equivalent to ``float('inf')``." -msgstr "" -"Nombre à virgule flottante positif infini. Équivaut à ``float('inf')``." - -#: library/cmath.rst:332 -msgid "" -"Complex number with zero real part and positive infinity imaginary part. " -"Equivalent to ``complex(0.0, float('inf'))``." -msgstr "" -"Nombre complexe dont la partie réelle vaut zéro et la partie imaginaire un " -"infini positif. Équivalent à ``complex(0.0, float('inf'))``." - -#: library/cmath.rst:340 -#, fuzzy -msgid "" -"A floating-point \"not a number\" (NaN) value. Equivalent to " -"``float('nan')``. See also :data:`math.nan`." -msgstr "" -"Un nombre à virgule flottante *NaN* (*Not a number*). Équivalent à " -"``float('nan')``." - -#: library/cmath.rst:348 -msgid "" -"Complex number with zero real part and NaN imaginary part. Equivalent to " -"``complex(0.0, float('nan'))``." -msgstr "" -"Nombre complexe dont la partie réelle vaut zéro et la partie imaginaire vaut " -"un *NaN*. Équivalent à ``complex(0.0, float('nan'))``." - -#: library/cmath.rst:356 -#, fuzzy -msgid "" -"Note that the selection of functions is similar, but not identical, to that " -"in module :mod:`math`. The reason for having two modules is that some users " -"aren't interested in complex numbers, and perhaps don't even know what they " -"are. They would rather have ``math.sqrt(-1)`` raise an exception than " -"return a complex number. Also note that the functions defined in :mod:`!" -"cmath` always return a complex number, even if the answer can be expressed " -"as a real number (in which case the complex number has an imaginary part of " -"zero)." -msgstr "" -"Notez que la sélection de fonctions est similaire, mais pas identique, à " -"celles du module :mod:`math`. La raison d'avoir deux modules est que " -"certains utilisateurs ne sont pas intéressés par les nombres complexes, et " -"peut-être ne savent même pas ce qu'ils sont. Ils préféreraient alors que " -"``math.sqrt(-1)`` lève une exception au lieu de renvoyer un nombre complexe. " -"Également, notez que les fonctions définies dans :mod:`cmath` renvoient " -"toujours un nombre complexe, même si le résultat peut être exprimé à l'aide " -"d'un nombre réel (en quel cas la partie imaginaire du complexe vaut zéro)." - -#: library/cmath.rst:364 -msgid "" -"A note on branch cuts: They are curves along which the given function fails " -"to be continuous. They are a necessary feature of many complex functions. " -"It is assumed that if you need to compute with complex functions, you will " -"understand about branch cuts. Consult almost any (not too elementary) book " -"on complex variables for enlightenment. For information of the proper " -"choice of branch cuts for numerical purposes, a good reference should be the " -"following:" -msgstr "" -"Une note sur les *coupures* : ce sont des courbes sur lesquelles la fonction " -"n'est pas continue. Ce sont des caractéristiques nécessaires de beaucoup de " -"fonctions complexes. Il est supposé que si vous avez besoin d'utiliser des " -"fonctions complexes, vous comprendrez ce que sont les coupures. Consultez " -"n'importe quel livre (pas trop élémentaire) sur les variables complexes pour " -"plus d'informations. Pour des informations sur les choix des coupures à des " -"fins numériques, voici une bonne référence :" - -#: library/cmath.rst:374 -msgid "" -"Kahan, W: Branch cuts for complex elementary functions; or, Much ado about " -"nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The state of the " -"art in numerical analysis. Clarendon Press (1987) pp165--211." -msgstr "" -"Kahan, W: Branch cuts for complex elementary functions; or, Much ado about " -"nothing's sign bit. In Iserles, A., and Powell, M. (eds.), The state of the " -"art in numerical analysis. Clarendon Press (1987) pp165--211." - -#~ msgid "" -#~ "*abs_tol* is the minimum absolute tolerance -- useful for comparisons " -#~ "near zero. *abs_tol* must be at least zero." -#~ msgstr "" -#~ "*abs_tol* est la tolérance absolue minimale -- utile pour les " -#~ "comparaisons proches de zéro. *abs_tol* doit valoir au moins zéro." - -#~ msgid "" -#~ "If no errors occur, the result will be: ``abs(a-b) <= max(rel_tol * " -#~ "max(abs(a), abs(b)), abs_tol)``." -#~ msgstr "" -#~ "Si aucune erreur n'est rencontrée, le résultat sera : ``abs(a-b) <= " -#~ "max(rel_tol * max(abs(a), abs(b)), abs_tol)``." - -#~ msgid "module" -#~ msgstr "module" - -#~ msgid "math" -#~ msgstr "*math*" - -#~ msgid "" -#~ "On platforms with hardware and system-level support for signed zeros, " -#~ "functions involving branch cuts are continuous on *both* sides of the " -#~ "branch cut: the sign of the zero distinguishes one side of the branch cut " -#~ "from the other. On platforms that do not support signed zeros the " -#~ "continuity is as specified below." -#~ msgstr "" -#~ "Sur les plate-formes avec un support système et matériel des zéros " -#~ "signés, les fonctions incluant une coupure complexe sont continues *de " -#~ "chaque* côté de la coupure : le signe du zéro distingue les deux " -#~ "extrémités de la coupure. Sur les plate-formes ne supportant pas les " -#~ "zéros signés, la continuité est spécifiée en-dessous." diff --git a/library/cmd.po b/library/cmd.po deleted file mode 100644 index f34a75c36a..0000000000 --- a/library/cmd.po +++ /dev/null @@ -1,486 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-07-21 12:43+0200\n" -"Last-Translator: Edith Viau \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 3.0.1\n" - -#: library/cmd.rst:2 -#, fuzzy -msgid ":mod:`!cmd` --- Support for line-oriented command interpreters" -msgstr ":mod:`cmd` — Interpréteurs en ligne de commande." - -#: library/cmd.rst:7 -msgid "**Source code:** :source:`Lib/cmd.py`" -msgstr "**Code source:** :source:`Lib/cmd.py`" - -#: library/cmd.rst:11 -msgid "" -"The :class:`Cmd` class provides a simple framework for writing line-oriented " -"command interpreters. These are often useful for test harnesses, " -"administrative tools, and prototypes that will later be wrapped in a more " -"sophisticated interface." -msgstr "" -"La :class:`Cmd` fournit une base simple permettant d'écrire des " -"interpréteurs en ligne de commande. Ceux-ci sont souvent utiles pour piloter " -"des tests, pour des outils administratifs, et pour des prototypes destinés à " -"être intégrés à une interface plus sophistiquée." - -#: library/cmd.rst:18 -msgid "" -"A :class:`Cmd` instance or subclass instance is a line-oriented interpreter " -"framework. There is no good reason to instantiate :class:`Cmd` itself; " -"rather, it's useful as a superclass of an interpreter class you define " -"yourself in order to inherit :class:`Cmd`'s methods and encapsulate action " -"methods." -msgstr "" -"Une instance de :class:`Cmd` ou d'une classe en héritant est un *framework* " -"orienté ligne de commande. Il n'y a pas de bonne raison " -"d'instancier :class:`Cmd` directement. Elle est plutôt utile en tant que " -"classe mère d'une classe-interprète que vous définirez afin d'hériter des " -"méthodes de :class:`Cmd` et d'encapsuler les opérations." - -#: library/cmd.rst:23 -msgid "" -"The optional argument *completekey* is the :mod:`readline` name of a " -"completion key; it defaults to :kbd:`Tab`. If *completekey* is " -"not :const:`None` and :mod:`readline` is available, command completion is " -"done automatically." -msgstr "" -"L'argument facultatif *completekey* est le nom :mod:`readline` d'une touche " -"de complétion. Si *completekey* ne vaut pas :const:`None` et " -"que :mod:`readline` est disponible, la complétion de commandes est faite " -"automatiquement." - -#: library/cmd.rst:27 -msgid "" -"The default, ``'tab'``, is treated specially, so that it refers to " -"the :kbd:`Tab` key on every :data:`readline.backend`. Specifically, " -"if :data:`readline.backend` is ``editline``, ``Cmd`` will use ``'^I'`` " -"instead of ``'tab'``. Note that other values are not treated this way, and " -"might only work with a specific backend." -msgstr "" - -#: library/cmd.rst:34 -msgid "" -"The optional arguments *stdin* and *stdout* specify the input and output " -"file objects that the Cmd instance or subclass instance will use for input " -"and output. If not specified, they will default to :data:`sys.stdin` " -"and :data:`sys.stdout`." -msgstr "" -"Les arguments facultatifs *stdin* et *stdout* spécifient les objets-fichiers " -"de lecture et d'écriture que l'instance de Cmd ou d'une classe fille " -"utilisera comme entrée et sortie. Si ces arguments ne sont pas spécifiés, " -"ils prendront comme valeur par défaut :data:`sys.stdin` " -"et :data:`sys.stdout`." - -#: library/cmd.rst:39 -msgid "" -"If you want a given *stdin* to be used, make sure to set the " -"instance's :attr:`use_rawinput` attribute to ``False``, otherwise *stdin* " -"will be ignored." -msgstr "" -"Si vous souhaitez qu'un *stdin* donné soit utilisé, assurez-vous que " -"l'attribut :attr:`use_rawinput` de l'instance vaille ``False``, faute de " -"quoi *stdin* sera ignoré." - -#: library/cmd.rst:43 -msgid "``completekey='tab'`` is replaced by ``'^I'`` for ``editline``." -msgstr "" - -#: library/cmd.rst:50 -msgid "Cmd Objects" -msgstr "Objets Cmd" - -#: library/cmd.rst:52 -msgid "A :class:`Cmd` instance has the following methods:" -msgstr "Une instance de :class:`Cmd` possède les méthodes suivantes :" - -#: library/cmd.rst:57 -msgid "" -"Repeatedly issue a prompt, accept input, parse an initial prefix off the " -"received input, and dispatch to action methods, passing them the remainder " -"of the line as argument." -msgstr "" -"Affiche une invite de commande de manière répétée, accepte une entrée, " -"soustrait un préfixe initial de l'entrée reçue et envoie aux méthodes " -"d'opération la partie restante de l'entrée reçue." - -#: library/cmd.rst:61 -msgid "" -"The optional argument is a banner or intro string to be issued before the " -"first prompt (this overrides the :attr:`intro` class attribute)." -msgstr "" -"L'argument facultatif est une bannière ou chaîne de caractères " -"d'introduction à afficher avant la première invite de commande (il redéfinit " -"l'attribut de classe :attr:`intro`)." - -#: library/cmd.rst:64 -msgid "" -"If the :mod:`readline` module is loaded, input will automatically " -"inherit :program:`bash`\\ -like history-list editing (e.g. :kbd:`Control-P` " -"scrolls back to the last command, :kbd:`Control-N` forward to the next " -"one, :kbd:`Control-F` moves the cursor to the right non-" -"destructively, :kbd:`Control-B` moves the cursor to the left non-" -"destructively, etc.)." -msgstr "" -"Si le module :mod:`readline` est chargé, l'entrée héritera automatiquement " -"d'une édition d'historique similaire à :program:`bash` (Par " -"exemple, :kbd:`Control-P` reviendra à la dernière commande, :kbd:`Control-N` " -"avancera à la suivante, :kbd:`Control-F` déplace le curseur vers la " -"droite, :kbd:`Control-B` déplace le curseur vers la gauche, etc...)." - -#: library/cmd.rst:70 -msgid "An end-of-file on input is passed back as the string ``'EOF'``." -msgstr "" -"Une caractère de fin de fichier est transmis via la chaîne de caractères " -"``'EOF'``." - -#: library/cmd.rst:76 -#, fuzzy -msgid "" -"An interpreter instance will recognize a command name ``foo`` if and only if " -"it has a method :meth:`!do_foo`. As a special case, a line beginning with " -"the character ``'?'`` is dispatched to the method :meth:`do_help`. As " -"another special case, a line beginning with the character ``'!'`` is " -"dispatched to the method :meth:`!do_shell` (if such a method is defined)." -msgstr "" -"Une instance d'un interpréteur reconnaîtra un nom de commande ``foo`` si et " -"seulement si celle-ci possède une méthode :meth:`do_foo`. Les lignes " -"commençant par le caractère ``'?'`` sont un cas particulier: elles sont " -"envoyées à la méthode :meth:`do_help`. Les lignes commençant par le " -"caractère ``'!'`` sont également un cas particulier: elles sont envoyées à " -"la méthode :meth:`do_shell` (si une telle méthode est définie)." - -#: library/cmd.rst:82 -#, fuzzy -msgid "" -"This method will return when the :meth:`postcmd` method returns a true " -"value. The *stop* argument to :meth:`postcmd` is the return value from the " -"command's corresponding :meth:`!do_\\*` method." -msgstr "" -"Cette méthode ne s'arrêtera que lorsque :meth:`postcmd` renverra une valeur " -"vraie. L'argument *stop* de :meth:`postcmd` est la valeur de retour de la " -"méthode :meth:`do_\\*` correspondant à la commande." - -#: library/cmd.rst:86 -#, fuzzy -msgid "" -"If completion is enabled, completing commands will be done automatically, " -"and completing of commands args is done by calling :meth:`!complete_foo` " -"with arguments *text*, *line*, *begidx*, and *endidx*. *text* is the string " -"prefix we are attempting to match: all returned matches must begin with it. " -"*line* is the current input line with leading whitespace removed, *begidx* " -"and *endidx* are the beginning and ending indexes of the prefix text, which " -"could be used to provide different completion depending upon which position " -"the argument is in." -msgstr "" -"Si la complétion est activée, la complétion de commandes sera faite " -"automatiquement; et la complétion d'arguments sera faite en " -"appelant :meth:`complete_foo` avec les arguments *text*, *line*, *begidx*, " -"et *endidx*. *text* est le préfixe que nous cherchons à faire coïncider: " -"toutes les valeurs renvoyées doivent commencer par ce préfixe. *line* est la " -"ligne d'entrée actuelle sans les espaces blancs de début. *begidx* et " -"*endidx* sont les index de début et de fin du préfixe, ils pourraient être " -"utilisés pour fournir différentes complétions en fonction de la position de " -"l'argument." - -#: library/cmd.rst:97 -#, fuzzy -msgid "" -"All subclasses of :class:`Cmd` inherit a predefined :meth:`!do_help`. This " -"method, called with an argument ``'bar'``, invokes the corresponding " -"method :meth:`!help_bar`, and if that is not present, prints the docstring " -"of :meth:`!do_bar`, if available. With no argument, :meth:`!do_help` lists " -"all available help topics (that is, all commands with corresponding :meth:`!" -"help_\\*` methods or commands that have docstrings), and also lists any " -"undocumented commands." -msgstr "" -"Toutes les classes filles de :class:`Cmd` héritent d'une " -"méthode :meth:`do_help` prédéfinie. Cette méthode appellera la " -"méthode :meth:`help_bar` lorsqu'elle est appelée avec un argument ``'bar'``. " -"Si celle-ci n'est pas définie, elle affichera la *docstring* " -"de :meth:`do_bar`, (si elle a une *docstring*). Sans " -"argument, :meth:`do_help` listera tous les sujets d'aide (c'est à dire, " -"toutes les commandes avec une méthode :meth:`help_\\\\*` correspondante ou " -"commande ayant une *docstring*, elle lisera aussi les commandes non " -"documentées." - -#: library/cmd.rst:108 -#, fuzzy -msgid "" -"Interpret the argument as though it had been typed in response to the " -"prompt. This may be overridden, but should not normally need to be; see " -"the :meth:`precmd` and :meth:`postcmd` methods for useful execution hooks. " -"The return value is a flag indicating whether interpretation of commands by " -"the interpreter should stop. If there is a :meth:`!do_\\*` method for the " -"command *str*, the return value of that method is returned, otherwise the " -"return value from the :meth:`default` method is returned." -msgstr "" -"Interprète l'argument comme si il avait été entré en réponse à l'invite de " -"commande. Cette méthode peut être surchargée, mais ne devrait normalement " -"pas avoir besoin de l'être; voir les méthodes :meth:`precmd` " -"et :meth:`postcmd` pour altérer l'exécution d'une commande. La valeur de " -"retour est un *flag* indiquant si l'interprétation de commandes par " -"l'interpréteur devrait arrêter. S'il existe une méthode :meth:`do_\\*` pour " -"la commande *str*, la valeur de retour de cette méthode est renvoyée. Dans " -"le cas contraire, la valeur de retour de la méthode :meth:`default` est " -"renvoyée." - -#: library/cmd.rst:119 -msgid "" -"Method called when an empty line is entered in response to the prompt. If " -"this method is not overridden, it repeats the last nonempty command entered." -msgstr "" -"Méthode appelée quand une ligne vide est entrée en réponse à l'invite de " -"commande. Si cette méthode n'est pas surchargée, elle répète la dernière " -"commande non-vide entrée." - -#: library/cmd.rst:125 -msgid "" -"Method called on an input line when the command prefix is not recognized. If " -"this method is not overridden, it prints an error message and returns." -msgstr "" -"Méthode appelée lorsque le préfixe de commande d'une ligne entrée n'est pas " -"reconnu. Si cette méthode n'est pas surchargée, elle affiche un message " -"d'erreur et s'arrête." - -#: library/cmd.rst:131 -#, fuzzy -msgid "" -"Method called to complete an input line when no command-specific :meth:`!" -"complete_\\*` method is available. By default, it returns an empty list." -msgstr "" -"Méthode appelée pour compléter une ligne entrée quand aucune " -"méthode :meth:`complete_\\*` spécifique à la commande n'est disponible. Par " -"défaut, elle renvoie une liste vide." - -#: library/cmd.rst:137 -msgid "" -"Method called to display a list of strings as a compact set of columns. Each " -"column is only as wide as necessary. Columns are separated by two spaces for " -"readability." -msgstr "" -"Méthode appelée pour afficher une liste de chaînes de caractères sous la " -"forme d'un ensemble compact de colonnes. Chaque colonne est de largeur " -"minimale. Les colonnes sont séparées par deux espaces pour faciliter la " -"lecture." - -#: library/cmd.rst:144 -msgid "" -"Hook method executed just before the command line *line* is interpreted, but " -"after the input prompt is generated and issued. This method is a stub " -"in :class:`Cmd`; it exists to be overridden by subclasses. The return value " -"is used as the command which will be executed by the :meth:`onecmd` method; " -"the :meth:`precmd` implementation may re-write the command or simply return " -"*line* unchanged." -msgstr "" -"Méthode de rappel exécutée juste avant que la ligne de commande *line* ne " -"soit interprétée, mais après que l'invite de commande ait été généré et " -"affiché. Cette méthode existe afin d'être surchargée par des classes filles " -"de :class:`Cmd`. La valeur de retour est utilisée comme la commande qui sera " -"exécutée par la méthode :meth:`onecmd`. L'implémentation de :meth:`precmd` " -"peut réécrire la commande ou simplement renvoyer *line* sans modification." - -#: library/cmd.rst:154 -msgid "" -"Hook method executed just after a command dispatch is finished. This method " -"is a stub in :class:`Cmd`; it exists to be overridden by subclasses. *line* " -"is the command line which was executed, and *stop* is a flag which indicates " -"whether execution will be terminated after the call to :meth:`postcmd`; this " -"will be the return value of the :meth:`onecmd` method. The return value of " -"this method will be used as the new value for the internal flag which " -"corresponds to *stop*; returning false will cause interpretation to continue." -msgstr "" -"Méthode de rappel exécutée juste après qu'une commande ait été exécutée. " -"Cette méthode existe afin d'être surchargée par des classes filles " -"de :class:`Cmd`. *line* est la ligne de commande ayant été exécutée et " -"*stop* est un *flag* indiquant si l'exécution sera terminée après un appel " -"à :meth:`postcmd`. *stop* sera la valeur de retour de :meth:`onecmd`. La " -"valeur de retour de cette méthode sera utilisée comme nouvelle valeur pour " -"le *flag* interne correspondant à *stop*. Renvoyer *False* permettra à " -"l'interprétation de continuer." - -#: library/cmd.rst:165 -msgid "" -"Hook method executed once when :meth:`cmdloop` is called. This method is a " -"stub in :class:`Cmd`; it exists to be overridden by subclasses." -msgstr "" -"Méthode de rappel exécutée une fois lorsque :meth:`cmdloop` est appelée. " -"Cette méthode existe afin d'être surchargée par des classes filles " -"de :class:`Cmd`." - -#: library/cmd.rst:171 -msgid "" -"Hook method executed once when :meth:`cmdloop` is about to return. This " -"method is a stub in :class:`Cmd`; it exists to be overridden by subclasses." -msgstr "" -"Méthode de rappel exécutée une fois lorsque :meth:`cmdloop` va s'arrêter. " -"Cette méthode existe afin d'être surchargée par des classes filles " -"de :class:`Cmd`." - -#: library/cmd.rst:175 -msgid "" -"Instances of :class:`Cmd` subclasses have some public instance variables:" -msgstr "" -"Les instances de classes filles de :class:`Cmd` possèdent des variables " -"d'instance publiques :" - -#: library/cmd.rst:179 -msgid "The prompt issued to solicit input." -msgstr "L'invite de commande affiché pour solliciter une entrée." - -#: library/cmd.rst:184 -msgid "The string of characters accepted for the command prefix." -msgstr "La chaîne de caractères acceptée en tant que préfixe de commande." - -#: library/cmd.rst:189 -msgid "The last nonempty command prefix seen." -msgstr "Le dernier préfixe de commande non-vide vu." - -#: library/cmd.rst:194 -msgid "" -"A list of queued input lines. The cmdqueue list is checked " -"in :meth:`cmdloop` when new input is needed; if it is nonempty, its elements " -"will be processed in order, as if entered at the prompt." -msgstr "" -"Une liste de lignes entrées en file. La liste *cmdqueue* est vérifiée " -"dans :meth:`cmdloop` lorsqu'une nouvelle entrée est nécessitée; si elle " -"n'est pas vide, ses éléments seront traités dans l'ordre, comme si ils " -"avaient entrés dans l'invite de commande." - -#: library/cmd.rst:201 -msgid "" -"A string to issue as an intro or banner. May be overridden by giving " -"the :meth:`cmdloop` method an argument." -msgstr "" -"Une chaîne de caractères à afficher en introduction ou bannière. Peut être " -"surchargée en passant un argument à la méthode :meth:`cmdloop`." - -#: library/cmd.rst:207 -msgid "" -"The header to issue if the help output has a section for documented commands." -msgstr "" -"L'en-tête à afficher si la sortie de l'aide possède une section pour les " -"commandes documentées." - -#: library/cmd.rst:212 -#, fuzzy -msgid "" -"The header to issue if the help output has a section for miscellaneous help " -"topics (that is, there are :meth:`!help_\\*` methods without " -"corresponding :meth:`!do_\\*` methods)." -msgstr "" -"L'en-tête à afficher si la sortie de l'aide possède une section pour divers " -"sujets (c'est-à-dire qu'il existe des méthodes :meth:`help_\\*` sans " -"méthodes :meth:`do_\\*` correspondantes)." - -#: library/cmd.rst:219 -#, fuzzy -msgid "" -"The header to issue if the help output has a section for undocumented " -"commands (that is, there are :meth:`!do_\\*` methods without " -"corresponding :meth:`!help_\\*` methods)." -msgstr "" -"L'en-tête à afficher si la sortie de l'aide possède une section pour les " -"commandes non documentées (c'est-à-dire qu'il existe des " -"méthodes :meth:`dop_\\*` sans méthodes :meth:`help_\\*` correspondantes)." - -#: library/cmd.rst:226 -msgid "" -"The character used to draw separator lines under the help-message headers. " -"If empty, no ruler line is drawn. It defaults to ``'='``." -msgstr "" -"Le caractère utilisé pour afficher des lignes de séparation sous les en-" -"têtes de messages d'aide. Si il est vide, aucune ligne de séparation n'est " -"affichée. Par défaut, ce caractère vaut ``'='``." - -#: library/cmd.rst:232 -#, fuzzy -msgid "" -"A flag, defaulting to true. If true, :meth:`cmdloop` uses :func:`input` to " -"display a prompt and read the next command; if " -"false, :data:`sys.stdout.write() ` " -"and :data:`sys.stdin.readline() ` are used. (This means that by " -"importing :mod:`readline`, on systems that support it, the interpreter will " -"automatically support :program:`Emacs`\\ -like line editing and command-" -"history keystrokes.)" -msgstr "" -"Un *flag*, valant *True* par défaut. Si ce *flag* est vrai, :meth:`cmdloop` " -"utilise :func:`input` pour afficher une invite de commande et lire la " -"prochaine commande; si il est faux, :meth:`sys.stdout.write` " -"et :meth:`sys.stdin.readline` sont utilisées. (Cela signifie qu'en " -"important :mod:`readline` sur les systèmes qui le supportent, l'interpréteur " -"va automatiquement supporter une édition de ligne similaire " -"à :program:`Emacs` ainsi que des touches d'historique de commande)." - -#: library/cmd.rst:242 -msgid "Cmd Example" -msgstr "Exemple" - -#: library/cmd.rst:244 -#, fuzzy -msgid "" -"The :mod:`!cmd` module is mainly useful for building custom shells that let " -"a user work with a program interactively." -msgstr "" -"Le module :mod:`cmd` est utile pour produire des invites de commande " -"permettant à l'utilisateur de travailler avec un programme de manière " -"interactive." - -#: library/cmd.rst:247 -msgid "" -"This section presents a simple example of how to build a shell around a few " -"of the commands in the :mod:`turtle` module." -msgstr "" -"Cette section présente un exemple simple de comment produire une invite de " -"commande autour de quelques commandes du module :mod:`turtle`." - -#: library/cmd.rst:250 -#, fuzzy -msgid "" -"Basic turtle commands such as :meth:`~turtle.forward` are added to " -"a :class:`Cmd` subclass with method named :meth:`!do_forward`. The argument " -"is converted to a number and dispatched to the turtle module. The docstring " -"is used in the help utility provided by the shell." -msgstr "" -"Des commandes *turtle* basiques telles que :meth:`~turtle.forward` sont " -"ajoutées à une classe fille de :class:`Cmd` avec la méthode " -"appelée :meth:`do_forward`. L'argument est converti en nombre et envoyé au " -"module *turtle*. La *docstring* est utilisée dans l'utilitaire d'aide fourni " -"par l'invite de commande." - -#: library/cmd.rst:255 -#, fuzzy -msgid "" -"The example also includes a basic record and playback facility implemented " -"with the :meth:`~Cmd.precmd` method which is responsible for converting the " -"input to lowercase and writing the commands to a file. The :meth:`!" -"do_playback` method reads the file and adds the recorded commands to " -"the :attr:`~Cmd.cmdqueue` for immediate playback::" -msgstr "" -"L'exemple inclut également un utilitaire d'enregistrement et de *playback* " -"implémenté avec la méthode :meth:`~Cmd.precmd`, qui est responsable du " -"passage de l'entrée en minuscules ainsi que d'écrire les commandes dans un " -"fichier. La méthode :meth:`do_playback` lit le fichier et ajoute les " -"commandes enregistrées à :attr:`cmdqueue` pour être rejouées immédiatement ::" - -#: library/cmd.rst:336 -msgid "" -"Here is a sample session with the turtle shell showing the help functions, " -"using blank lines to repeat commands, and the simple record and playback " -"facility:" -msgstr "" -"Voici une session d'exemple avec l'invite de commande *turtle*. Elle montre " -"les fonctions d'aide, utilise les lignes vides pour répéter des commandes et " -"montre l'utilitaire de *playback* :" diff --git a/library/cmdline.po b/library/cmdline.po deleted file mode 100644 index 85d22b82a8..0000000000 --- a/library/cmdline.po +++ /dev/null @@ -1,232 +0,0 @@ -# Copyright (C) 2001-2024, Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: library/cmdline.rst:5 -msgid "Modules command-line interface (CLI)" -msgstr "" - -#: library/cmdline.rst:7 -msgid "The following modules have a command-line interface." -msgstr "" - -#: library/cmdline.rst:9 -msgid ":ref:`ast `" -msgstr "" - -#: library/cmdline.rst:10 -msgid ":ref:`asyncio `" -msgstr "" - -#: library/cmdline.rst:11 -msgid ":mod:`base64`" -msgstr "" - -#: library/cmdline.rst:12 -msgid ":ref:`calendar `" -msgstr "" - -#: library/cmdline.rst:13 -msgid ":mod:`code`" -msgstr "" - -#: library/cmdline.rst:14 -msgid ":ref:`compileall `" -msgstr "" - -#: library/cmdline.rst:15 -msgid "``cProfile``: see :ref:`profiling.tracing `" -msgstr "" - -#: library/cmdline.rst:16 -msgid ":ref:`dis `" -msgstr "" - -#: library/cmdline.rst:17 -msgid ":ref:`doctest `" -msgstr "" - -#: library/cmdline.rst:18 -msgid ":mod:`!encodings.rot_13`" -msgstr "" - -#: library/cmdline.rst:19 -msgid ":ref:`ensurepip `" -msgstr "" - -#: library/cmdline.rst:20 -msgid ":mod:`filecmp`" -msgstr "" - -#: library/cmdline.rst:21 -msgid ":mod:`fileinput`" -msgstr "" - -#: library/cmdline.rst:22 -msgid ":mod:`ftplib`" -msgstr "" - -#: library/cmdline.rst:23 -msgid ":ref:`gzip `" -msgstr "" - -#: library/cmdline.rst:24 -msgid ":ref:`http.server `" -msgstr "" - -#: library/cmdline.rst:25 -msgid ":ref:`idlelib `" -msgstr "" - -#: library/cmdline.rst:26 -msgid ":ref:`inspect `" -msgstr "" - -#: library/cmdline.rst:27 -msgid ":ref:`json `" -msgstr "" - -#: library/cmdline.rst:28 -msgid ":ref:`mimetypes `" -msgstr "" - -#: library/cmdline.rst:29 -msgid ":ref:`pdb `" -msgstr "" - -#: library/cmdline.rst:30 -msgid ":ref:`pickle `" -msgstr "" - -#: library/cmdline.rst:31 -msgid ":ref:`pickletools `" -msgstr "" - -#: library/cmdline.rst:32 -msgid ":ref:`platform `" -msgstr "" - -#: library/cmdline.rst:33 -msgid ":mod:`poplib`" -msgstr "" - -#: library/cmdline.rst:34 -msgid ":ref:`profiling.sampling `" -msgstr "" - -#: library/cmdline.rst:35 -msgid ":ref:`profiling.tracing `" -msgstr "" - -#: library/cmdline.rst:36 -msgid ":ref:`pstats `" -msgstr "" - -#: library/cmdline.rst:37 -msgid ":ref:`py_compile `" -msgstr "" - -#: library/cmdline.rst:38 -msgid ":mod:`pyclbr`" -msgstr "" - -#: library/cmdline.rst:39 -msgid ":mod:`pydoc`" -msgstr "" - -#: library/cmdline.rst:40 -msgid ":mod:`quopri`" -msgstr "" - -#: library/cmdline.rst:41 -msgid ":ref:`random `" -msgstr "" - -#: library/cmdline.rst:42 -msgid ":mod:`runpy`" -msgstr "" - -#: library/cmdline.rst:43 -msgid ":ref:`site `" -msgstr "" - -#: library/cmdline.rst:44 -msgid ":ref:`sqlite3 `" -msgstr "" - -#: library/cmdline.rst:45 -msgid ":ref:`symtable `" -msgstr "" - -#: library/cmdline.rst:46 -msgid ":ref:`sysconfig `" -msgstr "" - -#: library/cmdline.rst:47 -msgid ":mod:`tabnanny`" -msgstr "" - -#: library/cmdline.rst:48 -msgid ":ref:`tarfile `" -msgstr "" - -#: library/cmdline.rst:49 -msgid ":mod:`!this`" -msgstr "" - -#: library/cmdline.rst:50 -msgid ":ref:`timeit `" -msgstr "" - -#: library/cmdline.rst:51 -msgid ":ref:`tokenize `" -msgstr "" - -#: library/cmdline.rst:52 -msgid ":ref:`trace `" -msgstr "" - -#: library/cmdline.rst:53 -msgid ":mod:`turtledemo`" -msgstr "" - -#: library/cmdline.rst:54 -msgid ":ref:`unittest `" -msgstr "" - -#: library/cmdline.rst:55 -msgid ":ref:`uuid `" -msgstr "" - -#: library/cmdline.rst:56 -msgid ":ref:`venv `" -msgstr "" - -#: library/cmdline.rst:57 -msgid ":ref:`webbrowser `" -msgstr "" - -#: library/cmdline.rst:58 -msgid ":ref:`zipapp `" -msgstr "" - -#: library/cmdline.rst:59 -msgid ":ref:`zipfile `" -msgstr "" - -#: library/cmdline.rst:61 -msgid "See also the :ref:`Python command-line interface `." -msgstr "" diff --git a/library/cmdlinelibs.po b/library/cmdlinelibs.po deleted file mode 100644 index 2294468914..0000000000 --- a/library/cmdlinelibs.po +++ /dev/null @@ -1,30 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/cmdlinelibs.rst:5 -msgid "Command-line interface libraries" -msgstr "" - -#: library/cmdlinelibs.rst:7 -msgid "" -"The modules described in this chapter assist with implementing command line " -"and terminal interfaces for applications." -msgstr "" - -#: library/cmdlinelibs.rst:10 -msgid "Here's an overview:" -msgstr "" diff --git a/library/code.po b/library/code.po deleted file mode 100644 index d6ed49830e..0000000000 --- a/library/code.po +++ /dev/null @@ -1,248 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: library/code.rst:2 -msgid ":mod:`!code` --- Interpreter base classes" -msgstr "" - -#: library/code.rst:7 -msgid "**Source code:** :source:`Lib/code.py`" -msgstr "**Code source :** :source:`Lib/code.py`" - -#: library/code.rst:11 -msgid "" -"The ``code`` module provides facilities to implement read-eval-print loops " -"in Python. Two classes and convenience functions are included which can be " -"used to build applications which provide an interactive interpreter prompt." -msgstr "" - -#: library/code.rst:18 -msgid "" -"This class deals with parsing and interpreter state (the user's namespace); " -"it does not deal with input buffering or prompting or input file naming (the " -"filename is always passed in explicitly). The optional *locals* argument " -"specifies a mapping to use as the namespace in which code will be executed; " -"it defaults to a newly created dictionary with key ``'__name__'`` set to " -"``'__console__'`` and key ``'__doc__'`` set to ``None``." -msgstr "" - -#: library/code.rst:25 -msgid "" -"Note that functions and classes objects created under an :class:`!" -"InteractiveInterpreter` instance will belong to the namespace specified by " -"*locals*. They are only pickleable if *locals* is the namespace of an " -"existing module." -msgstr "" - -#: library/code.rst:34 -msgid "" -"Closely emulate the behavior of the interactive Python interpreter. This " -"class builds on :class:`InteractiveInterpreter` and adds prompting using the " -"familiar ``sys.ps1`` and ``sys.ps2``, and input buffering. If *local_exit* " -"is true, ``exit()`` and ``quit()`` in the console will not " -"raise :exc:`SystemExit`, but instead return to the calling code." -msgstr "" - -#: library/code.rst:58 -msgid "Added *local_exit* parameter." -msgstr "" - -#: library/code.rst:45 -msgid "" -"Convenience function to run a read-eval-print loop. This creates a new " -"instance of :class:`InteractiveConsole` and sets *readfunc* to be used as " -"the :meth:`InteractiveConsole.raw_input` method, if provided. If *local* is " -"provided, it is passed to the :class:`InteractiveConsole` constructor for " -"use as the default namespace for the interpreter loop. If *local_exit* is " -"provided, it is passed to the :class:`InteractiveConsole` constructor. " -"The :meth:`~InteractiveConsole.interact` method of the instance is then run " -"with *banner* and *exitmsg* passed as the banner and exit message to use, if " -"provided. The console object is discarded after use." -msgstr "" - -#: library/code.rst:55 -msgid "Added *exitmsg* parameter." -msgstr "" - -#: library/code.rst:63 -msgid "" -"This function is useful for programs that want to emulate Python's " -"interpreter main loop (a.k.a. the read-eval-print loop). The tricky part is " -"to determine when the user has entered an incomplete command that can be " -"completed by entering more text (as opposed to a complete command or a " -"syntax error). This function *almost* always makes the same decision as the " -"real interpreter main loop." -msgstr "" - -#: library/code.rst:70 -msgid "" -"*source* is the source string; *filename* is the optional filename from " -"which source was read, defaulting to ``''``; and *symbol* is the " -"optional grammar start symbol, which should be ``'single'`` (the default), " -"``'eval'`` or ``'exec'``." -msgstr "" - -#: library/code.rst:75 -msgid "" -"Returns a code object (the same as ``compile(source, filename, symbol)``) if " -"the command is complete and valid; ``None`` if the command is incomplete; " -"raises :exc:`SyntaxError` if the command is complete and contains a syntax " -"error, or raises :exc:`OverflowError` or :exc:`ValueError` if the command " -"contains an invalid literal." -msgstr "" - -#: library/code.rst:85 -msgid "Interactive Interpreter Objects" -msgstr "" - -#: library/code.rst:90 -msgid "" -"Compile and run some source in the interpreter. Arguments are the same as " -"for :func:`compile_command`; the default for *filename* is ``''``, " -"and for *symbol* is ``'single'``. One of several things can happen:" -msgstr "" - -#: library/code.rst:94 -msgid "" -"The input is incorrect; :func:`compile_command` raised an exception " -"(:exc:`SyntaxError` or :exc:`OverflowError`). A syntax traceback will be " -"printed by calling the :meth:`showsyntaxerror` method. :meth:`runsource` " -"returns ``False``." -msgstr "" - -#: library/code.rst:99 -msgid "" -"The input is incomplete, and more input is required; :func:`compile_command` " -"returned ``None``. :meth:`runsource` returns ``True``." -msgstr "" - -#: library/code.rst:102 -msgid "" -"The input is complete; :func:`compile_command` returned a code object. The " -"code is executed by calling the :meth:`runcode` (which also handles run-time " -"exceptions, except for :exc:`SystemExit`). :meth:`runsource` returns " -"``False``." -msgstr "" - -#: library/code.rst:106 -msgid "" -"The return value can be used to decide whether to use ``sys.ps1`` or " -"``sys.ps2`` to prompt the next line." -msgstr "" - -#: library/code.rst:112 -msgid "" -"Execute a code object. When an exception occurs, :meth:`showtraceback` is " -"called to display a traceback. All exceptions are caught " -"except :exc:`SystemExit`, which is allowed to propagate." -msgstr "" - -#: library/code.rst:116 -msgid "" -"A note about :exc:`KeyboardInterrupt`: this exception may occur elsewhere in " -"this code, and may not always be caught. The caller should be prepared to " -"deal with it." -msgstr "" - -#: library/code.rst:123 -msgid "" -"Display the syntax error that just occurred. This does not display a stack " -"trace because there isn't one for syntax errors. If *filename* is given, it " -"is stuffed into the exception instead of the default filename provided by " -"Python's parser, because it always uses ``''`` when reading from a " -"string. The output is written by the :meth:`write` method." -msgstr "" - -#: library/code.rst:132 -msgid "" -"Display the exception that just occurred. We remove the first stack item " -"because it is within the interpreter object implementation. The output is " -"written by the :meth:`write` method." -msgstr "" - -#: library/code.rst:136 -msgid "" -"The full chained traceback is displayed instead of just the primary " -"traceback." -msgstr "" - -#: library/code.rst:142 -msgid "" -"Write a string to the standard error stream (``sys.stderr``). Derived " -"classes should override this to provide the appropriate output handling as " -"needed." -msgstr "" - -#: library/code.rst:149 -msgid "Interactive Console Objects" -msgstr "" - -#: library/code.rst:151 -msgid "" -"The :class:`InteractiveConsole` class is a subclass " -"of :class:`InteractiveInterpreter`, and so offers all the methods of the " -"interpreter objects as well as the following additions." -msgstr "" - -#: library/code.rst:158 -msgid "" -"Closely emulate the interactive Python console. The optional *banner* " -"argument specify the banner to print before the first interaction; by " -"default it prints a banner similar to the one printed by the standard Python " -"interpreter, followed by the class name of the console object in parentheses " -"(so as not to confuse this with the real interpreter -- since it's so " -"close!)." -msgstr "" - -#: library/code.rst:164 -msgid "" -"The optional *exitmsg* argument specifies an exit message printed when " -"exiting. Pass the empty string to suppress the exit message. If *exitmsg* is " -"not given or ``None``, a default message is printed." -msgstr "" - -#: library/code.rst:168 -msgid "To suppress printing any banner, pass an empty string." -msgstr "" - -#: library/code.rst:171 -msgid "Print an exit message when exiting." -msgstr "" - -#: library/code.rst:177 -msgid "" -"Push a line of source text to the interpreter. The line should not have a " -"trailing newline; it may have internal newlines. The line is appended to a " -"buffer and the interpreter's :meth:`~InteractiveInterpreter.runsource` " -"method is called with the concatenated contents of the buffer as source. If " -"this indicates that the command was executed or invalid, the buffer is " -"reset; otherwise, the command is incomplete, and the buffer is left as it " -"was after the line was appended. The return value is ``True`` if more input " -"is required, ``False`` if the line was dealt with in some way (this is the " -"same as :meth:`!runsource`)." -msgstr "" - -#: library/code.rst:189 -msgid "Remove any unhandled source text from the input buffer." -msgstr "" - -#: library/code.rst:194 -msgid "" -"Write a prompt and read a line. The returned line does not include the " -"trailing newline. When the user enters the EOF key " -"sequence, :exc:`EOFError` is raised. The base implementation reads from " -"``sys.stdin``; a subclass may replace this with a different implementation." -msgstr "" diff --git a/library/codecs.po b/library/codecs.po deleted file mode 100644 index 03bec0b624..0000000000 --- a/library/codecs.po +++ /dev/null @@ -1,3126 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-07-21 12:43+0200\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.3\n" - -#: library/codecs.rst:2 -#, fuzzy -msgid ":mod:`!codecs` --- Codec registry and base classes" -msgstr ":mod:`codecs` — Registre des codecs et classes de base associées" - -#: library/codecs.rst:7 -msgid "**Source code:** :source:`Lib/codecs.py`" -msgstr "**Code source :** :source:`Lib/codecs.py`" - -#: library/codecs.rst:19 -#, fuzzy -msgid "" -"This module defines base classes for standard Python codecs (encoders and " -"decoders) and provides access to the internal Python codec registry, which " -"manages the codec and error handling lookup process. Most standard codecs " -"are :term:`text encodings `, which encode text to bytes (and " -"decode bytes to text), but there are also codecs provided that encode text " -"to text, and bytes to bytes. Custom codecs may encode and decode between " -"arbitrary types, but some module features are restricted to be used " -"specifically with :term:`text encodings ` or with codecs that " -"encode to :class:`bytes`." -msgstr "" -"Ce module définit les classes de base pour les codecs (encodeurs et " -"décodeurs) standards Python et fournit l'interface avec le registre des " -"codecs internes à Python, qui gère le processus de recherche de codecs et de " -"gestion des erreurs. La plupart des codecs sont des :term:`encodeurs de " -"texte `, qui encode du texte vers des séquences d'octets " -"(type *bytes* de Python) mais il existe aussi des codecs qui encodent du " -"texte vers du texte et des *bytes* vers des *bytes*. Les codecs " -"personnalisés peuvent encoder et décoder des types arbitraires, mais " -"l'utilisation de certaines fonctionnalités du module est restreinte " -"aux :term:`encodeurs de texte ` ou aux codecs qui encodent " -"vers :class:`bytes`." - -#: library/codecs.rst:29 -msgid "" -"The module defines the following functions for encoding and decoding with " -"any codec:" -msgstr "" -"Le module définit les fonctions suivantes pour encoder et décoder à l'aide " -"de n'importe quel codec :" - -#: library/codecs.rst:34 -msgid "Encodes *obj* using the codec registered for *encoding*." -msgstr "Encode *obj* en utilisant le codec enregistré pour *encoding*." - -#: library/codecs.rst:36 -msgid "" -"*Errors* may be given to set the desired error handling scheme. The default " -"error handler is ``'strict'`` meaning that encoding errors " -"raise :exc:`ValueError` (or a more codec specific subclass, such " -"as :exc:`UnicodeEncodeError`). Refer to :ref:`codec-base-classes` for more " -"information on codec error handling." -msgstr "" -"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " -"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " -"qu'une erreur lors de l'encodage lève :exc:`ValueError` (ou une sous-classe " -"spécifique du codec, telle que :exc:`UnicodeEncodeError`). Référez-vous " -"aux :ref:`classes de base des codecs ` pour plus " -"d'informations sur la gestion des erreurs par les codecs." - -#: library/codecs.rst:44 -msgid "Decodes *obj* using the codec registered for *encoding*." -msgstr "Décode *obj* en utilisant le codec enregistré pour *encoding*." - -#: library/codecs.rst:46 -msgid "" -"*Errors* may be given to set the desired error handling scheme. The default " -"error handler is ``'strict'`` meaning that decoding errors " -"raise :exc:`ValueError` (or a more codec specific subclass, such " -"as :exc:`UnicodeDecodeError`). Refer to :ref:`codec-base-classes` for more " -"information on codec error handling." -msgstr "" -"Vous pouvez spécifier *errors* pour définir la façon de gérer les erreurs. " -"Le gestionnaire d'erreurs par défaut est ``'strict'``, ce qui veut dire " -"qu'une erreur lors du décodage lève :exc:`ValueError` (ou une sous-classe " -"spécifique du codec, telle que :exc:`UnicodeDecodeError`). Référez-vous " -"aux :ref:`classes de base des codecs ` pour plus " -"d'informations sur la gestion des erreurs par les codecs." - -#: library/codecs.rst:54 -msgid "" -"Return a mapping suitable for encoding with a custom single-byte encoding. " -"Given a :class:`str` *string* of up to 256 characters representing a " -"decoding table, returns either a compact internal mapping object " -"``EncodingMap`` or a :class:`dictionary ` mapping character ordinals " -"to byte values. Raises a :exc:`TypeError` on invalid input." -msgstr "" - -#: library/codecs.rst:60 -msgid "The full details for each codec can also be looked up directly:" -msgstr "" -"Les détails complets de chaque codec peuvent être examinés directement :" - -#: library/codecs.rst:64 -msgid "" -"Looks up the codec info in the Python codec registry and returns " -"a :class:`CodecInfo` object as defined below." -msgstr "" -"Recherche les informations relatives au codec dans le registre des codecs de " -"Python et renvoie l'objet :class:`CodecInfo` tel que défini ci-dessous." - -#: library/codecs.rst:67 -#, fuzzy -msgid "" -"This function first normalizes the *encoding*: all ASCII letters are " -"converted to lower case, spaces are replaced with hyphens. Then encoding is " -"looked up in the registry's cache. If not found, the list of registered " -"search functions is scanned. If no :class:`CodecInfo` object is found, " -"a :exc:`LookupError` is raised. Otherwise, the :class:`CodecInfo` object is " -"stored in the cache and returned to the caller." -msgstr "" -"Les encodeurs sont recherchés en priorité dans le cache du registre. S'ils " -"n'y sont pas, la liste des fonctions de recherche enregistrées est passée en " -"revue. Si aucun objet :class:`CodecInfo` n'est trouvé, " -"une :exc:`LookupError` est levée. Sinon, l'objet :class:`CodecInfo` est mis " -"en cache et renvoyé vers l'appelant." - -#: library/codecs.rst:74 -msgid "" -"Any characters except ASCII letters and digits and a dot are converted to " -"underscore." -msgstr "" - -#: library/codecs.rst:77 -msgid "" -"No characters are converted to underscore anymore. Spaces are converted to " -"hyphens." -msgstr "" - -#: library/codecs.rst:84 -msgid "" -"Codec details when looking up the codec registry. The constructor arguments " -"are stored in attributes of the same name:" -msgstr "" -"Les détails d'un codec trouvé dans le registre des codecs. Les arguments du " -"constructeur sont stockés dans les attributs éponymes :" - -#: library/codecs.rst:90 -msgid "The name of the encoding." -msgstr "Le nom de l'encodeur." - -#: library/codecs.rst:96 -msgid "" -"The stateless encoding and decoding functions. These must be functions or " -"methods which have the same interface as the :meth:`~Codec.encode` " -"and :meth:`~Codec.decode` methods of Codec instances (see :ref:`Codec " -"Interface `). The functions or methods are expected to work " -"in a stateless mode." -msgstr "" -"Les fonctions d'encodage et de décodage. Ces fonctions ou méthodes doivent " -"avoir la même interface que les méthodes :meth:`~Codec.encode` " -"et :meth:`~Codec.decode` des instances de Codec (voir :ref:`Interface des " -"codecs `). Les fonctions et méthodes sont censées fonctionner " -"sans état interne." - -#: library/codecs.rst:106 -msgid "" -"Incremental encoder and decoder classes or factory functions. These have to " -"provide the interface defined by the base " -"classes :class:`IncrementalEncoder` and :class:`IncrementalDecoder`, " -"respectively. Incremental codecs can maintain state." -msgstr "" -"Classes d'encodeurs et de décodeurs incrémentaux ou fonctions usines. Elles " -"doivent avoir respectivement les mêmes interfaces que celles définies par " -"les classes de base :class:`IncrementalEncoder` " -"et :class:`IncrementalDecoder`. Les codecs incrémentaux peuvent conserver " -"des états internes." - -#: library/codecs.rst:115 -msgid "" -"Stream writer and reader classes or factory functions. These have to provide " -"the interface defined by the base classes :class:`StreamWriter` " -"and :class:`StreamReader`, respectively. Stream codecs can maintain state." -msgstr "" -"Classes d'écriture et de lecture de flux ou fonctions usines. Elles doivent " -"avoir les mêmes interfaces que celles définies par les classes de " -"base :class:`StreamWriter` et :class:`StreamReader`, respectivement. Les " -"codecs de flux peuvent conserver un état interne." - -#: library/codecs.rst:120 -msgid "" -"To simplify access to the various codec components, the module provides " -"these additional functions which use :func:`lookup` for the codec lookup:" -msgstr "" -"Pour simplifier l'accès aux différents composants du codec, le module " -"fournit les fonctions supplémentaires suivantes qui utilisent :func:`lookup` " -"pour la recherche du codec :" - -#: library/codecs.rst:125 -msgid "" -"Look up the codec for the given encoding and return its encoder function." -msgstr "" -"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction " -"d'encodage." - -#: library/codecs.rst:134 library/codecs.rst:168 -msgid "Raises a :exc:`LookupError` in case the encoding cannot be found." -msgstr "Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé." - -#: library/codecs.rst:132 -msgid "" -"Look up the codec for the given encoding and return its decoder function." -msgstr "" -"Recherche le codec pour l'encodage *encoding* et renvoie sa fonction de " -"décodage." - -#: library/codecs.rst:139 -msgid "" -"Look up the codec for the given encoding and return its incremental encoder " -"class or factory function." -msgstr "" -"Recherche le codec pour l'encodage *encoding* et renvoie sa classe " -"d'encodage incrémental ou la fonction usine." - -#: library/codecs.rst:142 -msgid "" -"Raises a :exc:`LookupError` in case the encoding cannot be found or the " -"codec doesn't support an incremental encoder." -msgstr "" -"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " -"le codec ne gère pas l'encodage incrémental." - -#: library/codecs.rst:148 -msgid "" -"Look up the codec for the given encoding and return its incremental decoder " -"class or factory function." -msgstr "" -"Recherche le codec pour l'encodage *encoding* et renvoie sa classe de " -"décodage incrémental ou la fonction usine." - -#: library/codecs.rst:151 -msgid "" -"Raises a :exc:`LookupError` in case the encoding cannot be found or the " -"codec doesn't support an incremental decoder." -msgstr "" -"Lève une :exc:`LookupError` si l'encodage *encoding* n'est pas trouvé ou si " -"le codec ne gère pas le décodage incrémental." - -#: library/codecs.rst:157 -msgid "" -"Look up the codec for the given encoding and return " -"its :class:`StreamReader` class or factory function." -msgstr "" -"Recherche le codec pour l'encodage *encoding* et renvoie sa " -"classe :class:`StreamReader` ou la fonction usine." - -#: library/codecs.rst:165 -msgid "" -"Look up the codec for the given encoding and return " -"its :class:`StreamWriter` class or factory function." -msgstr "" -"Recherche le codec pour l'encodage *encoding* et renvoie sa " -"classe :class:`StreamWriter` ou la fonction usine." - -#: library/codecs.rst:170 -msgid "" -"Custom codecs are made available by registering a suitable codec search " -"function:" -msgstr "" -"Les codecs personnalisés sont mis à disposition en enregistrant une fonction " -"de recherche de codecs adaptée :" - -#: library/codecs.rst:175 -#, fuzzy -msgid "" -"Register a codec search function. Search functions are expected to take one " -"argument, being the encoding name in all lower case letters with spaces " -"converted to hyphens, and return a :class:`CodecInfo` object. In case a " -"search function cannot find a given encoding, it should return ``None``." -msgstr "" -"Enregistre une fonction de recherche de codec. Il convient qu'une fonction " -"de recherche prenne un argument, le nom de l'encodage écrit en lettres " -"minuscules, et renvoie un objet :class:`CodecInfo`. Si la fonction de " -"recherche ne trouve pas un encodage donné, il convient qu'elle renvoie `` " -"None``." - -#: library/codecs.rst:184 -msgid "" -"Unregister a codec search function and clear the registry's cache. If the " -"search function is not registered, do nothing." -msgstr "" - -#: library/codecs.rst:190 -msgid "" -"While the builtin :func:`open` and the associated :mod:`io` module are the " -"recommended approach for working with encoded text files, this module " -"provides additional utility functions and classes that allow the use of a " -"wider range of codecs when working with binary files:" -msgstr "" -"Alors qu'il est recommandé d'utiliser la fonction native :func:`open` et le " -"module associé :mod:`io` pour travailler avec des fichiers texte encodés, le " -"présent module fournit des fonctions et classes utilitaires supplémentaires " -"qui permettent l'utilisation d'une plus large gamme de codecs si vous " -"travaillez avec des fichiers binaires :" - -#: library/codecs.rst:197 -msgid "" -"Open an encoded file using the given *mode* and return an instance " -"of :class:`StreamReaderWriter`, providing transparent encoding/decoding. The " -"default file mode is ``'r'``, meaning to open the file in read mode." -msgstr "" -"Ouvre un fichier encodé en utilisant le *mode* donné et renvoie une instance " -"de :class:`StreamReaderWriter`, permettant un encodage-décodage transparent. " -"Le mode de fichier par défaut est ``'r'``, ce qui signifie que le fichier " -"est ouvert en lecture." - -# Pas de majuscule en début car suit un deux-points. -#: library/codecs.rst:203 -#, fuzzy -msgid "" -"If *encoding* is not ``None``, then the underlying encoded files are always " -"opened in binary mode. No automatic conversion of ``'\\n'`` is done on " -"reading and writing. The *mode* argument may be any binary mode acceptable " -"to the built-in :func:`open` function; the ``'b'`` is automatically added." -msgstr "" -"les fichiers encodés sous-jacents sont toujours ouverts en mode binaire. " -"Aucune conversion automatique de ``'\\n'`` n'est effectuée à la lecture ou à " -"l'écriture. L'argument *mode* peut être n'importe quel mode binaire " -"acceptable pour la fonction native :func:`open` ; le ``'b'`` est " -"automatiquement ajouté." - -#: library/codecs.rst:209 -msgid "" -"*encoding* specifies the encoding which is to be used for the file. Any " -"encoding that encodes to and decodes from bytes is allowed, and the data " -"types supported by the file methods depend on the codec used." -msgstr "" -"*encoding* spécifie l'encodage à utiliser pour le fichier. Tout encodage qui " -"encode et décode des octets (type *bytes*) est autorisé et les types de " -"données pris en charge par les méthodes relatives aux fichiers dépendent du " -"codec utilisé." - -#: library/codecs.rst:213 -msgid "" -"*errors* may be given to define the error handling. It defaults to " -"``'strict'`` which causes a :exc:`ValueError` to be raised in case an " -"encoding error occurs." -msgstr "" -"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " -"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " -"d'erreur lors du codage." - -#: library/codecs.rst:216 -msgid "" -"*buffering* has the same meaning as for the built-in :func:`open` function. " -"It defaults to -1 which means that the default buffer size will be used." -msgstr "" -"*buffering* a la même signification que pour la fonction " -"native :func:`open`. Il vaut ``-1`` par défaut, ce qui signifie que la " -"taille par défaut du tampon est utilisée." - -#: library/codecs.rst:219 -msgid "The ``'U'`` mode has been removed." -msgstr "le mode ``'U``` a été enlevé." - -#: library/codecs.rst:224 -msgid ":func:`codecs.open` has been superseded by :func:`open`." -msgstr "" - -#: library/codecs.rst:229 -msgid "" -"Return a :class:`StreamRecoder` instance, a wrapped version of *file* which " -"provides transparent transcoding. The original file is closed when the " -"wrapped version is closed." -msgstr "" -"Renvoie une instance de :class:`StreamRecoder`, version encapsulée de *file* " -"qui fournit un transcodage transparent. Le fichier original est fermé quand " -"la version encapsulée est fermée." - -#: library/codecs.rst:233 -msgid "" -"Data written to the wrapped file is decoded according to the given " -"*data_encoding* and then written to the original file as bytes using " -"*file_encoding*. Bytes read from the original file are decoded according to " -"*file_encoding*, and the result is encoded using *data_encoding*." -msgstr "" -"Les données écrites dans un fichier encapsulant sont décodées en fonction du " -"*data_encoding* spécifié puis écrites vers le fichier original en tant que " -"*bytes* en utilisant *file_encoding*. Les octets lus dans le fichier " -"original sont décodés conformément à *file_encoding* et le résultat est " -"encodé en utilisant *data_encoding*." - -#: library/codecs.rst:239 -msgid "If *file_encoding* is not given, it defaults to *data_encoding*." -msgstr "" -"Si *file_encoding* n'est pas spécifié, la valeur par défaut est " -"*data_encoding*." - -#: library/codecs.rst:241 -msgid "" -"*errors* may be given to define the error handling. It defaults to " -"``'strict'``, which causes :exc:`ValueError` to be raised in case an " -"encoding error occurs." -msgstr "" -"*errors* peut être spécifié pour définir la gestion des erreurs. La valeur " -"par défaut est ``'strict'``, ce qui lève une :exc:`ValueError` en cas " -"d'erreur lors du codage." - -#: library/codecs.rst:248 -#, fuzzy -msgid "" -"Uses an incremental encoder to iteratively encode the input provided by " -"*iterator*. *iterator* must yield :class:`str` objects. This function is " -"a :term:`generator`. The *errors* argument (as well as any other keyword " -"argument) is passed through to the incremental encoder." -msgstr "" -"Utilise un encodeur incrémental pour encoder de manière itérative l'entrée " -"fournie par *iterator*. Cette fonction est un :term:`générateur " -"`. L'argument *errors* (ainsi que tout autre argument passé par " -"son nom) est transmis à l'encodeur incrémental." - -#: library/codecs.rst:253 -msgid "" -"This function requires that the codec accept text :class:`str` objects to " -"encode. Therefore it does not support bytes-to-bytes encoders such as " -"``base64_codec``." -msgstr "" -"Cette fonction nécessite que le codec accepte les objets texte " -"(classe :class:`str`) en entrée. Par conséquent, il ne prend pas en charge " -"les encodeurs *bytes* vers *bytes* tels que ``base64_codec``." - -#: library/codecs.rst:260 -#, fuzzy -msgid "" -"Uses an incremental decoder to iteratively decode the input provided by " -"*iterator*. *iterator* must yield :class:`bytes` objects. This function is " -"a :term:`generator`. The *errors* argument (as well as any other keyword " -"argument) is passed through to the incremental decoder." -msgstr "" -"Utilise un décodeur incrémental pour décoder de manière itérative l'entrée " -"fournie par *iterator*. Cette fonction est un :term:`générateur`. L'argument " -"*errors* (ainsi que tout autre argument passé par son nom) est transmis au " -"décodeur incrémental." - -#: library/codecs.rst:265 -msgid "" -"This function requires that the codec accept :class:`bytes` objects to " -"decode. Therefore it does not support text-to-text encoders such as " -"``rot_13``, although ``rot_13`` may be used equivalently " -"with :func:`iterencode`." -msgstr "" -"Cette fonction requiert que le codec accepte les objets :class:`bytes` en " -"entrée. Par conséquent, elle ne prend pas en charge les encodeurs de texte " -"vers texte tels que ``rot_13``, bien que ``rot_13`` puisse être utilisé de " -"manière équivalente avec :func:`iterencode`." - -#: library/codecs.rst:273 -msgid "" -"Return a :class:`tuple` containing the raw bytes of *buffer*, a :ref:`buffer-" -"compatible object ` or :class:`str` (encoded to UTF-8 before " -"processing), and their length in bytes." -msgstr "" - -#: library/codecs.rst:277 -msgid "The *errors* argument is ignored." -msgstr "" - -#: library/codecs.rst:285 -msgid "" -"The module also provides the following constants which are useful for " -"reading and writing to platform dependent files:" -msgstr "" -"Le module fournit également les constantes suivantes qui sont utiles pour " -"lire et écrire les fichiers dépendants de la plateforme :" - -#: library/codecs.rst:300 -msgid "" -"These constants define various byte sequences, being Unicode byte order " -"marks (BOMs) for several encodings. They are used in UTF-16 and UTF-32 data " -"streams to indicate the byte order used, and in UTF-8 as a Unicode " -"signature. :const:`BOM_UTF16` is either :const:`BOM_UTF16_BE` " -"or :const:`BOM_UTF16_LE` depending on the platform's native byte " -"order, :const:`BOM` is an alias for :const:`BOM_UTF16`, :const:`BOM_LE` " -"for :const:`BOM_UTF16_LE` and :const:`BOM_BE` for :const:`BOM_UTF16_BE`. The " -"others represent the BOM in UTF-8 and UTF-32 encodings." -msgstr "" -"Ces constantes définissent diverses séquences d'octets, les marques d'ordre " -"d'octets (BOM pour *byte order mark* en anglais) Unicode pour plusieurs " -"encodages. Elles sont utilisées dans les flux de données UTF-16 et UTF-32 " -"pour indiquer l'ordre des octets utilisé, et dans UTF-8 comme signature " -"Unicode. :const:`BOM_UTF16` vaut soit :const:`BOM_UTF16_BE`, " -"soit :const:`BOM_UTF16_LE` selon le boutisme natif de la " -"plateforme, :const:`BOM` est un alias " -"pour :const:`BOM_UTF16`, :const:`BOM_LE` pour :const:`BOM_UTF16_LE` " -"et :const:`BOM_BE` pour :const:`BOM_UTF16_BE`. Les autres sont les marques " -"BOM dans les encodages UTF-8 et UTF-32." - -#: library/codecs.rst:314 -msgid "Codec Base Classes" -msgstr "Classes de base de codecs" - -#: library/codecs.rst:316 -#, fuzzy -msgid "" -"The :mod:`!codecs` module defines a set of base classes which define the " -"interfaces for working with codec objects, and can also be used as the basis " -"for custom codec implementations." -msgstr "" -"Le module :mod:`codecs` définit un ensemble de classes de base qui " -"spécifient les interfaces pour travailler avec des objets codecs et qui " -"peuvent également être utilisées comme base pour des implémentations de " -"codecs personnalisés." - -#: library/codecs.rst:320 -msgid "" -"Each codec has to define four interfaces to make it usable as codec in " -"Python: stateless encoder, stateless decoder, stream reader and stream " -"writer. The stream reader and writers typically reuse the stateless encoder/" -"decoder to implement the file protocols. Codec authors also need to define " -"how the codec will handle encoding and decoding errors." -msgstr "" -"Chaque codec doit définir quatre interfaces pour être utilisable comme codec " -"en Python : codeur sans état, décodeur sans état, lecteur de flux et " -"écrivain de flux. Le lecteur et l'écrivain de flux réutilisent généralement " -"l'encodeur-décodeur sans état pour implémenter les protocoles de fichiers. " -"Les auteurs de codecs doivent également définir comment le codec gère les " -"erreurs d'encodage et de décodage." - -#: library/codecs.rst:331 -msgid "Error Handlers" -msgstr "Gestionnaires d'erreurs" - -#: library/codecs.rst:333 -#, fuzzy -msgid "" -"To simplify and standardize error handling, codecs may implement different " -"error handling schemes by accepting the *errors* string argument:" -msgstr "" -"Pour simplifier et standardiser la gestion des erreurs, les codecs peuvent " -"implémenter différents schémas de gestion des erreurs en acceptant " -"l'argument *errors* de type chaîne. Les chaînes suivantes sont définies et " -"les gestionnaires correspondants implémentés par tous les codecs Python " -"standards :" - -#: library/codecs.rst:353 -#, fuzzy -msgid "" -"The following error handlers can be used with all Python :ref:`standard-" -"encodings` codecs:" -msgstr "" -"Les gestionnaires d'erreurs suivants ne s'appliquent que pour " -"les :term:`encodeurs de texte ` :" - -#: library/codecs.rst:402 library/codecs.rst:422 -msgid "Value" -msgstr "Valeur" - -#: library/codecs.rst:402 library/codecs.rst:1379 library/codecs.rst:1536 -msgid "Meaning" -msgstr "Signification" - -#: library/codecs.rst:361 -msgid "``'strict'``" -msgstr "``'strict'``" - -#: library/codecs.rst:361 -#, fuzzy -msgid "" -"Raise :exc:`UnicodeError` (or a subclass), this is the default. Implemented " -"in :func:`strict_errors`." -msgstr "" -"Lève :exc:`UnicodeError` (ou une sous-classe) ; c'est la valeur par défaut. " -"Implémenté dans :func:`strict_errors`." - -#: library/codecs.rst:365 -msgid "``'ignore'``" -msgstr "``'ignore'``" - -#: library/codecs.rst:365 -msgid "" -"Ignore the malformed data and continue without further notice. Implemented " -"in :func:`ignore_errors`." -msgstr "" -"Ignore les données incorrectement formatées et continue sans rien signaler. " -"Implémenté dans :func:`ignore_errors`." - -#: library/codecs.rst:369 -msgid "``'replace'``" -msgstr "``'replace'``" - -#: library/codecs.rst:369 -#, fuzzy -msgid "" -"Replace with a replacement marker. On encoding, use ``?`` (ASCII character). " -"On decoding, use ``�`` (U+FFFD, the official REPLACEMENT CHARACTER). " -"Implemented in :func:`replace_errors`." -msgstr "" -"Remplace avec une marque de substitution adaptée ; Python utilise le " -"caractère de substitution officiel ``U+FFFD`` pour les codecs natifs lors du " -"décodage et ``?`` lors de l'encodage. Implémenté dans :func:`replace_errors`." - -#: library/codecs.rst:375 -msgid "``'backslashreplace'``" -msgstr "``'backslashreplace'``" - -#: library/codecs.rst:375 -msgid "" -"Replace with backslashed escape sequences. On encoding, use hexadecimal form " -"of Unicode code point with formats :samp:`\\\\x{hh}` :samp:`\\\\u{xxxx}" -"` :samp:`\\\\U{xxxxxxxx}`. On decoding, use hexadecimal form of byte value " -"with format :samp:`\\\\x{hh}`. Implemented " -"in :func:`backslashreplace_errors`." -msgstr "" - -#: library/codecs.rst:384 -msgid "``'surrogateescape'``" -msgstr "``'surrogateescape'``" - -#: library/codecs.rst:384 -msgid "" -"On decoding, replace byte with individual surrogate code ranging from " -"``U+DC80`` to ``U+DCFF``. This code will then be turned back into the same " -"byte when the ``'surrogateescape'`` error handler is used when encoding the " -"data. (See :pep:`383` for more.)" -msgstr "" -"Lors du décodage, remplace un octet par un code de substitution individuel " -"allant de ``U+DC80`` à ``U+DCFF``. Ce code est reconverti vers l'octet de " -"départ quand le gestionnaire d'erreurs ``'surrogateescape'`` est utilisé " -"pour l'encodage des données (voir la :pep:`383` pour plus de détails)." - -#: library/codecs.rst:398 -#, fuzzy -msgid "" -"The following error handlers are only applicable to encoding " -"(within :term:`text encodings `):" -msgstr "" -"Les gestionnaires d'erreurs suivants ne s'appliquent que pour " -"les :term:`encodeurs de texte ` :" - -#: library/codecs.rst:404 -msgid "``'xmlcharrefreplace'``" -msgstr "``'xmlcharrefreplace'``" - -#: library/codecs.rst:404 -#, fuzzy -msgid "" -"Replace with XML/HTML numeric character reference, which is a decimal form " -"of Unicode code point with format :samp:`&#{num};`. Implemented " -"in :func:`xmlcharrefreplace_errors`." -msgstr "" -"Remplace avec la référence de caractère XML adaptée (uniquement pour " -"l'encodage). Implémenté dans :func:`xmlcharrefreplace_errors`." - -#: library/codecs.rst:410 -msgid "``'namereplace'``" -msgstr "``'namereplace'``" - -#: library/codecs.rst:410 -#, fuzzy -msgid "" -"Replace with ``\\N{...}`` escape sequences, what appears in the braces is " -"the Name property from Unicode Character Database. Implemented " -"in :func:`namereplace_errors`." -msgstr "" -"Remplace avec des séquences échappées par ``\\N{...}`` (uniquement pour " -"l'encodage). Implémenté dans :func:`namereplace_errors`." - -#: library/codecs.rst:419 -msgid "" -"In addition, the following error handler is specific to the given codecs:" -msgstr "" -"En plus, le gestionnaire d'erreurs suivant est spécifique aux codecs " -"suivants :" - -#: library/codecs.rst:422 -msgid "Codecs" -msgstr "Codecs" - -#: library/codecs.rst:424 -msgid "``'surrogatepass'``" -msgstr "``'surrogatepass'``" - -#: library/codecs.rst:424 -msgid "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" -msgstr "utf-8, utf-16, utf-32, utf-16-be, utf-16-le, utf-32-be, utf-32-le" - -#: library/codecs.rst:424 -#, fuzzy -msgid "" -"Allow encoding and decoding surrogate code point (``U+D800`` - ``U+DFFF``) " -"as normal code point. Otherwise these codecs treat the presence of surrogate " -"code point in :class:`str` as an error." -msgstr "" -"Autorise l'encodage et le décodage de codes de substitution. Ces codecs " -"traitent normalement la présence d'un code de substitution comme une erreur." - -# pas de majuscule en début de phrase car suit un deux-points. -#: library/codecs.rst:431 -msgid "The ``'surrogateescape'`` and ``'surrogatepass'`` error handlers." -msgstr "" -"les gestionnaires d'erreurs ``'surrogateescape'`` et ``'surrogatepass'``." - -# pas de majuscule en début de phrase car suit un deux-points. -#: library/codecs.rst:434 -#, fuzzy -msgid "" -"The ``'surrogatepass'`` error handler now works with utf-16\\* and utf-32\\* " -"codecs." -msgstr "" -"le gestionnaire d'erreurs ``'surrogatepass'`` fonctionne maintenant avec les " -"codecs utf-16\\* et utf-32\\*." - -# pas de majuscule en début de phrase car suit un deux-points. -#: library/codecs.rst:438 -msgid "The ``'namereplace'`` error handler." -msgstr "le gestionnaire d'erreurs ``'namereplace'``." - -# pas de majuscule en début de phrase car suit un deux-points. -#: library/codecs.rst:441 -#, fuzzy -msgid "" -"The ``'backslashreplace'`` error handler now works with decoding and " -"translating." -msgstr "" -"le gestionnaire d'erreurs ``'backslashreplace'`` fonctionne maintenant pour " -"le décodage et la traduction." - -#: library/codecs.rst:445 -msgid "" -"The set of allowed values can be extended by registering a new named error " -"handler:" -msgstr "" -"L'ensemble des valeurs autorisées peut être étendu en enregistrant un " -"nouveau gestionnaire d'erreurs nommé :" - -#: library/codecs.rst:450 -msgid "" -"Register the error handling function *error_handler* under the name *name*. " -"The *error_handler* argument will be called during encoding and decoding in " -"case of an error, when *name* is specified as the errors parameter." -msgstr "" - -#: library/codecs.rst:454 -msgid "" -"For encoding, *error_handler* will be called with " -"a :exc:`UnicodeEncodeError` instance, which contains information about the " -"location of the error. The error handler must either raise this or a " -"different exception, or return a tuple with a replacement for the " -"unencodable part of the input and a position where encoding should continue. " -"The replacement may be either :class:`str` or :class:`bytes`. If the " -"replacement is bytes, the encoder will simply copy them into the output " -"buffer. If the replacement is a string, the encoder will encode the " -"replacement. Encoding continues on original input at the specified position. " -"Negative position values will be treated as being relative to the end of the " -"input string. If the resulting position is out of bound an :exc:`IndexError` " -"will be raised." -msgstr "" - -#: library/codecs.rst:466 -msgid "" -"Decoding and translating works similarly, except :exc:`UnicodeDecodeError` " -"or :exc:`UnicodeTranslateError` will be passed to the handler and that the " -"replacement from the error handler will be put into the output directly." -msgstr "" - -#: library/codecs.rst:471 -msgid "" -"Previously registered error handlers (including the standard error handlers) " -"can be looked up by name:" -msgstr "" - -#: library/codecs.rst:476 -msgid "Return the error handler previously registered under the name *name*." -msgstr "" - -#: library/codecs.rst:478 -msgid "Raises a :exc:`LookupError` in case the handler cannot be found." -msgstr "" - -#: library/codecs.rst:480 -msgid "" -"The following standard error handlers are also made available as module " -"level functions:" -msgstr "" - -# pas de majuscule en début de phrase car suit un deux-points. -#: library/codecs.rst:485 -#, fuzzy -msgid "Implements the ``'strict'`` error handling." -msgstr "le gestionnaire d'erreurs ``'namereplace'``." - -#: library/codecs.rst:487 -msgid "Each encoding or decoding error raises a :exc:`UnicodeError`." -msgstr "" - -# pas de majuscule en début de phrase car suit un deux-points. -#: library/codecs.rst:492 -#, fuzzy -msgid "Implements the ``'ignore'`` error handling." -msgstr "le gestionnaire d'erreurs ``'namereplace'``." - -#: library/codecs.rst:494 -msgid "" -"Malformed data is ignored; encoding or decoding is continued without further " -"notice." -msgstr "" - -# pas de majuscule en début de phrase car suit un deux-points. -#: library/codecs.rst:500 -#, fuzzy -msgid "Implements the ``'replace'`` error handling." -msgstr "le gestionnaire d'erreurs ``'namereplace'``." - -#: library/codecs.rst:502 -msgid "" -"Substitutes ``?`` (ASCII character) for encoding errors or ``�`` (U+FFFD, " -"the official REPLACEMENT CHARACTER) for decoding errors." -msgstr "" - -# pas de majuscule en début de phrase car suit un deux-points. -#: library/codecs.rst:508 -#, fuzzy -msgid "Implements the ``'backslashreplace'`` error handling." -msgstr "le gestionnaire d'erreurs ``'namereplace'``." - -#: library/codecs.rst:510 -msgid "" -"Malformed data is replaced by a backslashed escape sequence. On encoding, " -"use the hexadecimal form of Unicode code point with formats :samp:`\\\\x{hh}" -"` :samp:`\\\\u{xxxx}` :samp:`\\\\U{xxxxxxxx}`. On decoding, use the " -"hexadecimal form of byte value with format :samp:`\\\\x{hh}`." -msgstr "" - -#: library/codecs.rst:516 -msgid "Works with decoding and translating." -msgstr "" - -#: library/codecs.rst:522 -msgid "" -"Implements the ``'xmlcharrefreplace'`` error handling (for encoding " -"within :term:`text encoding` only)." -msgstr "" - -#: library/codecs.rst:525 -#, fuzzy -msgid "" -"The unencodable character is replaced by an appropriate XML/HTML numeric " -"character reference, which is a decimal form of Unicode code point with " -"format :samp:`&#{num};` ." -msgstr "" -"Remplace avec la référence de caractère XML adaptée (uniquement pour " -"l'encodage). Implémenté dans :func:`xmlcharrefreplace_errors`." - -#: library/codecs.rst:532 -msgid "" -"Implements the ``'namereplace'`` error handling (for encoding " -"within :term:`text encoding` only)." -msgstr "" - -#: library/codecs.rst:535 -msgid "" -"The unencodable character is replaced by a ``\\N{...}`` escape sequence. The " -"set of characters that appear in the braces is the Name property from " -"Unicode Character Database. For example, the German lowercase letter ``'ß'`` " -"will be converted to byte sequence ``\\N{LATIN SMALL LETTER SHARP S}`` ." -msgstr "" - -#: library/codecs.rst:546 -msgid "Stateless Encoding and Decoding" -msgstr "" - -#: library/codecs.rst:548 -msgid "" -"The base :class:`Codec` class defines these methods which also define the " -"function interfaces of the stateless encoder and decoder:" -msgstr "" - -#: library/codecs.rst:556 -msgid "" -"Encodes the object *input* and returns a tuple (output object, length " -"consumed). For instance, :term:`text encoding` converts a string object to a " -"bytes object using a particular character set encoding (e.g., ``cp1252`` or " -"``iso-8859-1``)." -msgstr "" - -#: library/codecs.rst:583 -msgid "" -"The *errors* argument defines the error handling to apply. It defaults to " -"``'strict'`` handling." -msgstr "" - -#: library/codecs.rst:564 -msgid "" -"The method may not store state in the :class:`Codec` instance. " -"Use :class:`StreamWriter` for codecs which have to keep state in order to " -"make encoding efficient." -msgstr "" - -#: library/codecs.rst:568 -msgid "" -"The encoder must be able to handle zero length input and return an empty " -"object of the output object type in this situation." -msgstr "" - -#: library/codecs.rst:574 -msgid "" -"Decodes the object *input* and returns a tuple (output object, length " -"consumed). For instance, for a :term:`text encoding`, decoding converts a " -"bytes object encoded using a particular character set encoding to a string " -"object." -msgstr "" - -#: library/codecs.rst:579 -msgid "" -"For text encodings and bytes-to-bytes codecs, *input* must be a bytes object " -"or one which provides the read-only buffer interface -- for example, buffer " -"objects and memory mapped files." -msgstr "" - -#: library/codecs.rst:586 -msgid "" -"The method may not store state in the :class:`Codec` instance. " -"Use :class:`StreamReader` for codecs which have to keep state in order to " -"make decoding efficient." -msgstr "" - -#: library/codecs.rst:590 -msgid "" -"The decoder must be able to handle zero length input and return an empty " -"object of the output object type in this situation." -msgstr "" - -#: library/codecs.rst:595 -msgid "Incremental Encoding and Decoding" -msgstr "" - -#: library/codecs.rst:597 -msgid "" -"The :class:`IncrementalEncoder` and :class:`IncrementalDecoder` classes " -"provide the basic interface for incremental encoding and decoding. Encoding/" -"decoding the input isn't done with one call to the stateless encoder/decoder " -"function, but with multiple calls to " -"the :meth:`~IncrementalEncoder.encode`/:meth:`~IncrementalDecoder.decode` " -"method of the incremental encoder/decoder. The incremental encoder/decoder " -"keeps track of the encoding/decoding process during method calls." -msgstr "" - -#: library/codecs.rst:605 -msgid "" -"The joined output of calls to " -"the :meth:`~IncrementalEncoder.encode`/:meth:`~IncrementalDecoder.decode` " -"method is the same as if all the single inputs were joined into one, and " -"this input was encoded/decoded with the stateless encoder/decoder." -msgstr "" - -#: library/codecs.rst:614 -msgid "IncrementalEncoder Objects" -msgstr "" - -#: library/codecs.rst:616 -msgid "" -"The :class:`IncrementalEncoder` class is used for encoding an input in " -"multiple steps. It defines the following methods which every incremental " -"encoder must define in order to be compatible with the Python codec registry." -msgstr "" - -#: library/codecs.rst:623 -msgid "Constructor for an :class:`IncrementalEncoder` instance." -msgstr "" - -#: library/codecs.rst:625 -msgid "" -"All incremental encoders must provide this constructor interface. They are " -"free to add additional keyword arguments, but only the ones defined here are " -"used by the Python codec registry." -msgstr "" - -#: library/codecs.rst:629 -msgid "" -"The :class:`IncrementalEncoder` may implement different error handling " -"schemes by providing the *errors* keyword argument. See :ref:`error-" -"handlers` for possible values." -msgstr "" - -#: library/codecs.rst:633 -msgid "" -"The *errors* argument will be assigned to an attribute of the same name. " -"Assigning to this attribute makes it possible to switch between different " -"error handling strategies during the lifetime of " -"the :class:`IncrementalEncoder` object." -msgstr "" - -#: library/codecs.rst:641 -msgid "" -"Encodes *object* (taking the current state of the encoder into account) and " -"returns the resulting encoded object. If this is the last call " -"to :meth:`encode` *final* must be true (the default is false)." -msgstr "" - -#: library/codecs.rst:648 -msgid "" -"Reset the encoder to the initial state. The output is discarded: call " -"``.encode(object, final=True)``, passing an empty byte or text string if " -"necessary, to reset the encoder and to get the output." -msgstr "" - -#: library/codecs.rst:655 -msgid "" -"Return the current state of the encoder which must be an integer. The " -"implementation should make sure that ``0`` is the most common state. (States " -"that are more complicated than integers can be converted into an integer by " -"marshaling/pickling the state and encoding the bytes of the resulting string " -"into an integer.)" -msgstr "" - -#: library/codecs.rst:664 -msgid "" -"Set the state of the encoder to *state*. *state* must be an encoder state " -"returned by :meth:`getstate`." -msgstr "" - -#: library/codecs.rst:671 -msgid "IncrementalDecoder Objects" -msgstr "" - -#: library/codecs.rst:673 -msgid "" -"The :class:`IncrementalDecoder` class is used for decoding an input in " -"multiple steps. It defines the following methods which every incremental " -"decoder must define in order to be compatible with the Python codec registry." -msgstr "" - -#: library/codecs.rst:680 -msgid "Constructor for an :class:`IncrementalDecoder` instance." -msgstr "" - -#: library/codecs.rst:682 -msgid "" -"All incremental decoders must provide this constructor interface. They are " -"free to add additional keyword arguments, but only the ones defined here are " -"used by the Python codec registry." -msgstr "" - -#: library/codecs.rst:686 -msgid "" -"The :class:`IncrementalDecoder` may implement different error handling " -"schemes by providing the *errors* keyword argument. See :ref:`error-" -"handlers` for possible values." -msgstr "" - -#: library/codecs.rst:690 -msgid "" -"The *errors* argument will be assigned to an attribute of the same name. " -"Assigning to this attribute makes it possible to switch between different " -"error handling strategies during the lifetime of " -"the :class:`IncrementalDecoder` object." -msgstr "" - -#: library/codecs.rst:698 -msgid "" -"Decodes *object* (taking the current state of the decoder into account) and " -"returns the resulting decoded object. If this is the last call " -"to :meth:`decode` *final* must be true (the default is false). If *final* is " -"true the decoder must decode the input completely and must flush all " -"buffers. If this isn't possible (e.g. because of incomplete byte sequences " -"at the end of the input) it must initiate error handling just like in the " -"stateless case (which might raise an exception)." -msgstr "" - -#: library/codecs.rst:709 -msgid "Reset the decoder to the initial state." -msgstr "" - -#: library/codecs.rst:714 -msgid "" -"Return the current state of the decoder. This must be a tuple with two " -"items, the first must be the buffer containing the still undecoded input. " -"The second must be an integer and can be additional state info. (The " -"implementation should make sure that ``0`` is the most common additional " -"state info.) If this additional state info is ``0`` it must be possible to " -"set the decoder to the state which has no input buffered and ``0`` as the " -"additional state info, so that feeding the previously buffered input to the " -"decoder returns it to the previous state without producing any output. " -"(Additional state info that is more complicated than integers can be " -"converted into an integer by marshaling/pickling the info and encoding the " -"bytes of the resulting string into an integer.)" -msgstr "" - -#: library/codecs.rst:729 -msgid "" -"Set the state of the decoder to *state*. *state* must be a decoder state " -"returned by :meth:`getstate`." -msgstr "" - -#: library/codecs.rst:734 -msgid "Stream Encoding and Decoding" -msgstr "" - -#: library/codecs.rst:737 -msgid "" -"The :class:`StreamWriter` and :class:`StreamReader` classes provide generic " -"working interfaces which can be used to implement new encoding submodules " -"very easily. See :mod:`!encodings.utf_8` for an example of how this is done." -msgstr "" - -#: library/codecs.rst:745 -msgid "StreamWriter Objects" -msgstr "" - -#: library/codecs.rst:747 -msgid "" -"The :class:`StreamWriter` class is a subclass of :class:`Codec` and defines " -"the following methods which every stream writer must define in order to be " -"compatible with the Python codec registry." -msgstr "" - -#: library/codecs.rst:754 -msgid "Constructor for a :class:`StreamWriter` instance." -msgstr "" - -#: library/codecs.rst:756 -msgid "" -"All stream writers must provide this constructor interface. They are free to " -"add additional keyword arguments, but only the ones defined here are used by " -"the Python codec registry." -msgstr "" - -#: library/codecs.rst:760 -msgid "" -"The *stream* argument must be a file-like object open for writing text or " -"binary data, as appropriate for the specific codec." -msgstr "" - -#: library/codecs.rst:763 -msgid "" -"The :class:`StreamWriter` may implement different error handling schemes by " -"providing the *errors* keyword argument. See :ref:`error-handlers` for the " -"standard error handlers the underlying stream codec may support." -msgstr "" - -#: library/codecs.rst:767 -msgid "" -"The *errors* argument will be assigned to an attribute of the same name. " -"Assigning to this attribute makes it possible to switch between different " -"error handling strategies during the lifetime of the :class:`StreamWriter` " -"object." -msgstr "" - -#: library/codecs.rst:773 -msgid "Writes the object's contents encoded to the stream." -msgstr "" - -#: library/codecs.rst:778 -msgid "" -"Writes the concatenated iterable of strings to the stream (possibly by " -"reusing the :meth:`write` method). Infinite or very large iterables are not " -"supported. The standard bytes-to-bytes codecs do not support this method." -msgstr "" - -#: library/codecs.rst:881 -msgid "Resets the codec buffers used for keeping internal state." -msgstr "" - -#: library/codecs.rst:788 -msgid "" -"Calling this method should ensure that the data on the output is put into a " -"clean state that allows appending of new fresh data without having to rescan " -"the whole stream to recover state." -msgstr "" - -#: library/codecs.rst:793 -msgid "" -"In addition to the above methods, the :class:`StreamWriter` must also " -"inherit all other methods and attributes from the underlying stream." -msgstr "" - -#: library/codecs.rst:800 -msgid "StreamReader Objects" -msgstr "" - -#: library/codecs.rst:802 -msgid "" -"The :class:`StreamReader` class is a subclass of :class:`Codec` and defines " -"the following methods which every stream reader must define in order to be " -"compatible with the Python codec registry." -msgstr "" - -#: library/codecs.rst:809 -msgid "Constructor for a :class:`StreamReader` instance." -msgstr "" - -#: library/codecs.rst:811 -msgid "" -"All stream readers must provide this constructor interface. They are free to " -"add additional keyword arguments, but only the ones defined here are used by " -"the Python codec registry." -msgstr "" - -#: library/codecs.rst:815 -msgid "" -"The *stream* argument must be a file-like object open for reading text or " -"binary data, as appropriate for the specific codec." -msgstr "" - -#: library/codecs.rst:818 -msgid "" -"The :class:`StreamReader` may implement different error handling schemes by " -"providing the *errors* keyword argument. See :ref:`error-handlers` for the " -"standard error handlers the underlying stream codec may support." -msgstr "" - -#: library/codecs.rst:822 -msgid "" -"The *errors* argument will be assigned to an attribute of the same name. " -"Assigning to this attribute makes it possible to switch between different " -"error handling strategies during the lifetime of the :class:`StreamReader` " -"object." -msgstr "" - -#: library/codecs.rst:826 -msgid "" -"The set of allowed values for the *errors* argument can be extended " -"with :func:`register_error`." -msgstr "" - -#: library/codecs.rst:832 -msgid "Decodes data from the stream and returns the resulting object." -msgstr "" - -#: library/codecs.rst:834 -msgid "" -"The *chars* argument indicates the number of decoded code points or bytes to " -"return. The :func:`read` method will never return more data than requested, " -"but it might return less, if there is not enough available." -msgstr "" - -#: library/codecs.rst:839 -msgid "" -"The *size* argument indicates the approximate maximum number of encoded " -"bytes or code points to read for decoding. The decoder can modify this " -"setting as appropriate. The default value -1 indicates to read and decode as " -"much as possible. This parameter is intended to prevent having to decode " -"huge files in one step." -msgstr "" - -#: library/codecs.rst:846 -msgid "" -"The *firstline* flag indicates that it would be sufficient to only return " -"the first line, if there are decoding errors on later lines." -msgstr "" - -#: library/codecs.rst:850 -msgid "" -"The method should use a greedy read strategy meaning that it should read as " -"much data as is allowed within the definition of the encoding and the given " -"size, e.g. if optional encoding endings or state markers are available on " -"the stream, these should be read too." -msgstr "" - -#: library/codecs.rst:858 -msgid "Read one line from the input stream and return the decoded data." -msgstr "" - -#: library/codecs.rst:860 -msgid "" -"*size*, if given, is passed as size argument to the stream's :meth:`read` " -"method." -msgstr "" - -#: library/codecs.rst:863 -msgid "" -"If *keepends* is false line-endings will be stripped from the lines returned." -msgstr "" - -#: library/codecs.rst:869 -msgid "" -"Read all lines available on the input stream and return them as a list of " -"lines." -msgstr "" - -#: library/codecs.rst:872 -msgid "" -"Line-endings are implemented using the codec's :meth:`decode` method and are " -"included in the list entries if *keepends* is true." -msgstr "" - -#: library/codecs.rst:875 -msgid "" -"*sizehint*, if given, is passed as the *size* argument to the " -"stream's :meth:`read` method." -msgstr "" - -#: library/codecs.rst:883 -msgid "" -"Note that no stream repositioning should take place. This method is " -"primarily intended to be able to recover from decoding errors." -msgstr "" - -#: library/codecs.rst:887 -msgid "" -"In addition to the above methods, the :class:`StreamReader` must also " -"inherit all other methods and attributes from the underlying stream." -msgstr "" - -#: library/codecs.rst:893 -msgid "StreamReaderWriter Objects" -msgstr "" - -#: library/codecs.rst:895 -msgid "" -"The :class:`StreamReaderWriter` is a convenience class that allows wrapping " -"streams which work in both read and write modes." -msgstr "" - -#: library/codecs.rst:922 -msgid "" -"The design is such that one can use the factory functions returned by " -"the :func:`lookup` function to construct the instance." -msgstr "" - -#: library/codecs.rst:904 -msgid "" -"Creates a :class:`StreamReaderWriter` instance. *stream* must be a file-like " -"object. *Reader* and *Writer* must be factory functions or classes providing " -"the :class:`StreamReader` and :class:`StreamWriter` interface resp. Error " -"handling is done in the same way as defined for the stream readers and " -"writers." -msgstr "" - -#: library/codecs.rst:909 -msgid "" -":class:`StreamReaderWriter` instances define the combined interfaces " -"of :class:`StreamReader` and :class:`StreamWriter` classes. They inherit all " -"other methods and attributes from the underlying stream." -msgstr "" - -#: library/codecs.rst:917 -msgid "StreamRecoder Objects" -msgstr "" - -#: library/codecs.rst:919 -msgid "" -"The :class:`StreamRecoder` translates data from one encoding to another, " -"which is sometimes useful when dealing with different encoding environments." -msgstr "" - -#: library/codecs.rst:928 -msgid "" -"Creates a :class:`StreamRecoder` instance which implements a two-way " -"conversion: *encode* and *decode* work on the frontend — the data visible to " -"code calling :meth:`~StreamReader.read` and :meth:`~StreamWriter.write`, " -"while *Reader* and *Writer* work on the backend — the data in *stream*." -msgstr "" - -#: library/codecs.rst:934 -msgid "" -"You can use these objects to do transparent transcodings, e.g., from Latin-1 " -"to UTF-8 and back." -msgstr "" - -#: library/codecs.rst:937 -msgid "The *stream* argument must be a file-like object." -msgstr "" - -#: library/codecs.rst:939 -msgid "" -"The *encode* and *decode* arguments must adhere to the :class:`Codec` " -"interface. *Reader* and *Writer* must be factory functions or classes " -"providing objects of the :class:`StreamReader` and :class:`StreamWriter` " -"interface respectively." -msgstr "" - -#: library/codecs.rst:944 -msgid "" -"Error handling is done in the same way as defined for the stream readers and " -"writers." -msgstr "" - -#: library/codecs.rst:948 -msgid "" -":class:`StreamRecoder` instances define the combined interfaces " -"of :class:`StreamReader` and :class:`StreamWriter` classes. They inherit all " -"other methods and attributes from the underlying stream." -msgstr "" - -#: library/codecs.rst:956 -msgid "Encodings and Unicode" -msgstr "" - -#: library/codecs.rst:958 -msgid "" -"Strings are stored internally as sequences of code points in range " -"``U+0000``--``U+10FFFF``. (See :pep:`393` for more details about the " -"implementation.) Once a string object is used outside of CPU and memory, " -"endianness and how these arrays are stored as bytes become an issue. As with " -"other codecs, serialising a string into a sequence of bytes is known as " -"*encoding*, and recreating the string from the sequence of bytes is known as " -"*decoding*. There are a variety of different text serialisation codecs, " -"which are collectivity referred to as :term:`text encodings `." -msgstr "" - -#: library/codecs.rst:968 -msgid "" -"The simplest text encoding (called ``'latin-1'`` or ``'iso-8859-1'``) maps " -"the code points 0--255 to the bytes ``0x0``--``0xff``, which means that a " -"string object that contains code points above ``U+00FF`` can't be encoded " -"with this codec. Doing so will raise a :exc:`UnicodeEncodeError` that looks " -"like the following (although the details of the error message may differ): " -"``UnicodeEncodeError: 'latin-1' codec can't encode character '\\u1234' in " -"position 3: ordinal not in range(256)``." -msgstr "" - -#: library/codecs.rst:976 -msgid "" -"There's another group of encodings (the so called charmap encodings) that " -"choose a different subset of all Unicode code points and how these code " -"points are mapped to the bytes ``0x0``--``0xff``. To see how this is done " -"simply open e.g. :file:`encodings/cp1252.py` (which is an encoding that is " -"used primarily on Windows). There's a string constant with 256 characters " -"that shows you which character is mapped to which byte value." -msgstr "" - -#: library/codecs.rst:983 -msgid "" -"All of these encodings can only encode 256 of the 1114112 code points " -"defined in Unicode. A simple and straightforward way that can store each " -"Unicode code point, is to store each code point as four consecutive bytes. " -"There are two possibilities: store the bytes in big endian or in little " -"endian order. These two encodings are called ``UTF-32-BE`` and ``UTF-32-LE`` " -"respectively. Their disadvantage is that if, for example, you use ``UTF-32-" -"BE`` on a little endian machine you will always have to swap bytes on " -"encoding and decoding. Python's ``UTF-16`` and ``UTF-32`` codecs avoid this " -"problem by using the platform's native byte order when no BOM is present. " -"Python follows prevailing platform practice, so native-endian data round-" -"trips without redundant byte swapping, even though the Unicode Standard " -"defaults to big-endian when the byte order is unspecified. When these bytes " -"are read by a CPU with a different endianness, the bytes have to be swapped. " -"To be able to detect the endianness of a ``UTF-16`` or ``UTF-32`` byte " -"sequence, a BOM (\"Byte Order Mark\") is used. This is the Unicode character " -"``U+FEFF``. This character can be prepended to every ``UTF-16`` or " -"``UTF-32`` byte sequence. The byte swapped version of this character " -"(``0xFFFE``) is an illegal character that may not appear in a Unicode text. " -"When the first character of a ``UTF-16`` or ``UTF-32`` byte sequence is " -"``U+FFFE``, the bytes have to be swapped on decoding." -msgstr "" - -#: library/codecs.rst:1004 -msgid "" -"Unfortunately the character ``U+FEFF`` had a second purpose as a ``ZERO " -"WIDTH NO-BREAK SPACE``: a character that has no width and doesn't allow a " -"word to be split. It can e.g. be used to give hints to a ligature algorithm. " -"With Unicode 4.0 using ``U+FEFF`` as a ``ZERO WIDTH NO-BREAK SPACE`` has " -"been deprecated (with ``U+2060`` (``WORD JOINER``) assuming this role). " -"Nevertheless Unicode software still must be able to handle ``U+FEFF`` in " -"both roles: as a BOM it's a device to determine the storage layout of the " -"encoded bytes, and vanishes once the byte sequence has been decoded into a " -"string; as a ``ZERO WIDTH NO-BREAK SPACE`` it's a normal character that will " -"be decoded like any other." -msgstr "" - -#: library/codecs.rst:1014 -msgid "" -"There's another encoding that is able to encode the full range of Unicode " -"characters: UTF-8. UTF-8 is an 8-bit encoding, which means there are no " -"issues with byte order in UTF-8. Each byte in a UTF-8 byte sequence consists " -"of two parts: marker bits (the most significant bits) and payload bits. The " -"marker bits are a sequence of zero to four ``1`` bits followed by a ``0`` " -"bit. Unicode characters are encoded like this (with x being payload bits, " -"which when concatenated give the Unicode character):" -msgstr "" - -#: library/codecs.rst:1023 -msgid "Range" -msgstr "*Range*" - -#: library/codecs.rst:1023 -#, fuzzy -msgid "Encoding" -msgstr "Encodages" - -#: library/codecs.rst:1025 -msgid "``U-00000000`` ... ``U-0000007F``" -msgstr "``U-00000000`` ... ``U-0000007F``" - -#: library/codecs.rst:1025 -msgid "0xxxxxxx" -msgstr "0xxxxxxx" - -#: library/codecs.rst:1027 -msgid "``U-00000080`` ... ``U-000007FF``" -msgstr "``U-00000080`` ... ``U-000007FF``" - -#: library/codecs.rst:1027 -msgid "110xxxxx 10xxxxxx" -msgstr "110xxxxx 10xxxxxx" - -#: library/codecs.rst:1029 -msgid "``U-00000800`` ... ``U-0000FFFF``" -msgstr "``U-00000800`` ... ``U-0000FFFF``" - -#: library/codecs.rst:1029 -msgid "1110xxxx 10xxxxxx 10xxxxxx" -msgstr "1110xxxx 10xxxxxx 10xxxxxx" - -#: library/codecs.rst:1031 -msgid "``U-00010000`` ... ``U-0010FFFF``" -msgstr "``U-00010000`` ... ``U-0010FFFF``" - -#: library/codecs.rst:1031 -msgid "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" -msgstr "11110xxx 10xxxxxx 10xxxxxx 10xxxxxx" - -#: library/codecs.rst:1034 -msgid "" -"The least significant bit of the Unicode character is the rightmost x bit." -msgstr "" - -#: library/codecs.rst:1036 -msgid "" -"As UTF-8 is an 8-bit encoding no BOM is required and any ``U+FEFF`` " -"character in the decoded string (even if it's the first character) is " -"treated as a ``ZERO WIDTH NO-BREAK SPACE``." -msgstr "" - -#: library/codecs.rst:1040 -msgid "" -"Without external information it's impossible to reliably determine which " -"encoding was used for encoding a string. Each charmap encoding can decode " -"any random byte sequence. However that's not possible with UTF-8, as UTF-8 " -"byte sequences have a structure that doesn't allow arbitrary byte sequences. " -"To increase the reliability with which a UTF-8 encoding can be detected, " -"Microsoft invented a variant of UTF-8 (that Python calls ``\"utf-8-sig\"``) " -"for its Notepad program: Before any of the Unicode characters is written to " -"the file, a UTF-8 encoded BOM (which looks like this as a byte sequence: " -"``0xef``, ``0xbb``, ``0xbf``) is written. As it's rather improbable that any " -"charmap encoded file starts with these byte values (which would e.g. map to" -msgstr "" - -#: library/codecs.rst:1052 -msgid "LATIN SMALL LETTER I WITH DIAERESIS" -msgstr "LATIN SMALL LETTER I WITH DIAERESIS" - -#: library/codecs.rst:1053 -msgid "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" -msgstr "RIGHT-POINTING DOUBLE ANGLE QUOTATION MARK" - -#: library/codecs.rst:1054 -msgid "INVERTED QUESTION MARK" -msgstr "INVERTED QUESTION MARK" - -#: library/codecs.rst:1056 -msgid "" -"in iso-8859-1), this increases the probability that a ``utf-8-sig`` encoding " -"can be correctly guessed from the byte sequence. So here the BOM is not used " -"to be able to determine the byte order used for generating the byte " -"sequence, but as a signature that helps in guessing the encoding. On " -"encoding the utf-8-sig codec will write ``0xef``, ``0xbb``, ``0xbf`` as the " -"first three bytes to the file. On decoding ``utf-8-sig`` will skip those " -"three bytes if they appear as the first three bytes in the file. In UTF-8, " -"the use of the BOM is discouraged and should generally be avoided." -msgstr "" - -#: library/codecs.rst:1069 -msgid "Standard Encodings" -msgstr "" - -#: library/codecs.rst:1071 -msgid "" -"Python comes with a number of codecs built-in, either implemented as C " -"functions or with dictionaries as mapping tables. The following table lists " -"the codecs by name, together with a few common aliases, and the languages " -"for which the encoding is likely used. Neither the list of aliases nor the " -"list of languages is meant to be exhaustive. Notice that spelling " -"alternatives that only differ in case or use a space or a hyphen instead of " -"an underscore are also valid aliases because they are equivalent when " -"normalized by :func:`~encodings.normalize_encoding`. For example, " -"``'utf-8'`` is a valid alias for the ``'utf_8'`` codec." -msgstr "" - -#: library/codecs.rst:1083 -msgid "" -"The below table lists the most common aliases, for a complete list refer to " -"the source :source:`aliases.py ` file." -msgstr "" - -#: library/codecs.rst:1086 -msgid "" -"On Windows, ``cpXXX`` codecs are available for all code pages. But only " -"codecs listed in the following table are guaranteed to exist on other " -"platforms." -msgstr "" - -#: library/codecs.rst:1092 -msgid "" -"Some common encodings can bypass the codecs lookup machinery to improve " -"performance. These optimization opportunities are only recognized by CPython " -"for a limited set of (case insensitive) aliases: utf-8, utf8, latin-1, " -"latin1, iso-8859-1, iso8859-1, mbcs (Windows only), ascii, us-ascii, utf-16, " -"utf16, utf-32, utf32, and the same using underscores instead of dashes. " -"Using alternative aliases for these encodings may result in slower execution." -msgstr "" - -#: library/codecs.rst:1100 -msgid "Optimization opportunity recognized for us-ascii." -msgstr "" - -#: library/codecs.rst:1103 -msgid "" -"Many of the character sets support the same languages. They vary in " -"individual characters (e.g. whether the EURO SIGN is supported or not), and " -"in the assignment of characters to code positions. For the European " -"languages in particular, the following variants typically exist:" -msgstr "" - -#: library/codecs.rst:1108 -msgid "an ISO 8859 codeset" -msgstr "" - -#: library/codecs.rst:1110 -msgid "" -"a Microsoft Windows code page, which is typically derived from an 8859 " -"codeset, but replaces control characters with additional graphic characters" -msgstr "" - -#: library/codecs.rst:1113 -msgid "an IBM EBCDIC code page" -msgstr "" - -#: library/codecs.rst:1115 -msgid "an IBM PC code page, which is ASCII compatible" -msgstr "" - -#: library/codecs.rst:1379 library/codecs.rst:1536 -msgid "Codec" -msgstr "" - -#: library/codecs.rst:1379 library/codecs.rst:1536 -msgid "Aliases" -msgstr "" - -#: library/codecs.rst:1120 -msgid "Languages" -msgstr "" - -#: library/codecs.rst:1122 -msgid "ascii" -msgstr "*ascii*" - -#: library/codecs.rst:1122 -msgid "646, us-ascii" -msgstr "*646*, *us-ascii*" - -#: library/codecs.rst:1128 library/codecs.rst:1136 -msgid "English" -msgstr "Anglais" - -#: library/codecs.rst:1124 -msgid "big5" -msgstr "*big5*" - -#: library/codecs.rst:1124 -msgid "big5-tw, csbig5" -msgstr "*big5-tw*, *csbig5*" - -#: library/codecs.rst:1126 library/codecs.rst:1185 -msgid "Traditional Chinese" -msgstr "Chinois Traditionnel" - -#: library/codecs.rst:1126 -msgid "big5hkscs" -msgstr "*big5hkscs*" - -#: library/codecs.rst:1126 -msgid "big5-hkscs, hkscs" -msgstr "*big5-hkscs*, *hkscs*" - -#: library/codecs.rst:1128 -msgid "cp037" -msgstr "*cp037*" - -#: library/codecs.rst:1128 -msgid "IBM037, IBM039" -msgstr "*IBM037*, *IBM039*" - -#: library/codecs.rst:1130 -msgid "cp273" -msgstr "*cp273*" - -#: library/codecs.rst:1130 -msgid "273, IBM273, csIBM273" -msgstr "*273*, *IBM273*, *csIBM273*" - -#: library/codecs.rst:1130 -msgid "German" -msgstr "Allemand" - -#: library/codecs.rst:1134 -msgid "cp424" -msgstr "*cp424*" - -#: library/codecs.rst:1134 -msgid "EBCDIC-CP-HE, IBM424" -msgstr "*EBCDIC-CP-HE*, *IBM424*" - -#: library/codecs.rst:1154 library/codecs.rst:1208 library/codecs.rst:1271 -msgid "Hebrew" -msgstr "Hébreux" - -#: library/codecs.rst:1136 -msgid "cp437" -msgstr "*cp437*" - -#: library/codecs.rst:1136 -msgid "437, IBM437" -msgstr "*437*, *IBM437*" - -#: library/codecs.rst:1138 -msgid "cp500" -msgstr "*cp500*" - -#: library/codecs.rst:1138 -msgid "EBCDIC-CP-BE, EBCDIC-CP-CH, IBM500" -msgstr "*EBCDIC-CP-BE*, *EBCDIC-CP-CH*, *IBM500*" - -#: library/codecs.rst:1147 library/codecs.rst:1195 library/codecs.rst:1255 -#: library/codecs.rst:1311 -msgid "Western Europe" -msgstr "Europe de l'ouest" - -#: library/codecs.rst:1141 -msgid "cp720" -msgstr "*cp720*" - -#: library/codecs.rst:1168 library/codecs.rst:1267 -msgid "Arabic" -msgstr "Arabe" - -#: library/codecs.rst:1143 -msgid "cp737" -msgstr "*cp737*" - -#: library/codecs.rst:1174 library/codecs.rst:1204 library/codecs.rst:1304 -msgid "Greek" -msgstr "Grec" - -#: library/codecs.rst:1145 -msgid "cp775" -msgstr "*cp775*" - -#: library/codecs.rst:1145 -msgid "IBM775" -msgstr "*IBM775*" - -#: library/codecs.rst:1212 library/codecs.rst:1279 -msgid "Baltic languages" -msgstr "Langues Baltiques" - -#: library/codecs.rst:1147 -msgid "cp850" -msgstr "*cp850*" - -#: library/codecs.rst:1147 -msgid "850, IBM850" -msgstr "*850*, *IBM850*" - -#: library/codecs.rst:1149 -msgid "cp852" -msgstr "*cp852*" - -#: library/codecs.rst:1149 -msgid "852, IBM852" -msgstr "*852*, *IBM852*" - -#: library/codecs.rst:1197 library/codecs.rst:1308 -msgid "Central and Eastern Europe" -msgstr "Europe centrale et Europe de l'Est" - -#: library/codecs.rst:1151 -msgid "cp855" -msgstr "*cp855*" - -#: library/codecs.rst:1151 -msgid "855, IBM855" -msgstr "*855*, *IBM855*" - -#: library/codecs.rst:1199 library/codecs.rst:1301 -#, fuzzy -msgid "Belarusian, Bulgarian, Macedonian, Russian, Serbian" -msgstr "Bulgare, Biélorusse, Macédonien, Russe, Serbe" - -#: library/codecs.rst:1154 -msgid "cp856" -msgstr "*cp856*" - -#: library/codecs.rst:1156 -msgid "cp857" -msgstr "*cp857*" - -#: library/codecs.rst:1156 -msgid "857, IBM857" -msgstr "*857*, *IBM857*" - -#: library/codecs.rst:1189 library/codecs.rst:1273 library/codecs.rst:1313 -msgid "Turkish" -msgstr "Turc" - -#: library/codecs.rst:1158 -msgid "cp858" -msgstr "*cp858*" - -#: library/codecs.rst:1158 -#, fuzzy -msgid "858, IBM00858" -msgstr "*858*, *IBM858*" - -#: library/codecs.rst:1160 -msgid "cp860" -msgstr "*cp860*" - -#: library/codecs.rst:1160 -msgid "860, IBM860" -msgstr "*860*, *IBM860*" - -#: library/codecs.rst:1160 -msgid "Portuguese" -msgstr "Portugais" - -#: library/codecs.rst:1162 -msgid "cp861" -msgstr "*cp861*" - -#: library/codecs.rst:1162 -msgid "861, CP-IS, IBM861" -msgstr "*861*, *CP-IS*, *IBM861*" - -#: library/codecs.rst:1306 -msgid "Icelandic" -msgstr "Islandais" - -#: library/codecs.rst:1164 -msgid "cp862" -msgstr "*cp862*" - -#: library/codecs.rst:1164 -msgid "862, IBM862" -msgstr "*862*, *IBM862*" - -#: library/codecs.rst:1166 -msgid "cp863" -msgstr "*cp863*" - -#: library/codecs.rst:1166 -msgid "863, IBM863" -msgstr "*863*, *IBM863*" - -#: library/codecs.rst:1166 -msgid "Canadian" -msgstr "Canadien" - -#: library/codecs.rst:1168 -msgid "cp864" -msgstr "*cp864*" - -#: library/codecs.rst:1168 -msgid "IBM864" -msgstr "*IBM864*" - -#: library/codecs.rst:1170 -msgid "cp865" -msgstr "*cp865*" - -#: library/codecs.rst:1170 -msgid "865, IBM865" -msgstr "*865*, *IBM865*" - -#: library/codecs.rst:1170 -msgid "Danish, Norwegian" -msgstr "" - -#: library/codecs.rst:1172 -msgid "cp866" -msgstr "*cp866*" - -#: library/codecs.rst:1172 -msgid "866, IBM866" -msgstr "*866*, *IBM866*" - -#: library/codecs.rst:1289 -msgid "Russian" -msgstr "Russe" - -#: library/codecs.rst:1174 -msgid "cp869" -msgstr "*cp869*" - -#: library/codecs.rst:1174 -msgid "869, CP-GR, IBM869" -msgstr "*869*, *CP-GR*, *IBM869*" - -#: library/codecs.rst:1176 -msgid "cp874" -msgstr "*cp874*" - -#: library/codecs.rst:1176 -msgid "Thai" -msgstr "" - -#: library/codecs.rst:1178 -msgid "cp875" -msgstr "*cp875*" - -#: library/codecs.rst:1180 -msgid "cp932" -msgstr "*cp932*" - -#: library/codecs.rst:1180 -#, fuzzy -msgid "932, ms932, mskanji, ms-kanji, windows-31j" -msgstr "*932*, *ms932*, *mskanji*, *ms-kanji*" - -#: library/codecs.rst:1216 library/codecs.rst:1220 library/codecs.rst:1240 -#: library/codecs.rst:1248 library/codecs.rst:1318 library/codecs.rst:1324 -msgid "Japanese" -msgstr "" - -#: library/codecs.rst:1183 -msgid "cp949" -msgstr "*cp949*" - -#: library/codecs.rst:1183 -msgid "949, ms949, uhc" -msgstr "*949*, *ms949*, *uhc*" - -#: library/codecs.rst:1222 library/codecs.rst:1287 -msgid "Korean" -msgstr "" - -#: library/codecs.rst:1185 -msgid "cp950" -msgstr "*cp950*" - -#: library/codecs.rst:1185 -msgid "950, ms950" -msgstr "*950*, *ms950*" - -#: library/codecs.rst:1187 -msgid "cp1006" -msgstr "*cp1006*" - -#: library/codecs.rst:1187 -msgid "Urdu" -msgstr "" - -#: library/codecs.rst:1189 -msgid "cp1026" -msgstr "*cp1026*" - -#: library/codecs.rst:1189 -msgid "ibm1026" -msgstr "*ibm1026*" - -#: library/codecs.rst:1191 -msgid "cp1125" -msgstr "*cp1125*" - -#: library/codecs.rst:1191 -msgid "1125, ibm1125, cp866u, ruscii" -msgstr "*1125*, *ibm1125*, *cp866u*, *ruscii*" - -#: library/codecs.rst:1295 -msgid "Ukrainian" -msgstr "" - -#: library/codecs.rst:1195 -msgid "cp1140" -msgstr "*cp1140*" - -#: library/codecs.rst:1195 -msgid "IBM01140" -msgstr "" - -#: library/codecs.rst:1197 -msgid "cp1250" -msgstr "*cp1250*" - -#: library/codecs.rst:1197 -msgid "windows-1250" -msgstr "*windows-1250*" - -#: library/codecs.rst:1199 -msgid "cp1251" -msgstr "*cp1251*" - -#: library/codecs.rst:1199 -msgid "windows-1251" -msgstr "*windows-1251*" - -#: library/codecs.rst:1202 -msgid "cp1252" -msgstr "*cp1252*" - -#: library/codecs.rst:1202 -msgid "windows-1252" -msgstr "*windows-1252*" - -#: library/codecs.rst:1204 -msgid "cp1253" -msgstr "*cp1253*" - -#: library/codecs.rst:1204 -msgid "windows-1253" -msgstr "*windows-1253*" - -#: library/codecs.rst:1206 -msgid "cp1254" -msgstr "*cp1254*" - -#: library/codecs.rst:1206 -msgid "windows-1254" -msgstr "*windows-1254*" - -#: library/codecs.rst:1208 -msgid "cp1255" -msgstr "*cp1255*" - -#: library/codecs.rst:1208 -msgid "windows-1255" -msgstr "*windows-1255*" - -#: library/codecs.rst:1210 -msgid "cp1256" -msgstr "*cp1256*" - -#: library/codecs.rst:1210 -msgid "windows-1256" -msgstr "*windows-1256*" - -#: library/codecs.rst:1212 -msgid "cp1257" -msgstr "*cp1257*" - -#: library/codecs.rst:1212 -msgid "windows-1257" -msgstr "*windows-1257*" - -#: library/codecs.rst:1214 -msgid "cp1258" -msgstr "*cp1258*" - -#: library/codecs.rst:1214 -msgid "windows-1258" -msgstr "*windows-1258*" - -#: library/codecs.rst:1214 -msgid "Vietnamese" -msgstr "" - -#: library/codecs.rst:1216 -msgid "euc_jp" -msgstr "*euc_jp*" - -#: library/codecs.rst:1216 -msgid "eucjp, ujis, u-jis" -msgstr "*eucjp*, *ujis*, *u-jis*" - -#: library/codecs.rst:1218 -msgid "euc_jis_2004" -msgstr "*euc_jis_2004*" - -#: library/codecs.rst:1218 -msgid "jisx0213, eucjis2004" -msgstr "*jisx0213*, *eucjis2004*" - -#: library/codecs.rst:1220 -msgid "euc_jisx0213" -msgstr "*euc_jisx0213*" - -#: library/codecs.rst:1220 -msgid "eucjisx0213" -msgstr "*eucjisx0213*" - -#: library/codecs.rst:1222 -msgid "euc_kr" -msgstr "*euc_kr*" - -#: library/codecs.rst:1222 -msgid "euckr, korean, ksc5601, ks_c-5601, ks_c-5601-1987, ksx1001, ks_x-1001" -msgstr "" -"*euckr*, *korean*, *ksc5601*, *ks_c-5601*, *ks_c-5601-1987*, *ksx1001*, " -"*ks_x-1001*" - -#: library/codecs.rst:1226 -msgid "gb2312" -msgstr "*gb2312*" - -#: library/codecs.rst:1226 -msgid "" -"chinese, csiso58gb231280, euc-cn, euccn, eucgb2312-cn, gb2312-1980, " -"gb2312-80, iso-ir-58" -msgstr "" -"*chinese*, *csiso58gb231280*, *euc-cn*, *euccn*, *eucgb2312-cn*, " -"*gb2312-1980*, *gb2312-80*, *iso-ir-58*" - -#: library/codecs.rst:1235 -msgid "Simplified Chinese" -msgstr "" - -#: library/codecs.rst:1231 -msgid "gbk" -msgstr "*gbk*" - -#: library/codecs.rst:1231 -msgid "936, cp936, ms936" -msgstr "*936*, *cp936*, *ms936*" - -#: library/codecs.rst:1233 -msgid "Unified Chinese" -msgstr "" - -#: library/codecs.rst:1233 -msgid "gb18030" -msgstr "*gb18030*" - -#: library/codecs.rst:1233 -msgid "gb18030-2000" -msgstr "*gb18030-2000*" - -#: library/codecs.rst:1235 -msgid "hz" -msgstr "*hz*" - -#: library/codecs.rst:1235 -msgid "hzgb, hz-gb, hz-gb-2312" -msgstr "*hzgb*, *hz-gb*, *hz-gb-2312*" - -#: library/codecs.rst:1237 -msgid "iso2022_jp" -msgstr "*iso2022_jp*" - -#: library/codecs.rst:1237 -msgid "csiso2022jp, iso2022jp, iso-2022-jp" -msgstr "*csiso2022jp*, *iso2022jp*, *iso-2022-jp*" - -#: library/codecs.rst:1240 -msgid "iso2022_jp_1" -msgstr "*iso2022_jp_1*" - -#: library/codecs.rst:1240 -msgid "iso2022jp-1, iso-2022-jp-1" -msgstr "*iso2022jp-1*, *iso-2022-jp-1*" - -#: library/codecs.rst:1242 -msgid "iso2022_jp_2" -msgstr "*iso2022_jp_2*" - -#: library/codecs.rst:1242 -msgid "iso2022jp-2, iso-2022-jp-2" -msgstr "*iso2022jp-2*, *iso-2022-jp-2*" - -#: library/codecs.rst:1242 -msgid "Japanese, Korean, Simplified Chinese, Western Europe, Greek" -msgstr "" - -#: library/codecs.rst:1245 -msgid "iso2022_jp_2004" -msgstr "*iso2022_jp_2004*" - -#: library/codecs.rst:1245 -msgid "iso2022jp-2004, iso-2022-jp-2004" -msgstr "*iso2022jp-2004*, *iso-2022-jp-2004*" - -#: library/codecs.rst:1248 -msgid "iso2022_jp_3" -msgstr "*iso2022_jp_3*" - -#: library/codecs.rst:1248 -msgid "iso2022jp-3, iso-2022-jp-3" -msgstr "*iso2022jp-3*, *iso-2022-jp-3*" - -#: library/codecs.rst:1250 -msgid "iso2022_jp_ext" -msgstr "*iso2022_jp_ext*" - -#: library/codecs.rst:1250 -msgid "iso2022jp-ext, iso-2022-jp-ext" -msgstr "*iso2022jp-ext*, *iso-2022-jp-ext*" - -#: library/codecs.rst:1252 -msgid "iso2022_kr" -msgstr "*iso2022_kr*" - -#: library/codecs.rst:1252 -msgid "csiso2022kr, iso2022kr, iso-2022-kr" -msgstr "*csiso2022kr*, *iso2022kr*, *iso-2022-kr*" - -#: library/codecs.rst:1255 -msgid "latin_1" -msgstr "*latin_1*" - -#: library/codecs.rst:1255 -msgid "iso-8859-1, iso8859-1, 8859, cp819, latin, latin1, L1" -msgstr "*iso-8859-1*, *iso8859-1*, *8859*, *cp819*, *latin*, *latin1*, *L1*" - -#: library/codecs.rst:1258 -msgid "iso8859_2" -msgstr "*iso8859_2*" - -#: library/codecs.rst:1258 -msgid "iso-8859-2, latin2, L2" -msgstr "*iso-8859-2*, *latin2*, *L2*" - -#: library/codecs.rst:1260 -msgid "iso8859_3" -msgstr "*iso8859_3*" - -#: library/codecs.rst:1260 -msgid "iso-8859-3, latin3, L3" -msgstr "*iso-8859-3*, *latin3*, *L3*" - -#: library/codecs.rst:1260 -msgid "Esperanto, Maltese" -msgstr "" - -#: library/codecs.rst:1262 -msgid "iso8859_4" -msgstr "*iso8859_4*" - -#: library/codecs.rst:1262 -msgid "iso-8859-4, latin4, L4" -msgstr "*iso-8859-4*, *latin4*, *L4*" - -#: library/codecs.rst:1262 -#, fuzzy -msgid "Northern Europe" -msgstr "Europe de l'ouest" - -#: library/codecs.rst:1264 -msgid "iso8859_5" -msgstr "*iso8859_5*" - -#: library/codecs.rst:1264 -msgid "iso-8859-5, cyrillic" -msgstr "*iso-8859-5*, *cyrillic*" - -#: library/codecs.rst:1267 -msgid "iso8859_6" -msgstr "*iso8859_6*" - -#: library/codecs.rst:1267 -msgid "iso-8859-6, arabic" -msgstr "*iso-8859-6*, *arabic*" - -#: library/codecs.rst:1269 -msgid "iso8859_7" -msgstr "*iso8859_7*" - -#: library/codecs.rst:1269 -msgid "iso-8859-7, greek, greek8" -msgstr "*iso-8859-7*, *greek*, *greek8*" - -#: library/codecs.rst:1271 -msgid "iso8859_8" -msgstr "*iso8859_8*" - -#: library/codecs.rst:1271 -msgid "iso-8859-8, hebrew" -msgstr "*iso-8859-8*, *hebrew*" - -#: library/codecs.rst:1273 -msgid "iso8859_9" -msgstr "*iso8859_9*" - -#: library/codecs.rst:1273 -msgid "iso-8859-9, latin5, L5" -msgstr "*iso-8859-9*, *latin5*, *L5*" - -#: library/codecs.rst:1275 -msgid "iso8859_10" -msgstr "*iso8859_10*" - -#: library/codecs.rst:1275 -msgid "iso-8859-10, latin6, L6" -msgstr "*iso-8859-10*, *latin6*, *L6*" - -#: library/codecs.rst:1275 -msgid "Nordic languages" -msgstr "" - -#: library/codecs.rst:1277 -msgid "iso8859_11" -msgstr "*iso8859_11*" - -#: library/codecs.rst:1277 -msgid "iso-8859-11, thai" -msgstr "*iso-8859-11*, *thai*" - -#: library/codecs.rst:1277 -msgid "Thai languages" -msgstr "" - -#: library/codecs.rst:1279 -msgid "iso8859_13" -msgstr "*iso8859_13*" - -#: library/codecs.rst:1279 -msgid "iso-8859-13, latin7, L7" -msgstr "*iso-8859-13*, *latin7*, *L7*" - -#: library/codecs.rst:1281 -msgid "iso8859_14" -msgstr "*iso8859_14*" - -#: library/codecs.rst:1281 -msgid "iso-8859-14, latin8, L8" -msgstr "*iso-8859-14*, *latin8*, *L8*" - -#: library/codecs.rst:1281 -msgid "Celtic languages" -msgstr "" - -#: library/codecs.rst:1283 -msgid "iso8859_15" -msgstr "*iso8859_15*" - -#: library/codecs.rst:1283 -msgid "iso-8859-15, latin9, L9" -msgstr "*iso-8859-15*, *latin9*, *L9*" - -#: library/codecs.rst:1285 -msgid "iso8859_16" -msgstr "*iso8859_16*" - -#: library/codecs.rst:1285 -msgid "iso-8859-16, latin10, L10" -msgstr "*iso-8859-16*, *latin10*, *L10*" - -#: library/codecs.rst:1285 -msgid "South-Eastern Europe" -msgstr "" - -#: library/codecs.rst:1287 -msgid "johab" -msgstr "*johab*" - -#: library/codecs.rst:1287 -msgid "cp1361, ms1361" -msgstr "*cp1361*, *ms1361*" - -#: library/codecs.rst:1289 -msgid "koi8_r" -msgstr "*koi8_r*" - -#: library/codecs.rst:1291 -msgid "koi8_t" -msgstr "*koi8_t*" - -#: library/codecs.rst:1291 -msgid "Tajik" -msgstr "*Tajik*" - -#: library/codecs.rst:1295 -msgid "koi8_u" -msgstr "*koi8_u*" - -#: library/codecs.rst:1297 -msgid "kz1048" -msgstr "*kz1048*" - -#: library/codecs.rst:1297 -msgid "kz_1048, strk1048_2002, rk1048" -msgstr "*kz_1048*, *strk1048_2002*, *rk1048*" - -#: library/codecs.rst:1315 -msgid "Kazakh" -msgstr "" - -#: library/codecs.rst:1301 -msgid "mac_cyrillic" -msgstr "*mac_cyrillic*" - -#: library/codecs.rst:1301 -msgid "maccyrillic" -msgstr "*maccyrillic*" - -#: library/codecs.rst:1304 -msgid "mac_greek" -msgstr "*mac_greek*" - -#: library/codecs.rst:1304 -msgid "macgreek" -msgstr "*macgreek*" - -#: library/codecs.rst:1306 -msgid "mac_iceland" -msgstr "*mac_iceland*" - -#: library/codecs.rst:1306 -msgid "maciceland" -msgstr "*maciceland*" - -#: library/codecs.rst:1308 -msgid "mac_latin2" -msgstr "*mac_latin2*" - -#: library/codecs.rst:1308 -#, fuzzy -msgid "maclatin2, maccentraleurope, mac_centeuro" -msgstr "*maclatin2*, *maccentraleurope*" - -#: library/codecs.rst:1311 -msgid "mac_roman" -msgstr "*mac_roman*" - -#: library/codecs.rst:1311 -msgid "macroman, macintosh" -msgstr "*macroman*, *macintosh*" - -#: library/codecs.rst:1313 -msgid "mac_turkish" -msgstr "*mac_turkish*" - -#: library/codecs.rst:1313 -msgid "macturkish" -msgstr "*macturkish*" - -#: library/codecs.rst:1315 -msgid "ptcp154" -msgstr "*ptcp154*" - -#: library/codecs.rst:1315 -msgid "csptcp154, pt154, cp154, cyrillic-asian" -msgstr "*csptcp154*, *pt154*, *cp154*, *cyrillic-asian*" - -#: library/codecs.rst:1318 -msgid "shift_jis" -msgstr "*shift_jis*" - -#: library/codecs.rst:1318 -msgid "csshiftjis, shiftjis, sjis, s_jis" -msgstr "*csshiftjis*, *shiftjis*, *sjis*, *s_jis*" - -#: library/codecs.rst:1321 -msgid "shift_jis_2004" -msgstr "*shift_jis_2004*" - -#: library/codecs.rst:1321 -msgid "shiftjis2004, sjis_2004, sjis2004" -msgstr "*shiftjis2004*, *sjis_2004*, *sjis2004*" - -#: library/codecs.rst:1324 -msgid "shift_jisx0213" -msgstr "*shift_jisx0213*" - -#: library/codecs.rst:1324 -msgid "shiftjisx0213, sjisx0213, s_jisx0213" -msgstr "*shiftjisx0213*, *sjisx0213*, *s_jisx0213*" - -#: library/codecs.rst:1327 -msgid "utf_32" -msgstr "*utf_32*" - -#: library/codecs.rst:1327 -msgid "U32, utf32" -msgstr "*U32*, *utf32*" - -#: library/codecs.rst:1329 library/codecs.rst:1333 library/codecs.rst:1337 -#: library/codecs.rst:1341 library/codecs.rst:1343 -msgid "all languages" -msgstr "" - -#: library/codecs.rst:1329 -msgid "utf_32_be" -msgstr "*utf_32_be*" - -#: library/codecs.rst:1329 -msgid "UTF-32BE" -msgstr "*UTF-32BE*" - -#: library/codecs.rst:1331 -msgid "utf_32_le" -msgstr "*utf_32_le*" - -#: library/codecs.rst:1331 -msgid "UTF-32LE" -msgstr "*UTF-32LE*" - -#: library/codecs.rst:1333 -msgid "utf_16" -msgstr "*utf_16*" - -#: library/codecs.rst:1333 -msgid "U16, utf16" -msgstr "*U16*, *utf16*" - -#: library/codecs.rst:1335 -msgid "utf_16_be" -msgstr "*utf_16_be*" - -#: library/codecs.rst:1335 -msgid "UTF-16BE" -msgstr "*UTF-16BE*" - -#: library/codecs.rst:1337 -msgid "utf_16_le" -msgstr "*utf_16_le*" - -#: library/codecs.rst:1337 -msgid "UTF-16LE" -msgstr "*UTF-16LE*" - -#: library/codecs.rst:1339 -msgid "utf_7" -msgstr "*utf_7*" - -#: library/codecs.rst:1339 -msgid "U7, unicode-1-1-utf-7" -msgstr "*U7*, *unicode-1-1-utf-7*" - -#: library/codecs.rst:1341 -msgid "utf_8" -msgstr "*utf_8*" - -#: library/codecs.rst:1341 -#, fuzzy -msgid "U8, UTF, utf8, cp65001" -msgstr "*U8*, *UTF*, *utf8*" - -#: library/codecs.rst:1343 -msgid "utf_8_sig" -msgstr "*utf_8_sig*" - -#: library/codecs.rst:1343 -msgid "utf8-sig" -msgstr "" - -#: library/codecs.rst:1346 -msgid "" -"The utf-16\\* and utf-32\\* encoders no longer allow surrogate code points " -"(``U+D800``--``U+DFFF``) to be encoded. The utf-32\\* decoders no longer " -"decode byte sequences that correspond to surrogate code points." -msgstr "" - -#: library/codecs.rst:1352 -msgid "``cp65001`` is now an alias to ``utf_8``." -msgstr "" - -#: library/codecs.rst:1355 -msgid "On Windows, ``cpXXX`` codecs are now available for all code pages." -msgstr "" - -#: library/codecs.rst:1360 -msgid "Python Specific Encodings" -msgstr "" - -#: library/codecs.rst:1362 -msgid "" -"A number of predefined codecs are specific to Python, so their codec names " -"have no meaning outside Python. These are listed in the tables below based " -"on the expected input and output types (note that while text encodings are " -"the most common use case for codecs, the underlying codec infrastructure " -"supports arbitrary data transforms rather than just text encodings). For " -"asymmetric codecs, the stated meaning describes the encoding direction." -msgstr "" - -#: library/codecs.rst:1370 -msgid "Text Encodings" -msgstr "" - -#: library/codecs.rst:1372 -msgid "" -"The following codecs provide :class:`str` to :class:`bytes` encoding " -"and :term:`bytes-like object` to :class:`str` decoding, similar to the " -"Unicode text encodings." -msgstr "" - -#: library/codecs.rst:1381 -msgid "idna" -msgstr "idna" - -#: library/codecs.rst:1381 -msgid "" -"Implement :rfc:`3490`, see also :mod:`encodings.idna`. Only " -"``errors='strict'`` is supported." -msgstr "" - -#: library/codecs.rst:1387 -msgid "mbcs" -msgstr "mbcs" - -#: library/codecs.rst:1387 -msgid "ansi, dbcs" -msgstr "" - -#: library/codecs.rst:1387 -msgid "" -"Windows only: Encode the operand according to the ANSI codepage (CP_ACP)." -msgstr "" - -#: library/codecs.rst:1391 -msgid "oem" -msgstr "" - -#: library/codecs.rst:1391 -msgid "" -"Windows only: Encode the operand according to the OEM codepage (CP_OEMCP)." -msgstr "" - -#: library/codecs.rst:1397 -msgid "palmos" -msgstr "palmos" - -#: library/codecs.rst:1397 -msgid "Encoding of PalmOS 3.5." -msgstr "" - -#: library/codecs.rst:1399 -msgid "punycode" -msgstr "punycode" - -#: library/codecs.rst:1399 -msgid "Implement :rfc:`3492`. Stateful codecs are not supported." -msgstr "" - -#: library/codecs.rst:1403 -msgid "raw_unicode_escape" -msgstr "raw_unicode_escape" - -#: library/codecs.rst:1403 -msgid "" -"Latin-1 encoding with :samp:`\\\\u{XXXX}` and :samp:`\\\\U{XXXXXXXX}` for " -"other code points. Existing backslashes are not escaped in any way. It is " -"used in the Python pickle protocol." -msgstr "" - -#: library/codecs.rst:1413 -msgid "undefined" -msgstr "undefined" - -#: library/codecs.rst:1413 -msgid "This Codec should only be used for testing purposes." -msgstr "" - -#: library/codecs.rst:1417 -msgid "" -"Raise an exception for all conversions, even empty strings. The error " -"handler is ignored." -msgstr "" - -#: library/codecs.rst:1422 -msgid "unicode_escape" -msgstr "unicode_escape" - -#: library/codecs.rst:1422 -msgid "" -"Encoding suitable as the contents of a Unicode literal in ASCII-encoded " -"Python source code, except that quotes are not escaped. Decode from Latin-1 " -"source code. Beware that Python source code actually uses UTF-8 by default." -msgstr "" - -#: library/codecs.rst:1434 -msgid "\"unicode_internal\" codec is removed." -msgstr "" - -#: library/codecs.rst:1441 -msgid "Binary Transforms" -msgstr "" - -#: library/codecs.rst:1443 -msgid "" -"The following codecs provide binary transforms: :term:`bytes-like object` " -"to :class:`bytes` mappings. They are not supported by :meth:`bytes.decode` " -"(which only produces :class:`str` output)." -msgstr "" - -#: library/codecs.rst:1451 -msgid "Encoder / decoder" -msgstr "" - -#: library/codecs.rst:1453 -msgid "base64_codec [#b64]_" -msgstr "base64_codec [#b64]_" - -#: library/codecs.rst:1453 -msgid "base64, base_64" -msgstr "base64, base_64" - -#: library/codecs.rst:1453 -msgid "" -"Convert the operand to multiline MIME base64 (the result always includes a " -"trailing ``'\\n'``)." -msgstr "" - -#: library/codecs.rst:1458 -msgid "" -"accepts any :term:`bytes-like object` as input for encoding and decoding" -msgstr "" - -#: library/codecs.rst:1453 -msgid ":meth:`base64.encodebytes` / :meth:`base64.decodebytes`" -msgstr "" - -#: library/codecs.rst:1464 -msgid "bz2_codec" -msgstr "bz2_codec" - -#: library/codecs.rst:1464 -msgid "bz2" -msgstr "bz2" - -#: library/codecs.rst:1464 -msgid "Compress the operand using bz2." -msgstr "" - -#: library/codecs.rst:1464 -msgid ":meth:`bz2.compress` / :meth:`bz2.decompress`" -msgstr "" - -#: library/codecs.rst:1467 -msgid "hex_codec" -msgstr "hex_codec" - -#: library/codecs.rst:1467 -msgid "hex" -msgstr "hex" - -#: library/codecs.rst:1467 -msgid "" -"Convert the operand to hexadecimal representation, with two digits per byte." -msgstr "" - -#: library/codecs.rst:1467 -msgid ":meth:`binascii.b2a_hex` / :meth:`binascii.a2b_hex`" -msgstr "" - -#: library/codecs.rst:1472 -msgid "quopri_codec" -msgstr "quopri_codec" - -#: library/codecs.rst:1472 -msgid "quopri, quotedprintable, quoted_printable" -msgstr "" - -#: library/codecs.rst:1472 -msgid "Convert the operand to MIME quoted printable." -msgstr "" - -#: library/codecs.rst:1472 -msgid ":meth:`quopri.encode` with ``quotetabs=True`` / :meth:`quopri.decode`" -msgstr "" - -#: library/codecs.rst:1476 -msgid "uu_codec" -msgstr "uu_codec" - -#: library/codecs.rst:1476 -msgid "uu" -msgstr "uu" - -#: library/codecs.rst:1476 -msgid "Convert the operand using uuencode." -msgstr "" - -#: library/codecs.rst:1479 -msgid "zlib_codec" -msgstr "zlib_codec" - -#: library/codecs.rst:1479 -msgid "zip, zlib" -msgstr "zip, zlib" - -#: library/codecs.rst:1479 -msgid "Compress the operand using gzip." -msgstr "" - -#: library/codecs.rst:1479 -msgid ":meth:`zlib.compress` / :meth:`zlib.decompress`" -msgstr ":meth:`zlib.compress` / :meth:`zlib.decompress`" - -#: library/codecs.rst:1483 -msgid "" -"In addition to :term:`bytes-like objects `, " -"``'base64_codec'`` also accepts ASCII-only instances of :class:`str` for " -"decoding" -msgstr "" - -#: library/codecs.rst:1487 -msgid "Restoration of the binary transforms." -msgstr "" - -#: library/codecs.rst:1490 -msgid "Restoration of the aliases for the binary transforms." -msgstr "" - -#: library/codecs.rst:1497 -msgid "Standalone Codec Functions" -msgstr "" - -#: library/codecs.rst:1499 -msgid "" -"The following functions provide encoding and decoding functionality similar " -"to codecs, but are not available as named codecs " -"through :func:`codecs.encode` or :func:`codecs.decode`. They are used " -"internally (for example, by :mod:`pickle`) and behave similarly to the " -"``string_escape`` codec that was removed in Python 3." -msgstr "" - -#: library/codecs.rst:1506 -msgid "" -"Encode *input* using escape sequences. Similar to how :func:`repr` on bytes " -"produces escaped byte values." -msgstr "" - -#: library/codecs.rst:1509 -msgid "*input* must be a :class:`bytes` object." -msgstr "" - -#: library/codecs.rst:1520 -msgid "" -"Returns a tuple ``(output, length)`` where *output* is a :class:`bytes` " -"object and *length* is the number of bytes consumed." -msgstr "" - -#: library/codecs.rst:1516 -msgid "Decode *input* from escape sequences back to the original bytes." -msgstr "" - -#: library/codecs.rst:1518 -msgid "*input* must be a :term:`bytes-like object`." -msgstr "" - -#: library/codecs.rst:1527 -msgid "Text Transforms" -msgstr "" - -#: library/codecs.rst:1529 -msgid "" -"The following codec provides a text transform: a :class:`str` " -"to :class:`str` mapping. It is not supported by :meth:`str.encode` (which " -"only produces :class:`bytes` output)." -msgstr "" - -#: library/codecs.rst:1538 -msgid "rot_13" -msgstr "rot_13" - -#: library/codecs.rst:1538 -msgid "rot13" -msgstr "rot13" - -#: library/codecs.rst:1538 -msgid "Return the Caesar-cypher encryption of the operand." -msgstr "" - -#: library/codecs.rst:1543 -msgid "Restoration of the ``rot_13`` text transform." -msgstr "" - -#: library/codecs.rst:1546 -msgid "Restoration of the ``rot13`` alias." -msgstr "" - -#: library/codecs.rst:1551 -msgid ":mod:`!encodings` --- Encodings package" -msgstr "" - -#: library/codecs.rst:1556 -msgid "This module implements the following functions:" -msgstr "" - -#: library/codecs.rst:1560 -msgid "Normalize encoding name *encoding*." -msgstr "" - -#: library/codecs.rst:1562 -msgid "" -"Normalization works as follows: all non-alphanumeric characters except the " -"dot used for Python package names are collapsed and replaced with a single " -"underscore, leading and trailing underscores are removed. For example, ``' " -"-;#'`` becomes ``'_'``." -msgstr "" - -#: library/codecs.rst:1567 -msgid "Note that *encoding* should be ASCII only." -msgstr "" - -#: library/codecs.rst:1571 -msgid "" -"The following functions should not be used directly, except for testing " -"purposes; :func:`codecs.lookup` should be used instead." -msgstr "" - -#: library/codecs.rst:1577 -msgid "" -"Search for the codec module corresponding to the given encoding name " -"*encoding*." -msgstr "" - -#: library/codecs.rst:1580 -msgid "" -"This function first normalizes the *encoding* " -"using :func:`normalize_encoding`, then looks for a corresponding alias. It " -"attempts to import a codec module from the encodings package using either " -"the alias or the normalized name. If the module is found and defines a valid " -"``getregentry()`` function that returns a :class:`codecs.CodecInfo` object, " -"the codec is cached and returned." -msgstr "" - -#: library/codecs.rst:1587 -msgid "" -"If the codec module defines a ``getaliases()`` function any returned aliases " -"are registered for future use." -msgstr "" - -#: library/codecs.rst:1593 -msgid "" -"Search for a Windows code page encoding *encoding* of the form ``cpXXXX``." -msgstr "" - -#: library/codecs.rst:1595 -msgid "" -"If the code page is valid and supported, return a :class:`codecs.CodecInfo` " -"object for it." -msgstr "" - -#: library/codecs.rst:1683 -msgid "Availability" -msgstr "Disponibilité" - -#: library/codecs.rst:1603 -msgid "This module implements the following exception:" -msgstr "" - -#: library/codecs.rst:1607 -msgid "Raised when a codec is invalid or incompatible." -msgstr "" - -#: library/codecs.rst:1611 -msgid "" -":mod:`!encodings.idna` --- Internationalized Domain Names in Applications" -msgstr "" - -#: library/codecs.rst:1616 -msgid "" -"This module implements :rfc:`3490` (Internationalized Domain Names in " -"Applications) and :rfc:`3492` (Nameprep: A Stringprep Profile for " -"Internationalized Domain Names (IDN)). It builds upon the ``punycode`` " -"encoding and :mod:`stringprep`." -msgstr "" - -#: library/codecs.rst:1621 -msgid "" -"If you need the IDNA 2008 standard from :rfc:`5891` and :rfc:`5895`, use the " -"third-party :pypi:`idna` module." -msgstr "" - -#: library/codecs.rst:1624 -msgid "" -"These RFCs together define a protocol to support non-ASCII characters in " -"domain names. A domain name containing non-ASCII characters (such as " -"``www.Alliancefrançaise.nu``) is converted into an ASCII-compatible encoding " -"(ACE, such as ``www.xn--alliancefranaise-npb.nu``). The ACE form of the " -"domain name is then used in all places where arbitrary characters are not " -"allowed by the protocol, such as DNS queries, HTTP :mailheader:`Host` " -"fields, and so on. This conversion is carried out in the application; if " -"possible invisible to the user: The application should transparently convert " -"Unicode domain labels to IDNA on the wire, and convert back ACE labels to " -"Unicode before presenting them to the user." -msgstr "" - -#: library/codecs.rst:1635 -msgid "" -"Python supports this conversion in several ways: the ``idna`` codec " -"performs conversion between Unicode and ACE, separating an input string into " -"labels based on the separator characters defined in :rfc:`section 3.1 of RFC " -"3490 <3490#section-3.1>` and converting each label to ACE as required, and " -"conversely separating an input byte string into labels based on the ``.`` " -"separator and converting any ACE labels found into unicode. Furthermore, " -"the :mod:`socket` module transparently converts Unicode host names to ACE, " -"so that applications need not be concerned about converting host names " -"themselves when they pass them to the socket module. On top of that, modules " -"that have host names as function parameters, such as :mod:`http.client` " -"and :mod:`ftplib`, accept Unicode host names (:mod:`http.client` then also " -"transparently sends an IDNA hostname in the :mailheader:`Host` field if it " -"sends that field at all)." -msgstr "" - -#: library/codecs.rst:1648 -msgid "" -"When receiving host names from the wire (such as in reverse name lookup), no " -"automatic conversion to Unicode is performed: applications wishing to " -"present such host names to the user should decode them to Unicode." -msgstr "" - -#: library/codecs.rst:1652 -msgid "" -"The module :mod:`!encodings.idna` also implements the nameprep procedure, " -"which performs certain normalizations on host names, to achieve case-" -"insensitivity of international domain names, and to unify similar " -"characters. The nameprep functions can be used directly if desired." -msgstr "" - -#: library/codecs.rst:1660 -msgid "" -"Return the nameprepped version of *label*. The implementation currently " -"assumes query strings, so ``AllowUnassigned`` is true." -msgstr "" - -#: library/codecs.rst:1666 -msgid "" -"Convert a label to ASCII, as specified in :rfc:`3490`. ``UseSTD3ASCIIRules`` " -"is assumed to be false." -msgstr "" - -#: library/codecs.rst:1672 -msgid "Convert a label to Unicode, as specified in :rfc:`3490`." -msgstr "" - -#: library/codecs.rst:1676 -msgid ":mod:`!encodings.mbcs` --- Windows ANSI codepage" -msgstr "" - -#: library/codecs.rst:1681 -msgid "This module implements the ANSI codepage (CP_ACP)." -msgstr "" - -#: library/codecs.rst:1685 -msgid "" -"Before 3.2, the *errors* argument was ignored; ``'replace'`` was always used " -"to encode, and ``'ignore'`` to decode." -msgstr "" - -#: library/codecs.rst:1689 -msgid "Support any error handler." -msgstr "" - -#: library/codecs.rst:1694 -msgid ":mod:`!encodings.utf_8_sig` --- UTF-8 codec with BOM signature" -msgstr "" - -#: library/codecs.rst:1699 -msgid "" -"This module implements a variant of the UTF-8 codec. On encoding, a UTF-8 " -"encoded BOM will be prepended to the UTF-8 encoded bytes. For the stateful " -"encoder this is only done once (on the first write to the byte stream). On " -"decoding, an optional UTF-8 encoded BOM at the start of the data will be " -"skipped." -msgstr "" - -#~ msgid "ibm1140" -#~ msgstr "*ibm1140*" - -#, fuzzy -#~ msgid "Unicode" -#~ msgstr "punycode" - -#, fuzzy -#~ msgid "encode" -#~ msgstr "punycode" - -#, fuzzy -#~ msgid "decode" -#~ msgstr "hex_codec" - -#, fuzzy -#~ msgid "strict" -#~ msgstr "``'strict'``" - -#, fuzzy -#~ msgid "error handler's name" -#~ msgstr "Gestionnaires d'erreurs" - -#, fuzzy -#~ msgid "ignore" -#~ msgstr "``'ignore'``" - -#, fuzzy -#~ msgid "replace" -#~ msgstr "``'replace'``" - -#, fuzzy -#~ msgid "backslashreplace" -#~ msgstr "``'backslashreplace'``" - -#, fuzzy -#~ msgid "surrogateescape" -#~ msgstr "``'surrogateescape'``" - -#, fuzzy -#~ msgid "xmlcharrefreplace" -#~ msgstr "``'xmlcharrefreplace'``" - -#, fuzzy -#~ msgid "namereplace" -#~ msgstr "``'namereplace'``" - -#, fuzzy -#~ msgid "surrogatepass" -#~ msgstr "``'surrogatepass'``" - -#, fuzzy -#~ msgid ":ref:`Availability `: Windows." -#~ msgstr ":ref:`Disponibilité ` : Windows uniquement." - -#~ msgid "" -#~ "Replace with backslashed escape sequences. Implemented " -#~ "in :func:`backslashreplace_errors`." -#~ msgstr "" -#~ "Remplace avec une séquence échappée par des antislashs. Implémenté " -#~ "dans :func:`backslashreplace_errors`." - -# Pas de majuscule en début car suit un deux-points. -#~ msgid "" -#~ "Search function registration is not currently reversible, which may cause " -#~ "problems in some cases, such as unit testing or module reloading." -#~ msgstr "" -#~ "l'enregistrement d'une fonction de recherche n'est actuellement pas " -#~ "réversible, ce qui peut entraîner des problèmes dans certains cas, par " -#~ "exemple pour les tests unitaires ou le rechargement de module." diff --git a/library/codeop.po b/library/codeop.po deleted file mode 100644 index 3b7fc9fefc..0000000000 --- a/library/codeop.po +++ /dev/null @@ -1,160 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-11-06 20:25+0100\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/codeop.rst:2 -#, fuzzy -msgid ":mod:`!codeop` --- Compile Python code" -msgstr ":mod:`codeop` — Compilation de code Python" - -#: library/codeop.rst:7 -msgid "**Source code:** :source:`Lib/codeop.py`" -msgstr "**Code source :** :source:`Lib/codeop.py`" - -#: library/codeop.rst:11 -#, fuzzy -msgid "" -"The :mod:`!codeop` module provides utilities upon which the Python read-eval-" -"print loop can be emulated, as is done in the :mod:`code` module. As a " -"result, you probably don't want to use the module directly; if you want to " -"include such a loop in your program you probably want to use the :mod:`code` " -"module instead." -msgstr "" -"Le module :mod:`codeop` fournit des outils permettant d'émuler une boucle de " -"lecture-évaluation-affichage (en anglais *read-eval-print-loop* ou REPL), " -"comme dans le module :mod:`code`. Par conséquent, ce module n'est pas " -"destiné à être utilisé directement ; pour inclure un REPL dans un programme, " -"il est préférable d'utiliser le module :mod:`code`." - -#: library/codeop.rst:17 -msgid "There are two parts to this job:" -msgstr "Cette tâche se divise en deux parties :" - -#: library/codeop.rst:19 -#, fuzzy -msgid "" -"Being able to tell if a line of input completes a Python statement: in " -"short, telling whether to print '``>>>``' or '``...``' next." -msgstr "" -"Pouvoir affirmer qu'une ligne d'entrée est une instruction complète, ou " -"achève une instruction : en bref, savoir s'il faut afficher « ``>>>`` » ou " -"« ``...`` » à sa suite." - -#: library/codeop.rst:22 -#, fuzzy -msgid "" -"Remembering which future statements the user has entered, so subsequent " -"input can be compiled with these in effect." -msgstr "" -"Conserver les instructions déjà entrées par l'utilisateur, afin que les " -"entrées suivantes puissent êtres compilées avec elles." - -#: library/codeop.rst:25 -#, fuzzy -msgid "" -"The :mod:`!codeop` module provides a way of doing each of these things, and " -"a way of doing them both." -msgstr "" -"Le module :mod:`codeop` fournit un moyen d'effectuer ces deux parties, " -"individuellement ou simultanément." - -#: library/codeop.rst:28 -msgid "To do just the former:" -msgstr "Pour ne faire que la première partie :" - -#: library/codeop.rst:32 -#, fuzzy -msgid "" -"Tries to compile *source*, which should be a string of Python code and " -"return a code object if *source* is valid Python code. In that case, the " -"filename attribute of the code object will be *filename*, which defaults to " -"``''``. Returns ``None`` if *source* is *not* valid Python code, but " -"is a prefix of valid Python code." -msgstr "" -"Essaye de compiler *source*, qui doit être une chaîne de caractères " -"représentant du code Python valide et renvoie un objet code le cas échéant. " -"Dans ce cas, l'attribut de nom de fichier de l'objet code renvoyé sera " -"*filename* (``''`` par défaut). Renvoie ``None`` si *source* n'est " -"*pas* du code Python valide, mais un *début* de code Python valide." - -#: library/codeop.rst:38 -msgid "" -"If there is a problem with *source*, an exception will be " -"raised. :exc:`SyntaxError` is raised if there is invalid Python syntax, " -"and :exc:`OverflowError` or :exc:`ValueError` if there is an invalid literal." -msgstr "" -"En cas de problème avec *source*, une exception est " -"levée ; :exc:`SyntaxError` si la syntaxe Python est incorrecte, " -"et :exc:`OverflowError` ou :exc:`ValueError` si un littéral invalide est " -"rencontré." - -#: library/codeop.rst:42 -#, fuzzy -msgid "" -"The *symbol* argument determines whether *source* is compiled as a statement " -"(``'single'``, the default), as a sequence of :term:`statement` (``'exec'``) " -"or as an :term:`expression` (``'eval'``). Any other value will " -"cause :exc:`ValueError` to be raised." -msgstr "" -"L'argument *symbol* détermine si *source* est compilée comme une instruction " -"(``'single'``, par défaut), comme une suite d'instructions (``'exec'``), ou " -"comme une :term:`expression` (``'eval'``). Toute autre valeur " -"lèvera :exc:`ValueError`." - -#: library/codeop.rst:49 -msgid "" -"It is possible (but not likely) that the parser stops parsing with a " -"successful outcome before reaching the end of the source; in this case, " -"trailing symbols may be ignored instead of causing an error. For example, a " -"backslash followed by two newlines may be followed by arbitrary garbage. " -"This will be fixed once the API for the parser is better." -msgstr "" -"Il est possible (quoique improbable) que l'analyseur s'arrête avant " -"d'atteindre la fin du code source ; dans ce cas, les symboles venant après " -"peuvent être ignorés au lieu de provoquer une erreur. Par exemple, une barre " -"oblique inverse suivie de deux retours à la ligne peut être suivie par de la " -"mémoire non-initialisée. Ceci sera corrigé quand l'interface de l'analyseur " -"aura été améliorée." - -#: library/codeop.rst:58 -#, fuzzy -msgid "" -"Instances of this class have :meth:`~object.__call__` methods identical in " -"signature to the built-in function :func:`compile`, but with the difference " -"that if the instance compiles program text containing a :mod:`__future__` " -"statement, the instance 'remembers' and compiles all subsequent program " -"texts with the statement in force." -msgstr "" -"Les instances de cette classe ont des méthodes :meth:`__call__` de signature " -"identique à la fonction native :func:`compile`, à la différence près que si " -"l'instance compile du code source contenant une " -"instruction :mod:`__future__`, l'instance s'en « souviendra » et compilera " -"tous les codes sources suivants avec cette instruction activée." - -#: library/codeop.rst:67 -#, fuzzy -msgid "" -"Instances of this class have :meth:`~object.__call__` methods identical in " -"signature to :func:`compile_command`; the difference is that if the instance " -"compiles program text containing a :mod:`__future__` statement, the instance " -"'remembers' and compiles all subsequent program texts with the statement in " -"force." -msgstr "" -"Les instances de cette classe ont des méthodes :meth:`__call__` de signature " -"identique à la fonction :func:`compile_command`, à la différence près que si " -"l'instance compile du code source contenant une instruction ``__future__``, " -"l'instance s'en « souviendra » et compilera tous les codes sources suivants " -"avec cette instruction activée." diff --git a/library/collections.abc.po b/library/collections.abc.po deleted file mode 100644 index 6fba78d015..0000000000 --- a/library/collections.abc.po +++ /dev/null @@ -1,888 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-25 10:48+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.6\n" - -#: library/collections.abc.rst:2 -#, fuzzy -msgid ":mod:`!collections.abc` --- Abstract Base Classes for Containers" -msgstr "" -":mod:`collections.abc` — Classes de base abstraites pour les conteneurs" - -#: library/collections.abc.rst:7 -msgid "Formerly, this module was part of the :mod:`collections` module." -msgstr "Auparavant, ce module faisait partie du module :mod:`collections`." - -#: library/collections.abc.rst:10 -msgid "**Source code:** :source:`Lib/_collections_abc.py`" -msgstr "**Code source :** :source:`Lib/_collections_abc.py`" - -#: library/collections.abc.rst:20 -#, fuzzy -msgid "" -"This module provides :term:`abstract base classes ` " -"that can be used to test whether a class provides a particular interface; " -"for example, whether it is :term:`hashable` or whether it is " -"a :term:`mapping`." -msgstr "" -"Ce module fournit :term:`des classes de base abstraites ` qui peuvent être utilisées pour vérifier si une classe fournit une " -"interface particulière (par exemple, savoir s'il s'agit d'un hachable ou " -"d'une table de correspondance)." - -#: library/collections.abc.rst:24 -msgid "" -"An :func:`issubclass` or :func:`isinstance` test for an interface works in " -"one of three ways." -msgstr "" - -#: library/collections.abc.rst:27 -msgid "" -"A newly written class can inherit directly from one of the abstract base " -"classes. The class must supply the required abstract methods. The " -"remaining mixin methods come from inheritance and can be overridden if " -"desired. Other methods may be added as needed:" -msgstr "" - -#: library/collections.abc.rst:47 -msgid "" -"Existing classes and built-in classes can be registered as \"virtual " -"subclasses\" of the ABCs. Those classes should define the full API " -"including all of the abstract methods and all of the mixin methods. This " -"lets users rely on :func:`issubclass` or :func:`isinstance` tests to " -"determine whether the full interface is supported. The exception to this " -"rule is for methods that are automatically inferred from the rest of the API:" -msgstr "" - -#: library/collections.abc.rst:73 -msgid "" -"In this example, class :class:`!D` does not need to define ``__contains__``, " -"``__iter__``, and ``__reversed__`` because the :ref:`in-operator " -"`, the :term:`iteration ` logic, and " -"the :func:`reversed` function automatically fall back to using " -"``__getitem__`` and ``__len__``." -msgstr "" - -#: library/collections.abc.rst:79 -msgid "" -"Some simple interfaces are directly recognizable by the presence of the " -"required methods (unless those methods have been set to :const:`None`):" -msgstr "" - -#: library/collections.abc.rst:95 -msgid "" -"Complex interfaces do not support this last technique because an interface " -"is more than just the presence of method names. Interfaces specify " -"semantics and relationships between methods that cannot be inferred solely " -"from the presence of specific method names. For example, knowing that a " -"class supplies ``__getitem__``, ``__len__``, and ``__iter__`` is " -"insufficient for distinguishing a :class:`Sequence` from a :class:`Mapping`." -msgstr "" - -#: library/collections.abc.rst:103 -msgid "" -"These abstract classes now support ``[]``. See :ref:`types-genericalias` " -"and :pep:`585`." -msgstr "" - -#: library/collections.abc.rst:110 -msgid "Collections Abstract Base Classes" -msgstr "Classes de base abstraites de collections" - -#: library/collections.abc.rst:112 -msgid "" -"The collections module offers the following :term:`ABCs `:" -msgstr "" -"Le module collections apporte les :term:`ABC ` " -"suivantes :" - -#: library/collections.abc.rst:117 -msgid "ABC" -msgstr "ABC" - -#: library/collections.abc.rst:117 -msgid "Inherits from" -msgstr "Hérite de" - -#: library/collections.abc.rst:117 -msgid "Abstract Methods" -msgstr "Méthodes abstraites" - -#: library/collections.abc.rst:117 -msgid "Mixin Methods" -msgstr "Méthodes *mixin*" - -#: library/collections.abc.rst:119 -#, fuzzy -msgid ":class:`Container` [1]_" -msgstr ":class:`Container`" - -#: library/collections.abc.rst:119 -msgid "``__contains__``" -msgstr "``__contains__``" - -#: library/collections.abc.rst:120 -#, fuzzy -msgid ":class:`Hashable` [1]_" -msgstr ":class:`Hashable`" - -#: library/collections.abc.rst:120 -msgid "``__hash__``" -msgstr "``__hash__``" - -#: library/collections.abc.rst:121 -#, fuzzy -msgid ":class:`Iterable` [1]_ [2]_" -msgstr ":class:`Iterable`" - -#: library/collections.abc.rst:121 library/collections.abc.rst:122 -msgid "``__iter__``" -msgstr "``__iter__``" - -#: library/collections.abc.rst:122 -#, fuzzy -msgid ":class:`Iterator` [1]_" -msgstr ":class:`Iterator`" - -#: library/collections.abc.rst:122 library/collections.abc.rst:123 -msgid ":class:`Iterable`" -msgstr ":class:`Iterable`" - -#: library/collections.abc.rst:122 -msgid "``__next__``" -msgstr "``__next__``" - -#: library/collections.abc.rst:123 -#, fuzzy -msgid ":class:`Reversible` [1]_" -msgstr ":class:`Reversible`" - -#: library/collections.abc.rst:123 -msgid "``__reversed__``" -msgstr "``__reversed__``" - -#: library/collections.abc.rst:124 -#, fuzzy -msgid ":class:`Generator` [1]_" -msgstr ":class:`Generator`" - -#: library/collections.abc.rst:124 -msgid ":class:`Iterator`" -msgstr ":class:`Iterator`" - -#: library/collections.abc.rst:124 library/collections.abc.rst:173 -msgid "``send``, ``throw``" -msgstr "``send``, ``throw``" - -#: library/collections.abc.rst:124 -msgid "``close``, ``__iter__``, ``__next__``" -msgstr "``close``, ``__iter__``, ``__next__``" - -#: library/collections.abc.rst:125 -#, fuzzy -msgid ":class:`Sized` [1]_" -msgstr ":class:`Sized`" - -#: library/collections.abc.rst:125 -msgid "``__len__``" -msgstr "``__len__``" - -#: library/collections.abc.rst:126 -#, fuzzy -msgid ":class:`Callable` [1]_" -msgstr ":class:`Callable`" - -#: library/collections.abc.rst:126 -msgid "``__call__``" -msgstr "``__call__``" - -#: library/collections.abc.rst:127 -#, fuzzy -msgid ":class:`Collection` [1]_" -msgstr ":class:`Collection`" - -#: library/collections.abc.rst:127 -msgid ":class:`Sized`, :class:`Iterable`, :class:`Container`" -msgstr ":class:`Sized`, :class:`Iterable`, :class:`Container`" - -#: library/collections.abc.rst:127 library/collections.abc.rst:143 -msgid "``__contains__``, ``__iter__``, ``__len__``" -msgstr "``__contains__``, ``__iter__``, ``__len__``" - -#: library/collections.abc.rst:131 library/collections.abc.rst:134 -#: library/collections.abc.rst:140 -msgid ":class:`Sequence`" -msgstr ":class:`Sequence`" - -#: library/collections.abc.rst:131 -msgid ":class:`Reversible`, :class:`Collection`" -msgstr ":class:`Reversible`, :class:`Collection`" - -#: library/collections.abc.rst:131 library/collections.abc.rst:140 -msgid "``__getitem__``, ``__len__``" -msgstr "``__getitem__``, ``__len__``" - -#: library/collections.abc.rst:131 -msgid "" -"``__contains__``, ``__iter__``, ``__reversed__``, ``index``, and ``count``" -msgstr "" -"``__contains__``, ``__iter__``, ``__reversed__``, ``index`` et ``count``" - -#: library/collections.abc.rst:134 -msgid ":class:`MutableSequence`" -msgstr ":class:`MutableSequence`" - -#: library/collections.abc.rst:134 -msgid "" -"``__getitem__``, ``__setitem__``, ``__delitem__``, ``__len__``, ``insert``" -msgstr "" -"``__getitem__``, ``__setitem__``, ``__delitem__``, ``__len__``, ``insert``" - -#: library/collections.abc.rst:134 -#, fuzzy -msgid "" -"Inherited :class:`Sequence` methods and ``append``, ``clear``, ``reverse``, " -"``extend``, ``pop``, ``remove``, and ``__iadd__``" -msgstr "" -"Méthodes héritées de :class:`Sequence`, et ``append``, ``reverse``, " -"``extend``, ``pop``, ``remove`` et ``__iadd__``" - -#: library/collections.abc.rst:140 -msgid ":class:`ByteString`" -msgstr ":class:`ByteString`" - -#: library/collections.abc.rst:140 -msgid "Inherited :class:`Sequence` methods" -msgstr "Méthodes héritées de :class:`Sequence`" - -#: library/collections.abc.rst:143 library/collections.abc.rst:148 -msgid ":class:`Set`" -msgstr ":class:`Set`" - -#: library/collections.abc.rst:143 library/collections.abc.rst:154 -msgid ":class:`Collection`" -msgstr ":class:`Collection`" - -#: library/collections.abc.rst:143 -#, fuzzy -msgid "" -"``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, ``__gt__``, ``__ge__``, " -"``__and__``, ``__or__``, ``__sub__``, ``__rsub__``, ``__xor__``, " -"``__rxor__`` and ``isdisjoint``" -msgstr "" -"``__le__``, ``__lt__``, ``__eq__``, ``__ne__``, ``__gt__``, ``__ge__``, " -"``__and__``, ``__or__``, ``__sub__``, ``__xor__`` et ``isdisjoint``" - -#: library/collections.abc.rst:148 -msgid ":class:`MutableSet`" -msgstr ":class:`MutableSet`" - -#: library/collections.abc.rst:148 -msgid "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" -msgstr "``__contains__``, ``__iter__``, ``__len__``, ``add``, ``discard``" - -#: library/collections.abc.rst:148 -msgid "" -"Inherited :class:`Set` methods and ``clear``, ``pop``, ``remove``, " -"``__ior__``, ``__iand__``, ``__ixor__``, and ``__isub__``" -msgstr "" -"Méthodes héritées de :class:`Set`, et ``clear``, ``pop``, ``remove``, " -"``__ior__``, ``__iand__``, ``__ixor__`` et ``__isub__``" - -#: library/collections.abc.rst:154 library/collections.abc.rst:158 -msgid ":class:`Mapping`" -msgstr ":class:`Mapping`" - -#: library/collections.abc.rst:154 -msgid "``__getitem__``, ``__iter__``, ``__len__``" -msgstr "``__getitem__``, ``__iter__``, ``__len__``" - -#: library/collections.abc.rst:154 -msgid "" -"``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__``, and " -"``__ne__``" -msgstr "" -"``__contains__``, ``keys``, ``items``, ``values``, ``get``, ``__eq__`` et " -"``__ne__``" - -#: library/collections.abc.rst:158 -msgid ":class:`MutableMapping`" -msgstr ":class:`MutableMapping`" - -#: library/collections.abc.rst:158 -msgid "" -"``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" -msgstr "" -"``__getitem__``, ``__setitem__``, ``__delitem__``, ``__iter__``, ``__len__``" - -#: library/collections.abc.rst:158 -msgid "" -"Inherited :class:`Mapping` methods and ``pop``, ``popitem``, ``clear``, " -"``update``, and ``setdefault``" -msgstr "" -"Méthodes héritées de :class:`Mapping`, et ``pop``, ``popitem``, ``clear``, " -"``update`` et ``setdefault``" - -#: library/collections.abc.rst:165 -msgid ":class:`MappingView`" -msgstr ":class:`MappingView`" - -#: library/collections.abc.rst:165 -msgid ":class:`Sized`" -msgstr ":class:`Sized`" - -#: library/collections.abc.rst:165 -#, fuzzy -msgid "``__init__``, ``__len__`` and ``__repr__``" -msgstr "``__getitem__``, ``__iter__``, ``__len__``" - -#: library/collections.abc.rst:166 -msgid ":class:`ItemsView`" -msgstr ":class:`ItemsView`" - -#: library/collections.abc.rst:166 library/collections.abc.rst:168 -msgid ":class:`MappingView`, :class:`Set`" -msgstr ":class:`MappingView`, :class:`Set`" - -#: library/collections.abc.rst:166 library/collections.abc.rst:168 -#: library/collections.abc.rst:170 -msgid "``__contains__``, ``__iter__``" -msgstr "``__contains__``, ``__iter__``" - -#: library/collections.abc.rst:168 -msgid ":class:`KeysView`" -msgstr ":class:`KeysView`" - -#: library/collections.abc.rst:170 -msgid ":class:`ValuesView`" -msgstr ":class:`ValuesView`" - -#: library/collections.abc.rst:170 -msgid ":class:`MappingView`, :class:`Collection`" -msgstr ":class:`MappingView`, :class:`Collection`" - -#: library/collections.abc.rst:172 -#, fuzzy -msgid ":class:`Awaitable` [1]_" -msgstr ":class:`Awaitable`" - -#: library/collections.abc.rst:172 -msgid "``__await__``" -msgstr "``__await__``" - -#: library/collections.abc.rst:173 -#, fuzzy -msgid ":class:`Coroutine` [1]_" -msgstr ":class:`Coroutine`" - -#: library/collections.abc.rst:173 -msgid ":class:`Awaitable`" -msgstr ":class:`Awaitable`" - -#: library/collections.abc.rst:173 -msgid "``close``" -msgstr "``close``" - -#: library/collections.abc.rst:174 -#, fuzzy -msgid ":class:`AsyncIterable` [1]_" -msgstr ":class:`AsyncIterable`" - -#: library/collections.abc.rst:174 library/collections.abc.rst:175 -msgid "``__aiter__``" -msgstr "``__aiter__``" - -#: library/collections.abc.rst:175 -#, fuzzy -msgid ":class:`AsyncIterator` [1]_" -msgstr ":class:`AsyncIterator`" - -#: library/collections.abc.rst:175 -msgid ":class:`AsyncIterable`" -msgstr ":class:`AsyncIterable`" - -#: library/collections.abc.rst:175 -msgid "``__anext__``" -msgstr "``__anext__``" - -#: library/collections.abc.rst:176 -#, fuzzy -msgid ":class:`AsyncGenerator` [1]_" -msgstr ":class:`AsyncGenerator`" - -#: library/collections.abc.rst:176 -msgid ":class:`AsyncIterator`" -msgstr ":class:`AsyncIterator`" - -#: library/collections.abc.rst:176 -msgid "``asend``, ``athrow``" -msgstr "``asend``, ``athrow``" - -#: library/collections.abc.rst:176 -msgid "``aclose``, ``__aiter__``, ``__anext__``" -msgstr "``aclose``, ``__aiter__``, ``__anext__``" - -#: library/collections.abc.rst:177 -#, fuzzy -msgid ":class:`Buffer` [1]_" -msgstr ":class:`Iterator`" - -#: library/collections.abc.rst:177 -#, fuzzy -msgid "``__buffer__``" -msgstr "``__iter__``" - -#: library/collections.abc.rst:182 -msgid "Footnotes" -msgstr "Notes" - -#: library/collections.abc.rst:183 -msgid "" -"These ABCs override :meth:`~abc.ABCMeta.__subclasshook__` to support testing " -"an interface by verifying the required methods are present and have not been " -"set to :const:`None`. This only works for simple interfaces. More complex " -"interfaces require registration or direct subclassing." -msgstr "" - -#: library/collections.abc.rst:189 -#, fuzzy -msgid "" -"Checking ``isinstance(obj, Iterable)`` detects classes that are registered " -"as :class:`Iterable` or that have an :meth:`~container.__iter__` method, but " -"it does not detect classes that iterate with the :meth:`~object.__getitem__` " -"method. The only reliable way to determine whether an object " -"is :term:`iterable` is to call ``iter(obj)``." -msgstr "" -"Évaluer ``isinstance(obj, Iterable)`` détecte les classes qui sont " -"enregistrées comme :class:`Iterable` ou qui possèdent une " -"méthode :meth:`__iter__`, mais ne détecte pas les classes qui itèrent avec " -"la méthode :meth:`__getitem__`. Le seul moyen fiable de déterminer si un " -"objet est :term:`itérable ` est d'appeler ``iter(obj)``." - -#: library/collections.abc.rst:197 -#, fuzzy -msgid "Collections Abstract Base Classes -- Detailed Descriptions" -msgstr "Classes de base abstraites de collections" - -#: library/collections.abc.rst:202 -#, fuzzy -msgid "ABC for classes that provide the :meth:`~object.__contains__` method." -msgstr "ABC pour les classes qui définissent la méthode :meth:`__contains__`." - -#: library/collections.abc.rst:206 -#, fuzzy -msgid "ABC for classes that provide the :meth:`~object.__hash__` method." -msgstr "ABC pour les classes qui définissent la méthode :meth:`__hash__`." - -#: library/collections.abc.rst:210 -#, fuzzy -msgid "ABC for classes that provide the :meth:`~object.__len__` method." -msgstr "ABC pour les classes qui définissent la méthode :meth:`__len__`." - -#: library/collections.abc.rst:214 -#, fuzzy -msgid "ABC for classes that provide the :meth:`~object.__call__` method." -msgstr "ABC pour les classes qui définissent la méthode :meth:`__call__`." - -#: library/collections.abc.rst:216 -msgid "" -"See :ref:`annotating-callables` for details on how to use :class:`!Callable` " -"in type annotations." -msgstr "" - -#: library/collections.abc.rst:221 -#, fuzzy -msgid "ABC for classes that provide the :meth:`~container.__iter__` method." -msgstr "ABC pour les classes qui définissent la méthode :meth:`__iter__`." - -#: library/collections.abc.rst:223 -#, fuzzy -msgid "" -"Checking ``isinstance(obj, Iterable)`` detects classes that are registered " -"as :class:`Iterable` or that have an :meth:`~container.__iter__` method, but " -"it does not detect classes that iterate with the :meth:`~object.__getitem__` " -"method. The only reliable way to determine whether an object " -"is :term:`iterable` is to call ``iter(obj)``." -msgstr "" -"Évaluer ``isinstance(obj, Iterable)`` détecte les classes qui sont " -"enregistrées comme :class:`Iterable` ou qui possèdent une " -"méthode :meth:`__iter__`, mais ne détecte pas les classes qui itèrent avec " -"la méthode :meth:`__getitem__`. Le seul moyen fiable de déterminer si un " -"objet est :term:`itérable ` est d'appeler ``iter(obj)``." - -#: library/collections.abc.rst:232 -msgid "ABC for sized iterable container classes." -msgstr "ABC pour les classes de conteneurs itérables et *sized*." - -#: library/collections.abc.rst:238 -msgid "" -"ABC for classes that provide the :meth:`~iterator.__iter__` " -"and :meth:`~iterator.__next__` methods. See also the definition " -"of :term:`iterator`." -msgstr "" -"ABC pour les classes qui définissent les méthodes :meth:`~iterator.__iter__` " -"et :meth:`~iterator.__next__`. Voir aussi la définition d':term:`itérateur " -"`." - -#: library/collections.abc.rst:244 -#, fuzzy -msgid "" -"ABC for iterable classes that also provide the :meth:`~object.__reversed__` " -"method." -msgstr "" -"ABC pour les classes d'itérables qui implémentent également la " -"méthode :meth:`__reversed__`." - -#: library/collections.abc.rst:251 -#, fuzzy -msgid "" -"ABC for :term:`generator` classes that implement the protocol defined " -"in :pep:`342` that extends :term:`iterators ` with " -"the :meth:`~generator.send`, :meth:`~generator.throw` " -"and :meth:`~generator.close` methods." -msgstr "" -"ABC pour les classes de générateurs qui implémentent le protocole défini " -"dans la :pep:`342` qui étend les itérateurs avec les " -"méthodes :meth:`~generator.send`, :meth:`~generator.throw` " -"et :meth:`~generator.close`. Voir aussi la définition de :term:`générateur " -"`." - -#: library/collections.abc.rst:256 -msgid "" -"See :ref:`annotating-generators-and-coroutines` for details on " -"using :class:`!Generator` in type annotations." -msgstr "" - -#: library/collections.abc.rst:265 -msgid "ABCs for read-only and mutable :term:`sequences `." -msgstr "ABC pour les :term:`séquences ` immuables et mutables." - -#: library/collections.abc.rst:267 -#, fuzzy -msgid "" -"Implementation note: Some of the mixin methods, such " -"as :meth:`~container.__iter__`, :meth:`~object.__reversed__`, " -"and :meth:`~sequence.index` make repeated calls to the " -"underlying :meth:`~object.__getitem__` method. Consequently, " -"if :meth:`~object.__getitem__` is implemented with constant access speed, " -"the mixin methods will have linear performance; however, if the underlying " -"method is linear (as it would be with a linked list), the mixins will have " -"quadratic performance and will likely need to be overridden." -msgstr "" -"Note pour l'implémentation : quelques méthodes *mixin*, " -"comme :meth:`__iter__`, :meth:`__reversed__` et :meth:`index`, font des " -"appels répétés à la méthode sous-jacente :meth:`__getitem__`. Ainsi, " -"si :meth:`__getitem__` est implémentée avec une vitesse d'accès constante, " -"les méthodes *mixin* auront une performance linéaire ; cependant, si elle " -"est linéaire, les *mixin* auront une performance quadratique, il serait " -"alors judicieux de les surcharger." - -#: library/collections.abc.rst:279 -msgid "Return first index of *value*." -msgstr "" - -#: library/collections.abc.rst:281 -msgid "Raises :exc:`ValueError` if the value is not present." -msgstr "" - -#: library/collections.abc.rst:283 -msgid "" -"Supporting the *start* and *stop* arguments is optional, but recommended." -msgstr "" - -#: library/collections.abc.rst:285 -#, fuzzy -msgid "" -"The :meth:`~sequence.index` method gained support for the *stop* and *start* " -"arguments." -msgstr "" -"La méthode index() a ajouté le support des arguments *start* et *stop*." - -#: library/collections.abc.rst:289 -msgid "The :class:`ByteString` ABC has been deprecated." -msgstr "" - -#: library/collections.abc.rst:292 -msgid "" -"Use ``isinstance(obj, collections.abc.Buffer)`` to test if ``obj`` " -"implements the :ref:`buffer protocol ` at runtime. For use in " -"type annotations, either use :class:`Buffer` or a union that explicitly " -"specifies the types your code supports (e.g., ``bytes | bytearray | " -"memoryview``)." -msgstr "" - -#: library/collections.abc.rst:298 -msgid "" -":class:`!ByteString` was originally intended to be an abstract class that " -"would serve as a supertype of both :class:`bytes` and :class:`bytearray`. " -"However, since the ABC never had any methods, knowing that an object was an " -"instance of :class:`!ByteString` never actually told you anything useful " -"about the object. Other common buffer types such as :class:`memoryview` were " -"also never understood as subtypes of :class:`!ByteString` (either at runtime " -"or by static type checkers)." -msgstr "" - -#: library/collections.abc.rst:306 -msgid "See :pep:`PEP 688 <688#current-options>` for more details." -msgstr "" - -#: library/collections.abc.rst:311 -#, fuzzy -msgid "ABCs for read-only and mutable :ref:`sets `." -msgstr "ABC pour les ensembles immuables et mutables." - -#: library/collections.abc.rst:316 -msgid "ABCs for read-only and mutable :term:`mappings `." -msgstr "" -"ABC pour les :term:`tables de correspondances ` immuables et " -"mutables." - -#: library/collections.abc.rst:323 -msgid "" -"ABCs for mapping, items, keys, and values :term:`views `." -msgstr "" -"ABC pour les :term:`vues` de *mappings* (tableaux de " -"correspondances), d'éléments, de clés et de valeurs." - -#: library/collections.abc.rst:327 -#, fuzzy -msgid "" -"ABC for :term:`awaitable` objects, which can be used in :keyword:`await` " -"expressions. Custom implementations must provide " -"the :meth:`~object.__await__` method." -msgstr "" -"ABC pour les objets :term:`awaitables `, qui peuvent être " -"utilisés dans les expressions :keyword:`await`. Les implémentations " -"personnalisées doivent définir la méthode :meth:`__await__`." - -#: library/collections.abc.rst:331 -msgid "" -":term:`Coroutine ` objects and instances of " -"the :class:`~collections.abc.Coroutine` ABC are all instances of this ABC." -msgstr "" -"Les objets :term:`coroutines ` et les instances de " -"l'ABC :class:`~collections.abc.Coroutine` sont tous des instances de cette " -"ABC." - -#: library/collections.abc.rst:335 -#, fuzzy -msgid "" -"In CPython, generator-based coroutines (:term:`generators ` " -"decorated with :deco:`types.coroutine`) are *awaitables*, even though they " -"do not have an :meth:`~object.__await__` method. Using ``isinstance(gencoro, " -"Awaitable)`` for them will return ``False``. Use :func:`inspect.isawaitable` " -"to detect them." -msgstr "" -"En CPython, les coroutines basées sur les générateurs (les générateurs " -"décorés avec :func:`types.coroutine` ou :func:`asyncio.coroutine`) sont " -"*awaitables*, bien qu'elles n'aient pas de méthode :meth:`__await__`. " -"Évaluer ``isinstance(gencoro, Awaitable)`` où ``gencoro`` est un générateur " -"décoré va renvoyer ``False``. Utilisez :func:`inspect.isawaitable` pour les " -"détecter." - -#: library/collections.abc.rst:345 -#, fuzzy -msgid "" -"ABC for :term:`coroutine` compatible classes. These implement the following " -"methods, defined in :ref:`coroutine-" -"objects`: :meth:`~coroutine.send`, :meth:`~coroutine.throw`, " -"and :meth:`~coroutine.close`. Custom implementations must also " -"implement :meth:`~object.__await__`. All :class:`Coroutine` instances are " -"also instances of :class:`Awaitable`." -msgstr "" -"ABC pour les classes compatibles avec les coroutines. Elles implémentent les " -"méthodes suivantes, définies dans :ref:`coroutine-" -"objects` : :meth:`~coroutine.send`, :meth:`~coroutine.throw` " -"et :meth:`~coroutine.close`. Les implémentations personnalisées doivent " -"également fournir :meth:`__await__`. Toutes les instances " -"de :class:`Coroutine` sont également des instances de :class:`Awaitable`. " -"Voir aussi la définition de :term:`coroutine`." - -#: library/collections.abc.rst:353 -#, fuzzy -msgid "" -"In CPython, generator-based coroutines (:term:`generators ` " -"decorated with :deco:`types.coroutine`) are *awaitables*, even though they " -"do not have an :meth:`~object.__await__` method. Using ``isinstance(gencoro, " -"Coroutine)`` for them will return ``False``. Use :func:`inspect.isawaitable` " -"to detect them." -msgstr "" -"En CPython, les coroutines basées sur les générateurs (les générateurs " -"décorés avec :func:`types.coroutine` ou :func:`asyncio.coroutine`) sont " -"*awaitables*, bien qu'elles n'aient pas de méthode :meth:`__await__`. " -"Évaluer ``isinstance(gencoro, Corourine)`` où ``gencoro`` est un générateur " -"décoré va renvoyer ``False``. Utilisez :func:`inspect.isawaitable` pour les " -"détecter." - -#: library/collections.abc.rst:359 -msgid "" -"See :ref:`annotating-generators-and-coroutines` for details on " -"using :class:`!Coroutine` in type annotations. The variance and order of " -"type parameters correspond to those of :class:`Generator`." -msgstr "" - -#: library/collections.abc.rst:368 -#, fuzzy -msgid "" -"ABC for classes that provide an ``__aiter__`` method. See also the " -"definition of :term:`asynchronous iterable`." -msgstr "" -"ABC pour les classes qui définissent la méthode ``__aiter__``. Voir aussi la " -"définition d':term:`itérable asynchrone `." - -#: library/collections.abc.rst:375 -msgid "" -"ABC for classes that provide ``__aiter__`` and ``__anext__`` methods. See " -"also the definition of :term:`asynchronous iterator`." -msgstr "" -"ABC pour les classes qui définissent les méthodes ``__aiter__`` et " -"``__anext__``. Voir aussi la définition d':term:`itérateur asynchrone " -"`." - -#: library/collections.abc.rst:382 -#, fuzzy -msgid "" -"ABC for :term:`asynchronous generator` classes that implement the protocol " -"defined in :pep:`525` and :pep:`492`." -msgstr "" -"ABC pour les classes de générateurs asynchrones qui implémentent le " -"protocole défini dans la :pep:`525` et dans la :pep:`492`." - -#: library/collections.abc.rst:385 -msgid "" -"See :ref:`annotating-generators-and-coroutines` for details on " -"using :class:`!AsyncGenerator` in type annotations." -msgstr "" - -#: library/collections.abc.rst:392 -msgid "" -"ABC for classes that provide the :meth:`~object.__buffer__` method, " -"implementing the :ref:`buffer protocol `. See :pep:`688`." -msgstr "" - -#: library/collections.abc.rst:398 -msgid "Examples and Recipes" -msgstr "Exemples et recettes" - -#: library/collections.abc.rst:400 -#, fuzzy -msgid "" -"ABCs allow us to ask classes or instances if they provide particular " -"functionality, for example::" -msgstr "" -"Ces ABC permettent de demander à des classes ou à des instances si elles " -"fournissent des fonctionnalités particulières, par exemple ::" - -#: library/collections.abc.rst:407 -#, fuzzy -msgid "" -"Several of the ABCs are also useful as mixins that make it easier to develop " -"classes supporting container APIs. For example, to write a class supporting " -"the full :class:`Set` API, it is only necessary to supply the three " -"underlying abstract " -"methods: :meth:`~object.__contains__`, :meth:`~container.__iter__`, " -"and :meth:`~object.__len__`. The ABC supplies the remaining methods such " -"as :meth:`!__and__` and :meth:`~frozenset.isdisjoint`::" -msgstr "" -"Une partie des ABC sont également utiles en tant que *mixins* : cela rend " -"plus facile le développement de classes qui gèrent des API de conteneurs. " -"Par exemple, pour écrire une classe qui gère l'API entière de :class:`Set`, " -"il est uniquement nécessaire de fournir les trois méthodes sous-jacentes " -"abstraites :meth:`__contains__`, :meth:`__iter__` et :meth:`__len__`. L'ABC " -"apporte les méthodes restantes, comme :meth:`__and__` " -"et :meth:`isdisjoint` ::" - -#: library/collections.abc.rst:436 -msgid "Notes on using :class:`Set` and :class:`MutableSet` as a mixin:" -msgstr "" -"Notes à propos de l'utilisation de :class:`Set` et :class:`MutableSet` comme " -"*mixin* :" - -#: library/collections.abc.rst:439 -#, fuzzy -msgid "" -"Since some set operations create new sets, the default mixin methods need a " -"way to create new instances from an :term:`iterable`. The class constructor " -"is assumed to have a signature in the form ``ClassName(iterable)``. That " -"assumption is factored-out to an internal :class:`classmethod` " -"called :meth:`!_from_iterable` which calls ``cls(iterable)`` to produce a " -"new set. If the :class:`Set` mixin is being used in a class with a different " -"constructor signature, you will need to override :meth:`!_from_iterable` " -"with a classmethod or regular method that can construct new instances from " -"an iterable argument." -msgstr "" -"Comme une partie des opérations sur les ensembles créent de nouveaux " -"ensembles, les méthodes *mixins* par défaut ont besoin d'un moyen de créer " -"de nouvelles instances à partir d'un itérable. Le constructeur de classe est " -"supposé avoir une signature de la forme ``ClassName(iterable)``. Cette " -"supposition est faite par une méthode de classe interne " -"appelée :meth:`_from_iterable` qui appelle ``cls(iterable)`` pour construire " -"un nouvel ensemble. Si le :class:`Set` *mixin* est utilisé dans une classe " -"avec un constructeur de signature différente, vous devez " -"surcharger :meth:`_from_iterable` avec une méthode de classe ou une méthode " -"ordinaire qui peut construire de nouvelles instances à partir d'un argument " -"itérable." - -#: library/collections.abc.rst:450 -#, fuzzy -msgid "" -"To override the comparisons (presumably for speed, as the semantics are " -"fixed), redefine :meth:`~object.__le__` and :meth:`~object.__ge__`, then the " -"other operations will automatically follow suit." -msgstr "" -"Pour surcharger les comparaisons (a priori pour la rapidité, puisque la " -"sémantique est fixe), il faut redéfinir :meth:`__le__` et :meth:`__ge__`, " -"puis les autres opérations seront automatiquement adaptées." - -#: library/collections.abc.rst:456 -#, fuzzy -msgid "" -"The :class:`Set` mixin provides a :meth:`!_hash` method to compute a hash " -"value for the set; however, :meth:`~object.__hash__` is not defined because " -"not all sets are :term:`hashable` or immutable. To add set hashability " -"using mixins, inherit from both :meth:`Set` and :meth:`Hashable`, then " -"define ``__hash__ = Set._hash``." -msgstr "" -"La classe *mixin* :class:`Set` apporte une méthode :meth:`_hash` pour " -"calculer une valeur de hachage pour l'ensemble ; cependant :meth:`__hash__` " -"n'est pas défini car tous les ensembles ne sont pas hachables ou immuables. " -"Pour rendre un ensemble hachable en utilisant les *mixins*, héritez " -"de :meth:`Set` et de :meth:`Hashable`, puis définissez ``__hash__ = " -"Set._hash``." - -#: library/collections.abc.rst:464 -msgid "" -"`OrderedSet recipe `_ for an " -"example built on :class:`MutableSet`." -msgstr "" -"`OrderedSet recipe `_ pour un " -"exemple construit sur :class:`MutableSet`." - -#: library/collections.abc.rst:467 -msgid "For more about ABCs, see the :mod:`abc` module and :pep:`3119`." -msgstr "" -"Pour plus d'informations à propos des ABC, voir le module :mod:`abc` et " -"la :pep:`3119`." - -#~ msgid "" -#~ "ABCs for classes that provide respectively the " -#~ "methods :meth:`__contains__`, :meth:`__hash__`, :meth:`__len__`, " -#~ "and :meth:`__call__`." -#~ msgstr "" -#~ "ABC pour les classes qui définissent respectivement les " -#~ "méthodes :meth:`__contains__`, :meth:`__hash__`, :meth:`__len__` " -#~ "et :meth:`__call__`." diff --git a/library/collections.po b/library/collections.po deleted file mode 100644 index 125cc43211..0000000000 --- a/library/collections.po +++ /dev/null @@ -1,1944 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-11-06 20:46+0100\n" -"Last-Translator: Jean Abou Samra \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.0\n" - -#: library/collections.rst:2 -#, fuzzy -msgid ":mod:`!collections` --- Container datatypes" -msgstr ":mod:`collections` — Types de données de conteneurs" - -#: library/collections.rst:7 -msgid "**Source code:** :source:`Lib/collections/__init__.py`" -msgstr "**Code source :** :source:`Lib/collections/__init__.py`" - -#: library/collections.rst:17 -msgid "" -"This module implements specialized container datatypes providing " -"alternatives to Python's general purpose built-in " -"containers, :class:`dict`, :class:`list`, :class:`set`, and :class:`tuple`." -msgstr "" -"Ce module implémente des types de données de conteneurs spécialisés qui " -"apportent des alternatives aux conteneurs natifs de Python plus " -"généraux :class:`dict`, :class:`list`, :class:`set` et :class:`tuple`." - -#: library/collections.rst:22 -msgid ":func:`namedtuple`" -msgstr ":func:`namedtuple`" - -#: library/collections.rst:22 -msgid "factory function for creating tuple subclasses with named fields" -msgstr "" -"fonction permettant de créer des sous-classes de ``tuple`` avec des champs " -"nommés" - -#: library/collections.rst:23 -msgid ":class:`deque`" -msgstr ":class:`deque`" - -#: library/collections.rst:23 -msgid "list-like container with fast appends and pops on either end" -msgstr "" -"conteneur se comportant comme une liste avec des ajouts et retraits rapides " -"à chaque extrémité" - -#: library/collections.rst:24 -msgid ":class:`ChainMap`" -msgstr ":class:`ChainMap`" - -#: library/collections.rst:24 -msgid "dict-like class for creating a single view of multiple mappings" -msgstr "" -"classe semblable aux dictionnaires qui crée une unique vue à partir de " -"plusieurs dictionnaires" - -#: library/collections.rst:25 -msgid ":class:`Counter`" -msgstr ":class:`Counter`" - -#: library/collections.rst:25 -#, fuzzy -msgid "dict subclass for counting :term:`hashable` objects" -msgstr "sous-classe de ``dict`` pour compter des objets hachables" - -#: library/collections.rst:26 -msgid ":class:`OrderedDict`" -msgstr ":class:`OrderedDict`" - -#: library/collections.rst:26 -msgid "dict subclass that remembers the order entries were added" -msgstr "" -"sous-classe de ``dict`` qui garde en mémoire l'ordre dans lequel les entrées " -"ont été ajoutées" - -#: library/collections.rst:27 -msgid ":class:`defaultdict`" -msgstr ":class:`defaultdict`" - -#: library/collections.rst:27 -msgid "dict subclass that calls a factory function to supply missing values" -msgstr "" -"sous-classe de ``dict`` qui appelle une fonction de fabrication en cas de " -"valeur manquante" - -#: library/collections.rst:28 -msgid ":class:`UserDict`" -msgstr ":class:`UserDict`" - -#: library/collections.rst:28 -msgid "wrapper around dictionary objects for easier dict subclassing" -msgstr "" -"surcouche autour des objets dictionnaires pour faciliter l'héritage de " -"``dict``" - -#: library/collections.rst:29 -msgid ":class:`UserList`" -msgstr ":class:`UserList`" - -#: library/collections.rst:29 -msgid "wrapper around list objects for easier list subclassing" -msgstr "" -"surcouche autour des objets listes pour faciliter l'héritage de ``list``" - -#: library/collections.rst:30 -msgid ":class:`UserString`" -msgstr ":class:`UserString`" - -#: library/collections.rst:30 -msgid "wrapper around string objects for easier string subclassing" -msgstr "" -"surcouche autour des objets chaînes de caractères pour faciliter l'héritage " -"de ``str``" - -#: library/collections.rst:35 -msgid ":class:`ChainMap` objects" -msgstr "Objets :class:`ChainMap`" - -#: library/collections.rst:39 -msgid "" -"A :class:`ChainMap` class is provided for quickly linking a number of " -"mappings so they can be treated as a single unit. It is often much faster " -"than creating a new dictionary and running multiple :meth:`~dict.update` " -"calls." -msgstr "" -"Le module fournit une classe :class:`ChainMap` afin de réunir rapidement " -"plusieurs dictionnaires en une unique entité. Cela est souvent plus rapide " -"que de créer un nouveau dictionnaire et d'effectuer plusieurs appels " -"de :meth:`~dict.update`." - -#: library/collections.rst:43 -msgid "" -"The class can be used to simulate nested scopes and is useful in templating." -msgstr "" -"Cette classe peut être utilisée pour simuler des portées imbriquées, elle " -"est aussi utile pour le *templating*." - -#: library/collections.rst:47 -msgid "" -"A :class:`ChainMap` groups multiple dicts or other mappings together to " -"create a single, updateable view. If no *maps* are specified, a single " -"empty dictionary is provided so that a new chain always has at least one " -"mapping." -msgstr "" -"Un objet :class:`ChainMap` regroupe plusieurs dictionnaires (ou autres " -"tableaux de correspondance) en une vue que l'on peut mettre à jour. Si le " -"paramètre *maps* est vide, un dictionnaire vide est fourni de telle manière " -"qu'une nouvelle chaîne possède toujours au moins un dictionnaire." - -#: library/collections.rst:51 -msgid "" -"The underlying mappings are stored in a list. That list is public and can " -"be accessed or updated using the *maps* attribute. There is no other state." -msgstr "" -"Les dictionnaires sous-jacents sont stockés dans une liste. Celle-ci est " -"publique et peut être consultée ou mise à jour via l'attribut *maps*. Il n'y " -"a pas d'autre état." - -#: library/collections.rst:54 -msgid "" -"Lookups search the underlying mappings successively until a key is found. " -"In contrast, writes, updates, and deletions only operate on the first " -"mapping." -msgstr "" -"Les recherches s'effectuent successivement dans chaque dictionnaire jusqu'à " -"la première clé correspondante. En revanche, les écritures, mises à jour et " -"suppressions n'affectent que le premier dictionnaire." - -#: library/collections.rst:57 -msgid "" -"A :class:`ChainMap` incorporates the underlying mappings by reference. So, " -"if one of the underlying mappings gets updated, those changes will be " -"reflected in :class:`ChainMap`." -msgstr "" -"Un objet :class:`ChainMap` incorpore les dictionnaires sous-jacents par leur " -"référence. Ainsi, si l'un d'eux est modifié, les changements affectent " -"également la :class:`ChainMap`." - -#: library/collections.rst:61 -msgid "" -"All of the usual dictionary methods are supported. In addition, there is a " -"*maps* attribute, a method for creating new subcontexts, and a property for " -"accessing all but the first mapping:" -msgstr "" -"Toutes les méthodes usuelles des dictionnaires sont gérées. De plus, cette " -"classe fournit un attribut *maps*, une méthode pour créer de nouveaux sous-" -"contextes et une propriété pour accéder à tous les dictionnaires sous-" -"jacents excepté le premier :" - -#: library/collections.rst:67 -msgid "" -"A user updateable list of mappings. The list is ordered from first-searched " -"to last-searched. It is the only stored state and can be modified to change " -"which mappings are searched. The list should always contain at least one " -"mapping." -msgstr "" -"Liste de dictionnaires éditable par l'utilisateur et classée selon l'ordre " -"de recherche. Il s'agit de l'unique état stocké et elle peut être modifiée " -"pour changer l'ordre de recherche. La liste doit toujours contenir au moins " -"un dictionnaire." - -#: library/collections.rst:74 -msgid "" -"Returns a new :class:`ChainMap` containing a new map followed by all of the " -"maps in the current instance. If ``m`` is specified, it becomes the new map " -"at the front of the list of mappings; if not specified, an empty dict is " -"used, so that a call to ``d.new_child()`` is equivalent to: ``ChainMap({}, " -"*d.maps)``. If any keyword arguments are specified, they update passed map " -"or new empty dict. This method is used for creating subcontexts that can be " -"updated without altering values in any of the parent mappings." -msgstr "" -"Renvoie un nouvel objet :class:`ChainMap` contenant un nouveau dictionnaire " -"suivi par tous les autres de l'instance actuelle. Si ``m`` est spécifié, il " -"devient le nouveau dictionnaire au début de la liste ; sinon, un " -"dictionnaire vide est utilisé, de telle manière qu'appeler ``d.new_child()`` " -"équivaut à appeler ``ChainMap({}, *d.maps)``. Si des arguments sont passés " -"par mot-clé, ils sont insérés comme de nouvelles entrées du dictionnaire " -"ajouté. Cette méthode est utile pour créer des sous-contextes qui peuvent " -"être mis à jour sans altérer les valeurs dans les dictionnaires parents." - -# Pas de majuscule car suit deux points. -#: library/collections.rst:83 -msgid "The optional ``m`` parameter was added." -msgstr "ajout du paramètre optionnel ``m``." - -#: library/collections.rst:86 -msgid "Keyword arguments support was added." -msgstr "prise en charge des arguments par mot-clé." - -#: library/collections.rst:91 -msgid "" -"Property returning a new :class:`ChainMap` containing all of the maps in the " -"current instance except the first one. This is useful for skipping the " -"first map in the search. Use cases are similar to those for " -"the :keyword:`nonlocal` keyword used in :term:`nested scopes `. The use cases also parallel those for the built-in :func:`super` " -"function. A reference to ``d.parents`` is equivalent to: " -"``ChainMap(*d.maps[1:])``." -msgstr "" -"Propriété qui renvoie un nouvel objet :class:`ChainMap` contenant tous les " -"dictionnaires de l'instance actuelle hormis le premier. Cette propriété est " -"utile pour ignorer le premier dictionnaire dans les recherches ; son " -"utilisation rappelle le mot-clé :keyword:`nonlocal` (utilisé pour " -"les :term:`portées imbriquées `), ou bien la fonction " -"native :func:`super`. Une référence à ``d.parents`` est équivalente à : " -"``ChainMap(*d.maps[1:])``." - -#: library/collections.rst:99 -#, fuzzy -msgid "" -"Note, the iteration order of a :class:`ChainMap` is determined by scanning " -"the mappings last to first::" -msgstr "" -"Notez que l'itération de :class:`ChainMap()` se fait en parcourant les " -"tableaux de correspondances du dernier jusqu'au premier ::" - -#: library/collections.rst:107 -msgid "" -"This gives the same ordering as a series of :meth:`dict.update` calls " -"starting with the last mapping::" -msgstr "" -"Cela produit le même ordre qu'une suite d'appels à :meth:`dict.update` en " -"commençant par le dernier tableau de correspondances ::" - -#: library/collections.rst:115 -msgid "Added support for ``|`` and ``|=`` operators, specified in :pep:`584`." -msgstr "" -"Ajout de la gestion des opérateurs ``|`` et ``|=`` tels que définis " -"dans :pep:`584`." - -#: library/collections.rst:120 -msgid "" -"The `MultiContext class `_ in the Enthought `CodeTools package " -"`_ has options to support writing to " -"any mapping in the chain." -msgstr "" -"La `classe MultiContext `_ dans le `package CodeTools `_ d'Enthought possède des options pour gérer " -"l'écriture dans n'importe quel dictionnaire de la chaîne." - -#: library/collections.rst:126 -msgid "" -"Django's `Context class `_ for templating is a read-only chain of mappings. It " -"also features pushing and popping of contexts similar to " -"the :meth:`~collections.ChainMap.new_child` method and " -"the :attr:`~collections.ChainMap.parents` property." -msgstr "" -"La `classe de contexte de Django `_ pour la création de modèles est une chaîne de " -"dictionnaires en lecture seule. Elle comporte également des fonctionnalités " -"d'ajouts et de retraits de contextes similaires à la " -"méthode :meth:`~collections.ChainMap.new_child` et à la " -"propriété :attr:`~collections.ChainMap.parents`." - -#: library/collections.rst:133 -#, fuzzy -msgid "" -"The `Nested Contexts recipe `_ has options to control " -"whether writes and other mutations apply only to the first mapping or to any " -"mapping in the chain." -msgstr "" -"`Le Cas pratique des contextes imbriqués `_ a des options pour contrôler si les écritures et autres " -"mutations ne s'appliquent qu'au premier ou à un autre dictionnaire de la " -"chaîne." - -#: library/collections.rst:138 -msgid "" -"A `greatly simplified read-only version of Chainmap `_." -msgstr "" -"Une `version grandement simplifiée de Chainmap en lecture seule `_." - -#: library/collections.rst:143 -msgid ":class:`ChainMap` Examples and Recipes" -msgstr "Exemples et cas pratiques utilisant :class:`ChainMap`" - -#: library/collections.rst:145 -msgid "This section shows various approaches to working with chained maps." -msgstr "" -"Cette partie montre diverses approches afin de travailler avec les " -"dictionnaires chaînés." - -#: library/collections.rst:148 -msgid "Example of simulating Python's internal lookup chain::" -msgstr "Exemple 1 : simulation de la chaîne de recherche interne de Python ::" - -#: library/collections.rst:153 -msgid "" -"Example of letting user specified command-line arguments take precedence " -"over environment variables which in turn take precedence over default " -"values::" -msgstr "" -"Exemple 2 : spécification d'une hiérarchie pour les options : ligne de " -"commande, variable d'environnement, valeurs par défaut ::" - -#: library/collections.rst:170 -msgid "" -"Example patterns for using the :class:`ChainMap` class to simulate nested " -"contexts::" -msgstr "" -"Exemple 3 : modèles pour simuler des contextes imbriqués avec la " -"classe :class:`ChainMap` ::" - -#: library/collections.rst:189 -msgid "" -"The :class:`ChainMap` class only makes updates (writes and deletions) to the " -"first mapping in the chain while lookups will search the full chain. " -"However, if deep writes and deletions are desired, it is easy to make a " -"subclass that updates keys found deeper in the chain::" -msgstr "" -"La classe :class:`ChainMap` ne met à jour (écriture et suppression) que le " -"premier dictionnaire de la chaîne, alors qu'une recherche inspecte toute la " -"chaîne. Cependant, si l'on veut effectuer des écritures ou suppressions en " -"profondeur, on peut facilement faire une sous-classe qui met à jour les clés " -"trouvées de la chaîne en profondeur ::" - -#: library/collections.rst:220 -msgid ":class:`Counter` objects" -msgstr "Objets :class:`Counter`" - -#: library/collections.rst:222 -msgid "" -"A counter tool is provided to support convenient and rapid tallies. For " -"example::" -msgstr "" -"Ce module fournit un outil pour effectuer rapidement et facilement des " -"dénombrements. Par exemple ::" - -#: library/collections.rst:244 -#, fuzzy -msgid "" -"A :class:`Counter` is a :class:`dict` subclass for counting :term:`hashable` " -"objects. It is a collection where elements are stored as dictionary keys and " -"their counts are stored as dictionary values. Counts are allowed to be any " -"integer value including zero or negative counts. The :class:`Counter` class " -"is similar to bags or multisets in other languages." -msgstr "" -"La classe :class:`Counter` est une sous-classe de :class:`dict` qui permet " -"le dénombrement d'objets hachables. Il s'agit d'une collection dans laquelle " -"les éléments sont stockés comme des clés de dictionnaire et leurs nombres " -"d’occurrences respectifs comme leurs valeurs. Ceux-ci peuvent être des " -"entiers relatifs (positifs, négatifs ou nuls). La classe :class:`Counter` " -"est similaire aux sacs ou aux multiensembles dans d'autres langages." - -#: library/collections.rst:250 -msgid "" -"Elements are counted from an *iterable* or initialized from another " -"*mapping* (or counter):" -msgstr "" -"Les éléments sont comptés à partir d'un itérable ou initialisés à partir " -"d'un autre dictionnaire (ou compteur) :" - -#: library/collections.rst:258 -msgid "" -"Counter objects have a dictionary interface except that they return a zero " -"count for missing items instead of raising a :exc:`KeyError`:" -msgstr "" -"Les objets Counter ont une interface de dictionnaire, à l'exception près " -"qu'ils renvoient zéro au lieu de lever une exception :exc:`KeyError` pour " -"des éléments manquants :" - -#: library/collections.rst:265 -msgid "" -"Setting a count to zero does not remove an element from a counter. Use " -"``del`` to remove it entirely:" -msgstr "" -"Mettre un comptage à zéro pour un élément ne le retire pas de l'objet " -"Counter. Il faut utiliser ``del`` pour le supprimer complètement :" - -#: library/collections.rst:273 -#, fuzzy -msgid "" -"As a :class:`dict` subclass, :class:`Counter` inherited the capability to " -"remember insertion order. Math operations on *Counter* objects also " -"preserve order. Results are ordered according to when an element is first " -"encountered in the left operand and then by the order encountered in the " -"right operand." -msgstr "" -"Puisqu'elle est une sous-classe de :class:`dict`, :class:`Counter` conserve " -"aussi l'ordre d'insertion. Les opérations mathématiques sur les objets " -"*Counter* préservent aussi l'ordre des insertions. Les résultats sont " -"ordonnés d'abord en fonction de la recherche d'apparition pour l'opérande de " -"gauche, puis dans l'ordre d'apparition de l'opérande de droite." - -#: library/collections.rst:279 -#, fuzzy -msgid "" -"Counter objects support additional methods beyond those available for all " -"dictionaries:" -msgstr "" -"En plus des méthodes disponibles pour tous les dictionnaires, les objets " -"compteurs gèrent trois méthodes supplémentaires :" - -#: library/collections.rst:284 -msgid "" -"Return an iterator over elements repeating each as many times as its count. " -"Elements are returned in the order first encountered. If an element's count " -"is less than one, :meth:`elements` will ignore it." -msgstr "" -"Renvoie un itérateur sur chaque élément en le répétant autant de fois que la " -"valeur du compteur associé. Les éléments sont renvoyés dans l'ordre selon " -"lequel ils sont rencontrés pour la première fois. Si le comptage d'un " -"élément est strictement inférieur à 1, alors :meth:`elements` l'ignore." - -#: library/collections.rst:294 -msgid "" -"Return a list of the *n* most common elements and their counts from the most " -"common to the least. If *n* is omitted or ``None``, :meth:`most_common` " -"returns *all* elements in the counter. Elements with equal counts are " -"ordered in the order first encountered:" -msgstr "" -"Renvoie une liste des *n* éléments les plus nombreux et leur valeur " -"respective dans l'ordre décroissant. Si *n* n'est pas fourni ou vaut " -"``None``, :meth:`most_common` renvoie *tous* les éléments du compteur. Les " -"éléments qui ont le même nombre d'occurrences sont ordonnés par l'ordre " -"selon lequel ils ont été rencontrés pour la première fois :" - -#: library/collections.rst:306 -msgid "" -"Elements are subtracted from an *iterable* or from another *mapping* (or " -"counter). Like :meth:`dict.update` but subtracts counts instead of " -"replacing them. Both inputs and outputs may be zero or negative." -msgstr "" -"Les éléments sont soustraits à partir d'un itérable ou d'un autre " -"dictionnaire (ou compteur). Cette méthode se comporte " -"comme :meth:`dict.update` mais soustrait les nombres d'occurrences au lieu " -"de les remplacer. Les entrées et sorties peuvent être négatives ou nulles." - -#: library/collections.rst:320 -msgid "Compute the sum of the counts." -msgstr "Calcule la somme totale des nombres d'occurrences." - -#: library/collections.rst:328 -#, fuzzy -msgid "" -"The usual dictionary methods are available for :class:`Counter` objects " -"except for these two which work differently for counters:" -msgstr "" -"Les méthodes usuelles des dictionnaires sont disponibles pour les " -"objets :class:`Counter` à l'exception de deux méthodes qui fonctionnent " -"différemment pour les compteurs." - -#: library/collections.rst:333 -msgid "This class method is not implemented for :class:`Counter` objects." -msgstr "" -"Cette méthode de classe n'est pas implémentée pour les " -"objets :class:`Counter`." - -#: library/collections.rst:339 -msgid "" -"Elements are counted from an *iterable* or added-in from another *mapping* " -"(or counter). Like :meth:`dict.update` but adds counts instead of replacing " -"them. Also, the *iterable* is expected to be a sequence of elements, not a " -"sequence of ``(key, value)`` pairs." -msgstr "" -"Les éléments sont comptés à partir d'un itérable ou ajoutés d'un autre " -"dictionnaire (ou compteur). Cette méthode se comporte " -"comme :meth:`dict.update` mais additionne les nombres d'occurrences au lieu " -"de les remplacer. De plus, l'itérable doit être une séquence d'éléments et " -"non une séquence de paires ``(clé, valeur)``." - -#: library/collections.rst:344 -msgid "" -"Counters support rich comparison operators for equality, subset, and " -"superset relationships: ``==``, ``!=``, ``<``, ``<=``, ``>``, ``>=``. All of " -"those tests treat missing elements as having zero counts so that " -"``Counter(a=1) == Counter(a=1, b=0)`` returns true." -msgstr "" -"Les compteurs prennent en charge les comparaisons riches pour les tests " -"d'égalité ainsi que d'inclusion du membre gauche dans le membre droite et " -"réciproquement, avec les opérateurs ``==``, ``!=``, ``<``, ``<=``, ``>`` et " -"``>=``. Les éléments dont le nombre d'occurrences est à zéro sont ignorés. " -"Par exemple, on a ``Counter(a=1) == Counter(a=1, b=0)``." - -#: library/collections.rst:349 -msgid "Rich comparison operations were added." -msgstr "ajout des comparaisons riches." - -#: library/collections.rst:352 -msgid "" -"In equality tests, missing elements are treated as having zero counts. " -"Formerly, ``Counter(a=3)`` and ``Counter(a=3, b=0)`` were considered " -"distinct." -msgstr "" -"les éléments dont le nombre d'occurrences est à zéro sont désormais ignorés " -"dans les tests d'égalité. On avait auparavant ``Counter(a=3) != Counter(a=3, " -"b=0)``." - -#: library/collections.rst:357 -msgid "Common patterns for working with :class:`Counter` objects::" -msgstr "Opérations usuelles sur les objets :class:`Counter` ::" - -#: library/collections.rst:369 -#, fuzzy -msgid "" -"Several mathematical operations are provided for combining :class:`Counter` " -"objects to produce multisets (counters that have counts greater than zero). " -"Addition and subtraction combine counters by adding or subtracting the " -"counts of corresponding elements. Intersection and union return the minimum " -"and maximum of corresponding counts. Symmetric difference returns the " -"difference between the maximum and minimum of the corresponding counts. " -"Equality and inclusion compare corresponding counts. Each operation can " -"accept inputs with signed counts, but the output will exclude results with " -"counts of zero or below." -msgstr "" -"Quelques opérations mathématiques sont fournies pour combiner des " -"objets :class:`Counter` afin de créer des multiensembles (des compteurs dont " -"les dénombrements des éléments sont strictement supérieurs à zéro). Les " -"additions et soustractions combinent les compteurs en ajoutant ou " -"retranchant les nombres d'occurrences des éléments correspondants. Les " -"intersections et unions renvoient les minimums et maximums des comptages " -"correspondants. Chaque opération peut accepter des entrées avec des " -"comptages relatifs, mais la sortie exclut les résultats avec des comptages " -"négatifs ou nuls." - -#: library/collections.rst:398 -msgid "" -"Unary addition and subtraction are shortcuts for adding an empty counter or " -"subtracting from an empty counter." -msgstr "" -"L'addition et la soustraction unaires (avec un seul terme) sont des " -"raccourcis pour respectivement additionner un compteur avec un compteur vide " -"ou et pour retrancher un compteur d'un compteur vide." - -#: library/collections.rst:407 -msgid "" -"Added support for unary plus, unary minus, and in-place multiset operations." -msgstr "" -"Ajout de la gestion des additions et soustractions unaires, et des " -"remplacements dans les multiensembles." - -#: library/collections.rst:410 -#, fuzzy -msgid "" -"Added support for the symmetric difference multiset operation, ``c ^ d``." -msgstr "" -"Ajout de la gestion des additions et soustractions unaires, et des " -"remplacements dans les multiensembles." - -#: library/collections.rst:415 -msgid "" -"Counters were primarily designed to work with positive integers to represent " -"running counts; however, care was taken to not unnecessarily preclude use " -"cases needing other types or negative values. To help with those use cases, " -"this section documents the minimum range and type restrictions." -msgstr "" -"Les compteurs ont été conçus essentiellement pour fonctionner avec des " -"entiers naturels pour représenter les dénombrements en cours ; cependant, " -"les cas d'utilisation nécessitant d'autres types ou des valeurs négatives " -"n'ont pas été écartés. Pour vous aider dans ces cas particuliers, cette " -"section documente la plage minimale et les restrictions de type." - -#: library/collections.rst:420 -msgid "" -"The :class:`Counter` class itself is a dictionary subclass with no " -"restrictions on its keys and values. The values are intended to be numbers " -"representing counts, but you *could* store anything in the value field." -msgstr "" -"La classe :class:`Counter` est elle-même une sous-classe de dictionnaire " -"sans restriction particulière sur ces clés ou valeurs. Les valeurs ont " -"vocation à être des nombres représentants des comptages, mais il est " -"*possible* de stocker n'importe quel type de valeur." - -#: library/collections.rst:424 -msgid "" -"The :meth:`~Counter.most_common` method requires only that the values be " -"orderable." -msgstr "" -"La méthode :meth:`~Counter.most_common` exige uniquement que les valeurs " -"soient ordonnables." - -#: library/collections.rst:426 -msgid "" -"For in-place operations such as ``c[key] += 1``, the value type need only " -"support addition and subtraction. So fractions, floats, and decimals would " -"work and negative values are supported. The same is also true " -"for :meth:`~Counter.update` and :meth:`~Counter.subtract` which allow " -"negative and zero values for both inputs and outputs." -msgstr "" -"Les opérations de remplacement telles que ``c[key] += 1`` exigent une valeur " -"dont le type gère l'addition et la soustraction. Cela inclut donc les " -"fractions, les flottants et les décimaux, y compris négatifs. Il en va de " -"même pour :meth:`~Counter.update` et :meth:`~Cointer.substract` qui " -"acceptent des valeurs négatives ou nulles dans les entrées et sorties." - -#: library/collections.rst:432 -msgid "" -"The multiset methods are designed only for use cases with positive values. " -"The inputs may be negative or zero, but only outputs with positive values " -"are created. There are no type restrictions, but the value type needs to " -"support addition, subtraction, and comparison." -msgstr "" -"Les méthodes de multiensembles sont uniquement conçues pour les cas " -"d'utilisation avec des valeurs positives. Les entrées peuvent contenir des " -"valeurs négatives ou nulles, mais seules les sorties avec des valeurs " -"positives sont créées. Il n'y a pas de restriction de type, mais les types " -"des valeurs doivent gérer l'addition, la soustraction et la comparaison." - -#: library/collections.rst:437 -msgid "" -"The :meth:`~Counter.elements` method requires integer counts. It ignores " -"zero and negative counts." -msgstr "" -"La méthode :meth:`~Counter.elements` exige des valeurs entières et ignore " -"les valeurs négatives ou nulles." - -#: library/collections.rst:442 -msgid "" -"`Bag class `_ in Smalltalk." -msgstr "" -"`Bag class `_ dans Smalltalk." - -#: library/collections.rst:445 -msgid "" -"Wikipedia entry for `Multisets `_." -msgstr "" -"L'article Wikipédia sur les `multiensembles `_ sur Wikipédia (ou `l'article en anglais `_)." - -#: library/collections.rst:447 -msgid "" -"`C++ multisets `_ tutorial with examples." -msgstr "" -"Des guides et exemples à propos des `multiensembles en C++ `_." - -#: library/collections.rst:450 -msgid "" -"For mathematical operations on multisets and their use cases, see *Knuth, " -"Donald. The Art of Computer Programming Volume II, Section 4.6.3, Exercise " -"19*." -msgstr "" -"Pour les opérations mathématiques sur les multiensembles et leurs " -"applications, voir *Knuth, Donald. The Art of Computer Programming Volume " -"II, Section 4.6.3, Exercise 19*." - -#: library/collections.rst:454 -msgid "" -"To enumerate all distinct multisets of a given size over a given set of " -"elements, see :func:`itertools.combinations_with_replacement`::" -msgstr "" -"Pour lister tous les multiensembles distincts de même taille parmi un " -"ensemble donné d'éléments, " -"voir :func:`itertools.combinations_with_replacement` ::" - -#: library/collections.rst:461 -msgid ":class:`deque` objects" -msgstr "Objets :class:`deque`" - -#: library/collections.rst:465 -msgid "" -"Returns a new deque object initialized left-to-right (using :meth:`append`) " -"with data from *iterable*. If *iterable* is not specified, the new deque is " -"empty." -msgstr "" -"Renvoie un nouvel objet *deque* initialisé de gauche à droite (en " -"utilisant :meth:`append`) avec les données d'*iterable*. Si *iterable* n'est " -"pas spécifié, alors la nouvelle *deque* est vide." - -#: library/collections.rst:468 -#, fuzzy -msgid "" -"Deques are a generalization of stacks and queues (the name is pronounced " -"\"deck\" and is short for \"double-ended queue\"). Deques support thread-" -"safe, memory efficient appends and pops from either side of the deque with " -"approximately the same *O*\\ (1) performance in either direction." -msgstr "" -"Les *deques* sont une généralisation des piles et des files (*deque* se " -"prononce \"*dèque*\" et est l'abréviation de l'anglais *double-ended " -"queue*) : il est possible d'ajouter et retirer des éléments par les deux " -"bouts des *deques*. Celles-ci gèrent des ajouts et des retraits utilisables " -"par de multiples fils d'exécution (*thread-safe*) et efficients du point de " -"vue de la mémoire des deux côtés de la *deque*, avec approximativement la " -"même performance en *O(1)* dans les deux sens." - -#: library/collections.rst:473 -#, fuzzy -msgid "" -"Though :class:`list` objects support similar operations, they are optimized " -"for fast fixed-length operations and incur *O*\\ (*n*) memory movement costs " -"for ``pop(0)`` and ``insert(0, v)`` operations which change both the size " -"and position of the underlying data representation." -msgstr "" -"Bien que les objets :class:`list` gèrent des opérations similaires, ils sont " -"optimisés pour des opérations qui ne changent pas la taille de la liste. Les " -"opérations ``pop(0)`` et ``insert(0, v)`` qui changent la taille et la " -"position de la représentation des données sous-jacentes entraînent des coûts " -"de déplacement de mémoire en *O(n)*." - -#: library/collections.rst:479 -msgid "" -"If *maxlen* is not specified or is ``None``, deques may grow to an arbitrary " -"length. Otherwise, the deque is bounded to the specified maximum length. " -"Once a bounded length deque is full, when new items are added, a " -"corresponding number of items are discarded from the opposite end. Bounded " -"length deques provide functionality similar to the ``tail`` filter in Unix. " -"They are also useful for tracking transactions and other pools of data where " -"only the most recent activity is of interest." -msgstr "" -"Si *maxlen* n'est pas spécifié ou vaut *None*, les *deques* peuvent " -"atteindre une taille arbitraire. Sinon, la *deque* est limitée par cette " -"taille maximale. Une fois que celle-ci est atteinte, un ajout d'un ou " -"plusieurs éléments engendre la suppression du nombre correspondant " -"d'éléments à l'autre extrémité de la *deque*. Les *deques* à longueur " -"limitée apportent des fonctionnalités similaires au filtre ``tail`` d'Unix. " -"Elles sont aussi utiles pour le suivi de transactions et autres lots de " -"données où seule l'activité récente est intéressante." - -#: library/collections.rst:487 -msgid "Deques are :ref:`generic ` over the type of their contents." -msgstr "" - -#: library/collections.rst:490 -msgid "Deque objects support the following methods:" -msgstr "Les objets *deques* gèrent les méthodes suivantes :" - -#: library/collections.rst:494 -#, fuzzy -msgid "Add *item* to the right side of the deque." -msgstr "Ajoute *x* à l'extrémité droite de la *deque*." - -#: library/collections.rst:499 -#, fuzzy -msgid "Add *item* to the left side of the deque." -msgstr "Ajoute *x* à l'extrémité gauche de la *deque*." - -#: library/collections.rst:504 -msgid "Remove all elements from the deque leaving it with length 0." -msgstr "" -"Supprime tous les éléments de la *deque* et la laisse avec une longueur de 0." - -#: library/collections.rst:509 -msgid "Create a shallow copy of the deque." -msgstr "Crée une copie superficielle de la *deque*." - -#: library/collections.rst:516 -#, fuzzy -msgid "Count the number of deque elements equal to *value*." -msgstr "Compte le nombre d'éléments de la *deque* égaux à *x*." - -#: library/collections.rst:523 -msgid "" -"Extend the right side of the deque by appending elements from the iterable " -"argument." -msgstr "" -"Étend la *deque* en ajoutant les éléments de l'itérable en argument à son " -"extrémité droite." - -#: library/collections.rst:529 -msgid "" -"Extend the left side of the deque by appending elements from *iterable*. " -"Note, the series of left appends results in reversing the order of elements " -"in the iterable argument." -msgstr "" -"Étend la *deque* en ajoutant les éléments d'*iterable* à son extrémité " -"gauche. Dans ce cas, notez que la série d'ajouts inverse l'ordre des " -"éléments de l'argument itérable." - -#: library/collections.rst:536 -#, fuzzy -msgid "" -"Return the position of *value* in the deque (at or after index *start* and " -"before index *stop*). Returns the first match or raises :exc:`ValueError` " -"if not found." -msgstr "" -"Renvoie la position de *x* dans la *deque* (à partir de *start* inclus et " -"jusqu'à *stop* exclus). Renvoie la première correspondance ou " -"lève :exc:`ValueError` si aucune n'est trouvée." - -#: library/collections.rst:545 -#, fuzzy -msgid "Insert *value* into the deque at position *index*." -msgstr "Insère *x* dans la *deque* à la position *i*." - -#: library/collections.rst:547 -msgid "" -"If the insertion would cause a bounded deque to grow beyond *maxlen*, " -"an :exc:`IndexError` is raised." -msgstr "" -"Si une insertion provoque un dépassement de la taille limitée d'une *deque*, " -"alors elle lève une exception :exc:`IndexError`." - -#: library/collections.rst:555 -msgid "" -"Remove and return an element from the right side of the deque. If no " -"elements are present, raises an :exc:`IndexError`." -msgstr "" -"Retire et renvoie un élément de l'extrémité droite de la *deque*. S'il n'y a " -"aucun élément, lève une exception :exc:`IndexError`." - -#: library/collections.rst:561 -msgid "" -"Remove and return an element from the left side of the deque. If no elements " -"are present, raises an :exc:`IndexError`." -msgstr "" -"Retire et renvoie un élément de l'extrémité gauche de la *deque*. S'il n'y a " -"aucun élément, lève une exception :exc:`IndexError`." - -#: library/collections.rst:567 -msgid "" -"Remove the first occurrence of *value*. If not found, raises " -"a :exc:`ValueError`." -msgstr "" -"Supprime la première occurrence de *value*. Si aucune occurrence n'est " -"trouvée, lève une exception :exc:`ValueError`." - -#: library/collections.rst:573 -msgid "Reverse the elements of the deque in-place and then return ``None``." -msgstr "" -"Inverse le sens des éléments de la *deque* sans créer de copie et renvoie " -"``None``." - -#: library/collections.rst:580 -msgid "" -"Rotate the deque *n* steps to the right. If *n* is negative, rotate to the " -"left." -msgstr "" -"Décale les éléments de la *deque* de *n* places vers la droite (le dernier " -"élément revient au début). Si *n* est négatif, décale vers la gauche." - -#: library/collections.rst:583 -msgid "" -"When the deque is not empty, rotating one step to the right is equivalent to " -"``d.appendleft(d.pop())``, and rotating one step to the left is equivalent " -"to ``d.append(d.popleft())``." -msgstr "" -"Quand la *deque* n'est pas vide, un décalage d'une place vers la droite " -"équivaut à ``d.appendleft(d.pop())`` et un décalage d'une place vers la " -"gauche est équivalent à ``d.append(d.popleft())``." - -#: library/collections.rst:588 -msgid "Deque objects also provide one read-only attribute:" -msgstr "" -"Les objets *deques* fournissent également un attribut en lecture seule :" - -#: library/collections.rst:592 -msgid "Maximum size of a deque or ``None`` if unbounded." -msgstr "La taille maximale d'une *deque*, ou ``None`` si illimitée." - -#: library/collections.rst:597 -#, fuzzy -msgid "" -"In addition to the above, deques support iteration, pickling, ``len(d)``, " -"``reversed(d)``, ``copy.copy(d)``, ``copy.deepcopy(d)``, membership testing " -"with the :keyword:`in` operator, and subscript references such as ``d[0]`` " -"to access the first element. Indexed access is *O*\\ (1) at both ends but " -"slows to *O*\\ (*n*) in the middle. For fast random access, use lists " -"instead." -msgstr "" -"En plus des méthodes précédentes, les *deques* gèrent l'itération, la " -"sérialisation, ``len(d)``, ``reversed(d)``, ``copy.copy(d)``, " -"``copy.deepcopy(d)``, le test d'appartenance avec l'opérateur :keyword:`in`, " -"et les références en indice telles que ``d[0]`` pour accéder au premier " -"élément. L'accès par indice est en *O(1)* aux extrémités mais en *O(n)* au " -"milieu. Pour des accès aléatoires rapides, il est préférable d'utiliser des " -"listes." - -#: library/collections.rst:603 -msgid "" -"Starting in version 3.5, deques support ``__add__()``, ``__mul__()``, and " -"``__imul__()``." -msgstr "" -"Depuis la version 3.5, les *deques* gèrent ``__add__()``, ``__mul__()`` et " -"``__imul__()``." - -#: library/collections.rst:606 -msgid "Example:" -msgstr "Exemple :" - -#: library/collections.rst:663 -msgid ":class:`deque` Recipes" -msgstr "Cas pratiques utilisant :class:`deque`" - -#: library/collections.rst:665 -msgid "This section shows various approaches to working with deques." -msgstr "" -"Cette partie montre diverses approches afin de travailler avec les *deques*." - -#: library/collections.rst:667 -msgid "" -"Bounded length deques provide functionality similar to the ``tail`` filter " -"in Unix::" -msgstr "" -"Les *deques* à taille limitée apportent une fonctionnalité similaire au " -"filtre ``tail`` d'Unix ::" - -#: library/collections.rst:675 -msgid "" -"Another approach to using deques is to maintain a sequence of recently added " -"elements by appending to the right and popping to the left::" -msgstr "" -"Une autre approche d'utilisation des *deques* est de maintenir une séquence " -"d'éléments récemment ajoutés en les ajoutant à droite et en retirant les " -"anciens par la gauche ::" - -#: library/collections.rst:690 -msgid "" -"A `round-robin scheduler `_ can be implemented with input iterators stored in " -"a :class:`deque`. Values are yielded from the active iterator in position " -"zero. If that iterator is exhausted, it can be removed " -"with :meth:`~deque.popleft`; otherwise, it can be cycled back to the end " -"with the :meth:`~deque.rotate` method::" -msgstr "" -"Un `ordonnancement en round-robin `_ peut être implémenté avec des entrées itérateurs " -"stockées dans une :class:`deque`. Les valeurs sont produites par l'itérateur " -"actif en position zéro. Si cet itérateur est épuisé, il peut être retiré " -"avec la méthode :meth:`~deque.popleft` ; ou bien il peut être remis à la fin " -"avec la méthode :meth:`~ deque.rotate` ::" - -#: library/collections.rst:709 -msgid "" -"The :meth:`~deque.rotate` method provides a way to implement :class:`deque` " -"slicing and deletion. For example, a pure Python implementation of ``del " -"d[n]`` relies on the ``rotate()`` method to position elements to be popped::" -msgstr "" -"La méthode :meth:`~deque.rotate` apporte une façon d'implémenter la " -"sélection d'intervalle (*slicing*) et les suppressions pour " -"les :class:`deques`. Par exemple, une implémentation de ``del d[n]`` en " -"Python pur utilise la méthode ``rotate()`` pour mettre en position les " -"éléments à éjecter ::" - -#: library/collections.rst:718 -msgid "" -"To implement :class:`deque` slicing, use a similar approach " -"applying :meth:`~deque.rotate` to bring a target element to the left side of " -"the deque. Remove old entries with :meth:`~deque.popleft`, add new entries " -"with :meth:`~deque.extend`, and then reverse the rotation. With minor " -"variations on that approach, it is easy to implement Forth style stack " -"manipulations such as ``dup``, ``drop``, ``swap``, ``over``, ``pick``, " -"``rot``, and ``roll``." -msgstr "" -"Pour implémenter le *slicing* pour les :class:`deques `, il est " -"possible d'utiliser une approche similaire en " -"appliquant :meth:`~deque.rotate` afin d'apporter un élément cible à " -"l'extrémité gauche de la *deque*. On éjecte les anciennes entrées " -"avec :meth:`~deque.popleft` et on ajoute les nouvelles " -"avec :meth:`~deque.extend`, puis on inverse la rotation. Il est aisé " -"d'implémenter les manipulations des piles inspirées du Forth telles que " -"``dup``, ``drop``, ``swap``, ``over``, ``pick``, ``rot`` et ``roll``." - -#: library/collections.rst:728 -msgid ":class:`defaultdict` objects" -msgstr "Objets :class:`defaultdict`" - -#: library/collections.rst:734 -msgid "" -"Return a new dictionary-like object. :class:`defaultdict` is a subclass of " -"the built-in :class:`dict` class. It overrides one method and adds one " -"writable instance variable. The remaining functionality is the same as for " -"the :class:`dict` class and is not documented here." -msgstr "" -"Renvoie un nouvel objet qui se comporte comme un " -"dictionnaire. :class:`defaultdict` est une sous-classe de la classe " -"native :class:`dict`. Elle surcharge une méthode et ajoute une variable " -"d'instance modifiable. Les autres fonctionnalités sont les mêmes que celles " -"des objets :class:`dict` et ne sont pas documentées ici." - -#: library/collections.rst:739 -msgid "" -"The first argument provides the initial value for " -"the :attr:`default_factory` attribute; it defaults to ``None``. All " -"remaining arguments are treated the same as if they were passed to " -"the :class:`dict` constructor, including keyword arguments." -msgstr "" -"Le premier argument fournit la valeur initiale de " -"l'attribut :attr:`default_factory` qui doit être un objet appelable sans " -"paramètre ou ``None``, sa valeur par défaut. Tous les autres arguments sont " -"traités comme si on les passait au constructeur de :class:`dict`, y compris " -"les arguments nommés." - -#: library/collections.rst:744 -msgid "" -":class:`!defaultdict`\\s are :ref:`generic ` over two types, " -"signifying (respectively) the types of the dictionary's keys and values." -msgstr "" - -#: library/collections.rst:748 -msgid "" -":class:`defaultdict` objects support the following method in addition to the " -"standard :class:`dict` operations:" -msgstr "" -"En plus des opérations usuelles de :class:`dict`, les " -"objets :class:`defaultdict` gèrent les méthodes supplémentaires suivantes :" - -#: library/collections.rst:753 -msgid "" -"If the :attr:`default_factory` attribute is ``None``, this raises " -"a :exc:`KeyError` exception with the *key* as argument." -msgstr "" -"Si l'attribut :attr:`default_factory` est ``None``, lève une " -"exception :exc:`KeyError` avec *key* comme argument." - -#: library/collections.rst:756 -msgid "" -"If :attr:`default_factory` is not ``None``, it is called without arguments " -"to provide a default value for the given *key*, this value is inserted in " -"the dictionary for the *key*, and returned." -msgstr "" -"Si :attr:`default_fatory` ne vaut pas ``None``, cet attribut est appelé sans " -"argument pour fournir une valeur par défaut pour la *key* demandée. Cette " -"valeur est insérée dans le dictionnaire avec pour clé *key* et est renvoyée." - -#: library/collections.rst:760 -msgid "" -"If calling :attr:`default_factory` raises an exception this exception is " -"propagated unchanged." -msgstr "" -"Si appeler :attr:`default_factory` lève une exception, celle-ci est " -"transmise inchangée." - -#: library/collections.rst:763 -#, fuzzy -msgid "" -"This method is called by the :meth:`~object.__getitem__` method of " -"the :class:`dict` class when the requested key is not found; whatever it " -"returns or raises is then returned or raised by :meth:`~object.__getitem__`." -msgstr "" -"Cette méthode est appelée par la méthode :meth:`__getitem__` de la " -"classe :class:`dict` lorsque la clé demandée n'est pas trouvée. Ce qu'elle " -"renvoie ou lève est alors renvoyé ou levé par :meth:`__getitem__`." - -#: library/collections.rst:767 -#, fuzzy -msgid "" -"Note that :meth:`__missing__` is *not* called for any operations " -"besides :meth:`~object.__getitem__`. This means that :meth:`~dict.get` will, " -"like normal dictionaries, return ``None`` as a default rather than " -"using :attr:`default_factory`." -msgstr "" -"Remarquez que :meth:`__missing__` n'est *pas* appelée pour les opérations " -"autres que :meth:`__getitem__`. Cela signifie que :meth:`get` renvoie " -"``None`` comme les dictionnaires natifs dans les cas triviaux et n'utilise " -"pas :attr:`default_factory`." - -#: library/collections.rst:773 -msgid ":class:`defaultdict` objects support the following instance variable:" -msgstr "Les objets :class:`defaultdict` gèrent la variable d'instance :" - -#: library/collections.rst:778 -#, fuzzy -msgid "" -"This attribute is used by the :meth:`~defaultdict.__missing__` method; it is " -"initialized from the first argument to the constructor, if present, or to " -"``None``, if absent." -msgstr "" -"Cet attribut est utilisé par la méthode :meth:`__missing__` ; il est " -"initialisé par le premier argument passé au constructeur, s'il est spécifié, " -"sinon par ``None``." - -#: library/collections.rst:1211 -msgid "" -"Added merge (``|``) and update (``|=``) operators, specified in :pep:`584`." -msgstr "" -"ajout des opérateurs fusion (``|``) et mise-à-jour (``|=``) tels que définis " -"dans :pep:`584`." - -#: library/collections.rst:788 -msgid ":class:`defaultdict` Examples" -msgstr "Exemples utilisant :class:`defaultdict`" - -#: library/collections.rst:790 -msgid "" -"Using :class:`list` as the :attr:`~defaultdict.default_factory`, it is easy " -"to group a sequence of key-value pairs into a dictionary of lists:" -msgstr "" -"Utiliser :class:`list` comme :attr:`~defaultdict.default_factory` facilite " -"le regroupement d'une séquence de paires clé-valeur en un dictionnaire de " -"listes :" - -#: library/collections.rst:801 -msgid "" -"When each key is encountered for the first time, it is not already in the " -"mapping; so an entry is automatically created using " -"the :attr:`~defaultdict.default_factory` function which returns an " -"empty :class:`list`. The :meth:`list.append` operation then attaches the " -"value to the new list. When keys are encountered again, the look-up " -"proceeds normally (returning the list for that key) and " -"the :meth:`list.append` operation adds another value to the list. This " -"technique is simpler and faster than an equivalent technique " -"using :meth:`dict.setdefault`:" -msgstr "" -"Lorsque chaque clé est rencontrée pour la première fois, elle n'est pas " -"encore présente dans le dictionnaire, donc une entrée est automatiquement " -"créée grâce à la fonction :attr:`~defaultdict.default_factory` qui renvoie " -"un objet :class:`list` vide. L'opération :meth:`list.append` ajoute la " -"valeur à la nouvelle liste. Quand les clés sont à nouveau rencontrées, la " -"recherche se déroule correctement (elle renvoie la liste de cette clé) et " -"l'opération :meth:`list.append` ajoute une autre valeur à la liste. Cette " -"technique est plus simple et plus rapide qu'une technique équivalente " -"utilisant :meth:`dict.setdefault` :" - -#: library/collections.rst:816 -msgid "" -"Setting the :attr:`~defaultdict.default_factory` to :class:`int` makes " -"the :class:`defaultdict` useful for counting (like a bag or multiset in " -"other languages):" -msgstr "" -"Utiliser :class:`int` comme :attr:`~defaultdict.default_factory` rend la " -"classe :class:`defaultdict` pratique pour le comptage (comme un sac ou multi-" -"ensemble dans d'autres langages) :" - -#: library/collections.rst:828 -msgid "" -"When a letter is first encountered, it is missing from the mapping, so " -"the :attr:`~defaultdict.default_factory` function calls :func:`int` to " -"supply a default count of zero. The increment operation then builds up the " -"count for each letter." -msgstr "" -"Quand une lettre est rencontrée pour la première fois, elle n'est pas dans " -"le dictionnaire, donc la fonction :attr:`~defaultdict.default_factory` " -"appelle :func:`int` pour mettre un nouveau compteur à zéro. L'incrémentation " -"augmente ensuite le comptage pour chaque lettre." - -#: library/collections.rst:832 -msgid "" -"The function :func:`int` which always returns zero is just a special case of " -"constant functions. A faster and more flexible way to create constant " -"functions is to use a lambda function which can supply any constant value " -"(not just zero):" -msgstr "" -"La fonction :func:`int` qui retourne toujours zéro est simplement une " -"fonction constante particulière. Un moyen plus flexible et rapide de créer " -"une fonction constante est d'utiliser une fonction lambda qui peut fournir " -"n'importe quelle valeur constante (pas seulement zéro) :" - -#: library/collections.rst:845 -msgid "" -"Setting the :attr:`~defaultdict.default_factory` to :class:`set` makes " -"the :class:`defaultdict` useful for building a dictionary of sets:" -msgstr "" -"Utiliser :class:`set` comme :attr:`~defaultdict.default_factory` rend la " -"classe :class:`defaultdict` pratique pour créer un dictionnaire d'ensembles :" - -#: library/collections.rst:858 -msgid ":func:`namedtuple` Factory Function for Tuples with Named Fields" -msgstr "" -":func:`namedtuple` : fonction de construction pour *n*-uplets avec des " -"champs nommés" - -#: library/collections.rst:860 -msgid "" -"Named tuples assign meaning to each position in a tuple and allow for more " -"readable, self-documenting code. They can be used wherever regular tuples " -"are used, and they add the ability to access fields by name instead of " -"position index." -msgstr "" -"Les *n*-uplets nommés assignent une signification à chacun de leur élément, " -"ce qui rend le code plus lisible et explicite. Ils peuvent être utilisés " -"partout où les *n*-uplets natifs sont utilisés, et ils ajoutent la " -"possibilité d'accéder à leurs champs grâce à leur nom au lieu de leur index " -"de position." - -#: library/collections.rst:866 -#, fuzzy -msgid "" -"Returns a new tuple subclass named *typename*. The new subclass is used to " -"create tuple-like objects that have fields accessible by attribute lookup as " -"well as being indexable and iterable. Instances of the subclass also have a " -"helpful docstring (with *typename* and *field_names*) and a " -"helpful :meth:`~object.__repr__` method which lists the tuple contents in a " -"``name=value`` format." -msgstr "" -"Renvoie une nouvelle sous-classe de ``tuple`` appelée *typename*. Elle est " -"utilisée pour créer des objets se comportant comme les *n*-uplets qui ont " -"des champs accessibles par recherche d'attribut en plus d'être indexables et " -"itérables. Les instances de cette sous-classe possèdent aussi une " -"*docstring* explicite (avec *type_name* et les *field_names*) et une " -"méthode :meth:`__repr__` pratique qui liste le contenu du *n*-uplet au " -"format ``nom=valeur``." - -#: library/collections.rst:873 -msgid "" -"The *field_names* are a sequence of strings such as ``['x', 'y']``. " -"Alternatively, *field_names* can be a single string with each fieldname " -"separated by whitespace and/or commas, for example ``'x y'`` or ``'x, y'``." -msgstr "" -"*field_names* peut être une séquence de chaînes de caractères telle que " -"``['x', 'y']`` ou bien une unique chaîne de caractères où les noms de champs " -"sont séparés par un espace et/ou une virgule, par exemple ``'x y'`` ou ``'x, " -"y'``." - -#: library/collections.rst:877 -msgid "" -"Any valid Python identifier may be used for a fieldname except for names " -"starting with an underscore. Valid identifiers consist of letters, digits, " -"and underscores but do not start with a digit or underscore and cannot be " -"a :mod:`keyword` such as *class*, *for*, *return*, *global*, *pass*, or " -"*raise*." -msgstr "" -"N'importe quel identifiant Python peut être utilisé pour un nom de champ " -"hormis ceux commençant par un tiret bas. Les identifiants valides peuvent " -"contenir des lettres, des chiffres (sauf en première position) et des tirets " -"bas (sauf en première position). Un identifiant ne peut pas être " -"un :mod:`keyword` tel que ``class``, ``for``, ``return``, ``global``, " -"``pass`` ou ``raise``." - -#: library/collections.rst:883 -msgid "" -"If *rename* is true, invalid fieldnames are automatically replaced with " -"positional names. For example, ``['abc', 'def', 'ghi', 'abc']`` is " -"converted to ``['abc', '_1', 'ghi', '_3']``, eliminating the keyword ``def`` " -"and the duplicate fieldname ``abc``." -msgstr "" -"Si *rename* vaut ``True``, alors les noms de champs invalides sont " -"automatiquement renommés en noms positionnels. Par exemple, ``['abc', 'def', " -"'ghi', 'abc']`` est converti en ``['abc, '_1', 'ghi', '_3']`` afin " -"d'éliminer le mot-clé ``def`` et le doublon de ``abc``." - -#: library/collections.rst:888 -msgid "" -"*defaults* can be ``None`` or an :term:`iterable` of default values. Since " -"fields with a default value must come after any fields without a default, " -"the *defaults* are applied to the rightmost parameters. For example, if the " -"fieldnames are ``['x', 'y', 'z']`` and the defaults are ``(1, 2)``, then " -"``x`` will be a required argument, ``y`` will default to ``1``, and ``z`` " -"will default to ``2``." -msgstr "" -"*defaults* peut être ``None`` ou un :term:`iterable` de valeurs par défaut. " -"Comme les champs avec une valeur par défaut doivent être définis après les " -"champs sans valeur par défaut, les *defaults* sont appliqués aux paramètres " -"les plus à droite. Par exemple, si les noms des champs sont ``['x', 'y', " -"'z']`` et les valeurs par défaut ``(1, 2)``, alors ``x`` est un argument " -"obligatoire tandis que ``y`` et ``y`` valent par défaut ``1`` et ``2``." - -#: library/collections.rst:895 -#, fuzzy -msgid "" -"If *module* is defined, the :attr:`~type.__module__` attribute of the named " -"tuple is set to that value." -msgstr "" -"Si *module* est spécifié, alors il est assigné à l'attribut ``__module__`` " -"du *n*-uplet nommé." - -#: library/collections.rst:898 -msgid "" -"Named tuple instances do not have per-instance dictionaries, so they are " -"lightweight and require no more memory than regular tuples." -msgstr "" -"Les instances de *n*-uplets nommés n'ont pas de dictionnaires propres, elles " -"sont donc légères et ne requièrent pas plus de mémoire que les *n*-uplets " -"natifs." - -#: library/collections.rst:901 -msgid "" -"To support pickling, the named tuple class should be assigned to a variable " -"that matches *typename*." -msgstr "" -"Pour permettre la sérialisation, la classe de *n*-uplet nommée doit être " -"assignée à une variable qui correspond à *typename*." - -#: library/collections.rst:904 -msgid "Added support for *rename*." -msgstr "Gestion de *rename*." - -#: library/collections.rst:907 -msgid "" -"The *verbose* and *rename* parameters became :ref:`keyword-only arguments " -"`." -msgstr "" -"Les paramètres *verbose* et *rename* deviennent des :ref:`arguments " -"obligatoirement nommés `." - -#: library/collections.rst:911 -msgid "Added the *module* parameter." -msgstr "Ajout du paramètre *module*." - -#: library/collections.rst:914 -#, fuzzy -msgid "Removed the *verbose* parameter and the :attr:`!_source` attribute." -msgstr "Suppression du paramètre *verbose* et de l'attribut :attr:`_source`." - -#: library/collections.rst:917 -#, fuzzy -msgid "" -"Added the *defaults* parameter and " -"the :attr:`~somenamedtuple._field_defaults` attribute." -msgstr "" -"Ajout du paramètre *defaults* et de l'attribut :attr:`_field_defaults`." - -#: library/collections.rst:937 -msgid "" -"Named tuples are especially useful for assigning field names to result " -"tuples returned by the :mod:`csv` or :mod:`sqlite3` modules::" -msgstr "" -"Les *n*-uplets nommés sont particulièrement utiles pour associer des noms de " -"champs à des *n*-uplets renvoyés par les modules :mod:`csv` " -"ou :mod:`sqlite3` ::" - -#: library/collections.rst:953 -msgid "" -"In addition to the methods inherited from tuples, named tuples support three " -"additional methods and two attributes. To prevent conflicts with field " -"names, the method and attribute names start with an underscore." -msgstr "" -"En plus des méthodes héritées de ``tuple``, les *n*-uplets nommés " -"implémentent trois méthodes et deux attributs supplémentaires. Pour éviter " -"les conflits avec noms de champs, leurs noms commencent par un tiret bas." - -#: library/collections.rst:959 -msgid "" -"Class method that makes a new instance from an existing sequence or iterable." -msgstr "" -"Méthode de classe qui construit une nouvelle instance à partir d'une " -"séquence ou d'un itérable existant." - -#: library/collections.rst:969 -msgid "" -"Return a new :class:`dict` which maps field names to their corresponding " -"values:" -msgstr "" -"Renvoie un nouveau :class:`dict` qui associe chaque nom de champ à sa valeur " -"correspondante :" - -#: library/collections.rst:978 -msgid "Returns an :class:`OrderedDict` instead of a regular :class:`dict`." -msgstr "Renvoie un :class:`OrderedDict` au lieu d'un :class:`dict` natif." - -#: library/collections.rst:981 -msgid "" -"Returns a regular :class:`dict` instead of an :class:`OrderedDict`. As of " -"Python 3.7, regular dicts are guaranteed to be ordered. If the extra " -"features of :class:`OrderedDict` are required, the suggested remediation is " -"to cast the result to the desired type: ``OrderedDict(nt._asdict())``." -msgstr "" -"renvoie un :class:`dict` natif plutôt qu'un :class:`OrderedDict`. À partir " -"de Python 3.7, les dictionnaires natifs garantissent la préservation de " -"l'ordre. Si les autres fonctionnalités d':class:`OrderedDict` sont " -"nécessaires, la solution préconisée est de convertir le résultat vers le " -"type souhaité : ``OrderedDict(nt._asdict())``." - -#: library/collections.rst:990 -msgid "" -"Return a new instance of the named tuple replacing specified fields with new " -"values::" -msgstr "" -"Renvoie une nouvelle instance du *n*-uplet nommé en remplaçant les champs " -"spécifiés par leurs nouvelles valeurs ::" - -#: library/collections.rst:1000 -msgid "" -"Named tuples are also supported by generic function :func:`copy.replace`." -msgstr "" - -#: library/collections.rst:1002 -msgid "" -"Raise :exc:`TypeError` instead of :exc:`ValueError` for invalid keyword " -"arguments." -msgstr "" - -#: library/collections.rst:1008 -msgid "" -"Tuple of strings listing the field names. Useful for introspection and for " -"creating new named tuple types from existing named tuples." -msgstr "" -"Tuple de chaînes de caractères listant les noms de champs. Pratique pour " -"l'introspection et pour créer de nouveaux types de *n*-uplets nommés à " -"partir d'existants." - -#: library/collections.rst:1023 -msgid "Dictionary mapping field names to default values." -msgstr "Dictionnaire qui assigne les valeurs par défaut aux noms des champs." - -#: library/collections.rst:1033 -msgid "" -"To retrieve a field whose name is stored in a string, use " -"the :func:`getattr` function:" -msgstr "" -"Pour récupérer un champ dont le nom est une chaîne de caractères, utilisez " -"la fonction :func:`getattr` :" - -#: library/collections.rst:1039 -msgid "" -"To convert a dictionary to a named tuple, use the double-star-operator (as " -"described in :ref:`tut-unpacking-arguments`):" -msgstr "" -"Pour convertir un dictionnaire en *n*-uplet nommé, utilisez l'opérateur " -"double-étoile (comme expliqué dans :ref:`tut-unpacking-arguments`) :" - -#: library/collections.rst:1046 -msgid "" -"Since a named tuple is a regular Python class, it is easy to add or change " -"functionality with a subclass. Here is how to add a calculated field and a " -"fixed-width print format:" -msgstr "" -"Il est aisé d'ajouter ou de modifier les fonctionnalités des *n*-uplets " -"nommés grâce à l'héritage puisqu'il s'agit de simples classes. Voici comment " -"ajouter un champ calculé avec une longueur fixe d'affichage :" - -#: library/collections.rst:1065 -msgid "" -"The subclass shown above sets ``__slots__`` to an empty tuple. This helps " -"keep memory requirements low by preventing the creation of instance " -"dictionaries." -msgstr "" -"La sous-classe ci-dessus définit ``__slots__`` comme un *n*-uplet vide. Cela " -"permet de garder une emprunte mémoire faible en empêchant la création de " -"dictionnaire d'instance." - -#: library/collections.rst:1068 -msgid "" -"Subclassing is not useful for adding new, stored fields. Instead, simply " -"create a new named tuple type from the :attr:`~somenamedtuple._fields` " -"attribute:" -msgstr "" -"L'héritage n'est pas pertinent pour ajouter de nouveaux champs. Il est " -"préférable de simplement créer un nouveau type de *n*-uplet nommé avec " -"l'attribut :attr:`~somenamedtuple._fields` :" - -#: library/collections.rst:1073 -msgid "" -"Docstrings can be customized by making direct assignments to the ``__doc__`` " -"fields:" -msgstr "" -"Les *docstrings* peuvent être personnalisées en modifiant directement " -"l'attribut ``__doc__`` :" - -#: library/collections.rst:1082 -msgid "Property docstrings became writeable." -msgstr "La propriété devient éditable." - -#: library/collections.rst:1087 -msgid "" -"See :class:`typing.NamedTuple` for a way to add type hints for named " -"tuples. It also provides an elegant notation using the :keyword:`class` " -"keyword::" -msgstr "" -"Voir :meth:`typing.NamedTuple` pour un moyen d'ajouter des indications de " -"type pour les *n*-uplets nommés. Cela propose aussi une notation élégante " -"utilisant le mot-clé :keyword:`class` ::" - -#: library/collections.rst:1096 -msgid "" -"See :meth:`types.SimpleNamespace` for a mutable namespace based on an " -"underlying dictionary instead of a tuple." -msgstr "" -"Voir :meth:`types.SimpleNamespace` pour un espace de nommage mutable basé " -"sur un dictionnaire sous-jacent à la place d'un *n*-uplet." - -#: library/collections.rst:1099 -msgid "" -"The :mod:`dataclasses` module provides a decorator and functions for " -"automatically adding generated special methods to user-defined classes." -msgstr "" -"Le module :mod:`dataclasses` fournit un décorateur et des fonctions pour " -"ajouter automatiquement des méthodes spéciales générées aux classes définies " -"par l’utilisateur." - -#: library/collections.rst:1104 -msgid ":class:`OrderedDict` objects" -msgstr "Objets :class:`OrderedDict`" - -#: library/collections.rst:1106 -msgid "" -"Ordered dictionaries are just like regular dictionaries but have some extra " -"capabilities relating to ordering operations. They have become less " -"important now that the built-in :class:`dict` class gained the ability to " -"remember insertion order (this new behavior became guaranteed in Python 3.7)." -msgstr "" -"Les dictionnaires ordonnés sont des dictionnaires comme les autres mais " -"possèdent des capacités supplémentaires pour s'ordonner. Ils sont maintenant " -"moins importants puisque la classe native :class:`dict` sait se souvenir de " -"l'ordre d'insertion (cette fonctionnalité a été garantie par Python 3.7)." - -#: library/collections.rst:1112 -msgid "Some differences from :class:`dict` still remain:" -msgstr "Quelques différences persistent vis-à-vis de :class:`dict` :" - -#: library/collections.rst:1114 -msgid "" -"The regular :class:`dict` was designed to be very good at mapping " -"operations. Tracking insertion order was secondary." -msgstr "" -"Les :class:`dict` classiques ont été conçus pour être performants dans les " -"opérations de correspondance. Garder une trace de l'ordre d'insertion était " -"secondaire." - -#: library/collections.rst:1117 -msgid "" -"The :class:`OrderedDict` was designed to be good at reordering operations. " -"Space efficiency, iteration speed, and the performance of update operations " -"were secondary." -msgstr "" -"Les :class:`OrderedDict` ont été conçus pour être performants dans les " -"opérations de ré-arrangement. L'occupation mémoire, la vitesse de parcours " -"et les performances de mise à jour étaient secondaires." - -#: library/collections.rst:1121 -#, fuzzy -msgid "" -"The :class:`OrderedDict` algorithm can handle frequent reordering operations " -"better than :class:`dict`. As shown in the recipes below, this makes it " -"suitable for implementing various kinds of LRU caches." -msgstr "" -"Algorithmiquement, :class:`OrderedDict` gère mieux les ré-arrangements " -"fréquents que :class:`dict`. Ceci la rend adaptée pour suivre les accès les " -"plus récents (par exemple pour implémenter un `cache LRU `_ pour " -"*Least Recently Used* en anglais)." - -#: library/collections.rst:1125 -msgid "" -"The equality operation for :class:`OrderedDict` checks for matching order." -msgstr "" -"Le test d'égalité de :class:`OrderedDict` vérifie si l'ordre correspond." - -#: library/collections.rst:1127 -msgid "" -"A regular :class:`dict` can emulate the order sensitive equality test with " -"``p == q and all(k1 == k2 for k1, k2 in zip(p, q))``." -msgstr "" - -#: library/collections.rst:1130 -#, fuzzy -msgid "" -"The :meth:`~OrderedDict.popitem` method of :class:`OrderedDict` has a " -"different signature. It accepts an optional argument to specify which item " -"is popped." -msgstr "" -"La méthode :meth:`popitem` de :class:`OrderedDict` possède une signature " -"différente. Elle accepte un argument optionnel pour spécifier quel élément " -"doit être enlevé." - -#: library/collections.rst:1133 -msgid "" -"A regular :class:`dict` can emulate OrderedDict's ``od.popitem(last=True)`` " -"with ``d.popitem()`` which is guaranteed to pop the rightmost (last) item." -msgstr "" - -#: library/collections.rst:1136 -msgid "" -"A regular :class:`dict` can emulate OrderedDict's ``od.popitem(last=False)`` " -"with ``(k := next(iter(d)), d.pop(k))`` which will return and remove the " -"leftmost (first) item if it exists." -msgstr "" - -#: library/collections.rst:1140 -#, fuzzy -msgid "" -":class:`OrderedDict` has a :meth:`~OrderedDict.move_to_end` method to " -"efficiently reposition an element to an endpoint." -msgstr "" -":class:`OrderedDict` possède une méthode :meth:`move_to_end` pour déplacer " -"efficacement un élément à la fin." - -#: library/collections.rst:1143 -msgid "" -"A regular :class:`dict` can emulate OrderedDict's ``od.move_to_end(k, " -"last=True)`` with ``d[k] = d.pop(k)`` which will move the key and its " -"associated value to the rightmost (last) position." -msgstr "" - -#: library/collections.rst:1147 -msgid "" -"A regular :class:`dict` does not have an efficient equivalent for " -"OrderedDict's ``od.move_to_end(k, last=False)`` which moves the key and its " -"associated value to the leftmost (first) position." -msgstr "" - -#: library/collections.rst:1151 -#, fuzzy -msgid "" -"Until Python 3.8, :class:`dict` lacked a :meth:`~object.__reversed__` method." -msgstr "" -"Avant Python 3.8, :class:`dict` n'a pas de méthode :meth:`__reversed__`." - -#: library/collections.rst:1158 -msgid "" -"Return an instance of a :class:`dict` subclass that has methods specialized " -"for rearranging dictionary order." -msgstr "" -"Renvoie une instance d'une sous-classe de :class:`dict` qui possède des " -"méthodes spécialisées pour redéfinir l'ordre du dictionnaire." - -#: library/collections.rst:1165 -msgid "" -"The :meth:`popitem` method for ordered dictionaries returns and removes a " -"(key, value) pair. The pairs are returned in :abbr:`LIFO (last-in, first-" -"out)` order if *last* is true or :abbr:`FIFO (first-in, first-out)` order if " -"false." -msgstr "" -"La méthode :meth:`popitem` pour les dictionnaires ordonnés retire et renvoie " -"une paire ``(clé, valeur)``. Les paires sont renvoyées comme pour une pile, " -"c'est-à-dire dernier entré, premier sorti (en anglais :abbr:`LIFO (last-in, " -"first-out)`) si *last* vaut ``True``. Si *last* vaut ``False``, alors les " -"paires sont renvoyées comme pour une file, c'est-à-dire premier entré, " -"premier sorti (en anglais :abbr:`FIFO (first-in, first-out)`)." - -#: library/collections.rst:1172 -#, fuzzy -msgid "" -"Move an existing *key* to either end of an ordered dictionary. The item is " -"moved to the right end if *last* is true (the default) or to the beginning " -"if *last* is false. Raises :exc:`KeyError` if the *key* does not exist:" -msgstr "" -"Déplace une clé *key* existante à l'une des deux extrémités du " -"dictionnaire : à droite si *last* vaut ``True`` (comportement par défaut) ou " -"à gauche sinon. Lève une exception :exc:`KeyError` si la clé *key* n'est pas " -"trouvée :" - -#: library/collections.rst:1189 -msgid "" -"In addition to the usual mapping methods, ordered dictionaries also support " -"reverse iteration using :func:`reversed`." -msgstr "" -"En plus des méthodes usuelles des dictionnaires, les dictionnaires ordonnés " -"gèrent l'itération en sens inverse grâce à :func:`reversed`." - -#: library/collections.rst:1194 -msgid "" -"Equality tests between :class:`OrderedDict` objects are order-sensitive and " -"are roughly equivalent to ``list(od1.items())==list(od2.items())``." -msgstr "" - -#: library/collections.rst:1197 -#, fuzzy -msgid "" -"Equality tests between :class:`OrderedDict` objects and " -"other :class:`~collections.abc.Mapping` objects are order-insensitive like " -"regular dictionaries. This allows :class:`OrderedDict` objects to be " -"substituted anywhere a regular dictionary is used." -msgstr "" -"Les tests d'égalité entre deux objets :class:`OrderedDict` sont sensibles à " -"l'ordre et sont implémentés comme ceci : ``list(od1.items() == " -"list(od2.items())``. Les tests d'égalité entre un objet :class:`OrderedDict` " -"et un objet :class:`~collections.abc.Mapping` ne sont pas sensibles à " -"l'ordre (comme les dictionnaires natifs). Cela permet substituer des " -"objets :class:`OrderedDict` partout où les dictionnaires natifs sont " -"utilisés." - -#: library/collections.rst:1202 -msgid "" -"The items, keys, and values :term:`views ` " -"of :class:`OrderedDict` now support reverse iteration using :func:`reversed`." -msgstr "" -"Les :term:`vues ` d'éléments, de clés et de valeurs " -"de :class:`OrderedDict` gèrent maintenant l'itération en sens inverse en " -"utilisant :func:`reversed`." - -#: library/collections.rst:1206 -#, fuzzy -msgid "" -"With the acceptance of :pep:`468`, order is retained for keyword arguments " -"passed to the :class:`OrderedDict` constructor and its :meth:`~dict.update` " -"method." -msgstr "" -"Suite à l'acceptation de la :pep:`468`, l'ordre des arguments nommés passés " -"au constructeur et à la méthode :meth:`update` de :class:`OrderedDict` est " -"conservé." - -#: library/collections.rst:1216 -msgid ":class:`OrderedDict` Examples and Recipes" -msgstr "Exemples et cas pratiques utilisant :class:`OrderDict`" - -#: library/collections.rst:1218 -msgid "" -"It is straightforward to create an ordered dictionary variant that remembers " -"the order the keys were *last* inserted. If a new entry overwrites an " -"existing entry, the original insertion position is changed and moved to the " -"end::" -msgstr "" -"Il est facile de créer une variante de dictionnaire ordonné qui retient " -"l'ordre dans lequel les clés ont été insérées *en dernier*. Si une nouvelle " -"entrée écrase une existante, la position d'insertion d'origine est modifiée " -"et déplacée à la fin ::" - -#: library/collections.rst:1230 -msgid "" -"An :class:`OrderedDict` would also be useful for implementing variants " -"of :func:`functools.lru_cache`:" -msgstr "" -"Un :class:`OrderedDict` peut aussi être utile pour implémenter des variantes " -"de :func:`functools.lru_cache` :" - -#: library/collections.rst:1329 -msgid ":class:`UserDict` objects" -msgstr "Objets :class:`UserDict`" - -#: library/collections.rst:1331 -msgid "" -"The class, :class:`UserDict` acts as a wrapper around dictionary objects. " -"The need for this class has been partially supplanted by the ability to " -"subclass directly from :class:`dict`; however, this class can be easier to " -"work with because the underlying dictionary is accessible as an attribute." -msgstr "" -"La classe :class:`UserDict` se comporte comme une surcouche autour des " -"dictionnaires. L'utilité de cette classe est réduite, car on peut maintenant " -"hériter directement de :class:`dict`. Cependant, il peut être plus facile de " -"travailler avec celle-ci, car le dictionnaire sous-jacent est accessible " -"comme attribut." - -#: library/collections.rst:1341 -#, fuzzy -msgid "" -"Class that simulates a dictionary. The instance's contents are kept in a " -"regular dictionary, which is accessible via the :attr:`data` attribute " -"of :class:`!UserDict` instances. If arguments are provided, they are used " -"to initialize :attr:`data`, like a regular dictionary." -msgstr "" -"Classe simulant un dictionnaire. Les instances de :class:`UserDict` " -"possèdent un attribut :attr:`data` où est stocké leur contenu sous forme de " -"dictionnaire natif. Si *initialdata* est spécifié, alors :attr:`data` est " -"initialisé avec son contenu. Remarquez qu'une référence vers *initialdata* " -"n'est pas conservée, ce qui permet de l'utiliser pour d'autres tâches." - -#: library/collections.rst:1346 -#, fuzzy -msgid "" -"In addition to supporting the methods and operations of mappings, :class:`!" -"UserDict` instances provide the following attribute:" -msgstr "" -"En plus de gérer les méthodes et opérations des dictionnaires, les instances " -"de :class:`UserDict` fournissent l'attribut suivant :" - -#: library/collections.rst:1351 -msgid "" -"A real dictionary used to store the contents of the :class:`UserDict` class." -msgstr "" -"Un dictionnaire natif où est stocké le contenu de la " -"classe :class:`UserDict`." - -#: library/collections.rst:1354 -msgid ":class:`!UserDict` instances also override the following method:" -msgstr "" - -#: library/collections.rst:1358 -msgid "" -"Remove and return a ``(key, value)`` pair from the wrapped dictionary. Pairs " -"are returned in the same order as ``data.popitem()``. (For the " -"default :meth:`dict.popitem`, this order is :abbr:`LIFO (last-in, first-" -"out)`.) If the dictionary is empty, raises a :exc:`KeyError`." -msgstr "" - -#: library/collections.rst:1364 -msgid ":class:`UserList` objects" -msgstr "Objets :class:`UserList`" - -#: library/collections.rst:1366 -msgid "" -"This class acts as a wrapper around list objects. It is a useful base class " -"for your own list-like classes which can inherit from them and override " -"existing methods or add new ones. In this way, one can add new behaviors to " -"lists." -msgstr "" -"Cette classe agit comme une surcouche autour des objets ``list``. C'est une " -"classe mère utile pour vos classes listes-compatibles qui peuvent en hériter " -"et surcharger les méthodes existantes ou en ajouter de nouvelles. Ainsi, on " -"peut ajouter de nouveaux comportements aux listes." - -#: library/collections.rst:1371 -msgid "" -"The need for this class has been partially supplanted by the ability to " -"subclass directly from :class:`list`; however, this class can be easier to " -"work with because the underlying list is accessible as an attribute." -msgstr "" -"L'utilité de cette classe a été partiellement réduite par la possibilité " -"d'hériter directement de :class:`list`. Cependant, il peut être plus facile " -"de travailler avec cette classe, car la liste sous-jacente est accessible " -"via un attribut." - -#: library/collections.rst:1377 -msgid "" -"Class that simulates a list. The instance's contents are kept in a regular " -"list, which is accessible via the :attr:`data` attribute " -"of :class:`UserList` instances. The instance's contents are initially set " -"to a copy of *list*, defaulting to the empty list ``[]``. *list* can be any " -"iterable, for example a real Python list or a :class:`UserList` object." -msgstr "" -"Classe simulant une liste. Les instances de :class:`UserList` possèdent un " -"attribut :attr:`UserList` où est stocké leur contenu sous forme de liste " -"native. Il est initialement une copie de *list*, ou ``[]`` par défaut. " -"*list* peut être un itérable, par exemple une liste native ou un " -"objet :class:`UserList`." - -#: library/collections.rst:1383 -msgid "" -"In addition to supporting the methods and operations of mutable " -"sequences, :class:`UserList` instances provide the following attribute:" -msgstr "" -"En plus de gérer les méthodes et opérations des séquences mutables, les " -"instances de :class:`UserList` possèdent l'attribut suivant :" - -#: library/collections.rst:1388 -msgid "" -"A real :class:`list` object used to store the contents of " -"the :class:`UserList` class." -msgstr "" -"Un objet :class:`list` natif utilisé pour stocker le contenu de la " -"classe :class:`UserList`." - -#: library/collections.rst:1391 -msgid "" -"**Subclassing requirements:** Subclasses of :class:`UserList` are expected " -"to offer a constructor which can be called with either no arguments or one " -"argument. List operations which return a new sequence attempt to create an " -"instance of the actual implementation class. To do so, it assumes that the " -"constructor can be called with a single parameter, which is a sequence " -"object used as a data source." -msgstr "" -"**Prérequis pour l'héritage :** Les sous-classes de :class:`UserList` " -"doivent implémenter un constructeur qui peut être appelé avec zéro ou un " -"argument. Les opérations sur les listes qui renvoient une nouvelle séquence " -"essayent de créer une instance de la classe courante. C'est pour cela que le " -"constructeur doit pouvoir être appelé avec un unique paramètre, un objet " -"séquence utilisé comme source de données." - -#: library/collections.rst:1398 -msgid "" -"If a derived class does not wish to comply with this requirement, all of the " -"special methods supported by this class will need to be overridden; please " -"consult the sources for information about the methods which need to be " -"provided in that case." -msgstr "" -"Si une classe fille ne remplit pas cette condition, toutes les méthodes " -"spéciales gérées par cette classe devront être implémentées à nouveau. Merci " -"de consulter les sources pour obtenir des informations sur les méthodes qui " -"doivent être fournies dans ce cas." - -#: library/collections.rst:1404 -msgid ":class:`UserString` objects" -msgstr "Objets :class:`UserString`" - -#: library/collections.rst:1406 -msgid "" -"The class, :class:`UserString` acts as a wrapper around string objects. The " -"need for this class has been partially supplanted by the ability to subclass " -"directly from :class:`str`; however, this class can be easier to work with " -"because the underlying string is accessible as an attribute." -msgstr "" -"La classe :class:`UserString` agit comme une surcouche autour des objets " -"``str``. L'utilité de cette classe a été partiellement réduite par la " -"possibilité d'hériter directement de :class:`str`. Cependant, il peut être " -"plus facile de travailler avec cette classe, car la chaîne de caractère sous-" -"jacente est accessible via un attribut." - -#: library/collections.rst:1414 -msgid "" -"Class that simulates a string object. The instance's content is kept in a " -"regular string object, which is accessible via the :attr:`data` attribute " -"of :class:`UserString` instances. The instance's contents are initially set " -"to a copy of *seq*. The *seq* argument can be any object which can be " -"converted into a string using the built-in :func:`str` function." -msgstr "" -"Classe simulant une chaîne de caractères. Les instances " -"de :class:`UserString` possèdent un attribut :attr:`data` où est stocké leur " -"contenu sous forme de chaîne de caractères native. Le contenu de l'instance " -"est initialement une copie de *seq*, qui peut être n'importe quel objet " -"convertible en chaîne de caractère avec la fonction native :func:`str`." - -#: library/collections.rst:1421 -msgid "" -"In addition to supporting the methods and operations of " -"strings, :class:`UserString` instances provide the following attribute:" -msgstr "" -"En plus de gérer les méthodes et opérations sur les chaînes de caractères, " -"les instances de :class:`UserString` possèdent l'attribut suivant :" - -#: library/collections.rst:1426 -msgid "" -"A real :class:`str` object used to store the contents of " -"the :class:`UserString` class." -msgstr "" -"Un objet :class:`str` natif utilisé pour stocker le contenu de la " -"classe :class:`UserString`." - -#: library/collections.rst:1429 -msgid "" -"New methods ``__getnewargs__``, ``__rmod__``, ``casefold``, ``format_map``, " -"``isprintable``, and ``maketrans``." -msgstr "" -"Nouvelles méthodes ``__getnewargs__``, ``__rmod__``, ``casefold``, " -"``format_map``, ``isprintable`` et ``maketrans``." - -#~ msgid "" -#~ "Moved :ref:`collections-abstract-base-classes` to " -#~ "the :mod:`collections.abc` module. For backwards compatibility, they " -#~ "continue to be visible in this module through Python 3.9." -#~ msgstr "" -#~ "Les :ref:`collections-abstract-base-classes` ont été déplacées vers le " -#~ "module :mod:`collections.abc`. Pour assurer la rétrocompatibilité, elles " -#~ "sont toujours disponibles dans ce module dans Python 3.9." diff --git a/library/colorsys.po b/library/colorsys.po deleted file mode 100644 index 92bb00751d..0000000000 --- a/library/colorsys.po +++ /dev/null @@ -1,99 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2020-09-25 17:03-0600\n" -"Last-Translator: Yannick Gingras \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3\n" - -#: library/colorsys.rst:2 -#, fuzzy -msgid ":mod:`!colorsys` --- Conversions between color systems" -msgstr ":mod:`colorsys` — Conversions entre les systèmes de couleurs" - -#: library/colorsys.rst:7 -msgid "**Source code:** :source:`Lib/colorsys.py`" -msgstr "**Code source :** :source:`Lib/colorsys.py`" - -#: library/colorsys.rst:11 -#, fuzzy -msgid "" -"The :mod:`!colorsys` module defines bidirectional conversions of color " -"values between colors expressed in the RGB (Red Green Blue) color space used " -"in computer monitors and three other coordinate systems: YIQ, HLS (Hue " -"Lightness Saturation) and HSV (Hue Saturation Value). Coordinates in all of " -"these color spaces are floating-point values. In the YIQ space, the Y " -"coordinate is between 0 and 1, but the I and Q coordinates can be positive " -"or negative. In all other spaces, the coordinates are all between 0 and 1." -msgstr "" -"Le module :mod:`colorsys` définit les conversions bidirectionnelles des " -"valeurs de couleur entre les couleurs exprimées dans l'espace colorimétrique " -"RVB (Rouge Vert Bleu) utilisé par les écrans d'ordinateur et trois autres " -"systèmes de coordonnées : YIQ, HLS (Hue Lightness Saturation) et HSV (Hue " -"Saturation Value). Les coordonnées dans tous ces espaces colorimétriques " -"sont des valeurs en virgule flottante. Dans l'espace YIQ, la coordonnée Y " -"est comprise entre 0 et 1, mais les coordonnées I et Q peuvent être " -"positives ou négatives. Dans tous les autres espaces, les coordonnées sont " -"toutes comprises entre 0 et 1." - -#: library/colorsys.rst:21 -msgid "" -"More information about color spaces can be found at https://poynton.ca/" -"ColorFAQ.html and https://www.cambridgeincolour.com/tutorials/color-" -"spaces.htm." -msgstr "" -"Consultez https://poynton.ca/ColorFAQ.html et https://" -"www.cambridgeincolour.com/tutorials/color-spaces.htm pour plus " -"d'informations concernant les espaces colorimétriques." - -#: library/colorsys.rst:25 -#, fuzzy -msgid "The :mod:`!colorsys` module defines the following functions:" -msgstr "Le module :mod:`colorsys` définit les fonctions suivantes :" - -#: library/colorsys.rst:30 -msgid "Convert the color from RGB coordinates to YIQ coordinates." -msgstr "" -"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées YIQ." - -#: library/colorsys.rst:35 -msgid "Convert the color from YIQ coordinates to RGB coordinates." -msgstr "" -"Convertit la couleur des coordonnées YIQ vers les coordonnées RGB (RVB)." - -#: library/colorsys.rst:40 -msgid "Convert the color from RGB coordinates to HLS coordinates." -msgstr "" -"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées HLS " -"(TSV)." - -#: library/colorsys.rst:45 -msgid "Convert the color from HLS coordinates to RGB coordinates." -msgstr "" -"Convertit la couleur des coordonnées HLS (TSV) vers les coordonnées RGB " -"(RVB)." - -#: library/colorsys.rst:50 -msgid "Convert the color from RGB coordinates to HSV coordinates." -msgstr "" -"Convertit la couleur des coordonnées RGB (RVB) vers les coordonnées HSV " -"(TSV)." - -#: library/colorsys.rst:55 -msgid "Convert the color from HSV coordinates to RGB coordinates." -msgstr "" -"Convertit la couleur des coordonnées HSV (TSV) vers les coordonnées RGB " -"(RVB)." - -#: library/colorsys.rst:57 -msgid "Example::" -msgstr "Exemple ::" diff --git a/library/compileall.po b/library/compileall.po deleted file mode 100644 index 112e0a5867..0000000000 --- a/library/compileall.po +++ /dev/null @@ -1,565 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2022-10-18 16:06+0200\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/compileall.rst:2 -#, fuzzy -msgid ":mod:`!compileall` --- Byte-compile Python libraries" -msgstr "" -":mod:`compileall` — Génération du code intermédiaire des bibliothèques Python" - -#: library/compileall.rst:7 -msgid "**Source code:** :source:`Lib/compileall.py`" -msgstr "**Code source :** :source:`Lib/compileall.py`" - -#: library/compileall.rst:11 -msgid "" -"This module provides some utility functions to support installing Python " -"libraries. These functions compile Python source files in a directory tree. " -"This module can be used to create the cached byte-code files at library " -"installation time, which makes them available for use even by users who " -"don't have write permission to the library directories." -msgstr "" -"Ce module contient des fonctions qui facilitent l'installation de " -"bibliothèques Python. Elles compilent, sous forme de code intermédiaire " -"(*bytecode*), les fichiers source situés dans un dossier de votre choix. Ce " -"module est particulièrement utile pour générer les fichiers de code " -"intermédiaire lors de l'installation d'une bibliothèque, les rendant " -"disponibles même pour les utilisateurs qui n'ont pas les privilèges " -"d'écriture dans l'emplacement d'installation." - -#: includes/wasm-notavail.rst:3 -msgid "Availability" -msgstr "Disponibilité" - -#: includes/wasm-notavail.rst:5 -msgid "" -"This module does not work or is not available on WebAssembly. See :ref:`wasm-" -"availability` for more information." -msgstr "" - -#: library/compileall.rst:22 -msgid "Command-line use" -msgstr "Utilisation en ligne de commande" - -#: library/compileall.rst:24 -msgid "" -"This module can work as a script (using :program:`python -m compileall`) to " -"compile Python sources." -msgstr "" -"On peut se servir de ce module comme d'un script (avec :program:`python -m " -"compileall`) pour compiler les fichiers source Python." - -#: library/compileall.rst:32 -#, fuzzy -msgid "" -"Positional arguments are files to compile or directories that contain source " -"files, traversed recursively. If no argument is given, behave as if the " -"command line was :samp:`-l {}`." -msgstr "" -"Les arguments positionnels sont les fichiers à compiler. Ils peuvent aussi " -"être des dossiers, qui sont alors parcourus récursivement pour compiler tous " -"les fichiers de code :file:`.py` qu'ils contiennent. Lorsque le script ne " -"reçoit aucun argument, il fait comme s'il avait été appelé avec ``-l ``." - -#: library/compileall.rst:38 -msgid "" -"Do not recurse into subdirectories, only compile source code files directly " -"contained in the named or implied directories." -msgstr "" -"Compiler uniquement les fichiers situés directement dans les dossiers passés " -"en argument ou implicites, sans descendre récursivement dans les sous-" -"dossiers." - -#: library/compileall.rst:43 -msgid "Force rebuild even if timestamps are up-to-date." -msgstr "Forcer la recompilation même si les horodatages sont à jour." - -#: library/compileall.rst:47 -msgid "" -"Do not print the list of files compiled. If passed once, error messages will " -"still be printed. If passed twice (``-qq``), all output is suppressed." -msgstr "" -"Supprimer l'affichage des noms des fichiers compilés.Si cette option est " -"donnée une seule fois, les erreurs sont affichées malgré tout. Vous pouvez " -"les supprimer en passant l'option deux fois (c'est-à-dire avec ``-qq``)." - -#: library/compileall.rst:52 -msgid "" -"Directory prepended to the path to each file being compiled. This will " -"appear in compilation time tracebacks, and is also compiled in to the byte-" -"code file, where it will be used in tracebacks and other messages in cases " -"where the source file does not exist at the time the byte-code file is " -"executed." -msgstr "" -"Ce nom de dossier est ajouté en tête du chemin de chaque fichier compilé. Il " -"aura une influence sur les traces d'appels pour les erreurs levées lors de " -"la compilation, et sera reflété dans les fichiers de code intermédiaire, " -"pour utilisation dans les traces d'appels et autres messages si le fichier " -"source n'existe pas au moment de l'exécution." - -#: library/compileall.rst:60 -#, fuzzy -msgid "" -"Remove the given prefix from paths recorded in the ``.pyc`` files. Paths are " -"made relative to the prefix." -msgstr "" -"Retire (``-s``) ou ajoute (``-p``) le préfixe aux chemins stockés dans les " -"fichiers ``.pyc``. Cette option ne peut pas être combinée avec ``-d``." - -#: library/compileall.rst:63 -msgid "This option can be used with ``-p`` but not with ``-d``." -msgstr "" - -#: library/compileall.rst:67 -#, fuzzy -msgid "" -"Prepend the given prefix to paths recorded in the ``.pyc`` files. Use ``-p /" -"`` to make the paths absolute." -msgstr "" -"Retire (``-s``) ou ajoute (``-p``) le préfixe aux chemins stockés dans les " -"fichiers ``.pyc``. Cette option ne peut pas être combinée avec ``-d``." - -#: library/compileall.rst:70 -msgid "This option can be used with ``-s`` but not with ``-d``." -msgstr "" - -#: library/compileall.rst:74 -msgid "" -"regex is used to search the full path to each file considered for " -"compilation, and if the regex produces a match, the file is skipped." -msgstr "" -"Exclut tous les fichiers dont les noms correspondent à l'expression " -"régulière *regex*." - -#: library/compileall.rst:79 -msgid "" -"Read the file ``list`` and add each line that it contains to the list of " -"files and directories to compile. If ``list`` is ``-``, read lines from " -"``stdin``." -msgstr "" -"Ajoute chaque ligne du fichier *list* aux fichiers et dossiers à compiler. " -"*list* peut être ``-``, auquel cas le script lit l'entrée standard." - -#: library/compileall.rst:85 -msgid "" -"Write the byte-code files to their legacy locations and names, which may " -"overwrite byte-code files created by another version of Python. The default " -"is to write files to their :pep:`3147` locations and names, which allows " -"byte-code files from multiple versions of Python to coexist." -msgstr "" -"Utilise l'ancienne manière de nommer et placer les fichiers de code " -"intermédiaire, en écrasant éventuellement ceux générés par une autre version " -"de Python. Par défaut, les règles décrites dans la :pep:`3147` s'appliquent. " -"Elles permettent à différentes versions de l'interpréteur Python de " -"coexister en conservant chacune ses propres fichiers ``.pyc``." - -#: library/compileall.rst:92 -msgid "" -"Control the maximum recursion level for subdirectories. If this is given, " -"then ``-l`` option will not be taken into account. :program:`python -m " -"compileall -r 0` is equivalent to :program:`python -m compileall " -" -l`." -msgstr "" -"Règle le niveau de récursion maximal pour le parcours des sous-dossiers. " -"Lorsque cette option est fournie, ``-l`` est ignorée. :program:`python -m " -"compileall -r 0` revient au même que :program:`python -m " -"compileall -l`." - -#: library/compileall.rst:99 -#, fuzzy -msgid "" -"Use *N* workers to compile the files within the given directory. If ``0`` is " -"used, then the result of :func:`os.process_cpu_count` will be used." -msgstr "" -"Effectue la compilation avec *N* processus parallèles. Si *N* vaut 0, autant " -"de processus sont créés que la machine dispose de processeurs (résultat " -"de :func:`os.cpu_count()`)." - -#: library/compileall.rst:105 -msgid "" -"Control how the generated byte-code files are invalidated at runtime. The " -"``timestamp`` value, means that ``.pyc`` files with the source timestamp and " -"size embedded will be generated. The ``checked-hash`` and ``unchecked-hash`` " -"values cause hash-based pycs to be generated. Hash-based pycs embed a hash " -"of the source file contents rather than a timestamp. See :ref:`pyc-" -"invalidation` for more information on how Python validates bytecode cache " -"files at runtime. The default is ``timestamp`` if " -"the :envvar:`SOURCE_DATE_EPOCH` environment variable is not set, and " -"``checked-hash`` if the ``SOURCE_DATE_EPOCH`` environment variable is set." -msgstr "" -"Définit la manière dont les fichiers de code intermédiaire seront invalidés " -"au moment de l'exécution. Avec ``timestamp``, les fichiers ``.pyc`` générés " -"comportent l'horodatage de la source et sa taille. Avec ``checked-hash`` ou " -"``unchecked-hash``, ce seront des pyc utilisant le hachage, qui contiennent " -"une empreinte du code source plutôt qu'un horodatage. Voir :ref:`pyc-" -"invalidation` pour plus d'informations sur la manière dont Python valide les " -"fichiers de code intermédiaire conservés en cache lors de l'exécution. La " -"valeur par défaut est ``timestamp``. Cependant, si la variable " -"d'environnement :envvar:`SOURCE_DATE_EPOCH` a été réglée, elle devient " -"``checked-hash``." - -#: library/compileall.rst:118 -msgid "" -"Compile with the given optimization level. May be used multiple times to " -"compile for multiple levels at a time (for example, ``compileall -o 1 -o " -"2``)." -msgstr "" -"Compile avec un certain niveau d'optimisation. Cette option peut être passée " -"plusieurs fois afin de compiler pour plusieurs niveaux d'un seul coup (par " -"exemple, ``compileall -o 1 -o 2``)." - -#: library/compileall.rst:124 -msgid "Ignore symlinks pointing outside the given directory." -msgstr "Ignore les liens symboliques qui redirigent en dehors du dossier." - -#: library/compileall.rst:128 -msgid "" -"If two ``.pyc`` files with different optimization level have the same " -"content, use hard links to consolidate duplicate files." -msgstr "" -"Si deux fichiers ``.pyc`` compilés avec des niveaux d'optimisation " -"différents ont finalement le même contenu, emploie des liens physiques pour " -"les fusionner." - -#: library/compileall.rst:131 -msgid "Added the ``-i``, ``-b`` and ``-h`` options." -msgstr "ajout des options ``-i``, ``-b`` et ``-h``." - -#: library/compileall.rst:134 -msgid "" -"Added the ``-j``, ``-r``, and ``-qq`` options. ``-q`` option was changed " -"to a multilevel value. ``-b`` will always produce a byte-code file ending " -"in ``.pyc``, never ``.pyo``." -msgstr "" -"ajout des options ``-j``, ``-r`` et ``-qq`` (l'option ``-q`` peut donc " -"prendre plusieurs niveaux). ``-b`` produit toujours un fichier de code " -"intermédiaire portant l'extension ``.pyc``, et jamais ``.pyo``." - -#: library/compileall.rst:139 -msgid "Added the ``--invalidation-mode`` option." -msgstr "ajout de l'option ``--invalidation-mode``." - -#: library/compileall.rst:142 -msgid "" -"Added the ``-s``, ``-p``, ``-e`` and ``--hardlink-dupes`` options. Raised " -"the default recursion limit from 10 to :py:func:`sys.getrecursionlimit()`. " -"Added the possibility to specify the ``-o`` option multiple times." -msgstr "" -"ajout des options ``-s``, ``-p``, ``-e`` et ``--hardlink-dupes``. " -"Rehaussement de la limite de récursion par défaut " -"à :py:func:`sys.getrecursionlimit()` au lieu de 10 précédemment. L'option ``-" -"o`` peut être passée plusieurs fois." - -#: library/compileall.rst:149 -msgid "" -"There is no command-line option to control the optimization level used by " -"the :func:`compile` function, because the Python interpreter itself already " -"provides the option: :program:`python -O -m compileall`." -msgstr "" -"Il n'y a pas d'option en ligne de commande pour contrôler le niveau " -"d'optimisation utilisé par la fonction :func:`compile`. Il suffit en effet " -"d'utiliser l'option ``-O`` de l'interpréteur Python lui-" -"même : :program:`python -O -m compileall`." - -#: library/compileall.rst:153 -#, fuzzy -msgid "" -"Similarly, the :func:`compile` function respects " -"the :data:`sys.pycache_prefix` setting. The generated bytecode cache will " -"only be useful if :func:`compile` is run with the " -"same :data:`sys.pycache_prefix` (if any) that will be used at runtime." -msgstr "" -"De même, la fonction :func:`compile` utilise le " -"réglage :attr:`sys.pycache_prefix`. Le code intermédiaire généré ne pourra " -"servir que dans la mesure où :func:`compile` est exécutée avec la même " -"valeur de :attr:`sys.pycache_prefix` (si tant est qu'elle soit définie) que " -"celle en vigueur au moment d'exécuter le programme." - -#: library/compileall.rst:159 -msgid "Public functions" -msgstr "Fonctions publiques" - -#: library/compileall.rst:163 -msgid "" -"Recursively descend the directory tree named by *dir*, compiling " -"all :file:`.py` files along the way. Return a true value if all the files " -"compiled successfully, and a false value otherwise." -msgstr "" -"Parcourt récursivement le dossier *dir*, en compilant tous les " -"fichiers :file:`.py`. Renvoie une valeur vraie si tous les fichiers ont été " -"compilés sans erreur, et une valeur fausse dans le cas contraire." - -#: library/compileall.rst:167 -msgid "" -"The *maxlevels* parameter is used to limit the depth of the recursion; it " -"defaults to ``sys.getrecursionlimit()``." -msgstr "" -"Le paramètre *maxlevels* permet de limiter la profondeur de récursion. Sa " -"valeur par défaut est celle de ``sys.getrecursionlimit()``." - -#: library/compileall.rst:170 -msgid "" -"If *ddir* is given, it is prepended to the path to each file being compiled " -"for use in compilation time tracebacks, and is also compiled in to the byte-" -"code file, where it will be used in tracebacks and other messages in cases " -"where the source file does not exist at the time the byte-code file is " -"executed." -msgstr "" -"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " -"compilé, ce qui modifie l'affichage des traces d'appels pour les erreurs qui " -"seraient levées lors de la compilation. De plus, il se retrouve dans les " -"fichiers de code intermédiaire, pour utilisation dans les traces et autres " -"messages si le fichier source n'existe pas au moment de l'exécution." - -#: library/compileall.rst:176 -msgid "" -"If *force* is true, modules are re-compiled even if the timestamps are up to " -"date." -msgstr "" -"Si *force* est vrai, les modules sont recompilés même si leurs horodatages " -"sont à jour." - -#: library/compileall.rst:179 -msgid "" -"If *rx* is given, its ``search`` method is called on the complete path to " -"each file considered for compilation, and if it returns a true value, the " -"file is skipped. This can be used to exclude files matching a regular " -"expression, given as a :ref:`re.Pattern ` object." -msgstr "" -"Si *rx* est donné, sa méthode ``search`` est appelée sur le chemin complet " -"de chaque fichier source, et si elle renvoie une valeur vraie, le fichier " -"est sauté. *rx* sera habituellement une expression régulière " -"(objet :ref:`re.Pattern `)." - -#: library/compileall.rst:261 -msgid "" -"If *quiet* is ``False`` or ``0`` (the default), the filenames and other " -"information are printed to standard out. Set to ``1``, only errors are " -"printed. Set to ``2``, all output is suppressed." -msgstr "" -"Si *quiet* est ``False`` ou bien ``0`` (la valeur par défaut), les noms de " -"fichiers et d'autres informations sont affichés sur la sortie standard. Avec " -"``1``, seules les erreurs sont affichées. Avec ``2``, aucune sortie n'est " -"émise." - -#: library/compileall.rst:265 -msgid "" -"If *legacy* is true, byte-code files are written to their legacy locations " -"and names, which may overwrite byte-code files created by another version of " -"Python. The default is to write files to their :pep:`3147` locations and " -"names, which allows byte-code files from multiple versions of Python to " -"coexist." -msgstr "" -"Si *legacy* est vrai, les fichiers de code intermédiaire sont nommés et " -"placés selon l'ancienne méthode, en écrasant éventuellement ceux générés par " -"une autre version de Python. Par défaut, les règles décrites dans " -"la :pep:`3147` s'appliquent. Elles permettent à différentes versions de " -"l'interpréteur Python de coexister en conservant chacune ses propres " -"fichiers ``.pyc``." - -#: library/compileall.rst:271 -msgid "" -"*optimize* specifies the optimization level for the compiler. It is passed " -"to the built-in :func:`compile` function. Accepts also a sequence of " -"optimization levels which lead to multiple compilations of one :file:`.py` " -"file in one call." -msgstr "" -"*optimize* définit le niveau d'optimisation qu'applique le compilateur. Cet " -"argument est passé directement à la fonction native :func:`compile`. Il peut " -"également être fourni sous la forme d'une séquence de niveaux " -"d'optimisation, ce qui permet de compiler chaque fichier :file:`.py` " -"plusieurs fois en appliquant divers niveaux d'optimisation." - -#: library/compileall.rst:198 -msgid "" -"The argument *workers* specifies how many workers are used to compile files " -"in parallel. The default is to not use multiple workers. If the platform " -"can't use multiple workers and *workers* argument is given, then sequential " -"compilation will be used as a fallback. If *workers* is 0, the number of " -"cores in the system is used. If *workers* is lower than ``0``, " -"a :exc:`ValueError` will be raised." -msgstr "" -"*workers* est le nombre de tâches lancées en parallèle pour la compilation. " -"Par défaut, les fichiers sont compilés séquentiellement. Cette même " -"stratégie s'applique dans tous les cas lorsque le parallélisme n'est pas " -"possible sur la plateforme d'exécution. Si *workers* vaut 0, autant de " -"tâches sont lancées que le système comporte de cœurs. Si *workers* est " -"strictement négatif, une exception de type :exc:`ValueError` est levée." - -#: library/compileall.rst:275 -msgid "" -"*invalidation_mode* should be a member of " -"the :class:`py_compile.PycInvalidationMode` enum and controls how the " -"generated pycs are invalidated at runtime." -msgstr "" -"*invalidation_mode* doit être un membre de " -"l'énumération :class:`py_compile.PycInvalidationMode` et détermine la " -"manière dont les fichiers :file:`.pyc` sont invalidés lorsque l'interpréteur " -"tente de les utiliser." - -#: library/compileall.rst:279 -#, fuzzy -msgid "" -"The *stripdir*, *prependdir* and *limit_sl_dest* arguments correspond to the " -"``-s``, ``-p`` and ``-e`` options described above. They may be specified as " -"``str`` or :py:class:`os.PathLike`." -msgstr "" -"Les arguments *stripdir*, *prependdir* et *limit_sl_dest* correspondent aux " -"options ``-s``, ``-p`` et ``-e`` décrites plus haut. Ils peuvent être de " -"type ``str``, ``bytes`` ou :py:class:`os.PathLike`." - -#: library/compileall.rst:283 -msgid "" -"If *hardlink_dupes* is true and two ``.pyc`` files with different " -"optimization level have the same content, use hard links to consolidate " -"duplicate files." -msgstr "" -"Un argument *hardlink_dupes* vrai correspond à l'utilisation de l'option ``--" -"hardlink-dupes``." - -#: library/compileall.rst:314 -msgid "Added the *legacy* and *optimize* parameter." -msgstr "ajout des paramètres *legacy* et *optimize*." - -#: library/compileall.rst:219 -msgid "Added the *workers* parameter." -msgstr "ajout du paramètre *workers*." - -#: library/compileall.rst:288 library/compileall.rst:317 -msgid "*quiet* parameter was changed to a multilevel value." -msgstr "le paramètre *quiet* peut prendre plusieurs niveaux." - -#: library/compileall.rst:291 library/compileall.rst:320 -msgid "" -"The *legacy* parameter only writes out ``.pyc`` files, not ``.pyo`` files no " -"matter what the value of *optimize* is." -msgstr "" -"Lorsque le paramètre *legacy* est vrai, des fichiers ``.pyc``, et jamais " -"``.pyo``, sont générés, quel que soit le niveau d'optimisation." - -#: library/compileall.rst:229 -msgid "Accepts a :term:`path-like object`." -msgstr "accepte un :term:`objet simili-chemin `." - -#: library/compileall.rst:295 library/compileall.rst:324 -msgid "The *invalidation_mode* parameter was added." -msgstr "ajout du paramètre *invalidation_mode*." - -#: library/compileall.rst:298 library/compileall.rst:327 -#, fuzzy -msgid "" -"The *invalidation_mode* parameter's default value is updated to ``None``." -msgstr "" -"La valeur par défaut du paramètre *invalidation_mode* est changée à ``None``." - -#: library/compileall.rst:238 -msgid "Setting *workers* to 0 now chooses the optimal number of cores." -msgstr "" -"Un nombre de processus adapté à la machine est choisi lorsque *workers* vaut " -"0." - -#: library/compileall.rst:241 -msgid "" -"Added *stripdir*, *prependdir*, *limit_sl_dest* and *hardlink_dupes* " -"arguments. Default value of *maxlevels* was changed from ``10`` to " -"``sys.getrecursionlimit()``" -msgstr "" -"ajout des arguments *stripdir*, *prependdir*, *limit_sl_dest* et " -"*hardlink_dupes*. La valeur par défaut de *maxlevels* a été changée pour " -"``sys.getrecursionlimit()`` (elle était de 10 auparavant)." - -#: library/compileall.rst:247 -msgid "" -"Compile the file with path *fullname*. Return a true value if the file " -"compiled successfully, and a false value otherwise." -msgstr "" -"Compile le fichier dont le chemin est donné par *fullname*. Renvoie une " -"valeur vraie si et seulement si le fichier est compilé sans erreur." - -#: library/compileall.rst:250 -msgid "" -"If *ddir* is given, it is prepended to the path to the file being compiled " -"for use in compilation time tracebacks, and is also compiled in to the byte-" -"code file, where it will be used in tracebacks and other messages in cases " -"where the source file does not exist at the time the byte-code file is " -"executed." -msgstr "" -"Si *ddir* est fourni, il est ajouté en tête du chemin de chaque fichier " -"compilé, ce qui modifie l'affichage des traces pour les erreurs qui seraient " -"levées lors de la compilation. De plus, il se retrouve dans les fichiers de " -"code intermédiaire, pour utilisation dans les traces et autres messages si " -"le fichier source n'existe pas au moment de l'exécution." - -#: library/compileall.rst:256 -msgid "" -"If *rx* is given, its ``search`` method is passed the full path name to the " -"file being compiled, and if it returns a true value, the file is not " -"compiled and ``True`` is returned. This can be used to exclude files " -"matching a regular expression, given as a :ref:`re.Pattern ` " -"object." -msgstr "" -"Si *rx* est donné, sa méthode ``search`` est appelée sur le chemin complet " -"de chaque fichier source, et si elle renvoie une valeur vraie, le fichier " -"est sauté. *rx* sera habituellement une expression régulière " -"(objet :ref:`re.Pattern `)." - -#: library/compileall.rst:301 -msgid "" -"Added *stripdir*, *prependdir*, *limit_sl_dest* and *hardlink_dupes* " -"arguments." -msgstr "" -"Ajout des arguments *stripdir*, *prependdir*, *limit_sl_dest* et " -"*hardlink_dupes*." - -#: library/compileall.rst:306 -msgid "" -"Byte-compile all the :file:`.py` files found along ``sys.path``. Return a " -"true value if all the files compiled successfully, and a false value " -"otherwise." -msgstr "" -"Compile tous les fichiers :file:`.py` contenus dans les dossiers de " -"``sys.path``. Renvoie une valeur vraie s'ils ont tous été compilés sans " -"erreur, et une valeur fausse dans le cas contraire." - -#: library/compileall.rst:309 -msgid "" -"If *skip_curdir* is true (the default), the current directory is not " -"included in the search. All other parameters are passed to " -"the :func:`compile_dir` function. Note that unlike the other compile " -"functions, ``maxlevels`` defaults to ``0``." -msgstr "" -"Si *skip_curdir* est vrai (c'est le cas par défaut), le dossier courant est " -"exclu de la recherche. Les autres paramètres sont passés " -"à :func:`compile_dir`. Notez que contrairement aux autres fonctions de ce " -"module, la valeur par défaut de ``maxlevels`` est ``0``." - -#: library/compileall.rst:330 -msgid "" -"To force a recompile of all the :file:`.py` files in the :file:`Lib/` " -"subdirectory and all its subdirectories::" -msgstr "" -"Pour forcer la recompilation de tous les fichiers :file:`.py` dans le " -"dossier :file:`Lib/` et tous ses sous-dossiers ::" - -#: library/compileall.rst:347 -msgid "Module :mod:`py_compile`" -msgstr "Module :mod:`py_compile`" - -#: library/compileall.rst:348 -msgid "Byte-compile a single source file." -msgstr "Compiler un fichier source unique." diff --git a/library/compression.po b/library/compression.po deleted file mode 100644 index 3af216abde..0000000000 --- a/library/compression.po +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/compression.rst:2 -msgid "The :mod:`!compression` package" -msgstr "" - -#: library/compression.rst:8 -msgid "" -"The :mod:`!compression` package contains the canonical compression modules " -"containing interfaces to several different compression algorithms. Some of " -"these modules have historically been available as separate modules; those " -"will continue to be available under their original names for compatibility " -"reasons, and will not be removed without a deprecation cycle. The use of " -"modules in :mod:`!compression` is encouraged where practical." -msgstr "" - -#: library/compression.rst:15 -msgid ":mod:`!compression.bz2` -- Re-exports :mod:`bz2`" -msgstr "" - -#: library/compression.rst:16 -msgid ":mod:`!compression.gzip` -- Re-exports :mod:`gzip`" -msgstr "" - -#: library/compression.rst:17 -msgid ":mod:`!compression.lzma` -- Re-exports :mod:`lzma`" -msgstr "" - -#: library/compression.rst:18 -msgid ":mod:`!compression.zlib` -- Re-exports :mod:`zlib`" -msgstr "" - -#: library/compression.rst:19 -msgid "" -":mod:`compression.zstd` -- Wrapper for the Zstandard compression library" -msgstr "" diff --git a/library/compression.zstd.po b/library/compression.zstd.po deleted file mode 100644 index ae096e3194..0000000000 --- a/library/compression.zstd.po +++ /dev/null @@ -1,1085 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/compression.zstd.rst:2 -msgid "" -":mod:`!compression.zstd` --- Compression compatible with the Zstandard format" -msgstr "" - -#: library/compression.zstd.rst:10 -msgid "**Source code:** :source:`Lib/compression/zstd/__init__.py`" -msgstr "" - -#: library/compression.zstd.rst:14 -msgid "" -"This module provides classes and functions for compressing and decompressing " -"data using the Zstandard (or *zstd*) compression algorithm. The `zstd manual " -"`__ describes " -"Zstandard as \"a fast lossless compression algorithm, targeting real-time " -"compression scenarios at zlib-level and better compression ratios.\" Also " -"included is a file interface that supports reading and writing the contents " -"of ``.zst`` files created by the :program:`zstd` utility, as well as raw " -"zstd compressed streams." -msgstr "" - -#: library/compression.zstd.rst:23 -msgid "The :mod:`!compression.zstd` module contains:" -msgstr "" - -#: library/compression.zstd.rst:25 -msgid "" -"The :func:`.open` function and :class:`ZstdFile` class for reading and " -"writing compressed files." -msgstr "" - -#: library/compression.zstd.rst:27 -msgid "" -"The :class:`ZstdCompressor` and :class:`ZstdDecompressor` classes for " -"incremental (de)compression." -msgstr "" - -#: library/compression.zstd.rst:29 -msgid "" -"The :func:`compress` and :func:`decompress` functions for one-shot " -"(de)compression." -msgstr "" -"Les fonctions :func:`compress` et :func:`decompress` pour la (dé)compression " -"en une seule fois." - -#: library/compression.zstd.rst:31 -msgid "" -"The :func:`train_dict` and :func:`finalize_dict` functions and " -"the :class:`ZstdDict` class to train and manage Zstandard dictionaries." -msgstr "" - -#: library/compression.zstd.rst:33 -msgid "" -"The :class:`CompressionParameter`, :class:`DecompressionParameter`, " -"and :class:`Strategy` classes for setting advanced (de)compression " -"parameters." -msgstr "" - -#: includes/optional-module.rst:1 -msgid "" -"This is an :term:`optional module`. If it is missing from your copy of " -"CPython, look for documentation from your distributor (that is, whoever " -"provided Python to you). If you are the distributor, see :ref:`optional-" -"module-requirements`." -msgstr "" - -#: library/compression.zstd.rst:40 -msgid "Exceptions" -msgstr "Exceptions" - -#: library/compression.zstd.rst:44 -msgid "" -"This exception is raised when an error occurs during compression or " -"decompression, or while initializing the (de)compressor state." -msgstr "" - -#: library/compression.zstd.rst:49 -msgid "Reading and writing compressed files" -msgstr "Lire et écrire des fichiers compressés" - -#: library/compression.zstd.rst:54 -msgid "" -"Open a Zstandard-compressed file in binary or text mode, returning " -"a :term:`file object`." -msgstr "" - -#: library/compression.zstd.rst:57 -msgid "" -"The *file* argument can be either a file name (given as " -"a :class:`str`, :class:`bytes` or :term:`path-like ` " -"object), in which case the named file is opened, or it can be an existing " -"file object to read from or write to." -msgstr "" - -#: library/compression.zstd.rst:62 -msgid "" -"The mode argument can be either ``'rb'`` for reading (default), ``'wb'`` for " -"overwriting, ``'ab'`` for appending, or ``'xb'`` for exclusive creation. " -"These can equivalently be given as ``'r'``, ``'w'``, ``'a'``, and ``'x'`` " -"respectively. You may also open in text mode with ``'rt'``, ``'wt'``, " -"``'at'``, and ``'xt'`` respectively." -msgstr "" - -#: library/compression.zstd.rst:68 library/compression.zstd.rst:112 -msgid "" -"When reading, the *options* argument can be a dictionary providing advanced " -"decompression parameters; see :class:`DecompressionParameter` for detailed " -"information about supported parameters. The *zstd_dict* argument is " -"a :class:`ZstdDict` instance to be used during decompression. When reading, " -"if the *level* argument is not None, a :exc:`!TypeError` will be raised." -msgstr "" - -#: library/compression.zstd.rst:75 -msgid "" -"When writing, the *options* argument can be a dictionary providing advanced " -"compression parameters; see :class:`CompressionParameter` for detailed " -"information about supported parameters. The *level* argument is the " -"compression level to use when writing compressed data. Only one of *level* " -"or *options* may be non-None. The *zstd_dict* argument is " -"a :class:`ZstdDict` instance to be used during compression." -msgstr "" - -#: library/compression.zstd.rst:83 -msgid "" -"In binary mode, this function is equivalent to the :class:`ZstdFile` " -"constructor: ``ZstdFile(file, mode, ...)``. In this case, the *encoding*, " -"*errors*, and *newline* parameters must not be provided." -msgstr "" - -#: library/compression.zstd.rst:87 -msgid "" -"In text mode, a :class:`ZstdFile` object is created, and wrapped in " -"an :class:`io.TextIOWrapper` instance with the specified encoding, error " -"handling behavior, and line endings." -msgstr "" - -#: library/compression.zstd.rst:95 -msgid "Open a Zstandard-compressed file in binary mode." -msgstr "" - -#: library/compression.zstd.rst:97 -msgid "" -"A :class:`ZstdFile` can wrap an already-open :term:`file object`, or operate " -"directly on a named file. The *file* argument specifies either the file " -"object to wrap, or the name of the file to open (as " -"a :class:`str`, :class:`bytes` or :term:`path-like ` " -"object). If wrapping an existing file object, the wrapped file will not be " -"closed when the :class:`ZstdFile` is closed." -msgstr "" - -#: library/compression.zstd.rst:104 -msgid "" -"The *mode* argument can be either ``'rb'`` for reading (default), ``'wb'`` " -"for overwriting, ``'xb'`` for exclusive creation, or ``'ab'`` for appending. " -"These can equivalently be given as ``'r'``, ``'w'``, ``'x'`` and ``'a'`` " -"respectively." -msgstr "" - -#: library/compression.zstd.rst:109 -msgid "" -"If *file* is a file object (rather than an actual file name), a mode of " -"``'w'`` does not truncate the file, and is instead equivalent to ``'a'``." -msgstr "" - -#: library/compression.zstd.rst:119 -msgid "" -"When writing, the *options* argument can be a dictionary providing advanced " -"compression parameters; see :class:`CompressionParameter` for detailed " -"information about supported parameters. The *level* argument is the " -"compression level to use when writing compressed data. Only one of *level* " -"or *options* may be passed. The *zstd_dict* argument is a :class:`ZstdDict` " -"instance to be used during compression." -msgstr "" - -#: library/compression.zstd.rst:127 -msgid "" -":class:`!ZstdFile` supports all the members specified " -"by :class:`io.BufferedIOBase`, except for :meth:`~io.BufferedIOBase.detach` " -"and :meth:`~io.IOBase.truncate`. Iteration and the :keyword:`with` statement " -"are supported." -msgstr "" - -#: library/compression.zstd.rst:132 -msgid "The following method and attributes are also provided:" -msgstr "" - -#: library/compression.zstd.rst:136 -msgid "" -"Return buffered data without advancing the file position. At least one byte " -"of data will be returned, unless EOF has been reached. The exact number of " -"bytes returned is unspecified (the *size* argument is ignored)." -msgstr "" -"Renvoie la donnée en mémoire-tampon sans progression de la position du " -"fichier. Au moins un octet de donnée sera renvoyé, jusqu'à ce que l'EOF soit " -"atteinte. Le nombre exact d'octets renvoyés demeure indéterminé (l'argument " -"*taille* est ignoré)." - -#: library/compression.zstd.rst:140 -msgid "" -"While calling :meth:`peek` does not change the file position of " -"the :class:`ZstdFile`, it may change the position of the underlying file " -"object (for example, if the :class:`ZstdFile` was constructed by passing a " -"file object for *file*)." -msgstr "" - -#: library/compression.zstd.rst:147 -msgid "``'rb'`` for reading and ``'wb'`` for writing." -msgstr "" - -#: library/compression.zstd.rst:151 -msgid "" -"The name of the Zstandard file. Equivalent to the :attr:`~io.FileIO.name` " -"attribute of the underlying :term:`file object`." -msgstr "" - -#: library/compression.zstd.rst:156 -msgid "Compressing and decompressing data in memory" -msgstr "Compresser et décompresser une donnée en mémoire" - -#: library/compression.zstd.rst:160 -msgid "" -"Compress *data* (a :term:`bytes-like object`), returning the compressed data " -"as a :class:`bytes` object." -msgstr "" - -#: library/compression.zstd.rst:163 library/compression.zstd.rst:207 -msgid "" -"The *level* argument is an integer controlling the level of compression. " -"*level* is an alternative to " -"setting :attr:`CompressionParameter.compression_level` in *options*. " -"Use :meth:`~CompressionParameter.bounds` " -"on :attr:`~CompressionParameter.compression_level` to get the values that " -"can be passed for *level*. If advanced compression options are needed, the " -"*level* argument must be omitted and in the *options* dictionary the :attr:`!" -"CompressionParameter.compression_level` parameter should be set." -msgstr "" - -#: library/compression.zstd.rst:172 library/compression.zstd.rst:216 -msgid "" -"The *options* argument is a Python dictionary containing advanced " -"compression parameters. The valid keys and values for compression parameters " -"are documented as part of the :class:`CompressionParameter` documentation." -msgstr "" - -#: library/compression.zstd.rst:176 -msgid "" -"The *zstd_dict* argument is an instance of :class:`ZstdDict` containing " -"trained data to improve compression efficiency. The " -"function :func:`train_dict` can be used to generate a Zstandard dictionary." -msgstr "" - -#: library/compression.zstd.rst:183 -msgid "" -"Decompress *data* (a :term:`bytes-like object`), returning the uncompressed " -"data as a :class:`bytes` object." -msgstr "" - -#: library/compression.zstd.rst:186 library/compression.zstd.rst:308 -msgid "" -"The *options* argument is a Python dictionary containing advanced " -"decompression parameters. The valid keys and values for compression " -"parameters are documented as part of the :class:`DecompressionParameter` " -"documentation." -msgstr "" - -#: library/compression.zstd.rst:191 library/compression.zstd.rst:313 -msgid "" -"The *zstd_dict* argument is an instance of :class:`ZstdDict` containing " -"trained data used during compression. This must be the same Zstandard " -"dictionary used during compression." -msgstr "" - -#: library/compression.zstd.rst:195 -msgid "" -"If *data* is the concatenation of multiple distinct compressed frames, " -"decompress all of these frames, and return the concatenation of the results." -msgstr "" - -#: library/compression.zstd.rst:201 -msgid "" -"Create a compressor object, which can be used to compress data incrementally." -msgstr "" -"Créé un objet compresseur, qui peut être utilisé pour compresser " -"incrémentalement une donnée." - -#: library/compression.zstd.rst:204 -msgid "" -"For a more convenient way of compressing a single chunk of data, see the " -"module-level function :func:`compress`." -msgstr "" - -#: library/compression.zstd.rst:220 -msgid "" -"The *zstd_dict* argument is an optional instance of :class:`ZstdDict` " -"containing trained data to improve compression efficiency. The " -"function :func:`train_dict` can be used to generate a Zstandard dictionary." -msgstr "" - -#: library/compression.zstd.rst:227 -msgid "" -"Compress *data* (a :term:`bytes-like object`), returning a :class:`bytes` " -"object with compressed data if possible, or otherwise an empty :class:`!" -"bytes` object. Some of *data* may be buffered internally, for use in later " -"calls to :meth:`!compress` and :meth:`~.flush`. The returned data should be " -"concatenated with the output of any previous calls to :meth:`~.compress`." -msgstr "" - -#: library/compression.zstd.rst:234 -msgid "" -"The *mode* argument is a :class:`ZstdCompressor` attribute, " -"either :attr:`~.CONTINUE`, :attr:`~.FLUSH_BLOCK`, or :attr:`~.FLUSH_FRAME`." -msgstr "" - -#: library/compression.zstd.rst:238 -msgid "" -"When all data has been provided to the compressor, call the :meth:`~.flush` " -"method to finish the compression process. If :meth:`~.compress` is called " -"with *mode* set to :attr:`~.FLUSH_FRAME`, :meth:`~.flush` should not be " -"called, as it would write out a new empty frame." -msgstr "" - -#: library/compression.zstd.rst:246 -msgid "" -"Finish the compression process, returning a :class:`bytes` object containing " -"any data stored in the compressor's internal buffers." -msgstr "" -"Conclut l'opération de compression, en renvoyant l'objet :class:`bytes` " -"constitué de toutes les données stockées dans les tampons interne du " -"compresseur." - -#: library/compression.zstd.rst:249 -msgid "" -"The *mode* argument is a :class:`ZstdCompressor` attribute, " -"either :attr:`~.FLUSH_BLOCK`, or :attr:`~.FLUSH_FRAME`." -msgstr "" - -#: library/compression.zstd.rst:254 -msgid "" -"Specify the amount of uncompressed data *size* that will be provided for the " -"next frame. *size* will be written into the frame header of the next frame " -"unless :attr:`CompressionParameter.content_size_flag` is ``False`` or ``0``. " -"A size of ``0`` means that the frame is empty. If *size* is ``None``, the " -"frame header will omit the frame size. Frames that include the uncompressed " -"data size require less memory to decompress, especially at higher " -"compression levels." -msgstr "" - -#: library/compression.zstd.rst:262 -msgid "" -"If :attr:`last_mode` is not :attr:`FLUSH_FRAME`, a :exc:`ValueError` is " -"raised as the compressor is not at the start of a frame. If the pledged size " -"does not match the actual size of data provided to :meth:`.compress`, future " -"calls to :meth:`!compress` or :meth:`flush` may raise :exc:`ZstdError` and " -"the last chunk of data may be lost." -msgstr "" - -#: library/compression.zstd.rst:269 -msgid "" -"After :meth:`flush` or :meth:`.compress` are called with " -"mode :attr:`FLUSH_FRAME`, the next frame will not include the frame size " -"into the header unless :meth:`!set_pledged_input_size` is called again." -msgstr "" - -#: library/compression.zstd.rst:275 -msgid "" -"Collect more data for compression, which may or may not generate output " -"immediately. This mode optimizes the compression ratio by maximizing the " -"amount of data per block and frame." -msgstr "" - -#: library/compression.zstd.rst:281 -msgid "" -"Complete and write a block to the data stream. The data returned so far can " -"be immediately decompressed. Past data can still be referenced in future " -"blocks generated by calls to :meth:`~.compress`, improving compression." -msgstr "" - -#: library/compression.zstd.rst:288 -msgid "" -"Complete and write out a frame. Future data provided to :meth:`~.compress` " -"will be written into a new frame and *cannot* reference past data." -msgstr "" - -#: library/compression.zstd.rst:294 -msgid "" -"The last mode passed to either :meth:`~.compress` or :meth:`~.flush`. The " -"value can be one of :attr:`~.CONTINUE`, :attr:`~.FLUSH_BLOCK`, " -"or :attr:`~.FLUSH_FRAME`. The initial value is :attr:`~.FLUSH_FRAME`, " -"signifying that the compressor is at the start of a new frame." -msgstr "" - -#: library/compression.zstd.rst:302 -msgid "" -"Create a decompressor object, which can be used to decompress data " -"incrementally." -msgstr "" -"Créé un objet de décompression, pour décompresser de façon incrémentale une " -"donnée." - -#: library/compression.zstd.rst:305 -msgid "" -"For a more convenient way of decompressing an entire compressed stream at " -"once, see the module-level function :func:`decompress`." -msgstr "" - -#: library/compression.zstd.rst:318 -msgid "" -"This class does not transparently handle inputs containing multiple " -"compressed frames, unlike the :func:`decompress` function " -"and :class:`ZstdFile` class. To decompress a multi-frame input, you should " -"use :func:`decompress`, :class:`ZstdFile` if working with a :term:`file " -"object`, or multiple :class:`!ZstdDecompressor` instances." -msgstr "" - -#: library/compression.zstd.rst:326 -msgid "" -"Decompress *data* (a :term:`bytes-like object`), returning uncompressed data " -"as bytes. Some of *data* may be buffered internally, for use in later calls " -"to :meth:`!decompress`. The returned data should be concatenated with the " -"output of any previous calls to :meth:`!decompress`." -msgstr "" - -#: library/compression.zstd.rst:332 -msgid "" -"If *max_length* is non-negative, the method returns at most *max_length* " -"bytes of decompressed data. If this limit is reached and further output can " -"be produced (or EOF is reached), the :attr:`~.needs_input` attribute will be " -"set to ``False``. In this case, the next call to :meth:`~.decompress` may " -"provide *data* as ``b''`` to obtain more of the output. The full content can " -"thus be read like::" -msgstr "" - -#: library/compression.zstd.rst:343 -msgid "" -"If all of the input data was decompressed and returned (either because this " -"was less than *max_length* bytes, or because *max_length* was negative), " -"the :attr:`~.needs_input` attribute will be set to ``True``." -msgstr "" -"Si toutes les données entrées ont été décompressées et renvoyées (soit parce " -"qu'il y avait moins de *max_length* octets, ou parce que *max_length* était " -"négatif), l'attribut :attr:`~.needs_input` sera configuré sur ``True``." - -#: library/compression.zstd.rst:348 -msgid "" -"Attempting to decompress data after the end of a frame will raise " -"a :exc:`ZstdError`. Any data found after the end of the frame is ignored and " -"saved in the :attr:`~.unused_data` attribute." -msgstr "" - -#: library/compression.zstd.rst:354 -msgid "``True`` if the end-of-stream marker has been reached." -msgstr "``True`` si le marqueur de fin de flux a été atteint." - -#: library/compression.zstd.rst:358 -msgid "Data found after the end of the compressed stream." -msgstr "Donnée trouvée après la fin du flux compressé." - -#: library/compression.zstd.rst:360 -msgid "Before the end of the stream is reached, this will be ``b''``." -msgstr "" - -#: library/compression.zstd.rst:364 -msgid "" -"``False`` if the :meth:`.decompress` method can provide more decompressed " -"data before requiring new compressed input." -msgstr "" - -#: library/compression.zstd.rst:369 -msgid "Zstandard dictionaries" -msgstr "" - -#: library/compression.zstd.rst:374 -msgid "" -"Train a Zstandard dictionary, returning a :class:`ZstdDict` instance. " -"Zstandard dictionaries enable more efficient compression of smaller sizes of " -"data, which is traditionally difficult to compress due to less repetition. " -"If you are compressing multiple similar groups of data (such as similar " -"files), Zstandard dictionaries can improve compression ratios and speed " -"significantly." -msgstr "" - -#: library/compression.zstd.rst:381 -msgid "" -"The *samples* argument (an iterable of :class:`bytes` objects), is the " -"population of samples used to train the Zstandard dictionary." -msgstr "" - -#: library/compression.zstd.rst:384 -msgid "" -"The *dict_size* argument, an integer, is the maximum size (in bytes) the " -"Zstandard dictionary should be. The Zstandard documentation suggests an " -"absolute maximum of no more than 100 KB, but the maximum can often be " -"smaller depending on the data. Larger dictionaries generally slow down " -"compression, but improve compression ratios. Smaller dictionaries lead to " -"faster compression, but reduce the compression ratio." -msgstr "" - -#: library/compression.zstd.rst:394 -msgid "" -"An advanced function for converting a \"raw content\" Zstandard dictionary " -"into a regular Zstandard dictionary. \"Raw content\" dictionaries are a " -"sequence of bytes that do not need to follow the structure of a normal " -"Zstandard dictionary." -msgstr "" - -#: library/compression.zstd.rst:399 -msgid "" -"The *zstd_dict* argument is a :class:`ZstdDict` instance with " -"the :attr:`~ZstdDict.dict_content` containing the raw dictionary contents." -msgstr "" - -#: library/compression.zstd.rst:402 -msgid "" -"The *samples* argument (an iterable of :class:`bytes` objects), contains " -"sample data for generating the Zstandard dictionary." -msgstr "" - -#: library/compression.zstd.rst:405 -msgid "" -"The *dict_size* argument, an integer, is the maximum size (in bytes) the " -"Zstandard dictionary should be. See :func:`train_dict` for suggestions on " -"the maximum dictionary size." -msgstr "" - -#: library/compression.zstd.rst:409 -msgid "" -"The *level* argument (an integer) is the compression level expected to be " -"passed to the compressors using this dictionary. The dictionary information " -"varies for each compression level, so tuning for the proper compression " -"level can make compression more efficient." -msgstr "" - -#: library/compression.zstd.rst:417 -msgid "" -"A wrapper around Zstandard dictionaries. Dictionaries can be used to improve " -"the compression of many small chunks of data. Use :func:`train_dict` if you " -"need to train a new dictionary from sample data." -msgstr "" - -#: library/compression.zstd.rst:421 -msgid "" -"The *dict_content* argument (a :term:`bytes-like object`), is the already " -"trained dictionary information." -msgstr "" - -#: library/compression.zstd.rst:424 -msgid "" -"The *is_raw* argument, a boolean, is an advanced parameter controlling the " -"meaning of *dict_content*. ``True`` means *dict_content* is a \"raw " -"content\" dictionary, without any format restrictions. ``False`` means " -"*dict_content* is an ordinary Zstandard dictionary, created from Zstandard " -"functions, for example, :func:`train_dict` or the external :program:`zstd` " -"CLI." -msgstr "" - -#: library/compression.zstd.rst:430 -msgid "" -"When passing a :class:`!ZstdDict` to a function, the :attr:`!" -"as_digested_dict` and :attr:`!as_undigested_dict` attributes can control how " -"the dictionary is loaded by passing them as the ``zstd_dict`` argument, for " -"example, ``compress(data, zstd_dict=zd.as_digested_dict)``. Digesting a " -"dictionary is a costly operation that occurs when loading a Zstandard " -"dictionary. When making multiple calls to compression or decompression, " -"passing a digested dictionary will reduce the overhead of loading the " -"dictionary." -msgstr "" - -#: library/compression.zstd.rst:439 -msgid "Difference for compression" -msgstr "" - -#: library/compression.zstd.rst:444 -msgid "Digested dictionary" -msgstr "" - -#: library/compression.zstd.rst:445 -msgid "Undigested dictionary" -msgstr "" - -#: library/compression.zstd.rst:446 -msgid "" -"Advanced parameters of the compressor which may be overridden by the " -"dictionary's parameters" -msgstr "" - -#: library/compression.zstd.rst:448 -msgid "" -"``window_log``, ``hash_log``, ``chain_log``, ``search_log``, ``min_match``, " -"``target_length``, ``strategy``, ``enable_long_distance_matching``, " -"``ldm_hash_log``, ``ldm_min_match``, ``ldm_bucket_size_log``, " -"``ldm_hash_rate_log``, and some non-public parameters." -msgstr "" - -#: library/compression.zstd.rst:453 -msgid "None" -msgstr "None" - -#: library/compression.zstd.rst:454 -msgid ":class:`!ZstdDict` internally caches the dictionary" -msgstr "" - -#: library/compression.zstd.rst:455 -msgid "" -"Yes. It's faster when loading a digested dictionary again with the same " -"compression level." -msgstr "" - -#: library/compression.zstd.rst:457 -msgid "" -"No. If you wish to load an undigested dictionary multiple times, consider " -"reusing a compressor object." -msgstr "" - -#: library/compression.zstd.rst:460 -msgid "" -"If passing a :class:`!ZstdDict` without any attribute, an undigested " -"dictionary is passed by default when compressing and a digested dictionary " -"is generated if necessary and passed by default when decompressing." -msgstr "" - -#: library/compression.zstd.rst:466 -msgid "" -"The content of the Zstandard dictionary, a ``bytes`` object. It's the same " -"as the *dict_content* argument in the ``__init__`` method. It can be used " -"with other programs, such as the ``zstd`` CLI program." -msgstr "" - -#: library/compression.zstd.rst:472 -msgid "Identifier of the Zstandard dictionary, a non-negative int value." -msgstr "" - -#: library/compression.zstd.rst:474 -msgid "" -"Non-zero means the dictionary is ordinary, created by Zstandard functions " -"and following the Zstandard format." -msgstr "" - -#: library/compression.zstd.rst:477 -msgid "" -"``0`` means a \"raw content\" dictionary, free of any format restriction, " -"used for advanced users." -msgstr "" - -#: library/compression.zstd.rst:482 -msgid "" -"The meaning of ``0`` for :attr:`!ZstdDict.dict_id` is different from the " -"``dictionary_id`` attribute to the :func:`get_frame_info` function." -msgstr "" - -#: library/compression.zstd.rst:488 -msgid "Load as a digested dictionary." -msgstr "" - -#: library/compression.zstd.rst:492 -msgid "Load as an undigested dictionary." -msgstr "" - -#: library/compression.zstd.rst:496 -msgid "Advanced parameter control" -msgstr "" - -#: library/compression.zstd.rst:500 -msgid "" -"An :class:`~enum.IntEnum` containing the advanced compression parameter keys " -"that can be used when compressing data." -msgstr "" - -#: library/compression.zstd.rst:503 library/compression.zstd.rst:737 -msgid "" -"The :meth:`~.bounds` method can be used on any attribute to get the valid " -"values for that parameter." -msgstr "" - -#: library/compression.zstd.rst:506 -msgid "" -"Parameters are optional; any omitted parameter will have it's value selected " -"automatically." -msgstr "" - -#: library/compression.zstd.rst:509 -msgid "" -"Example getting the lower and upper bound of :attr:`~.compression_level`::" -msgstr "" - -#: library/compression.zstd.rst:513 -msgid "Example setting the :attr:`~.window_log` to the maximum size::" -msgstr "" - -#: library/compression.zstd.rst:521 -msgid "" -"Return the tuple of int bounds, ``(lower, upper)``, of a compression " -"parameter. This method should be called on the attribute you wish to " -"retrieve the bounds of. For example, to get the valid values " -"for :attr:`~.compression_level`, one may check the result of " -"``CompressionParameter.compression_level.bounds()``." -msgstr "" - -#: library/compression.zstd.rst:527 library/compression.zstd.rst:755 -msgid "Both the lower and upper bounds are inclusive." -msgstr "" - -#: library/compression.zstd.rst:531 -msgid "" -"A high-level means of setting other compression parameters that affect the " -"speed and ratio of compressing data." -msgstr "" - -#: library/compression.zstd.rst:534 -msgid "" -"Regular compression levels are greater than ``0``. Values greater than " -"``20`` are considered \"ultra\" compression and require more memory than " -"other levels. Negative values can be used to trade off faster compression " -"for worse compression ratios." -msgstr "" - -#: library/compression.zstd.rst:539 -msgid "Setting the level to zero uses :attr:`COMPRESSION_LEVEL_DEFAULT`." -msgstr "" - -#: library/compression.zstd.rst:543 -msgid "" -"Maximum allowed back-reference distance the compressor can use when " -"compressing data, expressed as power of two, ``1 << window_log`` bytes. This " -"parameter greatly influences the memory usage of compression. Higher values " -"require more memory but gain better compression values." -msgstr "" - -#: library/compression.zstd.rst:548 library/compression.zstd.rst:557 -#: library/compression.zstd.rst:568 library/compression.zstd.rst:576 -#: library/compression.zstd.rst:587 library/compression.zstd.rst:602 -#: library/compression.zstd.rst:633 library/compression.zstd.rst:640 -#: library/compression.zstd.rst:648 library/compression.zstd.rst:656 -#: library/compression.zstd.rst:715 library/compression.zstd.rst:764 -msgid "A value of zero causes the value to be selected automatically." -msgstr "" - -#: library/compression.zstd.rst:552 -msgid "" -"Size of the initial probe table, as a power of two. The resulting memory " -"usage is ``1 << (hash_log+2)`` bytes. Larger tables improve compression " -"ratio of strategies <= :attr:`~Strategy.dfast`, and improve compression " -"speed of strategies > :attr:`~Strategy.dfast`." -msgstr "" - -#: library/compression.zstd.rst:561 -msgid "" -"Size of the multi-probe search table, as a power of two. The resulting " -"memory usage is ``1 << (chain_log+2)`` bytes. Larger tables result in better " -"and slower compression. This parameter has no effect for " -"the :attr:`~Strategy.fast` strategy. It's still useful when " -"using :attr:`~Strategy.dfast` strategy, in which case it defines a secondary " -"probe table." -msgstr "" - -#: library/compression.zstd.rst:572 -msgid "" -"Number of search attempts, as a power of two. More attempts result in better " -"and slower compression. This parameter is useless for :attr:`~Strategy.fast` " -"and :attr:`~Strategy.dfast` strategies." -msgstr "" - -#: library/compression.zstd.rst:580 -msgid "" -"Minimum size of searched matches. Larger values increase compression and " -"decompression speed, but decrease ratio. Note that Zstandard can still find " -"matches of smaller size, it just tweaks its search algorithm to look for " -"this size and larger. For all strategies < :attr:`~Strategy.btopt`, the " -"effective minimum is ``4``; for all strategies > :attr:`~Strategy.fast`, the " -"effective maximum is ``6``." -msgstr "" - -#: library/compression.zstd.rst:591 -msgid "The impact of this field depends on the selected :class:`Strategy`." -msgstr "" - -#: library/compression.zstd.rst:593 -msgid "" -"For strategies :attr:`~Strategy.btopt`, :attr:`~Strategy.btultra` " -"and :attr:`~Strategy.btultra2`, the value is the length of a match " -"considered \"good enough\" to stop searching. Larger values make compression " -"ratios better, but compresses slower." -msgstr "" - -#: library/compression.zstd.rst:598 -msgid "" -"For strategy :attr:`~Strategy.fast`, it is the distance between match " -"sampling. Larger values make compression faster, but with a worse " -"compression ratio." -msgstr "" - -#: library/compression.zstd.rst:606 -msgid "" -"The higher the value of selected strategy, the more complex the compression " -"technique used by zstd, resulting in higher compression ratios but slower " -"compression." -msgstr "" - -#: library/compression.zstd.rst:610 -msgid ":class:`Strategy`" -msgstr "" - -#: library/compression.zstd.rst:614 -msgid "" -"Long distance matching can be used to improve compression for large inputs " -"by finding large matches at greater distances. It increases memory usage and " -"window size." -msgstr "" - -#: library/compression.zstd.rst:618 -msgid "" -"``True`` or ``1`` enable long distance matching while ``False`` or ``0`` " -"disable it." -msgstr "" - -#: library/compression.zstd.rst:621 -msgid "" -"Enabling this parameter increases " -"default :attr:`~CompressionParameter.window_log` to 128 MiB except when " -"expressly set to a different value. This setting is enabled by default " -"if :attr:`!window_log` >= 128 MiB and the compression strategy " -">= :attr:`~Strategy.btopt` (compression level 16+)." -msgstr "" - -#: library/compression.zstd.rst:629 -msgid "" -"Size of the table for long distance matching, as a power of two. Larger " -"values increase memory usage and compression ratio, but decrease compression " -"speed." -msgstr "" - -#: library/compression.zstd.rst:637 -msgid "" -"Minimum match size for long distance matcher. Larger or too small values can " -"often decrease the compression ratio." -msgstr "" - -#: library/compression.zstd.rst:644 -msgid "" -"Log size of each bucket in the long distance matcher hash table for " -"collision resolution. Larger values improve collision resolution but " -"decrease compression speed." -msgstr "" - -#: library/compression.zstd.rst:652 -msgid "" -"Frequency of inserting/looking up entries into the long distance matcher " -"hash table. Larger values improve compression speed. Deviating far from the " -"default value will likely result in a compression ratio decrease." -msgstr "" - -#: library/compression.zstd.rst:660 -msgid "" -"Write the size of the data to be compressed into the Zstandard frame header " -"when known prior to compressing." -msgstr "" - -#: library/compression.zstd.rst:663 -msgid "This flag only takes effect under the following scenarios:" -msgstr "" - -#: library/compression.zstd.rst:665 -msgid "Calling :func:`compress` for one-shot compression" -msgstr "" - -#: library/compression.zstd.rst:666 -msgid "" -"Providing all of the data to be compressed in the frame in a " -"single :meth:`ZstdCompressor.compress` call, with " -"the :attr:`ZstdCompressor.FLUSH_FRAME` mode." -msgstr "" - -#: library/compression.zstd.rst:669 -msgid "" -"Calling :meth:`ZstdCompressor.set_pledged_input_size` with the exact amount " -"of data that will be provided to the compressor prior to any calls " -"to :meth:`ZstdCompressor.compress` for the current frame. :meth:`!" -"ZstdCompressor.set_pledged_input_size` must be called for each new frame." -msgstr "" - -#: library/compression.zstd.rst:675 -msgid "" -"All other compression calls may not write the size information into the " -"frame header." -msgstr "" - -#: library/compression.zstd.rst:678 -msgid "" -"``True`` or ``1`` enable the content size flag while ``False`` or ``0`` " -"disable it." -msgstr "" - -#: library/compression.zstd.rst:683 -msgid "" -"A four-byte checksum using XXHash64 of the uncompressed content is written " -"at the end of each frame. Zstandard's decompression code verifies the " -"checksum. If there is a mismatch a :class:`ZstdError` exception is raised." -msgstr "" - -#: library/compression.zstd.rst:688 -msgid "" -"``True`` or ``1`` enable checksum generation while ``False`` or ``0`` " -"disable it." -msgstr "" - -#: library/compression.zstd.rst:693 -msgid "" -"When compressing with a :class:`ZstdDict`, the dictionary's ID is written " -"into the frame header." -msgstr "" - -#: library/compression.zstd.rst:696 -msgid "" -"``True`` or ``1`` enable storing the dictionary ID while ``False`` or ``0`` " -"disable it." -msgstr "" - -#: library/compression.zstd.rst:701 -msgid "" -"Select how many threads will be spawned to compress in parallel. " -"When :attr:`!nb_workers` > 0, enables multi-threaded compression, a value of " -"``1`` means \"one-thread multi-threaded mode\". More workers improve speed, " -"but also increase memory usage and slightly reduce compression ratio." -msgstr "" - -#: library/compression.zstd.rst:706 -msgid "A value of zero disables multi-threading." -msgstr "" - -#: library/compression.zstd.rst:710 -msgid "" -"Size of a compression job, in bytes. This value is enforced only " -"when :attr:`~CompressionParameter.nb_workers` >= 1. Each compression job is " -"completed in parallel, so this value can indirectly impact the number of " -"active threads." -msgstr "" - -#: library/compression.zstd.rst:719 -msgid "" -"Sets how much data is reloaded from previous jobs (threads) for new jobs to " -"be used by the look behind window during compression. This value is only " -"used when :attr:`~CompressionParameter.nb_workers` >= 1. Acceptable values " -"vary from 0 to 9." -msgstr "" - -#: library/compression.zstd.rst:724 -msgid "0 means dynamically set the overlap amount" -msgstr "" - -#: library/compression.zstd.rst:725 -msgid "1 means no overlap" -msgstr "" - -#: library/compression.zstd.rst:726 -msgid "9 means use a full window size from the previous job" -msgstr "" - -#: library/compression.zstd.rst:728 -msgid "" -"Each increment halves/doubles the overlap size. \"8\" means an overlap of " -"``window_size/2``, \"7\" means an overlap of ``window_size/4``, etc." -msgstr "" - -#: library/compression.zstd.rst:733 -msgid "" -"An :class:`~enum.IntEnum` containing the advanced decompression parameter " -"keys that can be used when decompressing data. Parameters are optional; any " -"omitted parameter will have it's value selected automatically." -msgstr "" - -#: library/compression.zstd.rst:740 -msgid "Example setting the :attr:`~.window_log_max` to the maximum size::" -msgstr "" - -#: library/compression.zstd.rst:751 -msgid "" -"Return the tuple of int bounds, ``(lower, upper)``, of a decompression " -"parameter. This method should be called on the attribute you wish to " -"retrieve the bounds of." -msgstr "" - -#: library/compression.zstd.rst:759 -msgid "" -"The base-two logarithm of the maximum size of the window used during " -"decompression. This can be useful to limit the amount of memory used when " -"decompressing data. A larger maximum window size leads to faster " -"decompression." -msgstr "" - -#: library/compression.zstd.rst:769 -msgid "" -"An :class:`~enum.IntEnum` containing strategies for compression. Higher-" -"numbered strategies correspond to more complex and slower compression." -msgstr "" - -#: library/compression.zstd.rst:775 -msgid "" -"The values of attributes of :class:`!Strategy` are not necessarily stable " -"across zstd versions. Only the ordering of the attributes may be relied " -"upon. The attributes are listed below in order." -msgstr "" - -#: library/compression.zstd.rst:779 -msgid "The following strategies are available:" -msgstr "" - -#: library/compression.zstd.rst:801 -msgid "Miscellaneous" -msgstr "Divers" - -#: library/compression.zstd.rst:805 -msgid "" -"Retrieve a :class:`FrameInfo` object containing metadata about a Zstandard " -"frame. Frames contain metadata related to the compressed data they hold." -msgstr "" - -#: library/compression.zstd.rst:811 -msgid "Metadata related to a Zstandard frame." -msgstr "" - -#: library/compression.zstd.rst:815 -msgid "The size of the decompressed contents of the frame." -msgstr "" - -#: library/compression.zstd.rst:819 -msgid "" -"An integer representing the Zstandard dictionary ID needed for decompressing " -"the frame. ``0`` means the dictionary ID was not recorded in the frame " -"header. This may mean that a Zstandard dictionary is not needed, or that the " -"ID of a required dictionary was not recorded." -msgstr "" - -#: library/compression.zstd.rst:827 -msgid "The default compression level for Zstandard: ``3``." -msgstr "" - -#: library/compression.zstd.rst:832 -msgid "" -"Version number of the runtime zstd library as a tuple of integers (major, " -"minor, release)." -msgstr "" - -#: library/compression.zstd.rst:837 -msgid "Examples" -msgstr "Exemples" - -#: library/compression.zstd.rst:839 -msgid "Reading in a compressed file:" -msgstr "" - -#: library/compression.zstd.rst:848 -msgid "Creating a compressed file:" -msgstr "" - -#: library/compression.zstd.rst:858 -msgid "Compressing data in memory:" -msgstr "" - -#: library/compression.zstd.rst:867 -msgid "Incremental compression:" -msgstr "" - -#: library/compression.zstd.rst:881 -msgid "Writing compressed data to an already-open file:" -msgstr "" - -#: library/compression.zstd.rst:893 -msgid "Creating a compressed file using compression parameters:" -msgstr "" diff --git a/library/concurrency.po b/library/concurrency.po deleted file mode 100644 index 372d8b3e28..0000000000 --- a/library/concurrency.po +++ /dev/null @@ -1,40 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-03-11 14:38+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/concurrency.rst:5 -msgid "Concurrent Execution" -msgstr "Exécution concourante" - -#: library/concurrency.rst:7 -msgid "" -"The modules described in this chapter provide support for concurrent " -"execution of code. The appropriate choice of tool will depend on the task to " -"be executed (CPU bound vs IO bound) and preferred style of development " -"(event driven cooperative multitasking vs preemptive multitasking). Here's " -"an overview:" -msgstr "" -"Les modules documentés dans ce chapitre fournissent des outils d'exécution " -"concourante de code. Le choix de l'outil approprié dépend de la tâche à " -"exécuter (limitée par le CPU (*CPU bound*), ou limitée la vitesse des " -"entrées-sorties (*IO bound*)) et du style de développement désiré " -"(coopération gérée par des évènements ou multitâche préemptif). En voici un " -"survol :" - -#: library/concurrency.rst:28 -msgid "The following are support modules for some of the above services:" -msgstr "" -"Les modules suivants servent de fondation pour certains services cités ci-" -"dessus :" diff --git a/library/concurrent.futures.po b/library/concurrent.futures.po deleted file mode 100644 index 0ce402f61f..0000000000 --- a/library/concurrent.futures.po +++ /dev/null @@ -1,828 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: library/concurrent.futures.rst:2 -#, fuzzy -msgid ":mod:`!concurrent.futures` --- Launching parallel tasks" -msgstr ":mod:`concurrent.futures` -- Lancer des tâches en parallèle" - -#: library/concurrent.futures.rst:9 -msgid "" -"**Source code:** :source:`Lib/concurrent/futures/thread.py`, :source:`Lib/" -"concurrent/futures/process.py`, and :source:`Lib/concurrent/futures/" -"interpreter.py`" -msgstr "" - -#: library/concurrent.futures.rst:15 -msgid "" -"The :mod:`!concurrent.futures` module provides a high-level interface for " -"asynchronously executing callables." -msgstr "" - -#: library/concurrent.futures.rst:18 -msgid "" -"The asynchronous execution can be performed with threads, " -"using :class:`ThreadPoolExecutor` or :class:`InterpreterPoolExecutor`, or " -"separate processes, using :class:`ProcessPoolExecutor`. Each implements the " -"same interface, which is defined by the abstract :class:`Executor` class." -msgstr "" - -#: library/concurrent.futures.rst:24 -msgid "" -":class:`concurrent.futures.Future` must not be confused " -"with :class:`asyncio.Future`, which is designed for use with :mod:`asyncio` " -"tasks and coroutines. See the :doc:`asyncio's Future ` " -"documentation for a detailed comparison of the two." -msgstr "" - -#: includes/wasm-notavail.rst:3 -msgid "Availability" -msgstr "Disponibilité" - -#: includes/wasm-notavail.rst:5 -msgid "" -"This module does not work or is not available on WebAssembly. See :ref:`wasm-" -"availability` for more information." -msgstr "" - -#: library/concurrent.futures.rst:32 -msgid "Executor Objects" -msgstr "" - -#: library/concurrent.futures.rst:36 -msgid "" -"An abstract class that provides methods to execute calls asynchronously. It " -"should not be used directly, but through its concrete subclasses." -msgstr "" - -#: library/concurrent.futures.rst:41 -msgid "" -"Schedules the callable, *fn*, to be executed as ``fn(*args, **kwargs)`` and " -"returns a :class:`Future` object representing the execution of the " -"callable. ::" -msgstr "" - -#: library/concurrent.futures.rst:51 -msgid "Similar to :func:`map(fn, *iterables) ` except:" -msgstr "" - -#: library/concurrent.futures.rst:53 -msgid "" -"The *iterables* are collected immediately rather than lazily, unless a " -"*buffersize* is specified to limit the number of submitted tasks whose " -"results have not yet been yielded. If the buffer is full, iteration over the " -"*iterables* pauses until a result is yielded from the buffer." -msgstr "" - -#: library/concurrent.futures.rst:58 -msgid "" -"*fn* is executed asynchronously and several calls to *fn* may be made " -"concurrently." -msgstr "" - -#: library/concurrent.futures.rst:61 -msgid "" -"The returned iterator raises a :exc:`TimeoutError` " -"if :meth:`~iterator.__next__` is called and the result isn't available after " -"*timeout* seconds from the original call to :meth:`Executor.map`. *timeout* " -"can be an int or a float. If *timeout* is not specified or ``None``, there " -"is no limit to the wait time." -msgstr "" - -#: library/concurrent.futures.rst:67 -msgid "" -"If a *fn* call raises an exception, then that exception will be raised when " -"its value is retrieved from the iterator." -msgstr "" - -#: library/concurrent.futures.rst:70 -msgid "" -"When using :class:`ProcessPoolExecutor`, this method chops *iterables* into " -"a number of chunks which it submits to the pool as separate tasks. The " -"(approximate) size of these chunks can be specified by setting *chunksize* " -"to a positive integer. For very long iterables, using a large value for " -"*chunksize* can significantly improve performance compared to the default " -"size of 1. With :class:`ThreadPoolExecutor` " -"and :class:`InterpreterPoolExecutor`, *chunksize* has no effect." -msgstr "" - -#: library/concurrent.futures.rst:79 -msgid "Added the *chunksize* parameter." -msgstr "" - -#: library/concurrent.futures.rst:82 -msgid "Added the *buffersize* parameter." -msgstr "" - -#: library/concurrent.futures.rst:87 -msgid "" -"Signal the executor that it should free any resources that it is using when " -"the currently pending futures are done executing. Calls " -"to :meth:`Executor.submit` and :meth:`Executor.map` made after shutdown will " -"raise :exc:`RuntimeError`." -msgstr "" - -#: library/concurrent.futures.rst:92 -msgid "" -"If *wait* is ``True`` then this method will not return until all the pending " -"futures are done executing and the resources associated with the executor " -"have been freed. If *wait* is ``False`` then this method will return " -"immediately and the resources associated with the executor will be freed " -"when all pending futures are done executing. Regardless of the value of " -"*wait*, the entire Python program will not exit until all pending futures " -"are done executing." -msgstr "" - -#: library/concurrent.futures.rst:100 -msgid "" -"If *cancel_futures* is ``True``, this method will cancel all pending futures " -"that the executor has not started running. Any futures that are completed or " -"running won't be cancelled, regardless of the value of *cancel_futures*." -msgstr "" - -#: library/concurrent.futures.rst:105 -msgid "" -"If both *cancel_futures* and *wait* are ``True``, all futures that the " -"executor has started running will be completed prior to this method " -"returning. The remaining futures are cancelled." -msgstr "" - -#: library/concurrent.futures.rst:109 -msgid "" -"You can avoid having to call this method explicitly if you use the executor " -"as a :term:`context manager` via the :keyword:`with` statement, which will " -"shutdown the :class:`Executor` (waiting as if :meth:`Executor.shutdown` were " -"called with *wait* set to ``True``)::" -msgstr "" - -#: library/concurrent.futures.rst:121 -msgid "Added *cancel_futures*." -msgstr "" - -#: library/concurrent.futures.rst:126 -msgid "ThreadPoolExecutor" -msgstr "ThreadPoolExecutor" - -#: library/concurrent.futures.rst:128 -msgid "" -":class:`ThreadPoolExecutor` is an :class:`Executor` subclass that uses a " -"pool of threads to execute calls asynchronously." -msgstr "" - -#: library/concurrent.futures.rst:131 -msgid "" -"Deadlocks can occur when the callable associated with a :class:`Future` " -"waits on the results of another :class:`Future`. For example::" -msgstr "" - -#: library/concurrent.futures.rst:150 -msgid "And::" -msgstr "Et ::" - -#: library/concurrent.futures.rst:166 -msgid "" -"An :class:`Executor` subclass that uses a pool of at most *max_workers* " -"threads to execute calls asynchronously." -msgstr "" - -#: library/concurrent.futures.rst:169 -msgid "" -"All threads enqueued to ``ThreadPoolExecutor`` will be joined before the " -"interpreter can exit. Note that the exit handler which does this is executed " -"*before* any exit handlers added using ``atexit``. This means exceptions in " -"the main thread must be caught and handled in order to signal threads to " -"exit gracefully. For this reason, it is recommended that " -"``ThreadPoolExecutor`` not be used for long-running tasks." -msgstr "" - -#: library/concurrent.futures.rst:176 -msgid "" -"*initializer* is an optional callable that is called at the start of each " -"worker thread; *initargs* is a tuple of arguments passed to the " -"initializer. Should *initializer* raise an exception, all currently pending " -"jobs will raise a :exc:`~concurrent.futures.thread.BrokenThreadPool`, as " -"well as any attempt to submit more jobs to the pool." -msgstr "" - -#: library/concurrent.futures.rst:182 -msgid "" -"If *max_workers* is ``None`` or not given, it will default to the number of " -"processors on the machine, multiplied by ``5``, assuming " -"that :class:`ThreadPoolExecutor` is often used to overlap I/O instead of CPU " -"work and the number of workers should be higher than the number of workers " -"for :class:`ProcessPoolExecutor`." -msgstr "" - -#: library/concurrent.futures.rst:190 -msgid "" -"Added the *thread_name_prefix* parameter to allow users to control " -"the :class:`threading.Thread` names for worker threads created by the pool " -"for easier debugging." -msgstr "" - -#: library/concurrent.futures.rst:195 library/concurrent.futures.rst:405 -msgid "Added the *initializer* and *initargs* arguments." -msgstr "" - -#: library/concurrent.futures.rst:198 -msgid "" -"Default value of *max_workers* is changed to ``min(32, os.cpu_count() + " -"4)``. This default value preserves at least 5 workers for I/O bound tasks. " -"It utilizes at most 32 CPU cores for CPU bound tasks which release the GIL. " -"And it avoids using very large resources implicitly on many-core machines." -msgstr "" - -#: library/concurrent.futures.rst:204 -msgid "" -"ThreadPoolExecutor now reuses idle worker threads before starting " -"*max_workers* worker threads too." -msgstr "" - -#: library/concurrent.futures.rst:207 -msgid "" -"Default value of *max_workers* is changed to ``min(32, " -"(os.process_cpu_count() or 1) + 4)``." -msgstr "" - -#: library/concurrent.futures.rst:215 -msgid "ThreadPoolExecutor Example" -msgstr "" - -#: library/concurrent.futures.rst:247 -#, fuzzy -msgid "InterpreterPoolExecutor" -msgstr "ThreadPoolExecutor" - -#: library/concurrent.futures.rst:251 -msgid "" -"The :class:`InterpreterPoolExecutor` class uses a pool of interpreters to " -"execute calls asynchronously. It is a :class:`ThreadPoolExecutor` subclass, " -"which means each worker is running in its own thread. The difference here is " -"that each worker has its own interpreter, and runs each task using that " -"interpreter." -msgstr "" - -#: library/concurrent.futures.rst:257 -msgid "" -"The biggest benefit to using interpreters instead of only threads is true " -"multi-core parallelism. Each interpreter has its own :term:`Global " -"Interpreter Lock `, so code running in one " -"interpreter can run on one CPU core, while code in another interpreter runs " -"unblocked on a different core." -msgstr "" - -#: library/concurrent.futures.rst:263 -msgid "" -"The tradeoff is that writing concurrent code for use with multiple " -"interpreters can take extra effort. However, this is because it forces you " -"to be deliberate about how and when interpreters interact, and to be " -"explicit about what data is shared between interpreters. This results in " -"several benefits that help balance the extra effort, including true multi-" -"core parallelism, For example, code written this way can make it easier to " -"reason about concurrency. Another major benefit is that you don't have to " -"deal with several of the big pain points of using threads, like race " -"conditions." -msgstr "" - -#: library/concurrent.futures.rst:273 -msgid "" -"Each worker's interpreter is isolated from all the other interpreters. " -"\"Isolated\" means each interpreter has its own runtime state and operates " -"completely independently. For example, if you redirect :data:`sys.stdout` " -"in one interpreter, it will not be automatically redirected to any other " -"interpreter. If you import a module in one interpreter, it is not " -"automatically imported in any other. You would need to import the module " -"separately in interpreter where you need it. In fact, each module imported " -"in an interpreter is a completely separate object from the same module in a " -"different interpreter, including :mod:`sys`, :mod:`builtins`, and even " -"``__main__``." -msgstr "" - -#: library/concurrent.futures.rst:285 -msgid "" -"Isolation means a mutable object, or other data, cannot be used by more than " -"one interpreter at the same time. That effectively means interpreters " -"cannot actually share such objects or data. Instead, each interpreter must " -"have its own copy, and you will have to synchronize any changes between the " -"copies manually. Immutable objects and data, like the builtin singletons, " -"strings, and tuples of immutable objects, don't have these limitations." -msgstr "" - -#: library/concurrent.futures.rst:293 -msgid "" -"Communicating and synchronizing between interpreters is most effectively " -"done using dedicated tools, like those proposed in :pep:`734`. One less " -"efficient alternative is to serialize with :mod:`pickle` and then send the " -"bytes over a shared :mod:`socket ` or :func:`pipe `." -msgstr "" - -#: library/concurrent.futures.rst:301 -msgid "" -"A :class:`ThreadPoolExecutor` subclass that executes calls asynchronously " -"using a pool of at most *max_workers* threads. Each thread runs tasks in " -"its own interpreter. The worker interpreters are isolated from each other, " -"which means each has its own runtime state and that they can't share any " -"mutable objects or other data. Each interpreter has its own :term:`Global " -"Interpreter Lock `, which means code run with this " -"executor has true multi-core parallelism." -msgstr "" - -#: library/concurrent.futures.rst:309 -msgid "" -"The optional *initializer* and *initargs* arguments have the same meaning as " -"for :class:`!ThreadPoolExecutor`: the initializer is run when each worker is " -"created, though in this case it is run in the worker's interpreter. The " -"executor serializes the *initializer* and *initargs* using :mod:`pickle` " -"when sending them to the worker's interpreter." -msgstr "" - -#: library/concurrent.futures.rst:317 -msgid "" -"The executor may replace uncaught exceptions from *initializer* " -"with :class:`~concurrent.interpreters.ExecutionFailed`." -msgstr "" - -#: library/concurrent.futures.rst:320 -msgid "Other caveats from parent :class:`ThreadPoolExecutor` apply here." -msgstr "" - -#: library/concurrent.futures.rst:322 -msgid "" -":meth:`~Executor.submit` and :meth:`~Executor.map` work like normal, except " -"the worker serializes the callable and arguments using :mod:`pickle` when " -"sending them to its interpreter. The worker likewise serializes the return " -"value when sending it back." -msgstr "" - -#: library/concurrent.futures.rst:327 -msgid "" -"When a worker's current task raises an uncaught exception, the worker always " -"tries to preserve the exception as-is. If that is successful then it also " -"sets the ``__cause__`` to a " -"corresponding :class:`~concurrent.interpreters.ExecutionFailed` instance, " -"which contains a summary of the original exception. In the uncommon case " -"that the worker is not able to preserve the original as-is then it directly " -"preserves the " -"corresponding :class:`~concurrent.interpreters.ExecutionFailed` instance " -"instead." -msgstr "" - -#: library/concurrent.futures.rst:339 -msgid "ProcessPoolExecutor" -msgstr "ProcessPoolExecutor" - -#: library/concurrent.futures.rst:341 -msgid "" -"The :class:`ProcessPoolExecutor` class is an :class:`Executor` subclass that " -"uses a pool of processes to execute calls " -"asynchronously. :class:`ProcessPoolExecutor` uses the :mod:`multiprocessing` " -"module, which allows it to side-step the :term:`Global Interpreter Lock " -"` but also means that only picklable objects can be " -"executed and returned." -msgstr "" - -#: library/concurrent.futures.rst:348 -msgid "" -"The ``__main__`` module must be importable by worker subprocesses. This " -"means that :class:`ProcessPoolExecutor` will not work in the interactive " -"interpreter." -msgstr "" - -#: library/concurrent.futures.rst:351 -msgid "" -"Calling :class:`Executor` or :class:`Future` methods from a callable " -"submitted to a :class:`ProcessPoolExecutor` will result in deadlock." -msgstr "" - -#: library/concurrent.futures.rst:354 -msgid "" -"Note that the restrictions on functions and arguments needing to picklable " -"as per :class:`multiprocessing.Process` apply when " -"using :meth:`~Executor.submit` and :meth:`~Executor.map` on " -"a :class:`ProcessPoolExecutor`. A function defined in a REPL or a lambda " -"should not be expected to work." -msgstr "" - -#: library/concurrent.futures.rst:361 -msgid "" -"An :class:`Executor` subclass that executes calls asynchronously using a " -"pool of at most *max_workers* processes. If *max_workers* is ``None`` or " -"not given, it will default to :func:`os.process_cpu_count`. If *max_workers* " -"is less than or equal to ``0``, then a :exc:`ValueError` will be raised. On " -"Windows, *max_workers* must be less than or equal to ``61``. If it is not " -"then :exc:`ValueError` will be raised. If *max_workers* is ``None``, then " -"the default chosen will be at most ``61``, even if more processors are " -"available. *mp_context* can be a :mod:`multiprocessing` context or ``None``. " -"It will be used to launch the workers. If *mp_context* is ``None`` or not " -"given, the default :mod:`multiprocessing` context is used. " -"See :ref:`multiprocessing-start-methods`." -msgstr "" - -#: library/concurrent.futures.rst:375 -msgid "" -"*initializer* is an optional callable that is called at the start of each " -"worker process; *initargs* is a tuple of arguments passed to the " -"initializer. Should *initializer* raise an exception, all currently pending " -"jobs will raise a :exc:`~concurrent.futures.process.BrokenProcessPool`, as " -"well as any attempt to submit more jobs to the pool." -msgstr "" - -#: library/concurrent.futures.rst:381 -msgid "" -"*max_tasks_per_child* is an optional argument that specifies the maximum " -"number of tasks a single process can execute before it will exit and be " -"replaced with a fresh worker process. By default *max_tasks_per_child* is " -"``None`` which means worker processes will live as long as the pool. When a " -"max is specified, the \"spawn\" multiprocessing start method will be used by " -"default in absence of a *mp_context* parameter. This feature is incompatible " -"with the \"fork\" start method." -msgstr "" - -#: library/concurrent.futures.rst:390 -msgid "" -"Bugs have been reported when using the *max_tasks_per_child* feature that " -"can result in the :class:`ProcessPoolExecutor` hanging in some " -"circumstances. Follow its eventual resolution in :gh:`115634`." -msgstr "" - -#: library/concurrent.futures.rst:394 -msgid "" -"When one of the worker processes terminates abruptly, " -"a :exc:`~concurrent.futures.process.BrokenProcessPool` error is now raised. " -"Previously, behaviour was undefined but operations on the executor or its " -"futures would often freeze or deadlock." -msgstr "" - -#: library/concurrent.futures.rst:401 -msgid "" -"The *mp_context* argument was added to allow users to control the " -"start_method for worker processes created by the pool." -msgstr "" - -#: library/concurrent.futures.rst:407 -msgid "" -"The *max_tasks_per_child* argument was added to allow users to control the " -"lifetime of workers in the pool." -msgstr "" - -#: library/concurrent.futures.rst:411 -msgid "" -"On POSIX systems, if your application has multiple threads and " -"the :mod:`multiprocessing` context uses the ``\"fork\"`` start method: " -"The :func:`os.fork` function called internally to spawn workers may raise " -"a :exc:`DeprecationWarning`. Pass a *mp_context* configured to use a " -"different start method. See the :func:`os.fork` documentation for further " -"explanation." -msgstr "" - -#: library/concurrent.futures.rst:419 -msgid "" -"*max_workers* uses :func:`os.process_cpu_count` by default, instead " -"of :func:`os.cpu_count`." -msgstr "" - -#: library/concurrent.futures.rst:423 -msgid "" -"The default process start method (see :ref:`multiprocessing-start-methods`) " -"changed away from *fork*. If you require the *fork* start method " -"for :class:`ProcessPoolExecutor` you must explicitly pass " -"``mp_context=multiprocessing.get_context(\"fork\")``." -msgstr "" - -#: library/concurrent.futures.rst:431 -msgid "" -"Attempt to terminate all living worker processes immediately by " -"calling :meth:`Process.terminate ` on " -"each of them. Internally, it will also call :meth:`Executor.shutdown` to " -"ensure that all other resources associated with the executor are freed." -msgstr "" - -#: library/concurrent.futures.rst:436 library/concurrent.futures.rst:448 -msgid "" -"After calling this method the caller should no longer submit tasks to the " -"executor." -msgstr "" - -#: library/concurrent.futures.rst:443 -msgid "" -"Attempt to kill all living worker processes immediately by " -"calling :meth:`Process.kill ` on each of them. " -"Internally, it will also call :meth:`Executor.shutdown` to ensure that all " -"other resources associated with the executor are freed." -msgstr "" - -#: library/concurrent.futures.rst:456 -msgid "ProcessPoolExecutor Example" -msgstr "" - -#: library/concurrent.futures.rst:494 -msgid "Future Objects" -msgstr "" - -#: library/concurrent.futures.rst:496 -msgid "" -"The :class:`Future` class encapsulates the asynchronous execution of a " -"callable. :class:`Future` instances are created by :meth:`Executor.submit`." -msgstr "" - -#: library/concurrent.futures.rst:501 -msgid "" -"Encapsulates the asynchronous execution of a callable. :class:`Future` " -"instances are created by :meth:`Executor.submit` and should not be created " -"directly except for testing." -msgstr "" - -#: library/concurrent.futures.rst:507 -msgid "" -"Attempt to cancel the call. If the call is currently being executed or " -"finished running and cannot be cancelled then the method will return " -"``False``, otherwise the call will be cancelled and the method will return " -"``True``." -msgstr "" - -#: library/concurrent.futures.rst:514 -msgid "Return ``True`` if the call was successfully cancelled." -msgstr "" - -#: library/concurrent.futures.rst:518 -msgid "" -"Return ``True`` if the call is currently being executed and cannot be " -"cancelled." -msgstr "" - -#: library/concurrent.futures.rst:523 -msgid "" -"Return ``True`` if the call was successfully cancelled or finished running." -msgstr "" - -#: library/concurrent.futures.rst:528 -msgid "" -"Return the value returned by the call. If the call hasn't yet completed then " -"this method will wait up to *timeout* seconds. If the call hasn't completed " -"in *timeout* seconds, then a :exc:`TimeoutError` will be raised. *timeout* " -"can be an int or float. If *timeout* is not specified or ``None``, there is " -"no limit to the wait time." -msgstr "" - -#: library/concurrent.futures.rst:535 library/concurrent.futures.rst:549 -msgid "" -"If the future is cancelled before completing then :exc:`.CancelledError` " -"will be raised." -msgstr "" - -#: library/concurrent.futures.rst:538 -msgid "" -"If the call raised an exception, this method will raise the same exception." -msgstr "" - -#: library/concurrent.futures.rst:542 -msgid "" -"Return the exception raised by the call. If the call hasn't yet completed " -"then this method will wait up to *timeout* seconds. If the call hasn't " -"completed in *timeout* seconds, then a :exc:`TimeoutError` will be raised. " -"*timeout* can be an int or float. If *timeout* is not specified or " -"``None``, there is no limit to the wait time." -msgstr "" - -#: library/concurrent.futures.rst:552 -msgid "If the call completed without raising, ``None`` is returned." -msgstr "" - -#: library/concurrent.futures.rst:556 -msgid "" -"Attaches the callable *fn* to the future. *fn* will be called, with the " -"future as its only argument, when the future is cancelled or finishes " -"running." -msgstr "" - -#: library/concurrent.futures.rst:560 -msgid "" -"Added callables are called in the order that they were added and are always " -"called in a thread belonging to the process that added them. If the " -"callable raises an :exc:`Exception` subclass, it will be logged and " -"ignored. If the callable raises a :exc:`BaseException` subclass, the " -"behavior is undefined." -msgstr "" - -#: library/concurrent.futures.rst:566 -msgid "" -"If the future has already completed or been cancelled, *fn* will be called " -"immediately." -msgstr "" - -#: library/concurrent.futures.rst:569 -msgid "" -"The following :class:`Future` methods are meant for use in unit tests " -"and :class:`Executor` implementations." -msgstr "" - -#: library/concurrent.futures.rst:574 -msgid "" -"This method should only be called by :class:`Executor` implementations " -"before executing the work associated with the :class:`Future` and by unit " -"tests." -msgstr "" - -#: library/concurrent.futures.rst:578 -msgid "" -"If the method returns ``False`` then the :class:`Future` was cancelled, " -"i.e. :meth:`Future.cancel` was called and returned ``True``. Any threads " -"waiting on the :class:`Future` completing (i.e. through :func:`as_completed` " -"or :func:`wait`) will be woken up." -msgstr "" - -#: library/concurrent.futures.rst:583 -msgid "" -"If the method returns ``True`` then the :class:`Future` was not cancelled " -"and has been put in the running state, i.e. calls to :meth:`Future.running` " -"will return ``True``." -msgstr "" - -#: library/concurrent.futures.rst:587 -msgid "" -"This method can only be called once and cannot be called " -"after :meth:`Future.set_result` or :meth:`Future.set_exception` have been " -"called." -msgstr "" - -#: library/concurrent.futures.rst:593 -msgid "" -"Sets the result of the work associated with the :class:`Future` to *result*." -msgstr "" - -#: library/concurrent.futures.rst:596 library/concurrent.futures.rst:609 -msgid "" -"This method should only be used by :class:`Executor` implementations and " -"unit tests." -msgstr "" - -#: library/concurrent.futures.rst:599 library/concurrent.futures.rst:612 -msgid "" -"This method raises :exc:`concurrent.futures.InvalidStateError` if " -"the :class:`Future` is already done." -msgstr "" - -#: library/concurrent.futures.rst:606 -msgid "" -"Sets the result of the work associated with the :class:`Future` to " -"the :class:`Exception` *exception*." -msgstr "" - -#: library/concurrent.futures.rst:618 -msgid "Module Functions" -msgstr "" - -#: library/concurrent.futures.rst:622 -msgid "" -"Wait for the :class:`Future` instances (possibly created by " -"different :class:`Executor` instances) given by *fs* to complete. Duplicate " -"futures given to *fs* are removed and will be returned only once. Returns a " -"named 2-tuple of sets. The first set, named ``done``, contains the futures " -"that completed (finished or cancelled futures) before the wait completed. " -"The second set, named ``not_done``, contains the futures that did not " -"complete (pending or running futures)." -msgstr "" - -#: library/concurrent.futures.rst:630 -msgid "" -"*timeout* can be used to control the maximum number of seconds to wait " -"before returning. *timeout* can be an int or float. If *timeout* is not " -"specified or ``None``, there is no limit to the wait time." -msgstr "" - -#: library/concurrent.futures.rst:634 -msgid "" -"*return_when* indicates when this function should return. It must be one of " -"the following constants:" -msgstr "" -"*return_when* indique quand la fonction doit se terminer. Il peut prendre " -"les valeurs suivantes :" - -#: library/concurrent.futures.rst:640 -msgid "Constant" -msgstr "Constante" - -#: library/concurrent.futures.rst:641 -msgid "Description" -msgstr "Description" - -#: library/concurrent.futures.rst:644 -msgid "The function will return when any future finishes or is cancelled." -msgstr "" -"La fonction se termine lorsque n'importe quel futur se termine ou est annulé." - -#: library/concurrent.futures.rst:647 -#, fuzzy -msgid "" -"The function will return when any future finishes by raising an exception. " -"If no future raises an exception then it is equivalent " -"to :const:`ALL_COMPLETED`." -msgstr "" -"La fonction se termine lorsque n'importe quel futur se termine en levant une " -"exception. Si aucun *futur* ne lève d'exception, équivaut " -"à :const:`ALL_COMPLETED`." - -#: library/concurrent.futures.rst:652 -msgid "The function will return when all futures finish or are cancelled." -msgstr "" -"La fonction se termine lorsque les *futurs* sont tous finis ou annulés." - -#: library/concurrent.futures.rst:656 -msgid "" -"Returns an iterator over the :class:`Future` instances (possibly created by " -"different :class:`Executor` instances) given by *fs* that yields futures as " -"they complete (finished or cancelled futures). Any futures given by *fs* " -"that are duplicated will be returned once. Any futures that completed " -"before :func:`as_completed` is called will be yielded first. The returned " -"iterator raises a :exc:`TimeoutError` if :meth:`~iterator.__next__` is " -"called and the result isn't available after *timeout* seconds from the " -"original call to :func:`as_completed`. *timeout* can be an int or float. If " -"*timeout* is not specified or ``None``, there is no limit to the wait time." -msgstr "" - -#: library/concurrent.futures.rst:669 -msgid ":pep:`3148` -- futures - execute computations asynchronously" -msgstr "" - -#: library/concurrent.futures.rst:670 -msgid "" -"The proposal which described this feature for inclusion in the Python " -"standard library." -msgstr "" - -#: library/concurrent.futures.rst:675 -msgid "Exception classes" -msgstr "" - -#: library/concurrent.futures.rst:681 -msgid "Raised when a future is cancelled." -msgstr "" - -#: library/concurrent.futures.rst:685 -msgid "" -"A deprecated alias of :exc:`TimeoutError`, raised when a future operation " -"exceeds the given timeout." -msgstr "" - -#: library/concurrent.futures.rst:690 -msgid "This class was made an alias of :exc:`TimeoutError`." -msgstr "cette classe est devenue un alias de :exc:`TimeoutError`." - -#: library/concurrent.futures.rst:695 -msgid "" -"Derived from :exc:`RuntimeError`, this exception class is raised when an " -"executor is broken for some reason, and cannot be used to submit or execute " -"new tasks." -msgstr "" - -#: library/concurrent.futures.rst:703 -msgid "" -"Raised when an operation is performed on a future that is not allowed in the " -"current state." -msgstr "" - -#: library/concurrent.futures.rst:712 -msgid "" -"Derived from :exc:`~concurrent.futures.BrokenExecutor`, this exception class " -"is raised when one of the workers of " -"a :class:`~concurrent.futures.ThreadPoolExecutor` has failed initializing." -msgstr "" - -#: library/concurrent.futures.rst:723 -msgid "" -"Derived from :exc:`~concurrent.futures.thread.BrokenThreadPool`, this " -"exception class is raised when one of the workers of " -"a :class:`~concurrent.futures.InterpreterPoolExecutor` has failed " -"initializing." -msgstr "" - -#: library/concurrent.futures.rst:734 -msgid "" -"Derived from :exc:`~concurrent.futures.BrokenExecutor` " -"(formerly :exc:`RuntimeError`), this exception class is raised when one of " -"the workers of a :class:`~concurrent.futures.ProcessPoolExecutor` has " -"terminated in a non-clean fashion (for example, if it was killed from the " -"outside)." -msgstr "" - -#~ msgid ":const:`FIRST_COMPLETED`" -#~ msgstr ":const:`FIRST_COMPLETED`" - -#~ msgid ":const:`FIRST_EXCEPTION`" -#~ msgstr ":const:`FIRST_EXCEPTION`" - -#~ msgid ":const:`ALL_COMPLETED`" -#~ msgstr ":const:`ALL_COMPLETED`" diff --git a/library/concurrent.interpreters.po b/library/concurrent.interpreters.po deleted file mode 100644 index 18ffb20b87..0000000000 --- a/library/concurrent.interpreters.po +++ /dev/null @@ -1,487 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/concurrent.interpreters.rst:2 -msgid "" -":mod:`!concurrent.interpreters` --- Multiple interpreters in the same process" -msgstr "" - -#: library/concurrent.interpreters.rst:9 -msgid "**Source code:** :source:`Lib/concurrent/interpreters`" -msgstr "" - -#: library/concurrent.interpreters.rst:13 -msgid "" -"The :mod:`!concurrent.interpreters` module constructs higher-level " -"interfaces on top of the lower level :mod:`!_interpreters` module." -msgstr "" - -#: library/concurrent.interpreters.rst:16 -msgid "" -"The module is primarily meant to provide a basic API for managing " -"interpreters (AKA \"subinterpreters\") and running things in them. Running " -"mostly involves switching to an interpreter (in the current thread) and " -"calling a function in that execution context." -msgstr "" - -#: library/concurrent.interpreters.rst:21 -msgid "" -"For concurrency, interpreters themselves (and this module) don't provide " -"much more than isolation, which on its own isn't useful. Actual concurrency " -"is available separately through :mod:`threads ` See `below " -"`_" -msgstr "" - -#: library/concurrent.interpreters.rst:28 -msgid ":class:`~concurrent.futures.InterpreterPoolExecutor`" -msgstr "" - -#: library/concurrent.interpreters.rst:29 -msgid "Combines threads with interpreters in a familiar interface." -msgstr "" - -#: library/concurrent.interpreters.rst:33 -msgid ":ref:`isolating-extensions-howto`" -msgstr "" - -#: library/concurrent.interpreters.rst:34 -msgid "How to update an extension module to support multiple interpreters." -msgstr "" - -#: library/concurrent.interpreters.rst:36 -msgid ":pep:`554`" -msgstr "" - -#: library/concurrent.interpreters.rst:38 -msgid ":pep:`734`" -msgstr "" - -#: library/concurrent.interpreters.rst:40 -msgid ":pep:`684`" -msgstr "" - -#: includes/wasm-notavail.rst:3 -msgid "Availability" -msgstr "Disponibilité" - -#: includes/wasm-notavail.rst:5 -msgid "" -"This module does not work or is not available on WebAssembly. See :ref:`wasm-" -"availability` for more information." -msgstr "" - -#: library/concurrent.interpreters.rst:48 -msgid "Key details" -msgstr "" - -#: library/concurrent.interpreters.rst:50 -msgid "" -"Before we dive in further, there are a small number of details to keep in " -"mind about using multiple interpreters:" -msgstr "" - -#: library/concurrent.interpreters.rst:53 -msgid "`isolated `_, by default" -msgstr "" - -#: library/concurrent.interpreters.rst:54 -msgid "no implicit threads" -msgstr "" - -#: library/concurrent.interpreters.rst:55 -msgid "not all PyPI packages support use in multiple interpreters yet" -msgstr "" - -#: library/concurrent.interpreters.rst:63 -msgid "Introduction" -msgstr "Introduction" - -#: library/concurrent.interpreters.rst:65 -msgid "" -"An \"interpreter\" is effectively the execution context of the Python " -"runtime. It contains all of the state the runtime needs to execute a " -"program. This includes things like the import state and builtins. (Each " -"thread, even if there's only the main thread, has some extra runtime state, " -"in addition to the current interpreter, related to the current exception and " -"the bytecode eval loop.)" -msgstr "" - -#: library/concurrent.interpreters.rst:72 -msgid "" -"The concept and functionality of the interpreter have been a part of Python " -"since version 2.2, but the feature was only available through the C-API and " -"not well known, and the `isolation `_ was relatively " -"incomplete until version 3.12." -msgstr "" - -#: library/concurrent.interpreters.rst:80 -msgid "Multiple Interpreters and Isolation" -msgstr "" - -#: library/concurrent.interpreters.rst:82 -msgid "" -"A Python implementation may support using multiple interpreters in the same " -"process. CPython has this support. Each interpreter is effectively " -"isolated from the others (with a limited number of carefully managed process-" -"global exceptions to the rule)." -msgstr "" - -#: library/concurrent.interpreters.rst:87 -msgid "" -"That isolation is primarily useful as a strong separation between distinct " -"logical components of a program, where you want to have careful control of " -"how those components interact." -msgstr "" - -#: library/concurrent.interpreters.rst:93 -msgid "" -"Interpreters in the same process can technically never be strictly isolated " -"from one another since there are few restrictions on memory access within " -"the same process. The Python runtime makes a best effort at isolation but " -"extension modules may easily violate that. Therefore, do not use multiple " -"interpreters in security-sensitive situations, where they shouldn't have " -"access to each other's data." -msgstr "" - -#: library/concurrent.interpreters.rst:101 -msgid "Running in an Interpreter" -msgstr "" - -#: library/concurrent.interpreters.rst:103 -msgid "" -"Running in a different interpreter involves switching to it in the current " -"thread and then calling some function. The runtime will execute the " -"function using the current interpreter's state. The :mod:`!" -"concurrent.interpreters` module provides a basic API for creating and " -"managing interpreters, as well as the switch-and-call operation." -msgstr "" - -#: library/concurrent.interpreters.rst:110 -msgid "" -"No other threads are automatically started for the operation. There is `a " -"helper `_ for that though. There is another " -"dedicated helper for calling the builtin :func:`exec` in an interpreter." -msgstr "" - -#: library/concurrent.interpreters.rst:115 -msgid "" -"When :func:`exec` (or :func:`eval`) are called in an interpreter, they run " -"using the interpreter's :mod:`!__main__` module as the \"globals\" " -"namespace. The same is true for functions that aren't associated with any " -"module. This is the same as how scripts invoked from the command-line run " -"in the :mod:`!__main__` module." -msgstr "" - -#: library/concurrent.interpreters.rst:125 -msgid "Concurrency and Parallelism" -msgstr "" - -#: library/concurrent.interpreters.rst:127 -msgid "" -"As noted earlier, interpreters do not provide any concurrency on their own. " -"They strictly represent the isolated execution context the runtime will use " -"*in the current thread*. That isolation makes them similar to processes, " -"but they still enjoy in-process efficiency, like threads." -msgstr "" - -#: library/concurrent.interpreters.rst:133 -msgid "" -"All that said, interpreters do naturally support certain flavors of " -"concurrency. There's a powerful side effect of that isolation. It enables a " -"different approach to concurrency than you can take with async or threads. " -"It's a similar concurrency model to CSP or the actor model, a model which is " -"relatively easy to reason about." -msgstr "" - -#: library/concurrent.interpreters.rst:140 -msgid "" -"You can take advantage of that concurrency model in a single thread, " -"switching back and forth between interpreters, Stackless-style. However, " -"this model is more useful when you combine interpreters with multiple " -"threads. This mostly involves starting a new thread, where you switch to " -"another interpreter and run what you want there." -msgstr "" - -#: library/concurrent.interpreters.rst:146 -msgid "" -"Each actual thread in Python, even if you're only running in the main " -"thread, has its own *current* execution context. Multiple threads can use " -"the same interpreter or different ones." -msgstr "" - -#: library/concurrent.interpreters.rst:150 -msgid "" -"At a high level, you can think of the combination of threads and " -"interpreters as threads with opt-in sharing." -msgstr "" - -#: library/concurrent.interpreters.rst:153 -msgid "" -"As a significant bonus, interpreters are sufficiently isolated that they do " -"not share the :term:`GIL`, which means combining threads with multiple " -"interpreters enables full multi-core parallelism. (This has been the case " -"since Python 3.12.)" -msgstr "" - -#: library/concurrent.interpreters.rst:159 -msgid "Communication Between Interpreters" -msgstr "" - -#: library/concurrent.interpreters.rst:161 -msgid "" -"In practice, multiple interpreters are useful only if we have a way to " -"communicate between them. This usually involves some form of message " -"passing, but can even mean sharing data in some carefully managed way." -msgstr "" - -#: library/concurrent.interpreters.rst:166 -msgid "" -"With this in mind, the :mod:`!concurrent.interpreters` module provides " -"a :class:`queue.Queue` implementation, available " -"through :func:`create_queue`." -msgstr "" - -#: library/concurrent.interpreters.rst:173 -msgid "\"Sharing\" Objects" -msgstr "" - -#: library/concurrent.interpreters.rst:175 -msgid "" -"Any data actually shared between interpreters loses the thread-safety " -"provided by the :term:`GIL`. There are various options for dealing with " -"this in extension modules. However, from Python code the lack of thread-" -"safety means objects can't actually be shared, with a few exceptions. " -"Instead, a copy must be created, which means mutable objects won't stay in " -"sync." -msgstr "" - -#: library/concurrent.interpreters.rst:182 -msgid "" -"By default, most objects are copied with :mod:`pickle` when they are passed " -"to another interpreter. Nearly all of the immutable builtin objects are " -"either directly shared or copied efficiently. For example:" -msgstr "" - -#: library/concurrent.interpreters.rst:186 -msgid ":const:`None`" -msgstr ":const:`None`" - -#: library/concurrent.interpreters.rst:187 -msgid ":class:`bool` (:const:`True` and :const:`False`)" -msgstr "" - -#: library/concurrent.interpreters.rst:188 -msgid ":class:`bytes`" -msgstr ":class:`bytes`" - -#: library/concurrent.interpreters.rst:189 -msgid ":class:`str`" -msgstr ":class:`str`" - -#: library/concurrent.interpreters.rst:190 -msgid ":class:`int`" -msgstr ":class:`int`" - -#: library/concurrent.interpreters.rst:191 -msgid ":class:`float`" -msgstr ":class:`float`" - -#: library/concurrent.interpreters.rst:192 -msgid ":class:`tuple` (of similarly supported objects)" -msgstr "" - -#: library/concurrent.interpreters.rst:194 -msgid "" -"There is a small number of Python types that actually share mutable data " -"between interpreters:" -msgstr "" - -#: library/concurrent.interpreters.rst:197 -msgid ":class:`memoryview`" -msgstr ":class:`memoryview`" - -#: library/concurrent.interpreters.rst:198 -msgid ":class:`Queue`" -msgstr ":class:`Queue`" - -#: library/concurrent.interpreters.rst:202 -msgid "Reference" -msgstr "Référence" - -#: library/concurrent.interpreters.rst:204 -msgid "This module defines the following functions:" -msgstr "Ce module définit les fonctions suivantes :" - -#: library/concurrent.interpreters.rst:208 -msgid "" -"Return a :class:`list` of :class:`Interpreter` objects, one for each " -"existing interpreter." -msgstr "" - -#: library/concurrent.interpreters.rst:213 -msgid "" -"Return an :class:`Interpreter` object for the currently running interpreter." -msgstr "" - -#: library/concurrent.interpreters.rst:218 -msgid "" -"Return an :class:`Interpreter` object for the main interpreter. This is the " -"interpreter the runtime created to run the :term:`REPL` or the script given " -"at the command-line. It is usually the only one." -msgstr "" - -#: library/concurrent.interpreters.rst:224 -msgid "" -"Initialize a new (idle) Python interpreter and return a :class:`Interpreter` " -"object for it." -msgstr "" - -#: library/concurrent.interpreters.rst:229 -msgid "" -"Initialize a new cross-interpreter queue and return a :class:`Queue` object " -"for it." -msgstr "" - -#: library/concurrent.interpreters.rst:234 -msgid "Interpreter objects" -msgstr "" - -#: library/concurrent.interpreters.rst:238 -msgid "A single interpreter in the current process." -msgstr "" - -#: library/concurrent.interpreters.rst:240 -msgid "" -"Generally, :class:`Interpreter` shouldn't be called directly. Instead, " -"use :func:`create` or one of the other module functions." -msgstr "" - -#: library/concurrent.interpreters.rst:245 -#: library/concurrent.interpreters.rst:251 -#: library/concurrent.interpreters.rst:330 -msgid "(read-only)" -msgstr "" - -#: library/concurrent.interpreters.rst:247 -msgid "The underlying interpreter's ID." -msgstr "" - -#: library/concurrent.interpreters.rst:253 -msgid "A string describing where the interpreter came from." -msgstr "" - -#: library/concurrent.interpreters.rst:257 -msgid "" -"Return ``True`` if the interpreter is currently executing code in its :mod:`!" -"__main__` module and ``False`` otherwise." -msgstr "" - -#: library/concurrent.interpreters.rst:262 -msgid "Finalize and destroy the interpreter." -msgstr "" - -#: library/concurrent.interpreters.rst:266 -msgid "Bind objects in the interpreter's :mod:`!__main__` module." -msgstr "" - -#: library/concurrent.interpreters.rst:268 -#: library/concurrent.interpreters.rst:325 -msgid "" -"Some objects are actually shared and some are copied efficiently, but most " -"are copied via :mod:`pickle`. See :ref:`interp-object-sharing`." -msgstr "" - -#: library/concurrent.interpreters.rst:273 -msgid "Run the given source code in the interpreter (in the current thread)." -msgstr "" - -#: library/concurrent.interpreters.rst:277 -msgid "" -"Return the result of calling running the given function in the interpreter " -"(in the current thread)." -msgstr "" - -#: library/concurrent.interpreters.rst:284 -msgid "Run the given function in the interpreter (in a new thread)." -msgstr "" - -#: library/concurrent.interpreters.rst:287 -msgid "Exceptions" -msgstr "Exceptions" - -#: library/concurrent.interpreters.rst:291 -msgid "" -"This exception, a subclass of :exc:`Exception`, is raised when an " -"interpreter-related error happens." -msgstr "" - -#: library/concurrent.interpreters.rst:296 -msgid "" -"This exception, a subclass of :exc:`InterpreterError`, is raised when the " -"targeted interpreter no longer exists." -msgstr "" - -#: library/concurrent.interpreters.rst:301 -msgid "" -"This exception, a subclass of :exc:`InterpreterError`, is raised when the " -"running code raised an uncaught exception." -msgstr "" - -#: library/concurrent.interpreters.rst:306 -msgid "A basic snapshot of the exception raised in the other interpreter." -msgstr "" - -#: library/concurrent.interpreters.rst:312 -msgid "" -"This exception, a subclass of :exc:`TypeError`, is raised when an object " -"cannot be sent to another interpreter." -msgstr "" - -#: library/concurrent.interpreters.rst:317 -msgid "Communicating Between Interpreters" -msgstr "" - -#: library/concurrent.interpreters.rst:321 -msgid "" -"A wrapper around a low-level, cross-interpreter queue, which implements " -"the :class:`queue.Queue` interface. The underlying queue can only be " -"created through :func:`create_queue`." -msgstr "" - -#: library/concurrent.interpreters.rst:332 -msgid "The queue's ID." -msgstr "" - -#: library/concurrent.interpreters.rst:337 -msgid "" -"This exception, a subclass of :exc:`queue.Empty`, is raised from :meth:`!" -"Queue.get` and :meth:`!Queue.get_nowait` when the queue is empty." -msgstr "" - -#: library/concurrent.interpreters.rst:343 -msgid "" -"This exception, a subclass of :exc:`queue.Full`, is raised from :meth:`!" -"Queue.put` and :meth:`!Queue.put_nowait` when the queue is full." -msgstr "" - -#: library/concurrent.interpreters.rst:349 -msgid "Basic usage" -msgstr "Utilisation de base" - -#: library/concurrent.interpreters.rst:351 -msgid "Creating an interpreter and running code in it::" -msgstr "" diff --git a/library/concurrent.po b/library/concurrent.po deleted file mode 100644 index 3fa84d791a..0000000000 --- a/library/concurrent.po +++ /dev/null @@ -1,36 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2017-10-18 09:28+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/concurrent.rst:2 -#, fuzzy -msgid "The :mod:`!concurrent` package" -msgstr "Le paquet :mod:`concurrent`" - -#: library/concurrent.rst:4 -msgid "This package contains the following modules:" -msgstr "" - -#: library/concurrent.rst:6 -msgid ":mod:`concurrent.futures` -- Launching parallel tasks" -msgstr ":mod:`concurrent.futures` -- Lancer des tâches en parallèle" - -#: library/concurrent.rst:7 -msgid "" -":mod:`concurrent.interpreters` -- Multiple interpreters in the same process" -msgstr "" - -#~ msgid "Currently, there is only one module in this package:" -#~ msgstr "Il n'y a actuellement qu'un module dans ce paquet :" diff --git a/library/configparser.po b/library/configparser.po deleted file mode 100644 index d82d49cff4..0000000000 --- a/library/configparser.po +++ /dev/null @@ -1,1592 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-10-31 11:21+0100\n" -"Last-Translator: Hugo \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 3.5\n" - -#: library/configparser.rst:2 -#, fuzzy -msgid ":mod:`!configparser` --- Configuration file parser" -msgstr ":mod:`configparser` — Lecture et écriture de fichiers de configuration" - -#: library/configparser.rst:7 -msgid "**Source code:** :source:`Lib/configparser.py`" -msgstr "**Code source :** :source:`Lib/configparser.py`" - -#: library/configparser.rst:17 -msgid "" -"This module provides the :class:`ConfigParser` class which implements a " -"basic configuration language which provides a structure similar to what's " -"found in Microsoft Windows INI files. You can use this to write Python " -"programs which can be customized by end users easily." -msgstr "" -"Ce module fournit la classe :class:`ConfigParser`. Cette classe implémente " -"un langage de configuration basique, proche de ce que l'on peut trouver dans " -"les fichiers *INI* de Microsoft Windows. Vous pouvez utiliser ce module pour " -"écrire des programmes Python qui sont facilement configurables par " -"l'utilisateur final." - -#: library/configparser.rst:24 -msgid "" -"This library does *not* interpret or write the value-type prefixes used in " -"the Windows Registry extended version of INI syntax." -msgstr "" -"Ce module *n'implémente pas* la version étendue de la syntaxe *INI* qui " -"permet de lire ou d'écrire des valeurs dans la base de registre Windows en " -"utilisant divers préfixes." - -#: library/configparser.rst:28 -msgid "" -"Be cautious when parsing data from untrusted sources. A malicious INI file " -"may cause the decoder to consume considerable CPU and memory resources. " -"Limiting the size of data to be parsed is recommended." -msgstr "" - -#: library/configparser.rst:34 -msgid "Module :mod:`tomllib`" -msgstr "Module :mod:`tomlib`" - -#: library/configparser.rst:35 -msgid "" -"TOML is a well-specified format for application configuration files. It is " -"specifically designed to be an improved version of INI." -msgstr "" -"TOML est un format bien spécifié pour les fichiers de configuration " -"d'application. Il est spécifiquement conçu pour être une version améliorée " -"d'INI." - -#: library/configparser.rst:38 -msgid "Module :mod:`shlex`" -msgstr "Module :mod:`shlex`" - -#: library/configparser.rst:39 -#, fuzzy -msgid "" -"Support for creating Unix shell-like mini-languages which can also be used " -"for application configuration files." -msgstr "" -"Ce module fournit les outils permettant de créer des mini-langages de " -"programmation ressemblant au shell Unix, qui peuvent être utilisés comme " -"alternative pour les fichiers de configuration d'une application." - -#: library/configparser.rst:42 -msgid "Module :mod:`json`" -msgstr "Module :mod:`json`" - -#: library/configparser.rst:43 -#, fuzzy -msgid "" -"The ``json`` module implements a subset of JavaScript syntax which is " -"sometimes used for configuration, but does not support comments." -msgstr "" -"Le module *json* implémente un sous-ensemble de la syntaxe JavaScript, qui " -"peut aussi être utilisée à cet effet." - -#: library/configparser.rst:59 -msgid "Quick Start" -msgstr "Premiers pas" - -#: library/configparser.rst:61 -msgid "Let's take a very basic configuration file that looks like this:" -msgstr "" -"Prenons pour exemple un fichier de configuration très simple ressemblant à " -"ceci :" - -#: library/configparser.rst:78 -#, fuzzy -msgid "" -"The structure of INI files is described `in the following section " -"<#supported-ini-file-structure>`_. Essentially, the file consists of " -"sections, each of which contains keys with values. :mod:`!configparser` " -"classes can read and write such files. Let's start by creating the above " -"configuration file programmatically." -msgstr "" -"La structure des fichiers *INI* est décrite dans la `section suivante " -"<#supported-ini-file-structure>`_. En bref, chaque fichier est constitué de " -"sections, chacune des sections comprenant des clés associées à des valeurs. " -"Les classes du module :mod:`configparser` peuvent écrire et lire de tels " -"fichiers. Commençons par le code qui permet de générer le fichier ci-dessus." - -#: library/configparser.rst:102 -msgid "" -"As you can see, we can treat a config parser much like a dictionary. There " -"are differences, `outlined later <#mapping-protocol-access>`_, but the " -"behavior is very close to what you would expect from a dictionary." -msgstr "" -"Comme vous pouvez le voir, nous pouvons manipuler l'instance renvoyée par " -"l'analyse du fichier de configuration comme s'il s'agissait d'un " -"dictionnaire. Il y a des différences, comme `explicité ci-dessous <#mapping-" -"protocol-access>`_, mais le comportement de l'instance est très proche de ce " -"que vous pourriez attendre d'un dictionnaire." - -#: library/configparser.rst:106 -msgid "" -"Now that we have created and saved a configuration file, let's read it back " -"and explore the data it holds." -msgstr "" -"Nous venons de créer et sauvegarder un fichier de configuration. Voyons " -"maintenant comment nous pouvons le lire et accéder aux données qu'il " -"contient." - -#: library/configparser.rst:141 -msgid "" -"As we can see above, the API is pretty straightforward. The only bit of " -"magic involves the ``DEFAULT`` section which provides default values for all " -"other sections [1]_. Note also that keys in sections are case-insensitive " -"and stored in lowercase [1]_." -msgstr "" -"Comme vous le voyez, l'API est assez simple à utiliser. La seule partie un " -"peu magique concerne la section ``DEFAULT``, qui fournit les valeurs par " -"défaut pour toutes les autres sections [1]_. Notez également que les clés à " -"l’intérieur des sections ne sont pas sensibles à la casse et qu'elles sont " -"stockées en minuscules. [1]_." - -#: library/configparser.rst:1001 -msgid "" -"It is possible to read several configurations into a " -"single :class:`ConfigParser`, where the most recently added configuration " -"has the highest priority. Any conflicting keys are taken from the more " -"recent configuration while the previously existing keys are retained. The " -"example below reads in an ``override.ini`` file, which will override any " -"conflicting keys from the ``example.ini`` file." -msgstr "" -"Il est possible de lire plusieurs configurations dans un seul " -"objet :class:`ConfigParser`, où la configuration ajoutée la plus récemment a " -"la priorité la plus élevée. Toutes les clés en conflit sont prises de la " -"configuration la plus récente tandis que les anciennes clés déjà existantes " -"sont mises de côté. L'exemple suivant lit un fichier ``override.ini`` qui " -"prendra le dessus sur toutes les clés en conflit avec le fichier " -"``exemple.ini``." - -#: library/configparser.rst:172 -msgid "" -"This behaviour is equivalent to a :meth:`ConfigParser.read` call with " -"several files passed to the *filenames* parameter." -msgstr "" -"Ce comportement est équivalent à un appel à :meth:`ConfigParser.read` avec " -"plusieurs fichiers passés dans le paramètre *filenames*." - -#: library/configparser.rst:177 -msgid "Supported Datatypes" -msgstr "Types de données prises en charge" - -#: library/configparser.rst:179 -msgid "" -"Config parsers do not guess datatypes of values in configuration files, " -"always storing them internally as strings. This means that if you need " -"other datatypes, you should convert on your own:" -msgstr "" -"Les lecteurs de configuration n'essayent jamais de deviner le type des " -"valeurs présentes dans les fichiers de configuration, et elles sont toujours " -"stockées en tant que chaînes de caractères. Ainsi, si vous avez besoin d'un " -"type différent, vous devez effectuer la conversion vous-même :" - -#: library/configparser.rst:190 -msgid "" -"Since this task is so common, config parsers provide a range of handy getter " -"methods to handle integers, floats and booleans. The last one is the most " -"interesting because simply passing the value to ``bool()`` would do no good " -"since ``bool('False')`` is still ``True``. This is why config parsers also " -"provide :meth:`~ConfigParser.getboolean`. This method is case-insensitive " -"and recognizes Boolean values from ``'yes'``/``'no'``, ``'on'``/``'off'``, " -"``'true'``/``'false'`` and ``'1'``/``'0'`` [1]_. For example:" -msgstr "" -"Puisque que cette tâche doit être fréquemment accomplie, les lecteurs de " -"configurations fournissent un ensemble d'accesseurs permettant de gérer les " -"entiers, les flottants et les booléens plus facilement. Le cas des booléens " -"est le plus pertinent. En effet, vous ne pouvez pas vous contenter " -"d'utiliser la fonction ``bool()`` directement puisque ``bool('False')`` " -"renvoie ``True``. C'est pourquoi les lecteurs fournissent également la " -"méthode :meth:`~ConfigParser.getboolean`. Cette méthode n'est pas sensible à " -"la casse et interprète correctement les valeurs booléennes associées aux " -"chaînes de caractères comme ``'yes'``-``'no'``, ``'on'``-``'off'``, " -"``'true'``-``'false'`` et ``'1'``-``'0'`` [1]_. Par exemple :" - -#: library/configparser.rst:207 -msgid "" -"Apart from :meth:`~ConfigParser.getboolean`, config parsers also provide " -"equivalent :meth:`~ConfigParser.getint` and :meth:`~ConfigParser.getfloat` " -"methods. You can register your own converters and customize the provided " -"ones. [1]_" -msgstr "" -"En plus de :meth:`~ConfigParser.getboolean`, les lecteurs de configurations " -"fournissent également des méthodes similaires " -"comme :meth:`~ConfigParser.getint` et :meth:`~ConfigParser.getfloat`. Vous " -"pouvez enregistrer vos propres convertisseurs et personnaliser ceux déjà " -"fournis. [1]_" - -#: library/configparser.rst:213 -msgid "Fallback Values" -msgstr "Valeurs de substitution" - -#: library/configparser.rst:215 -#, fuzzy -msgid "" -"As with a dictionary, you can use a section's :meth:`~ConfigParser.get` " -"method to provide fallback values:" -msgstr "" -"Comme pour un dictionnaire, vous pouvez utiliser la méthode :meth:`get` " -"d'une section en spécifiant une valeur de substitution :" - -#: library/configparser.rst:228 -#, fuzzy -msgid "" -"Please note that default values have precedence over fallback values. For " -"instance, in our example the ``'CompressionLevel'`` key was specified only " -"in the ``'DEFAULT'`` section. If we try to get it from the section " -"``'topsecret.server.example'``, we will always get the default, even if we " -"specify a fallback:" -msgstr "" -"Notez que les valeurs par défaut sont prioritaires par rapport aux valeurs " -"de substitution. Dans note exemple, la valeur de la clé ``CompressionLevel`` " -"était spécifiée uniquement dans la section ``DEFAULT``. Si nous essayons de " -"la récupérer depuis la section ``'topsecret.server.com'``, nous obtenons la " -"valeur par défaut, même en ayant spécifié une valeur de substitution :" - -#: library/configparser.rst:239 -#, fuzzy -msgid "" -"One more thing to be aware of is that the parser-" -"level :meth:`~ConfigParser.get` method provides a custom, more complex " -"interface, maintained for backwards compatibility. When using this method, " -"a fallback value can be provided via the ``fallback`` keyword-only argument:" -msgstr "" -"Il est important de savoir que la méthode :meth:`get` appelée au niveau de " -"l'analyseur fournit une interface particulière et plus complexe, qui est " -"maintenue pour des raisons de rétrocompatibilité. Vous pouvez fournir une " -"valeur de substitution via l'argument obligatoirement nommé ``fallback`` :" - -#: library/configparser.rst:250 -msgid "" -"The same ``fallback`` argument can be used with " -"the :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` " -"and :meth:`~ConfigParser.getboolean` methods, for example:" -msgstr "" -"L'argument ``fallback`` peut être utilisé de la même façon avec les " -"méthodes :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` " -"et :meth:`~ConfigParser.getboolean`. Par exemple :" - -#: library/configparser.rst:266 -msgid "Supported INI File Structure" -msgstr "Structure des fichiers *INI* prise en change" - -#: library/configparser.rst:268 -#, fuzzy -msgid "" -"A configuration file consists of sections, each led by a ``[section]`` " -"header, followed by key/value entries separated by a specific string (``=`` " -"or ``:`` by default [1]_). By default, section names are case sensitive but " -"keys are not [1]_. Leading and trailing whitespace is removed from keys and " -"values. Values can be omitted if the parser is configured to allow it [1]_, " -"in which case the key/value delimiter may also be left out. Values can also " -"span multiple lines, as long as they are indented deeper than the first line " -"of the value. Depending on the parser's mode, blank lines may be treated as " -"parts of multiline values or ignored." -msgstr "" -"Un fichier de configuration est constitué de sections. Chacune des sections " -"commence par un en-tête ``[section]``, suivi d'une liste de définitions clés-" -"valeurs séparées par une chaîne de caractères spécifique (``=`` ou ``:`` par " -"défaut [1]_). Par défaut, les noms des sections sont sensibles à la casse " -"mais pas les clés [1]_. Les caractères d'espacement en début et en fin des " -"clés et des valeurs sont supprimés. Les valeurs peuvent être absentes, " -"auquel cas il est possible d'omettre le délimiteur entre clé et valeur. Les " -"valeurs peuvent s'étendre sur plusieurs lignes, à partir du moment où les " -"lignes supplémentaires sont plus indentées que la première ligne. Les lignes " -"vides peuvent être considérées comme faisant partie des valeurs multi " -"lignes, en fonction de la configuration de l'analyseur." - -#: library/configparser.rst:278 -msgid "" -"By default, a valid section name can be any string that does not contain '\\" -"\\n'. To change this, see :attr:`ConfigParser.SECTCRE`." -msgstr "" -"Par défaut, un nom de section valide peut-être n'importe quelle chaîne de " -"caractères ne contenant pas le caractère ``'\\\\n'``. Pour modifier cela, " -"voir :attr:`ConfigParser.SECTCRE`." - -#: library/configparser.rst:281 -msgid "" -"The first section name may be omitted if the parser is configured to allow " -"an unnamed top level section with ``allow_unnamed_section=True``. In this " -"case, the keys/values may be retrieved by :const:`UNNAMED_SECTION` as in " -"``config[UNNAMED_SECTION]``." -msgstr "" - -#: library/configparser.rst:286 -msgid "" -"Configuration files may include comments, prefixed by specific characters " -"(``#`` and ``;`` by default [1]_). Comments may appear on their own on an " -"otherwise empty line, possibly indented. [1]_" -msgstr "" -"Les fichiers de configuration peuvent contenir des commentaires, préfixés " -"par des caractères spécifiques (``#`` et ``;`` par défaut [1]_). Les " -"commentaires peuvent apparaître à l'emplacement d'une ligne vide, et peuvent " -"aussi être indentés. [1]_" - -#: library/configparser.rst:374 -msgid "For example:" -msgstr "Par exemple :" - -#: library/configparser.rst:340 -msgid "Unnamed Sections" -msgstr "" - -#: library/configparser.rst:342 -msgid "" -"The name of the first section (or unique) may be omitted and values " -"retrieved by the :const:`UNNAMED_SECTION` attribute." -msgstr "" - -#: library/configparser.rst:359 -msgid "Interpolation of values" -msgstr "Interpolation des valeurs" - -#: library/configparser.rst:361 -msgid "" -"On top of the core functionality, :class:`ConfigParser` supports " -"interpolation. This means values can be preprocessed before returning them " -"from ``get()`` calls." -msgstr "" -"La classe :class:`ConfigParser` prend en charge l’interpolation, en plus des " -"fonctionnalités de base. Cela signifie que les valeurs peuvent être traitées " -"avant d'être renvoyées par les appels aux méthodes ``get()``." - -#: library/configparser.rst:369 -msgid "" -"The default implementation used by :class:`ConfigParser`. It enables values " -"to contain format strings which refer to other values in the same section, " -"or values in the special default section [1]_. Additional default values " -"can be provided on initialization." -msgstr "" -"Implémentation par défaut utilisée par la classe :class:`ConfigParser`. " -"Celle-ci permet aux valeurs de contenir des chaînes de formatage se référant " -"à d'autres valeurs dans la même section, ou bien à des valeurs dans la " -"section spéciale par défaut [1]_. D'autres valeurs par défaut peuvent être " -"fournies au moment de l'initialisation de cette classe." - -#: library/configparser.rst:387 -msgid "" -"In the example above, :class:`ConfigParser` with *interpolation* set to " -"``BasicInterpolation()`` would resolve ``%(home_dir)s`` to the value of " -"``home_dir`` (``/Users`` in this case). ``%(my_dir)s`` in effect would " -"resolve to ``/Users/lumberjack``. All interpolations are done on demand so " -"keys used in the chain of references do not have to be specified in any " -"specific order in the configuration file." -msgstr "" -"Dans l'exemple ci-dessus, une classe :class:`Configparser` dont l'attribut " -"*interpolation* vaut ``BasicInterpolation()`` interprète la chaîne de " -"caractères ``%(home_dir)s`` en utilisant la valeur de la clé ``home_dir`` " -"(``/Users`` dans ce cas). ``%(my_dir)s`` est interprétée comme ``/Users/" -"lumberjack``. Les interpolations sont effectuées à la volée. Ainsi, les clés " -"utilisées comme référence à l’intérieur des chaînes de formatage peuvent " -"être définies dans le fichier de configuration dans n'importe quel ordre." - -#: library/configparser.rst:394 -msgid "" -"With ``interpolation`` set to ``None``, the parser would simply return ``%" -"(my_dir)s/Pictures`` as the value of ``my_pictures`` and ``%(home_dir)s/" -"lumberjack`` as the value of ``my_dir``." -msgstr "" -"Si l'attribut ``interpolation`` vaut ``None``, le lecteur renvoie ``%" -"(my_dir)s/Pictures`` comme valeur pour ``my_pictures`` et ``%(home_dir)s/" -"lumberjack`` comme valeur pour ``my_dir``." - -#: library/configparser.rst:402 -msgid "" -"An alternative handler for interpolation which implements a more advanced " -"syntax, used for instance in ``zc.buildout``. Extended interpolation is " -"using ``${section:option}`` to denote a value from a foreign section. " -"Interpolation can span multiple levels. For convenience, if the " -"``section:`` part is omitted, interpolation defaults to the current section " -"(and possibly the default values from the special section)." -msgstr "" -"Autre façon de gérer l'interpolation en utilisant une syntaxe plus avancée, " -"utilisée par exemple par ``zc.buildout``. Cette syntaxe étendue utilise la " -"chaîne de formatage ``{section:option}}`` pour désigner une valeur " -"appartenant à une autre section. L'interpolation peut s'étendre sur " -"plusieurs niveaux. Par commodité, si la partie ``{section}`` est absente, " -"l'interpolation utilise la section courante par défaut (et, le cas échéant, " -"les valeurs de la section par défaut spéciale)." - -#: library/configparser.rst:409 -msgid "" -"For example, the configuration specified above with basic interpolation, " -"would look like this with extended interpolation:" -msgstr "" -"Voici comment transformer la configuration ci-dessus avec la syntaxe " -"d'interpolation étendue :" - -#: library/configparser.rst:423 -msgid "Values from other sections can be fetched as well:" -msgstr "" -"Vous pouvez également récupérer des valeurs appartenant aux autres sections :" - -#: library/configparser.rst:445 -msgid "Mapping Protocol Access" -msgstr "Protocole d'accès associatif" - -#: library/configparser.rst:449 -#, fuzzy -msgid "" -"Mapping protocol access is a generic name for functionality that enables " -"using custom objects as if they were dictionaries. In case of :mod:`!" -"configparser`, the mapping interface implementation is using the " -"``parser['section']['option']`` notation." -msgstr "" -"Le terme « protocole d'accès associatif » est utilisé pour décrire la " -"fonctionnalité qui permet d'utiliser des objets personnalisés comme s'il " -"s'agissait de dictionnaires. Dans le cas du module :mod:`configparser`, " -"l’implémentation du protocole utilise la notation ``parser['section']" -"['option']``." - -#: library/configparser.rst:454 -msgid "" -"``parser['section']`` in particular returns a proxy for the section's data " -"in the parser. This means that the values are not copied but they are taken " -"from the original parser on demand. What's even more important is that when " -"values are changed on a section proxy, they are actually mutated in the " -"original parser." -msgstr "" -"En particulier, ``parser['section']`` renvoie un mandataire vers les données " -"de la section correspondantes dans l'analyseur. Cela signifie que les " -"valeurs ne sont pas copiées, mais prélevées depuis l'analyseur initial à la " -"demande. Plus important encore, lorsque les valeurs sont changées dans un " -"mandataire pour une section, elles sont en réalité changées dans l'analyseur " -"initial." - -#: library/configparser.rst:460 -#, fuzzy -msgid "" -":mod:`!configparser` objects behave as close to actual dictionaries as " -"possible. The mapping interface is complete and adheres to " -"the :class:`~collections.abc.MutableMapping` ABC. However, there are a few " -"differences that should be taken into account:" -msgstr "" -"Les objets du module :mod:`configparser` se comportent le plus possible " -"comme des vrais dictionnaires. L'interface est complète et suit les " -"définitions fournies par la classe " -"abstraite :class:`~collections.abc.MutableMapping`. Cependant, il faut " -"prendre en compte un certain nombre de différences :" - -#: library/configparser.rst:465 -msgid "" -"By default, all keys in sections are accessible in a case-insensitive manner " -"[1]_. E.g. ``for option in parser[\"section\"]`` yields only " -"``optionxform``'ed option key names. This means lowercased keys by " -"default. At the same time, for a section that holds the key ``'a'``, both " -"expressions return ``True``::" -msgstr "" -"Par défaut, toutes les clés des sections sont accessibles sans respect de la " -"casse [1]_. Par exemple, ``for option in parser[\"section\"]`` renvoie " -"uniquement les clés telles que transformées par la méthode ``optionxform``, " -"c'est-à-dire des clés transformées en minuscules. De même, pour une section " -"contenant la clé ``a``, les deux expressions suivantes renvoient ``True`` ::" - -#: library/configparser.rst:473 -msgid "" -"All sections include ``DEFAULTSECT`` values as well which means that " -"``.clear()`` on a section may not leave the section visibly empty. This is " -"because default values cannot be deleted from the section (because " -"technically they are not there). If they are overridden in the section, " -"deleting causes the default value to be visible again. Trying to delete a " -"default value causes a :exc:`KeyError`." -msgstr "" -"Toutes les sections incluent en plus les valeurs de la section " -"``DEFAULTSECT``. Cela signifie qu'appeler ``clear()`` sur une section ne la " -"fera pas forcément apparaître vide. En effet, les valeurs par défaut ne " -"peuvent pas être supprimées de la section (car, techniquement, elles n'y " -"sont pas présentes). Si vous détruisez une valeur par défaut qui a été " -"écrasée dans une section, alors la valeur par défaut sera de nouveau " -"visible. Essayer de détruire une valeur par défaut lève " -"l'exception :exc:`KeyError`." - -#: library/configparser.rst:480 -msgid "``DEFAULTSECT`` cannot be removed from the parser:" -msgstr "La section ``DEFAULTSECT`` ne peut pas être supprimée :" - -# fausse alerte dans poedit - garder le point-virgule -#: library/configparser.rst:482 -msgid "trying to delete it raises :exc:`ValueError`," -msgstr "l'exception :exc:`ValueError` est levée si on essaye de la supprimer ;" - -# fausse alerte dans poedit - garder le point-virgule -#: library/configparser.rst:484 -msgid "``parser.clear()`` leaves it intact," -msgstr "appeler ``parser.clear()`` la laisse intacte ;" - -#: library/configparser.rst:486 -msgid "``parser.popitem()`` never returns it." -msgstr "appeler ``parser.popitem()`` ne la renvoie jamais." - -#: library/configparser.rst:488 -msgid "" -"``parser.get(section, option, **kwargs)`` - the second argument is **not** a " -"fallback value. Note however that the section-level ``get()`` methods are " -"compatible both with the mapping protocol and the classic configparser API." -msgstr "" -"Le deuxième argument de ``parser.get(section, option, **kwargs)`` n'est " -"**pas** une valeur de substitution. Notez cependant que les méthodes " -"``get()`` fournies par les sections sont compatibles à la fois avec le " -"protocole associatif et avec l'API classique de *configparser*." - -#: library/configparser.rst:492 -msgid "" -"``parser.items()`` is compatible with the mapping protocol (returns a list " -"of *section_name*, *section_proxy* pairs including the DEFAULTSECT). " -"However, this method can also be invoked with arguments: " -"``parser.items(section, raw, vars)``. The latter call returns a list of " -"*option*, *value* pairs for a specified ``section``, with all interpolations " -"expanded (unless ``raw=True`` is provided)." -msgstr "" -"La méthode ``parser.items()`` est compatible avec le protocole d'accès " -"associatif et renvoie une liste de paires *section_name*, *section_proxy*, " -"en incluant la section *DEFAULTSECT*. Cependant, cette méthode peut aussi " -"être appelée avec des arguments : ``parser.items(section, raw, vars)``. Dans " -"ce cas, la méthode renvoie une liste de paires *option*, *value* pour la " -"section spécifiée, en interprétant les interpolations (à moins d'utiliser " -"``raw=True``)." - -#: library/configparser.rst:499 -msgid "" -"The mapping protocol is implemented on top of the existing legacy API so " -"that subclasses overriding the original interface still should have mappings " -"working as expected." -msgstr "" -"Le protocole d'accès est implémenté au-dessus de l'ancienne API. Ainsi, les " -"sous-classes qui écrasent des méthodes de l'interface originale se " -"comportent correctement du point de vue du protocole d'accès." - -#: library/configparser.rst:505 -msgid "Customizing Parser Behaviour" -msgstr "Personnalisation du comportement de l'analyseur" - -#: library/configparser.rst:507 -#, fuzzy -msgid "" -"There are nearly as many INI format variants as there are applications using " -"it. :mod:`!configparser` goes a long way to provide support for the largest " -"sensible set of INI styles available. The default functionality is mainly " -"dictated by historical background and it's very likely that you will want to " -"customize some of the features." -msgstr "" -"Il existe pratiquement autant de variations du format *INI* que " -"d'applications qui l'utilisent. Le module :mod:`configparser` fait son " -"possible pour gérer le plus grand nombre de variantes raisonnables du style " -"*INI*. Le comportement par défaut est principalement contraint par des " -"raisons historiques. De ce fait, il est très probable qu'il soit nécessaire " -"de personnaliser certaines des fonctionnalités de ce module." - -#: library/configparser.rst:513 -#, fuzzy -msgid "" -"The most common way to change the way a specific config parser works is to " -"use the :meth:`!__init__` options:" -msgstr "" -"La méthode la plus fréquemment utilisée pour changer la façon dont se " -"comporte un analyseur est d’utiliser les options de la " -"méthode :meth:`__init__` :" - -#: library/configparser.rst:516 -msgid "*defaults*, default value: ``None``" -msgstr "*defaults*, valeur par défaut : ``None``" - -#: library/configparser.rst:518 -msgid "" -"This option accepts a dictionary of key-value pairs which will be initially " -"put in the ``DEFAULT`` section. This makes for an elegant way to support " -"concise configuration files that don't specify values which are the same as " -"the documented default." -msgstr "" -"Cette option accepte un dictionnaire de paires clé—valeurs qui seront " -"placées dans la section ``DEFAULT`` initialement. Ceci est une façon " -"élégante de prendre en charge des fichiers de configuration qui n'ont pas " -"besoin de spécifier de valeurs lorsque celles-ci sont identiques aux valeurs " -"par défaut documentées." - -#: library/configparser.rst:523 -#, fuzzy -msgid "" -"Hint: if you want to specify default values for a specific section, " -"use :meth:`~ConfigParser.read_dict` before you read the actual file." -msgstr "" -"Conseil : utilisez la méthode :meth:`read_dict` avant de lire le ficher de " -"configuration si vous voulez spécifier des valeurs par défaut pour une " -"section spécifique." - -#: library/configparser.rst:526 -msgid "*dict_type*, default value: :class:`dict`" -msgstr "*dict_type*, valeur par défaut : :class:`dict`" - -#: library/configparser.rst:528 -msgid "" -"This option has a major impact on how the mapping protocol will behave and " -"how the written configuration files look. With the standard dictionary, " -"every section is stored in the order they were added to the parser. Same " -"goes for options within sections." -msgstr "" -"Cette option influe de manière importante sur la façon dont le protocole " -"d'accès associatif se comporte et ce à quoi ressemblent les fichiers de " -"configuration une fois écrits. Avec un dictionnaire standard, les sections " -"sont stockées dans l'ordre où elles ont été ajoutées à l'analyseur. Ceci est " -"également vrai pour les options à l'intérieur des sections." - -#: library/configparser.rst:533 -msgid "" -"An alternative dictionary type can be used for example to sort sections and " -"options on write-back." -msgstr "" -"Si vous souhaitez classer les sections et les options lors de l'écriture par " -"exemple, vous pouvez utiliser un type de dictionnaire différent." - -#: library/configparser.rst:536 -msgid "" -"Please note: there are ways to add a set of key-value pairs in a single " -"operation. When you use a regular dictionary in those operations, the order " -"of the keys will be ordered. For example:" -msgstr "" -"À noter : il est possible d'ajouter un ensemble de paires clés—valeurs en " -"une seule opération. L'ordre des clés est préservé si vous utilisez un " -"dictionnaire standard pour cela. Par exemple :" - -#: library/configparser.rst:558 -msgid "*allow_no_value*, default value: ``False``" -msgstr "*allow_no_value*, valeur par défaut : ``False``" - -#: library/configparser.rst:560 -#, fuzzy -msgid "" -"Some configuration files are known to include settings without values, but " -"which otherwise conform to the syntax supported by :mod:`!configparser`. " -"The *allow_no_value* parameter to the constructor can be used to indicate " -"that such values should be accepted:" -msgstr "" -"Certains fichiers de configurations sont connus pour contenir des options " -"sans valeur associée, tout en se conformant à la syntaxe prise en charge par " -"le module :mod:`configparser` par ailleurs. Pour indiquer que de telles " -"valeurs sont acceptables, utilisez le paramètre *allow_no_value* lors de la " -"construction de l'instance :" - -#: library/configparser.rst:595 -msgid "*delimiters*, default value: ``('=', ':')``" -msgstr "*delimiters*, valeur par défaut : ``('=', ':')``" - -#: library/configparser.rst:597 -msgid "" -"Delimiters are substrings that delimit keys from values within a section. " -"The first occurrence of a delimiting substring on a line is considered a " -"delimiter. This means values (but not keys) can contain the delimiters." -msgstr "" -"Chaînes de caractères qui séparent les clés des valeurs à l'intérieur d'une " -"section. La première occurrence d'une telle chaîne à l'intérieur d'une ligne " -"est considérée comme un délimiteur. Cela signifie que les valeurs peuvent " -"contenir certains des délimiteurs (mais pas les clés)." - -#: library/configparser.rst:601 -msgid "" -"See also the *space_around_delimiters* argument " -"to :meth:`ConfigParser.write`." -msgstr "" -"Voir aussi l'argument *space_around_delimiters* de la " -"méthode :meth:`ConfigParser.write`." - -#: library/configparser.rst:604 -msgid "*comment_prefixes*, default value: ``('#', ';')``" -msgstr "" -"*comment_prefixes* (préfixes de commentaire) — valeur par défaut : ``('#', " -"';')``" - -#: library/configparser.rst:606 -msgid "*inline_comment_prefixes*, default value: ``None``" -msgstr "" -"*inline_comment_prefixes* (préfixes de commentaire en ligne) — valeur par " -"défaut : ``('#', ';')``" - -#: library/configparser.rst:608 -msgid "" -"Comment prefixes are strings that indicate the start of a valid comment " -"within a config file. *comment_prefixes* are used only on otherwise empty " -"lines (optionally indented) whereas *inline_comment_prefixes* can be used " -"after every valid value (e.g. section names, options and empty lines as " -"well). By default inline comments are disabled and ``'#'`` and ``';'`` are " -"used as prefixes for whole line comments." -msgstr "" -"Les préfixes de commentaire indiquent le début d'un commentaire valide au " -"sein d'un fichier de configuration. Ils ne peuvent être utilisés qu'à " -"l'emplacement d'une ligne vide (potentiellement indentée). En revanche, les " -"préfixes de commentaires en ligne peuvent être utilisés après n'importe " -"quelle valeur valide (comme les noms des sections, les options et les lignes " -"vides). Par défaut, les commentaires en ligne sont désactivés et les " -"préfixes utilisés pour les commentaires à l'emplacement d'une ligne vide " -"sont ``'#'`` et ``';'``." - -#: library/configparser.rst:615 -#, fuzzy -msgid "" -"In previous versions of :mod:`!configparser` behaviour matched " -"``comment_prefixes=('#',';')`` and ``inline_comment_prefixes=(';',)``." -msgstr "" -"Les précédentes versions du module :mod:`configparser` se comportent comme " -"en utilisant ``comment_prefixes=('#',';')`` et " -"``inline_comment_prefixes=(';',)``." - -#: library/configparser.rst:619 -msgid "" -"Please note that config parsers don't support escaping of comment prefixes " -"so using *inline_comment_prefixes* may prevent users from specifying option " -"values with characters used as comment prefixes. When in doubt, avoid " -"setting *inline_comment_prefixes*. In any circumstances, the only way of " -"storing comment prefix characters at the beginning of a line in multiline " -"values is to interpolate the prefix, for example::" -msgstr "" -"Notez que les analyseurs ne prennent pas en charge l'échappement des " -"préfixes de commentaires. Ainsi, l'utilisation de *inline_comment_prefixes* " -"peut empêcher les utilisateurs de spécifier des valeurs qui contiennent des " -"caractères utilisés comme préfixe de commentaire. Dans le doute, il est " -"recommandé de ne pas utiliser *inline_comment_prefixes*. Dans tous les cas, " -"la seule façon de stocker des préfixes de commentaires au début d'une valeur " -"multi lignes est d'interpoler ceux-ci, par exemple ::" - -#: library/configparser.rst:665 -msgid "*strict*, default value: ``True``" -msgstr "*scrict*, valeur par défaut : ``True``" - -#: library/configparser.rst:667 -#, fuzzy -msgid "" -"When set to ``True``, the parser will not allow for any section or option " -"duplicates while reading from a single source " -"(using :meth:`~ConfigParser.read_file`, :meth:`~ConfigParser.read_string` " -"or :meth:`~ConfigParser.read_dict`). It is recommended to use strict " -"parsers in new applications." -msgstr "" -"Quand la valeur ``True`` est spécifiée, le parseur refuse toute section ou " -"option dupliquée lors de la lecture d'une source unique " -"(lorsque :meth:`read_file`, :meth:`read_string` ou :meth:`read_dict` sont " -"utilisées). Il est recommandé d'utiliser un mode de fonctionnement strict " -"pour les analyseurs employés par de nouvelles applications." - -#: library/configparser.rst:672 -#, fuzzy -msgid "" -"In previous versions of :mod:`!configparser` behaviour matched " -"``strict=False``." -msgstr "" -"Les versions précédentes du module :mod:`configparser` se comportent comme " -"en utilisant ``strict=False``." - -#: library/configparser.rst:676 -msgid "*empty_lines_in_values*, default value: ``True``" -msgstr "*empty_lines_in_values*, valeur par défaut : ``True``" - -#: library/configparser.rst:678 -msgid "" -"In config parsers, values can span multiple lines as long as they are " -"indented more than the key that holds them. By default parsers also let " -"empty lines to be parts of values. At the same time, keys can be " -"arbitrarily indented themselves to improve readability. In consequence, " -"when configuration files get big and complex, it is easy for the user to " -"lose track of the file structure. Take for instance:" -msgstr "" -"Du point de vue des analyseurs, les valeurs peuvent s'étendre sur plusieurs " -"lignes à partir du moment où elles sont plus indentées que la clé qui les " -"contient. Par défaut les analyseurs autorisent les lignes vides à faire " -"partie de telles valeurs. Dans le même temps, les clés elles-mêmes peuvent " -"être indentées de façon à rendre le fichier plus lisible. En conséquence, il " -"est probable que l'utilisateur perde de vue la structure du fichier lorsque " -"celui-ci devient long et complexe. Prenez par exemple :" - -#: library/configparser.rst:693 -msgid "" -"This can be especially problematic for the user to see if she's using a " -"proportional font to edit the file. That is why when your application does " -"not need values with empty lines, you should consider disallowing them. " -"This will make empty lines split keys every time. In the example above, it " -"would produce two keys, ``key`` and ``this``." -msgstr "" -"Ceci est particulièrement problématique si l'utilisateur a configuré son " -"éditeur pour utiliser une police à chasse variable. C'est pourquoi il est " -"conseillé de ne pas prendre en charge les valeurs avec des lignes vides, à " -"moins que votre application en ait besoin. Dans ce cas, les lignes vides " -"sont toujours interprétées comme séparant des clés. Dans l'exemple ci-" -"dessus, cela produit deux clés : ``key`` et ``this``." - -#: library/configparser.rst:699 -msgid "" -"*default_section*, default value: ``configparser.DEFAULTSECT`` (that is: " -"``\"DEFAULT\"``)" -msgstr "" -"*default_section*, valeur par défaut : ``configparser.DEFAULTSECT`` " -"(autrement dit : ``\"DEFAULT\"``)" - -#: library/configparser.rst:702 -msgid "" -"The convention of allowing a special section of default values for other " -"sections or interpolation purposes is a powerful concept of this library, " -"letting users create complex declarative configurations. This section is " -"normally called ``\"DEFAULT\"`` but this can be customized to point to any " -"other valid section name. Some typical values include: ``\"general\"`` or " -"``\"common\"``. The name provided is used for recognizing default sections " -"when reading from any source and is used when writing configuration back to " -"a file. Its current value can be retrieved using the " -"``parser_instance.default_section`` attribute and may be modified at runtime " -"(i.e. to convert files from one format to another)." -msgstr "" -"La convention permettant d’autoriser une section spéciale de valeurs par " -"défaut pour d’autres sections ou à des fins d’interpolation est un concept " -"puissant de cette bibliothèque, permettant aux utilisateurs de créer des " -"configurations déclaratives complexes. Cette section est normalement appelée " -"``\"DEFAULT\"``, mais elle peut être personnalisée pour pointer vers " -"n’importe quel autre nom de section valide. Certaines autres valeurs " -"typiques incluent : ``\"general\"`` ou ``\"common\"``. Le nom fourni est " -"utilisé pour reconnaître les sections par défaut lors de la lecture à partir " -"de n’importe quelle source, et est utilisée lors de la réécriture de la " -"configuration dans un fichier. Sa valeur actuelle peut être récupérée à " -"l’aide de l’attribut ``parser_instance.default_section``, et peut être " -"modifiée au moment de l’exécution (c’est-à-dire pour convertir des fichiers " -"d’un format à un autre)." - -#: library/configparser.rst:713 -msgid "*interpolation*, default value: ``configparser.BasicInterpolation``" -msgstr "" -"*interpolation*, valeur par défaut : ``configparser.BasicInterpolation``" - -#: library/configparser.rst:715 -msgid "" -"Interpolation behaviour may be customized by providing a custom handler " -"through the *interpolation* argument. ``None`` can be used to turn off " -"interpolation completely, ``ExtendedInterpolation()`` provides a more " -"advanced variant inspired by ``zc.buildout``. More on the subject in the " -"`dedicated documentation section <#interpolation-of-" -"values>`_. :class:`RawConfigParser` has a default value of ``None``." -msgstr "" -"Le comportement d'interpolation peut être personnalisé en fournissant un " -"gestionnaire personnalisé via l'argument *interpolation*. ``None`` peut être " -"utilisé pour désactiver complètement l'interpolation. " -"``ExtendedInterpolation()`` fournit une variante plus avancée inspirée de " -"``zc.buildout``. Plus d'informations sur le sujet dans la section `dédiée de " -"la documentation <#interpolation-of-values>`_. :class:`RowConfigParser` vaut " -"``None`` par défaut." - -#: library/configparser.rst:722 -msgid "*converters*, default value: not set" -msgstr "*converters*, valeur par défaut : non défini" - -#: library/configparser.rst:724 -msgid "" -"Config parsers provide option value getters that perform type conversion. " -"By default :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat`, " -"and :meth:`~ConfigParser.getboolean` are implemented. Should other getters " -"be desirable, users may define them in a subclass or pass a dictionary where " -"each key is a name of the converter and each value is a callable " -"implementing said conversion. For instance, passing ``{'decimal': " -"decimal.Decimal}`` would add :meth:`!getdecimal` on both the parser object " -"and all section proxies. In other words, it will be possible to write both " -"``parser_instance.getdecimal('section', 'key', fallback=0)`` and " -"``parser_instance['section'].getdecimal('key', 0)``." -msgstr "" -"Les analyseurs de configuration fournissent des fonctions de récupération de " -"valeurs qui effectuent la conversion par type. Par " -"défaut, :meth:`~ConfigParser.getint`, :meth:`~ConfigParser.getfloat` " -"et :meth:`~ConfigParser.getboolean` sont implémentées. Si vous désirez " -"d’autres fonctions de récupération de valeurs, vous pouvez les définir dans " -"une sous-classe ou transmettre un dictionnaire où chaque clé est le nom du " -"convertisseur et chaque valeur est une fonction implémentant ladite " -"conversion. Par exemple, passer ``{'decimal':decimal.Decimal}`` " -"ajouterait :meth:`!getdecimal` à la fois sur l’analyseur et sur tous les " -"proxys de section. En d’autres termes, il sera possible d’écrire à la fois " -"``parser_instance.getdecimal('section', 'key', fallback=0)`` et " -"``parser_instance['section'].getdecimal('key', 0)``." - -#: library/configparser.rst:735 -msgid "" -"If the converter needs to access the state of the parser, it can be " -"implemented as a method on a config parser subclass. If the name of this " -"method starts with ``get``, it will be available on all section proxies, in " -"the dict-compatible form (see the ``getdecimal()`` example above)." -msgstr "" -"Si le convertisseur doit accéder à l'état de l'analyseur, il peut être " -"implémenté en tant que méthode sur une sous-classe d'analyseur de " -"configuration. Si le nom de cette méthode commence par ``get``, elle sera " -"disponible sur tous les proxys de section, sous la forme compatible avec un " -"dictionnaire (voir l'exemple ``getdecimal()`` ci-dessus)." - -#: library/configparser.rst:740 -msgid "" -"More advanced customization may be achieved by overriding default values of " -"these parser attributes. The defaults are defined on the classes, so they " -"may be overridden by subclasses or by attribute assignment." -msgstr "" -"Une personnalisation plus avancée peut être obtenue en remplaçant les " -"valeurs par défaut de ces attributs de l'analyseur. Les valeurs par défaut " -"sont définies sur les classes, elles peuvent donc être remplacées par des " -"sous-classes ou par des attributs d'instance." - -#: library/configparser.rst:746 -msgid "" -"By default when using :meth:`~ConfigParser.getboolean`, config parsers " -"consider the following values ``True``: ``'1'``, ``'yes'``, ``'true'``, " -"``'on'`` and the following values ``False``: ``'0'``, ``'no'``, ``'false'``, " -"``'off'``. You can override this by specifying a custom dictionary of " -"strings and their Boolean outcomes. For example:" -msgstr "" -"Par défaut, la méthode :meth:`~ConfigParser.getboolean` considère les " -"valeurs suivantes comme vraies : ``'1'``, ``'yes'``, ``'true'``, ``'on'``, " -"et les valeurs suivantes comme fausses : ``'0'``, ``'no'``, ``'false'``, " -"``'off'``. Vous pouvez changer ce comportement en spécifiant votre propre " -"dictionnaire associant des chaînes de caractères à des valeurs booléennes. " -"Par exemple :" - -#: library/configparser.rst:764 -msgid "" -"Other typical Boolean pairs include ``accept``/``reject`` or ``enabled``/" -"``disabled``." -msgstr "" - -#: library/configparser.rst:770 -msgid "" -"This method transforms option names on every read, get, or set operation. " -"The default converts the name to lowercase. This also means that when a " -"configuration file gets written, all keys will be lowercase. Override this " -"method if that's unsuitable. For example:" -msgstr "" - -#: library/configparser.rst:800 -msgid "" -"The optionxform function transforms option names to a canonical form. This " -"should be an idempotent function: if the name is already in canonical form, " -"it should be returned unchanged." -msgstr "" - -#: library/configparser.rst:807 -msgid "" -"A compiled regular expression used to parse section headers. The default " -"matches ``[section]`` to the name ``\"section\"``. Whitespace is considered " -"part of the section name, thus ``[ larch ]`` will be read as a section of " -"name ``\" larch \"``. Override this attribute if that's unsuitable. For " -"example:" -msgstr "" - -#: library/configparser.rst:835 -msgid "" -"While ConfigParser objects also use an ``OPTCRE`` attribute for recognizing " -"option lines, it's not recommended to override it because that would " -"interfere with constructor options *allow_no_value* and *delimiters*." -msgstr "" - -#: library/configparser.rst:841 -msgid "Legacy API Examples" -msgstr "" - -#: library/configparser.rst:843 -msgid "" -"Mainly because of backwards compatibility concerns, :mod:`!configparser` " -"provides also a legacy API with explicit ``get``/``set`` methods. While " -"there are valid use cases for the methods outlined below, mapping protocol " -"access is preferred for new projects. The legacy API is at times more " -"advanced, low-level and downright counterintuitive." -msgstr "" - -#: library/configparser.rst:849 -msgid "An example of writing to a configuration file::" -msgstr "" - -#: library/configparser.rst:872 -msgid "An example of reading the configuration file again::" -msgstr "" - -#: library/configparser.rst:890 -msgid "To get interpolation, use :class:`ConfigParser`::" -msgstr "" - -#: library/configparser.rst:923 -msgid "" -"Default values are available in both types of ConfigParsers. They are used " -"in interpolation if an option used is not defined elsewhere. ::" -msgstr "" - -#: library/configparser.rst:941 -msgid "ConfigParser Objects" -msgstr "" - -#: library/configparser.rst:951 -msgid "" -"The main configuration parser. When *defaults* is given, it is initialized " -"into the dictionary of intrinsic defaults. When *dict_type* is given, it " -"will be used to create the dictionary objects for the list of sections, for " -"the options within a section, and for the default values." -msgstr "" - -#: library/configparser.rst:956 -msgid "" -"When *delimiters* is given, it is used as the set of substrings that divide " -"keys from values. When *comment_prefixes* is given, it will be used as the " -"set of substrings that prefix comments in otherwise empty lines. Comments " -"can be indented. When *inline_comment_prefixes* is given, it will be used " -"as the set of substrings that prefix comments in non-empty lines." -msgstr "" - -#: library/configparser.rst:962 -msgid "" -"When *strict* is ``True`` (the default), the parser won't allow for any " -"section or option duplicates while reading from a single source (file, " -"string or dictionary), raising :exc:`DuplicateSectionError` " -"or :exc:`DuplicateOptionError`. When *empty_lines_in_values* is ``False`` " -"(default: ``True``), each empty line marks the end of an option. Otherwise, " -"internal empty lines of a multiline option are kept as part of the value. " -"When *allow_no_value* is ``True`` (default: ``False``), options without " -"values are accepted; the value held for these is ``None`` and they are " -"serialized without the trailing delimiter." -msgstr "" - -#: library/configparser.rst:972 -msgid "" -"When *default_section* is given, it specifies the name for the special " -"section holding default values for other sections and interpolation purposes " -"(normally named ``\"DEFAULT\"``). This value can be retrieved and changed " -"at runtime using the ``default_section`` instance attribute. This won't re-" -"evaluate an already parsed config file, but will be used when writing parsed " -"settings to a new config file." -msgstr "" - -#: library/configparser.rst:979 -msgid "" -"Interpolation behaviour may be customized by providing a custom handler " -"through the *interpolation* argument. ``None`` can be used to turn off " -"interpolation completely, ``ExtendedInterpolation()`` provides a more " -"advanced variant inspired by ``zc.buildout``. More on the subject in the " -"`dedicated documentation section <#interpolation-of-values>`_." -msgstr "" - -#: library/configparser.rst:985 -msgid "" -"All option names used in interpolation will be passed through " -"the :meth:`optionxform` method just like any other option name reference. " -"For example, using the default implementation of :meth:`optionxform` (which " -"converts option names to lower case), the values ``foo %(bar)s`` and ``foo %" -"(BAR)s`` are equivalent." -msgstr "" - -#: library/configparser.rst:991 -msgid "" -"When *converters* is given, it should be a dictionary where each key " -"represents the name of a type converter and each value is a callable " -"implementing the conversion from string to the desired datatype. Every " -"converter gets its own corresponding :meth:`!get*` method on the parser " -"object and section proxies." -msgstr "" - -#: library/configparser.rst:997 -msgid "" -"When *allow_unnamed_section* is ``True`` (default: ``False``), the first " -"section name can be omitted. See the `\"Unnamed Sections\" section <#unnamed-" -"sections>`_." -msgstr "" - -#: library/configparser.rst:1026 -msgid "The default *dict_type* is :class:`collections.OrderedDict`." -msgstr "" - -#: library/configparser.rst:1322 -msgid "" -"*allow_no_value*, *delimiters*, *comment_prefixes*, *strict*, " -"*empty_lines_in_values*, *default_section* and *interpolation* were added." -msgstr "" - -#: library/configparser.rst:1327 -msgid "The *converters* argument was added." -msgstr "" - -#: library/configparser.rst:1037 -msgid "" -"The *defaults* argument is read with :meth:`read_dict`, providing consistent " -"behavior across the parser: non-string keys and values are implicitly " -"converted to strings." -msgstr "" - -#: library/configparser.rst:1330 -msgid "" -"The default *dict_type* is :class:`dict`, since it now preserves insertion " -"order." -msgstr "" - -#: library/configparser.rst:1046 -msgid "" -"Raise a :exc:`MultilineContinuationError` when *allow_no_value* is ``True``, " -"and a key without a value is continued with an indented line." -msgstr "" - -#: library/configparser.rst:1334 -msgid "The *allow_unnamed_section* argument was added." -msgstr "" - -#: library/configparser.rst:1055 -msgid "Return a dictionary containing the instance-wide defaults." -msgstr "" - -#: library/configparser.rst:1060 -msgid "" -"Return a list of the sections available; the *default section* is not " -"included in the list." -msgstr "" - -#: library/configparser.rst:1066 -msgid "" -"Add a section named *section* to the instance. If a section by the given " -"name already exists, :exc:`DuplicateSectionError` is raised. If the " -"*default section* name is passed, :exc:`ValueError` is raised. The name of " -"the section must be a string; if not, :exc:`TypeError` is raised." -msgstr "" - -#: library/configparser.rst:1071 -msgid "Non-string section names raise :exc:`TypeError`." -msgstr "" - -#: library/configparser.rst:1077 -msgid "" -"Indicates whether the named *section* is present in the configuration. The " -"*default section* is not acknowledged." -msgstr "" - -#: library/configparser.rst:1083 -msgid "Return a list of options available in the specified *section*." -msgstr "" - -#: library/configparser.rst:1088 -msgid "" -"If the given *section* exists, and contains the given *option*, " -"return :const:`True`; otherwise return :const:`False`. If the specified " -"*section* is :const:`None` or an empty string, DEFAULT is assumed." -msgstr "" - -#: library/configparser.rst:1095 -msgid "" -"Attempt to read and parse an iterable of filenames, returning a list of " -"filenames which were successfully parsed." -msgstr "" - -#: library/configparser.rst:1098 -msgid "" -"If *filenames* is a string, a :class:`bytes` object or a :term:`path-like " -"object`, it is treated as a single filename. If a file named in *filenames* " -"cannot be opened, that file will be ignored. This is designed so that you " -"can specify an iterable of potential configuration file locations (for " -"example, the current directory, the user's home directory, and some system-" -"wide directory), and all existing configuration files in the iterable will " -"be read." -msgstr "" - -#: library/configparser.rst:1107 -msgid "" -"If none of the named files exist, the :class:`ConfigParser` instance will " -"contain an empty dataset. An application which requires initial values to " -"be loaded from a file should load the required file or files " -"using :meth:`read_file` before calling :meth:`read` for any optional files::" -msgstr "" - -#: library/configparser.rst:1120 -msgid "" -"Added the *encoding* parameter. Previously, all files were read using the " -"default encoding for :func:`open`." -msgstr "" - -#: library/configparser.rst:1124 -#, fuzzy -msgid "The *filenames* parameter accepts a :term:`path-like object`." -msgstr "" -"Le paramètre *filename* accepte un objet chemin-compatible :term:`path-like " -"object`." - -#: library/configparser.rst:1127 -msgid "The *filenames* parameter accepts a :class:`bytes` object." -msgstr "" - -#: library/configparser.rst:1133 -msgid "" -"Read and parse configuration data from *f* which must be an iterable " -"yielding Unicode strings (for example files opened in text mode)." -msgstr "" - -#: library/configparser.rst:1136 -msgid "" -"Optional argument *source* specifies the name of the file being read. If " -"not given and *f* has a :attr:`!name` attribute, that is used for *source*; " -"the default is ``''``." -msgstr "" - -#: library/configparser.rst:1140 -msgid "Replaces :meth:`!readfp`." -msgstr "" - -#: library/configparser.rst:1145 -msgid "Parse configuration data from a string." -msgstr "" - -#: library/configparser.rst:1147 -msgid "" -"Optional argument *source* specifies a context-specific name of the string " -"passed. If not given, ``''`` is used. This should commonly be a " -"filesystem path or a URL." -msgstr "" - -#: library/configparser.rst:1156 -msgid "" -"Load configuration from any object that provides a dict-like ``items()`` " -"method. Keys are section names, values are dictionaries with keys and " -"values that should be present in the section. If the used dictionary type " -"preserves order, sections and their keys will be added in order. Values are " -"automatically converted to strings." -msgstr "" - -#: library/configparser.rst:1162 -msgid "" -"Optional argument *source* specifies a context-specific name of the " -"dictionary passed. If not given, ```` is used." -msgstr "" - -#: library/configparser.rst:1165 -msgid "This method can be used to copy state between parsers." -msgstr "" - -#: library/configparser.rst:1172 -msgid "" -"Get an *option* value for the named *section*. If *vars* is provided, it " -"must be a dictionary. The *option* is looked up in *vars* (if provided), " -"*section*, and in *DEFAULTSECT* in that order. If the key is not found and " -"*fallback* is provided, it is used as a fallback value. ``None`` can be " -"provided as a *fallback* value." -msgstr "" - -#: library/configparser.rst:1178 -msgid "" -"All the ``'%'`` interpolations are expanded in the return values, unless the " -"*raw* argument is true. Values for interpolation keys are looked up in the " -"same manner as the option." -msgstr "" - -#: library/configparser.rst:1182 -msgid "" -"Arguments *raw*, *vars* and *fallback* are keyword only to protect users " -"from trying to use the third argument as the *fallback* fallback (especially " -"when using the mapping protocol)." -msgstr "" - -#: library/configparser.rst:1190 -msgid "" -"A convenience method which coerces the *option* in the specified *section* " -"to an integer. See :meth:`get` for explanation of *raw*, *vars* and " -"*fallback*." -msgstr "" - -#: library/configparser.rst:1197 -msgid "" -"A convenience method which coerces the *option* in the specified *section* " -"to a floating-point number. See :meth:`get` for explanation of *raw*, " -"*vars* and *fallback*." -msgstr "" - -#: library/configparser.rst:1204 -msgid "" -"A convenience method which coerces the *option* in the specified *section* " -"to a Boolean value. Note that the accepted values for the option are " -"``'1'``, ``'yes'``, ``'true'``, and ``'on'``, which cause this method to " -"return ``True``, and ``'0'``, ``'no'``, ``'false'``, and ``'off'``, which " -"cause it to return ``False``. These string values are checked in a case-" -"insensitive manner. Any other value will cause it to " -"raise :exc:`ValueError`. See :meth:`get` for explanation of *raw*, *vars* " -"and *fallback*." -msgstr "" - -#: library/configparser.rst:1217 -msgid "" -"When *section* is not given, return a list of *section_name*, " -"*section_proxy* pairs, including DEFAULTSECT." -msgstr "" - -#: library/configparser.rst:1220 -msgid "" -"Otherwise, return a list of *name*, *value* pairs for the options in the " -"given *section*. Optional arguments have the same meaning as for " -"the :meth:`get` method." -msgstr "" - -#: library/configparser.rst:1224 -msgid "" -"Items present in *vars* no longer appear in the result. The previous " -"behaviour mixed actual parser options with variables provided for " -"interpolation." -msgstr "" - -#: library/configparser.rst:1232 -msgid "" -"If the given section exists, set the given option to the specified value; " -"otherwise raise :exc:`NoSectionError`. *option* and *value* must be " -"strings; if not, :exc:`TypeError` is raised." -msgstr "" - -#: library/configparser.rst:1239 -msgid "" -"Write a representation of the configuration to the specified :term:`file " -"object`, which must be opened in text mode (accepting strings). This " -"representation can be parsed by a future :meth:`read` call. If " -"*space_around_delimiters* is true, delimiters between keys and values are " -"surrounded by spaces." -msgstr "" - -#: library/configparser.rst:1245 -msgid "" -"Raises InvalidWriteError if this would write a representation which cannot " -"be accurately parsed by a future :meth:`read` call from this parser." -msgstr "" - -#: library/configparser.rst:1251 -msgid "" -"Comments in the original configuration file are not preserved when writing " -"the configuration back. What is considered a comment, depends on the given " -"values for *comment_prefix* and *inline_comment_prefix*." -msgstr "" - -#: library/configparser.rst:1259 -msgid "" -"Remove the specified *option* from the specified *section*. If the section " -"does not exist, raise :exc:`NoSectionError`. If the option existed to be " -"removed, return :const:`True`; otherwise return :const:`False`." -msgstr "" - -#: library/configparser.rst:1267 -msgid "" -"Remove the specified *section* from the configuration. If the section in " -"fact existed, return ``True``. Otherwise return ``False``." -msgstr "" - -#: library/configparser.rst:1273 -msgid "" -"Transforms the option name *option* as found in an input file or as passed " -"in by client code to the form that should be used in the internal " -"structures. The default implementation returns a lower-case version of " -"*option*; subclasses may override this or client code can set an attribute " -"of this name on instances to affect this behavior." -msgstr "" - -#: library/configparser.rst:1279 -msgid "" -"You don't need to subclass the parser to use this method, you can also set " -"it on an instance, to a function that takes a string argument and returns a " -"string. Setting it to ``str``, for example, would make option names case " -"sensitive::" -msgstr "" - -#: library/configparser.rst:1287 -msgid "" -"Note that when reading configuration files, whitespace around the option " -"names is stripped before :meth:`optionxform` is called." -msgstr "" - -#: library/configparser.rst:1293 -msgid "" -"A special object representing a section name used to reference the unnamed " -"section (see :ref:`unnamed-sections`)." -msgstr "" - -#: library/configparser.rst:1298 -msgid "" -"The maximum depth for recursive interpolation " -"for :meth:`~configparser.ConfigParser.get` when the *raw* parameter is " -"false. This is relevant only when the default *interpolation* is used." -msgstr "" - -#: library/configparser.rst:1306 -msgid "RawConfigParser Objects" -msgstr "" - -#: library/configparser.rst:1317 -msgid "" -"Legacy variant of the :class:`ConfigParser`. It has interpolation disabled " -"by default and allows for non-string section names, option names, and values " -"via its unsafe ``add_section`` and ``set`` methods, as well as the legacy " -"``defaults=`` keyword argument handling." -msgstr "" - -#: library/configparser.rst:1338 -msgid "" -"Consider using :class:`ConfigParser` instead which checks types of the " -"values to be stored internally. If you don't want interpolation, you can " -"use ``ConfigParser(interpolation=None)``." -msgstr "" - -#: library/configparser.rst:1345 -msgid "" -"Add a section named *section* or :const:`UNNAMED_SECTION` to the instance." -msgstr "" - -#: library/configparser.rst:1347 -msgid "" -"If the given section already exists, :exc:`DuplicateSectionError` is raised. " -"If the *default section* name is passed, :exc:`ValueError` is raised. " -"If :const:`UNNAMED_SECTION` is passed and support is " -"disabled, :exc:`UnnamedSectionDisabledError` is raised." -msgstr "" - -#: library/configparser.rst:1352 -msgid "" -"Type of *section* is not checked which lets users create non-string named " -"sections. This behaviour is unsupported and may cause internal errors." -msgstr "" - -#: library/configparser.rst:1355 -msgid "Added support for :const:`UNNAMED_SECTION`." -msgstr "" - -#: library/configparser.rst:1361 -msgid "" -"If the given section exists, set the given option to the specified value; " -"otherwise raise :exc:`NoSectionError`. While it is possible to " -"use :class:`RawConfigParser` (or :class:`ConfigParser` with *raw* parameters " -"set to true) for *internal* storage of non-string values, full functionality " -"(including interpolation and output to files) can only be achieved using " -"string values." -msgstr "" - -#: library/configparser.rst:1368 -msgid "" -"This method lets users assign non-string values to keys internally. This " -"behaviour is unsupported and will cause errors when attempting to write to a " -"file or get it in non-raw mode. **Use the mapping protocol API** which does " -"not allow such assignments to take place." -msgstr "" - -#: library/configparser.rst:1375 -msgid "Exceptions" -msgstr "Exceptions" - -#: library/configparser.rst:1379 -msgid "Base class for all other :mod:`!configparser` exceptions." -msgstr "" - -#: library/configparser.rst:1384 -msgid "Exception raised when a specified section is not found." -msgstr "" - -#: library/configparser.rst:1389 -msgid "" -"Exception raised if :meth:`~ConfigParser.add_section` is called with the " -"name of a section that is already present or in strict parsers when a " -"section if found more than once in a single input file, string or dictionary." -msgstr "" - -#: library/configparser.rst:1393 -msgid "" -"Added the optional *source* and *lineno* attributes and parameters " -"to :meth:`!__init__`." -msgstr "" - -#: library/configparser.rst:1400 -msgid "" -"Exception raised by strict parsers if a single option appears twice during " -"reading from a single file, string or dictionary. This catches misspellings " -"and case sensitivity-related errors, e.g. a dictionary may have two keys " -"representing the same case-insensitive configuration key." -msgstr "" - -#: library/configparser.rst:1408 -msgid "" -"Exception raised when a specified option is not found in the specified " -"section." -msgstr "" - -#: library/configparser.rst:1414 -msgid "" -"Base class for exceptions raised when problems occur performing string " -"interpolation." -msgstr "" - -#: library/configparser.rst:1420 -msgid "" -"Exception raised when string interpolation cannot be completed because the " -"number of iterations exceeds :const:`MAX_INTERPOLATION_DEPTH`. Subclass " -"of :exc:`InterpolationError`." -msgstr "" - -#: library/configparser.rst:1427 -msgid "" -"Exception raised when an option referenced from a value does not exist. " -"Subclass of :exc:`InterpolationError`." -msgstr "" - -#: library/configparser.rst:1433 -msgid "" -"Exception raised when the source text into which substitutions are made does " -"not conform to the required syntax. Subclass of :exc:`InterpolationError`." -msgstr "" - -#: library/configparser.rst:1439 -msgid "" -"Exception raised when attempting to parse a file which has no section " -"headers." -msgstr "" - -#: library/configparser.rst:1444 -msgid "Exception raised when errors occur attempting to parse a file." -msgstr "" - -#: library/configparser.rst:1446 -msgid "" -"The ``filename`` attribute and :meth:`!__init__` constructor argument were " -"removed. They have been available using the name ``source`` since 3.2." -msgstr "" - -#: library/configparser.rst:1452 -msgid "" -"Exception raised when a key without a corresponding value is continued with " -"an indented line." -msgstr "" - -#: library/configparser.rst:1459 -msgid "" -"Exception raised when attempting to use the :const:`UNNAMED_SECTION` without " -"enabling it." -msgstr "" - -#: library/configparser.rst:1466 -msgid "" -"Exception raised when an attempted :meth:`ConfigParser.write` would not be " -"parsed accurately with a future :meth:`ConfigParser.read` call." -msgstr "" - -#: library/configparser.rst:1469 -msgid "" -"Ex: Writing a key beginning with the :attr:`ConfigParser.SECTCRE` pattern " -"would parse as a section header when read. Attempting to write this will " -"raise this exception." -msgstr "" - -#: library/configparser.rst:1476 -msgid "Footnotes" -msgstr "Notes" - -#: library/configparser.rst:1477 -msgid "" -"Config parsers allow for heavy customization. If you are interested in " -"changing the behaviour outlined by the footnote reference, consult the " -"`Customizing Parser Behaviour`_ section." -msgstr "" - -#~ msgid "file" -#~ msgstr "fichier" - -#~ msgid "% (percent)" -#~ msgstr "% (pourcentage)" - -#, fuzzy -#~ msgid "interpolation in configuration files" -#~ msgstr "Interpolation des valeurs" diff --git a/library/constants.po b/library/constants.po deleted file mode 100644 index 7fe9af20ab..0000000000 --- a/library/constants.po +++ /dev/null @@ -1,216 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-11-06 21:25+0100\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/constants.rst:4 -msgid "Built-in Constants" -msgstr "Constantes natives" - -#: library/constants.rst:6 -msgid "A small number of constants live in the built-in namespace. They are:" -msgstr "" -"Un petit nombre de constantes existent dans le *namespace* natif. Elles " -"sont :" - -#: library/constants.rst:10 -msgid "" -"The false value of the :class:`bool` type. Assignments to ``False`` are " -"illegal and raise a :exc:`SyntaxError`." -msgstr "" -"La valeur fausse du type :class:`bool`. Les assignations à ``False`` ne sont " -"pas autorisées et lèvent une :exc:`SyntaxError`." - -#: library/constants.rst:16 -msgid "" -"The true value of the :class:`bool` type. Assignments to ``True`` are " -"illegal and raise a :exc:`SyntaxError`." -msgstr "" -"La valeur vraie du type :class:`bool`. Les assignations à ``True`` ne sont " -"pas autorisées et lèvent une :exc:`SyntaxError`." - -#: library/constants.rst:22 -#, fuzzy -msgid "" -"An object frequently used to represent the absence of a value, as when " -"default arguments are not passed to a function. Assignments to ``None`` are " -"illegal and raise a :exc:`SyntaxError`. ``None`` is the sole instance of " -"the :class:`~types.NoneType` type." -msgstr "" -"Objet utilisé fréquemment pour représenter l'absence de valeur, comme " -"lorsque des arguments par défaut ne sont pas passés à une fonction. Les " -"assignations à ``None`` ne sont pas autorisées et lèvent " -"une :exc:`SyntaxError`. ``None`` est la seule instance du " -"type :data:`NoneType`." - -#: library/constants.rst:30 -#, fuzzy -msgid "" -"A special value which should be returned by the binary special methods " -"(e.g. :meth:`~object.__eq__`, :meth:`~object.__lt__`, :meth:`~object.__add__`, :meth:`~object.__rsub__`, " -"etc.) to indicate that the operation is not implemented with respect to the " -"other type; may be returned by the in-place binary special methods " -"(e.g. :meth:`~object.__imul__`, :meth:`~object.__iand__`, etc.) for the same " -"purpose. It should not be evaluated in a boolean context. :data:`!" -"NotImplemented` is the sole instance of " -"the :class:`types.NotImplementedType` type." -msgstr "" -"Valeur spéciale qui devrait être renvoyée par les méthodes magiques à deux " -"opérandes " -"(comme :meth:`__eq__`, :meth:`__lt__`, :meth:`__add__`, :meth:`__rsub__`, " -"etc.) pour indiquer que l'opération n'est pas implémentée pour l'autre " -"type ; peut être renvoyée par les méthodes magiques augmentées à deux " -"opérandes (comme :meth:`__imul__`, :meth:`__iand__`, etc.) avec le même " -"objectif. Elle ne doit pas être évaluée comme booléen. ``NotImplemented`` " -"est la seule instance de :data:`types.NotImplementedType`." - -#: library/constants.rst:40 -#, fuzzy -msgid "" -"When a binary (or in-place) method returns :data:`!NotImplemented` the " -"interpreter will try the reflected operation on the other type (or some " -"other fallback, depending on the operator). If all attempts return :data:`!" -"NotImplemented`, the interpreter will raise an appropriate exception. " -"Incorrectly returning :data:`!NotImplemented` will result in a misleading " -"error message or the :data:`!NotImplemented` value being returned to Python " -"code." -msgstr "" -"Lorsqu'une méthode à deux opérandes renvoie ``NotImplemented``, " -"l'interpréteur essaye d'exécuter l'opération réfléchie sur l'autre type (il " -"existe d'autres mécanismes de *fallback*, en fonction de l'opérateur). Si " -"toutes les tentatives renvoient ``NotImplemented``, l'interpréteur lève une " -"exception appropriée. Renvoyer ``NotImplemented`` à tort donne lieu à un " -"message d'erreur peu clair ou au renvoi de la valeur ``NotImplemented`` pour " -"le code Python." - -#: library/constants.rst:47 -msgid "See :ref:`implementing-the-arithmetic-operations` for examples." -msgstr "Voir :ref:`implementing-the-arithmetic-operations` pour des exemples." - -#: library/constants.rst:51 -#, fuzzy -msgid "" -":data:`!NotImplemented` and :exc:`!NotImplementedError` are not " -"interchangeable. This constant should only be used as described above; " -"see :exc:`NotImplementedError` for details on correct usage of the exception." -msgstr "" -"``NotImplementedError`` et ``NotImplemented`` ne sont pas interchangeables, " -"même s'ils ont un nom et un objectif similaire. " -"Voir :exc:`NotImplementedError` pour savoir quand l'utiliser." - -#: library/constants.rst:56 -msgid "Evaluating :data:`!NotImplemented` in a boolean context was deprecated." -msgstr "" - -#: library/constants.rst:59 -#, fuzzy -msgid "" -"Evaluating :data:`!NotImplemented` in a boolean context now raises " -"a :exc:`TypeError`. It previously evaluated to :const:`True` and emitted " -"a :exc:`DeprecationWarning` since Python 3.9." -msgstr "" -"évaluer ``NotImplemented`` dans un contexte booléen est obsolète. Python " -"l'évalue aujourd'hui à ``True`` mais émet un :exc:`DeprecationWarning`. Il " -"lèvera une :exc:`TypeError` dans une version ultérieure de Python." - -#: library/constants.rst:68 -#, fuzzy -msgid "" -"The same as the ellipsis literal \"``...``\", an object frequently used to " -"indicate that something is omitted. Assignment to ``Ellipsis`` is possible, " -"but assignment to ``...`` raises a :exc:`SyntaxError`. ``Ellipsis`` is the " -"sole instance of the :class:`types.EllipsisType` type." -msgstr "" -"Identique au littéral *points de suspension* (\"``...``\"). Valeur spéciale " -"utilisée principalement de manière conjointe avec la syntaxe de découpage " -"(*slicing*) étendu pour les conteneurs personnalisés. ``Ellipsis`` est la " -"seule instance de :data:`types.EllipsisType`." - -#: library/constants.rst:76 -msgid "" -"This constant is true if Python was not started with an :option:`-O` option. " -"See also the :keyword:`assert` statement." -msgstr "" -"Cette constante est vraie si Python n'a pas été démarré avec une " -"option :option:`-O`. Voir aussi l'expression :keyword:`assert`." - -#: library/constants.rst:82 -msgid "" -"The names :data:`None`, :data:`False`, :data:`True` and :data:`__debug__` " -"cannot be reassigned (assignments to them, even as an attribute name, " -"raise :exc:`SyntaxError`), so they can be considered \"true\" constants." -msgstr "" -"Les noms :data:`None`, :data:`False`, :data:`True` et :data:`__debug__` ne " -"peuvent pas être réassignés (des assignations à ces noms, ou aux noms de " -"leurs attributs, lèvent une :exc:`SyntaxError`), donc ils peuvent être " -"considérés comme des \"vraies\" constantes." - -#: library/constants.rst:90 -msgid "Constants added by the :mod:`site` module" -msgstr "Constantes ajoutées par le module :mod:`site`" - -#: library/constants.rst:92 -msgid "" -"The :mod:`site` module (which is imported automatically during startup, " -"except if the :option:`-S` command-line option is given) adds several " -"constants to the built-in namespace. They are useful for the interactive " -"interpreter shell and should not be used in programs." -msgstr "" -"Le module :mod:`site` (qui est importé automatiquement au démarrage, sauf si " -"l'option de ligne de commande :option:`-S` est donnée ajoute un certain " -"nombre de constantes au *namespace* natif. Elles sont utiles pour " -"l'interpréteur interactif et ne devraient pas être utilisées par des " -"programmes." - -#: library/constants.rst:100 -#, fuzzy -msgid "" -"Objects that when printed, print a message like \"Use quit() or Ctrl-D (i.e. " -"EOF) to exit\", and when accessed directly in the interactive interpreter or " -"called as functions, raise :exc:`SystemExit` with the specified exit code." -msgstr "" -"Objets qui, lorsqu'ils sont représentés, affichent un message comme *\"Use " -"quit() or Ctrl-D (i.e. EOF) to exit\"*, et lorsqu'ils sont appelés, lèvent " -"un :exc:`SystemExit` avec le code de retour spécifié." - -#: library/constants.rst:108 -#, fuzzy -msgid "" -"Object that when printed, prints the message \"Type help() for interactive " -"help, or help(object) for help about object.\", and when accessed directly " -"in the interactive interpreter, invokes the built-in help system " -"(see :func:`help`)." -msgstr "" -"Objet qui, lorsqu'il est affiché, affiche un message comme *\"Type license() " -"to see the full license text\"*, et lorsqu'il est appelé, affiche le texte " -"complet de la licence dans un style paginé (un écran à la fois)." - -#: library/constants.rst:116 -msgid "" -"Objects that when printed or called, print the text of copyright or credits, " -"respectively." -msgstr "" -"Objets qui, lorsqu'ils sont affichés ou appelés, affichent le copyright ou " -"les crédits, respectivement." - -#: library/constants.rst:121 -msgid "" -"Object that when printed, prints the message \"Type license() to see the " -"full license text\", and when called, displays the full license text in a " -"pager-like fashion (one screen at a time)." -msgstr "" -"Objet qui, lorsqu'il est affiché, affiche un message comme *\"Type license() " -"to see the full license text\"*, et lorsqu'il est appelé, affiche le texte " -"complet de la licence dans un style paginé (un écran à la fois)." diff --git a/library/contextlib.po b/library/contextlib.po deleted file mode 100644 index 519b28b2b1..0000000000 --- a/library/contextlib.po +++ /dev/null @@ -1,1293 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-11-06 21:37+0100\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/contextlib.rst:2 -msgid "" -":mod:`!contextlib` --- Utilities for :keyword:`!with`\\ -statement contexts" -msgstr "" -":mod:`!contextlib` — Utilitaires pour les contextes s'appuyant sur " -"l'instruction :keyword:`!with`" - -#: library/contextlib.rst:7 -msgid "**Source code:** :source:`Lib/contextlib.py`" -msgstr "**Code source :** :source:`Lib/contextlib.py`" - -#: library/contextlib.rst:11 -msgid "" -"This module provides utilities for common tasks involving " -"the :keyword:`with` statement. For more information see " -"also :ref:`typecontextmanager` and :ref:`context-managers`." -msgstr "" -"Ce module fournit des utilitaires pour les tâches impliquant le mot-" -"clé :keyword:`with`. Pour plus d'informations voir " -"aussi :ref:`typecontextmanager` et :ref:`context-managers`." - -#: library/contextlib.rst:17 -msgid "Utilities" -msgstr "Utilitaires" - -#: library/contextlib.rst:19 -msgid "Functions and classes provided:" -msgstr "Fonctions et classes fournies :" - -#: library/contextlib.rst:23 -#, fuzzy -msgid "" -"An :term:`abstract base class` for classes that " -"implement :meth:`~object.__enter__` and :meth:`~object.__exit__`. A default " -"implementation for :meth:`~object.__enter__` is provided which returns " -"``self`` while :meth:`~object.__exit__` is an abstract method which by " -"default returns ``None``. See also the definition " -"of :ref:`typecontextmanager`." -msgstr "" -":term:`Classe abstraite ` pour les classes qui " -"implémentent les méthodes :meth:`object.__enter__` " -"et :meth:`object.__exit__`. Une implémentation par défaut " -"de :meth:`object.__enter__` est fournie, qui renvoie ``self``, " -"et :meth:`object.__exit__` est une méthode abstraite qui renvoie ``None`` " -"par défaut. Voir aussi la définition de :ref:`typecontextmanager`." - -#: library/contextlib.rst:34 -#, fuzzy -msgid "" -"An :term:`abstract base class` for classes that " -"implement :meth:`~object.__aenter__` and :meth:`~object.__aexit__`. A " -"default implementation for :meth:`~object.__aenter__` is provided which " -"returns ``self`` while :meth:`~object.__aexit__` is an abstract method which " -"by default returns ``None``. See also the definition of :ref:`async-context-" -"managers`." -msgstr "" -":term:`Classe abstraite ` pour les classes qui " -"implémentent les méthodes :meth:`object.__aenter__` " -"et :meth:`object.__aexit__`. Une implémentation par défaut " -"de :meth:`object.__aenter__` est fournie, qui renvoie ``self``, " -"et :meth:`object.__aexit__` est une méthode abstraite qui renvoie ``None`` " -"par défaut. Voir aussi la définition de :ref:`async-context-managers`." - -#: library/contextlib.rst:46 -#, fuzzy -msgid "" -"This function is a :term:`decorator` that can be used to define a factory " -"function for :keyword:`with` statement context managers, without needing to " -"create a class or separate :meth:`~object.__enter__` " -"and :meth:`~object.__exit__` methods." -msgstr "" -"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir " -"une fonction fabriquant des gestionnaires de contexte à utiliser " -"avec :keyword:`with`, sans nécessiter de créer une classe ou des " -"méthodes :meth:`__enter__` et :meth:`__exit__` séparées." - -#: library/contextlib.rst:50 -#, fuzzy -msgid "" -"While many objects natively support use in with statements, sometimes a " -"resource needs to be managed that isn't a context manager in its own right, " -"and doesn't implement a ``close()`` method for use with " -"``contextlib.closing``." -msgstr "" -"Alors que de nombreux objets s'utilisent nativement dans des blocs *with*, " -"on trouve parfois des ressources qui nécessitent d'être gérées mais ne sont " -"pas des gestionnaires de contextes, et qui n'implémentent pas de méthode " -"``close()`` pour pouvoir être utilisées avec ``contextlib.closing``" - -#: library/contextlib.rst:54 -msgid "" -"An abstract example would be the following to ensure correct resource " -"management::" -msgstr "" -"L'exemple abstrait suivant présente comment assurer une gestion correcte des " -"ressources ::" - -#: library/contextlib.rst:69 -msgid "The function can then be used like this::" -msgstr "" - -#: library/contextlib.rst:75 -msgid "" -"The function being decorated must return a :term:`generator`-iterator when " -"called. This iterator must yield exactly one value, which will be bound to " -"the targets in the :keyword:`with` statement's :keyword:`!as` clause, if any." -msgstr "" -"La fonction à décorer doit renvoyer un :term:`générateur `-" -"itérateur quand elle est appelée. Ce générateur ne doit produire qu'une " -"seule valeur, qui est récupérée dans le bloc :keyword:`with` à l'aide de la " -"clause :keyword:`!as` si précisée." - -#: library/contextlib.rst:79 -msgid "" -"At the point where the generator yields, the block nested in " -"the :keyword:`with` statement is executed. The generator is then resumed " -"after the block is exited. If an unhandled exception occurs in the block, it " -"is reraised inside the generator at the point where the yield occurred. " -"Thus, you can use a :keyword:`try`...\\ :keyword:`except`..." -"\\ :keyword:`finally` statement to trap the error (if any), or ensure that " -"some cleanup takes place. If an exception is trapped merely in order to log " -"it or to perform some action (rather than to suppress it entirely), the " -"generator must reraise that exception. Otherwise the generator context " -"manager will indicate to the :keyword:`!with` statement that the exception " -"has been handled, and execution will resume with the statement immediately " -"following the :keyword:`!with` statement." -msgstr "" -"Au moment où le générateur produit une valeur, le bloc imbriqué sous " -"l'instruction :keyword:`with` est exécuté. Le générateur est ensuite repris " -"après la sortie du bloc. Si une exception non gérée survient dans le bloc, " -"elle est relayée dans le générateur au niveau de l'instruction *yield*. " -"Ainsi, vous pouvez utiliser les instructions :keyword:`try`…" -"\\ :keyword:`except`…\\ :keyword:`finally` pour attraper l'erreur (s'il y " -"a), ou vous assurer qu'un nettoyage a bien lieu. Si une exception est " -"attrapée dans l'unique but d'être journalisée ou d'effectuer une action " -"particulière (autre que supprimer entièrement l'exception), le générateur se " -"doit de la relayer. Autrement le générateur gestionnaire de contexte doit " -"indiquer à l'instruction :keyword:`!with` que l'exception a été gérée, et " -"l'exécution reprend sur l'instruction qui suit directement le " -"bloc :keyword:`!with`." - -#: library/contextlib.rst:91 -msgid "" -":func:`contextmanager` uses :class:`ContextDecorator` so the context " -"managers it creates can be used as decorators as well as in :keyword:`with` " -"statements. When used as a decorator, a new generator instance is implicitly " -"created on each function call (this allows the otherwise \"one-shot\" " -"context managers created by :func:`contextmanager` to meet the requirement " -"that context managers support multiple invocations in order to be used as " -"decorators)." -msgstr "" -"Le décorateur :func:`contextmanager` utilise la " -"classe :class:`ContextDecorator` afin que les gestionnaires de contexte " -"qu'il crée puissent être utilisés aussi bien en tant que décorateurs qu'avec " -"des instructions :keyword:`with`. Quand vous l'utilisez comme décorateur, " -"une nouvelle instance du générateur est créée à chaque appel de la fonction " -"(cela permet aux gestionnaires de contexte à usage unique créés " -"par :func:`contextmanager` de remplir la condition de pouvoir être invoqués " -"plusieurs fois afin d'être utilisés comme décorateurs)." - -#: library/contextlib.rst:98 -msgid "Use of :class:`ContextDecorator`." -msgstr "Utilisation de la classe :class:`ContextDecorator`." - -#: library/contextlib.rst:104 -msgid "" -"Similar to :func:`~contextlib.contextmanager`, but creates " -"an :ref:`asynchronous context manager `." -msgstr "" -"Similaire à :func:`~contextlib.contextmanager`, mais crée " -"un :ref:`gestionnaire de contexte asynchrone `." - -#: library/contextlib.rst:107 -#, fuzzy -msgid "" -"This function is a :term:`decorator` that can be used to define a factory " -"function for :keyword:`async with` statement asynchronous context managers, " -"without needing to create a class or separate :meth:`~object.__aenter__` " -"and :meth:`~object.__aexit__` methods. It must be applied to " -"an :term:`asynchronous generator` function." -msgstr "" -"Cette fonction est un :term:`decorator` qui peut être utilisé pour définir " -"une fonction fabriquant des gestionnaires de contexte asynchrones à utiliser " -"avec :keyword:`async with`, sans nécessiter de créer une classe ou des " -"méthodes :meth:`__aenter__` et :meth:`__aexit__` séparées. Le décorateur " -"doit être appliqué à une fonction renvoyant un :term:`asynchronous " -"generator`." - -#: library/contextlib.rst:113 -msgid "A simple example::" -msgstr "Un exemple simple ::" - -#: library/contextlib.rst:131 -msgid "" -"Context managers defined with :func:`asynccontextmanager` can be used either " -"as decorators or with :keyword:`async with` statements::" -msgstr "" -"Les gestionnaires de contexte définis avec :func:`asynccontextmanager` " -"peuvent s'utiliser comme décorateurs ou dans les " -"instructions :keyword:`async with` ::" - -#: library/contextlib.rst:149 -msgid "" -"When used as a decorator, a new generator instance is implicitly created on " -"each function call. This allows the otherwise \"one-shot\" context managers " -"created by :func:`asynccontextmanager` to meet the requirement that context " -"managers support multiple invocations in order to be used as decorators." -msgstr "" - -#: library/contextlib.rst:154 -#, fuzzy -msgid "" -"Async context managers created with :func:`asynccontextmanager` can be used " -"as decorators." -msgstr "" -"Une classe mère qui permet à un gestionnaire de contexte d'être aussi " -"utilisé comme décorateur." - -#: library/contextlib.rst:161 -msgid "" -"Return a context manager that closes *thing* upon completion of the block. " -"This is basically equivalent to::" -msgstr "" -"Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. " -"C'est essentiellement équivalent à ::" - -#: library/contextlib.rst:173 -msgid "And lets you write code like this::" -msgstr "Et cela vous permet d'écrire du code tel que ::" - -#: library/contextlib.rst:182 -msgid "" -"without needing to explicitly close ``page``. Even if an error occurs, " -"``page.close()`` will be called when the :keyword:`with` block is exited." -msgstr "" -"sans besoin de fermer explicitement ``page``. Même si une erreur survient, " -"``page.close()`` est appelée à la fermeture du bloc :keyword:`with`." - -#: library/contextlib.rst:187 -msgid "" -"Most types managing resources support the :term:`context manager` protocol, " -"which closes *thing* on leaving the :keyword:`with` statement. As " -"such, :func:`!closing` is most useful for third party types that don't " -"support context managers. This example is purely for illustration purposes, " -"as :func:`~urllib.request.urlopen` would normally be used in a context " -"manager." -msgstr "" - -#: library/contextlib.rst:196 -#, fuzzy -msgid "" -"Return an async context manager that calls the ``aclose()`` method of " -"*thing* upon completion of the block. This is basically equivalent to::" -msgstr "" -"Renvoie un gestionnaire de contexte qui ferme *thing* à la fin du bloc. " -"C'est essentiellement équivalent à ::" - -#: library/contextlib.rst:208 -msgid "" -"Significantly, ``aclosing()`` supports deterministic cleanup of async " -"generators when they happen to exit early by :keyword:`break` or an " -"exception. For example::" -msgstr "" - -#: library/contextlib.rst:219 -msgid "" -"This pattern ensures that the generator's async exit code is executed in the " -"same context as its iterations (so that exceptions and context variables " -"work as expected, and the exit code isn't run after the lifetime of some " -"task it depends on)." -msgstr "" - -#: library/contextlib.rst:231 -#, fuzzy -msgid "" -"Return a context manager that returns *enter_result* " -"from :meth:`~object.__enter__`, but otherwise does nothing. It is intended " -"to be used as a stand-in for an optional context manager, for example::" -msgstr "" -"Renvoie un gestionnaire de contexte dont la méthode ``__enter__`` renvoie " -"*enter_result*, mais ne fait rien d'autre. L'idée est de l'utiliser comme " -"remplaçant pour un gestionnaire de contexte optionnel, par exemple ::" - -#: library/contextlib.rst:245 -msgid "An example using *enter_result*::" -msgstr "Un exemple utilisant *enter_result* ::" - -#: library/contextlib.rst:258 -#, fuzzy -msgid "" -"It can also be used as a stand-in for :ref:`asynchronous context managers " -"`::" -msgstr "" -"Similaire à :func:`~contextlib.contextmanager`, mais crée " -"un :ref:`gestionnaire de contexte asynchrone ` ::" - -#: library/contextlib.rst:274 -msgid ":term:`asynchronous context manager` support was added." -msgstr "" - -#: library/contextlib.rst:281 -#, fuzzy -msgid "" -"Return a context manager that suppresses any of the specified exceptions if " -"they occur in the body of a :keyword:`!with` statement and then resumes " -"execution with the first statement following the end of the :keyword:`!with` " -"statement." -msgstr "" -"Renvoie un gestionnaire de contexte qui supprime toutes les exceptions " -"spécifiées si elles surviennent dans le corps du bloc *with*, et reprend " -"l'exécution sur la première instruction qui suit la fin du bloc *with*." - -#: library/contextlib.rst:286 -msgid "" -"As with any other mechanism that completely suppresses exceptions, this " -"context manager should be used only to cover very specific errors where " -"silently continuing with program execution is known to be the right thing to " -"do." -msgstr "" -"Comme pour tous les mécanismes qui suppriment complètement les exceptions, " -"ce gestionnaire de contexte doit seulement être utilisé pour couvrir des cas " -"très spécifiques d'erreurs où il est certain que continuer silencieusement " -"l'exécution du programme est la bonne chose à faire." - -#: library/contextlib.rst:291 -msgid "For example::" -msgstr "Par exemple ::" - -#: library/contextlib.rst:301 -msgid "This code is equivalent to::" -msgstr "Ce code est équivalent à ::" - -#: library/contextlib.rst:362 library/contextlib.rst:389 -msgid "This context manager is :ref:`reentrant `." -msgstr "Ce gestionnaire de contexte est :ref:`réentrant `." - -#: library/contextlib.rst:315 -msgid "" -"If the code within the :keyword:`!with` block raises " -"a :exc:`BaseExceptionGroup`, suppressed exceptions are removed from the " -"group. Any exceptions of the group which are not suppressed are re-raised " -"in a new group which is created using the original " -"group's :meth:`~BaseExceptionGroup.derive` method." -msgstr "" - -#: library/contextlib.rst:323 -msgid "" -"``suppress`` now supports suppressing exceptions raised as part of " -"a :exc:`BaseExceptionGroup`." -msgstr "" - -#: library/contextlib.rst:329 -#, fuzzy -msgid "" -"Context manager for temporarily redirecting :data:`sys.stdout` to " -"another :term:`file object`." -msgstr "" -"Gestionnaire de contexte servant à rediriger " -"temporairement :data:`sys.stdout` vers un autre fichier ou objet fichier-" -"compatible." - -#: library/contextlib.rst:332 -#, fuzzy -msgid "" -"This tool adds flexibility to existing functions or classes whose output is " -"hardwired to :data:`sys.stdout`." -msgstr "" -"Cet outil ajoute une certaine flexibilité aux fonctions ou classes " -"existantes dont la sortie est envoyée vers la sortie standard." - -#: library/contextlib.rst:335 -#, fuzzy -msgid "" -"For example, the output of :func:`help` normally is sent to *sys.stdout*. " -"You can capture that output in a string by redirecting the output to " -"an :class:`io.StringIO` object. The replacement stream is returned from " -"the :meth:`~object.__enter__` method and so is available as the target of " -"the :keyword:`with` statement::" -msgstr "" -"Par exemple, la sortie de :func:`help` est normalement envoyée vers " -"*sys.stdout*. Vous pouvez capturer cette sortie dans une chaîne de " -"caractères en la redirigeant vers un objet :class:`io.StringIO` ::" - -#: library/contextlib.rst:345 -msgid "" -"To send the output of :func:`help` to a file on disk, redirect the output to " -"a regular file::" -msgstr "" -"Pour envoyer la sortie de :func:`help` vers un fichier sur le disque, " -"redirigez-la sur un fichier normal ::" - -#: library/contextlib.rst:352 -msgid "To send the output of :func:`help` to *sys.stderr*::" -msgstr "Pour envoyer la sortie de :func:`help` sur *sys.stderr* ::" - -#: library/contextlib.rst:357 -msgid "" -"Note that the global side effect on :data:`sys.stdout` means that this " -"context manager is not suitable for use in library code and most threaded " -"applications. It also has no effect on the output of subprocesses. However, " -"it is still a useful approach for many utility scripts." -msgstr "" -"Notez que l'effet de bord global sur :data:`sys.stdout` signifie que ce " -"gestionnaire de contexte n'est pas adapté à une utilisation dans le code " -"d'une bibliothèque ni dans la plupart des applications à plusieurs fils " -"d'exécution. Aussi, cela n'a pas d'effet sur la sortie des sous-processus. " -"Cependant, cela reste une approche utile pour beaucoup de scripts " -"utilitaires." - -#: library/contextlib.rst:369 -#, fuzzy -msgid "" -"Similar to :func:`~contextlib.redirect_stdout` but redirecting the " -"global :data:`sys.stderr` to another :term:`file object`." -msgstr "" -"Similaire à :func:`~contextlib.redirect_stdout` mais " -"redirige :data:`sys.stderr` vers un autre fichier ou objet fichier-" -"compatible." - -#: library/contextlib.rst:379 -msgid "" -"Non parallel-safe context manager to change the current working directory. " -"As this changes a global state, the working directory, it is not suitable " -"for use in most threaded or async contexts. It is also not suitable for most " -"non-linear code execution, like generators, where the program execution is " -"temporarily relinquished -- unless explicitly desired, you should not yield " -"when this context manager is active." -msgstr "" - -#: library/contextlib.rst:386 -msgid "" -"This is a simple wrapper around :func:`~os.chdir`, it changes the current " -"working directory upon entering and restores the old one on exit." -msgstr "" - -#: library/contextlib.rst:396 -msgid "" -"A base class that enables a context manager to also be used as a decorator." -msgstr "" -"Une classe mère qui permet à un gestionnaire de contexte d'être aussi " -"utilisé comme décorateur." - -#: library/contextlib.rst:398 -#, fuzzy -msgid "" -"Context managers inheriting from ``ContextDecorator`` have to " -"implement :meth:`~object.__enter__` and :meth:`~object.__exit__` as normal. " -"``__exit__`` retains its optional exception handling even when used as a " -"decorator." -msgstr "" -"Les gestionnaires de contexte héritant de ``ContextDecorator`` doivent " -"implémenter ``__enter__`` et ``__exit__`` comme habituellement. ``__exit__`` " -"conserve sa gestion optionnelle des exceptions même lors de l'utilisation en " -"décorateur." - -#: library/contextlib.rst:403 -msgid "" -"``ContextDecorator`` is used by :func:`contextmanager`, so you get this " -"functionality automatically." -msgstr "" -"``ContextDecorator`` est utilisé par :func:`contextmanager`, donc vous " -"bénéficiez automatiquement de cette fonctionnalité." - -#: library/contextlib.rst:406 -msgid "Example of ``ContextDecorator``::" -msgstr "Exemple de ``ContextDecorator`` ::" - -#: library/contextlib.rst:519 -msgid "The class can then be used like this::" -msgstr "" - -#: library/contextlib.rst:437 -msgid "" -"This change is just syntactic sugar for any construct of the following form::" -msgstr "" -"Ce changement est simplement un sucre syntaxique pour les constructions de " -"la forme suivante ::" - -#: library/contextlib.rst:443 -msgid "``ContextDecorator`` lets you instead write::" -msgstr "``ContextDecorator`` vous permet d'écrire à la place ::" - -#: library/contextlib.rst:449 -msgid "" -"It makes it clear that the ``cm`` applies to the whole function, rather than " -"just a piece of it (and saving an indentation level is nice, too)." -msgstr "" -"Cela éclaircit le fait que ``cm`` s'applique à la fonction entière, et pas " -"seulement à un morceau en particulier (et gagner un niveau d'indentation est " -"toujours appréciable)." - -#: library/contextlib.rst:452 -msgid "" -"Existing context managers that already have a base class can be extended by " -"using ``ContextDecorator`` as a mixin class::" -msgstr "" -"Les gestionnaires de contexte existants qui ont déjà une classe mère peuvent " -"être étendus en utilisant ``ContextDecorator`` comme une *mixin* ::" - -#: library/contextlib.rst:465 -msgid "" -"As the decorated function must be able to be called multiple times, the " -"underlying context manager must support use in multiple :keyword:`with` " -"statements. If this is not the case, then the original construct with the " -"explicit :keyword:`!with` statement inside the function should be used." -msgstr "" -"Comme la fonction décorée doit être capable d'être appelée plusieurs fois, " -"le gestionnaire de contexte sous-jacent doit permettre d'être utilisé dans " -"de multiples instructions :keyword:`with`. Si ce n'est pas le cas, alors la " -"construction d'origine avec de multiples instructions :keyword:`!with` au " -"sein de la fonction doit être utilisée." - -#: library/contextlib.rst:470 -msgid "" -"When the decorated callable is a generator function, coroutine function, or " -"asynchronous generator function, the returned wrapper is of the same kind " -"and keeps the context manager open for the lifetime of the iteration or " -"await rather than only for the call that creates the generator or coroutine " -"object. Wrapped generators and asynchronous generators are explicitly " -"closed when iteration ends, as if by :func:`closing` or :func:`aclosing`." -msgstr "" - -#: library/contextlib.rst:478 -msgid "" -"For asynchronous generators the wrapper re-yields each value with ``async " -"for``; values sent with :meth:`~agen.asend` and exceptions thrown " -"with :meth:`~agen.athrow` are not forwarded to the wrapped generator." -msgstr "" - -#: library/contextlib.rst:485 -msgid "" -"Decorating a generator function, coroutine function, or asynchronous " -"generator function now keeps the context manager open across iteration or " -"await. Previously the context manager exited as soon as the generator or " -"coroutine object was created." -msgstr "" - -#: library/contextlib.rst:494 -msgid "" -"Similar to :class:`ContextDecorator`, but the context manager is entered and " -"exited with :keyword:`async with`. Decorate coroutine functions and " -"asynchronous generator functions with this class; the returned wrapper is of " -"the same kind." -msgstr "" - -#: library/contextlib.rst:500 -msgid "" -"Synchronous functions and generators are accepted, but the wrapper is always " -"asynchronous, so the decorated callable must then be awaited or iterated " -"with ``async for``. If that change of calling convention is not intended, " -"use :class:`ContextDecorator` instead." -msgstr "" - -#: library/contextlib.rst:505 -#, fuzzy -msgid "Example of ``AsyncContextDecorator``::" -msgstr "Exemple de ``ContextDecorator`` ::" - -#: library/contextlib.rst:541 -msgid "" -"Decorating an asynchronous generator function now keeps the context manager " -"open across iteration. Previously the context manager exited as soon as the " -"generator object was created. Synchronous functions and synchronous " -"generator functions are also now accepted, with an asynchronous wrapper " -"returned." -msgstr "" - -#: library/contextlib.rst:551 -msgid "" -"A context manager that is designed to make it easy to programmatically " -"combine other context managers and cleanup functions, especially those that " -"are optional or otherwise driven by input data." -msgstr "" -"Gestionnaire de contexte conçu pour simplifier le fait de combiner " -"programmatiquement d'autres gestionnaires de contexte et fonctions de " -"nettoyage, spécifiquement ceux qui sont optionnels ou pilotés par des " -"données d'entrée." - -#: library/contextlib.rst:555 -msgid "" -"For example, a set of files may easily be handled in a single with statement " -"as follows::" -msgstr "" -"Par exemple, un ensemble de fichiers peut facilement être géré dans une " -"unique instruction *with* comme suit ::" - -#: library/contextlib.rst:564 -msgid "" -"The :meth:`~object.__enter__` method returns the :class:`ExitStack` " -"instance, and performs no additional operations." -msgstr "" - -#: library/contextlib.rst:567 -msgid "" -"Each instance maintains a stack of registered callbacks that are called in " -"reverse order when the instance is closed (either explicitly or implicitly " -"at the end of a :keyword:`with` statement). Note that callbacks are *not* " -"invoked implicitly when the context stack instance is garbage collected." -msgstr "" -"Chaque instance maintient une pile de fonctions de rappels (*callbacks*) " -"enregistrées qui sont appelées en ordre inverse quand l'instance est fermée " -"(explicitement ou implicitement à la fin d'un bloc :keyword:`with`). Notez " -"que ces fonctions ne sont *pas* invoquées implicitement quand l'instance de " -"la pile de contextes est collectée par le ramasse-miettes." - -#: library/contextlib.rst:572 -msgid "" -"This stack model is used so that context managers that acquire their " -"resources in their ``__init__`` method (such as file objects) can be handled " -"correctly." -msgstr "" -"Ce modèle de pile est utilisé afin que les gestionnaires de contexte qui " -"acquièrent leurs ressources dans leur méthode ``__init__`` (tels que les " -"objets-fichiers) puissent être gérés correctement." - -#: library/contextlib.rst:576 -msgid "" -"Since registered callbacks are invoked in the reverse order of registration, " -"this ends up behaving as if multiple nested :keyword:`with` statements had " -"been used with the registered set of callbacks. This even extends to " -"exception handling - if an inner callback suppresses or replaces an " -"exception, then outer callbacks will be passed arguments based on that " -"updated state." -msgstr "" -"Comme les fonctions de rappel enregistrées sont invoquées dans l'ordre " -"inverse d'enregistrement, cela revient au même que si de multiples " -"blocs :keyword:`with` imbriqués avaient été utilisés avec l'ensemble de " -"fonctions enregistrées. Cela s'étend aussi à la gestion d'exceptions — si " -"une fonction de rappel intérieure supprime ou remplace une exception, alors " -"les fonctions extérieures reçoivent des arguments basés sur ce nouvel état." - -#: library/contextlib.rst:583 -msgid "" -"This is a relatively low level API that takes care of the details of " -"correctly unwinding the stack of exit callbacks. It provides a suitable " -"foundation for higher level context managers that manipulate the exit stack " -"in application specific ways." -msgstr "" -"C'est une *API* relativement bas-niveau qui s'occupe de dérouler " -"correctement la pile des appels de sortie. Elle fournit une base adaptée " -"pour des gestionnaires de contexte de plus haut niveau qui manipulent la " -"pile de sortie de manière spécifique à l'application." - -#: library/contextlib.rst:592 -#, fuzzy -msgid "" -"Enters a new context manager and adds its :meth:`~object.__exit__` method to " -"the callback stack. The return value is the result of the context manager's " -"own :meth:`~object.__enter__` method." -msgstr "" -"Entre dans un nouveau gestionnaire de contexte et ajoute sa " -"méthode :meth:`__exit__` à la pile d'appels. La valeur de retour est le " -"résultat de la méthode :meth:`__enter__` du gestionnaire de contexte donné." - -#: library/contextlib.rst:596 -msgid "" -"These context managers may suppress exceptions just as they normally would " -"if used directly as part of a :keyword:`with` statement." -msgstr "" -"Ces gestionnaires de contexte peuvent supprimer des exceptions comme ils le " -"feraient normalement s'ils étaient utilisés directement derrière une " -"instruction :keyword:`with`." - -#: library/contextlib.rst:599 -msgid "" -"Raises :exc:`TypeError` instead of :exc:`AttributeError` if *cm* is not a " -"context manager." -msgstr "" - -#: library/contextlib.rst:603 -msgid "" -"Added support for arbitrary descriptors :meth:`!__enter__` and :meth:`!" -"__exit__`." -msgstr "" - -#: library/contextlib.rst:609 -#, fuzzy -msgid "" -"Adds a context manager's :meth:`~object.__exit__` method to the callback " -"stack." -msgstr "" -"Ajoute la méthode :meth:`__exit__` d'un gestionnaire de contexte à la pile " -"d'appels." - -#: library/contextlib.rst:611 -#, fuzzy -msgid "" -"As ``__enter__`` is *not* invoked, this method can be used to cover part of " -"an :meth:`~object.__enter__` implementation with a context manager's " -"own :meth:`~object.__exit__` method." -msgstr "" -"Comme ``__enter__`` n'est *pas* invoquée, cette méthode peut être utilisée " -"pour couvrir une partie de l'implémentation de :meth:`__enter__` avec la " -"propre méthode :meth:`__exit__` d'un gestionnaire de contexte." - -#: library/contextlib.rst:615 -#, fuzzy -msgid "" -"If passed an object that is not a context manager, this method assumes it is " -"a callback with the same signature as a context " -"manager's :meth:`~object.__exit__` method and adds it directly to the " -"callback stack." -msgstr "" -"Si l'argument passé n'est pas un gestionnaire de contexte, la méthode assume " -"qu'il s'agit d'une fonction de rappel avec la même signature que la " -"méthode :meth:`__exit__` des gestionnaires de contexte pour l'ajouter " -"directement à la pile d'appels." - -#: library/contextlib.rst:619 -#, fuzzy -msgid "" -"By returning true values, these callbacks can suppress exceptions the same " -"way context manager :meth:`~object.__exit__` methods can." -msgstr "" -"En retournant des valeurs vraies, ces fonctions peuvent supprimer des " -"exceptions de la même manière que le peuvent les méthodes :meth:`__exit__` " -"des gestionnaires de contexte." - -#: library/contextlib.rst:622 -msgid "" -"The passed in object is returned from the function, allowing this method to " -"be used as a function decorator." -msgstr "" -"L'objet passé en paramètre est renvoyé par la fonction, ce qui permet à la " -"méthode d'être utilisée comme décorateur de fonction." - -#: library/contextlib.rst:625 -msgid "Added support for arbitrary descriptors :meth:`!__exit__`." -msgstr "" - -#: library/contextlib.rst:630 -msgid "" -"Accepts an arbitrary callback function and arguments and adds it to the " -"callback stack." -msgstr "" -"Accepte une fonction arbitraire et ses arguments et les ajoute à la pile des " -"fonctions de rappel." - -#: library/contextlib.rst:633 -msgid "" -"Unlike the other methods, callbacks added this way cannot suppress " -"exceptions (as they are never passed the exception details)." -msgstr "" -"À la différence des autres méthodes, les fonctions de rappel ajoutées de " -"cette manière ne peuvent pas supprimer les exceptions (puisqu'elles ne " -"reçoivent jamais les détails de l'exception)." - -#: library/contextlib.rst:636 -msgid "" -"The passed in callback is returned from the function, allowing this method " -"to be used as a function decorator." -msgstr "" -"La fonction passée en paramètre est renvoyée par la méthode, ce qui permet à " -"la méthode d'être utilisée comme décorateur de fonction." - -#: library/contextlib.rst:641 -msgid "" -"Transfers the callback stack to a fresh :class:`ExitStack` instance and " -"returns it. No callbacks are invoked by this operation - instead, they will " -"now be invoked when the new stack is closed (either explicitly or implicitly " -"at the end of a :keyword:`with` statement)." -msgstr "" -"Transfère la pile d'appels à une nouvelle instance de :class:`ExitStack` et " -"la renvoie. Aucune fonction de rappel n'est invoquée par cette opération — à " -"la place, elles sont dorénavant invoquées quand la nouvelle pile sera close " -"(soit explicitement soit implicitement à la fin d'un bloc :keyword:`with`)." - -#: library/contextlib.rst:646 -msgid "" -"For example, a group of files can be opened as an \"all or nothing\" " -"operation as follows::" -msgstr "" -"Par exemple, un groupe de fichiers peut être ouvert comme une opération " -"« tout ou rien » comme suit ::" - -#: library/contextlib.rst:660 -msgid "" -"Immediately unwinds the callback stack, invoking callbacks in the reverse " -"order of registration. For any context managers and exit callbacks " -"registered, the arguments passed in will indicate that no exception occurred." -msgstr "" -"Déroule immédiatement la pile d'appels, invoquant les fonctions de rappel " -"dans l'ordre inverse d'enregistrement. Pour chaque gestionnaire de contexte " -"et fonction de sortie enregistré, les arguments passés indiqueront qu'aucune " -"exception n'est survenue." - -#: library/contextlib.rst:667 -msgid "" -"An :ref:`asynchronous context manager `, similar " -"to :class:`ExitStack`, that supports combining both synchronous and " -"asynchronous context managers, as well as having coroutines for cleanup " -"logic." -msgstr "" -"Un :ref:`gestionnaire de contexte asynchrone `, " -"similaire à :class:`ExitStack`, apte à combiner à la fois des gestionnaires " -"de contexte synchrones et asynchrones, ainsi que la gestion de coroutines " -"pour la logique de nettoyage." - -#: library/contextlib.rst:672 -#, fuzzy -msgid "" -"The :meth:`~ExitStack.close` method is not implemented; :meth:`aclose` must " -"be used instead." -msgstr "" -"La méthode :meth:`close` n'est pas implémentée, :meth:`aclose` doit plutôt " -"être utilisée." - -#: library/contextlib.rst:678 -#, fuzzy -msgid "" -"Similar to :meth:`ExitStack.enter_context` but expects an asynchronous " -"context manager." -msgstr "" -"Similaire à :meth:`enter_context` mais attend un gestionnaire de contexte " -"asynchrone." - -#: library/contextlib.rst:681 -msgid "" -"Raises :exc:`TypeError` instead of :exc:`AttributeError` if *cm* is not an " -"asynchronous context manager." -msgstr "" - -#: library/contextlib.rst:685 -msgid "" -"Added support for arbitrary descriptors :meth:`!__aenter__` and :meth:`!" -"__aexit__`." -msgstr "" - -#: library/contextlib.rst:690 -#, fuzzy -msgid "" -"Similar to :meth:`ExitStack.push` but expects either an asynchronous context " -"manager or a coroutine function." -msgstr "" -"Similaire à :meth:`push` mais attend soit un gestionnaire de contexte " -"asynchrone soit une fonction coroutine." - -#: library/contextlib.rst:693 -msgid "Added support for arbitrary descriptors :meth:`!__aexit__`." -msgstr "" - -#: library/contextlib.rst:698 -#, fuzzy -msgid "Similar to :meth:`ExitStack.callback` but expects a coroutine function." -msgstr "Similaire à :meth:`callback` mais attend une fonction coroutine." - -#: library/contextlib.rst:703 -#, fuzzy -msgid "Similar to :meth:`ExitStack.close` but properly handles awaitables." -msgstr "" -"Similaire à :meth:`close` mais gère correctement les tâches asynchrones." - -#: library/contextlib.rst:705 -msgid "Continuing the example for :func:`asynccontextmanager`::" -msgstr "En continuité de l'exemple de :func:`asynccontextmanager` ::" - -#: library/contextlib.rst:717 -msgid "Examples and Recipes" -msgstr "Exemples et Recettes" - -#: library/contextlib.rst:719 -#, fuzzy -msgid "" -"This section describes some examples and recipes for making effective use of " -"the tools provided by :mod:`!contextlib`." -msgstr "" -"Cette section décrit quelques exemples et recettes pour décrire une " -"utilisation réelle des outils fournis par :mod:`contextlib`." - -#: library/contextlib.rst:724 -msgid "Supporting a variable number of context managers" -msgstr "Gérer un nombre variable de gestionnaires de contexte" - -#: library/contextlib.rst:726 -msgid "" -"The primary use case for :class:`ExitStack` is the one given in the class " -"documentation: supporting a variable number of context managers and other " -"cleanup operations in a single :keyword:`with` statement. The variability " -"may come from the number of context managers needed being driven by user " -"input (such as opening a user specified collection of files), or from some " -"of the context managers being optional::" -msgstr "" -"Le cas d'utilisation primaire de :class:`ExitStack` est celui décrit dans la " -"documentation de la classe : gérer un nombre variable de gestionnaires de " -"contexte et d'autres opérations de nettoyage en une unique " -"instruction :keyword:`with`. La variabilité peut venir du nombre de " -"gestionnaires de contexte voulus découlant d'une entrée de l'utilisateur " -"(comme ouvrir une collection spécifique de fichiers de l'utilisateur), ou de " -"certains gestionnaires de contexte qui peuvent être optionnels ::" - -#: library/contextlib.rst:741 -msgid "" -"As shown, :class:`ExitStack` also makes it quite easy to use :keyword:`with` " -"statements to manage arbitrary resources that don't natively support the " -"context management protocol." -msgstr "" -"Comme montré, :class:`ExitStack` rend aussi assez facile d'utiliser les " -"instructions :keyword:`with` pour gérer des ressources arbitraires qui ne " -"gèrent pas nativement le protocole des gestionnaires de contexte." - -#: library/contextlib.rst:747 -msgid "Catching exceptions from ``__enter__`` methods" -msgstr "Attraper des exceptions depuis les méthodes ``__enter__``" - -#: library/contextlib.rst:749 -#, fuzzy -msgid "" -"It is occasionally desirable to catch exceptions from " -"an :meth:`~object.__enter__` method implementation, *without* inadvertently " -"catching exceptions from the :keyword:`with` statement body or the context " -"manager's :meth:`~object.__exit__` method. By using :class:`ExitStack` the " -"steps in the context management protocol can be separated slightly in order " -"to allow this::" -msgstr "" -"Il est occasionnellement souhaitable d'attraper les exceptions depuis " -"l'implémentation d'une méthode ``__enter__``, *sans* attraper par " -"inadvertance les exceptions du corps de l'instruction :keyword:`with` ou de " -"la méthode ``__exit__`` des gestionnaires de contexte. En " -"utilisant :class:`ExitStack`, les étapes du protocole des gestionnaires de " -"contexte peuvent être légèrement séparées pour permettre le code suivant ::" - -#: library/contextlib.rst:764 -msgid "" -"Actually needing to do this is likely to indicate that the underlying API " -"should be providing a direct resource management interface for use " -"with :keyword:`try`/:keyword:`except`/:keyword:`finally` statements, but not " -"all APIs are well designed in that regard. When a context manager is the " -"only resource management API provided, then :class:`ExitStack` can make it " -"easier to handle various situations that can't be handled directly in " -"a :keyword:`with` statement." -msgstr "" -"Avoir à faire cela est en fait surtout utile pour indiquer que l'*API* sous-" -"jacente devrait fournir une interface directe de gestion des ressources à " -"utiliser avec les " -"instructions :keyword:`try`/:keyword:`except`/:keyword:`finally`, mais que " -"toutes les *API* ne sont pas bien conçues dans cet objectif. Quand un " -"gestionnaire de contexte est la seule *API* de gestion des ressources " -"fournie, alors :class:`ExitStack` peut rendre plus facile la gestion de " -"plusieurs situations qui ne peuvent pas être traitées directement dans une " -"instruction :keyword:`with`." - -#: library/contextlib.rst:774 -msgid "Cleaning up in an ``__enter__`` implementation" -msgstr "Nettoyer dans une méthode ``__enter__``" - -#: library/contextlib.rst:776 -#, fuzzy -msgid "" -"As noted in the documentation of :meth:`ExitStack.push`, this method can be " -"useful in cleaning up an already allocated resource if later steps in " -"the :meth:`~object.__enter__` implementation fail." -msgstr "" -"Comme indiqué dans la documentation de :meth:`ExitStack.push`, cette méthode " -"peut être utile pour nettoyer une ressource déjà allouée si les dernières " -"étapes de l'implémentation de :meth:`__enter__` échouent." - -#: library/contextlib.rst:780 -msgid "" -"Here's an example of doing this for a context manager that accepts resource " -"acquisition and release functions, along with an optional validation " -"function, and maps them to the context management protocol::" -msgstr "" -"Voici un exemple de gestionnaire de contexte qui reçoit des fonctions " -"d'acquisition de ressources et de libération, avec une méthode de validation " -"optionnelle, et qui les adapte au protocole des gestionnaires de contexte ::" - -#: library/contextlib.rst:820 -msgid "Replacing any use of ``try-finally`` and flag variables" -msgstr "Remplacer un ``try-finally`` avec une option variable" - -#: library/contextlib.rst:822 -msgid "" -"A pattern you will sometimes see is a ``try-finally`` statement with a flag " -"variable to indicate whether or not the body of the ``finally`` clause " -"should be executed. In its simplest form (that can't already be handled just " -"by using an ``except`` clause instead), it looks something like this::" -msgstr "" -"Un modèle que vous rencontrerez parfois est un bloc ``try-finally`` avec une " -"option pour indiquer si le corps de la clause ``finally`` doit être exécuté " -"ou non. Dans sa forme la plus simple (qui ne peut pas déjà être gérée avec " -"juste une clause ``except``), cela ressemble à ::" - -#: library/contextlib.rst:836 -msgid "" -"As with any ``try`` statement based code, this can cause problems for " -"development and review, because the setup code and the cleanup code can end " -"up being separated by arbitrarily long sections of code." -msgstr "" -"Comme avec n'importe quel code basé sur une instruction ``try``, cela peut " -"poser problème pour le développement et la revue, parce que beaucoup de " -"codes d'installation et de nettoyage peuvent finir par être séparés par des " -"sections de code arbitrairement longues." - -#: library/contextlib.rst:840 -msgid "" -":class:`ExitStack` makes it possible to instead register a callback for " -"execution at the end of a ``with`` statement, and then later decide to skip " -"executing that callback::" -msgstr "" -":class:`ExitStack` rend possible de plutôt enregistrer une fonction de " -"rappel pour être exécutée à la fin d'une instruction ``with``, et décider " -"ensuite de passer l'exécution de cet appel ::" - -#: library/contextlib.rst:852 -#, fuzzy -msgid "" -"This allows the intended cleanup behaviour to be made explicit up front, " -"rather than requiring a separate flag variable." -msgstr "" -"Cela permet de rendre explicite dès le départ le comportement de nettoyage " -"attendu, plutôt que de nécessiter une option séparée." - -#: library/contextlib.rst:855 -msgid "" -"If a particular application uses this pattern a lot, it can be simplified " -"even further by means of a small helper class::" -msgstr "" -"Si une application particulière utilise beaucoup ce modèle, cela peut-être " -"simplifié encore plus au moyen d'une petite classe d'aide ::" - -#: library/contextlib.rst:873 -msgid "" -"If the resource cleanup isn't already neatly bundled into a standalone " -"function, then it is still possible to use the decorator form " -"of :meth:`ExitStack.callback` to declare the resource cleanup in advance::" -msgstr "" -"Si le nettoyage de la ressource n'est pas déjà soigneusement embarqué dans " -"une fonction autonome, il est possible d'utiliser le " -"décorateur :meth:`ExitStack.callback` pour déclarer la fonction de nettoyage " -"de ressource en avance ::" - -#: library/contextlib.rst:888 -msgid "" -"Due to the way the decorator protocol works, a callback function declared " -"this way cannot take any parameters. Instead, any resources to be released " -"must be accessed as closure variables." -msgstr "" -"Dû au fonctionnement du protocole des décorateurs, une fonction déclarée " -"ainsi ne peut prendre aucun paramètre. À la place, les ressources à libérer " -"doivent être récupérées depuis l'extérieur comme des variables de fermeture " -"(*closure*)." - -#: library/contextlib.rst:894 -msgid "Using a context manager as a function decorator" -msgstr "" -"Utiliser un gestionnaire de contexte en tant que décorateur de fonction" - -#: library/contextlib.rst:896 -msgid "" -":class:`ContextDecorator` makes it possible to use a context manager in both " -"an ordinary ``with`` statement and also as a function decorator." -msgstr "" -":class:`ContextDecorator` rend possible l'utilisation d'un gestionnaire de " -"contexte à la fois ordinairement avec une instruction ``with`` ou comme un " -"décorateur de fonction." - -#: library/contextlib.rst:899 -msgid "" -"For example, it is sometimes useful to wrap functions or groups of " -"statements with a logger that can track the time of entry and time of exit. " -"Rather than writing both a function decorator and a context manager for the " -"task, inheriting from :class:`ContextDecorator` provides both capabilities " -"in a single definition::" -msgstr "" -"Par exemple, il est parfois utile d'emballer les fonctions ou blocs " -"d'instructions avec un journaliseur qui pourrait suivre le temps d'exécution " -"entre l'entrée et la sortie. Plutôt qu'écrire à la fois un décorateur et un " -"gestionnaire de contexte pour la même tâche, hériter " -"de :class:`ContextDecorator` fournit les deux fonctionnalités en une seule " -"définition ::" - -#: library/contextlib.rst:920 -msgid "Instances of this class can be used as both a context manager::" -msgstr "" -"Les instances de cette classe peuvent être utilisées comme gestionnaires de " -"contexte ::" - -#: library/contextlib.rst:926 -msgid "And also as a function decorator::" -msgstr "Et comme décorateurs de fonctions ::" - -#: library/contextlib.rst:933 -#, fuzzy -msgid "" -"Note that there is one additional limitation when using context managers as " -"function decorators: there's no way to access the return value " -"of :meth:`~object.__enter__`. If that value is needed, then it is still " -"necessary to use an explicit ``with`` statement." -msgstr "" -"Notez qu'il y a une autre limitation en utilisant les gestionnaires de " -"contexte comme décorateurs : il n'y a aucune manière d'accéder à la valeur " -"de retour de :meth:`__enter__`. Si cette valeur est nécessaire, il faut " -"utiliser explicitement une instruction ``with``." - -#: library/contextlib.rst:940 -msgid ":pep:`343` - The \"with\" statement" -msgstr ":pep:`343` - The \"with\" statement" - -#: library/contextlib.rst:941 -msgid "" -"The specification, background, and examples for the Python :keyword:`with` " -"statement." -msgstr "" -"La spécification, les motivations et des exemples de " -"l'instruction :keyword:`with` en Python." - -#: library/contextlib.rst:947 -msgid "Single use, reusable and reentrant context managers" -msgstr "Gestionnaires de contexte à usage unique, réutilisables et réentrants" - -#: library/contextlib.rst:949 -msgid "" -"Most context managers are written in a way that means they can only be used " -"effectively in a :keyword:`with` statement once. These single use context " -"managers must be created afresh each time they're used - attempting to use " -"them a second time will trigger an exception or otherwise not work correctly." -msgstr "" -"La plupart des gestionnaires de contexte sont écrits d'une manière qui ne " -"leur permet que d'être utilisés une fois avec une " -"instruction :keyword:`with`. Ces gestionnaires de contexte à usage unique " -"doivent être recréés chaque fois qu'ils sont utilisés — tenter de les " -"utiliser une seconde fois lève une exception ou ne fonctionne pas " -"correctement." - -#: library/contextlib.rst:955 -msgid "" -"This common limitation means that it is generally advisable to create " -"context managers directly in the header of the :keyword:`with` statement " -"where they are used (as shown in all of the usage examples above)." -msgstr "" -"Cette limitation commune signifie qu'il est généralement conseillé de créer " -"les gestionnaires de contexte directement dans l'en-tête du " -"bloc :keyword:`with` où ils sont utilisés (comme montré dans tous les " -"exemples d'utilisation au-dessus)." - -#: library/contextlib.rst:959 -msgid "" -"Files are an example of effectively single use context managers, since the " -"first :keyword:`with` statement will close the file, preventing any further " -"IO operations using that file object." -msgstr "" -"Les fichiers sont un exemple de gestionnaires de contexte étant " -"effectivement à usage unique, puisque la première " -"instruction :keyword:`with` ferme le fichier, empêchant d'autres opérations " -"d'entrée/sortie d'être exécutées sur ce fichier." - -#: library/contextlib.rst:963 -msgid "" -"Context managers created using :func:`contextmanager` are also single use " -"context managers, and will complain about the underlying generator failing " -"to yield if an attempt is made to use them a second time::" -msgstr "" -"Les gestionnaires de contexte créés avec :func:`contextmanager` sont aussi à " -"usage unique, et se plaindront du fait que le générateur sous-jacent ne " -"produise plus de valeur si vous essayez de les utiliser une seconde fois ::" - -#: library/contextlib.rst:991 -msgid "Reentrant context managers" -msgstr "Gestionnaires de contexte réentrants" - -#: library/contextlib.rst:993 -msgid "" -"More sophisticated context managers may be \"reentrant\". These context " -"managers can not only be used in multiple :keyword:`with` statements, but " -"may also be used *inside* a :keyword:`!with` statement that is already using " -"the same context manager." -msgstr "" -"Certains gestionnaires de contexte plus sophistiqués peuvent être " -"« réentrants ». Ces gestionnaires de contexte ne peuvent pas seulement être " -"utilisés avec plusieurs instructions :keyword:`with`, mais aussi *à " -"l'intérieur* d'une instruction :keyword:`!with` qui utilise déjà ce même " -"gestionnaire de contexte." - -#: library/contextlib.rst:998 -#, fuzzy -msgid "" -":class:`threading.RLock` is an example of a reentrant context manager, as " -"are :func:`suppress`, :func:`redirect_stdout`, and :func:`chdir`. Here's a " -"very simple example of reentrant use::" -msgstr "" -":class:`threading.RLock` est un exemple de gestionnaire de contexte " -"réentrant, comme le sont aussi :func:`suppress` et :func:`redirect_stdout`. " -"Voici un très simple exemple d'utilisation réentrante ::" - -#: library/contextlib.rst:1017 -msgid "" -"Real world examples of reentrancy are more likely to involve multiple " -"functions calling each other and hence be far more complicated than this " -"example." -msgstr "" -"Les exemples plus réels de réentrance sont susceptibles d'invoquer plusieurs " -"fonctions s'entre-appelant, et donc être bien plus compliqués que cet " -"exemple." - -#: library/contextlib.rst:1021 -msgid "" -"Note also that being reentrant is *not* the same thing as being thread " -"safe. :func:`redirect_stdout`, for example, is definitely not thread safe, " -"as it makes a global modification to the system state by " -"binding :data:`sys.stdout` to a different stream." -msgstr "" -"Notez aussi qu'être réentrant ne signifie *pas* être *thread " -"safe*. :func:`redirect_stdout`, par exemple, n'est définitivement pas " -"*thread safe*, puisqu'il effectue des changements globaux sur l'état du " -"système en branchant :data:`sys.stdout` sur différents flux." - -#: library/contextlib.rst:1030 -msgid "Reusable context managers" -msgstr "Gestionnaires de contexte réutilisables" - -#: library/contextlib.rst:1032 -msgid "" -"Distinct from both single use and reentrant context managers are " -"\"reusable\" context managers (or, to be completely explicit, \"reusable, " -"but not reentrant\" context managers, since reentrant context managers are " -"also reusable). These context managers support being used multiple times, " -"but will fail (or otherwise not work correctly) if the specific context " -"manager instance has already been used in a containing with statement." -msgstr "" -"D'autres gestionnaires de contexte que ceux à usage unique et les réentrants " -"sont les gestionnaires de contexte « réutilisables » (ou, pour être plus " -"explicite, « réutilisables mais pas réentrants », puisque les gestionnaires " -"de contexte réentrants sont aussi réutilisables). Ces gestionnaires de " -"contexte sont conçus afin d'être utilisés plusieurs fois, mais échoueront " -"(ou ne fonctionnent pas correctement) si l'instance de gestionnaire de " -"contexte référencée a déjà été utilisée dans une instruction *with* " -"englobante." - -#: library/contextlib.rst:1039 -msgid "" -":class:`threading.Lock` is an example of a reusable, but not reentrant, " -"context manager (for a reentrant lock, it is necessary to " -"use :class:`threading.RLock` instead)." -msgstr "" -":class:`threading.Lock` est un exemple de gestionnaire de contexte " -"réutilisable mais pas réentrant (pour un verrou réentrant, il faut à la " -"place utiliser :class:`threading.RLock`)." - -#: library/contextlib.rst:1043 -msgid "" -"Another example of a reusable, but not reentrant, context manager " -"is :class:`ExitStack`, as it invokes *all* currently registered callbacks " -"when leaving any with statement, regardless of where those callbacks were " -"added::" -msgstr "" -"Un autre exemple de gestionnaire de contexte réutilisable mais pas réentrant " -"est :class:`ExitStack`, puisqu'il invoque *toutes* les fonctions de rappel " -"actuellement enregistrées en quittant l'instruction *with*, sans regarder où " -"ces fonctions ont été ajoutées ::" - -#: library/contextlib.rst:1074 -msgid "" -"As the output from the example shows, reusing a single stack object across " -"multiple with statements works correctly, but attempting to nest them will " -"cause the stack to be cleared at the end of the innermost with statement, " -"which is unlikely to be desirable behaviour." -msgstr "" -"Comme le montre la sortie de l'exemple, réutiliser une simple pile entre " -"plusieurs instructions *with* fonctionne correctement, mais essayer de les " -"imbriquer fait que la pile est vidée à la fin du *with* le plus imbriqué, ce " -"qui n'est probablement pas le comportement voulu." - -#: library/contextlib.rst:1079 -msgid "" -"Using separate :class:`ExitStack` instances instead of reusing a single " -"instance avoids that problem::" -msgstr "" -"Pour éviter ce problème, utilisez des instances différentes " -"de :class:`ExitStack` plutôt qu'une seule instance ::" - -#, fuzzy -#~ msgid "" -#~ "Similar to :class:`ContextDecorator` but only for asynchronous functions." -#~ msgstr "" -#~ "Similaire à :meth:`enter_context` mais attend un gestionnaire de contexte " -#~ "asynchrone." diff --git a/library/contextvars.po b/library/contextvars.po deleted file mode 100644 index 7616ba153f..0000000000 --- a/library/contextvars.po +++ /dev/null @@ -1,447 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-04-08 19:57+0200\n" -"Last-Translator: Martin Chlumsky \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 3.2.1\n" - -#: library/contextvars.rst:2 -#, fuzzy -msgid ":mod:`!contextvars` --- Context Variables" -msgstr ":mod:`contextvars` — Variables de contexte" - -#: library/contextvars.rst:9 -msgid "" -"This module provides APIs to manage, store, and access context-local state. " -"The :class:`~contextvars.ContextVar` class is used to declare and work with " -"*Context Variables*. The :func:`~contextvars.copy_context` function and " -"the :class:`~contextvars.Context` class should be used to manage the current " -"context in asynchronous frameworks." -msgstr "" -"Ce module fournit des API pour gérer, stocker et accéder à l'état local de " -"contexte. La classe :class:`~contextvars.ContextVar` est utilisée pour " -"déclarer et travailler avec les *Variables de contexte*. La " -"fonction :func:`~contextvars.copy_context` et la " -"classe :class:`~contextvars.Context` doivent être utilisées pour la gestion " -"du contexte actuel dans les cadriciels asynchrones." - -#: library/contextvars.rst:15 -#, fuzzy -msgid "" -"Context managers that have state should use Context Variables instead " -"of :func:`threading.local` to prevent their state from bleeding to other " -"code unexpectedly, when used in concurrent code." -msgstr "" -"Les gestionnaires de contexte, quand ils ont un état et quand ils sont " -"utilisés dans du code s'exécutant de manière concurrente, doivent utiliser " -"les variables de contexte au lieu de :func:`threading.local()` pour empêcher " -"que leur état ne perturbe un autre fil de manière inattendue." - -#: library/contextvars.rst:19 -msgid "See also :pep:`567` for additional details." -msgstr "Voir aussi :pep:`567` pour plus de détails." - -#: library/contextvars.rst:25 -msgid "Context Variables" -msgstr "Variables de contexte" - -#: library/contextvars.rst:29 -msgid "This class is used to declare a new Context Variable, e.g.::" -msgstr "" -"Cette classe est utilisée pour déclarer une nouvelle variable de contexte, " -"p. ex ::" - -#: library/contextvars.rst:33 -msgid "" -"The required *name* parameter is used for introspection and debug purposes." -msgstr "" -"Le paramètre requis *name* est utilisé à des fins d'introspection et de " -"débogage." - -#: library/contextvars.rst:36 -msgid "" -"The optional keyword-only *default* parameter is returned " -"by :meth:`ContextVar.get` when no value for the variable is found in the " -"current context." -msgstr "" -"Le paramètre nommé *default* est renvoyé par :meth:`ContextVar.get` quand " -"aucune valeur n'est trouvée dans le contexte actuel pour la variable." - -#: library/contextvars.rst:40 -msgid "" -"**Important:** Context Variables should be created at the top module level " -"and never in closures. :class:`Context` objects hold strong references to " -"context variables which prevents context variables from being properly " -"garbage collected." -msgstr "" -"**Important :** les variables de contexte doivent être créées au plus haut " -"niveau du module et jamais dans des fermetures (*closures*). Les " -"objets :class:`Context` maintiennent des références fortes aux variables de " -"contexte ce qui empêche que les variables de contexte soient correctement " -"nettoyées par le ramasse-miette." - -#: library/contextvars.rst:45 -msgid "" -":class:`!ContextVar`\\s are :ref:`generic ` over the type of their " -"contained value." -msgstr "" - -#: library/contextvars.rst:50 -msgid "The name of the variable. This is a read-only property." -msgstr "Nom de la variable. Cette propriété est en lecture seule." - -#: library/contextvars.rst:56 -msgid "Return a value for the context variable for the current context." -msgstr "Renvoie la valeur de la variable de contexte pour le contexte actuel." - -#: library/contextvars.rst:58 -msgid "" -"If there is no value for the variable in the current context, the method " -"will:" -msgstr "" -"S'il n'y a pas de valeur pour la variable dans le contexte actuel, la " -"méthode :" - -#: library/contextvars.rst:61 -msgid "" -"return the value of the *default* argument of the method, if provided; or" -msgstr "" -"renvoie la valeur de l'argument *default* passé à la méthode, s'il a été " -"fourni ;" - -#: library/contextvars.rst:64 -msgid "" -"return the default value for the context variable, if it was created with " -"one; or" -msgstr "" -"ou renvoie la valeur par défaut de la variable de contexte, si elle a été " -"créée avec une valeur par défaut ;" - -# padpo se plaint ici pour le verbe lever mais on peut l'ignorer pour -# préserver le présent de l'indicatif en accord avec les "renvoie" dans les -# autres items de la liste. -#: library/contextvars.rst:67 -msgid "raise a :exc:`LookupError`." -msgstr "ou lève une erreur :exc:`LookupError`." - -#: library/contextvars.rst:71 -msgid "" -"Call to set a new value for the context variable in the current context." -msgstr "" -"Assigne une nouvelle valeur à la variable de contexte dans le contexte " -"actuel." - -#: library/contextvars.rst:74 -msgid "" -"The required *value* argument is the new value for the context variable." -msgstr "" -"L'argument requis *value* est la nouvelle valeur pour la variable de " -"contexte." - -#: library/contextvars.rst:77 -msgid "" -"Returns a :class:`~contextvars.Token` object that can be used to restore the " -"variable to its previous value via the :meth:`ContextVar.reset` method." -msgstr "" -"Renvoie un objet :class:`~contextvars.Token` qui peut être utilisé pour " -"rétablir la variable à sa valeur précédente par la " -"méthode :meth:`ContextVar.reset`." - -#: library/contextvars.rst:81 -msgid "" -"For convenience, the token object can be used as a context manager to avoid " -"calling :meth:`ContextVar.reset` manually::" -msgstr "" - -#: library/contextvars.rst:91 -msgid "It is a shorthand for::" -msgstr "" - -#: library/contextvars.rst:105 -msgid "Added support for using tokens as context managers." -msgstr "" - -#: library/contextvars.rst:109 -msgid "" -"Reset the context variable to the value it had before " -"the :meth:`ContextVar.set` that created the *token* was used." -msgstr "" -"Réinitialise la variable de contexte à la valeur qu'elle avait avant l'appel " -"de :meth:`ContextVar.set` qui a créé le *token*." - -#: library/contextvars.rst:112 -msgid "For example::" -msgstr "Par exemple ::" - -#: library/contextvars.rst:123 -msgid "The same *token* cannot be used twice." -msgstr "" - -#: library/contextvars.rst:128 -#, fuzzy -msgid "" -"*Token* objects are returned by the :meth:`ContextVar.set` method. They can " -"be passed to the :meth:`ContextVar.reset` method to revert the value of the " -"variable to what it was before the corresponding *set*. A single token " -"cannot reset a context variable more than once." -msgstr "" -"Les objets *Token* sont renvoyés par la méthode :meth:`ContextVar.set`. Ils " -"peuvent être passés à la méthode :meth:`ContextVar.reset` pour réaffecter la " -"valeur de la variable à ce qu'elle était avant le *set* correspondant." - -#: library/contextvars.rst:133 -msgid "" -"Tokens support the :ref:`context manager protocol ` to " -"automatically reset context variables. See :meth:`ContextVar.set`." -msgstr "" - -#: library/contextvars.rst:136 -msgid "" -"Tokens are :ref:`generic ` over the same type as " -"the :class:`ContextVar` which created them." -msgstr "" - -#: library/contextvars.rst:141 -msgid "Added support for usage as a context manager." -msgstr "" - -#: library/contextvars.rst:145 -msgid "" -"A read-only property. Points to the :class:`ContextVar` object that created " -"the token." -msgstr "" -"Propriété en lecture seule. Pointe vers l'objet :class:`ContextVar` qui a " -"créé le token." - -#: library/contextvars.rst:150 -#, fuzzy -msgid "" -"A read-only property. Set to the value the variable had before " -"the :meth:`ContextVar.set` method call that created the token. It points " -"to :attr:`Token.MISSING` if the variable was not set before the call." -msgstr "" -"Propriété en lecture seule. Sa valeur est celle que la variable avait avant " -"l'appel à la méthode :meth:`ContextVar.set` qui a créé le jeton. Elle pointe " -"à :attr:`Token.MISSING` si la variable n'est pas définie avant l'appel." - -#: library/contextvars.rst:157 -msgid "A marker object used by :attr:`Token.old_value`." -msgstr "Objet marqueur utilisé par :attr:`Token.old_value`." - -#: library/contextvars.rst:161 -msgid "Manual Context Management" -msgstr "Gestion de contexte manuelle" - -#: library/contextvars.rst:165 -msgid "Returns a copy of the current :class:`~contextvars.Context` object." -msgstr "Renvoie une copie de l'objet :class:`~contextvars.Context` actuel." - -#: library/contextvars.rst:167 -msgid "" -"The following snippet gets a copy of the current context and prints all " -"variables and their values that are set in it::" -msgstr "" -"Le fragment de code qui suit obtient une copie du contexte actuel et affiche " -"toutes les variables avec leurs valeurs définies dans ce contexte ::" - -#: library/contextvars.rst:173 -#, fuzzy -msgid "" -"The function has an *O*\\ (1) complexity, i.e. works equally fast for " -"contexts with a few context variables and for contexts that have a lot of " -"them." -msgstr "" -"La fonction a une complexité O(1), c.-à-d. qu'elle fonctionne aussi " -"rapidement pour des contextes avec peu de variables de contexte que pour des " -"contextes qui en ont beaucoup." - -#: library/contextvars.rst:180 -msgid "A mapping of :class:`ContextVars ` to their values." -msgstr "" -"Tableau associatif entre :class:`ContextVars ` et leurs valeurs." - -#: library/contextvars.rst:182 -msgid "" -"``Context()`` creates an empty context with no values in it. To get a copy " -"of the current context use the :func:`~contextvars.copy_context` function." -msgstr "" -"``Context()`` crée un contexte vide ne contenant aucune valeur. Pour obtenir " -"une copie du contexte actuel, utilisez la " -"fonction :func:`~contextvars.copy_context`." - -#: library/contextvars.rst:186 -msgid "" -"Each thread has its own effective stack of :class:`!Context` objects. " -"The :term:`current context` is the :class:`!Context` object at the top of " -"the current thread's stack. All :class:`!Context` objects in the stacks are " -"considered to be *entered*." -msgstr "" - -#: library/contextvars.rst:191 -msgid "" -"*Entering* a context, which can be done by calling its :meth:`~Context.run` " -"method, makes the context the current context by pushing it onto the top of " -"the current thread's context stack." -msgstr "" - -#: library/contextvars.rst:195 -msgid "" -"*Exiting* from the current context, which can be done by returning from the " -"callback passed to the :meth:`~Context.run` method, restores the current " -"context to what it was before the context was entered by popping the context " -"off the top of the context stack." -msgstr "" - -#: library/contextvars.rst:200 -msgid "" -"Since each thread has its own context stack, :class:`ContextVar` objects " -"behave in a similar fashion to :func:`threading.local` when values are " -"assigned in different threads." -msgstr "" - -#: library/contextvars.rst:204 -msgid "" -"Attempting to enter an already entered context, including contexts entered " -"in other threads, raises a :exc:`RuntimeError`." -msgstr "" - -#: library/contextvars.rst:207 -msgid "After exiting a context, it can later be re-entered (from any thread)." -msgstr "" - -#: library/contextvars.rst:209 -msgid "" -"Any changes to :class:`ContextVar` values via the :meth:`ContextVar.set` " -"method are recorded in the current context. The :meth:`ContextVar.get` " -"method returns the value associated with the current context. Exiting a " -"context effectively reverts any changes made to context variables while the " -"context was entered (if needed, the values can be restored by re-entering " -"the context)." -msgstr "" - -#: library/contextvars.rst:216 -msgid "Context implements the :class:`collections.abc.Mapping` interface." -msgstr "*Context* implémente l'interface :class:`collections.abc.Mapping`." - -# padpo lance 3 warnings ici, mais en fait tout semble correct. Si on enlève -# les * de args/kwargs, il n'y a plus de warnings. Je suspecte un bug dans -# padpo. -# library/contextvars.po:238: warning: Incohérence : l’espace insécable à côté -# de l’espace sécable n’a pas d’effet. => ###ntexte sur lequel est appelée la -# méthode  »run*. Ren### -# library/contextvars.po:238: warning: Il manque un espace. => ###xte sur -# lequel est appelée la méthode  »run*. Renvoie### -# library/contextvars.po:238: warning: Mot inconnu : run => ###xte sur lequel -# est appelée la méthode  »run*. Renvoie### -#: library/contextvars.rst:220 -#, fuzzy -msgid "" -"Enters the Context, executes ``callable(*args, **kwargs)``, then exits the " -"Context. Returns *callable*'s return value, or propagates an exception if " -"one occurred." -msgstr "" -"Exécute le code ``callable(*args, **kwargs)`` dans le contexte défini par " -"l'objet. Renvoie le résultat de l'exécution ou propage une exception s'il y " -"en a une qui s'est produite." - -#: library/contextvars.rst:224 -#, fuzzy -msgid "Example:" -msgstr "Par exemple ::" - -#: library/contextvars.rst:272 -msgid "Return a shallow copy of the context object." -msgstr "Renvoie une copie superficielle de l'objet de contexte." - -#: library/contextvars.rst:276 -msgid "" -"Return ``True`` if the *context* has a value for *var* set; return ``False`` " -"otherwise." -msgstr "" -"Renvoie ``True`` si le *context* a une valeur pour *var* ; sinon renvoie " -"``False``." - -#: library/contextvars.rst:281 -msgid "" -"Return the value of the *var* :class:`ContextVar` variable. If the variable " -"is not set in the context object, a :exc:`KeyError` is raised." -msgstr "" -"Renvoie la valeur de la variable :class:`ContextVar` *var*. Si la variable " -"n'est pas définie dans l'objet de contexte, une :exc:`KeyError` est levée." - -#: library/contextvars.rst:287 -msgid "" -"Return the value for *var* if *var* has the value in the context object. " -"Return *default* otherwise. If *default* is not given, return ``None``." -msgstr "" -"Renvoie la valeur de *var* si *var* possède une valeur dans l'objet de " -"contexte. Renvoie *default* sinon (ou ``None`` si *default* n'est pas donné)." - -#: library/contextvars.rst:293 -msgid "Return an iterator over the variables stored in the context object." -msgstr "" -"Renvoie un itérateur sur les variables stockées dans l'objet de contexte." - -#: library/contextvars.rst:298 -msgid "Return the number of variables set in the context object." -msgstr "Renvoie le nombre de variables définies dans l'objet de contexte." - -#: library/contextvars.rst:302 -msgid "Return a list of all variables in the context object." -msgstr "Renvoie une liste de toutes les variables dans l'objet de contexte." - -#: library/contextvars.rst:306 -msgid "Return a list of all variables' values in the context object." -msgstr "" -"Renvoie une liste de toutes les valeurs des variables dans l'objet de " -"contexte." - -#: library/contextvars.rst:311 -msgid "" -"Return a list of 2-tuples containing all variables and their values in the " -"context object." -msgstr "" -"Renvoie une liste de paires contenant toutes les variables et leurs valeurs " -"dans l'objet de contexte." - -#: library/contextvars.rst:316 -msgid "asyncio support" -msgstr "Gestion avec *asyncio*" - -#: library/contextvars.rst:318 -msgid "" -"Context variables are natively supported in :mod:`asyncio` and are ready to " -"be used without any extra configuration. For example, here is a simple echo " -"server, that uses a context variable to make the address of a remote client " -"available in the Task that handles that client::" -msgstr "" -":mod:`asyncio` gère nativement les variables de contexte et elles sont " -"prêtes à être utilisées sans configuration supplémentaire. Par exemple, " -"voici un serveur *echo* simple qui utilise une variable de contexte pour que " -"l’adresse d'un client distant soit disponible dans le *Task* qui gère ce " -"client ::" - -#~ msgid "" -#~ "Any changes to any context variables that *callable* makes will be " -#~ "contained in the context object::" -#~ msgstr "" -#~ "Tout changement apporté aux variables de contexte effectué par *callable* " -#~ "sera contenu dans l'objet de contexte ::" - -#~ msgid "" -#~ "The method raises a :exc:`RuntimeError` when called on the same context " -#~ "object from more than one OS thread, or when called recursively." -#~ msgstr "" -#~ "La méthode lève une :exc:`RuntimeError` quand elle est appelée sur le " -#~ "même objet de contexte depuis plus qu'un fil d'exécution ou quand elle " -#~ "est appelée récursivement." diff --git a/library/copy.po b/library/copy.po deleted file mode 100644 index ce270b422d..0000000000 --- a/library/copy.po +++ /dev/null @@ -1,245 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-02-21 17:18+0100\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.2\n" - -#: library/copy.rst:2 -#, fuzzy -msgid ":mod:`!copy` --- Shallow and deep copy operations" -msgstr ":mod:`copy` — Opérations de copie superficielle et récursive" - -#: library/copy.rst:7 -msgid "**Source code:** :source:`Lib/copy.py`" -msgstr "**Code source :** :source:`Lib/copy.py`" - -#: library/copy.rst:11 -msgid "" -"Assignment statements in Python do not copy objects, they create bindings " -"between a target and an object. For collections that are mutable or contain " -"mutable items, a copy is sometimes needed so one can change one copy without " -"changing the other. This module provides generic shallow and deep copy " -"operations (explained below)." -msgstr "" -"Les instructions d'affectation en Python ne copient pas les objets, elles " -"créent des liens entre la cible et l'objet. Concernant les collections qui " -"sont mutables ou contiennent des éléments mutables, une copie est parfois " -"nécessaire, pour pouvoir modifier une copie sans modifier l'autre. Ce module " -"met à disposition des opérations de copie génériques superficielle et " -"récursive (comme expliqué ci-dessous)." - -#: library/copy.rst:18 -msgid "Interface summary:" -msgstr "Résumé de l'interface :" - -#: library/copy.rst:22 -#, fuzzy -msgid "Return a shallow copy of *obj*." -msgstr "Renvoie une copie superficielle de *x*." - -#: library/copy.rst:27 -#, fuzzy -msgid "Return a deep copy of *obj*." -msgstr "Renvoie une copie récursive de *x*." - -#: library/copy.rst:32 -msgid "" -"Creates a new object of the same type as *obj*, replacing fields with values " -"from *changes*." -msgstr "" - -#: library/copy.rst:40 -msgid "Raised for module specific errors." -msgstr "Levée pour les erreurs spécifiques au module." - -#: library/copy.rst:44 -msgid "" -"The difference between shallow and deep copying is only relevant for " -"compound objects (objects that contain other objects, like lists or class " -"instances):" -msgstr "" -"La différence entre copie superficielle et récursive n'est pertinente que " -"pour les objets composés (objets contenant d'autres objets, comme des listes " -"ou des instances de classe) :" - -#: library/copy.rst:47 -msgid "" -"A *shallow copy* constructs a new compound object and then (to the extent " -"possible) inserts *references* into it to the objects found in the original." -msgstr "" -"Une *copie superficielle* construit un nouvel objet composé puis (dans la " -"mesure du possible) insère dans l'objet composé des *références* aux objets " -"trouvés dans l'original." - -#: library/copy.rst:50 -msgid "" -"A *deep copy* constructs a new compound object and then, recursively, " -"inserts *copies* into it of the objects found in the original." -msgstr "" -"Une *copie récursive (ou profonde)* construit un nouvel objet composé puis, " -"récursivement, insère dans l'objet composé des *copies* des objets trouvés " -"dans l'objet original." - -#: library/copy.rst:53 -msgid "" -"Two problems often exist with deep copy operations that don't exist with " -"shallow copy operations:" -msgstr "" -"On rencontre souvent deux problèmes avec les opérations de copie récursive " -"qui n'existent pas avec les opérations de copie superficielle :" - -#: library/copy.rst:56 -msgid "" -"Recursive objects (compound objects that, directly or indirectly, contain a " -"reference to themselves) may cause a recursive loop." -msgstr "" -"Les objets récursifs (objets composés qui, directement ou indirectement, " -"contiennent une référence à eux-mêmes) peuvent causer une boucle récursive." - -#: library/copy.rst:59 -msgid "" -"Because deep copy copies everything it may copy too much, such as data which " -"is intended to be shared between copies." -msgstr "" -"Comme une copie récursive copie tout, elle peut en copier trop, par exemple " -"des données qui sont destinées à être partagées entre différentes copies." - -#: library/copy.rst:62 -msgid "The :func:`deepcopy` function avoids these problems by:" -msgstr "La fonction :func:`deepcopy` évite ces problèmes en :" - -#: library/copy.rst:64 -msgid "" -"keeping a ``memo`` dictionary of objects already copied during the current " -"copying pass; and" -msgstr "" -"gardant en mémoire dans un dictionnaire ``memo`` les objets déjà copiés " -"durant la phase de copie actuelle ; et" - -#: library/copy.rst:67 -msgid "" -"letting user-defined classes override the copying operation or the set of " -"components copied." -msgstr "" -"laissant les classes créées par l'utilisateur écraser l'opération de copie " -"ou l'ensemble de composants copiés." - -#: library/copy.rst:70 -#, fuzzy -msgid "" -"This module does not copy types like module, method, stack trace, stack " -"frame, file, socket, window, or any similar types. It does \"copy\" " -"functions and classes (shallow and deeply), by returning the original object " -"unchanged; this is compatible with the way these are treated by " -"the :mod:`pickle` module." -msgstr "" -"Ce module ne copie pas les types tels que module, méthode, trace d'appels, " -"cadre de pile, fichier, socket, fenêtre, tableau, ou tout autre type " -"similaire. Il \"copie\" les fonctions et les classes (superficiellement et " -"récursivement), en retournant l'objet original inchangé ; c'est compatible " -"avec la manière dont ils sont traités par le module :mod:`pickle`." - -#: library/copy.rst:75 -msgid "" -"Shallow copies of many collections can be made using the " -"corresponding :meth:`!copy` method (such " -"as :meth:`list.copy`, :meth:`dict.copy` or :meth:`set.copy`), and of " -"sequences (such as lists or bytearrays) by making a slice of the entire " -"sequence (``sequence[:]``). However, these methods and slicing can create an " -"instance of the base type when copying an instance of a subclass, " -"whereas :func:`copy.copy` normally returns an instance of the same type." -msgstr "" - -#: library/copy.rst:85 -#, fuzzy -msgid "" -"Classes can use the same interfaces to control copying that they use to " -"control pickling. See the description of module :mod:`pickle` for " -"information on these methods. In fact, the :mod:`!copy` module uses the " -"registered pickle functions from the :mod:`copyreg` module." -msgstr "" -"Les classes peuvent utiliser les mêmes interfaces de contrôle que celles " -"utilisées pour la sérialisation. Voir la description du module :mod:`pickle` " -"pour plus d'informations sur ces méthodes. En effet, le module :mod:`copy` " -"utilise les fonctions de sérialisation enregistrées à partir du " -"module :mod:`copyreg`." - -#: library/copy.rst:96 -msgid "" -"In order for a class to define its own copy implementation, it can define " -"special methods :meth:`~object.__copy__` and :meth:`~object.__deepcopy__`." -msgstr "" - -#: library/copy.rst:102 -msgid "" -"Called to implement the shallow copy operation; no additional arguments are " -"passed." -msgstr "" - -#: library/copy.rst:108 -#, fuzzy -msgid "" -"Called to implement the deep copy operation; it is passed one argument, the " -"*memo* dictionary. If the ``__deepcopy__`` implementation needs to make a " -"deep copy of a component, it should call the :func:`~copy.deepcopy` function " -"with the component as first argument and the *memo* dictionary as second " -"argument. The *memo* dictionary should be treated as an opaque object." -msgstr "" -"Afin qu'une classe définisse sa propre implémentation de copie, elle peut " -"définir les méthodes spéciales :meth:`__copy__` et :meth:`__deepcopy__`. La " -"première est appelée pour implémenter l'opération de copie superficielle ; " -"aucun argument supplémentaire n'est passé. La seconde est appelée pour " -"implémenter l'opération de copie récursive ; elle reçoit un argument, le " -"dictionnaire ``memo``. Si l'implémentation de :meth:`__deepcopy__` a besoin " -"de faire une copie récursive d'un composant, elle doit appeler la " -"fonction :func:`deepcopy` avec le composant comme premier argument et le " -"dictionnaire *memo* comme second argument." - -#: library/copy.rst:118 -msgid "" -"Function :func:`!copy.replace` is more limited than :func:`~copy.copy` " -"and :func:`~copy.deepcopy`, and only supports named tuples created " -"by :func:`~collections.namedtuple`, :mod:`dataclasses`, and other classes " -"which define method :meth:`~object.__replace__`." -msgstr "" - -#: library/copy.rst:126 -msgid "" -"This method should create a new object of the same type, replacing fields " -"with values from *changes*." -msgstr "" - -#: library/copy.rst:134 -msgid "Module :mod:`pickle`" -msgstr "Module :mod:`pickle`" - -#: library/copy.rst:135 -msgid "" -"Discussion of the special methods used to support object state retrieval and " -"restoration." -msgstr "" -"Discussion sur les méthodes spéciales utilisées pour gérer la récupération " -"et la restauration de l'état d'un objet." - -#~ msgid "" -#~ "Shallow copies of dictionaries can be made using :meth:`dict.copy`, and " -#~ "of lists by assigning a slice of the entire list, for example, " -#~ "``copied_list = original_list[:]``." -#~ msgstr "" -#~ "Les copies superficielles de dictionnaires peuvent être faites en " -#~ "utilisant :meth:`dict.copy`, et de listes en affectant un ``slice`` de la " -#~ "liste, par exemple, ``copied_list = original_list[:]``." - -#~ msgid "module" -#~ msgstr "module" diff --git a/library/copyreg.po b/library/copyreg.po deleted file mode 100644 index d897ad2eda..0000000000 --- a/library/copyreg.po +++ /dev/null @@ -1,112 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-11-23 15:14+0100\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2\n" - -#: library/copyreg.rst:2 -#, fuzzy -msgid ":mod:`!copyreg` --- Register :mod:`!pickle` support functions" -msgstr ":mod:`copyreg` — Enregistre les fonctions support de :mod:`pickle`" - -#: library/copyreg.rst:7 -msgid "**Source code:** :source:`Lib/copyreg.py`" -msgstr "**Code source :** :source:`Lib/copyreg.py`" - -#: library/copyreg.rst:15 -#, fuzzy -msgid "" -"The :mod:`!copyreg` module offers a way to define functions used while " -"pickling specific objects. The :mod:`pickle` and :mod:`copy` modules use " -"those functions when pickling/copying those objects. The module provides " -"configuration information about object constructors which are not classes. " -"Such constructors may be factory functions or class instances." -msgstr "" -"Le module :mod:`copyreg` permet de définir des fonctions utilisées durant la " -"sérialisation avec *pickle* de certains objets. Les modules :mod:`pickle` " -"et :mod:`copy` utilisent ces fonctions lors d'une sérialisation ou d'une " -"copie de ces objets. Le module propose alors des informations de " -"configuration à propos de constructeurs d'objets qui ne sont pas des " -"classes. De tels constructeurs peuvent être des instances de classes ou des " -"fonctions." - -#: library/copyreg.rst:24 -msgid "" -"Declares *object* to be a valid constructor. If *object* is not callable " -"(and hence not valid as a constructor), raises :exc:`TypeError`." -msgstr "" -"Déclare *object* comme étant un constructeur valide. Si *object* n'est pas " -"appelable (et n'est donc pas un constructeur valide), " -"l'erreur :exc:`TypeError` est levée." - -#: library/copyreg.rst:30 -#, fuzzy -msgid "" -"Declares that *function* should be used as a \"reduction\" function for " -"objects of type *type*. *function* must return either a string or a tuple " -"containing between two and six elements. See " -"the :attr:`~pickle.Pickler.dispatch_table` for more details on the interface " -"of *function*." -msgstr "" -"Déclare que *function* devrait être utilisée en tant que fonction de " -"*réduction* pour des objets de type *type*. *function* doit soit renvoyer " -"une chaîne de caractères soit un *n*-uplet qui contient deux ou trois " -"éléments." - -#: library/copyreg.rst:35 -msgid "" -"The *constructor_ob* parameter is a legacy feature and is now ignored, but " -"if passed it must be a callable." -msgstr "" - -#: library/copyreg.rst:38 -#, fuzzy -msgid "" -"Note that the :attr:`~pickle.Pickler.dispatch_table` attribute of a pickler " -"object or subclass of :class:`pickle.Pickler` can also be used for declaring " -"reduction functions." -msgstr "" -"Voir le module :mod:`pickle` pour plus de détails sur l'interface attendue " -"de *function* et *constructor*. Notez que " -"l’attribut :attr:`~pickle.Pickler.dispatch_table` d'un objet ``pickler`` ou " -"d'une sous-classe de :class:`pickle.Pickler` peut aussi être utilisée pour " -"déclarer des fonctions réductrices." - -#: library/copyreg.rst:43 -msgid "Example" -msgstr "Exemple" - -#: library/copyreg.rst:45 -msgid "" -"The example below would like to show how to register a pickle function and " -"how it will be used:" -msgstr "" -"L'exemple si-dessous essaye de démontrer comment enregistrer une fonction " -"*pickle* et comment elle sera utilisée :" - -#~ msgid "module" -#~ msgstr "module" - -#, fuzzy -#~ msgid "" -#~ "The optional *constructor* parameter, if provided, is a callable object " -#~ "which can be used to reconstruct the object when called with the tuple of " -#~ "arguments returned by *function* at pickling time. A :exc:`TypeError` is " -#~ "raised if the *constructor* is not callable." -#~ msgstr "" -#~ "Le paramètre optionnel *contructor*, s'il est donné, est un objet " -#~ "appelable qui peux être utilisé pour reconstruire l’objet lorsqu'il est " -#~ "appelé avec un *n*-uplet d'arguments renvoyés par *function* durant la " -#~ "sérialisation avec *pickle*. Une exception :exc:`TypeError` est levée si " -#~ "*object* est une classe ou si *constructor* n'est pas appelable." diff --git a/library/crypt.po b/library/crypt.po deleted file mode 100644 index 203ba1ca1a..0000000000 --- a/library/crypt.po +++ /dev/null @@ -1,41 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/crypt.rst:2 -msgid ":mod:`!crypt` --- Function to check Unix passwords" -msgstr "" - -#: library/crypt.rst:10 -msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.13 ` after being " -"deprecated in Python 3.11. The removal was decided in :pep:`594`." -msgstr "" - -#: library/crypt.rst:14 -msgid "" -"Applications can use the :mod:`hashlib` module from the standard library. " -"Other possible replacements are third-party libraries from " -"PyPI: :pypi:`legacycrypt`, :pypi:`bcrypt`, or :pypi:`argon2-cffi`. These are " -"not supported or maintained by the Python core team." -msgstr "" - -#: library/crypt.rst:19 -msgid "" -"The last version of Python that provided the :mod:`!crypt` module was " -"`Python 3.12 `_." -msgstr "" diff --git a/library/crypto.po b/library/crypto.po deleted file mode 100644 index aaff76be36..0000000000 --- a/library/crypto.po +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2024-11-01 00:16+0100\n" -"PO-Revision-Date: 2018-02-15 00:42+0100\n" -"Last-Translator: FULL NAME \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" - -#: library/crypto.rst:5 -msgid "Cryptographic Services" -msgstr "Service de cryptographie" - -#: library/crypto.rst:9 -#, fuzzy -msgid "" -"The modules described in this chapter implement various algorithms of a " -"cryptographic nature. They are available at the discretion of the " -"installation. Here's an overview:" -msgstr "" -"Les modules décrits dans ce chapitre mettent en œuvre divers algorithmes " -"cryptographiques. Ils peuvent, ou pas, être disponibles, en fonction de " -"l'installation Sur les systèmes Unix, le module :mod:`crypt` peut aussi être " -"disponible. Voici une vue d'ensemble :" diff --git a/library/csv.po b/library/csv.po deleted file mode 100644 index b8495986b1..0000000000 --- a/library/csv.po +++ /dev/null @@ -1,957 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-25 10:48+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: library/csv.rst:2 -#, fuzzy -msgid ":mod:`!csv` --- CSV File Reading and Writing" -msgstr ":mod:`csv` — Lecture et écriture de fichiers CSV" - -#: library/csv.rst:7 -msgid "**Source code:** :source:`Lib/csv.py`" -msgstr "**Code source :** :source:`Lib/csv.py`" - -#: library/csv.rst:15 -msgid "" -"The so-called CSV (Comma Separated Values) format is the most common import " -"and export format for spreadsheets and databases. CSV format was used for " -"many years prior to attempts to describe the format in a standardized way " -"in :rfc:`4180`. The lack of a well-defined standard means that subtle " -"differences often exist in the data produced and consumed by different " -"applications. These differences can make it annoying to process CSV files " -"from multiple sources. Still, while the delimiters and quoting characters " -"vary, the overall format is similar enough that it is possible to write a " -"single module which can efficiently manipulate such data, hiding the details " -"of reading and writing the data from the programmer." -msgstr "" -"Le format CSV (*Comma Separated Values*, valeurs séparées par des virgules) " -"est le format le plus commun dans l'importation et l'exportation de feuilles " -"de calculs et de bases de données. Le format fut utilisé pendant des années " -"avant qu'aient lieu des tentatives de standardisation avec la :rfc:`4180`. " -"L'absence de format bien défini signifie que des différences subtiles " -"existent dans la production et la consommation de données par différentes " -"applications. Ces différences peuvent gêner lors du traitement de fichiers " -"CSV depuis des sources multiples. Cependant, bien que les séparateurs et " -"délimiteurs varient, le format global est suffisamment similaire pour qu'un " -"module unique puisse manipuler efficacement ces données, masquant au " -"programmeur les détails de lecture/écriture des données." - -#: library/csv.rst:26 -#, fuzzy -msgid "" -"The :mod:`!csv` module implements classes to read and write tabular data in " -"CSV format. It allows programmers to say, \"write this data in the format " -"preferred by Excel,\" or \"read data from this file which was generated by " -"Excel,\" without knowing the precise details of the CSV format used by " -"Excel. Programmers can also describe the CSV formats understood by other " -"applications or define their own special-purpose CSV formats." -msgstr "" -"Le module :mod:`csv` implémente des classes pour lire et écrire des données " -"tabulaires au format CSV. Il vous permet de dire « écris ces données dans " -"le format préféré par Excel » ou « lis les données de ce fichier généré par " -"Excel », sans connaître les détails précis du format CSV utilisé par Excel. " -"Vous pouvez aussi décrire les formats CSV utilisés par d'autres applications " -"ou définir vos propres spécialisations." - -#: library/csv.rst:33 -#, fuzzy -msgid "" -"The :mod:`!csv` module's :class:`reader` and :class:`writer` objects read " -"and write sequences. Programmers can also read and write data in dictionary " -"form using the :class:`DictReader` and :class:`DictWriter` classes." -msgstr "" -"Les objets :class:`reader` et :class:`writer` du module :mod:`csv` lisent et " -"écrivent des séquences. Vous pouvez aussi lire/écrire les données dans un " -"dictionnaire en utilisant les classes :class:`DictReader` " -"et :class:`DictWriter`." - -#: library/csv.rst:39 -msgid ":pep:`305` - CSV File API" -msgstr ":pep:`305` ­— Interface des fichiers CSV" - -#: library/csv.rst:40 -msgid "The Python Enhancement Proposal which proposed this addition to Python." -msgstr "" -"La proposition d'amélioration de Python (PEP) qui a proposé cet ajout au " -"langage." - -#: library/csv.rst:46 -msgid "Module Contents" -msgstr "Contenu du module" - -#: library/csv.rst:48 -#, fuzzy -msgid "The :mod:`!csv` module defines the following functions:" -msgstr "Le module :mod:`csv` définit les fonctions suivantes :" - -#: library/csv.rst:56 -#, fuzzy -msgid "" -"Return a :ref:`reader object ` that will process lines from " -"the given *csvfile*. A csvfile must be an iterable of strings, each in the " -"reader's defined csv format. A csvfile is most commonly a file-like object " -"or list. If *csvfile* is a file object, it should be opened with " -"``newline=''``. [1]_ An optional *dialect* parameter can be given which is " -"used to define a set of parameters specific to a particular CSV dialect. It " -"may be an instance of a subclass of the :class:`Dialect` class or one of the " -"strings returned by the :func:`list_dialects` function. The other optional " -"*fmtparams* keyword arguments can be given to override individual formatting " -"parameters in the current dialect. For full details about the dialect and " -"formatting parameters, see section :ref:`csv-fmt-params`." -msgstr "" -"Renvoie un objet lecteur, qui itérera sur les lignes de l'objet *csvfile* " -"donné. *csvfile* peut être n'importe quel objet supportant le " -"protocole :term:`itérateur ` et renvoyant une chaîne de caractères " -"chaque fois que sa méthode :meth:`!__next__` est appelée — " -"les :term:`fichiers objets ` et les listes sont tous deux " -"valables. Si *csvfile* est un fichier, il doit être ouvert avec " -"``newline=''``. [1]_ Un paramètre *dialect* optionnel peut être fourni pour " -"définir un ensemble de paramètres spécifiques à un dialecte CSV " -"particulier. Il peut s'agir d'une instance de sous-classe " -"de :class:`Dialect` ou de l'une des chaînes renvoyées par la " -"fonction :func:`list_dialects`. Les autres arguments nommés optionnels " -"(*fmtparams*) peuvent être spécifiés pour redéfinir des paramètres de " -"formatage particuliers dans le dialecte utilisé. Pour des détails complets " -"sur les dialectes et paramètres de formatage, voir la section :ref:`csv-fmt-" -"params`." - -#: library/csv.rst:70 -#, fuzzy -msgid "" -"Each row read from the csv file is returned as a list of strings. No " -"automatic data type conversion is performed unless " -"the :data:`QUOTE_NONNUMERIC` format option is specified (in which case " -"unquoted fields are transformed into floats)." -msgstr "" -"Chaque ligne lue depuis le fichier CSV est renvoyée comme une liste de " -"chaînes de caractères. Aucune conversion automatique de type des données " -"n'est effectuée à moins que l'option de formatage ``QUOTE_NONNUMERIC`` soit " -"spécifiée (dans ce cas, les champs sans guillemets sont transformés en " -"nombres flottants)." - -#: library/csv.rst:104 library/csv.rst:218 -msgid "A short usage example::" -msgstr "Un court exemple d'utilisation ::" - -#: library/csv.rst:87 -#, fuzzy -msgid "" -"Return a writer object responsible for converting the user's data into " -"delimited strings on the given file-like object. *csvfile* can be any " -"object with a :meth:`~io.TextIOBase.write` method. If *csvfile* is a file " -"object, it should be opened with ``newline=''`` [1]_. An optional *dialect* " -"parameter can be given which is used to define a set of parameters specific " -"to a particular CSV dialect. It may be an instance of a subclass of " -"the :class:`Dialect` class or one of the strings returned by " -"the :func:`list_dialects` function. The other optional *fmtparams* keyword " -"arguments can be given to override individual formatting parameters in the " -"current dialect. For full details about dialects and formatting parameters, " -"see the :ref:`csv-fmt-params` section. To make it as easy as possible to " -"interface with modules which implement the DB API, the value :const:`None` " -"is written as the empty string. While this isn't a reversible " -"transformation, it makes it easier to dump SQL NULL data values to CSV files " -"without preprocessing the data returned from a ``cursor.fetch*`` call. All " -"other non-string data are stringified with :func:`str` before being written." -msgstr "" -"Renvoie un transcripteur (objet *writer*) responsable de convertir les " -"données de l'utilisateur en chaînes délimitées sur l'objet fichier-" -"compatible donné. *csvfile* peut être n'importe quel objet avec une " -"méthode :func:`write`. Si *csvfile* est un objet fichier, il doit être " -"ouvert avec ``newline=''``. [1]_ Un paramètre *dialect* optionnel peut être " -"fourni pour définir un ensemble de paramètres spécifiques à un dialecte CSV " -"particulier. Il peut s'agir d'une instance d’une sous-classe " -"de :class:`Dialect` ou de l'une des chaînes renvoyées par la " -"fonction :func:`list_dialects`. Les autres arguments nommés optionnels " -"(*fmtparams*) peuvent être spécifiés pour redéfinir des paramètres de " -"formatage particuliers dans le dialecte utilisé. Pour tous les détails sur " -"les dialectes et paramètres de formatage, voir la section :ref:`csv-fmt-" -"params`. Pour faciliter au mieux l'interfaçage avec d'autres modules " -"implémentant l'interface *DB*, la valeur :const:`None` est convertie en une " -"chaîne vide. Bien que ce ne soit pas une transformation réversible, cela " -"simplifie l'exportation de données SQL *NULL* vers des fichiers CSV sans pré-" -"traiter les données renvoyées par un appel à ``cursor.fetch*``. Toutes les " -"autres données qui ne sont pas des chaînes de caractères sont transformées " -"en chaînes par un appel à :func:`str` avant d'être écrites." - -#: library/csv.rst:116 -msgid "" -"Associate *dialect* with *name*. *name* must be a string. The dialect can " -"be specified either by passing a sub-class of :class:`Dialect`, or by " -"*fmtparams* keyword arguments, or both, with keyword arguments overriding " -"parameters of the dialect. For full details about dialects and formatting " -"parameters, see section :ref:`csv-fmt-params`." -msgstr "" -"Associe *dialect* avec *name*. *name* doit être une chaîne de caractères. " -"Le dialecte peut être spécifié en passant une instance d'une sous-classe " -"de :class:`Dialect`, des arguments nommés *fmtparams*, ou les deux, avec les " -"arguments nommés redéfinissant les paramètres du dialecte. Pour tous les " -"détails sur les dialectes et paramètres de formatage, voir la " -"section :ref:`csv-fmt-params`." - -#: library/csv.rst:125 -msgid "" -"Delete the dialect associated with *name* from the dialect registry. " -"An :exc:`Error` is raised if *name* is not a registered dialect name." -msgstr "" -"Supprime le dialecte associé à *name* depuis le registre des dialectes. " -"Une :exc:`Error` est levée si *name* n'est pas un nom de dialecte enregistré." - -#: library/csv.rst:131 -msgid "" -"Return the dialect associated with *name*. An :exc:`Error` is raised if " -"*name* is not a registered dialect name. This function returns an " -"immutable :class:`Dialect`." -msgstr "" -"Renvoie le dialecte associé à *name*. Une :exc:`Error` est levée si *name* " -"n'est pas un nom de dialecte enregistré. Cette fonction renvoie un " -"objet :class:`Dialect` immuable." - -#: library/csv.rst:137 -msgid "Return the names of all registered dialects." -msgstr "Renvoie les noms de tous les dialectes enregistrés." - -#: library/csv.rst:143 -msgid "" -"Returns the current maximum field size allowed by the parser. If *new_limit* " -"is given, this becomes the new limit." -msgstr "" -"Renvoie la taille de champ maximale actuelle autorisée par l'analyseur. Si " -"*new_limit* est donnée, elle devient la nouvelle limite." - -#: library/csv.rst:147 -#, fuzzy -msgid "The :mod:`!csv` module defines the following classes:" -msgstr "Le module :mod:`csv` définit les classes suivantes :" - -#: library/csv.rst:152 -msgid "" -"Create an object that operates like a regular reader but maps the " -"information in each row to a :class:`dict` whose keys are given by the " -"optional *fieldnames* parameter." -msgstr "" -"Crée un objet qui opère comme un lecteur ordinaire mais assemble les " -"informations de chaque ligne dans un :class:`dict` dont les clés sont " -"données par le paramètre optionnel *fieldnames*." - -#: library/csv.rst:156 -#, fuzzy -msgid "" -"The *fieldnames* parameter is a :term:`sequence`. If *fieldnames* is " -"omitted, the values in the first row of file *f* will be used as the " -"fieldnames and will be omitted from the results. If *fieldnames* is " -"provided, they will be used and the first row will be included in the " -"results. Regardless of how the fieldnames are determined, the dictionary " -"preserves their original ordering." -msgstr "" -"Le paramètre *fieldnames* est une :term:`séquence `. Si " -"*fieldnames* est omis, les valeurs de la première ligne du fichier *f* sont " -"utilisées comme noms de champs. Sans se soucier de comment sont déterminés " -"les noms de champs, le dictionnaire préserve leur ordre original." - -#: library/csv.rst:163 -msgid "" -"If a row has more fields than fieldnames, the remaining data is put in a " -"list and stored with the fieldname specified by *restkey* (which defaults to " -"``None``). If a non-blank row has fewer fields than fieldnames, the missing " -"values are filled-in with the value of *restval* (which defaults to " -"``None``)." -msgstr "" -"Si une ligne a plus de champs que *fieldnames*, les données excédentaires " -"sont mises dans une liste stockée dans le champ spécifié par *restkey* " -"(``None`` par défaut). Si une ligne non-vide a moins de champs que " -"*fieldnames*, les valeurs manquantes sont remplacées par la valeur de " -"*restval* (``None`` par défaut)." - -#: library/csv.rst:169 -msgid "" -"All other optional or keyword arguments are passed to the " -"underlying :class:`reader` instance." -msgstr "" -"Tous les autres arguments optionnels ou nommés sont passés à " -"l'instance :class:`reader` sous-jacente." - -#: library/csv.rst:216 -msgid "" -"If the argument passed to *fieldnames* is an iterator, it will be coerced to " -"a :class:`list`." -msgstr "" - -#: library/csv.rst:174 -msgid "Returned rows are now of type :class:`OrderedDict`." -msgstr "Les lignes renvoyées sont maintenant de type :class:`OrderedDict`." - -#: library/csv.rst:177 -msgid "Returned rows are now of type :class:`dict`." -msgstr "Les lignes renvoyées sont maintenant de type :class:`dict`." - -#: library/csv.rst:198 -#, fuzzy -msgid "" -"Create an object which operates like a regular writer but maps dictionaries " -"onto output rows. The *fieldnames* parameter is a :mod:`sequence " -"` of keys that identify the order in which values in the " -"dictionary passed to the :meth:`~csvwriter.writerow` method are written to " -"file *f*. The optional *restval* parameter specifies the value to be " -"written if the dictionary is missing a key in *fieldnames*. If the " -"dictionary passed to the :meth:`~csvwriter.writerow` method contains a key " -"not found in *fieldnames*, the optional *extrasaction* parameter indicates " -"what action to take. If it is set to ``'raise'``, the default value, " -"a :exc:`ValueError` is raised. If it is set to ``'ignore'``, extra values in " -"the dictionary are ignored. Any other optional or keyword arguments are " -"passed to the underlying :class:`writer` instance." -msgstr "" -"Crée un objet qui opère comme un transcripteur ordinaire mais qui produit " -"les lignes de sortie depuis des dictionnaires. Le paramètre *fieldnames* " -"est une :mod:`séquence ` de clés qui indique l'ordre dans " -"lequel les valeurs du dictionnaire passé à la méthode :meth:`writerow` " -"doivent être écrites vers le fichier *f*. Le paramètre optionnel *restval* " -"spécifie la valeur à écrire si une clé de *fieldnames* manque dans le " -"dictionnaire. Si le dictionnaire passé à :meth:`writerow` possède une clé " -"non présente dans *fieldnames*, le paramètre optionnel *extrasaction* " -"indique quelle action réaliser. S'il vaut ``'raise'``, sa valeur par défaut, " -"une :exc:`ValueError` est levée. S'il vaut ``'ignore'``, les valeurs " -"excédentaires du dictionnaire sont ignorées. Les autres arguments optionnels " -"ou nommés sont passés à l'instance :class:`writer` sous-jacente." - -#: library/csv.rst:213 -msgid "" -"Note that unlike the :class:`DictReader` class, the *fieldnames* parameter " -"of the :class:`DictWriter` class is not optional." -msgstr "" -"Notez que contrairement à la classe :class:`DictReader`, le paramètre " -"*fieldnames* de :class:`DictWriter` n'est pas optionnel." - -#: library/csv.rst:234 -msgid "" -"The :class:`Dialect` class is a container class whose attributes contain " -"information for how to handle doublequotes, whitespace, delimiters, etc. Due " -"to the lack of a strict CSV specification, different applications produce " -"subtly different CSV data. :class:`Dialect` instances define " -"how :class:`reader` and :class:`writer` instances behave." -msgstr "" -"La classe :class:`Dialect` est une classe dont les attributs contiennent des " -"informations sur la façon de gérer les guillemets, les espaces, les " -"délimiteurs, etc. En raison de l’absence d’une spécification CSV stricte, " -"différentes applications produisent des données CSV subtilement différentes. " -"Les instances :class:`Dialect` définissent le comportement des " -"instances :class:`reader` et :class:`writer`." - -#: library/csv.rst:240 -msgid "" -"All available :class:`Dialect` names are returned by :func:`list_dialects`, " -"and they can be registered with specific :class:`reader` and :class:`writer` " -"classes through their initializer (``__init__``) functions like this::" -msgstr "" -"Tous les noms disponibles de :class:`Dialect` sont renvoyés " -"par :func:`list_dialects`, et ils peuvent être enregistrés avec des " -"classes :class:`reader` et :class:`writer` spécifiques en passant par leur " -"fonction d’initialisation (``__init__``) comme ici ::" - -#: library/csv.rst:252 -msgid "" -"The :class:`excel` class defines the usual properties of an Excel-generated " -"CSV file. It is registered with the dialect name ``'excel'``." -msgstr "" -"La classe :class:`excel` définit les propriétés usuelles d'un fichier CSV " -"généré par Excel. Elle est enregistrée avec le nom de dialecte ``'excel'``." - -#: library/csv.rst:258 -msgid "" -"The :class:`excel_tab` class defines the usual properties of an Excel-" -"generated TAB-delimited file. It is registered with the dialect name " -"``'excel-tab'``." -msgstr "" -"La classe :class:`excel_tab` définit les propriétés usuelles d'un fichier " -"CSV généré par Excel avec des tabulations comme séparateurs. Elle est " -"enregistrée avec le nom de dialecte ``'excel-tab'``." - -#: library/csv.rst:264 -msgid "" -"The :class:`unix_dialect` class defines the usual properties of a CSV file " -"generated on UNIX systems, i.e. using ``'\\n'`` as line terminator and " -"quoting all fields. It is registered with the dialect name ``'unix'``." -msgstr "" -"La classe :class:`unix_dialect` définit les propriétés usuelles d'un fichier " -"CSV généré sur un système Unix, c'est-à-dire utilisant ``'\\n'`` comme " -"marqueur de fin de ligne et délimitant tous les champs par des guillemets. " -"Elle est enregistrée avec le nom de dialecte ``'unix'``." - -#: library/csv.rst:273 -msgid "The :class:`Sniffer` class is used to deduce the format of a CSV file." -msgstr "" -"La classe :class:`Sniffer` est utilisée pour déduire le format d'un fichier " -"CSV." - -#: library/csv.rst:275 -msgid "The :class:`Sniffer` class provides two methods:" -msgstr "La classe :class:`Sniffer` fournit deux méthodes :" - -#: library/csv.rst:279 -msgid "" -"Analyze the given *sample* and return a :class:`Dialect` subclass reflecting " -"the parameters found. If the optional *delimiters* parameter is given, it " -"is interpreted as a string containing possible valid delimiter characters." -msgstr "" -"Analyse l'extrait donné (*sample*) et renvoie une sous-" -"classe :class:`Dialect` reflétant les paramètres trouvés. Si le paramètre " -"optionnel *delimiters* est donné, il est interprété comme une chaîne " -"contenant tous les caractères valides de séparation possibles." - -#: library/csv.rst:287 -msgid "" -"Analyze the sample text (presumed to be in CSV format) and " -"return :const:`True` if the first row appears to be a series of column " -"headers. Inspecting each column, one of two key criteria will be considered " -"to estimate if the sample contains a header:" -msgstr "" -"Analyse l'extrait de texte (présumé être au format CSV) et " -"renvoie :const:`True` si la première ligne semble être une série d'en-têtes " -"de colonnes. En inspectant chaque colonne, l’un des deux critères clés sera " -"pris en compte pour estimer si l’échantillon contient un en-tête :" - -#: library/csv.rst:292 -msgid "the second through n-th rows contain numeric values" -msgstr "les deuxième à n-ième lignes contiennent des valeurs numériques" - -#: library/csv.rst:293 -msgid "" -"the second through n-th rows contain strings where at least one value's " -"length differs from that of the putative header of that column." -msgstr "" -"les deuxième à n-ième lignes contiennent des chaînes dont la longueur d’au " -"moins une valeur diffère de celle de l’en-tête putatif de cette colonne." - -#: library/csv.rst:296 -#, fuzzy -msgid "" -"Twenty-one rows after the header are sampled; if more than half of the " -"columns + rows meet the criteria, :const:`True` is returned." -msgstr "" -"L'échantillon est composé des vingt lignes après la première ligne ; si plus " -"de la moitié des colonnes + lignes répondent aux critères, :const:`True` est " -"renvoyé." - -#: library/csv.rst:301 -msgid "" -"This method is a rough heuristic and may produce both false positives and " -"negatives." -msgstr "" -"Cette méthode est une heuristique discutable et peut produire tant des faux-" -"positifs que des faux-négatifs." - -#: library/csv.rst:304 -msgid "An example for :class:`Sniffer` use::" -msgstr "Un exemple d'utilisation de :class:`Sniffer` ::" - -#: library/csv.rst:315 -#, fuzzy -msgid "The :mod:`!csv` module defines the following constants:" -msgstr "Le module :mod:`csv` définit les constantes suivantes :" - -#: library/csv.rst:319 -msgid "Instructs :class:`writer` objects to quote all fields." -msgstr "" -"Indique aux objets :class:`writer` de délimiter tous les champs par des " -"guillemets." - -#: library/csv.rst:324 -#, fuzzy -msgid "" -"Instructs :class:`writer` objects to only quote those fields which contain " -"special characters such as *delimiter*, *quotechar*, ``'\\r'``, ``'\\n'`` or " -"any of the characters in *lineterminator*." -msgstr "" -"Indique aux objets :class:`writer` de ne délimiter ainsi que les champs " -"contenant un caractère spécial comme *delimiter*, *quotechar* ou n'importe " -"quel caractère de *lineterminator*." - -#: library/csv.rst:331 -msgid "Instructs :class:`writer` objects to quote all non-numeric fields." -msgstr "" -"Indique aux objets :class:`writer` de délimiter ainsi tous les champs non-" -"numériques." - -#: library/csv.rst:333 -#, fuzzy -msgid "" -"Instructs :class:`reader` objects to convert all non-quoted fields to " -"type :class:`float`." -msgstr "" -"Indique au lecteur de convertir tous les champs non délimités par des " -"guillemets vers des *float*." - -#: library/csv.rst:336 -msgid "" -"Some numeric types, such as :class:`bool`, :class:`~fractions.Fraction`, " -"or :class:`~enum.IntEnum`, have a string representation that cannot be " -"converted to :class:`float`. They cannot be read in " -"the :data:`QUOTE_NONNUMERIC` and :data:`QUOTE_STRINGS` modes." -msgstr "" - -#: library/csv.rst:344 -#, fuzzy -msgid "" -"Instructs :class:`writer` objects to never quote fields. When the current " -"*delimiter*, *quotechar*, *escapechar*, ``'\\r'``, ``'\\n'`` or any of the " -"characters in *lineterminator* occurs in output data it is preceded by the " -"current *escapechar* character. If *escapechar* is not set, the writer will " -"raise :exc:`Error` if any characters that require escaping are encountered. " -"Set *quotechar* to ``None`` to prevent its escaping." -msgstr "" -"Indique aux objets :class:`writer` de ne jamais délimiter les champs par des " -"guillemets. Quand le *delimiter* utilisé apparaît dans les données, il est " -"précédé sur la sortie par un caractère *escapechar*. Si *escapechar* n'est " -"pas précisé, le transcripteur lèvera une :exc:`Error` si un caractère " -"nécessitant un échappement est rencontré." - -#: library/csv.rst:352 -#, fuzzy -msgid "" -"Instructs :class:`reader` objects to perform no special processing of quote " -"characters." -msgstr "" -"Indique au :class:`reader` de ne pas opérer de traitement spécial sur les " -"guillemets." - -#: library/csv.rst:356 -msgid "" -"Instructs :class:`writer` objects to quote all fields which are not " -"``None``. This is similar to :data:`QUOTE_ALL`, except that if a field " -"value is ``None`` an empty (unquoted) string is written." -msgstr "" - -#: library/csv.rst:360 -msgid "" -"Instructs :class:`reader` objects to interpret an empty (unquoted) field as " -"``None`` and to otherwise behave as :data:`QUOTE_ALL`." -msgstr "" - -#: library/csv.rst:367 -msgid "" -"Instructs :class:`writer` objects to always place quotes around fields which " -"are strings. This is similar to :data:`QUOTE_NONNUMERIC`, except that if a " -"field value is ``None`` an empty (unquoted) string is written." -msgstr "" - -#: library/csv.rst:371 -msgid "" -"Instructs :class:`reader` objects to interpret an empty (unquoted) string as " -"``None`` and to otherwise behave as :data:`QUOTE_NONNUMERIC`." -msgstr "" - -#: library/csv.rst:376 -#, fuzzy -msgid "The :mod:`!csv` module defines the following exception:" -msgstr "Le module :mod:`csv` définit les exceptions suivantes :" - -#: library/csv.rst:381 -msgid "Raised by any of the functions when an error is detected." -msgstr "Levée par les fonctions du module quand une erreur détectée." - -#: library/csv.rst:386 -msgid "Dialects and Formatting Parameters" -msgstr "Dialectes et paramètres de formatage" - -#: library/csv.rst:388 -#, fuzzy -msgid "" -"To make it easier to specify the format of input and output records, " -"specific formatting parameters are grouped together into dialects. A " -"dialect is a subclass of the :class:`Dialect` class containing various " -"attributes describing the format of the CSV file. When " -"creating :class:`reader` or :class:`writer` objects, the programmer can " -"specify a string or a subclass of the :class:`Dialect` class as the dialect " -"parameter. In addition to, or instead of, the *dialect* parameter, the " -"programmer can also specify individual formatting parameters, which have the " -"same names as the attributes defined below for the :class:`Dialect` class." -msgstr "" -"Pour faciliter la spécification du format des entrées et sorties, les " -"paramètres de formatage spécifiques sont regroupés en dialectes. Un " -"dialecte est une sous-classe de :class:`Dialect` avec un ensemble de " -"méthodes spécifiques et une méthode :meth:`validate`. Quand un " -"objet :class:`reader` ou :class:`writer` est créé, vous pouvez spécifier une " -"chaîne ou une sous-classe de :class:`Dialect` comme paramètre *dialect*. En " -"plus du paramètre *dialect*, ou à sa place, vous pouvez aussi préciser des " -"paramètres de formatage individuels, qui ont les mêmes noms que les " -"attributs de :class:`Dialect` définis ci-dessous." - -#: library/csv.rst:398 -msgid "Dialects support the following attributes:" -msgstr "Les dialectes supportent les attributs suivants :" - -#: library/csv.rst:403 -msgid "" -"A one-character string used to separate fields. It defaults to ``','``." -msgstr "" -"Une chaîne d'un seul caractère utilisée pour séparer les champs. Elle vaut " -"``','`` par défaut." - -#: library/csv.rst:408 -msgid "" -"Controls how instances of *quotechar* appearing inside a field should " -"themselves be quoted. When :const:`True`, the character is doubled. " -"When :const:`False`, the *escapechar* is used as a prefix to the " -"*quotechar*. It defaults to :const:`True`." -msgstr "" -"Contrôle comment les caractères *quotechar* dans le champ doivent être " -"retranscrits. Quand ce paramètre vaut :const:`True`, le caractère est " -"doublé. Quand il vaut :const:`False`, le caractère *escapechar* est utilisé " -"comme préfixe à *quotechar*. Il vaut :const:`True` par défaut." - -#: library/csv.rst:413 -msgid "" -"On output, if *doublequote* is :const:`False` and no *escapechar* is " -"set, :exc:`Error` is raised if a *quotechar* is found in a field." -msgstr "" -"En écriture, si *doublequote* vaut :const:`False` et qu'aucun *escapechar* " -"n'est précisé, une :exc:`Error` est levée si un *quotechar* est trouvé dans " -"le champ." - -#: library/csv.rst:419 -msgid "" -"A one-character string used by the writer to escape characters that require " -"escaping:" -msgstr "" - -#: library/csv.rst:422 -msgid "" -"the *delimiter*, the *quotechar*, ``'\\r'``, ``'\\n'`` and any of the " -"characters in *lineterminator* are escaped if *quoting* is set " -"to :const:`QUOTE_NONE`;" -msgstr "" - -#: library/csv.rst:425 -msgid "the *quotechar* is escaped if *doublequote* is :const:`False`;" -msgstr "" - -#: library/csv.rst:426 -#, fuzzy -msgid "the *escapechar* itself." -msgstr "Un ``escapechar`` vide n'est pas autorisé." - -#: library/csv.rst:428 -#, fuzzy -msgid "" -"On reading, the *escapechar* removes any special meaning from the following " -"character. It defaults to :const:`None`, which disables escaping." -msgstr "" -"Une chaîne d'un seul caractère utilisée par le transcripteur pour échapper " -"*delimiter* si *quoting* vaut :const:`QUOTE_NONE`, et pour échapper " -"*quotechar* si *doublequote* vaut :const:`False`. À la lecture, *escapechar* " -"retire toute signification spéciale au caractère qui le suit. Elle vaut par " -"défaut :const:`None`, ce qui désactive l'échappement." - -#: library/csv.rst:431 -msgid "An empty *escapechar* is not allowed." -msgstr "Un ``escapechar`` vide n'est pas autorisé." - -#: library/csv.rst:436 -msgid "" -"The string used to terminate lines produced by the :class:`writer`. It " -"defaults to ``'\\r\\n'``." -msgstr "" -"La chaîne utilisée pour terminer les lignes produites par " -"un :class:`writer`. Elle vaut par défaut ``'\\r\\n'``." - -#: library/csv.rst:441 -msgid "" -"The :class:`reader` is hard-coded to recognise either ``'\\r'`` or ``'\\n'`` " -"as end-of-line, and ignores *lineterminator*. This behavior may change in " -"the future." -msgstr "" -"La classe :class:`reader` est codée en dur pour reconnaître ``'\\r'`` et " -"``'\\n'`` comme marqueurs de fin de ligne, et ignorer *lineterminator*. Ce " -"comportement pourrait changer dans le futur." - -#: library/csv.rst:448 -#, fuzzy -msgid "" -"A one-character string used to quote fields containing special characters, " -"such as the *delimiter* or the *quotechar*, or which contain new-line " -"characters (``'\\r'``, ``'\\n'`` or any of the characters in " -"*lineterminator*). It defaults to ``'\"'``. Can be set to ``None`` to " -"prevent escaping ``'\"'`` if *quoting* is set to :const:`QUOTE_NONE`." -msgstr "" -"Une chaîne d'un seul caractère utilisée pour délimiter les champs contenant " -"des caractères spéciaux, comme *delimiter* ou *quotechar*, ou contenant un " -"caractère de fin de ligne. Elle vaut ``'\"'`` par défaut." - -#: library/csv.rst:455 -msgid "An empty *quotechar* is not allowed." -msgstr "Un ``quotechar`` vide n'est pas autorisé." - -#: library/csv.rst:460 -#, fuzzy -msgid "" -"Controls when quotes should be generated by the writer and recognised by the " -"reader. It can take on any of the :ref:`QUOTE_\\* constants ` and defaults to :const:`QUOTE_MINIMAL` if *quotechar* is not " -"``None``, and :const:`QUOTE_NONE` otherwise." -msgstr "" -"Contrôle quand les guillemets doivent être générés par le transcripteur et " -"reconnus par le lecteur. Il peut prendre comme valeur l'une des " -"constantes :const:`QUOTE_\\*` (voir la section :ref:`csv-contents`) et vaut " -"par défaut :const:`QUOTE_MINIMAL`." - -#: library/csv.rst:468 -#, fuzzy -msgid "" -"When :const:`True`, spaces immediately following the *delimiter* are " -"ignored. The default is :const:`False`. When combining ``delimiter=' '`` " -"with ``skipinitialspace=True``, unquoted empty fields are not allowed." -msgstr "" -"Quand il vaut :const:`True`, les espaces suivant directement *delimiter* " -"sont ignorés. Il vaut :const:`False` par défaut." - -#: library/csv.rst:475 -msgid "" -"When ``True``, raise exception :exc:`Error` on bad CSV input. The default is " -"``False``." -msgstr "" -"Quand il vaut ``True``, une exception :exc:`Error` est levée lors de " -"mauvaises entrées CSV. Il vaut ``False`` par défaut." - -#: library/csv.rst:481 -msgid "Reader Objects" -msgstr "Objets lecteurs" - -#: library/csv.rst:483 -msgid "" -"Reader objects (:class:`DictReader` instances and objects returned by " -"the :func:`reader` function) have the following public methods:" -msgstr "" -"Les objets lecteurs (instances de :class:`DictReader` ou objets renvoyés par " -"la fonction :func:`reader`) ont les méthodes publiques suivantes :" - -#: library/csv.rst:488 -msgid "" -"Return the next row of the reader's iterable object as a list (if the object " -"was returned from :func:`reader`) or a dict (if it is a :class:`DictReader` " -"instance), parsed according to the current :class:`Dialect`. Usually you " -"should call this as ``next(reader)``." -msgstr "" -"Renvoie la ligne suivante de l'objet itérable du lecteur en tant que liste " -"(si l'objet est renvoyé depuis :func:`reader`) ou dictionnaire (si l'objet " -"est un :class:`DictReader`), analysé suivant la classe :class:`Dialect` " -"utilisée. Généralement, vous devez appeler la méthode à l'aide de " -"``next(reader)``." - -#: library/csv.rst:494 -msgid "Reader objects have the following public attributes:" -msgstr "Les objets lecteurs ont les attributs publics suivants :" - -#: library/csv.rst:498 -msgid "A read-only description of the dialect in use by the parser." -msgstr "Une description en lecture seule du dialecte utilisé par l'analyseur." - -#: library/csv.rst:503 -msgid "" -"The number of lines read from the source iterator. This is not the same as " -"the number of records returned, as records can span multiple lines." -msgstr "" -"Le nombre de lignes lues depuis l'itérateur source. Ce n'est pas équivalent " -"au nombre d'enregistrements renvoyés, puisque certains enregistrements " -"peuvent s'étendre sur plusieurs lignes." - -#: library/csv.rst:507 -msgid "DictReader objects have the following public attribute:" -msgstr "Les objets *DictReader* ont les attributs publics suivants :" - -#: library/csv.rst:511 -msgid "" -"If not passed as a parameter when creating the object, this attribute is " -"initialized upon first access or when the first record is read from the file." -msgstr "" -"S'il n'est pas passé comme paramètre à la création de l'objet, cet attribut " -"est initialisé lors du premier accès ou quand le premier enregistrement est " -"lu depuis le fichier." - -#: library/csv.rst:518 -msgid "Writer Objects" -msgstr "Objets transcripteurs" - -#: library/csv.rst:520 -#, fuzzy -msgid "" -":class:`writer` objects (:class:`DictWriter` instances and objects returned " -"by the :func:`writer` function) have the following public methods. A *row* " -"must be an iterable of strings or numbers for :class:`writer` objects and a " -"dictionary mapping fieldnames to strings or numbers (by passing them " -"through :func:`str` first) for :class:`DictWriter` objects. Note that " -"complex numbers are written out surrounded by parens. This may cause some " -"problems for other programs which read CSV files (assuming they support " -"complex numbers at all)." -msgstr "" -"Les objets :class:`Writer` (instances de :class:`DictWriter` ou objets " -"renvoyés par la fonction :func:`writer`) ont les méthodes publiques " -"suivantes. Une *row* doit être un itérable de chaînes de caractères ou de " -"nombres pour les objets :class:`Writer`, et un dictionnaire associant des " -"noms de champs à des chaînes ou des nombres (en les faisant d'abord passer " -"par :func:`str`) pour les objets :class:`DictWriter`. Notez que les nombres " -"complexes sont retranscrits entourés de parenthèses. Cela peut causer " -"quelques problèmes pour d'autres programmes qui liraient ces fichiers CSV " -"(en supposant qu'ils supportent les nombres complexes)." - -#: library/csv.rst:531 -msgid "" -"Write the *row* parameter to the writer's file object, formatted according " -"to the current :class:`Dialect`. Return the return value of the call to the " -"*write* method of the underlying file object." -msgstr "" -"Écrit le paramètre *row* vers l’objet fichier du transcripteur, formaté " -"selon la classe :class:`Dialect` utilisée. Renvoie la valeur de retour de " -"l'appel à la méthode *write* de l'objet fichier sous-jacent." - -#: library/csv.rst:535 -msgid "Added support of arbitrary iterables." -msgstr "Ajout du support d'itérables arbitraires." - -#: library/csv.rst:540 -msgid "" -"Write all elements in *rows* (an iterable of *row* objects as described " -"above) to the writer's file object, formatted according to the current " -"dialect." -msgstr "" -"Écrit tous les éléments de *rows* (itérable d'objets *row* comme décrits " -"précédemment) vers le fichier associé au transcripteur, formatés selon le " -"dialecte utilisé." - -#: library/csv.rst:544 -msgid "Writer objects have the following public attribute:" -msgstr "Les objets transcripteurs ont l’attribut public suivant :" - -#: library/csv.rst:549 -msgid "A read-only description of the dialect in use by the writer." -msgstr "" -"Une description en lecture seule du dialecte utilisé par le transcripteur." - -#: library/csv.rst:552 -msgid "DictWriter objects have the following public method:" -msgstr "Les objets *DictWriter* ont la méthode publique suivante :" - -#: library/csv.rst:557 -msgid "" -"Write a row with the field names (as specified in the constructor) to the " -"writer's file object, formatted according to the current dialect. Return the " -"return value of the :meth:`csvwriter.writerow` call used internally." -msgstr "" -"Écrit une ligne avec le nom des en-têtes (comme définies dans le " -"constructeur) dans l'objet fichier associé au transcripteur, formatée selon " -"le dialecte utilisé. Renvoie la valeur de retour de " -"l'appel :meth:`csvwriter.writerow` utilisé en interne." - -#: library/csv.rst:562 -msgid "" -":meth:`writeheader` now also returns the value returned by " -"the :meth:`csvwriter.writerow` method it uses internally." -msgstr "" -":meth:`writeheader` renvoie maintenant aussi la valeur renvoyée par la " -"méthode :meth:`csvwriter.writerow` qu'il utilise en interne." - -#: library/csv.rst:570 -msgid "Examples" -msgstr "Exemples" - -#: library/csv.rst:572 -msgid "The simplest example of reading a CSV file::" -msgstr "Le plus simple exemple de lecture d'un fichier CSV ::" - -#: library/csv.rst:580 -msgid "Reading a file with an alternate format::" -msgstr "Lire un fichier avec un format alternatif ::" - -#: library/csv.rst:588 -msgid "The corresponding simplest possible writing example is::" -msgstr "Le plus simple exemple d'écriture correspondant est ::" - -#: library/csv.rst:595 -msgid "" -"Since :func:`open` is used to open a CSV file for reading, the file will by " -"default be decoded into unicode using the system default encoding " -"(see :func:`locale.getencoding`). To decode a file using a different " -"encoding, use the ``encoding`` argument of open::" -msgstr "" -"Puisque :func:`open` est utilisée pour ouvrir un fichier CSV en lecture, le " -"fichier sera par défaut décodé vers Unicode en utilisant l'encodage par " -"défaut (voir :func:`locale.getencoding`). Pour décoder un fichier utilisant " -"un encodage différent, utilisez l'argument ``encoding`` de *open* ::" - -#: library/csv.rst:606 -msgid "" -"The same applies to writing in something other than the system default " -"encoding: specify the encoding argument when opening the output file." -msgstr "" -"Cela s’applique également lors de l'écriture dans un autre encodage que " -"celui par défaut du système : spécifiez l'encodage en argument lors de " -"l'ouverture du fichier de sortie." - -#: library/csv.rst:609 -msgid "Registering a new dialect::" -msgstr "Enregistrer un nouveau dialecte ::" - -#: library/csv.rst:616 -msgid "" -"A slightly more advanced use of the reader --- catching and reporting " -"errors::" -msgstr "" -"Un exemple d'utilisation un peu plus avancé du lecteur, attrapant et " -"notifiant les erreurs ::" - -#: library/csv.rst:628 -msgid "" -"And while the module doesn't directly support parsing strings, it can easily " -"be done::" -msgstr "" -"Et bien que le module ne permette pas d'analyser directement des chaînes, " -"cela peut être fait facilement ::" - -#: library/csv.rst:637 -msgid "Footnotes" -msgstr "Notes" - -#: library/csv.rst:638 -#, fuzzy -msgid "" -"If ``newline=''`` is not specified, newlines embedded inside quoted fields " -"will not be interpreted correctly, and on platforms that use ``\\r\\n`` line " -"endings on write an extra ``\\r`` will be added. It should always be safe " -"to specify ``newline=''``, since the csv module does its own " -"(:term:`universal `) newline handling." -msgstr "" -"Si ``newline=''`` n'est pas précisé, les caractères de fin de ligne " -"embarqués dans des champs délimités par des guillemets ne seront pas " -"interprétés correctement, et sur les plateformes qui utilisent ``\\r\\n`` " -"comme marqueur de fin de ligne, un ``\\r`` sera ajouté. Il devrait toujours " -"être sûr de préciser ``newline=''``, puisque le module *csv* gère lui-même " -"les fins de lignes (:term:`universelles `)." - -#~ msgid "csv" -#~ msgstr "csv" - -#~ msgid "data" -#~ msgstr "valeur" - -#~ msgid "universal newlines" -#~ msgstr "retours à la ligne universels" - -#~ msgid "" -#~ "The :class:`Dialect` class is a container class relied on primarily for " -#~ "its attributes, which are used to define the parameters for a " -#~ "specific :class:`reader` or :class:`writer` instance." -#~ msgstr "" -#~ "La classe :class:`Dialect` est une classe de conteneurs utilisée " -#~ "principalement pour ses attributs, qui servent à définir des paramètres " -#~ "pour des instances spécifiques de :class:`reader` ou :class:`writer`." diff --git a/library/ctypes.po b/library/ctypes.po deleted file mode 100644 index a3a732bf5e..0000000000 --- a/library/ctypes.po +++ /dev/null @@ -1,4508 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-11-09 08:06+0100\n" -"Last-Translator: Antoine Wecxsteen\n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3\n" - -#: library/ctypes.rst:2 -#, fuzzy -msgid ":mod:`!ctypes` --- A foreign function library for Python" -msgstr ":mod:`ctypes` — Bibliothèque Python d'appels à des fonctions externes" - -#: library/ctypes.rst:7 -msgid "**Source code:** :source:`Lib/ctypes`" -msgstr "" - -#: library/ctypes.rst:11 -#, fuzzy -msgid "" -":mod:`!ctypes` is a foreign function library for Python. It provides C " -"compatible data types, and allows calling functions in DLLs or shared " -"libraries. It can be used to wrap these libraries in pure Python." -msgstr "" -":mod:`ctypes` est une bibliothèque d'appel à des fonctions externes en " -"python. Elle fournit des types de données compatibles avec le langage C et " -"permet d'appeler des fonctions depuis des DLL ou des bibliothèques " -"partagées, rendant ainsi possible l'interfaçage de ces bibliothèques avec du " -"pur code Python." - -#: includes/optional-module.rst:1 -msgid "" -"This is an :term:`optional module`. If it is missing from your copy of " -"CPython, look for documentation from your distributor (that is, whoever " -"provided Python to you). If you are the distributor, see :ref:`optional-" -"module-requirements`." -msgstr "" - -#: library/ctypes.rst:19 -msgid "" -":mod:`!ctypes` provides low-level access to native libraries and the " -"process's memory, bypassing Python's safety mechanisms and allowing " -"execution of arbitrary native code. Incorrect use can corrupt data and " -"objects, reveal sensitive information, cause crashes, or otherwise " -"compromise the running process." -msgstr "" - -#: library/ctypes.rst:29 -msgid "ctypes tutorial" -msgstr "Didacticiel de *ctypes*" - -#: library/ctypes.rst:31 -msgid "" -"Note: Some code samples reference the ctypes :class:`c_int` type. On " -"platforms where ``sizeof(long) == sizeof(int)`` it is an alias " -"to :class:`c_long`. So, you should not be confused if :class:`c_long` is " -"printed if you would expect :class:`c_int` --- they are actually the same " -"type." -msgstr "" -"Remarque : le type :class:`c_int` du module apparaît dans certains de ces " -"exemples. Sur les plates-formes où ``sizeof(long) == sizeof(int)``, ce type " -"est un alias de :class:`c_long`. Ne soyez donc pas surpris " -"si :class:`c_long` s'affiche là où vous vous attendiez à :class:`c_int` — il " -"s'agit bien du même type." - -#: library/ctypes.rst:39 -msgid "Loading dynamic link libraries" -msgstr "Chargement des DLL" - -#: library/ctypes.rst:41 -#, fuzzy -msgid "" -":mod:`!ctypes` exports the :py:data:`~ctypes.cdll`, and on " -"Windows :py:data:`~ctypes.windll` and :py:data:`~ctypes.oledll` objects, for " -"loading dynamic link libraries." -msgstr "" -":mod:`ctypes` fournit l'objet *cdll* pour charger des bibliothèques à liens " -"dynamiques (et les objets *windll* et *oledll* en Windows)." - -#: library/ctypes.rst:45 -#, fuzzy -msgid "" -"You load libraries by accessing them as attributes of these " -"objects. :py:data:`!cdll` loads libraries which export functions using the " -"standard ``cdecl`` calling convention, while :py:data:`!windll` libraries " -"call functions using the ``stdcall`` calling convention. :py:data:`~oledll` " -"also uses the ``stdcall`` calling convention, and assumes the functions " -"return a Windows :c:type:`!HRESULT` error code. The error code is used to " -"automatically raise an :class:`OSError` exception when the function call " -"fails." -msgstr "" -"Une bibliothèque se charge en y accédant comme un attribut de ces objets. " -"*cdll* charge les bibliothèques qui exportent des fonctions utilisant la " -"convention d'appel standard ``cdecl``, alors que les bibliothèques qui se " -"chargent avec *windll* utilisent la convention d'appel ``stdcall``. *oledll* " -"utilise elle aussi la convention ``stdcall`` et suppose que les fonctions " -"renvoient un code d'erreur :c:type:`HRESULT` de Windows. Ce code d'erreur " -"est utilisé pour lever automatiquement une :class:`OSError` quand l'appel de " -"la fonction échoue." - -#: library/ctypes.rst:55 -msgid "" -"Windows errors used to raise :exc:`WindowsError`, which is now an alias " -"of :exc:`OSError`." -msgstr "" -"En Windows, les erreurs levaient auparavant une :exc:`WindowsError`, qui est " -"maintenant un alias de :exc:`OSError`." - -#: library/ctypes.rst:60 -#, fuzzy -msgid "" -"Here are some examples for Windows. Note that ``msvcrt`` is the MS standard " -"C library containing most standard C functions, and uses the ``cdecl`` " -"calling convention::" -msgstr "" -"Voici quelques exemples Windows. ``msvcrt`` est la bibliothèque standard C " -"de Microsoft qui contient la plupart des fonctions standards C. Elle suit la " -"convention d'appel *cdecl* ::" - -#: library/ctypes.rst:72 -msgid "Windows appends the usual ``.dll`` file suffix automatically." -msgstr "Windows ajoute le suffixe habituel ``.dll`` automatiquement." - -#: library/ctypes.rst:75 -msgid "" -"Accessing the standard C library through ``cdll.msvcrt`` will use an " -"outdated version of the library that may be incompatible with the one being " -"used by Python. Where possible, use native Python functionality, or else " -"import and use the ``msvcrt`` module." -msgstr "" -"Accéder à la bibliothèque standard C par ``cdll.msvcrt`` utilise une version " -"obsolète de la bibliothèque qui peut avoir des problèmes de compatibilité " -"avec celle que Python utilise. Si possible, mieux vaut utiliser la " -"fonctionnalité native de Python, ou bien importer et utiliser le module " -"``msvcrt``." - -#: library/ctypes.rst:80 -#, fuzzy -msgid "" -"Other systems require the filename *including* the extension to load a " -"library, so attribute access can not be used to load libraries. Either " -"the :meth:`~LibraryLoader.LoadLibrary` method of the dll loaders should be " -"used, or you should load the library by creating an instance " -"of :py:class:`CDLL` by calling the constructor." -msgstr "" -"Pour charger une bibliothèque en Linux, il faut passer le nom du fichier " -"*avec* son extension. Il est donc impossible de charger une bibliothèque en " -"accédant à un attribut. Il faut utiliser la méthode :meth:`LoadLibrary` des " -"chargeurs de DLL, ou bien charger la bibliothèque en créant une instance de " -"*CDLL* en appelant son constructeur ::" - -#: library/ctypes.rst:86 -#, fuzzy -msgid "For example, on Linux::" -msgstr "Par exemple ::" - -#: library/ctypes.rst:95 -msgid "On macOS::" -msgstr "" - -#: library/ctypes.rst:108 -msgid "Accessing functions from loaded dlls" -msgstr "Accès aux fonctions des DLL chargées" - -#: library/ctypes.rst:110 -msgid "Functions are accessed as attributes of dll objects::" -msgstr "Les fonctions sont alors des attributs des objets DLL ::" - -#: library/ctypes.rst:124 -#, fuzzy -msgid "" -"Note that win32 system dlls like ``kernel32`` and ``user32`` often export " -"ANSI as well as UNICODE versions of a function. The UNICODE version is " -"exported with a ``W`` appended to the name, while the ANSI version is " -"exported with an ``A`` appended to the name. The win32 ``GetModuleHandle`` " -"function, which returns a *module handle* for a given module name, has the " -"following C prototype, and a macro is used to expose one of them as " -"``GetModuleHandle`` depending on whether UNICODE is defined or not::" -msgstr "" -"Les DLL des systèmes *win32* comme ``kernel32`` et ``user32`` exportent " -"souvent une version ANSI et une version UNICODE d'une fonction. La version " -"UNICODE est exportée avec un ``W`` à la fin, et la version ANSI avec un " -"``A``. La fonction *win32* ``GetModuleHandle``, qui renvoie un *gestionnaire " -"de module* à partir de son nom, a le prototype C suivant (c'est une macro " -"qui décide d'exporter l'une ou l'autre à travers ``GetModuleHandle``, selon " -"qu'UNICODE est définie ou non) ::" - -#: library/ctypes.rst:137 -msgid "" -"*windll* does not try to select one of them by magic, you must access the " -"version you need by specifying ``GetModuleHandleA`` or ``GetModuleHandleW`` " -"explicitly, and then call it with bytes or string objects respectively." -msgstr "" -"*windll* n'en choisit pas une par magie, il faut accéder à la bonne en " -"écrivant explicitement ``GetModuleHandleA`` ou ``GetModuleHandleW`` et en " -"les appelant ensuite avec des objets octets ou avec des chaînes de " -"caractères, respectivement." - -#: library/ctypes.rst:141 -msgid "" -"Sometimes, dlls export functions with names which aren't valid Python " -"identifiers, like ``\"??2@YAPAXI@Z\"``. In this case you have to " -"use :func:`getattr` to retrieve the function::" -msgstr "" -"Les DLL exportent parfois des fonctions dont les noms ne sont pas des " -"identifiants Python valides, comme ``\"??2@YAPAXI@Z\"``. Dans ce cas, il " -"faut utiliser :func:`getattr` pour accéder à la fonction ::" - -#: library/ctypes.rst:149 -msgid "" -"On Windows, some dlls export functions not by name but by ordinal. These " -"functions can be accessed by indexing the dll object with the ordinal " -"number::" -msgstr "" -"Sous Windows, certaines DLL exportent des fonctions à travers un indice " -"plutôt qu'à travers un nom. On accède à une fonction en indiçant l'objet DLL " -"avec son index ::" - -#: library/ctypes.rst:166 -msgid "Calling functions" -msgstr "Appel de fonctions" - -#: library/ctypes.rst:168 -#, fuzzy -msgid "" -"You can call these functions like any other Python callable. This example " -"uses the ``rand()`` function, which takes no arguments and returns a pseudo-" -"random integer::" -msgstr "" -"Ces fonctions s'appellent comme n'importe quel appelable Python. Cet exemple " -"utilise la fonction ``time()``, qui renvoie le temps en secondes du système " -"depuis l'*epoch* Unix, et la fonction ``GetModuleHandleA()``, qui renvoie un " -"gestionnaire de module *win32*." - -#: library/ctypes.rst:174 -msgid "" -"On Windows, you can call the ``GetModuleHandleA()`` function, which returns " -"a win32 module handle (passing ``None`` as single argument to call it with a " -"``NULL`` pointer)::" -msgstr "" - -#: library/ctypes.rst:181 -msgid "" -":exc:`ValueError` is raised when you call an ``stdcall`` function with the " -"``cdecl`` calling convention, or vice versa::" -msgstr "" -"Une :exc:`ValueError` est levée quand on appelle une fonction ``stdcall`` " -"avec la convention d'appel ``cdecl`` et vice-versa ::" - -#: library/ctypes.rst:196 -msgid "" -"To find out the correct calling convention you have to look into the C " -"header file or the documentation for the function you want to call." -msgstr "" -"Pour déterminer la convention d'appel, il faut consulter l'en-tête C ou la " -"documentation de la fonction à appeler." - -#: library/ctypes.rst:199 -#, fuzzy -msgid "" -"On Windows, :mod:`!ctypes` uses win32 structured exception handling to " -"prevent crashes from general protection faults when functions are called " -"with invalid argument values::" -msgstr "" -"En Windows, :mod:`ctypes` tire profit de la gestion structurée des " -"exceptions (*structured exception handling*) *win32* pour empêcher les " -"plantages dus à des interruptions, afin de préserver la protection globale " -"(*general protection faults*) du système, lorsque des fonctions sont " -"appelées avec un nombre incorrect d'arguments ::" - -#: library/ctypes.rst:209 -#, fuzzy -msgid "" -"The :mod:`faulthandler` module can help debug crashes, such as segmentation " -"faults produced by erroneous C library calls." -msgstr "" -"Cependant, il y a suffisamment de façons de faire planter Python " -"avec :mod:`ctypes`, donc il faut être prudent dans tous les cas. Le " -"module :mod:`faulthandler` est pratique pour déboguer les plantages (p. ex. " -"dus à des erreurs de segmentation produites par des appels erronés à la " -"bibliothèque C)." - -#: library/ctypes.rst:212 -#, fuzzy -msgid "" -"``None``, integers, bytes objects and (unicode) strings are the only native " -"Python objects that can directly be used as parameters in these function " -"calls. ``None`` is passed as a C ``NULL`` pointer, bytes objects and strings " -"are passed as pointer to the memory block that contains their data " -"(:c:expr:`char *` or :c:expr:`wchar_t *`). Python integers are passed as " -"the platform's default C :c:expr:`int` type, their value is masked to fit " -"into the C type." -msgstr "" -"``None``, les entiers, les objets octets et les chaînes de caractères " -"(Unicode) sont les seuls types natifs de Python qui peuvent être directement " -"passés en paramètres de ces appels de fonctions. ``None`` est passé comme le " -"pointeur C ``NULL``, les objets octets et les chaînes de caractères sont " -"passés comme un pointeur sur le bloc mémoire qui contient la donnée " -"(:c:type:`char *` ou :c:type:`wchar_t *`). Les entiers Python sont passés " -"comme le type C :c:type:`int` par défaut de la plate-forme, un masque étant " -"appliqué pour qu'ils tiennent dans le type C." - -#: library/ctypes.rst:219 -#, fuzzy -msgid "" -"Before we move on calling functions with other parameter types, we have to " -"learn more about :mod:`!ctypes` data types." -msgstr "" -"Avant de poursuivre sur l'appel de fonctions avec d'autres types de " -"paramètres, apprenons-en un peu plus sur les types de données " -"de :mod:`ctypes`." - -#: library/ctypes.rst:2553 -msgid "Fundamental data types" -msgstr "Types de données de base" - -#: library/ctypes.rst:228 -#, fuzzy -msgid ":mod:`!ctypes` defines a number of primitive C compatible data types:" -msgstr "" -":mod:`ctypes` définit plusieurs types de donnée de base compatibles avec le " -"C :" - -#: library/ctypes.rst:372 -msgid "ctypes type" -msgstr "Types de *ctypes*" - -#: library/ctypes.rst:373 -msgid "C type" -msgstr "Type C" - -#: library/ctypes.rst:374 -msgid "Python type" -msgstr "Type Python" - -#: library/ctypes.rst:375 -msgid ":py:attr:`~_SimpleCData._type_`" -msgstr "" - -#: library/ctypes.rst:237 -msgid ":class:`c_bool`" -msgstr ":class:`c_bool`" - -#: library/ctypes.rst:238 -#, fuzzy -msgid ":c:expr:`_Bool`" -msgstr ":c:type:`_Bool`" - -#: library/ctypes.rst:363 -#, fuzzy -msgid ":py:class:`bool`" -msgstr ":class:`c_bool`" - -#: library/ctypes.rst:240 -msgid "``'?'``" -msgstr "" - -#: library/ctypes.rst:241 -msgid ":class:`c_char`" -msgstr ":class:`c_char`" - -#: library/ctypes.rst:250 -#, fuzzy -msgid ":c:expr:`char`" -msgstr ":c:type:`char`" - -#: library/ctypes.rst:243 -#, fuzzy -msgid "1-character :py:class:`bytes`" -msgstr "objet octet (*bytes*) de 1 caractère" - -#: library/ctypes.rst:244 -msgid "``'c'``" -msgstr "" - -#: library/ctypes.rst:245 -msgid ":class:`c_wchar`" -msgstr ":class:`c_wchar`" - -#: library/ctypes.rst:246 -#, fuzzy -msgid ":c:type:`wchar_t`" -msgstr ":c:type:`wchar_t`" - -#: library/ctypes.rst:247 -#, fuzzy -msgid "1-character :py:class:`str`" -msgstr "chaîne de caractères (*string*) de longueur 1" - -#: library/ctypes.rst:248 -msgid "``'u'``" -msgstr "" - -#: library/ctypes.rst:249 -msgid ":class:`c_byte`" -msgstr ":class:`c_byte`" - -#: library/ctypes.rst:255 library/ctypes.rst:263 library/ctypes.rst:271 -#: library/ctypes.rst:279 library/ctypes.rst:287 library/ctypes.rst:295 -#: library/ctypes.rst:303 library/ctypes.rst:311 library/ctypes.rst:319 -#: library/ctypes.rst:327 library/ctypes.rst:331 -#, fuzzy -msgid ":py:class:`int`" -msgstr ":class:`c_int`" - -#: library/ctypes.rst:252 -msgid "``'b'``" -msgstr "" - -#: library/ctypes.rst:253 -msgid ":class:`c_ubyte`" -msgstr ":class:`c_ubyte`" - -#: library/ctypes.rst:254 -#, fuzzy -msgid ":c:expr:`unsigned char`" -msgstr ":c:type:`unsigned char`" - -#: library/ctypes.rst:256 -msgid "``'B'``" -msgstr "" - -#: library/ctypes.rst:257 -msgid ":class:`c_short`" -msgstr ":class:`c_short`" - -#: library/ctypes.rst:258 -#, fuzzy -msgid ":c:expr:`short`" -msgstr ":c:type:`short`" - -#: library/ctypes.rst:260 -msgid "``'h'``" -msgstr "" - -#: library/ctypes.rst:261 -msgid ":class:`c_ushort`" -msgstr ":class:`c_ushort`" - -#: library/ctypes.rst:262 -#, fuzzy -msgid ":c:expr:`unsigned short`" -msgstr ":c:type:`unsigned short`" - -#: library/ctypes.rst:264 -msgid "``'H'``" -msgstr "" - -#: library/ctypes.rst:265 -msgid ":class:`c_int`" -msgstr ":class:`c_int`" - -#: library/ctypes.rst:266 -#, fuzzy -msgid ":c:expr:`int`" -msgstr ":c:type:`int`" - -#: library/ctypes.rst:268 -msgid "``'i'`` \\*" -msgstr "" - -#: library/ctypes.rst:269 -#, fuzzy -msgid ":class:`c_int8`" -msgstr ":class:`c_int`" - -#: library/ctypes.rst:270 -#, fuzzy -msgid ":c:type:`int8_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:276 library/ctypes.rst:284 library/ctypes.rst:296 -#: library/ctypes.rst:304 library/ctypes.rst:328 library/ctypes.rst:332 -msgid "\\*" -msgstr "" - -#: library/ctypes.rst:273 -#, fuzzy -msgid ":class:`c_int16`" -msgstr ":class:`c_int`" - -#: library/ctypes.rst:274 -#, fuzzy -msgid ":c:type:`int16_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:277 -#, fuzzy -msgid ":class:`c_int32`" -msgstr ":class:`c_int`" - -#: library/ctypes.rst:278 -#, fuzzy -msgid ":c:type:`int32_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:281 -#, fuzzy -msgid ":class:`c_int64`" -msgstr ":class:`c_int`" - -#: library/ctypes.rst:282 -#, fuzzy -msgid ":c:type:`int64_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:285 -msgid ":class:`c_uint`" -msgstr ":class:`c_uint`" - -#: library/ctypes.rst:286 -#, fuzzy -msgid ":c:expr:`unsigned int`" -msgstr ":c:type:`unsigned int`" - -#: library/ctypes.rst:288 -msgid "``'I'`` \\*" -msgstr "" - -#: library/ctypes.rst:289 -#, fuzzy -msgid ":class:`c_uint8`" -msgstr ":class:`c_uint`" - -#: library/ctypes.rst:290 -#, fuzzy -msgid ":c:type:`uint8_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:293 -#, fuzzy -msgid ":class:`c_uint16`" -msgstr ":class:`c_uint`" - -#: library/ctypes.rst:294 -#, fuzzy -msgid ":c:type:`uint16_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:297 -#, fuzzy -msgid ":class:`c_uint32`" -msgstr ":class:`c_uint`" - -#: library/ctypes.rst:298 -#, fuzzy -msgid ":c:type:`uint32_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:301 -#, fuzzy -msgid ":class:`c_uint64`" -msgstr ":class:`c_uint`" - -#: library/ctypes.rst:302 -#, fuzzy -msgid ":c:type:`uint64_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:305 -msgid ":class:`c_long`" -msgstr ":class:`c_long`" - -#: library/ctypes.rst:306 -#, fuzzy -msgid ":c:expr:`long`" -msgstr ":c:type:`long`" - -#: library/ctypes.rst:308 -msgid "``'l'``" -msgstr "" - -#: library/ctypes.rst:309 -msgid ":class:`c_ulong`" -msgstr ":class:`c_ulong`" - -#: library/ctypes.rst:310 -#, fuzzy -msgid ":c:expr:`unsigned long`" -msgstr ":c:type:`unsigned long`" - -#: library/ctypes.rst:312 -msgid "``'L'``" -msgstr "" - -#: library/ctypes.rst:313 -msgid ":class:`c_longlong`" -msgstr ":class:`c_longlong`" - -#: library/ctypes.rst:314 -#, fuzzy -msgid ":c:expr:`long long`" -msgstr ":c:type:`long`" - -#: library/ctypes.rst:316 -msgid "``'q'`` \\*" -msgstr "" - -#: library/ctypes.rst:317 -msgid ":class:`c_ulonglong`" -msgstr ":class:`c_ulonglong`" - -#: library/ctypes.rst:318 -#, fuzzy -msgid ":c:expr:`unsigned long long`" -msgstr ":c:type:`unsigned long`" - -#: library/ctypes.rst:320 -msgid "``'Q'`` \\*" -msgstr "" - -#: library/ctypes.rst:321 -msgid ":class:`c_size_t`" -msgstr ":class:`c_size_t`" - -#: library/ctypes.rst:322 -#, fuzzy -msgid ":c:type:`size_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:325 -msgid ":class:`c_ssize_t`" -msgstr ":class:`c_ssize_t`" - -#: library/ctypes.rst:326 -#, fuzzy -msgid ":c:type:`Py_ssize_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:329 -#, fuzzy -msgid ":class:`c_time_t`" -msgstr ":class:`c_size_t`" - -#: library/ctypes.rst:330 -#, fuzzy -msgid ":c:type:`time_t`" -msgstr ":c:type:`size_t`" - -#: library/ctypes.rst:333 -msgid ":class:`c_float`" -msgstr ":class:`c_float`" - -#: library/ctypes.rst:334 -#, fuzzy -msgid ":c:expr:`float`" -msgstr ":c:type:`float`" - -#: library/ctypes.rst:339 library/ctypes.rst:343 -#, fuzzy -msgid ":py:class:`float`" -msgstr ":class:`c_float`" - -#: library/ctypes.rst:336 -msgid "``'f'``" -msgstr "" - -#: library/ctypes.rst:337 -msgid ":class:`c_double`" -msgstr ":class:`c_double`" - -#: library/ctypes.rst:338 -#, fuzzy -msgid ":c:expr:`double`" -msgstr ":c:type:`double`" - -#: library/ctypes.rst:340 -msgid "``'d'``" -msgstr "" - -#: library/ctypes.rst:341 -msgid ":class:`c_longdouble`" -msgstr ":class:`c_longdouble`" - -#: library/ctypes.rst:342 -#, fuzzy -msgid ":c:expr:`long double`" -msgstr ":c:type:`long double`" - -#: library/ctypes.rst:344 -msgid "``'g'`` \\*" -msgstr "" - -#: library/ctypes.rst:345 -msgid ":class:`c_char_p`" -msgstr ":class:`c_char_p`" - -#: library/ctypes.rst:346 -#, fuzzy -msgid ":c:expr:`char *` (NUL terminated)" -msgstr ":c:type:`char *` (terminé par NUL)" - -#: library/ctypes.rst:347 -#, fuzzy -msgid ":py:class:`bytes` or ``None``" -msgstr "objet octet (*bytes*) ou ``None``" - -#: library/ctypes.rst:348 -msgid "``'z'``" -msgstr "" - -#: library/ctypes.rst:349 -msgid ":class:`c_wchar_p`" -msgstr ":class:`c_wchar_p`" - -#: library/ctypes.rst:350 -#, fuzzy -msgid ":c:expr:`wchar_t *` (NUL terminated)" -msgstr ":c:type:`wchar_t *` (terminé par NUL)" - -#: library/ctypes.rst:351 -#, fuzzy -msgid ":py:class:`str` or ``None``" -msgstr "chaîne de caractères (*string*) ou ``None``" - -#: library/ctypes.rst:352 -msgid "``'Z'``" -msgstr "" - -#: library/ctypes.rst:353 -msgid ":class:`c_void_p`" -msgstr ":class:`c_void_p`" - -#: library/ctypes.rst:354 -#, fuzzy -msgid ":c:expr:`void *`" -msgstr ":c:type:`void *`" - -#: library/ctypes.rst:355 -#, fuzzy -msgid ":py:class:`int` or ``None``" -msgstr "*int* ou ``None``" - -#: library/ctypes.rst:356 -msgid "``'P'``" -msgstr "" - -#: library/ctypes.rst:357 -#, fuzzy -msgid ":class:`py_object`" -msgstr ":class:`c_double`" - -#: library/ctypes.rst:358 -#, fuzzy -msgid ":c:expr:`PyObject *`" -msgstr ":c:type:`int`" - -#: library/ctypes.rst:359 -#, fuzzy -msgid ":py:class:`object`" -msgstr ":class:`c_int`" - -#: library/ctypes.rst:360 -msgid "``'O'``" -msgstr "" - -#: library/ctypes.rst:361 -msgid ":ref:`VARIANT_BOOL `" -msgstr "" - -#: library/ctypes.rst:362 -#, fuzzy -msgid ":c:expr:`short int`" -msgstr ":c:type:`short`" - -#: library/ctypes.rst:364 -msgid "``'v'``" -msgstr "" - -#: library/ctypes.rst:366 -msgid "" -"Additionally, if IEC 60559 compatible complex arithmetic (Annex G) is " -"supported in both C and ``libffi``, the following complex types are " -"available:" -msgstr "" - -#: library/ctypes.rst:376 -#, fuzzy -msgid ":class:`c_float_complex`" -msgstr ":class:`c_float`" - -#: library/ctypes.rst:377 -#, fuzzy -msgid ":c:expr:`float complex`" -msgstr ":c:type:`float`" - -#: library/ctypes.rst:382 library/ctypes.rst:386 -#, fuzzy -msgid ":py:class:`complex`" -msgstr ":class:`c_float`" - -#: library/ctypes.rst:379 -msgid "``'Zf'``" -msgstr "" - -#: library/ctypes.rst:380 -#, fuzzy -msgid ":class:`c_double_complex`" -msgstr ":class:`c_double`" - -#: library/ctypes.rst:381 -#, fuzzy -msgid ":c:expr:`double complex`" -msgstr ":c:type:`double`" - -#: library/ctypes.rst:383 -msgid "``'Zd'``" -msgstr "" - -#: library/ctypes.rst:384 -#, fuzzy -msgid ":class:`c_longdouble_complex`" -msgstr ":class:`c_longdouble`" - -#: library/ctypes.rst:385 -#, fuzzy -msgid ":c:expr:`long double complex`" -msgstr ":c:type:`long double`" - -#: library/ctypes.rst:387 -msgid "``'Zg'``" -msgstr "" - -#: library/ctypes.rst:389 -msgid "" -"The :py:attr:`~_SimpleCData._type_` types ``F``, ``D`` and ``G`` have been " -"replaced with ``Zf``, ``Zd`` and ``Zg``." -msgstr "" - -#: library/ctypes.rst:394 -msgid "" -"All these types can be created by calling them with an optional initializer " -"of the correct type and value::" -msgstr "" -"Il est possible de créer chacun de ces types en les appelant avec une valeur " -"d'initialisation du bon type et avec une valeur cohérente ::" - -#: library/ctypes.rst:405 -msgid "" -"The constructors for numeric types will convert input " -"using :py:meth:`~object.__bool__`, :py:meth:`~object.__index__` (for " -"``int``), :py:meth:`~object.__float__` or :py:meth:`~object.__complex__`. " -"This means :py:class:`~ctypes.c_bool` accepts any object with a truth value::" -msgstr "" - -#: library/ctypes.rst:415 -msgid "" -"Since these types are mutable, their value can also be changed afterwards::" -msgstr "" -"Ces types étant des mutables, leur valeur peut aussi être modifiée après " -"coup ::" - -#: library/ctypes.rst:427 -#, fuzzy -msgid "" -"Assigning a new value to instances of the pointer " -"types :class:`c_char_p`, :class:`c_wchar_p`, and :class:`c_void_p` changes " -"the *memory location* they point to, *not the contents* of the memory block " -"(of course not, because Python string objects are immutable)::" -msgstr "" -"Affecter une nouvelle valeur à une instance de type pointeur " -"— :class:`c_char_p`, :class:`c_wchar_p` et :class:`c_void_p` — change *la " -"zone mémoire* sur laquelle elle pointe, et non *le contenu* de ce bloc " -"mémoire (c'est logique parce que les objets octets sont immuables en " -"Python) ::" - -#: library/ctypes.rst:447 -msgid "" -"You should be careful, however, not to pass them to functions expecting " -"pointers to mutable memory. If you need mutable memory blocks, ctypes has " -"a :func:`create_string_buffer` function which creates these in various " -"ways. The current memory block contents can be accessed (or changed) with " -"the ``raw`` property; if you want to access it as NUL terminated string, use " -"the ``value`` property::" -msgstr "" -"Cependant, prenez garde à ne pas en passer à des fonctions qui prennent en " -"paramètre des pointeurs sur de la mémoire modifiable. S'il vous faut de la " -"mémoire modifiable, *ctypes* fournit la " -"fonction :func:`create_string_buffer` qui en crée de plusieurs façons. " -"L'attribut ``raw`` permet d'accéder à (ou de modifier) un bloc mémoire ; " -"l'attribut ``value`` permet d'y accéder comme à une chaîne de caractères " -"terminée par NUL ::" - -#: library/ctypes.rst:471 -#, fuzzy -msgid "" -"The :func:`create_string_buffer` function replaces the old :func:`!c_buffer` " -"function (which is still available as an alias). To create a mutable memory " -"block containing unicode characters of the C type :c:type:`wchar_t`, use " -"the :func:`create_unicode_buffer` function." -msgstr "" -"La fonction :func:`create_string_buffer` remplace les " -"fonctions :func:`c_buffer` (qui en reste un alias) et :func:`c_string` des " -"versions antérieures de *ctypes*. La fonction :func:`create_unicode_buffer` " -"crée un bloc mémoire modifiable contenant des caractères Unicode du type " -"C :c:type:`wchar_t`." - -#: library/ctypes.rst:480 -msgid "Calling functions, continued" -msgstr "Appel de fonctions, suite" - -#: library/ctypes.rst:482 -msgid "" -"Note that printf prints to the real standard output channel, *not* " -"to :data:`sys.stdout`, so these examples will only work at the console " -"prompt, not from within *IDLE* or *PythonWin*::" -msgstr "" -"*printf* utilise la vraie sortie standard, et non :data:`sys.stdout` ; les " -"exemples suivants ne fonctionnent donc que dans une invite de commande et " -"non depuis *IDLE* or *PythonWin* ::" - -#: library/ctypes.rst:502 -#, fuzzy -msgid "" -"As has been mentioned before, all Python types except integers, strings, and " -"bytes objects have to be wrapped in their corresponding :mod:`!ctypes` type, " -"so that they can be converted to the required C data type::" -msgstr "" -"Comme mentionné plus haut, tous les types Python (les entiers, les chaînes " -"de caractères et les objets octet exceptés) doivent être encapsulés dans " -"leur type :mod:`ctypes` correspondant pour pouvoir être convertis dans le " -"type C requis ::" - -#: library/ctypes.rst:514 -#, fuzzy -msgid "Calling variadic functions" -msgstr "Appel de fonctions" - -#: library/ctypes.rst:516 -msgid "" -"On a lot of platforms calling variadic functions through ctypes is exactly " -"the same as calling functions with a fixed number of parameters. On some " -"platforms, and in particular ARM64 for Apple Platforms, the calling " -"convention for variadic functions is different than that for regular " -"functions." -msgstr "" - -#: library/ctypes.rst:521 -msgid "" -"On those platforms it is required to specify the :attr:`~_CFuncPtr.argtypes` " -"attribute for the regular, non-variadic, function arguments:" -msgstr "" - -#: library/ctypes.rst:528 -msgid "" -"Because specifying the attribute does not inhibit portability it is advised " -"to always specify :attr:`~_CFuncPtr.argtypes` for all variadic functions." -msgstr "" - -#: library/ctypes.rst:535 -msgid "Calling functions with your own custom data types" -msgstr "Appel de fonctions avec des types de données personnalisés" - -#: library/ctypes.rst:537 -#, fuzzy -msgid "" -"You can also customize :mod:`!ctypes` argument conversion to allow instances " -"of your own classes be used as function arguments. :mod:`!ctypes` looks for " -"an :attr:`!_as_parameter_` attribute and uses this as the function argument. " -"The attribute must be an integer, string, bytes, a :mod:`!ctypes` instance, " -"or an object with an :attr:`!_as_parameter_` attribute::" -msgstr "" -"Il est possible de personnaliser la conversion des arguments effectuée " -"par :mod:`ctypes` pour permettre de passer en argument des instances de vos " -"propres classes. :mod:`ctypes` recherche un attribut :attr:`_as_parameter_` " -"et le prend comme argument à la fonction. Bien entendu, cet attribut doit " -"être un entier, une chaîne de caractères ou des octets ::" - -#: library/ctypes.rst:553 -#, fuzzy -msgid "" -"If you don't want to store the instance's data in the :attr:`!" -"_as_parameter_` instance variable, you could define a :class:`property` " -"which makes the attribute available on request." -msgstr "" -"Si vous ne souhaitez pas stocker les données de l'instance dans la " -"variable :attr:`_as_parameter_` de l'instance, vous pouvez toujours définir " -"une :class:`propriété ` qui rend cet attribut disponible sur " -"demande." - -#: library/ctypes.rst:561 -msgid "Specifying the required argument types (function prototypes)" -msgstr "Définition du type des arguments nécessaires (prototypes de fonction)" - -#: library/ctypes.rst:563 -#, fuzzy -msgid "" -"It is possible to specify the required argument types of functions exported " -"from DLLs by setting the :attr:`~_CFuncPtr.argtypes` attribute." -msgstr "" -"Il est possible de définir le type des arguments demandés par une fonction " -"exportée depuis une DLL en définissant son attribut :attr:`argtypes`." - -#: library/ctypes.rst:566 -#, fuzzy -msgid "" -":attr:`~_CFuncPtr.argtypes` must be a sequence of C data types (the :func:`!" -"printf` function is probably not a good example here, because it takes a " -"variable number and different types of parameters depending on the format " -"string, on the other hand this is quite handy to experiment with this " -"feature)::" -msgstr "" -":attr:`argtypes` doit être une séquence de types de données C (la fonction " -"``printf`` n'est probablement pas le meilleur exemple pour l'illustrer, car " -"elle accepte un nombre variable d'arguments de types eux aussi variables, " -"selon la chaîne de formatage ; cela dit, elle se révèle pratique pour tester " -"cette fonctionnalité) ::" - -#: library/ctypes.rst:577 -msgid "" -"Specifying a format protects against incompatible argument types (just as a " -"prototype for a C function), and tries to convert the arguments to valid " -"types::" -msgstr "" -"Définir un format empêche de passer des arguments de type incompatible " -"(comme le fait le prototype d'une fonction C) et tente de convertir les " -"arguments en des types valides ::" - -#: library/ctypes.rst:589 -#, fuzzy -msgid "" -"If you have defined your own classes which you pass to function calls, you " -"have to implement a :meth:`~_CData.from_param` class method for them to be " -"able to use them in the :attr:`~_CFuncPtr.argtypes` sequence. " -"The :meth:`~_CData.from_param` class method receives the Python object " -"passed to the function call, it should do a typecheck or whatever is needed " -"to make sure this object is acceptable, and then return the object itself, " -"its :attr:`!_as_parameter_` attribute, or whatever you want to pass as the C " -"function argument in this case. Again, the result should be an integer, " -"string, bytes, a :mod:`!ctypes` instance, or an object with an :attr:`!" -"_as_parameter_` attribute." -msgstr "" -"Pour appeler une fonction avec votre propre classe définie dans la " -"séquence :attr:`argtypes`, il est nécessaire d'implémenter une méthode de " -"classe :meth:`from_param`. La méthode de classe :meth:`from_param` récupère " -"l'objet Python passé à la fonction et doit faire une vérification de type ou " -"tout ce qui est nécessaire pour s'assurer que l'objet est valide, puis " -"renvoie l'objet lui-même, son attribut :attr:`_as_parameter_`, ou tout ce " -"que vous voulez passer comme argument fonction C dans ce cas. Encore une " -"fois, il convient que le résultat soit un entier, une chaîne, des octets, " -"une instance :mod:`ctypes` ou un objet avec un " -"attribut :attr:`_as_parameter_`." - -#: library/ctypes.rst:603 -msgid "Return types" -msgstr "Types de sortie" - -#: library/ctypes.rst:613 -#, fuzzy -msgid "" -"By default functions are assumed to return the C :c:expr:`int` type. Other " -"return types can be specified by setting the :attr:`~_CFuncPtr.restype` " -"attribute of the function object." -msgstr "" -"Le module suppose que toutes les fonctions renvoient par défaut " -"un :c:type:`int` C. Pour préciser un autre type de sortie, il faut définir " -"l'attribut :attr:`restype` de l'objet encapsulant la fonction." - -#: library/ctypes.rst:617 -msgid "" -"The C prototype of :c:func:`time` is ``time_t time(time_t *)``. " -"Because :c:type:`time_t` might be of a different type than the default " -"return type :c:expr:`int`, you should specify the :attr:`!restype` " -"attribute::" -msgstr "" - -#: library/ctypes.rst:623 -msgid "The argument types can be specified using :attr:`~_CFuncPtr.argtypes`::" -msgstr "" - -#: library/ctypes.rst:627 -#, fuzzy -msgid "" -"To call the function with a ``NULL`` pointer as first argument, use " -"``None``::" -msgstr "" -"Cet exemple appelle les deux fonctions avec un pointeur ``NULL`` (on utilise " -"``None`` pour passer un pointeur ``NULL``) ::" - -#: library/ctypes.rst:632 -#, fuzzy -msgid "" -"Here is a more advanced example, it uses the :func:`!strchr` function, which " -"expects a string pointer and a char, and returns a pointer to a string::" -msgstr "" -"Voici un exemple plus poussé. Celui-ci utilise la fonction ``strchr``, qui " -"prend en paramètres un pointeur vers une chaîne et un caractère. Elle " -"renvoie un pointeur sur une chaîne de caractères ::" - -#: library/ctypes.rst:645 -#, fuzzy -msgid "" -"If you want to avoid the :func:`ord(\"x\") ` calls above, you can set " -"the :attr:`~_CFuncPtr.argtypes` attribute, and the second argument will be " -"converted from a single character Python bytes object into a C char:" -msgstr "" -"Pour économiser l'appel ``ord(\"x\")``, il est possible de définir " -"l'attribut :attr:`argtypes` ; le second argument, un objet octet à un seul " -"caractère, sera automatiquement converti en un caractère C ::" - -#: library/ctypes.rst:664 -#, fuzzy -msgid "" -"You can also use a callable Python object (a function or a class for " -"example) as the :attr:`~_CFuncPtr.restype` attribute, if the foreign " -"function returns an integer. The callable will be called with the *integer* " -"the C function returns, and the result of this call will be used as the " -"result of your function call. This is useful to check for error return " -"values and automatically raise an exception::" -msgstr "" -"Si la fonction à interfacer renvoie un entier, l'attribut :attr:`restype` " -"peut aussi être un appelable (une fonction ou une classe par exemple). Dans " -"ce cas, l'appelable est appelé avec l'entier renvoyé par la fonction et le " -"résultat de cet appel sera le résultat final de l'appel à la fonction. C'est " -"pratique pour vérifier les codes d'erreurs des valeurs de retour et lever " -"automatiquement des exceptions ::" - -#: library/ctypes.rst:687 -msgid "" -"``WinError`` is a function which will call Windows ``FormatMessage()`` api " -"to get the string representation of an error code, and *returns* an " -"exception. ``WinError`` takes an optional error code parameter, if no one is " -"used, it calls :func:`GetLastError` to retrieve it." -msgstr "" -"``WinError`` appelle l'API Windows ``FormatMessage()`` pour obtenir une " -"représentation de la chaîne de caractères qui correspond au code d'erreur, " -"et *renvoie* une exception. ``WinError`` prend en paramètre — optionnel — le " -"code d'erreur. Si celui-ci n'est pas passé, elle " -"appelle :func:`GetLastError` pour le récupérer." - -#: library/ctypes.rst:692 -#, fuzzy -msgid "" -"Please note that a much more powerful error checking mechanism is available " -"through the :attr:`~_CFuncPtr.errcheck` attribute; see the reference manual " -"for details." -msgstr "" -"Notez cependant que l'attribut :attr:`errcheck` permet de vérifier bien plus " -"efficacement les erreurs ; référez-vous au manuel de référence pour plus de " -"précisions." - -#: library/ctypes.rst:700 -msgid "Passing pointers (or: passing parameters by reference)" -msgstr "Passage de pointeurs (passage de paramètres par référence)" - -#: library/ctypes.rst:702 -msgid "" -"Sometimes a C api function expects a *pointer* to a data type as parameter, " -"probably to write into the corresponding location, or if the data is too " -"large to be passed by value. This is also known as *passing parameters by " -"reference*." -msgstr "" -"Il arrive qu'une fonction C du code à interfacer requière un *pointeur* vers " -"un certain type de donnée en paramètre, typiquement pour écrire à l'endroit " -"correspondant ou si la donnée est trop grande pour pouvoir être passée par " -"valeur. Ce mécanisme est appelé *passage de paramètres par référence*." - -#: library/ctypes.rst:706 -#, fuzzy -msgid "" -":mod:`!ctypes` exports the :func:`byref` function which is used to pass " -"parameters by reference. The same effect can be achieved with " -"the :func:`pointer` function, although :func:`pointer` does a lot more work " -"since it constructs a real pointer object, so it is faster to " -"use :func:`byref` if you don't need the pointer object in Python itself::" -msgstr "" -":mod:`ctypes` contient la fonction :func:`byref` qui permet de passer des " -"paramètres par référence. La fonction :func:`pointer` a la même utilité, " -"mais fait plus de travail car :func:`pointer` construit un véritable objet " -"pointeur. Ainsi, si vous n'avez pas besoin de cet objet dans votre code " -"Python, utiliser :func:`byref` est plus performant ::" - -#: library/ctypes.rst:728 -msgid "Structures and unions" -msgstr "Structures et unions" - -#: library/ctypes.rst:730 -#, fuzzy -msgid "" -"Structures and unions must derive from the :class:`Structure` " -"and :class:`Union` base classes which are defined in the :mod:`!ctypes` " -"module. Each subclass must define a :attr:`~Structure._fields_` " -"attribute. :attr:`!_fields_` must be a list of *2-tuples*, containing a " -"*field name* and a *field type*." -msgstr "" -"Les structures et les unions doivent hériter des classes de " -"base :class:`Structure` et :class:`Union` définies dans le " -"module :mod:`ctypes`. Chaque sous-classe doit définir un " -"attribut :attr:`_fields_`. :attr:`_fields_` doit être une liste de *paires*, " -"contenant un *nom de champ* et un *type de champ*." - -#: library/ctypes.rst:735 -#, fuzzy -msgid "" -"The field type must be a :mod:`!ctypes` type like :class:`c_int`, or any " -"other derived :mod:`!ctypes` type: structure, union, array, pointer." -msgstr "" -"Le type de champ doit être un type :mod:`ctypes` comme :class:`c_int` ou un " -"type :mod:`ctypes` dérivé : structure, union, tableau ou pointeur." - -#: library/ctypes.rst:738 -msgid "" -"Here is a simple example of a POINT structure, which contains two integers " -"named *x* and *y*, and also shows how to initialize a structure in the " -"constructor::" -msgstr "" -"Voici un exemple simple : une structure POINT qui contient deux entiers *x* " -"et *y* et qui montre également comment instancier une structure avec le " -"constructeur ::" - -#: library/ctypes.rst:758 -msgid "" -"You can, however, build much more complicated structures. A structure can " -"itself contain other structures by using a structure as a field type." -msgstr "" -"Il est bien entendu possible de créer des structures plus complexes. Une " -"structure peut elle-même contenir d'autres structures en prenant une " -"structure comme type de champ." - -#: library/ctypes.rst:761 -msgid "" -"Here is a RECT structure which contains two POINTs named *upperleft* and " -"*lowerright*::" -msgstr "" -"Voici une structure RECT qui contient deux POINTs *upperleft* et " -"*lowerright* ::" - -#: library/ctypes.rst:775 -msgid "" -"Nested structures can also be initialized in the constructor in several " -"ways::" -msgstr "" -"Une structure encapsulée peut être instanciée par un constructeur de " -"plusieurs façons ::" - -#: library/ctypes.rst:780 -#, fuzzy -msgid "" -"Field :term:`descriptor`\\s can be retrieved from the *class*, they are " -"useful for debugging because they can provide useful information. " -"See :class:`CField`::" -msgstr "" -"Il est possible de récupérer les :term:`descripteurs ` des " -"champs depuis la *classe*. Ils sont importants pour déboguer car ils " -"contiennent des informations utiles ::" - -#: library/ctypes.rst:795 -#, fuzzy -msgid "" -":mod:`!ctypes` does not support passing unions or structures with bit-fields " -"to functions by value. While this may work on 32-bit x86, it's not " -"guaranteed by the library to work in the general case. Unions and " -"structures with bit-fields should always be passed to functions by pointer." -msgstr "" -":mod:`ctypes` ne prend pas en charge le passage par valeur des unions ou des " -"structures avec des champs de bits. Bien que cela puisse fonctionner sur des " -"architectures 32 bits avec un jeu d'instructions x86, ce n'est pas garanti " -"par la bibliothèque en général. Les unions et les structures avec des champs " -"de bits doivent toujours être passées par pointeur." - -#: library/ctypes.rst:801 -#, fuzzy -msgid "Structure/union layout, alignment and byte order" -msgstr "Alignement et boutisme des structures et des unions" - -#: library/ctypes.rst:803 -msgid "" -"By default, Structure and Union fields are laid out in the same way the C " -"compiler does it. It is possible to override this behavior entirely by " -"specifying a :attr:`~Structure._layout_` class attribute in the subclass " -"definition; see the attribute documentation for details." -msgstr "" - -#: library/ctypes.rst:808 -msgid "" -"It is possible to specify the maximum alignment for the fields and/or for " -"the structure itself by setting the class " -"attributes :attr:`~Structure._pack_` and/or :attr:`~Structure._align_`, " -"respectively. See the attribute documentation for details." -msgstr "" - -#: library/ctypes.rst:813 -#, fuzzy -msgid "" -":mod:`!ctypes` uses the native byte order for Structures and Unions. To " -"build structures with non-native byte order, you can use one of " -"the :class:`BigEndianStructure`, :class:`LittleEndianStructure`, :class:`BigEndianUnion`, " -"and :class:`LittleEndianUnion` base classes. These classes cannot contain " -"pointer fields." -msgstr "" -":mod:`ctypes` suit le boutisme natif pour les *Structure* et les *Union*. " -"Pour construire des structures avec un boutisme différent, utilisez les " -"classes de " -"base :class:`BigEndianStructure`, :class:`LittleEndianStructure`, :class:`BigEndianUnion` " -"ou :class:`LittleEndianUnion`. Ces classes ne peuvent pas avoir de champ " -"pointeur." - -#: library/ctypes.rst:823 -msgid "Bit fields in structures and unions" -msgstr "Champs de bits dans les structures et les unions" - -#: library/ctypes.rst:825 -#, fuzzy -msgid "" -"It is possible to create structures and unions containing bit fields. Bit " -"fields are only possible for integer fields, the bit width is specified as " -"the third item in the :attr:`~Structure._fields_` tuples::" -msgstr "" -"Il est possible de créer des structures et des unions contenant des champs " -"de bits. Seuls les entiers peuvent être des champs de bits, le nombre de " -"bits est défini dans le troisième champ du *n*-uplet :attr:`_fields_` ::" - -#: library/ctypes.rst:838 -msgid "" -"It is important to note that bit field allocation and layout in memory are " -"not defined as a C standard; their implementation is compiler-specific. By " -"default, Python will attempt to match the behavior of a \"native\" compiler " -"for the current platform. See the :attr:`~Structure._layout_` attribute for " -"details on the default behavior and how to change it." -msgstr "" - -#: library/ctypes.rst:849 -msgid "Arrays" -msgstr "Tableaux" - -#: library/ctypes.rst:851 -msgid "" -"Arrays are sequences, containing a fixed number of instances of the same " -"type." -msgstr "" -"Les tableaux sont des séquences qui contiennent un nombre fixe d'instances " -"du même type." - -#: library/ctypes.rst:853 -msgid "" -"The recommended way to create array types is by multiplying a data type with " -"a positive integer::" -msgstr "" -"La meilleure façon de créer des tableaux consiste à multiplier le type de " -"donnée par un entier positif ::" - -#: library/ctypes.rst:858 -msgid "" -"Here is an example of a somewhat artificial data type, a structure " -"containing 4 POINTs among other stuff::" -msgstr "" -"Voici un exemple — un peu artificiel — d'une structure contenant, entre " -"autres, 4 POINTs ::" - -#: library/ctypes.rst:874 -msgid "Instances are created in the usual way, by calling the class::" -msgstr "Comme d'habitude, on crée les instances en appelant la classe ::" - -#: library/ctypes.rst:880 -msgid "" -"The above code print a series of ``0 0`` lines, because the array contents " -"is initialized to zeros." -msgstr "" -"Le code précédent affiche une suite de ``0 0`` car le contenu du tableau est " -"initialisé avec des zéros." - -#: library/ctypes.rst:883 -msgid "Initializers of the correct type can also be specified::" -msgstr "Des valeurs d'initialisation du bon type peuvent être passées ::" - -#: library/ctypes.rst:899 -msgid "Pointers" -msgstr "Pointeurs" - -#: library/ctypes.rst:901 -#, fuzzy -msgid "" -"Pointer instances are created by calling the :func:`pointer` function on " -"a :mod:`!ctypes` type::" -msgstr "" -"On crée une instance de pointeur en appelant la fonction :func:`pointer` sur " -"un type :mod:`ctypes` ::" - -#: library/ctypes.rst:909 -msgid "" -"Pointer instances have a :attr:`~_Pointer.contents` attribute which returns " -"the object to which the pointer points, the ``i`` object above::" -msgstr "" -"Les instances de pointeurs ont un attribut :attr:`~_Pointer.contents` qui " -"renvoie l'objet pointé (l'objet ``i`` ci-dessus) ::" - -#: library/ctypes.rst:916 -#, fuzzy -msgid "" -"Note that :mod:`!ctypes` does not have OOR (original object return), it " -"constructs a new, equivalent object each time you retrieve an attribute::" -msgstr "" -"Attention, :mod:`ctypes` ne fait pas de ROI (retour de l'objet initial). Il " -"crée un nouvel objet à chaque fois qu'on accède à un attribut ::" - -#: library/ctypes.rst:925 -msgid "" -"Assigning another :class:`c_int` instance to the pointer's contents " -"attribute would cause the pointer to point to the memory location where this " -"is stored::" -msgstr "" -"Affecter une autre instance de :class:`c_int` à l'attribut *contents* du " -"pointeur fait pointer le pointeur vers l'adresse mémoire de cette nouvelle " -"instance ::" - -#: library/ctypes.rst:937 -msgid "Pointer instances can also be indexed with integers::" -msgstr "Il est possible d'indexer les pointeurs par des entiers ::" - -#: library/ctypes.rst:943 -msgid "Assigning to an integer index changes the pointed to value::" -msgstr "Affecter à travers un indice change la valeur pointée ::" - -#: library/ctypes.rst:952 -msgid "" -"It is also possible to use indexes different from 0, but you must know what " -"you're doing, just as in C: You can access or change arbitrary memory " -"locations. Generally you only use this feature if you receive a pointer from " -"a C function, and you *know* that the pointer actually points to an array " -"instead of a single item." -msgstr "" -"Si vous êtes sûr de vous, vous pouvez utiliser d'autres valeurs que 0, comme " -"en C : il est ainsi possible de modifier une zone mémoire de votre choix. De " -"manière générale cette fonctionnalité ne s'utilise que sur un pointeur " -"renvoyé par une fonction C, pointeur que vous *savez* pointer vers un " -"tableau et non sur un seul élément." - -#: library/ctypes.rst:958 -#, fuzzy -msgid "" -"Behind the scenes, the :func:`pointer` function does more than simply create " -"pointer instances, it has to create pointer *types* first. This is done with " -"the :func:`POINTER` function, which accepts any :mod:`!ctypes` type, and " -"returns a new type::" -msgstr "" -"Sous le capot, la fonction :func:`pointer` fait plus que simplement créer " -"une instance de pointeur ; elle doit d'abord créer un type « pointeur " -"sur… ». Cela s'effectue avec la fonction :func:`POINTER`, qui prend en " -"paramètre n'importe quel type :mod:`ctypes` et renvoie un nouveau type ::" - -#: library/ctypes.rst:974 -msgid "" -"Calling the pointer type without an argument creates a ``NULL`` pointer. " -"``NULL`` pointers have a ``False`` boolean value::" -msgstr "" -"Appeler le pointeur sur type sans arguments crée un pointeur ``NULL``. Les " -"pointeurs ``NULL`` s'évaluent à ``False`` ::" - -#: library/ctypes.rst:982 -#, fuzzy -msgid "" -":mod:`!ctypes` checks for ``NULL`` when dereferencing pointers (but " -"dereferencing invalid non-\\ ``NULL`` pointers would crash Python)::" -msgstr "" -":mod:`ctypes` vérifie que le pointeur n'est pas ``NULL`` quand il en " -"déréférence un (mais déréférencer des pointeurs non ``NULL`` invalides fait " -"planter Python) ::" - -#: library/ctypes.rst:1000 -msgid "Thread safety without the GIL" -msgstr "" - -#: library/ctypes.rst:1002 -msgid "" -"From Python 3.13 onward, the :term:`GIL` can be disabled on the :term:`free-" -"threaded build`. In ctypes, reads and writes to a single object concurrently " -"is safe, but not across multiple objects:" -msgstr "" - -#: library/ctypes.rst:1011 -msgid "" -"In the above, it's only safe for one object to read and write to the address " -"at once if the GIL is disabled. So, ``pointer_a`` can be shared and written " -"to across multiple threads, but only if ``pointer_b`` is not also attempting " -"to do the same. If this is an issue, consider using " -"a :class:`threading.Lock` to synchronize access to memory:" -msgstr "" - -#: library/ctypes.rst:1031 -msgid "Type conversions" -msgstr "Conversions de type" - -#: library/ctypes.rst:1033 -#, fuzzy -msgid "" -"Usually, ctypes does strict type checking. This means, if you have " -"``POINTER(c_int)`` in the :attr:`~_CFuncPtr.argtypes` list of a function or " -"as the type of a member field in a structure definition, only instances of " -"exactly the same type are accepted. There are some exceptions to this rule, " -"where ctypes accepts other objects. For example, you can pass compatible " -"array instances instead of pointer types. So, for ``POINTER(c_int)``, " -"ctypes accepts an array of c_int::" -msgstr "" -"En général, *ctypes* respecte un typage fort. Cela signifie que si un " -"``POINTER(c_int)`` est présent dans la liste des :attr:`argtypes` d'une " -"fonction ou est le type d'un attribut membre dans une définition de " -"structure, seules des instances de ce type seront valides. Cette règle " -"comporte quelques exceptions pour lesquelles *ctypes* accepte d'autres " -"objets. Par exemple il est possible de passer des instances de tableau à " -"place de pointeurs, s'ils sont compatibles. Dans le cas de " -"``POINTER(c_int)``, *ctypes* accepte des tableaux de *c_int* ::" - -#: library/ctypes.rst:1054 -#, fuzzy -msgid "" -"In addition, if a function argument is explicitly declared to be a pointer " -"type (such as ``POINTER(c_int)``) in :attr:`~_CFuncPtr.argtypes`, an object " -"of the pointed type (``c_int`` in this case) can be passed to the function. " -"ctypes will apply the required :func:`byref` conversion in this case " -"automatically." -msgstr "" -"De plus, si un paramètre de fonction est déclaré explicitement de type " -"pointeur (comme ``POINTER(c_int)``) dans les :attr:`argtypes`, il est aussi " -"possible de passer un objet du type pointé — ici, ``c_int`` — à la fonction. " -"*ctypes* appelle alors automatiquement la fonction de " -"conversion :func:`byref`." - -#: library/ctypes.rst:1059 -msgid "To set a POINTER type field to ``NULL``, you can assign ``None``::" -msgstr "" -"Pour mettre un champ de type *POINTER* à ``NULL``, il faut lui affecter " -"``None`` ::" - -#: library/ctypes.rst:1066 -#, fuzzy -msgid "" -"Sometimes you have instances of incompatible types. In C, you can cast one " -"type into another type. :mod:`!ctypes` provides a :func:`cast` function " -"which can be used in the same way. The ``Bar`` structure defined above " -"accepts ``POINTER(c_int)`` pointers or :class:`c_int` arrays for its " -"``values`` field, but not instances of other types::" -msgstr "" -"Parfois il faut gérer des incompatibilités entre les types. En C, il est " -"possible de convertir un type en un autre. :mod:`ctypes` fournit la " -"fonction :func:`cast` qui permet la même chose. La structure ``Bar`` ci-" -"dessus accepte des pointeurs ``POINTER(c_int)`` ou des tableaux " -"de :class:`c_int` comme valeur pour le champ ``values``, mais pas des " -"instances d'autres types ::" - -#: library/ctypes.rst:1078 -msgid "For these cases, the :func:`cast` function is handy." -msgstr "C'est là que la fonction :func:`cast` intervient." - -#: library/ctypes.rst:1080 -msgid "" -"The :func:`cast` function can be used to cast a ctypes instance into a " -"pointer to a different ctypes data type. :func:`cast` takes two parameters, " -"a ctypes object that is or can be converted to a pointer of some kind, and a " -"ctypes pointer type. It returns an instance of the second argument, which " -"references the same memory block as the first argument::" -msgstr "" -"La fonction :func:`cast` permet de convertir une instance de *ctypes* en un " -"pointeur vers un type de données *ctypes* différent. :func:`cast` prend deux " -"paramètres : un objet *ctypes* qui est, ou qui peut être converti en, un " -"certain pointeur et un type pointeur de *ctypes*. Elle renvoie une instance " -"du second argument, qui pointe sur le même bloc mémoire que le premier " -"argument ::" - -#: library/ctypes.rst:1091 -msgid "" -"So, :func:`cast` can be used to assign to the ``values`` field of ``Bar`` " -"the structure::" -msgstr "" -"Ainsi, la fonction :func:`cast` permet de remplir le champ ``values`` de la " -"structure ``Bar`` ::" - -#: library/ctypes.rst:1104 -msgid "Incomplete Types" -msgstr "Types incomplets" - -#: library/ctypes.rst:1106 -msgid "" -"*Incomplete Types* are structures, unions or arrays whose members are not " -"yet specified. In C, they are specified by forward declarations, which are " -"defined later::" -msgstr "" -"Un *type incomplet* est une structure, une union ou un tableau dont les " -"membres ne sont pas encore définis. C'est l'équivalent d'une déclaration " -"avancée en C, où la définition est fournie plus tard ::" - -#: library/ctypes.rst:1117 -msgid "" -"The straightforward translation into ctypes code would be this, but it does " -"not work::" -msgstr "" -"Une traduction naïve, mais invalide, en code *ctypes* ressemblerait à ça ::" - -#: library/ctypes.rst:1130 -#, fuzzy -msgid "" -"because the new ``class cell`` is not available in the class statement " -"itself. In :mod:`!ctypes`, we can define the ``cell`` class and set " -"the :attr:`~Structure._fields_` attribute later, after the class statement::" -msgstr "" -"Cela ne fonctionne pas parce que la nouvelle ``class cell`` n'est pas " -"accessible dans la définition de la classe elle-même. Dans le " -"module :mod:`ctypes`, on définit la classe ``cell`` et on définira " -"les :attr:`_fields_` plus tard, après avoir défini la classe ::" - -#: library/ctypes.rst:1142 -msgid "" -"Let's try it. We create two instances of ``cell``, and let them point to " -"each other, and finally follow the pointer chain a few times::" -msgstr "" -"Essayons. Nous créons deux instances de ``cell``, les faisons pointer l'une " -"sur l'autre et enfin nous suivons quelques maillons de la chaîne de " -"pointeurs ::" - -#: library/ctypes.rst:1163 -msgid "Callback functions" -msgstr "Fonctions de rappel" - -#: library/ctypes.rst:1165 -#, fuzzy -msgid "" -":mod:`!ctypes` allows creating C callable function pointers from Python " -"callables. These are sometimes called *callback functions*." -msgstr "" -":mod:`ctypes` permet de créer des pointeurs de fonctions appelables par des " -"appelables Python. On les appelle parfois *fonctions de rappel*." - -#: library/ctypes.rst:1168 -msgid "" -"First, you must create a class for the callback function. The class knows " -"the calling convention, the return type, and the number and types of " -"arguments this function will receive." -msgstr "" -"Tout d'abord, il faut créer une classe pour la fonction de rappel. La classe " -"connaît la convention d'appel, le type de retour ainsi que le nombre et le " -"type de paramètres que la fonction accepte." - -#: library/ctypes.rst:1172 -msgid "" -"The :func:`CFUNCTYPE` factory function creates types for callback functions " -"using the ``cdecl`` calling convention. On Windows, the :func:`WINFUNCTYPE` " -"factory function creates types for callback functions using the ``stdcall`` " -"calling convention." -msgstr "" -"La fabrique :func:`CFUNCTYPE` crée un type pour les fonctions de rappel qui " -"suivent la convention d'appel ``cdecl``. En Windows, c'est la " -"fabrique :func:`WINFUNCTYPE` qui crée un type pour les fonctions de rappel " -"qui suivent la convention d'appel ``stdcall``." - -#: library/ctypes.rst:1177 -msgid "" -"Both of these factory functions are called with the result type as first " -"argument, and the callback functions expected argument types as the " -"remaining arguments." -msgstr "" -"Le premier paramètre de ces deux fonctions est le type de retour, et les " -"suivants sont les types des arguments qu'attend la fonction de rappel." - -#: library/ctypes.rst:1181 -#, fuzzy -msgid "" -"I will present an example here which uses the standard C library's :c:func:`!" -"qsort` function, that is used to sort items with the help of a callback " -"function. :c:func:`!qsort` will be used to sort an array of integers::" -msgstr "" -"Intéressons-nous à un exemple tiré de la bibliothèque standard C : la " -"fonction :c:func:`qsort`. Celle-ci permet de classer des éléments par " -"l'emploi d'une fonction de rappel. Nous allons utiliser :c:func:`qsort` pour " -"ordonner un tableau d'entiers ::" - -#: library/ctypes.rst:1191 -#, fuzzy -msgid "" -":func:`!qsort` must be called with a pointer to the data to sort, the number " -"of items in the data array, the size of one item, and a pointer to the " -"comparison function, the callback. The callback will then be called with two " -"pointers to items, and it must return a negative integer if the first item " -"is smaller than the second, a zero if they are equal, and a positive integer " -"otherwise." -msgstr "" -":func:`qsort` doit être appelée avec un pointeur vers la donnée à ordonner, " -"le nombre d'éléments dans la donnée, la taille d'un élément et un pointeur " -"vers le comparateur, c.-à-d. la fonction de rappel. Cette fonction sera " -"invoquée avec deux pointeurs sur deux éléments et doit renvoyer un entier " -"négatif si le premier élément est plus petit que le second, zéro s'ils sont " -"égaux et un entier positif sinon." - -#: library/ctypes.rst:1197 -msgid "" -"So our callback function receives pointers to integers, and must return an " -"integer. First we create the ``type`` for the callback function::" -msgstr "" -"Ainsi notre fonction de rappel reçoit des pointeurs vers des entiers et doit " -"renvoyer un entier. Créons d'abord le ``type`` pour la fonction de rappel ::" - -#: library/ctypes.rst:1203 -msgid "" -"To get started, here is a simple callback that shows the values it gets " -"passed::" -msgstr "" -"Pour commencer, voici une fonction de rappel simple qui affiche les valeurs " -"qu'on lui passe ::" - -#: library/ctypes.rst:1213 -msgid "The result::" -msgstr "Résultat ::" - -#: library/ctypes.rst:1223 -msgid "Now we can actually compare the two items and return a useful result::" -msgstr "" -"À présent, comparons pour de vrai les deux entiers et renvoyons un résultat " -"utile ::" - -#: library/ctypes.rst:1238 -msgid "As we can easily check, our array is sorted now::" -msgstr "" -"Et comme il est facile de le voir, notre tableau est désormais classé ::" - -#: library/ctypes.rst:1245 -msgid "" -"The function factories can be used as decorator factories, so we may as well " -"write::" -msgstr "" -"Ces fonctions peuvent aussi être utilisées comme des décorateurs ; il est " -"donc possible d'écrire ::" - -#: library/ctypes.rst:1263 -#, fuzzy -msgid "" -"Make sure you keep references to :func:`CFUNCTYPE` objects as long as they " -"are used from C code. :mod:`!ctypes` doesn't, and if you don't, they may be " -"garbage collected, crashing your program when a callback is made." -msgstr "" -"Prenez garde à bien conserver une référence à un objet :func:`CFUNCTYPE` " -"tant que celui-ci est utilisé par le code C. :mod:`ctypes` ne le fait pas " -"tout seul et, si vous ne le faites pas, le ramasse-miette pourrait les " -"libérer, ce qui fera planter votre programme quand un appel sera fait." - -#: library/ctypes.rst:1267 -msgid "" -"Also, note that if the callback function is called in a thread created " -"outside of Python's control (e.g. by the foreign code that calls the " -"callback), ctypes creates a new dummy Python thread on every invocation. " -"This behavior is correct for most purposes, but it means that values stored " -"with :class:`threading.local` will *not* survive across different callbacks, " -"even when those calls are made from the same C thread." -msgstr "" -"Notez aussi que si la fonction de rappel est appelée dans un fil d'exécution " -"créé hors de Python (p. ex. par du code externe qui appelle la fonction de " -"rappel), *ctypes* crée un nouveau fil Python « creux » à chaque fois. Ce " -"comportement est acceptable pour la plupart des cas d'utilisation, mais cela " -"implique que les valeurs stockées avec :class:`threading.local` ne seront " -"*pas* persistantes d'un appel à l'autre, même si les appels proviennent du " -"même fil d'exécution C." - -#: library/ctypes.rst:1277 -msgid "Accessing values exported from dlls" -msgstr "Accès aux variables exportées depuis une DLL" - -#: library/ctypes.rst:1279 -#, fuzzy -msgid "" -"Some shared libraries not only export functions, they also export variables. " -"An example in the Python library itself is the :c:data:`Py_Version`, Python " -"runtime version number encoded in a single constant integer." -msgstr "" -"Certaines bibliothèques ne se contentent pas d'exporter des fonctions, elles " -"exportent aussi des variables. Par exemple, la bibliothèque Python " -"exporte :c:data:`Py_OptimizeFlag`, un entier valant 0, 1, ou 2 selon que " -"l'option :option:`-O` ou :option:`-OO` soit donnée au démarrage." - -#: library/ctypes.rst:1283 -#, fuzzy -msgid "" -":mod:`!ctypes` can access values like this with the :meth:`~_CData.in_dll` " -"class methods of the type. *pythonapi* is a predefined symbol giving access " -"to the Python C api::" -msgstr "" -":mod:`ctypes` peut accéder à ce type de valeurs avec les méthodes de " -"classe :meth:`in_dll` du type considéré. *pythonapi* est un symbole " -"prédéfini qui donne accès à l'API C Python ::" - -#: library/ctypes.rst:1291 -msgid "" -"An extended example which also demonstrates the use of pointers accesses " -"the :c:data:`PyImport_FrozenModules` pointer exported by Python." -msgstr "" -"Le pointeur :c:data:`PyImport_FrozenModules` exposé par Python est un autre " -"exemple complet de l'utilisation de pointeurs." - -#: library/ctypes.rst:1294 -msgid "Quoting the docs for that value:" -msgstr "Citons la documentation :" - -#: library/ctypes.rst:1296 -#, fuzzy -msgid "" -"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 " -"frozen modules." -msgstr "" -"Ce pointeur est initialisé de manière à pointer sur un tableau d'entrées " -"de :c:type:`struct _frozen`, dont tous les membres de la dernière valent " -"``NULL`` ou zéro. Quand un module figé est importé, il est cherché dans ce " -"tableau. Du code tiers peut jouer avec pour construire dynamiquement une " -"collection de module figés." - -#: library/ctypes.rst:1301 -#, fuzzy -msgid "" -"So manipulating this pointer could even prove useful. To restrict the " -"example size, we show only how this table can be read with :mod:`!ctypes`::" -msgstr "" -"Donc manipuler ce pointeur peut même se révéler utile. Pour limiter la " -"taille de l'exemple, nous nous bornons à montrer comment lire ce tableau " -"avec :mod:`ctypes` ::" - -#: library/ctypes.rst:1315 -#, fuzzy -msgid "" -"We have defined the :c:struct:`_frozen` data type, so we can get the pointer " -"to the table::" -msgstr "" -"Le type de donnée :c:type:`struct _frozen` ayant été défini, nous pouvons " -"récupérer le pointeur vers le tableau ::" - -#: library/ctypes.rst:1322 -msgid "" -"Since ``table`` is a ``pointer`` to the array of ``struct_frozen`` records, " -"we can iterate over it, but we just have to make sure that our loop " -"terminates, because pointers have no size. Sooner or later it would probably " -"crash with an access violation or whatever, so it's better to break out of " -"the loop when we hit the ``NULL`` entry::" -msgstr "" -"Puisque ``table`` est un ``pointer`` vers un tableau d'entrées de " -"``struct_frozen``, il est possible d'itérer dessus, mais il faut être " -"certain que la boucle se termine, car les pointeurs n'ont pas de taille. Tôt " -"ou tard, il planterait probablement avec une erreur de segmentation ou " -"autre, donc mieux vaut sortir de la boucle quand on lit l'entrée ``NULL`` ::" - -#: library/ctypes.rst:1338 -msgid "" -"The fact that standard Python has a frozen module and a frozen package " -"(indicated by the negative ``size`` member) is not well known, it is only " -"used for testing. Try it out with ``import __hello__`` for example." -msgstr "" -"Le fait que le standard Python possède un module et un paquet figés " -"(indiqués par la valeur négative du membre *size*) est peu connu, cela ne " -"sert qu'aux tests. Essayez avec ``import __hello__`` par exemple." - -#: library/ctypes.rst:1346 -msgid "Surprises" -msgstr "Pièges" - -#: library/ctypes.rst:1348 -#, fuzzy -msgid "" -"There are some edges in :mod:`!ctypes` where you might expect something " -"other than what actually happens." -msgstr "" -"Il y a quelques cas tordus dans :mod:`ctypes` où on peut s'attendre à un " -"résultat différent de la réalité." - -#: library/ctypes.rst:1351 -msgid "Consider the following example::" -msgstr "Examinons l'exemple suivant ::" - -#: library/ctypes.rst:1371 -msgid "" -"Hm. We certainly expected the last statement to print ``3 4 1 2``. What " -"happened? Here are the steps of the ``rc.a, rc.b = rc.b, rc.a`` line above::" -msgstr "" -"Diantre. On s'attendait certainement à ce que le dernier résultat affiche " -"``3 4 1 2``. Que s'est-il passé ? Les étapes de la ligne ``rc.a, rc.b = " -"rc.b, rc.a`` ci-dessus sont les suivantes ::" - -#: library/ctypes.rst:1379 -msgid "" -"Note that ``temp0`` and ``temp1`` are objects still using the internal " -"buffer of the ``rc`` object above. So executing ``rc.a = temp0`` copies the " -"buffer contents of ``temp0`` into ``rc`` 's buffer. This, in turn, changes " -"the contents of ``temp1``. So, the last assignment ``rc.b = temp1``, doesn't " -"have the expected effect." -msgstr "" -"Les objets ``temp0`` et ``temp1`` utilisent encore le tampon interne de " -"l'objet ``rc`` ci-dessus. Donc exécuter ``rc.a = temp0`` copie le contenu du " -"tampon de ``temp0`` dans celui de ``rc``. Ce qui, par ricochet, modifie le " -"contenu de ``temp1``. Et donc, la dernière affectation, ``rc.b = temp1``, " -"n'a pas l'effet escompté." - -#: library/ctypes.rst:1385 -msgid "" -"Keep in mind that retrieving sub-objects from Structure, Unions, and Arrays " -"doesn't *copy* the sub-object, instead it retrieves a wrapper object " -"accessing the root-object's underlying buffer." -msgstr "" -"Gardez en tête qu'accéder au sous-objet depuis une *Structure*, une *Union* " -"ou un *Array* ne copie *pas* le sous-objet, mais crée un objet interface qui " -"accède au tampon sous-jacent de l'objet initial." - -#: library/ctypes.rst:1389 -msgid "" -"Another example that may behave differently from what one would expect is " -"this::" -msgstr "" -"Un autre exemple de comportement *a priori* inattendu est le suivant ::" - -#: library/ctypes.rst:1401 -msgid "" -"Objects instantiated from :class:`c_char_p` can only have their value set to " -"bytes or integers." -msgstr "" -"La valeur d'une instance de :class:`c_char_p` ne peut être initialisée " -"qu'avec un octet ou un entier." - -#: library/ctypes.rst:1404 -msgid "" -"Why is it printing ``False``? ctypes instances are objects containing a " -"memory block plus some :term:`descriptor`\\s accessing the contents of the " -"memory. Storing a Python object in the memory block does not store the " -"object itself, instead the ``contents`` of the object is stored. Accessing " -"the contents again constructs a new Python object each time!" -msgstr "" -"Pourquoi cela affiche-t'il ``False`` ? Les instances *ctypes* sont des " -"objets qui contiennent un bloc mémoire et des :term:`descriptor` qui donnent " -"accès au contenu du ce bloc. Stocker un objet Python dans le bloc mémoire ne " -"stocke pas l'objet même ; seuls ses ``contents`` le sont. Accéder au " -"``contents`` crée un nouvel objet Python à chaque fois !" - -#: library/ctypes.rst:1414 -msgid "Variable-sized data types" -msgstr "Types de données à taille flottante" - -#: library/ctypes.rst:1416 -#, fuzzy -msgid "" -":mod:`!ctypes` provides some support for variable-sized arrays and " -"structures." -msgstr "" -":mod:`ctypes` assure la prise en charge des tableaux et des structures à " -"taille flottante." - -#: library/ctypes.rst:1418 -msgid "" -"The :func:`resize` function can be used to resize the memory buffer of an " -"existing ctypes object. The function takes the object as first argument, " -"and the requested size in bytes as the second argument. The memory block " -"cannot be made smaller than the natural memory block specified by the " -"objects type, a :exc:`ValueError` is raised if this is tried::" -msgstr "" -"La fonction :func:`resize` permet de redimensionner la taille du tampon " -"mémoire d'un objet *ctypes* existant. Cette fonction prend l'objet comme " -"premier argument et la taille en octets désirée comme second. La taille du " -"tampon mémoire ne peut pas être inférieure à celle occupée par un objet " -"unitaire du type considéré. Une :exc:`ValueError` est levée si c'est le " -"cas ::" - -#: library/ctypes.rst:1438 -msgid "" -"This is nice and fine, but how would one access the additional elements " -"contained in this array? Since the type still only knows about 4 elements, " -"we get errors accessing other elements::" -msgstr "" -"Cela dit, comment accéder aux éléments supplémentaires contenus dans le " -"tableau ? Vu que le type ne connaît que 4 éléments, on obtient une erreur si " -"l'on accède aux suivants ::" - -#: library/ctypes.rst:1450 -#, fuzzy -msgid "" -"Another way to use variable-sized data types with :mod:`!ctypes` is to use " -"the dynamic nature of Python, and (re-)define the data type after the " -"required size is already known, on a case by case basis." -msgstr "" -"Une autre approche pour utiliser des types de donnée à taille flottante " -"avec :mod:`ctypes` consiste à tirer profit de la nature intrinsèquement " -"dynamique de Python et de (re)définir le type de donnée une fois que la " -"taille demandée est connue, au cas-par-cas." - -#: library/ctypes.rst:1458 -msgid "ctypes reference" -msgstr "Référence du module" - -#: library/ctypes.rst:1463 -msgid "Loading shared libraries" -msgstr "Chargement des bibliothèques partagées" - -#: library/ctypes.rst:1465 -#, fuzzy -msgid "" -"There are several ways to load shared libraries into the Python process. " -"One way is to instantiate :py:class:`CDLL` or one of its subclasses:" -msgstr "" -"Il y a plusieurs moyens de charger une bibliothèque partagée dans un " -"processus Python. L'un d'entre eux consiste à instancier une des classes " -"suivantes :" - -#: library/ctypes.rst:1471 -#, fuzzy -msgid "Represents a loaded shared library." -msgstr "Recherche de bibliothèques partagées" - -#: library/ctypes.rst:1473 -msgid "" -"Functions in this library use the standard C calling convention, and are " -"assumed to return :c:expr:`int`. The Python :term:`global interpreter lock` " -"is released before calling any function exported by these libraries, and " -"reacquired afterwards. For different function behavior, use a " -"subclass: :py:class:`~ctypes.OleDLL`, :py:class:`~ctypes.WinDLL`, " -"or :py:class:`~ctypes.PyDLL`." -msgstr "" - -#: library/ctypes.rst:1480 -msgid "" -"If you have an existing :py:attr:`handle ` to an " -"already loaded shared library, it can be passed as the *handle* argument to " -"wrap the opened library in a new :py:class:`!CDLL` object. In this case, " -"*name* is only used to set the :py:attr:`~ctypes.CDLL._name` attribute, but " -"it may be adjusted and/or validated." -msgstr "" - -#: library/ctypes.rst:1486 -msgid "" -"If *handle* is ``None``, the underlying platform's :manpage:`dlopen(3)` or " -"`LoadLibraryExW`_ function is used to load the library into the process, and " -"to get a handle to it." -msgstr "" - -#: library/ctypes.rst:1490 -msgid "" -"*name* is the pathname of the shared library to open. If *name* does not " -"contain a path separator, the library is found in a platform-specific way." -msgstr "" - -#: library/ctypes.rst:1494 -msgid "" -"On Windows, the ``.DLL`` suffix may be missing. (For details, see " -"`LoadLibraryExW`_ documentation.) Other platform-specific prefixes and " -"suffixes (for example, ``lib``, ``.so``, ``.dylib``, or version numbers) " -"must be present in *name*; they are not added automatically. " -"See :ref:`ctypes-finding-shared-libraries` for more information." -msgstr "" - -#: library/ctypes.rst:1501 -msgid "" -"On non-Windows systems, *name* can be ``None``. In this case, :c:func:`!" -"dlopen` is called with ``NULL``, which opens the main program as a " -"\"library\". (Some systems do the same is *name* is empty; ``None``/``NULL`` " -"is more portable.)" -msgstr "" - -#: library/ctypes.rst:1507 -msgid "CPython implementation detail" -msgstr "" - -#: library/ctypes.rst:1509 -msgid "" -"Since CPython is linked to ``libc``, a ``None`` *name* is often used to " -"access the C standard library::" -msgstr "" - -#: library/ctypes.rst:1518 -msgid "" -"To access the Python C API, prefer :py:data:`ctypes.pythonapi` which works " -"across platforms." -msgstr "" - -#: library/ctypes.rst:1521 -msgid "" -"The *mode* parameter can be used to specify how the library is loaded. For " -"details, consult the :manpage:`dlopen(3)` manpage. On Windows, *mode* is " -"ignored. On posix systems, RTLD_NOW is always added, and is not " -"configurable." -msgstr "" -"Le mode de chargement de la bibliothèque est défini par le paramètre *mode*. " -"Pour plus de détails, référez-vous à l'entrée :manpage:`dlopen(3)` du " -"manuel. En Windows, *mode* est ignoré. Sur les systèmes POSIX, RTLD_NOW y " -"est toujours ajouté. Ceci n'est pas configurable." - -#: library/ctypes.rst:1526 -#, fuzzy -msgid "" -"The *use_errno* parameter, when set to true, enables a ctypes mechanism that " -"allows accessing the system :data:`errno` error number in a safe way. :mod:`!" -"ctypes` maintains a thread-local copy of the system's :data:`errno` " -"variable; if you call foreign functions created with ``use_errno=True`` then " -"the :data:`errno` value before the function call is swapped with the ctypes " -"private copy, the same happens immediately after the function call." -msgstr "" -"Le paramètre *use_errno*, lorsque défini à vrai, active un mécanisme de " -"*ctypes* qui permet d'accéder au numéro d'erreur :data:`errno` du système de " -"manière sécurisée. :mod:`ctypes` maintient une copie de :data:`errno` du " -"système dans chaque fil d'exécution. Si vous appelez des fonctions externes " -"créées avec ``use_errno=True``, la valeur de :data:`errno` avant l'appel de " -"la fonction est échangée avec la copie privée de *ctypes*. La même chose se " -"produit juste après l'appel de la fonction." - -#: library/ctypes.rst:1533 -msgid "" -"The function :func:`ctypes.get_errno` returns the value of the ctypes " -"private copy, and the function :func:`ctypes.set_errno` changes the ctypes " -"private copy to a new value and returns the former value." -msgstr "" -"La fonction :func:`ctypes.get_errno` renvoie la valeur de la copie privée de " -"*ctypes*. La fonction :func:`ctypes.set_errno` affecte une nouvelle valeur à " -"la copie privée et renvoie l'ancienne valeur." - -#: library/ctypes.rst:1537 -#, fuzzy -msgid "" -"The *use_last_error* parameter, when set to true, enables the same mechanism " -"for the Windows error code which is managed by the :func:`GetLastError` " -"and :func:`!SetLastError` Windows API " -"functions; :func:`ctypes.get_last_error` and :func:`ctypes.set_last_error` " -"are used to request and change the ctypes private copy of the windows error " -"code." -msgstr "" -"Définir le paramètre *use_last_error* à vrai active le même mécanisme pour " -"le code d'erreur de Windows qui est géré par les " -"fonctions :func:`GetLastError` et :func:`SetLastError` de l'API " -"Windows ; :func:`ctypes.get_last_error` et :func:`ctypes.set_last_error` " -"servent à obtenir et modifier la copie privée *ctypes* de ce code d'erreur." - -#: library/ctypes.rst:1543 -#, fuzzy -msgid "" -"The *winmode* parameter is used on Windows to specify how the library is " -"loaded (since *mode* is ignored). It takes any value that is valid for the " -"Win32 API `LoadLibraryExW`_ flags parameter. When omitted, the default is to " -"use the flags that result in the most secure DLL load, which avoids issues " -"such as DLL hijacking. Passing the full path to the DLL is the safest way to " -"ensure the correct library and dependencies are loaded." -msgstr "" -"Sous Windows, le paramètre *winmode* définit comment charger la bibliothèque " -"(puisque *mode* est ignoré). Il accepte toute valeur compatible avec le " -"drapeau ``LoadLibraryEx`` de l'API Win32. Lorsqu'il est omis, les drapeaux " -"par défaut sont ceux qui chargent la DLL de la manière la plus sécurisée " -"possible, afin d'éviter des problèmes comme le détournement de DLL. Passer " -"le chemin complet à la DLL reste le moyen le plus sûr de s'assurer que la " -"bonne bibliothèque et les bonnes dépendances sont chargées." - -#: library/ctypes.rst:1550 -msgid "" -"On Windows creating a :class:`CDLL` instance may fail even if the DLL name " -"exists. When a dependent DLL of the loaded DLL is not found, " -"a :exc:`OSError` error is raised with the message *\"[WinError 126] The " -"specified module could not be found\".* This error message does not contain " -"the name of the missing DLL because the Windows API does not return this " -"information making this error hard to diagnose. To resolve this error and " -"determine which DLL is not found, you need to find the list of dependent " -"DLLs and determine which one is not found using Windows debugging and " -"tracing tools." -msgstr "" -"En Windows, créer une instance de :class:`CDLL` peut échouer, même si une " -"DLL du bon nom existe. Quand une des dépendances de la DLL à charger ne peut " -"pas être trouvée, une :exc:`OSError` est levée avec le message *\"[WinError " -"126] The specified module could not be found\".* Ce message d'erreur ne " -"contient pas le nom de la DLL manquante car l'API Windows ne fournit pas " -"cette information. Cela rend l'erreur délicate à analyser ; pour la " -"résoudre, il faut lister toutes les dépendances de la DLL et trouver celle " -"qui manque en utilisant des outils de débogage et de traçage Windows." - -#: library/ctypes.rst:1562 -#, fuzzy -msgid "" -"`Microsoft DUMPBIN tool `_ -- A tool to find DLL " -"dependents." -msgstr "" -"`DUMPBIN `_ — un " -"utilitaire Microsoft pour lister les dépendances d'une DLL." - -#: library/ctypes.rst:1565 -msgid "Added *winmode* parameter." -msgstr "Ajout du paramètre *winmode*." - -#: library/ctypes.rst:1570 -msgid "The *name* parameter can now be a :term:`path-like object`." -msgstr "" - -#: library/ctypes.rst:1572 -#, fuzzy -msgid "" -"Instances of this class have no public methods. Functions exported by the " -"shared library can be accessed as attributes or by index. Please note that " -"accessing the function through an attribute caches the result and therefore " -"accessing it repeatedly returns the same object each time. On the other " -"hand, accessing it through an index returns a new object each time::" -msgstr "" -"Les instances de ces classes n'ont pas de méthodes publiques ; on accède aux " -"fonctions de la bibliothèque partagée par attribut ou par indiçage. Notez " -"que les résultats des accès par attribut sont mis en cache, et donc des " -"accès consécutifs renvoient à chaque fois le même objet. Accéder à une " -"fonction par indice renvoie cependant chaque fois un nouvel objet ::" - -#: library/ctypes.rst:1585 -#, fuzzy -msgid "" -"The following public attributes are available. Their name starts with an " -"underscore to not clash with exported function names:" -msgstr "" -"Les attributs publics suivants sont disponibles, leur nom commence par un " -"tiret bas pour éviter les conflits avec les noms des fonctions exportées :" - -#: library/ctypes.rst:1590 -msgid "The system handle used to access the library." -msgstr "Le lien système d'accès à la bibliothèque." - -#: library/ctypes.rst:1594 -msgid "The name of the library passed in the constructor." -msgstr "Nom de la bibliothèque donné au constructeur." - -#: library/ctypes.rst:1617 library/ctypes.rst:1626 -msgid "See :py:class:`~ctypes.CDLL`, the superclass, for common information." -msgstr "" - -#: library/ctypes.rst:1602 -#, fuzzy -msgid "" -"Functions in this library use the ``stdcall`` calling convention, and are " -"assumed to return the windows specific :class:`HRESULT` " -"code. :class:`HRESULT` values contain information specifying whether the " -"function call failed or succeeded, together with additional error code. If " -"the return value signals a failure, an :class:`OSError` is automatically " -"raised." -msgstr "" -"En Windows seulement : une instance de cette classe représente une " -"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " -"utilisent la convention d'appel *stdcall*, et doivent renvoyer un " -"code :class:`HRESULT` (propre à Windows). Les valeurs de :class:`HRESULT` " -"contiennent des informations précisant si l'appel de la fonction a échoué ou " -"s'il a réussi, ainsi qu'un code d'erreur supplémentaire. Si la valeur de " -"retour signale un échec, une :class:`OSError` est levée automatiquement." - -#: library/ctypes.rst:1622 library/ctypes.rst:1692 library/ctypes.rst:1987 -#: library/ctypes.rst:2191 library/ctypes.rst:2272 library/ctypes.rst:2295 -#: library/ctypes.rst:2319 library/ctypes.rst:2413 library/ctypes.rst:3268 -msgid "Availability" -msgstr "Disponibilité" - -#: library/ctypes.rst:1610 -#, fuzzy -msgid "" -":exc:`WindowsError` used to be raised, which is now an alias " -"of :exc:`OSError`." -msgstr "" -"En Windows, les erreurs levaient auparavant une :exc:`WindowsError`, qui est " -"maintenant un alias de :exc:`OSError`." - -#: library/ctypes.rst:1619 -#, fuzzy -msgid "" -"Functions in these libraries use the ``stdcall`` calling convention, and are " -"assumed to return :c:expr:`int` by default." -msgstr "" -"En Windows seulement : une instance de cette classe représente une " -"bibliothèque partagée déjà chargée. Les fonctions de cette bibliothèque " -"utilisent la convention d'appel *stdcall* et doivent renvoyer par défaut " -"un :c:type:`int`." - -#: library/ctypes.rst:1628 -#, fuzzy -msgid "" -"When functions in this library are called, the Python GIL is *not* released " -"during the function call, and after the function execution the Python error " -"flag is checked. If the error flag is set, a Python exception is raised." -msgstr "" -"Cette classe est identique à :class:`CDLL`, à ceci près que le GIL n'est " -"*pas* relâché pendant l'appel de la fonction, et, qu'au terme de l'appel, le " -"drapeau d'erreur Python est vérifié. Si celui-ci est activé, une exception " -"Python est levée." - -#: library/ctypes.rst:1633 -#, fuzzy -msgid "Thus, this is only useful to call Python C API functions directly." -msgstr "" -"Donc, cette classe ne sert qu'à appeler les fonctions de l'API C de Python." - -#: library/ctypes.rst:1638 -msgid "" -"Flag to use as *mode* parameter. On platforms where this flag is not " -"available, it is defined as the integer zero." -msgstr "" -"Valeur possible pour le paramètre *mode*. Vaut zéro sur les plates-formes où " -"ce drapeau n'est pas disponible." - -#: library/ctypes.rst:1644 -msgid "" -"Flag to use as *mode* parameter. On platforms where this is not available, " -"it is the same as *RTLD_GLOBAL*." -msgstr "" -"Valeur possible pour le paramètre *mode*. Vaut *RTLD_GLOBAL* sur les plates-" -"formes où ce drapeau n'est pas disponible." - -#: library/ctypes.rst:1650 -msgid "" -"The default mode which is used to load shared libraries. On OSX 10.3, this " -"is *RTLD_GLOBAL*, otherwise it is the same as *RTLD_LOCAL*." -msgstr "" -"Mode de chargement par défaut des bibliothèques partagées. Vaut " -"*RTLD_GLOBAL* sur OSX 10.3 et *RTLD_LOCAL* sur les autres systèmes " -"d'exploitation." - -#: library/ctypes.rst:1654 -#, fuzzy -msgid "" -"Shared libraries can also be loaded by using one of the prefabricated " -"objects, which are instances of the :class:`LibraryLoader` class, either by " -"calling the :meth:`~LibraryLoader.LoadLibrary` method, or by retrieving the " -"library as attribute of the loader instance." -msgstr "" -"Il est possible de charger une bibliothèque partagée soit en utilisant une " -"instance de la classe :class:`LibraryLoader`, soit en appelant la " -"méthode :meth:`LoadLibrary`, soit en récupérant la bibliothèque comme " -"attribut de l'instance du chargeur." - -#: library/ctypes.rst:1661 -msgid "" -"Class which loads shared libraries. *dlltype* should be one of " -"the :class:`CDLL`, :class:`PyDLL`, :class:`WinDLL`, or :class:`OleDLL` types." -msgstr "" -"Classe pour charger une bibliothèque partagée. *dlltype* doit être de " -"type :class:`CDLL`, :class:`PyDLL`, :class:`WinDLL` ou :class:`OleDLL`." - -#: library/ctypes.rst:1664 -#, fuzzy -msgid "" -":meth:`!__getattr__` has special behavior: It allows loading a shared " -"library by accessing it as attribute of a library loader instance. The " -"result is cached, so repeated attribute accesses return the same library " -"each time." -msgstr "" -":meth:`__getattr__` a un comportement particulier : elle charge une " -"bibliothèque quand on accède à un attribut du chargeur. Le résultat est mis " -"en cache, donc des accès consécutifs renvoient la même bibliothèque à chaque " -"fois." - -#: library/ctypes.rst:1670 -msgid "" -"Load a shared library into the process and return it. This method always " -"returns a new instance of the library." -msgstr "" -"Charge une bibliothèque partagée dans le processus et la renvoie. Cette " -"méthode renvoie toujours une nouvelle instance de la bibliothèque." - -#: library/ctypes.rst:1674 -msgid "These prefabricated library loaders are available:" -msgstr "Plusieurs chargeurs sont fournis :" - -#: library/ctypes.rst:1678 -msgid "Creates :class:`CDLL` instances." -msgstr "Pour créer des instances de :class:`CDLL`." - -#: library/ctypes.rst:1683 -#, fuzzy -msgid "Creates :class:`WinDLL` instances." -msgstr "Pour créer des instances de :class:`CDLL`." - -#: library/ctypes.rst:1690 -#, fuzzy -msgid "Creates :class:`OleDLL` instances." -msgstr "Pour créer des instances de :class:`CDLL`." - -#: library/ctypes.rst:1697 -msgid "Creates :class:`PyDLL` instances." -msgstr "Pour créer des instances de :class:`PyDLL`." - -#: library/ctypes.rst:1702 -#, fuzzy -msgid "" -"An instance of :class:`PyDLL` that exposes Python C API functions as " -"attributes. Note that all these functions are assumed to return " -"C :c:expr:`int`, which is of course not always the truth, so you have to " -"assign the correct :attr:`!restype` attribute to use these functions." -msgstr "" -"Une instance de :class:`PyDLL` dont les attributs sont les fonctions " -"exportées par l'API C Python. Toutes ces fonctions sont supposées renvoyer " -"un :c:type:`int` C, ce qui n'est bien entendu pas toujours le cas. Il faut " -"donc définir vous-même le bon attribut :attr:`restype` pour pouvoir les " -"utiliser." - -#: library/ctypes.rst:1709 -msgid "" -"Loading a library through any of these objects raises an :ref:`auditing " -"event ` ``ctypes.dlopen`` with string argument ``name``, the name " -"used to load the library." -msgstr "" -"Charger une bibliothèque à l'aide d'un de ces objets avec en argument " -"``name``, le nom de la bibliothèque (une chaîne de caractères), lève " -"un :ref:`évènement d'audit ` ``ctypes.dlopen``." - -#: library/ctypes.rst:1715 -msgid "" -"Accessing a function on a loaded library raises an auditing event " -"``ctypes.dlsym`` with arguments ``library`` (the library object) and " -"``name`` (the symbol's name as a string or integer)." -msgstr "" -"Accéder à une fonction d'une bibliothèque lève un évènement d'audit " -"``ctypes.dlsym`` avec ``library`` (l'objet bibliothèque) et ``name`` (le nom " -"du symbole — une chaîne de caractères ou un entier) comme arguments." - -#: library/ctypes.rst:1721 -msgid "" -"In cases when only the library handle is available rather than the object, " -"accessing a function raises an auditing event ``ctypes.dlsym/handle`` with " -"arguments ``handle`` (the raw library handle) and ``name``." -msgstr "" -"Si seul le lien sur la bibliothèque, et non l'objet, est disponible, accéder " -"à une fonction lève l'évènement d'audit ``ctypes.dlsym/handle`` avec " -"``handle`` (le lien vers la bibliothèque) et ``name`` comme arguments." - -#: library/ctypes.rst:1729 -msgid "Finding shared libraries" -msgstr "Recherche de bibliothèques partagées" - -#: library/ctypes.rst:1731 -msgid "" -"When programming in a compiled language, shared libraries are accessed when " -"compiling/linking a program, and when the program is run. The programmer " -"specifies a short name; the C compiler, linker, and runtime dynamic library " -"loader then interact in system-specific ways to find the filename of the " -"library to load." -msgstr "" - -#: library/ctypes.rst:1737 -msgid "" -"While the mapping from short names to filenames is not consistently exposed " -"by platforms, the :mod:`!ctypes.util` module provides a function, :func:`!" -"find_library`, that attempts to match it. However, as backwards " -"compatibility concerns make it difficult to adjust its behavior for new " -"platforms and configurations, the function is :term:`soft deprecated`." -msgstr "" - -#: library/ctypes.rst:1744 -#, fuzzy -msgid "" -"If wrapping a shared library with :mod:`!ctypes`, consider determining the " -"shared library name at development time, and hardcoding it into the wrapper " -"module instead of using :func:`!find_library` to locate the library at " -"runtime. Also consider adding a configuration option or environment variable " -"to let users select a library to use, and then perhaps use :func:`!" -"find_library` as a default or fallback." -msgstr "" -"Si vous encapsulez une bibliothèque partagée avec :mod:`ctypes`, il est " -"*probablement* plus judicieux de déterminer le chemin de cette bibliothèque " -"lors du développement et de l'écrire en dur dans le module d'encapsulation, " -"plutôt que d'utiliser :func:`find_library` pour la trouver lors de " -"l'exécution." - -#: library/ctypes.rst:1755 -msgid "Try to find a library and return a pathname." -msgstr "" - -#: library/ctypes.rst:1757 -#, fuzzy -msgid "" -"*name* is the \"short\" library name without any prefix like ``lib``, suffix " -"like ``.so``, ``.dylib`` or version number. (This is the form used for the " -"posix linker option :option:`!-l`.) The result is in a format suitable for " -"passing to :py:class:`~ctypes.CDLL`." -msgstr "" -"Tente de trouver une bibliothèque et en renvoie le chemin. *name* est le nom " -"de la bibliothèque sans préfixe — comme *lib* — ni suffixe — comme ``.so``, " -"``.dylib`` ou un numéro de version (c.-à-d. la même forme que l'option POSIX " -"de l'éditeur de lien :option:`!-l`). Si la fonction ne parvient pas à " -"trouver de bibliothèque, elle renvoie ``None``." - -#: library/ctypes.rst:1762 -msgid "If no library can be found, return ``None``." -msgstr "" - -#: library/ctypes.rst:1764 -msgid "" -"The exact functionality is system dependent, and is *not guaranteed* to " -"match the behavior of the compiler, linker, and loader used for (or by) " -"Python. It is recommended to only use this function as a default or fallback," -msgstr "" - -#: library/ctypes.rst:1771 -msgid "" -"This function is kept for use in cases where it works, but not expected to " -"be updated for additional platforms and configurations." -msgstr "" - -#: library/ctypes.rst:1774 -#, fuzzy -msgid "" -"On Linux, :func:`!find_library` tries to run external programs (``/sbin/" -"ldconfig``, ``gcc``, ``objdump`` and ``ld``) to find the library file. If " -"the output of these programs does not correspond to the dynamic linker used " -"by Python, the result of this function may be misleading." -msgstr "" -"Sous Linux, :func:`find_library` essaye de lancer des programmes externes " -"(``/sbin/ldconfig``, ``gcc``, ``objdump`` et ``ld``) pour trouver la " -"bibliothèque. Elle renvoie le nom de la bibliothèque sur le disque." - -#: library/ctypes.rst:1780 -msgid "" -"On Linux, the value of the environment variable ``LD_LIBRARY_PATH`` is used " -"when searching for libraries, if a library cannot be found by any other " -"means." -msgstr "" -"Sous Linux, si les autres moyens échouent, la fonction utilise la variable " -"d'environnement ``LD_LIBRARY_PATH`` pour trouver la bibliothèque." - -#: library/ctypes.rst:1784 -msgid "Here are some examples::" -msgstr "Voici quelques exemples ::" - -#: library/ctypes.rst:1795 -#, fuzzy -msgid "" -"On macOS and Android, :func:`!find_library` uses the system's standard " -"naming schemes and paths to locate the library, and returns a full pathname " -"if successful::" -msgstr "" -"Sous macOS, :func:`find_library` regarde dans des chemins et conventions de " -"chemins prédéfinies pour trouver la bibliothèque et en renvoie le chemin " -"complet si elle la trouve ::" - -#: library/ctypes.rst:1810 -#, fuzzy -msgid "" -"On Windows, :func:`!find_library` searches along the system search path, and " -"returns the full pathname, but since there is no predefined naming scheme a " -"call like ``find_library(\"c\")`` will fail and return ``None``." -msgstr "" -"Sous Windows, :func:`find_library` examine le chemin de recherche du système " -"et renvoie le chemin complet de la bibliothèque, mais comme il n'existe pas " -"de convention de nommage, des appels comme ``find_library(\"c\")`` échouent " -"et renvoient ``None``." - -#: library/ctypes.rst:1817 -msgid "" -"Returns the filename of the VC runtime library used by Python, and by the " -"extension modules." -msgstr "" - -#: library/ctypes.rst:1820 -msgid "" -"If the name of the library cannot be determined, ``None`` is returned. " -"Notably, this will happen for recent versions of the VC runtime library, " -"which are not directly loadable." -msgstr "" - -#: library/ctypes.rst:1824 -msgid "" -"If you need to free memory, for example, allocated by an extension module " -"with a call to the ``free(void *)``, it is important that you use the " -"function in the same library that allocated the memory." -msgstr "" - -#: library/ctypes.rst:1834 -#, fuzzy -msgid "Listing loaded shared libraries" -msgstr "Recherche de bibliothèques partagées" - -#: library/ctypes.rst:1836 -msgid "" -"When writing code that relies on code loaded from shared libraries, it can " -"be useful to know which shared libraries have already been loaded into the " -"current process." -msgstr "" - -#: library/ctypes.rst:1840 -msgid "" -"The :mod:`!ctypes.util` module provides the :func:`~ctypes.util.dllist` " -"function, which calls the different APIs provided by the various platforms " -"to help determine which shared libraries have already been loaded into the " -"current process." -msgstr "" - -#: library/ctypes.rst:1844 -msgid "" -"The exact output of this function will be system dependent. On most " -"platforms, the first entry of this list represents the current process " -"itself, which may be an empty string. For example, on glibc-based Linux, the " -"return may look like::" -msgstr "" - -#: library/ctypes.rst:1856 -msgid "Foreign functions" -msgstr "Fonctions externes" - -#: library/ctypes.rst:1858 -#, fuzzy -msgid "" -"As explained in the previous section, foreign functions can be accessed as " -"attributes of loaded shared libraries. The function objects created in this " -"way by default accept any number of arguments, accept any ctypes data " -"instances as arguments, and return the default result type specified by the " -"library loader." -msgstr "" -"Comme expliqué dans la section précédente, on peut accéder aux fonctions " -"externes au travers des attributs des bibliothèques partagées. Un objet " -"fonction créé de cette façon accepte par défaut un nombre quelconque " -"d'arguments qui peuvent être de n'importe quel type de données *ctypes*. Il " -"renvoie le type par défaut du chargeur de la bibliothèque. Ce sont des " -"instances de la classe privée :" - -#: library/ctypes.rst:1863 -msgid "" -"They are instances of a private local class :class:`!_FuncPtr` (not exposed " -"in :mod:`!ctypes`) which inherits from the private :class:`_CFuncPtr` class:" -msgstr "" - -#: library/ctypes.rst:1877 -msgid "Base class for C callable foreign functions." -msgstr "Classe de base pour les fonctions externes C." - -#: library/ctypes.rst:1879 -msgid "" -"Instances of foreign functions are also C compatible data types; they " -"represent C function pointers." -msgstr "" -"Une instance de fonction externe est également un type de donnée compatible " -"avec le C ; elle représente un pointeur vers une fonction." - -#: library/ctypes.rst:1882 -msgid "" -"This behavior can be customized by assigning to special attributes of the " -"foreign function object." -msgstr "" -"Son comportement peut-être personnalisé en réaffectant les attributs " -"spécifiques de l'objet représentant la fonction externe." - -#: library/ctypes.rst:1887 -#, fuzzy -msgid "" -"Assign a ctypes type to specify the result type of the foreign function. Use " -"``None`` for :c:expr:`void`, a function not returning anything." -msgstr "" -"Fait correspondre le type de retour de la fonction externe à un type " -"*ctypes*. Dans le cas où la fonction ne renvoie rien (:c:type:`void`), " -"utilisez ``None``." - -#: library/ctypes.rst:1890 -#, fuzzy -msgid "" -"It is possible to assign a callable Python object that is not a ctypes type, " -"in this case the function is assumed to return a C :c:expr:`int`, and the " -"callable will be called with this integer, allowing further processing or " -"error checking. Using this is deprecated, for more flexible post processing " -"or error checking use a ctypes data type as :attr:`!restype` and assign a " -"callable to the :attr:`errcheck` attribute." -msgstr "" -"Il est aussi possible de passer n'importe quel un objet Python qui n'est pas " -"un type *ctypes* pourvu qu'il soit appelable. Dans ce cas, la fonction est " -"censée renvoyer un :c:type:`int` C et l'appelable sera appelé avec cet " -"entier, ce qui permet ainsi de faire des actions supplémentaires comme " -"vérifier un code d'erreur. Ce mécanisme est obsolète ; une façon plus souple " -"de faire des actions supplémentaires ou de la vérification consiste à " -"affecter un type *ctypes* à :attr:`restype` et à affecter un appelable à " -"l'attribut :attr:`errcheck`." - -#: library/ctypes.rst:1899 -msgid "" -"Assign a tuple of ctypes types to specify the argument types that the " -"function accepts. Functions using the ``stdcall`` calling convention can " -"only be called with the same number of arguments as the length of this " -"tuple; functions using the C calling convention accept additional, " -"unspecified arguments as well." -msgstr "" -"Fait correspondre le type des arguments que la fonction accepte avec un *n*-" -"uplet de types *ctypes*. Les fonctions qui utilisent la convention d'appel " -"``stdcall`` ne peuvent être appelées qu'avec le même nombre d'arguments que " -"la taille du *n*-uplet mais les fonctions qui utilisent la convention " -"d'appel C acceptent aussi des arguments additionnels non-définis." - -#: library/ctypes.rst:1905 -#, fuzzy -msgid "" -"When a foreign function is called, each actual argument is passed to " -"the :meth:`~_CData.from_param` class method of the items in " -"the :attr:`argtypes` tuple, this method allows adapting the actual argument " -"to an object that the foreign function accepts. For example, " -"a :class:`c_char_p` item in the :attr:`argtypes` tuple will convert a string " -"passed as argument into a bytes object using ctypes conversion rules." -msgstr "" -"À l'appel d'une fonction externe, chaque argument est passé à la méthode de " -"classe :meth:`from_param` de l'élément correspondant dans le *n*-uplet " -"des :attr:`argtypes`. Cette méthode convertit l'argument initial en un objet " -"que la fonction externe peut comprendre. Par exemple, un :class:`c_char_p` " -"dans le *n*-uplet des :attr:`argtypes` va transformer la chaîne de " -"caractères passée en argument en un objet chaîne d'octets selon les règles " -"de conversion *ctypes*." - -#: library/ctypes.rst:1912 -#, fuzzy -msgid "" -"New: It is now possible to put items in argtypes which are not ctypes types, " -"but each item must have a :meth:`~_CData.from_param` method which returns a " -"value usable as argument (integer, string, ctypes instance). This allows " -"defining adapters that can adapt custom objects as function parameters." -msgstr "" -"Nouveau : il est maintenant possible de mettre des objets qui ne sont pas " -"des types de *ctypes* dans les *argtypes*, mais ceux-ci doivent avoir une " -"méthode :meth:`from_param` renvoyant une valeur qui peut être utilisée comme " -"un argument (entier, chaîne de caractères ou instance *ctypes*). Ceci permet " -"de créer des adaptateurs qui convertissent des objets arbitraires en des " -"paramètres de fonction." - -#: library/ctypes.rst:1919 -msgid "" -"Assign a Python function or another callable to this attribute. The callable " -"will be called with three or more arguments:" -msgstr "" -"Définit une fonction Python ou tout autre appelable qui sera appelé avec " -"trois arguments ou plus :" - -#: library/ctypes.rst:1926 -#, fuzzy -msgid "" -"*result* is what the foreign function returns, as specified by the :attr:`!" -"restype` attribute." -msgstr "" -"*result* est la valeur de retour de la fonction externe, comme défini par " -"l'attribut :attr:`restype`." - -#: library/ctypes.rst:1929 -msgid "" -"*func* is the foreign function object itself, this allows reusing the same " -"callable object to check or post process the results of several functions." -msgstr "" -"*func* est l'objet représentant la fonction externe elle-même. Cet accesseur " -"permet de réutiliser le même appelable pour vérifier le résultat de " -"plusieurs fonctions ou de faire des actions supplémentaires après leur " -"exécution." - -#: library/ctypes.rst:1933 -msgid "" -"*arguments* is a tuple containing the parameters originally passed to the " -"function call, this allows specializing the behavior on the arguments used." -msgstr "" -"*arguments* est le *n*-uplet qui contient les paramètres initiaux passés à " -"la fonction, ceci permet de spécialiser le comportement des arguments " -"utilisés." - -#: library/ctypes.rst:1937 -msgid "" -"The object that this function returns will be returned from the foreign " -"function call, but it can also check the result value and raise an exception " -"if the foreign function call failed." -msgstr "" -"L'objet renvoyé par cette fonction est celui renvoyé par l'appel de la " -"fonction externe, mais il peut aussi vérifier la valeur du résultat et lever " -"une exception si l'appel a échoué." - -#: library/ctypes.rst:1944 -#, fuzzy -msgid "" -"On Windows, when a foreign function call raises a system exception (for " -"example, due to an access violation), it will be captured and replaced with " -"a suitable Python exception. Further, an auditing event " -"``ctypes.set_exception`` with argument ``code`` will be raised, allowing an " -"audit hook to replace the exception with its own." -msgstr "" -"En Windows, quand un appel à une fonction externe lève une exception système " -"(par exemple, une erreur de segmentation), celle-ci est interceptée pour " -"être remplacée par l'exception Python correspondante. De plus, un évènement " -"d'audit ``ctypes.seh_exception`` est levé avec ``code`` en argument, ce qui " -"permet à un point d'entrée (*hook* en anglais) d'audit de remplacer " -"l'exception par une des siennes." - -#: library/ctypes.rst:1952 -#, fuzzy -msgid "" -"Some ways to invoke foreign function calls as well as some of the functions " -"in this module may raise an auditing event ``ctypes.call_function`` with " -"arguments ``function pointer`` and ``arguments``." -msgstr "" -"Certaines manières d'appeler des fonction externes peuvent lever des " -"évènements d'audit ``ctypes.call_function`` avec ``function pointer`` et " -"``arguments`` comme arguments." - -#: library/ctypes.rst:1959 -msgid "Function prototypes" -msgstr "Prototypes de fonction" - -#: library/ctypes.rst:1961 -msgid "" -"Foreign functions can also be created by instantiating function prototypes. " -"Function prototypes are similar to function prototypes in C; they describe a " -"function (return type, argument types, calling convention) without defining " -"an implementation. The factory functions must be called with the desired " -"result type and the argument types of the function, and can be used as " -"decorator factories, and as such, be applied to functions through the " -"``@wrapper`` syntax. See :ref:`ctypes-callback-functions` for examples." -msgstr "" -"Il est aussi possible de créer des fonctions externes en instanciant des " -"prototypes de fonction. Les prototypes de fonction ressemblent beaucoup aux " -"prototypes de fonctions en C ; ils décrivent une fonction (type de retour, " -"type des arguments, convention d'appel) sans préciser son implémentation. " -"Les fabriques de fonctions prennent en entrée le type de retour et le type " -"des arguments de la fonction, et peuvent être utilisées comme des " -"décorateurs-fabrique et ainsi s'appliquer à des fonctions avec la syntaxe " -"``@décorateur``. Ceci est illustré dans la section :ref:`ctypes-callback-" -"functions`." - -#: library/ctypes.rst:1972 -msgid "" -"The returned function prototype creates functions that use the standard C " -"calling convention. The function will release the GIL during the call. If " -"*use_errno* is set to true, the ctypes private copy of the " -"system :data:`errno` variable is exchanged with the real :data:`errno` value " -"before and after the call; *use_last_error* does the same for the Windows " -"error code." -msgstr "" -"Renvoie un prototype de fonction qui crée des fonctions qui suivent la " -"convention d'appel standard C. Les fonctions libèreront le GIL lors de leur " -"exécution. Si *use_errno* est vrai, la copie privée *ctypes* de la variable " -"système :data:`errno` est échangée avec la vraie valeur de :data:`errno` " -"avant et après l'appel ; *use_last_error* a le même effet sous Windows." - -#: library/ctypes.rst:1982 -#, fuzzy -msgid "" -"The returned function prototype creates functions that use the ``stdcall`` " -"calling convention. The function will release the GIL during the call. " -"*use_errno* and *use_last_error* have the same meaning as above." -msgstr "" -"En Windows seulement : renvoie un prototype de fonction qui crée des " -"fonctions qui suivent la convention d'appel standard ``stdcall``, sauf sous " -"Windows CE où :func:`WINFUNCTYPE` équivaut à :func:`CFUNCTYPE`. Les " -"fonctions libèreront le GIL lors de leur exécution. *use_errno* et " -"*use_last_error* ont la même signification que ci-dessus." - -#: library/ctypes.rst:1992 -msgid "" -"The returned function prototype creates functions that use the Python " -"calling convention. The function will *not* release the GIL during the call." -msgstr "" -"Renvoie un prototype de fonction qui crée des fonctions qui suivent la " -"convention d'appel Python. Les fonctions ne libèreront *pas* le GIL lors de " -"leur exécution." - -#: library/ctypes.rst:1995 -msgid "" -"Function prototypes created by these factory functions can be instantiated " -"in different ways, depending on the type and number of the parameters in the " -"call:" -msgstr "" -"Il y a plusieurs façons d'instancier les prototypes de fonction créés par " -"ces fabriques, selon le type et le nombre de paramètres de l'appel :" - -#: library/ctypes.rst:2002 -msgid "" -"Returns a foreign function at the specified address which must be an integer." -msgstr "" -"Renvoie une fonction externe sur l'adresse donnée sous la forme d'un entier." - -#: library/ctypes.rst:2009 -msgid "" -"Create a C callable function (a callback function) from a Python *callable*." -msgstr "" -"Crée une fonction appelable depuis du code C (une fonction de rappel) d'un " -"appelable Python donné en paramètre." - -#: library/ctypes.rst:2016 -msgid "" -"Returns a foreign function exported by a shared library. *func_spec* must be " -"a 2-tuple ``(name_or_ordinal, library)``. The first item is the name of the " -"exported function as string, or the ordinal of the exported function as " -"small integer. The second item is the shared library instance." -msgstr "" -"Renvoie une fonction externe exposée par une bibliothèque partagée. " -"*func_spec* est un couple ``(nom_ou_indice, bibliothèque)``. Le premier " -"élément est le nom de la fonction à passer comme une chaîne ou bien son " -"indice (dans la table des symboles) à passer comme un entier. Le second " -"élément est l'instance de la bibliothèque partagée." - -#: library/ctypes.rst:2026 -msgid "" -"Returns a foreign function that will call a COM method. *vtbl_index* is the " -"index into the virtual function table, a small non-negative integer. *name* " -"is name of the COM method. *iid* is an optional pointer to the interface " -"identifier which is used in extended error reporting." -msgstr "" -"Renvoie une fonction qui appelle une méthode COM. *vtbl_index* est l'indice " -"de la fonction dans la table virtuelle, un petit entier positif. *name* est " -"le nom de la méthode COM. *iid* est un pointeur optionnel vers " -"l'identificateur de plateforme, qui est utilisé dans la remontée d'erreurs " -"étendue." - -#: library/ctypes.rst:2031 -msgid "" -"If *iid* is not specified, an :exc:`OSError` is raised if the COM method " -"call fails. If *iid* is specified, a :exc:`~ctypes.COMError` is raised " -"instead." -msgstr "" - -#: library/ctypes.rst:2035 -#, fuzzy -msgid "" -"COM methods use a special calling convention: They require a pointer to the " -"COM interface as first argument, in addition to those parameters that are " -"specified in the :attr:`!argtypes` tuple." -msgstr "" -"Les méthodes COM ont une convention d'appel particulière : elles requièrent " -"de passer un pointeur vers l'interface COM en premier argument, en sus des " -"arguments passés dans le *n*-uplet :attr:`argtypes`." - -#: library/ctypes.rst:2042 -msgid "" -"The optional *paramflags* parameter creates foreign function wrappers with " -"much more functionality than the features described above." -msgstr "" -"Le paramètre optionnel *paramflags* crée une fabrique de fonction externes " -"avec des fonctionnalités supplémentaires par rapport à celles décrites ci-" -"dessus." - -#: library/ctypes.rst:2045 -#, fuzzy -msgid "" -"*paramflags* must be a tuple of the same length " -"as :attr:`~_CFuncPtr.argtypes`." -msgstr "*paramflags* est un *n*-uplet de la même taille que :attr:`argtypes`." - -#: library/ctypes.rst:2047 -msgid "" -"Each item in this tuple contains further information about a parameter, it " -"must be a tuple containing one, two, or three items." -msgstr "" -"Chaque élément de ce *n*-uplet contient des informations supplémentaires sur " -"le paramètre correspondant. Ce doit être aussi un *n*-uplet, avec un, deux " -"ou trois éléments." - -#: library/ctypes.rst:2050 -msgid "" -"The first item is an integer containing a combination of direction flags for " -"the parameter:" -msgstr "" -"Le premier élément est un entier qui contient une combinaison de drapeaux " -"qui précisent le sens des paramètres (entrée ou sortie) :" - -#: library/ctypes.rst:2053 -msgid "1" -msgstr "1" - -#: library/ctypes.rst:2054 -msgid "Specifies an input parameter to the function." -msgstr "Paramètre d'entrée." - -#: library/ctypes.rst:2056 -msgid "2" -msgstr "2" - -#: library/ctypes.rst:2057 -msgid "Output parameter. The foreign function fills in a value." -msgstr "Paramètre de sortie. La fonction externe va modifier cette valeur." - -#: library/ctypes.rst:2059 -msgid "4" -msgstr "4" - -#: library/ctypes.rst:2060 -msgid "Input parameter which defaults to the integer zero." -msgstr "Paramètre d'entrée, valant 0 par défaut." - -#: library/ctypes.rst:2062 -msgid "" -"The optional second item is the parameter name as string. If this is " -"specified, the foreign function can be called with named parameters." -msgstr "" -"Le deuxième élément (optionnel) est une chaîne de caractères représentant le " -"nom du paramètre. Si cet élément est donné, la fonction externe pourra être " -"appelée avec des paramètres nommés." - -#: library/ctypes.rst:2065 -msgid "The optional third item is the default value for this parameter." -msgstr "" -"Le troisième élément (optionnel) est la valeur par défaut du paramètre." - -#: library/ctypes.rst:2068 -#, fuzzy -msgid "" -"The following example demonstrates how to wrap the Windows ``MessageBoxW`` " -"function so that it supports default parameters and named arguments. The C " -"declaration from the windows header file is this::" -msgstr "" -"L'exemple suivant montre comment encapsuler la fonction Windows " -"``MessageBoxW`` afin que celle-ci prenne en charge des paramètres par défaut " -"et des arguments nommés. Sa déclaration C dans le fichier d'en-tête des " -"fenêtres est ::" - -#: library/ctypes.rst:2102 -#, fuzzy -msgid "Here is the wrapping with :mod:`!ctypes`::" -msgstr "L'encapsulation :mod:`ctypes` correspondante est alors ::" - -#: library/ctypes.rst:2087 -msgid "The ``MessageBox`` foreign function can now be called in these ways::" -msgstr "" -"La fonction ``MessageBox`` peut désormais être appelée des manières " -"suivantes ::" - -#: library/ctypes.rst:2093 -msgid "" -"A second example demonstrates output parameters. The win32 " -"``GetWindowRect`` function retrieves the dimensions of a specified window by " -"copying them into ``RECT`` structure that the caller has to supply. Here is " -"the C declaration::" -msgstr "" -"L'exemple qui suit traite des paramètres en sortie. La fonction win32 " -"``GetWindowRect`` donne les dimensions d'une fenêtre en les copiant dans une " -"structure ``RECT`` que l'appelant doit fournir. Sa déclaration en C est ::" - -#: library/ctypes.rst:2111 -msgid "" -"Functions with output parameters will automatically return the output " -"parameter value if there is a single one, or a tuple containing the output " -"parameter values when there are more than one, so the GetWindowRect function " -"now returns a RECT instance, when called." -msgstr "" -"Les fonctions avec des paramètres en sortie renvoient automatiquement la " -"valeur du paramètre de sortie s'il n'y en a qu'un seul, ou un *n*-uplet avec " -"les valeurs de sortie de chaque paramètre s'il y en a plusieurs. Ici, la " -"fonction *GetWindowRect* renvoie donc une instance de *RECT* quand elle est " -"appelée." - -#: library/ctypes.rst:2116 -#, fuzzy -msgid "" -"Output parameters can be combined with the :attr:`~_CFuncPtr.errcheck` " -"protocol to do further output processing and error checking. The win32 " -"``GetWindowRect`` api function returns a ``BOOL`` to signal success or " -"failure, so this function could do the error checking, and raises an " -"exception when the api call failed::" -msgstr "" -"Il est possible de combiner des paramètres en sortie avec le " -"protocole :attr:`errcheck` pour post-traiter les sorties et faire de la " -"vérification d'erreur. La fonction de l'API win32 ``GetWindowRect`` renvoie " -"un ``BOOL`` pour indiquer le succès ou l'échec de l'exécution, donc cette " -"fonction peut vérifier le résultat et lever une exception quand l'appel à " -"l'API a échoué ::" - -#: library/ctypes.rst:2129 -#, fuzzy -msgid "" -"If the :attr:`~_CFuncPtr.errcheck` function returns the argument tuple it " -"receives unchanged, :mod:`!ctypes` continues the normal processing it does " -"on the output parameters. If you want to return a tuple of window " -"coordinates instead of a ``RECT`` instance, you can retrieve the fields in " -"the function and return them instead, the normal processing will no longer " -"take place::" -msgstr "" -"Si la fonction :attr:`errcheck` renvoie le *n*-uplet passé en paramètre sans " -"rien y changer, :mod:`ctypes` continue l'exécution habituelle des paramètres " -"en sortie. Si on préfère renvoyer un *n*-uplet de coordonnées au lieu de " -"renvoyer une instance de ``RECT``, il faut récupérer les champs " -"correspondants et les renvoyer en retour. Dans ce cas, l'exécution " -"habituelle n'a plus lieu ::" - -#: library/ctypes.rst:2148 -msgid "Utility functions" -msgstr "Fonctions utilitaires" - -#: library/ctypes.rst:2152 -msgid "" -"Returns the address of the memory buffer as integer. *obj* must be an " -"instance of a ctypes type." -msgstr "" - -#: library/ctypes.rst:2155 -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.addressof`` with " -"argument ``obj``." -msgstr "" - -#: library/ctypes.rst:2160 -msgid "" -"Returns the alignment requirements of a ctypes type. *obj_or_type* must be a " -"ctypes type or instance." -msgstr "" - -#: library/ctypes.rst:2166 -msgid "" -"Returns a light-weight pointer to *obj*, which must be an instance of a " -"ctypes type. *offset* defaults to zero, and must be an integer that will be " -"added to the internal pointer value." -msgstr "" - -#: library/ctypes.rst:2170 -msgid "``byref(obj, offset)`` corresponds to this C code::" -msgstr "" - -#: library/ctypes.rst:2174 -msgid "" -"The returned object can only be used as a foreign function call parameter. " -"It behaves similar to ``pointer(obj)``, but the construction is a lot faster." -msgstr "" - -#: library/ctypes.rst:2180 -msgid "" -"Copies a COM pointer from *src* to *dst* and returns the Windows " -"specific :c:type:`!HRESULT` value." -msgstr "" - -#: library/ctypes.rst:2183 -msgid "" -"If *src* is not ``NULL``, its ``AddRef`` method is called, incrementing the " -"reference count." -msgstr "" - -#: library/ctypes.rst:2186 -msgid "" -"In contrast, the reference count of *dst* will not be decremented before " -"assigning the new value. Unless *dst* is ``NULL``, the caller is responsible " -"for decrementing the reference count by calling its ``Release`` method when " -"necessary." -msgstr "" - -#: library/ctypes.rst:2198 -msgid "" -"This function is similar to the cast operator in C. It returns a new " -"instance of *type* which points to the same memory block as *obj*. *type* " -"must be a pointer type, and *obj* must be an object that can be interpreted " -"as a pointer." -msgstr "" - -#: library/ctypes.rst:2207 -msgid "" -"This function creates a mutable character buffer. The returned object is a " -"ctypes array of :class:`c_char`." -msgstr "" - -#: library/ctypes.rst:2210 -msgid "" -"If *size* is given (and not ``None``), it must be an :class:`int`. It " -"specifies the size of the returned array." -msgstr "" - -#: library/ctypes.rst:2213 -msgid "" -"If the *init* argument is given, it must be :class:`bytes`. It is used to " -"initialize the array items. Bytes not initialized this way are set to zero " -"(NUL)." -msgstr "" - -#: library/ctypes.rst:2217 -msgid "" -"If *size* is not given (or if it is ``None``), the buffer is made one " -"element larger than *init*, effectively adding a NUL terminator." -msgstr "" - -#: library/ctypes.rst:2220 -msgid "" -"If both arguments are given, *size* must not be less than ``len(init)``." -msgstr "" - -#: library/ctypes.rst:2224 -msgid "" -"If *size* is equal to ``len(init)``, a NUL terminator is not added. Do not " -"treat such a buffer as a C string." -msgstr "" - -#: library/ctypes.rst:2227 -msgid "For example::" -msgstr "Par exemple ::" - -#: library/ctypes.rst:2242 -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.create_string_buffer`` " -"with arguments ``init``, ``size``." -msgstr "" - -#: library/ctypes.rst:2248 -msgid "" -"This function creates a mutable unicode character buffer. The returned " -"object is a ctypes array of :class:`c_wchar`." -msgstr "" - -#: library/ctypes.rst:2251 -msgid "" -"The function takes the same arguments as :func:`~create_string_buffer` " -"except *init* must be a string and *size* counts :class:`c_wchar`." -msgstr "" - -#: library/ctypes.rst:2254 -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.create_unicode_buffer`` " -"with arguments ``init``, ``size``." -msgstr "" - -#: library/ctypes.rst:2259 -msgid "" -"This function is a hook which allows implementing in-process COM servers " -"with ctypes. It is called from the DllCanUnloadNow function that the " -"_ctypes extension dll exports." -msgstr "" - -#: library/ctypes.rst:2268 -msgid "" -"This function is a hook which allows implementing in-process COM servers " -"with ctypes. It is called from the DllGetClassObject function that the " -"``_ctypes`` extension dll exports." -msgstr "" - -#: library/ctypes.rst:2278 -msgid "" -"Try to provide a list of paths of the shared libraries loaded into the " -"current process. These paths are not normalized or processed in any way. " -"The function can raise :exc:`OSError` if the underlying platform APIs fail. " -"The exact functionality is system dependent." -msgstr "" - -#: library/ctypes.rst:2283 -msgid "" -"On most platforms, the first element of the list represents the current " -"executable file. It may be an empty string." -msgstr "" - -#: library/ctypes.rst:2291 -msgid "" -"Returns a textual description of the error code *code*. If no error code is " -"specified, the last error code is used by calling the Windows API " -"function :func:`GetLastError`." -msgstr "" - -#: library/ctypes.rst:2300 -msgid "" -"Returns the last error code set by Windows in the calling thread. This " -"function calls the Windows ``GetLastError()`` function directly, it does not " -"return the ctypes-private copy of the error code." -msgstr "" - -#: library/ctypes.rst:2309 -msgid "" -"Returns the current value of the ctypes-private copy of the " -"system :data:`errno` variable in the calling thread." -msgstr "" - -#: library/ctypes.rst:2312 -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.get_errno`` with no " -"arguments." -msgstr "" - -#: library/ctypes.rst:2316 -msgid "" -"Returns the current value of the ctypes-private copy of the system :data:`!" -"LastError` variable in the calling thread." -msgstr "" - -#: library/ctypes.rst:2321 -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.get_last_error`` with no " -"arguments." -msgstr "" - -#: library/ctypes.rst:2326 -msgid "" -"Same as the standard C memmove library function: copies *count* bytes from " -"*src* to *dst*. *dst* and *src* must be integers or ctypes instances that " -"can be converted to pointers." -msgstr "" - -#: library/ctypes.rst:2333 -msgid "" -"Same as the standard C memset library function: fills the memory block at " -"address *dst* with *count* bytes of value *c*. *dst* must be an integer " -"specifying an address, or a ctypes instance." -msgstr "" - -#: library/ctypes.rst:2340 -msgid "" -"Create or return a ctypes pointer type. Pointer types are cached and reused " -"internally, so calling this function repeatedly is cheap. *type* must be a " -"ctypes type." -msgstr "" - -#: library/ctypes.rst:2346 -msgid "" -"The resulting pointer type is cached in the ``__pointer_type__`` attribute " -"of *type*. It is possible to set this attribute before the first call to " -"``POINTER`` in order to set a custom pointer type. However, doing this is " -"discouraged: manually creating a suitable pointer type is difficult without " -"relying on implementation details that may change in future Python versions." -msgstr "" - -#: library/ctypes.rst:2357 -msgid "" -"Create a new pointer instance, pointing to *obj*. The returned object is of " -"the type ``POINTER(type(obj))``." -msgstr "" - -#: library/ctypes.rst:2360 -msgid "" -"Note: If you just want to pass a pointer to an object to a foreign function " -"call, you should use ``byref(obj)`` which is much faster." -msgstr "" - -#: library/ctypes.rst:2366 -msgid "" -"This function resizes the internal memory buffer of *obj*, which must be an " -"instance of a ctypes type. It is not possible to make the buffer smaller " -"than the native size of the objects type, as given by ``sizeof(type(obj))``, " -"but it is possible to enlarge the buffer." -msgstr "" - -#: library/ctypes.rst:2374 -msgid "" -"Set the current value of the ctypes-private copy of the system :data:`errno` " -"variable in the calling thread to *value* and return the previous value." -msgstr "" - -#: library/ctypes.rst:2377 -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.set_errno`` with " -"argument ``errno``." -msgstr "" - -#: library/ctypes.rst:2382 -msgid "" -"Sets the current value of the ctypes-private copy of the system :data:`!" -"LastError` variable in the calling thread to *value* and return the previous " -"value." -msgstr "" - -#: library/ctypes.rst:2388 -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.set_last_error`` with " -"argument ``error``." -msgstr "" - -#: library/ctypes.rst:2393 -msgid "" -"Returns the size in bytes of a ctypes type or instance memory buffer. Does " -"the same as the C ``sizeof`` operator." -msgstr "" - -#: library/ctypes.rst:2399 -msgid "" -"Return the byte string at *void \\*ptr*. If *size* is specified, it is used " -"as size, otherwise the string is assumed to be zero-terminated." -msgstr "" - -#: library/ctypes.rst:2403 -#, fuzzy -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.string_at`` with " -"arguments ``ptr``, ``size``." -msgstr "" -"Charger une bibliothèque à l'aide d'un de ces objets avec en argument " -"``name``, le nom de la bibliothèque (une chaîne de caractères), lève " -"un :ref:`évènement d'audit ` ``ctypes.dlopen``." - -#: library/ctypes.rst:2408 -msgid "" -"Creates an instance of :exc:`OSError`. If *code* is not " -"specified, :func:`GetLastError` is called to determine the error code. If " -"*descr* is not specified, :func:`FormatError` is called to get a textual " -"description of the error." -msgstr "" - -#: library/ctypes.rst:2415 -#, fuzzy -msgid "" -"An instance of :exc:`WindowsError` used to be created, which is now an alias " -"of :exc:`OSError`." -msgstr "" -"En Windows, les erreurs levaient auparavant une :exc:`WindowsError`, qui est " -"maintenant un alias de :exc:`OSError`." - -#: library/ctypes.rst:2422 -msgid "" -"Return the wide-character string at *void \\*ptr*. If *size* is specified, " -"it is used as the number of characters of the string, otherwise the string " -"is assumed to be zero-terminated." -msgstr "" - -#: library/ctypes.rst:2427 -#, fuzzy -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.wstring_at`` with " -"arguments ``ptr``, ``size``." -msgstr "" -"Charger une bibliothèque à l'aide d'un de ces objets avec en argument " -"``name``, le nom de la bibliothèque (une chaîne de caractères), lève " -"un :ref:`évènement d'audit ` ``ctypes.dlopen``." - -#: library/ctypes.rst:2432 -msgid "" -"Return a :class:`memoryview` object of length *size* that references memory " -"starting at *void \\*ptr*." -msgstr "" - -#: library/ctypes.rst:2435 -msgid "" -"If *readonly* is true, the returned :class:`!memoryview` object can not be " -"used to modify the underlying memory. (Changes made by other means will " -"still be reflected in the returned object.)" -msgstr "" - -#: library/ctypes.rst:2440 -msgid "" -"This function is similar to :func:`string_at` with the key difference of not " -"making a copy of the specified memory. It is a semantically equivalent (but " -"more efficient) alternative to ``memoryview((c_byte * " -"size).from_address(ptr))``. (While :meth:`~_CData.from_address` only takes " -"integers, *ptr* can also be given as a :class:`ctypes.POINTER` or " -"a :func:`~ctypes.byref` object.)" -msgstr "" - -#: library/ctypes.rst:2447 -#, fuzzy -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.memoryview_at`` with " -"arguments ``address``, ``size``, ``readonly``." -msgstr "" -"Charger une bibliothèque à l'aide d'un de ces objets avec en argument " -"``name``, le nom de la bibliothèque (une chaîne de caractères), lève " -"un :ref:`évènement d'audit ` ``ctypes.dlopen``." - -#: library/ctypes.rst:2455 -msgid "Data types" -msgstr "Types de données" - -#: library/ctypes.rst:2460 -msgid "" -"This non-public class is the common base class of all ctypes data types. " -"Among other things, all ctypes type instances contain a memory block that " -"hold C compatible data; the address of the memory block is returned by " -"the :func:`addressof` helper function. Another instance variable is exposed " -"as :attr:`_objects`; this contains other Python objects that need to be kept " -"alive in case the memory block contains pointers." -msgstr "" - -#: library/ctypes.rst:2467 -msgid "" -"Common methods of ctypes data types, these are all class methods (to be " -"exact, they are methods of the :term:`metaclass`):" -msgstr "" - -#: library/ctypes.rst:2472 -msgid "" -"This method returns a ctypes instance that shares the buffer of the *source* " -"object. The *source* object must support the writeable buffer interface. " -"The optional *offset* parameter specifies an offset into the source buffer " -"in bytes; the default is zero. If the source buffer is not large enough " -"a :exc:`ValueError` is raised." -msgstr "" - -#: library/ctypes.rst:2488 -msgid "" -"Raises an :ref:`auditing event ` ``ctypes.cdata/buffer`` with " -"arguments ``pointer``, ``size``, ``offset``." -msgstr "" - -#: library/ctypes.rst:2482 -msgid "" -"This method creates a ctypes instance, copying the buffer from the *source* " -"object buffer which must be readable. The optional *offset* parameter " -"specifies an offset into the source buffer in bytes; the default is zero. " -"If the source buffer is not large enough a :exc:`ValueError` is raised." -msgstr "" - -#: library/ctypes.rst:2492 -msgid "" -"This method returns a ctypes type instance using the memory specified by " -"*address* which must be an integer." -msgstr "" - -#: library/ctypes.rst:2497 -msgid "" -"This method, and others that indirectly call this method, raises " -"an :ref:`auditing event ` ``ctypes.cdata`` with argument " -"``address``." -msgstr "" - -#: library/ctypes.rst:2503 -msgid "" -"This method adapts *obj* to a ctypes type. It is called with the actual " -"object used in a foreign function call when the type is present in the " -"foreign function's :attr:`~_CFuncPtr.argtypes` tuple; it must return an " -"object that can be used as a function call parameter." -msgstr "" - -#: library/ctypes.rst:2508 -msgid "" -"All ctypes data types have a default implementation of this classmethod that " -"normally returns *obj* if that is an instance of the type. Some types " -"accept other objects as well." -msgstr "" - -#: library/ctypes.rst:2514 -msgid "" -"This method returns a ctypes type instance exported by a shared library. " -"*name* is the name of the symbol that exports the data, *library* is the " -"loaded shared library." -msgstr "" - -#: library/ctypes.rst:2518 -msgid "Common class variables of ctypes data types:" -msgstr "" - -#: library/ctypes.rst:2522 -msgid "" -"The pointer type that was created by calling :func:`POINTER` for " -"corresponding ctypes data type. If a pointer type was not yet created, the " -"attribute is missing." -msgstr "" - -#: library/ctypes.rst:2528 -msgid "Common instance variables of ctypes data types:" -msgstr "" - -#: library/ctypes.rst:2532 -msgid "" -"Sometimes ctypes data instances do not own the memory block they contain, " -"instead they share part of the memory block of a base object. " -"The :attr:`_b_base_` read-only member is the root ctypes object that owns " -"the memory block." -msgstr "" - -#: library/ctypes.rst:2539 -msgid "" -"This read-only variable is true when the ctypes data instance has allocated " -"the memory block itself, false otherwise." -msgstr "" - -#: library/ctypes.rst:2544 -msgid "" -"This member is either ``None`` or a dictionary containing Python objects " -"that need to be kept alive so that the memory block contents is kept valid. " -"This object is only exposed for debugging; never modify the contents of this " -"dictionary." -msgstr "" - -#: library/ctypes.rst:2557 -msgid "" -"This non-public class is the base class of all fundamental ctypes data " -"types. It is mentioned here because it contains the common attributes of the " -"fundamental ctypes data types. :class:`_SimpleCData` is a subclass " -"of :class:`_CData`, so it inherits their methods and attributes. ctypes data " -"types that are not and do not contain pointers can now be pickled." -msgstr "" - -#: library/ctypes.rst:2563 -msgid "Instances have a single attribute:" -msgstr "" - -#: library/ctypes.rst:2567 -msgid "" -"This attribute contains the actual value of the instance. For integer and " -"pointer types, it is an integer, for character types, it is a single " -"character bytes object or string, for character pointer types it is a Python " -"bytes object or string." -msgstr "" - -#: library/ctypes.rst:2572 -msgid "" -"When the ``value`` attribute is retrieved from a ctypes instance, usually a " -"new object is returned each time. :mod:`!ctypes` does *not* implement " -"original object return, always a new object is constructed. The same is " -"true for all other ctypes object instances." -msgstr "" - -#: library/ctypes.rst:2577 -msgid "Each subclass has a class attribute:" -msgstr "" - -#: library/ctypes.rst:2581 -msgid "" -"Class attribute that contains an internal type code, as a single-character " -"string. See :ref:`ctypes-fundamental-data-types` for a summary." -msgstr "" - -#: library/ctypes.rst:2585 -msgid "" -"Types marked \\* in the summary may be (or always are) aliases of a " -"different :class:`_SimpleCData` subclass, and will not necessarily use the " -"listed type code. For example, if the " -"platform's :c:expr:`long`, :c:expr:`long long` and :c:expr:`time_t` C types " -"are the same, then :class:`c_long`, :class:`c_longlong` " -"and :class:`c_time_t` all refer to a single class, :class:`c_long`, " -"whose :attr:`_type_` code is ``'l'``. The ``'L'`` code will be unused." -msgstr "" - -#: library/ctypes.rst:2596 -msgid "" -"The :mod:`array` and :ref:`struct ` modules, as well as " -"third-party modules like `numpy `__, use similar -- but " -"slightly different -- type codes." -msgstr "" - -#: library/ctypes.rst:2601 -msgid "" -"Fundamental data types, when returned as foreign function call results, or, " -"for example, by retrieving structure field members or array items, are " -"transparently converted to native Python types. In other words, if a " -"foreign function has a :attr:`~_CFuncPtr.restype` of :class:`c_char_p`, you " -"will always receive a Python bytes object, *not* a :class:`c_char_p` " -"instance." -msgstr "" - -#: library/ctypes.rst:2609 -msgid "" -"Subclasses of fundamental data types do *not* inherit this behavior. So, if " -"a foreign functions :attr:`!restype` is a subclass of :class:`c_void_p`, you " -"will receive an instance of this subclass from the function call. Of course, " -"you can get the value of the pointer by accessing the ``value`` attribute." -msgstr "" - -#: library/ctypes.rst:2614 -msgid "These are the fundamental ctypes data types:" -msgstr "" - -#: library/ctypes.rst:2618 -msgid "" -"Represents the C :c:expr:`signed char` datatype, and interprets the value as " -"small integer. The constructor accepts an optional integer initializer; no " -"overflow checking is done." -msgstr "" - -#: library/ctypes.rst:2625 -msgid "" -"Represents the C :c:expr:`char` datatype, and interprets the value as a " -"single character. The constructor accepts an optional string initializer, " -"the length of the string must be exactly one character." -msgstr "" - -#: library/ctypes.rst:2632 -msgid "" -"Represents the C :c:expr:`char *` datatype when it points to a zero-" -"terminated string. For a general character pointer that may also point to " -"binary data, ``POINTER(c_char)`` must be used. The constructor accepts an " -"integer address, or a bytes object." -msgstr "" - -#: library/ctypes.rst:2640 -msgid "" -"Represents the C :c:expr:`double` datatype. The constructor accepts an " -"optional float initializer." -msgstr "" - -#: library/ctypes.rst:2646 -msgid "" -"Represents the C :c:expr:`long double` datatype. The constructor accepts an " -"optional float initializer. On platforms where ``sizeof(long double) == " -"sizeof(double)`` it is an alias to :class:`c_double`." -msgstr "" - -#: library/ctypes.rst:2652 -msgid "" -"Represents the C :c:expr:`float` datatype. The constructor accepts an " -"optional float initializer." -msgstr "" - -#: library/ctypes.rst:2658 -msgid "" -"Represents the C :c:expr:`double complex` datatype, if available. The " -"constructor accepts an optional :class:`complex` initializer." -msgstr "" - -#: library/ctypes.rst:2666 -msgid "" -"Represents the C :c:expr:`float complex` datatype, if available. The " -"constructor accepts an optional :class:`complex` initializer." -msgstr "" - -#: library/ctypes.rst:2674 -msgid "" -"Represents the C :c:expr:`long double complex` datatype, if available. The " -"constructor accepts an optional :class:`complex` initializer." -msgstr "" - -#: library/ctypes.rst:2682 -msgid "" -"Represents the C :c:expr:`signed int` datatype. The constructor accepts an " -"optional integer initializer; no overflow checking is done. On platforms " -"where ``sizeof(int) == sizeof(long)`` it is an alias to :class:`c_long`." -msgstr "" - -#: library/ctypes.rst:2689 -msgid "" -"Represents the C 8-bit :c:expr:`signed int` datatype. It is an alias " -"for :class:`c_byte`." -msgstr "" - -#: library/ctypes.rst:2695 -msgid "" -"Represents the C 16-bit :c:expr:`signed int` datatype. Usually an alias " -"for :class:`c_short`." -msgstr "" - -#: library/ctypes.rst:2701 -msgid "" -"Represents the C 32-bit :c:expr:`signed int` datatype. Usually an alias " -"for :class:`c_int`." -msgstr "" - -#: library/ctypes.rst:2707 -msgid "" -"Represents the C 64-bit :c:expr:`signed int` datatype. Usually an alias " -"for :class:`c_longlong`." -msgstr "" - -#: library/ctypes.rst:2713 -msgid "" -"Represents the C :c:expr:`signed long` datatype. The constructor accepts an " -"optional integer initializer; no overflow checking is done." -msgstr "" - -#: library/ctypes.rst:2719 -msgid "" -"Represents the C :c:expr:`signed long long` datatype. The constructor " -"accepts an optional integer initializer; no overflow checking is done. On " -"platforms where ``sizeof(long long) == sizeof(long)`` it is an alias " -"to :class:`c_long`." -msgstr "" - -#: library/ctypes.rst:2727 -msgid "" -"Represents the C :c:expr:`signed short` datatype. The constructor accepts " -"an optional integer initializer; no overflow checking is done." -msgstr "" - -#: library/ctypes.rst:2733 -msgid "" -"Represents the C :c:type:`size_t` datatype. Usually an alias for another " -"unsigned integer type." -msgstr "" - -#: library/ctypes.rst:2739 -msgid "" -"Represents the :c:type:`Py_ssize_t` datatype. This is a signed version " -"of :c:type:`size_t`; that is, the POSIX :c:type:`ssize_t` type. Usually an " -"alias for another integer type." -msgstr "" - -#: library/ctypes.rst:2749 -msgid "" -"Represents the C :c:type:`time_t` datatype. Usually an alias for another " -"integer type." -msgstr "" - -#: library/ctypes.rst:2757 -msgid "" -"Represents the C :c:expr:`unsigned char` datatype, it interprets the value " -"as small integer. The constructor accepts an optional integer initializer; " -"no overflow checking is done." -msgstr "" - -#: library/ctypes.rst:2764 -msgid "" -"Represents the C :c:expr:`unsigned int` datatype. The constructor accepts " -"an optional integer initializer; no overflow checking is done. On platforms " -"where ``sizeof(int) == sizeof(long)`` it is an alias for :class:`c_ulong`." -msgstr "" - -#: library/ctypes.rst:2771 -msgid "" -"Represents the C 8-bit :c:expr:`unsigned int` datatype. It is an alias " -"for :class:`c_ubyte`." -msgstr "" - -#: library/ctypes.rst:2777 -msgid "" -"Represents the C 16-bit :c:expr:`unsigned int` datatype. Usually an alias " -"for :class:`c_ushort`." -msgstr "" - -#: library/ctypes.rst:2783 -msgid "" -"Represents the C 32-bit :c:expr:`unsigned int` datatype. Usually an alias " -"for :class:`c_uint`." -msgstr "" - -#: library/ctypes.rst:2789 -msgid "" -"Represents the C 64-bit :c:expr:`unsigned int` datatype. Usually an alias " -"for :class:`c_ulonglong`." -msgstr "" - -#: library/ctypes.rst:2795 -msgid "" -"Represents the C :c:expr:`unsigned long` datatype. The constructor accepts " -"an optional integer initializer; no overflow checking is done." -msgstr "" - -#: library/ctypes.rst:2801 -msgid "" -"Represents the C :c:expr:`unsigned long long` datatype. The constructor " -"accepts an optional integer initializer; no overflow checking is done. On " -"platforms where ``sizeof(long long) == sizeof(long)`` it is an alias " -"to :class:`c_long`." -msgstr "" - -#: library/ctypes.rst:2809 -msgid "" -"Represents the C :c:expr:`unsigned short` datatype. The constructor accepts " -"an optional integer initializer; no overflow checking is done." -msgstr "" - -#: library/ctypes.rst:2815 -msgid "" -"Represents the C :c:expr:`void *` type. The value is represented as " -"integer. The constructor accepts an optional integer initializer." -msgstr "" - -#: library/ctypes.rst:2821 -msgid "" -"Represents the C :c:type:`wchar_t` datatype, and interprets the value as a " -"single character unicode string. The constructor accepts an optional string " -"initializer, the length of the string must be exactly one character." -msgstr "" - -#: library/ctypes.rst:2828 -msgid "" -"Represents the C :c:expr:`wchar_t *` datatype, which must be a pointer to a " -"zero-terminated wide character string. The constructor accepts an integer " -"address, or a string." -msgstr "" - -#: library/ctypes.rst:2835 -msgid "" -"Represent the C :c:expr:`bool` datatype (more accurately, :c:expr:`_Bool` " -"from C99). Its value can be ``True`` or ``False``, and the constructor " -"accepts any object that has a truth value." -msgstr "" - -#: library/ctypes.rst:2842 -msgid "" -"Represents a :c:type:`!HRESULT` value, which contains success or error " -"information for a function or method call." -msgstr "" - -#: library/ctypes.rst:2850 -msgid "" -"Represents the C :c:expr:`PyObject *` datatype. Calling this without an " -"argument creates a ``NULL`` :c:expr:`PyObject *` pointer." -msgstr "" - -#: library/ctypes.rst:2853 -msgid ":class:`!py_object` is now a :term:`generic type`." -msgstr "" - -#: library/ctypes.rst:2858 -msgid "" -"The :mod:`!ctypes.wintypes` module provides quite some other Windows " -"specific data types, for example :c:type:`!HWND`, :c:type:`!" -"WPARAM`, :c:type:`!VARIANT_BOOL` or :c:type:`!DWORD`. Some useful structures " -"like :c:type:`!MSG` or :c:type:`!RECT` are also defined." -msgstr "" - -#: library/ctypes.rst:2867 -msgid "Structured data types" -msgstr "Types de données dérivés de Structure" - -#: library/ctypes.rst:2872 -msgid "Abstract base class for unions in native byte order." -msgstr "" - -#: library/ctypes.rst:2874 -msgid "" -"Unions share common attributes and behavior with structures; " -"see :class:`Structure` documentation for details." -msgstr "" - -#: library/ctypes.rst:2879 -#, fuzzy -msgid "Abstract base class for unions in *big endian* byte order." -msgstr "Classe de base abstraite pour les *arrays*." - -#: library/ctypes.rst:2885 -#, fuzzy -msgid "Abstract base class for unions in *little endian* byte order." -msgstr "Classe de base abstraite pour les *arrays*." - -#: library/ctypes.rst:2891 -msgid "Abstract base class for structures in *big endian* byte order." -msgstr "" - -#: library/ctypes.rst:2896 -msgid "Abstract base class for structures in *little endian* byte order." -msgstr "" - -#: library/ctypes.rst:2898 -msgid "" -"Structures and unions with non-native byte order cannot contain pointer type " -"fields, or any other data types containing pointer type fields." -msgstr "" - -#: library/ctypes.rst:2904 -msgid "Abstract base class for structures in *native* byte order." -msgstr "" - -#: library/ctypes.rst:2906 -msgid "" -"Concrete structure and union types must be created by subclassing one of " -"these types, and at least define a :attr:`_fields_` class variable. :mod:`!" -"ctypes` will create :term:`descriptor`\\s which allow reading and writing " -"the fields by direct attribute accesses. These are the" -msgstr "" - -#: library/ctypes.rst:2914 -msgid "" -"A sequence defining the structure fields. The items must be 2-tuples or 3-" -"tuples. The first item is the name of the field, the second item specifies " -"the type of the field; it can be any ctypes data type." -msgstr "" - -#: library/ctypes.rst:2918 -msgid "" -"For integer type fields like :class:`c_int`, a third optional item can be " -"given. It must be a small positive integer defining the bit width of the " -"field." -msgstr "" - -#: library/ctypes.rst:2922 -msgid "" -"Field names must be unique within one structure or union. This is not " -"checked, only one field can be accessed when names are repeated." -msgstr "" - -#: library/ctypes.rst:2925 -msgid "" -"It is possible to define the :attr:`_fields_` class variable *after* the " -"class statement that defines the Structure subclass, this allows creating " -"data types that directly or indirectly reference themselves::" -msgstr "" - -#: library/ctypes.rst:2935 -msgid "" -"The :attr:`!_fields_` class variable can only be set once. Later assignments " -"will raise an :exc:`AttributeError`." -msgstr "" - -#: library/ctypes.rst:2938 -msgid "" -"Additionally, the :attr:`!_fields_` class variable must be defined before " -"the structure or union type is first used: an instance or subclass is " -"created, :func:`sizeof` is called on it, and so on. Later assignments " -"to :attr:`!_fields_` will raise an :exc:`AttributeError`. If :attr:`!" -"_fields_` has not been set before such use, the structure or union will have " -"no own fields, as if :attr:`!_fields_` was empty." -msgstr "" - -#: library/ctypes.rst:2946 -msgid "" -"Sub-subclasses of structure types inherit the fields of the base class plus " -"the :attr:`_fields_` defined in the sub-subclass, if any." -msgstr "" - -#: library/ctypes.rst:2952 -msgid "" -"An optional small integer that allows overriding the alignment of structure " -"fields in the instance." -msgstr "" - -#: library/ctypes.rst:2955 -msgid "" -"This is only implemented for the MSVC-compatible memory layout " -"(see :attr:`_layout_`)." -msgstr "" - -#: library/ctypes.rst:2958 -msgid "" -"Setting :attr:`!_pack_` to 0 is the same as not setting it at all. " -"Otherwise, the value must be a positive power of two. The effect is " -"equivalent to ``#pragma pack(N)`` in C, except :mod:`!ctypes` may allow " -"larger *n* than what the compiler accepts." -msgstr "" - -#: library/ctypes.rst:2963 -msgid "" -":attr:`!_pack_` must already be defined when :attr:`_fields_` is assigned, " -"otherwise it will have no effect." -msgstr "" - -#: library/ctypes.rst:2968 -msgid "" -"For historical reasons, if :attr:`!_pack_` is non-zero, the MSVC-compatible " -"layout will be used by default. On non-Windows platforms, this default is " -"deprecated and is slated to become an error in Python 3.19. If it is " -"intended, set :attr:`~Structure._layout_` to ``'ms'`` explicitly." -msgstr "" - -#: library/ctypes.rst:2977 -msgid "" -"An optional small integer that allows increasing the alignment of the " -"structure when being packed or unpacked to/from memory." -msgstr "" - -#: library/ctypes.rst:2980 -msgid "" -"The value must not be negative. The effect is equivalent to " -"``__attribute__((aligned(N)))`` on GCC or ``#pragma align(N)`` on MSVC, " -"except :mod:`!ctypes` may allow values that the compiler would reject." -msgstr "" - -#: library/ctypes.rst:2985 -msgid "" -":attr:`!_align_` can only *increase* a structure's alignment requirements. " -"Setting it to 0 or 1 has no effect." -msgstr "" - -#: library/ctypes.rst:2988 -msgid "" -"Using values that are not powers of two is discouraged and may lead to " -"surprising behavior." -msgstr "" - -#: library/ctypes.rst:2991 -msgid "" -":attr:`!_align_` must already be defined when :attr:`_fields_` is assigned, " -"otherwise it will have no effect." -msgstr "" - -#: library/ctypes.rst:2998 -msgid "" -"An optional string naming the struct/union layout. It can currently be set " -"to:" -msgstr "" - -#: library/ctypes.rst:3001 -msgid "" -"``\"ms\"``: the layout used by the Microsoft compiler (MSVC). On GCC and " -"Clang, this layout can be selected with ``__attribute__((ms_struct))``." -msgstr "" - -#: library/ctypes.rst:3004 -msgid "" -"``\"gcc-sysv\"``: the layout used by GCC with the System V or “SysV-like” " -"data model, as used on Linux and macOS. With this " -"layout, :attr:`~Structure._pack_` must be unset or zero." -msgstr "" - -#: library/ctypes.rst:3008 -msgid "" -"If not set explicitly, ``ctypes`` will use a default that matches the " -"platform conventions. This default may change in future Python releases (for " -"example, when a new platform gains official support, or when a difference " -"between similar platforms is found). Currently the default will be:" -msgstr "" - -#: library/ctypes.rst:3014 -msgid "On Windows: ``\"ms\"``" -msgstr "" - -#: library/ctypes.rst:3015 -msgid "" -"When :attr:`~Structure._pack_` is specified: ``\"ms\"``. (This is " -"deprecated; see :attr:`~Structure._pack_` documentation.)" -msgstr "" - -#: library/ctypes.rst:3017 -msgid "Otherwise: ``\"gcc-sysv\"``" -msgstr "" - -#: library/ctypes.rst:3019 -msgid "" -":attr:`!_layout_` must already be defined when :attr:`~Structure._fields_` " -"is assigned, otherwise it will have no effect." -msgstr "" - -#: library/ctypes.rst:3026 -msgid "" -"An optional sequence that lists the names of unnamed (anonymous) " -"fields. :attr:`_anonymous_` must be already defined when :attr:`_fields_` is " -"assigned, otherwise it will have no effect." -msgstr "" - -#: library/ctypes.rst:3030 -msgid "" -"The fields listed in this variable must be structure or union type " -"fields. :mod:`!ctypes` will create descriptors in the structure type that " -"allows accessing the nested fields directly, without the need to create the " -"structure or union field." -msgstr "" - -#: library/ctypes.rst:3035 -msgid "Here is an example type (Windows)::" -msgstr "" - -#: library/ctypes.rst:3048 -msgid "" -"The ``TYPEDESC`` structure describes a COM data type, the ``vt`` field " -"specifies which one of the union fields is valid. Since the ``u`` field is " -"defined as anonymous field, it is now possible to access the members " -"directly off the TYPEDESC instance. ``td.lptdesc`` and ``td.u.lptdesc`` are " -"equivalent, but the former is faster since it does not need to create a " -"temporary union instance::" -msgstr "" - -#: library/ctypes.rst:3060 -msgid "" -"It is possible to define sub-subclasses of structures, they inherit the " -"fields of the base class. If the subclass definition has a " -"separate :attr:`_fields_` variable, the fields specified in this are " -"appended to the fields of the base class." -msgstr "" - -#: library/ctypes.rst:3065 -msgid "" -"Structure and union constructors accept both positional and keyword " -"arguments. Positional arguments are used to initialize member fields in the " -"same order as they are appear in :attr:`_fields_`. Keyword arguments in the " -"constructor are interpreted as attribute assignments, so they will " -"initialize :attr:`_fields_` with the same name, or create new attributes for " -"names not present in :attr:`_fields_`." -msgstr "" - -#: library/ctypes.rst:3075 -msgid "" -"Descriptor for fields of a :class:`Structure` and :class:`Union`. For " -"example::" -msgstr "" - -#: library/ctypes.rst:3098 -msgid "All attributes are read-only." -msgstr "" - -#: library/ctypes.rst:3100 -msgid "" -":class:`!CField` objects are created via :attr:`~Structure._fields_`; do not " -"instantiate the class directly." -msgstr "" - -#: library/ctypes.rst:3105 -msgid "" -"Previously, descriptors only had ``offset`` and ``size`` attributes and a " -"readable string representation; the :class:`!CField` class was not available " -"directly." -msgstr "" - -#: library/ctypes.rst:3111 -msgid "Name of the field, as a string." -msgstr "" - -#: library/ctypes.rst:3115 -msgid "Type of the field, as a :ref:`ctypes class `." -msgstr "" - -#: library/ctypes.rst:3120 -msgid "Offset of the field, in bytes." -msgstr "" - -#: library/ctypes.rst:3122 -msgid "" -"For bitfields, this is the offset of the underlying byte-aligned *storage " -"unit*; see :attr:`~CField.bit_offset`." -msgstr "" - -#: library/ctypes.rst:3127 -msgid "Size of the field, in bytes." -msgstr "" - -#: library/ctypes.rst:3129 -msgid "" -"For bitfields, this is the size of the underlying *storage unit*. Typically, " -"it has the same size as the bitfield's type." -msgstr "" - -#: library/ctypes.rst:3134 -msgid "For non-bitfields, equivalent to :attr:`~CField.byte_size`." -msgstr "" - -#: library/ctypes.rst:3136 -msgid "" -"For bitfields, this contains a backwards-compatible bit-packed value that " -"combines :attr:`~CField.bit_size` and :attr:`~CField.bit_offset`. Prefer " -"using the explicit attributes instead." -msgstr "" - -#: library/ctypes.rst:3143 -msgid "True if this is a bitfield." -msgstr "" - -#: library/ctypes.rst:3148 -msgid "" -"The location of a bitfield within its *storage unit*, that is, " -"within :attr:`~CField.byte_size` bytes of memory starting " -"at :attr:`~CField.byte_offset`." -msgstr "" - -#: library/ctypes.rst:3152 -msgid "" -"To get the field's value, read the storage unit as an integer, :ref:`shift " -"left ` by :attr:`!bit_offset` and take the :attr:`!bit_size` least " -"significant bits." -msgstr "" - -#: library/ctypes.rst:3156 -msgid "" -"For non-bitfields, :attr:`!bit_offset` is zero and :attr:`!bit_size` is " -"equal to ``byte_size * 8``." -msgstr "" - -#: library/ctypes.rst:3161 -msgid "" -"True if this field is anonymous, that is, it contains nested sub-fields that " -"should be merged into a containing structure or union." -msgstr "" - -#: library/ctypes.rst:3168 -msgid "Arrays and pointers" -msgstr "Tableaux et pointeurs" - -#: library/ctypes.rst:3172 -msgid "Abstract base class for arrays." -msgstr "Classe de base abstraite pour les *arrays*." - -#: library/ctypes.rst:3174 -msgid "" -"The recommended way to create concrete array types is by multiplying " -"any :mod:`!ctypes` data type with a non-negative integer. Alternatively, " -"you can subclass this type and define :attr:`_length_` and :attr:`_type_` " -"class variables. Array elements can be read and written using standard " -"subscript and slice accesses; for slice reads, the resulting object is *not* " -"itself an :class:`Array`." -msgstr "" - -#: library/ctypes.rst:3181 -msgid "Arrays are :ref:`generic ` over the type of their elements." -msgstr "" - -#: library/ctypes.rst:3186 -msgid "" -"A positive integer specifying the number of elements in the array. Out-of-" -"range subscripts result in an :exc:`IndexError`. Will be returned " -"by :func:`len`." -msgstr "" - -#: library/ctypes.rst:3193 -msgid "Specifies the type of each element in the array." -msgstr "Spécifie le type de chaque élément de l'*array*." - -#: library/ctypes.rst:3196 -msgid "" -"Array subclass constructors accept positional arguments, used to initialize " -"the elements in order." -msgstr "" - -#: library/ctypes.rst:3201 -msgid "" -"Create an array. Equivalent to ``type * length``, where *type* is a :mod:`!" -"ctypes` data type and *length* an integer." -msgstr "" - -#: library/ctypes.rst:3205 -msgid "In favor of multiplication." -msgstr "" - -#: library/ctypes.rst:3211 -msgid "Private, abstract base class for pointers." -msgstr "" - -#: library/ctypes.rst:3213 -msgid "" -"Concrete pointer types are created by calling :func:`POINTER` with the type " -"that will be pointed to; this is done automatically by :func:`pointer`." -msgstr "" - -#: library/ctypes.rst:3217 -msgid "" -"If a pointer points to an array, its elements can be read and written using " -"standard subscript and slice accesses. Pointer objects have no size, " -"so :func:`len` will raise :exc:`TypeError`. Negative subscripts will read " -"from the memory *before* the pointer (as in C), and out-of-range subscripts " -"will probably crash with an access violation (if you're lucky)." -msgstr "" - -#: library/ctypes.rst:3227 -msgid "Specifies the type pointed to." -msgstr "" - -#: library/ctypes.rst:3231 -msgid "" -"Returns the object to which to pointer points. Assigning to this attribute " -"changes the pointer to point to the assigned object." -msgstr "" - -#: library/ctypes.rst:3238 -msgid "Exceptions" -msgstr "Exceptions" - -#: library/ctypes.rst:3242 -msgid "" -"This exception is raised when a foreign function call cannot convert one of " -"the passed arguments." -msgstr "" -"Exception levée quand un appel à la fonction externe ne peut pas convertir " -"un des arguments qu'elle a reçus." - -#: library/ctypes.rst:3248 -#, fuzzy -msgid "This exception is raised when a COM method call failed." -msgstr "" -"Exception levée quand un appel à la fonction externe ne peut pas convertir " -"un des arguments qu'elle a reçus." - -#: library/ctypes.rst:3252 -msgid "The integer value representing the error code." -msgstr "" - -#: library/ctypes.rst:3256 -msgid "The error message." -msgstr "" - -#: library/ctypes.rst:3260 -msgid "The 5-tuple ``(descr, source, helpfile, helpcontext, progid)``." -msgstr "" - -#: library/ctypes.rst:3262 -msgid "" -"*descr* is the textual description. *source* is the language-dependent " -"``ProgID`` for the class or application that raised the error. *helpfile* " -"is the path of the help file. *helpcontext* is the help context " -"identifier. *progid* is the ``ProgID`` of the interface that defined the " -"error." -msgstr "" - -#~ msgid "" -#~ "Note: The code samples in this tutorial use :mod:`doctest` to make sure " -#~ "that they actually work. Since some code samples behave differently " -#~ "under Linux, Windows, or macOS, they contain doctest directives in " -#~ "comments." -#~ msgstr "" -#~ "Remarque : les exemples de code de ce didacticiel " -#~ "utilisent :mod:`doctest` pour s'assurer de leur propre bon " -#~ "fonctionnement. Vu que certains de ces exemples ont un comportement " -#~ "différent en Linux, Windows ou macOS, ils contiennent des directives " -#~ "*doctest* dans les commentaires." - -#~ msgid "bool (1)" -#~ msgstr "*bool* (1)" - -#~ msgid "int" -#~ msgstr "*int*" - -#, fuzzy -#~ msgid ":c:expr:`__int64` or :c:expr:`long long`" -#~ msgstr ":c:type:`__int64` ou :c:type:`long long`" - -#, fuzzy -#~ msgid ":c:expr:`unsigned __int64` or :c:expr:`unsigned long long`" -#~ msgstr ":c:type:`unsigned __int64` ou :c:type:`unsigned long long`" - -#, fuzzy -#~ msgid ":c:type:`ssize_t` or :c:expr:`Py_ssize_t`" -#~ msgstr ":c:type:`ssize_t` ou :c:type:`Py_ssize_t`" - -#~ msgid "float" -#~ msgstr "*float*" - -#~ msgid "The constructor accepts any object with a truth value." -#~ msgstr "" -#~ "Le constructeur accepte n'importe quel objet convertible en booléen." - -#~ msgid "" -#~ "When programming in a compiled language, shared libraries are accessed " -#~ "when compiling/linking a program, and when the program is run." -#~ msgstr "" -#~ "Les langages compilés ont besoin d'accéder aux bibliothèques partagées au " -#~ "moment de la compilation, de l'édition de liens et pendant l'exécution du " -#~ "programme." - -#, fuzzy -#~ msgid "" -#~ "The purpose of the :func:`~ctypes.util.find_library` function is to " -#~ "locate a library in a way similar to what the compiler or runtime loader " -#~ "does (on platforms with several versions of a shared library the most " -#~ "recent should be loaded), while the ctypes library loaders act like when " -#~ "a program is run, and call the runtime loader directly." -#~ msgstr "" -#~ "Le but de la fonction :func:`find_library` est de trouver une " -#~ "bibliothèque de la même façon que le ferait le compilateur ou le chargeur " -#~ "(sur les plates-formes avec plusieurs versions de la même bibliothèque, " -#~ "la plus récente est chargée), alors que les chargeurs de bibliothèques de " -#~ "*ctypes* se comportent de la même façon qu'un programme qui s'exécute, et " -#~ "appellent directement le chargeur." - -#, fuzzy -#~ msgid "" -#~ "The :mod:`!ctypes.util` module provides a function which can help to " -#~ "determine the library to load." -#~ msgstr "" -#~ "Le module :mod:`ctypes.util` fournit une fonction pour déterminer quelle " -#~ "bibliothèque charger." - -#~ msgid "The exact functionality is system dependent." -#~ msgstr "Le mode opératoire exact dépend du système." - -#, fuzzy -#~ msgid "" -#~ "Instances of this class represent loaded shared libraries. Functions in " -#~ "these libraries use the standard C calling convention, and are assumed to " -#~ "return :c:expr:`int`." -#~ msgstr "" -#~ "Une instance de cette classe représente une bibliothèque partagée déjà " -#~ "chargée. Les fonctions de cette bibliothèque utilisent la convention " -#~ "d'appel C standard et doivent renvoyer un :c:type:`int`." - -#~ msgid "" -#~ "The Python :term:`global interpreter lock` is released before calling any " -#~ "function exported by these libraries, and reacquired afterwards." -#~ msgstr "" -#~ "Le :term:`verrou global de l'interpréteur ` " -#~ "Python est relâché avant chaque appel d'une fonction exposée par ces " -#~ "bibliothèques et ré-activé après." - -#, fuzzy -#~ msgid "" -#~ "All these classes can be instantiated by calling them with at least one " -#~ "argument, the pathname of the shared library. If you have an existing " -#~ "handle to an already loaded shared library, it can be passed as the " -#~ "``handle`` named parameter, otherwise the underlying platform's :c:func:`!" -#~ "dlopen` or :c:func:`!LoadLibrary` function is used to load the library " -#~ "into the process, and to get a handle to it." -#~ msgstr "" -#~ "Toutes ces classes peuvent être instanciées en les appelant avec le " -#~ "chemin de la bibliothèque partagée comme unique argument. Il est aussi " -#~ "possible de passer un lien vers une bibliothèque déjà chargée en " -#~ "utilisant le paramètre ``handle``. Sinon, les fonctions ``dlopen`` ou " -#~ "``LoadLibrary`` de la plate-forme sous-jacente permettent de charger la " -#~ "bibliothèque dans le processus, et d'en obtenir un lien." - -#~ msgid "" -#~ "For accessing the C Python api directly, a ready-to-use Python shared " -#~ "library object is available:" -#~ msgstr "Il existe un moyen rapide d'accéder directement à l'API C Python :" - -#, fuzzy -#~ msgid "" -#~ "By default, Structure and Union fields are aligned in the same way the C " -#~ "compiler does it. It is possible to override this behavior by specifying " -#~ "a :attr:`~Structure._pack_` class attribute in the subclass definition. " -#~ "This must be set to a positive integer and specifies the maximum " -#~ "alignment for the fields. This is what ``#pragma pack(n)`` also does in " -#~ "MSVC. It is also possible to set a minimum alignment for how the subclass " -#~ "itself is packed in the same way ``#pragma align(n)`` works in MSVC. This " -#~ "can be achieved by specifying a ::attr:`~Structure._align_` class " -#~ "attribute in the subclass definition." -#~ msgstr "" -#~ "Par défaut les champs d'une *Structure* ou d'une *Union* sont alignés de " -#~ "la même manière que le ferait un compilateur C. Ce comportement peut être " -#~ "redéfini en définissant l'attribut :attr:`_pack_` dans la définition de " -#~ "la sous-classe. Ce champ doit être un entier positif et vaut l'alignement " -#~ "maximal des champs. C'est ce que fait ``#pragma pack(n)`` pour MSVC." - -#~ msgid "Windows only: Creates :class:`WinDLL` instances." -#~ msgstr "" -#~ "Pour créer des instances de :class:`WinDLL` (uniquement en Windows)." - -#~ msgid "Windows only: Creates :class:`OleDLL` instances." -#~ msgstr "" -#~ "Pour créer des instances de :class:`OleDLL` (uniquement en Windows)." - -#~ msgid "" -#~ "If the interpreter would have been started with :option:`-O`, the sample " -#~ "would have printed ``c_long(1)``, or ``c_long(2)`` if :option:`-OO` would " -#~ "have been specified." -#~ msgstr "" -#~ "Si l'interpréteur est lancé avec :option:`-O`, l'exemple affiche " -#~ "``c_long(1)`` et ``c_long(2)`` avec :option:`-OO`." - -#~ msgid ":exc:`WindowsError` used to be raised." -#~ msgstr ":exc:`WindowsError` était levée auparavant." - -#~ msgid "" -#~ "Raises an :ref:`auditing event ` ``ctypes.dlopen`` with " -#~ "argument ``name``." -#~ msgstr "" -#~ "Lève un :ref:`évènement d'audit ` ``ctypes.dlopen``, avec en " -#~ "argument ``name``." - -#, fuzzy -#~ msgid "" -#~ "Raises an :ref:`auditing event ` ``ctypes.dlsym/handle`` with " -#~ "arguments ``handle``, ``name``." -#~ msgstr "" -#~ "Charger une bibliothèque à l'aide d'un de ces objets avec en argument " -#~ "``name``, le nom de la bibliothèque (une chaîne de caractères), lève " -#~ "un :ref:`évènement d'audit ` ``ctypes.dlopen``." - -#, fuzzy -#~ msgid "" -#~ "Raises an :ref:`auditing event ` ``ctypes.seh_exception`` with " -#~ "argument ``code``." -#~ msgstr "" -#~ "Lève un :ref:`évènement d'audit ` ``ctypes.dlopen``, avec en " -#~ "argument ``name``." - -#, fuzzy -#~ msgid "" -#~ "Raises an :ref:`auditing event ` ``ctypes.call_function`` with " -#~ "arguments ``func_pointer``, ``arguments``." -#~ msgstr "" -#~ "Certaines manières d'appeler des fonction externes peuvent lever des " -#~ "évènements d'audit ``ctypes.call_function`` avec ``function pointer`` et " -#~ "``arguments`` comme arguments." - -#~ msgid "" -#~ "On Windows CE only the standard calling convention is used, for " -#~ "convenience the :class:`WinDLL` and :class:`OleDLL` use the standard " -#~ "calling convention on this platform." -#~ msgstr "" -#~ "Sous Windows CE, seule la convention d'appel standard est utilisée. Pour " -#~ "des raisons pratiques, :class:`WinDLL` et :class:`OleDLL` utilisent la " -#~ "convention d'appel standard sur cette plate-forme." diff --git a/library/curses.ascii.po b/library/curses.ascii.po deleted file mode 100644 index 78d62ac5f8..0000000000 --- a/library/curses.ascii.po +++ /dev/null @@ -1,499 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-24 08:25+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: library/curses.ascii.rst:2 -msgid ":mod:`!curses.ascii` --- Utilities for ASCII characters" -msgstr ":mod:`!curses.ascii` — Utilitaires pour les caractères ASCII" - -#: library/curses.ascii.rst:7 -msgid "**Source code:** :source:`Lib/curses/ascii.py`" -msgstr "**Code source :** :source:`Lib/curses/ascii.py`" - -#: library/curses.ascii.rst:11 -#, fuzzy -msgid "" -"The :mod:`!curses.ascii` module supplies name constants for ASCII characters " -"and functions to test membership in various ASCII character classes. The " -"constants supplied are names for control characters as follows:" -msgstr "" -"Le module :mod:`curses.ascii` fournit des constantes de nom pour les " -"caractères ASCII et des fonctions permettant de tester l'appartenance à " -"différentes classes de caractères ASCII. Les constantes fournies sont des " -"noms pour les caractères de contrôle comme suit :" - -#: library/curses.ascii.rst:16 -msgid "Name" -msgstr "Nom" - -#: library/curses.ascii.rst:16 -msgid "Meaning" -msgstr "Signification" - -#: library/curses.ascii.rst:20 -msgid "Start of heading, console interrupt" -msgstr "Début d'en-tête, interruption de console" - -#: library/curses.ascii.rst:22 -msgid "Start of text" -msgstr "Début du texte" - -#: library/curses.ascii.rst:24 -msgid "End of text" -msgstr "Fin du texte" - -#: library/curses.ascii.rst:26 -msgid "End of transmission" -msgstr "Fin de transmission" - -#: library/curses.ascii.rst:28 -msgid "Enquiry, goes with :const:`ACK` flow control" -msgstr "Enquête, va avec le contrôle de flux :const:`ACK`" - -#: library/curses.ascii.rst:30 -msgid "Acknowledgement" -msgstr "Accusé de réception" - -#: library/curses.ascii.rst:32 -msgid "Bell" -msgstr "Caractère d'appel" - -#: library/curses.ascii.rst:34 -msgid "Backspace" -msgstr "Retour arrière" - -#: library/curses.ascii.rst:36 -msgid "Tab" -msgstr "Tabulation" - -#: library/curses.ascii.rst:38 -msgid "Alias for :const:`TAB`: \"Horizontal tab\"" -msgstr "Alias pour :const:`TAB`: « Tabulation horizontale »" - -#: library/curses.ascii.rst:40 -msgid "Line feed" -msgstr "Saut de ligne" - -#: library/curses.ascii.rst:42 -msgid "Alias for :const:`LF`: \"New line\"" -msgstr "Alias pour :const:`LF`: « Nouvelle ligne »" - -#: library/curses.ascii.rst:44 -msgid "Vertical tab" -msgstr "Tabulation verticale" - -#: library/curses.ascii.rst:46 -msgid "Form feed" -msgstr "Saut de page" - -#: library/curses.ascii.rst:48 -msgid "Carriage return" -msgstr "Retour chariot" - -#: library/curses.ascii.rst:50 -msgid "Shift-out, begin alternate character set" -msgstr "Bascule vers l’ensemble de caractères alternatif" - -#: library/curses.ascii.rst:52 -msgid "Shift-in, resume default character set" -msgstr "Reprise de l'ensemble de caractères par défaut" - -#: library/curses.ascii.rst:54 -msgid "Data-link escape" -msgstr "Échappement de liaison de données" - -#: library/curses.ascii.rst:56 -msgid "XON, for flow control" -msgstr "XON, pour le contrôle de flux" - -#: library/curses.ascii.rst:58 -msgid "Device control 2, block-mode flow control" -msgstr "Contrôle de périphérique 2, contrôle de flux en mode bloc" - -#: library/curses.ascii.rst:60 -msgid "XOFF, for flow control" -msgstr "XOFF, pour le contrôle de flux" - -#: library/curses.ascii.rst:62 -msgid "Device control 4" -msgstr "Contrôle de périphérique 4" - -#: library/curses.ascii.rst:64 -msgid "Negative acknowledgement" -msgstr "Accusé de réception négatif" - -#: library/curses.ascii.rst:66 -msgid "Synchronous idle" -msgstr "Inactif synchrone" - -#: library/curses.ascii.rst:68 -msgid "End transmission block" -msgstr "Fin du bloc de transmission" - -#: library/curses.ascii.rst:70 -msgid "Cancel" -msgstr "Annuler" - -#: library/curses.ascii.rst:72 -msgid "End of medium" -msgstr "Fin du médium" - -#: library/curses.ascii.rst:74 -msgid "Substitute" -msgstr "Substitut" - -#: library/curses.ascii.rst:76 -msgid "Escape" -msgstr "Échappement" - -#: library/curses.ascii.rst:78 -msgid "File separator" -msgstr "Séparateur de fichiers" - -#: library/curses.ascii.rst:80 -msgid "Group separator" -msgstr "Séparateur de groupe" - -#: library/curses.ascii.rst:82 -msgid "Record separator, block-mode terminator" -msgstr "Séparateur d'enregistrement, terminateur en mode bloc" - -#: library/curses.ascii.rst:84 -msgid "Unit separator" -msgstr "Séparateur d'unités" - -#: library/curses.ascii.rst:86 -msgid "Space" -msgstr "Espace" - -#: library/curses.ascii.rst:88 -msgid "Delete" -msgstr "Caractère d'effacement" - -#: library/curses.ascii.rst:91 -msgid "" -"Note that many of these have little practical significance in modern usage. " -"The mnemonics derive from teleprinter conventions that predate digital " -"computers." -msgstr "" -"Notez que beaucoup d'entre elles ont peu de signification pratique dans " -"l'utilisation moderne. Les mnémoniques proviennent de conventions de " -"téléscripteur qui préexistent aux ordinateurs numériques." - -#: library/curses.ascii.rst:94 -msgid "" -"The module supplies the following functions, patterned on those in the " -"standard C library:" -msgstr "" -"Le module fournit les fonctions suivantes, basées sur celles de la " -"bibliothèque C standard :" - -#: library/curses.ascii.rst:100 -msgid "" -"Checks for an ASCII alphanumeric character; it is equivalent to ``isalpha(c) " -"or isdigit(c)``." -msgstr "" -"Vérifie si un caractère ASCII est alphanumérique ; il est équivalent à " -"``isalpha(c) or isdigit(c)``." - -#: library/curses.ascii.rst:106 -msgid "" -"Checks for an ASCII alphabetic character; it is equivalent to ``isupper(c) " -"or islower(c)``." -msgstr "" -"Vérifie si un caractère ASCII est alphanumérique ; il est équivalent à " -"``isupper(c) or islower(c)``." - -#: library/curses.ascii.rst:112 -msgid "Checks for a character value that fits in the 7-bit ASCII set." -msgstr "" -"Vérifie si une valeur de caractère appartient à l'ensemble ASCII 7 bits." - -#: library/curses.ascii.rst:117 -msgid "Checks for an ASCII whitespace character; space or horizontal tab." -msgstr "" -"Vérifie si un caractère ASCII est caractère d'espacement, spécifiquement : " -"espace ou tabulation horizontale." - -#: library/curses.ascii.rst:122 -msgid "" -"Checks for an ASCII control character (in the range 0x00 to 0x1f or 0x7f)." -msgstr "" -"Vérifie si un caractère ASCII est un caractère de contrôle (dans la plage de " -"0x00 à 0x1f ou 0x7f)." - -#: library/curses.ascii.rst:127 -msgid "" -"Checks for an ASCII decimal digit, ``'0'`` through ``'9'``. This is " -"equivalent to ``c in string.digits``." -msgstr "" -"Vérifie si un caractère ASCII est un chiffre décimal, de ``'0'`` à ``'9'``. " -"C'est équivalent à ``c in string.digits``." - -#: library/curses.ascii.rst:133 -msgid "Checks for ASCII any printable character except space." -msgstr "" -"Vérifie si un caractère ASCII est n'importe quel caractère imprimable à " -"l'exception de l'espace." - -#: library/curses.ascii.rst:138 -msgid "Checks for an ASCII lower-case character." -msgstr "Vérifie si un caractère ASCII est une lettre minuscule." - -#: library/curses.ascii.rst:143 -msgid "Checks for any ASCII printable character including space." -msgstr "" -"Vérifie si un caractère ASCII est n'importe quel caractère imprimable, y " -"compris l'espace." - -#: library/curses.ascii.rst:148 -msgid "" -"Checks for any printable ASCII character which is not a space or an " -"alphanumeric character." -msgstr "" -"Vérifie si un caractère ASCII imprimable n'est ni une espace ni un caractère " -"alphanumérique." - -#: library/curses.ascii.rst:154 -msgid "" -"Checks for ASCII white-space characters; space, line feed, carriage return, " -"form feed, horizontal tab, vertical tab." -msgstr "" -"Vérifie si un caractère ASCII est un caractère d'espacement, " -"spécifiquement : espace, saut de ligne, retour chariot, saut de page, " -"tabulation horizontale, ou tabulation verticale." - -#: library/curses.ascii.rst:160 -msgid "Checks for an ASCII uppercase letter." -msgstr "Vérifie si un caractère ASCII est une lettre majuscule." - -#: library/curses.ascii.rst:165 -msgid "" -"Checks for an ASCII hexadecimal digit. This is equivalent to ``c in " -"string.hexdigits``." -msgstr "" -"Vérifie si un caractère ASCII est un chiffre hexadécimal. C'est équivalent à " -"``c in string.hexdigits``." - -#: library/curses.ascii.rst:171 -msgid "Checks for an ASCII control character (ordinal values 0 to 31)." -msgstr "" -"Vérifie si un caractère ASCII est un caractère de contrôle (valeurs " -"ordinales de 0 à 31)." - -#: library/curses.ascii.rst:176 -msgid "Checks for a non-ASCII character (ordinal values 0x80 and above)." -msgstr "" -"Vérifie si un caractère n'est pas ASCII (valeurs ordinales de 0x80 et plus)." - -#: library/curses.ascii.rst:178 -msgid "" -"These functions accept either integers or single-character strings; when the " -"argument is a string, it is first converted using the built-in " -"function :func:`ord`." -msgstr "" -"Ces fonctions acceptent soit des entiers soit des chaînes de caractères d'un " -"seul caractère ; lorsque l'argument est une chaîne, il est d'abord converti " -"en utilisant la fonction intégrée :func:`ord`." - -#: library/curses.ascii.rst:181 -msgid "" -"Note that all these functions check ordinal bit values derived from the " -"character of the string you pass in; they do not actually know anything " -"about the host machine's character encoding." -msgstr "" -"Notez que toutes ces fonctions vérifient les valeurs de bits ordinales " -"dérivées du caractère de la chaîne que vous fournissez ; elles ne " -"connaissent rien de l'encodage de caractères de la machine hôte." - -#: library/curses.ascii.rst:185 -msgid "" -"The following two functions take either a single-character string or integer " -"byte value; they return a value of the same type." -msgstr "" -"Les deux fonctions suivantes acceptent soit une chaîne de caractères d'un " -"seul caractère soit une valeur d'octet sous forme d'entier ; elles renvoient " -"une valeur du même type." - -#: library/curses.ascii.rst:191 -msgid "Return the ASCII value corresponding to the low 7 bits of *c*." -msgstr "" -"Renvoie la valeur ASCII correspondant aux 7 bits les moins significatifs de " -"*c*." - -#: library/curses.ascii.rst:196 -msgid "" -"Return the control character corresponding to the given character (the " -"character bit value is bitwise-anded with 0x1f)." -msgstr "" -"Renvoie le caractère de contrôle correspondant au caractère donné (une " -"opération ET bit-à-bit avec 0x1F est appliqué à la valeur du caractère)." - -#: library/curses.ascii.rst:202 -msgid "" -"Return the 8-bit character corresponding to the given ASCII character (the " -"character bit value is bitwise-ored with 0x80)." -msgstr "" -"Renvoie le caractère de contrôle correspondant au caractère donné (une " -"opération OU bit-à-bit avec 0x80 est appliqué à la valeur du caractère)." - -#: library/curses.ascii.rst:205 -msgid "" -"The following function takes either a single-character string or integer " -"value; it returns a string." -msgstr "" -"La fonction suivante accepte soit une chaîne de caractères d'un seul " -"caractère soit une valeur entière ; elle renvoie une chaîne de caractères." - -#: library/curses.ascii.rst:215 -msgid "" -"Return a string representation of the ASCII character *c*. If *c* is " -"printable, this string is the character itself. If the character is a " -"control character (0x00--0x1f) the string consists of a caret (``'^'``) " -"followed by the corresponding uppercase letter. If the character is an ASCII " -"delete (0x7f) the string is ``'^?'``. If the character has its meta bit " -"(0x80) set, the meta bit is stripped, the preceding rules applied, and " -"``'!'`` prepended to the result." -msgstr "" -"Renvoie une représentation du caractère ASCII *c* sous forme d’une chaîne. " -"Si *c* est imprimable, cette chaîne est le caractère lui-même. Si le " -"caractère est un caractère de contrôle (0x00 – 0x1f), la chaîne se compose " -"d'un accent circonflexe (``'^'``) suivi de la lettre majuscule " -"correspondante. Si le caractère est un caractère de suppression ASCII " -"(0x7f), la chaîne est ``'^?'``. Si le bit *meta* du caractère est défini " -"(0x80), le bit *meta* est supprimé, les règles précédentes appliquées, et " -"``'!'`` est ajouté au début du résultat." - -#: library/curses.ascii.rst:225 -msgid "" -"A 33-element string array that contains the ASCII mnemonics for the thirty-" -"two ASCII control characters from 0 (NUL) to 0x1f (US), in order, plus the " -"mnemonic ``SP`` for the space character." -msgstr "" -"Tableau de chaînes de 33 éléments qui contient les mnémoniques ASCII pour " -"les trente-deux caractères de contrôle ASCII de 0 (NUL) à 0x1f (US), dans " -"l'ordre, ainsi que le mnémonique ``SP`` pour le caractère d'espace." - -#~ msgid "^ (caret)" -#~ msgstr "^ (caret)" - -#~ msgid ":const:`NUL`" -#~ msgstr ":const:`NUL`" - -#~ msgid ":const:`SOH`" -#~ msgstr ":const:`SOH`" - -#~ msgid ":const:`STX`" -#~ msgstr ":const:`STX`" - -#~ msgid ":const:`ETX`" -#~ msgstr ":const:`ETX`" - -#~ msgid ":const:`EOT`" -#~ msgstr ":const:`EOT`" - -#~ msgid ":const:`ENQ`" -#~ msgstr ":const:`ENQ`" - -#~ msgid ":const:`ACK`" -#~ msgstr ":const:`ACK`" - -#~ msgid ":const:`BEL`" -#~ msgstr ":const:`BEL`" - -#~ msgid ":const:`BS`" -#~ msgstr ":const:`BS`" - -#~ msgid ":const:`TAB`" -#~ msgstr ":const:`TAB`" - -#~ msgid ":const:`HT`" -#~ msgstr ":const:`HT`" - -#~ msgid ":const:`LF`" -#~ msgstr ":const:`LF`" - -#~ msgid ":const:`NL`" -#~ msgstr ":const:`NL`" - -#~ msgid ":const:`VT`" -#~ msgstr ":const:`VT`" - -#~ msgid ":const:`FF`" -#~ msgstr ":const:`FF`" - -#~ msgid ":const:`CR`" -#~ msgstr ":const:`CR`" - -#~ msgid ":const:`SO`" -#~ msgstr ":const:`SO`" - -#~ msgid ":const:`SI`" -#~ msgstr ":const:`SI`" - -#~ msgid ":const:`DLE`" -#~ msgstr ":const:`DLE`" - -#~ msgid ":const:`DC1`" -#~ msgstr ":const:`DC1`" - -#~ msgid ":const:`DC2`" -#~ msgstr ":const:`DC2`" - -#~ msgid ":const:`DC3`" -#~ msgstr ":const:`DC3`" - -#~ msgid ":const:`DC4`" -#~ msgstr ":const:`DC4`" - -#~ msgid ":const:`NAK`" -#~ msgstr ":const:`NAK`" - -#~ msgid ":const:`SYN`" -#~ msgstr ":const:`SYN`" - -#~ msgid ":const:`ETB`" -#~ msgstr ":const:`ETB`" - -#~ msgid ":const:`CAN`" -#~ msgstr ":const:`CAN`" - -#~ msgid ":const:`EM`" -#~ msgstr ":const:`EM`" - -#~ msgid ":const:`SUB`" -#~ msgstr ":const:`SUB`" - -#~ msgid ":const:`ESC`" -#~ msgstr ":const:`ESC`" - -#~ msgid ":const:`FS`" -#~ msgstr ":const:`FS`" - -#~ msgid ":const:`GS`" -#~ msgstr ":const:`GS`" - -#~ msgid ":const:`RS`" -#~ msgstr ":const:`RS`" - -#~ msgid ":const:`US`" -#~ msgstr ":const:`US`" - -#~ msgid ":const:`SP`" -#~ msgstr ":const:`SP`" - -#~ msgid ":const:`DEL`" -#~ msgstr ":const:`DEL`" diff --git a/library/curses.panel.po b/library/curses.panel.po deleted file mode 100644 index daf4c4f861..0000000000 --- a/library/curses.panel.po +++ /dev/null @@ -1,126 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: library/curses.panel.rst:2 -msgid ":mod:`!curses.panel` --- A panel stack extension for curses" -msgstr "" - -#: library/curses.panel.rst:9 -msgid "" -"Panels are windows with the added feature of depth, so they can be stacked " -"on top of each other, and only the visible portions of each window will be " -"displayed. Panels can be added, moved up or down in the stack, and removed." -msgstr "" - -#: library/curses.panel.rst:17 -msgid "Functions" -msgstr "Fonctions" - -#: library/curses.panel.rst:19 -msgid "The module :mod:`!curses.panel` defines the following functions:" -msgstr "" - -#: library/curses.panel.rst:24 -msgid "Returns the bottom panel in the panel stack." -msgstr "" - -#: library/curses.panel.rst:29 -msgid "" -"Returns a panel object, associating it with the given window *win*. Be aware " -"that you need to keep the returned panel object referenced explicitly. If " -"you don't, the panel object is garbage collected and removed from the panel " -"stack." -msgstr "" - -#: library/curses.panel.rst:36 -msgid "Returns the top panel in the panel stack." -msgstr "" - -#: library/curses.panel.rst:41 -msgid "" -"Updates the virtual screen after changes in the panel stack. This does not " -"call :func:`curses.doupdate`, so you'll have to do this yourself." -msgstr "" - -#: library/curses.panel.rst:48 -msgid "Panel Objects" -msgstr "" - -#: library/curses.panel.rst:50 -msgid "" -"Panel objects, as returned by :func:`new_panel` above, are windows with a " -"stacking order. There's always a window associated with a panel which " -"determines the content, while the panel methods are responsible for the " -"window's depth in the panel stack." -msgstr "" - -#: library/curses.panel.rst:55 -msgid "Panel objects have the following methods:" -msgstr "" - -#: library/curses.panel.rst:60 -msgid "Returns the panel above the current panel." -msgstr "" - -#: library/curses.panel.rst:65 -msgid "Returns the panel below the current panel." -msgstr "" - -#: library/curses.panel.rst:70 -msgid "Push the panel to the bottom of the stack." -msgstr "" - -#: library/curses.panel.rst:75 -msgid "" -"Returns ``True`` if the panel is hidden (not visible), ``False`` otherwise." -msgstr "" - -#: library/curses.panel.rst:80 -msgid "" -"Hide the panel. This does not delete the object, it just makes the window on " -"screen invisible." -msgstr "" - -#: library/curses.panel.rst:86 -msgid "Move the panel to the screen coordinates ``(y, x)``." -msgstr "" - -#: library/curses.panel.rst:91 -msgid "Change the window associated with the panel to the window *win*." -msgstr "" - -#: library/curses.panel.rst:96 -msgid "" -"Set the panel's user pointer to *obj*. This is used to associate an " -"arbitrary piece of data with the panel, and can be any Python object." -msgstr "" - -#: library/curses.panel.rst:102 -msgid "Display the panel (which might have been hidden)." -msgstr "" - -#: library/curses.panel.rst:107 -msgid "Push panel to the top of the stack." -msgstr "" - -#: library/curses.panel.rst:112 -msgid "" -"Returns the user pointer for the panel. This might be any Python object." -msgstr "" - -#: library/curses.panel.rst:117 -msgid "Returns the window object associated with the panel." -msgstr "" diff --git a/library/curses.po b/library/curses.po deleted file mode 100644 index f2fee6ec17..0000000000 --- a/library/curses.po +++ /dev/null @@ -1,3111 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-07-04 11:32+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" - -#: library/curses.rst:2 -msgid ":mod:`!curses` --- Terminal handling for character-cell displays" -msgstr "" - -#: library/curses.rst:8 -msgid "**Source code:** :source:`Lib/curses`" -msgstr "" - -#: library/curses.rst:12 -msgid "" -"The :mod:`!curses` module provides an interface to the curses library, the " -"de-facto standard for portable advanced terminal handling." -msgstr "" - -#: library/curses.rst:15 -msgid "" -"While curses is most widely used in the Unix environment, versions are " -"available for Windows, DOS, and possibly other systems as well. This " -"extension module is designed to match the API of ncurses, an open-source " -"curses library hosted on Linux and the BSD variants of Unix." -msgstr "" - -#: includes/wasm-mobile-notavail.rst:3 -msgid "Availability" -msgstr "Disponibilité" - -#: includes/wasm-mobile-notavail.rst:5 -msgid "" -"This module is not supported on :ref:`mobile platforms ` or :ref:`WebAssembly platforms `." -msgstr "" - -#: includes/optional-module.rst:1 -msgid "" -"This is an :term:`optional module`. If it is missing from your copy of " -"CPython, look for documentation from your distributor (that is, whoever " -"provided Python to you). If you are the distributor, see :ref:`optional-" -"module-requirements`." -msgstr "" - -#: library/curses.rst:28 -msgid "" -"Whenever the documentation mentions a *character* it can be specified as an " -"integer, a one-character Unicode string or a one-byte byte string." -msgstr "" - -#: library/curses.rst:31 -msgid "" -"Whenever the documentation mentions a *character string* it can be specified " -"as a Unicode string or a byte string." -msgstr "" - -#: library/curses.rst:36 -msgid "Module :mod:`curses.ascii`" -msgstr "Module :mod:`curses.ascii`" - -#: library/curses.rst:37 -msgid "" -"Utilities for working with ASCII characters, regardless of your locale " -"settings." -msgstr "" - -#: library/curses.rst:39 -msgid "Module :mod:`curses.panel`" -msgstr "Module :mod:`curses.panel`" - -#: library/curses.rst:40 -msgid "A panel stack extension that adds depth to curses windows." -msgstr "" - -#: library/curses.rst:42 -msgid "Module :mod:`curses.textpad`" -msgstr "Module :mod:`curses.textpad`" - -#: library/curses.rst:43 -msgid "" -"Editable text widget for curses supporting :program:`Emacs`\\ -like " -"bindings." -msgstr "" - -#: library/curses.rst:45 -msgid ":ref:`curses-howto`" -msgstr ":ref:`curses-howto`" - -#: library/curses.rst:46 -msgid "" -"Tutorial material on using curses with Python, by Andrew Kuchling and Eric " -"Raymond." -msgstr "" - -#: library/curses.rst:53 -msgid "Functions" -msgstr "Fonctions" - -#: library/curses.rst:55 -msgid "The module :mod:`!curses` defines the following exception:" -msgstr "" - -#: library/curses.rst:60 -msgid "Exception raised when a curses library function returns an error." -msgstr "" - -#: library/curses.rst:64 -msgid "" -"Whenever *x* or *y* arguments to a function or a method are optional, they " -"default to the current cursor location. Whenever *attr* is optional, it " -"defaults to :const:`A_NORMAL`." -msgstr "" - -#: library/curses.rst:68 -msgid "The module :mod:`!curses` defines the following functions:" -msgstr "" - -#: library/curses.rst:73 -msgid "" -"Allow use of default values for colors on terminals supporting this feature. " -"Use this to support transparency in your application." -msgstr "" - -#: library/curses.rst:76 -msgid "" -"Assign terminal default foreground/background colors to color number ``-1``. " -"So ``init_pair(x, COLOR_RED, -1)`` will initialize pair *x* as red on " -"default background and ``init_pair(x, -1, COLOR_BLUE)`` will initialize pair " -"*x* as default foreground on blue." -msgstr "" - -#: library/curses.rst:81 -msgid "Change the definition of the color-pair ``0`` to ``(fg, bg)``." -msgstr "" - -#: library/curses.rst:88 -msgid "" -"Return the output speed of the terminal in bits per second. On software " -"terminal emulators it will have a fixed high value. Included for historical " -"reasons; in former times, it was used to write output loops for time delays " -"and occasionally to change interfaces depending on the line speed." -msgstr "" - -#: library/curses.rst:96 -msgid "Emit a short attention sound." -msgstr "" - -#: library/curses.rst:101 -msgid "" -"Return ``True`` or ``False``, depending on whether the programmer can change " -"the colors displayed by the terminal." -msgstr "" - -#: library/curses.rst:107 -msgid "" -"Enter cbreak mode. In cbreak mode (sometimes called \"rare\" mode) normal " -"tty line buffering is turned off and characters are available to be read one " -"by one. However, unlike raw mode, special characters (interrupt, quit, " -"suspend, and flow control) retain their effects on the tty driver and " -"calling program. Calling first :func:`raw` then :func:`cbreak` leaves the " -"terminal in cbreak mode." -msgstr "" - -#: library/curses.rst:116 -msgid "" -"Return the intensity of the red, green, and blue (RGB) components in the " -"color *color_number*, which must be between ``0`` and ``COLORS - 1``. " -"Return a 3-tuple, containing the R,G,B values for the given color, which " -"will be between ``0`` (no component) and ``1000`` (maximum amount of " -"component)." -msgstr "" - -#: library/curses.rst:124 -msgid "" -"Return the attribute value for displaying text in the specified color pair. " -"Only the first 256 color pairs are supported. This attribute value can be " -"combined with :const:`A_STANDOUT`, :const:`A_REVERSE`, and the " -"other :const:`!A_\\*` attributes. :func:`pair_number` is the counterpart to " -"this function." -msgstr "" - -#: library/curses.rst:133 -msgid "" -"Set the cursor state. *visibility* can be set to ``0``, ``1``, or ``2``, " -"for invisible, normal, or very visible. If the terminal supports the " -"visibility requested, return the previous cursor state; otherwise raise an " -"exception. On many terminals, the \"visible\" mode is an underline cursor " -"and the \"very visible\" mode is a block cursor." -msgstr "" - -#: library/curses.rst:142 -msgid "" -"Save the current terminal mode as the \"program\" mode, the mode when the " -"running program is using curses. (Its counterpart is the \"shell\" mode, " -"for when the program is not in curses.) Subsequent calls " -"to :func:`reset_prog_mode` will restore this mode." -msgstr "" - -#: library/curses.rst:150 -msgid "" -"Save the current terminal mode as the \"shell\" mode, the mode when the " -"running program is not using curses. (Its counterpart is the \"program\" " -"mode, when the program is using curses capabilities.) Subsequent calls " -"to :func:`reset_shell_mode` will restore this mode." -msgstr "" - -#: library/curses.rst:158 -msgid "Insert an *ms* millisecond pause in output." -msgstr "" - -#: library/curses.rst:163 -msgid "" -"Update the physical screen. The curses library keeps two data structures, " -"one representing the current physical screen contents and a virtual screen " -"representing the desired next state. The :func:`doupdate` ground updates " -"the physical screen to match the virtual screen." -msgstr "" - -#: library/curses.rst:168 -msgid "" -"The virtual screen may be updated by a :meth:`~window.noutrefresh` call " -"after write operations such as :meth:`~window.addstr` have been performed on " -"a window. The normal :meth:`~window.refresh` call is simply :meth:`!" -"noutrefresh` followed by :func:`!doupdate`; if you have to update multiple " -"windows, you can speed performance and perhaps reduce screen flicker by " -"issuing :meth:`!noutrefresh` calls on all windows, followed by a " -"single :func:`!doupdate`." -msgstr "" - -#: library/curses.rst:178 -msgid "" -"Enter echo mode. In echo mode, each character input is echoed to the screen " -"as it is entered." -msgstr "" - -#: library/curses.rst:184 -msgid "De-initialize the library, and return terminal to normal status." -msgstr "" - -#: library/curses.rst:189 -msgid "" -"Return the user's current erase character as a one-byte bytes object. Under " -"Unix operating systems this is a property of the controlling tty of the " -"curses program, and is not set by the curses library itself." -msgstr "" - -#: library/curses.rst:196 -msgid "" -"The :func:`.filter` routine, if used, must be called before :func:`initscr` " -"is called. The effect is that, during those calls, :envvar:`LINES` is set " -"to ``1``; the capabilities ``clear``, ``cup``, ``cud``, ``cud1``, ``cuu1``, " -"``cuu``, ``vpa`` are disabled; and the ``home`` string is set to the value " -"of ``cr``. The effect is that the cursor is confined to the current line, " -"and so are screen updates. This may be used for enabling character-at-a-" -"time line editing without touching the rest of the screen." -msgstr "" - -#: library/curses.rst:206 -msgid "" -"Flash the screen. That is, change it to reverse-video and then change it " -"back in a short interval. Some people prefer such as 'visible bell' to the " -"audible attention signal produced by :func:`beep`." -msgstr "" - -#: library/curses.rst:213 -msgid "" -"Flush all input buffers. This throws away any typeahead that has been " -"typed by the user and has not yet been processed by the program." -msgstr "" - -#: library/curses.rst:219 -msgid "" -"After :meth:`~window.getch` returns :const:`KEY_MOUSE` to signal a mouse " -"event, this method should be called to retrieve the queued mouse event, " -"represented as a 5-tuple ``(id, x, y, z, bstate)``. *id* is an ID value used " -"to distinguish multiple devices, and *x*, *y*, *z* are the event's " -"coordinates. (*z* is currently unused.) *bstate* is an integer value whose " -"bits will be set to indicate the type of event, and will be the bitwise OR " -"of one or more of the following constants, where *n* is the button number " -"from 1 to " -"5: :const:`BUTTONn_PRESSED`, :const:`BUTTONn_RELEASED`, :const:`BUTTONn_CLICKED`, :const:`BUTTONn_DOUBLE_CLICKED`, :const:`BUTTONn_TRIPLE_CLICKED`, :const:`BUTTON_SHIFT`, :const:`BUTTON_CTRL`, :const:`BUTTON_ALT`." -msgstr "" - -#: library/curses.rst:1798 -msgid "" -"The ``BUTTON5_*`` constants are now exposed if they are provided by the " -"underlying curses library." -msgstr "" - -#: library/curses.rst:237 -msgid "" -"Return the current coordinates of the virtual screen cursor as a tuple ``(y, " -"x)``. If :meth:`leaveok ` is currently ``True``, then " -"return ``(-1, -1)``." -msgstr "" - -#: library/curses.rst:243 -msgid "" -"Read window related data stored in the file by an " -"earlier :func:`window.putwin` call. The routine then creates and initializes " -"a new window using that data, returning the new window object." -msgstr "" - -#: library/curses.rst:250 -msgid "" -"Return ``True`` if the terminal can display colors; otherwise, return " -"``False``." -msgstr "" - -#: library/curses.rst:254 -msgid "" -"Return ``True`` if the module supports extended colors; otherwise, return " -"``False``. Extended color support allows more than 256 color pairs for " -"terminals that support more than 16 colors (e.g. xterm-256color)." -msgstr "" - -#: library/curses.rst:258 -msgid "Extended color support requires ncurses version 6.1 or later." -msgstr "" - -#: library/curses.rst:264 -msgid "" -"Return ``True`` if the terminal has insert- and delete-character " -"capabilities. This function is included for historical reasons only, as all " -"modern software terminal emulators have such capabilities." -msgstr "" - -#: library/curses.rst:271 -msgid "" -"Return ``True`` if the terminal has insert- and delete-line capabilities, or " -"can simulate them using scrolling regions. This function is included for " -"historical reasons only, as all modern software terminal emulators have such " -"capabilities." -msgstr "" - -#: library/curses.rst:279 -msgid "" -"Take a key value *ch*, and return ``True`` if the current terminal type " -"recognizes a key with that value." -msgstr "" - -#: library/curses.rst:285 -msgid "" -"Used for half-delay mode, which is similar to cbreak mode in that characters " -"typed by the user are immediately available to the program. However, after " -"blocking for *tenths* tenths of seconds, raise an exception if nothing has " -"been typed. The value of *tenths* must be a number between ``1`` and " -"``255``. Use :func:`nocbreak` to leave half-delay mode." -msgstr "" - -#: library/curses.rst:294 -msgid "" -"Change the definition of a color, taking the number of the color to be " -"changed followed by three RGB values (for the amounts of red, green, and " -"blue components). The value of *color_number* must be between ``0`` and " -"``COLORS - 1``. Each of *r*, *g*, *b*, must be a value between ``0`` and " -"``1000``. When :func:`init_color` is used, all occurrences of that color on " -"the screen immediately change to the new definition. This function is a no-" -"op on most terminals; it is active only if :func:`can_change_color` returns " -"``True``." -msgstr "" - -#: library/curses.rst:305 -msgid "" -"Change the definition of a color-pair. It takes three arguments: the number " -"of the color-pair to be changed, the foreground color number, and the " -"background color number. The value of *pair_number* must be between ``1`` " -"and ``COLOR_PAIRS - 1`` (the ``0`` color pair can only be changed " -"by :func:`use_default_colors` and :func:`assume_default_colors`). The value " -"of *fg* and *bg* arguments must be between ``0`` and ``COLORS - 1``, or, " -"after calling :func:`!use_default_colors` or :func:`!assume_default_colors`, " -"``-1``. If the color-pair was previously initialized, the screen is " -"refreshed and all occurrences of that color-pair are changed to the new " -"definition." -msgstr "" - -#: library/curses.rst:320 -msgid "" -"Initialize the library. Return a :ref:`window ` " -"object which represents the whole screen." -msgstr "" - -#: library/curses.rst:325 -msgid "" -"If there is an error opening the terminal, the underlying curses library may " -"cause the interpreter to exit." -msgstr "" - -#: library/curses.rst:331 -msgid "" -"Return ``True`` if :func:`resize_term` would modify the window structure, " -"``False`` otherwise." -msgstr "" - -#: library/curses.rst:337 -msgid "" -"Return ``True`` if :func:`endwin` has been called (that is, the curses " -"library has been deinitialized)." -msgstr "" - -#: library/curses.rst:343 -msgid "" -"Return the name of the key numbered *k* as a bytes object. The name of a " -"key generating printable ASCII character is the key's character. The name " -"of a control-key combination is a two-byte bytes object consisting of a " -"caret (``b'^'``) followed by the corresponding printable ASCII character. " -"The name of an alt-key combination (128--255) is a bytes object consisting " -"of the prefix ``b'M-'`` followed by the name of the corresponding ASCII " -"character." -msgstr "" - -#: library/curses.rst:353 -msgid "" -"Return the user's current line kill character as a one-byte bytes object. " -"Under Unix operating systems this is a property of the controlling tty of " -"the curses program, and is not set by the curses library itself." -msgstr "" - -#: library/curses.rst:360 -msgid "" -"Return a bytes object containing the terminfo long name field describing the " -"current terminal. The maximum length of a verbose description is 128 " -"characters. It is defined only after the call to :func:`initscr`." -msgstr "" - -#: library/curses.rst:367 -msgid "" -"If *flag* is ``True``, allow 8-bit characters to be input. If *flag* is " -"``False``, allow only 7-bit chars." -msgstr "" - -#: library/curses.rst:373 -msgid "" -"Set the maximum time in milliseconds that can elapse between press and " -"release events in order for them to be recognized as a click, and return the " -"previous interval value. The default value is 200 milliseconds, or one " -"fifth of a second." -msgstr "" - -#: library/curses.rst:380 -msgid "" -"Set the mouse events to be reported, and return a tuple ``(availmask, " -"oldmask)``. *availmask* indicates which of the specified mouse events can " -"be reported; on complete failure it returns ``0``. *oldmask* is the " -"previous value of the given window's mouse event mask. If this function is " -"never called, no mouse events are ever reported." -msgstr "" - -#: library/curses.rst:389 -msgid "Sleep for *ms* milliseconds." -msgstr "" - -#: library/curses.rst:394 -msgid "" -"Create and return a pointer to a new pad data structure with the given " -"number of lines and columns. Return a pad as a window object." -msgstr "" - -#: library/curses.rst:397 -msgid "" -"A pad is like a window, except that it is not restricted by the screen size, " -"and is not necessarily associated with a particular part of the screen. " -"Pads can be used when a large window is needed, and only a part of the " -"window will be on the screen at one time. Automatic refreshes of pads (such " -"as from scrolling or echoing of input) do not occur. " -"The :meth:`~window.refresh` and :meth:`~window.noutrefresh` methods of a pad " -"require 6 arguments to specify the part of the pad to be displayed and the " -"location on the screen to be used for the display. The arguments are " -"*pminrow*, *pmincol*, *sminrow*, *smincol*, *smaxrow*, *smaxcol*; the *p* " -"arguments refer to the upper left corner of the pad region to be displayed " -"and the *s* arguments define a clipping box on the screen within which the " -"pad region is to be displayed." -msgstr "" - -#: library/curses.rst:413 -msgid "" -"Return a new :ref:`window `, whose left-upper corner " -"is at ``(begin_y, begin_x)``, and whose height/width is *nlines*/*ncols*." -msgstr "" - -#: library/curses.rst:416 -msgid "" -"By default, the window will extend from the specified position to the lower " -"right corner of the screen." -msgstr "" - -#: library/curses.rst:422 -msgid "" -"Enter newline mode. This mode translates the return key into newline on " -"input, and translates newline into return and line-feed on output. Newline " -"mode is initially on." -msgstr "" - -#: library/curses.rst:429 -msgid "" -"Leave cbreak mode. Return to normal \"cooked\" mode with line buffering." -msgstr "" - -#: library/curses.rst:434 -msgid "Leave echo mode. Echoing of input characters is turned off." -msgstr "" - -#: library/curses.rst:439 -msgid "" -"Leave newline mode. Disable translation of return into newline on input, " -"and disable low-level translation of newline into newline/return on output " -"(but this does not change the behavior of ``addch('\\n')``, which always " -"does the equivalent of return and line feed on the virtual screen). With " -"translation off, curses can sometimes speed up vertical motion a little; " -"also, it will be able to detect the return key on input." -msgstr "" - -#: library/curses.rst:449 -msgid "" -"When the :func:`!noqiflush` routine is used, normal flush of input and " -"output queues associated with the ``INTR``, ``QUIT`` and ``SUSP`` characters " -"will not be done. You may want to call :func:`!noqiflush` in a signal " -"handler if you want output to continue as though the interrupt had not " -"occurred, after the handler exits." -msgstr "" - -#: library/curses.rst:457 -msgid "Leave raw mode. Return to normal \"cooked\" mode with line buffering." -msgstr "" - -#: library/curses.rst:462 -msgid "" -"Return a tuple ``(fg, bg)`` containing the colors for the requested color " -"pair. The value of *pair_number* must be between ``0`` and ``COLOR_PAIRS - " -"1``." -msgstr "" - -#: library/curses.rst:468 -msgid "" -"Return the number of the color-pair set by the attribute value " -"*attr*. :func:`color_pair` is the counterpart to this function." -msgstr "" - -#: library/curses.rst:474 -msgid "" -"Equivalent to ``tputs(str, 1, putchar)``; emit the value of a specified " -"terminfo capability for the current terminal. Note that the output " -"of :func:`putp` always goes to standard output." -msgstr "" - -#: library/curses.rst:481 -msgid "" -"If *flag* is ``False``, the effect is the same as calling :func:`noqiflush`. " -"If *flag* is ``True``, or no argument is provided, the queues will be " -"flushed when these control characters are read." -msgstr "" - -#: library/curses.rst:488 -msgid "" -"Enter raw mode. In raw mode, normal line buffering and processing of " -"interrupt, quit, suspend, and flow control keys are turned off; characters " -"are presented to curses input functions one by one." -msgstr "" - -#: library/curses.rst:495 -msgid "" -"Restore the terminal to \"program\" mode, as previously saved " -"by :func:`def_prog_mode`." -msgstr "" - -#: library/curses.rst:501 -msgid "" -"Restore the terminal to \"shell\" mode, as previously saved " -"by :func:`def_shell_mode`." -msgstr "" - -#: library/curses.rst:507 -msgid "" -"Restore the state of the terminal modes to what it was at the last call " -"to :func:`savetty`." -msgstr "" - -#: library/curses.rst:513 -msgid "" -"Backend function used by :func:`resizeterm`, performing most of the work; " -"when resizing the windows, :func:`resize_term` blank-fills the areas that " -"are extended. The calling application should fill in these areas with " -"appropriate data. The :func:`!resize_term` function attempts to resize all " -"windows. However, due to the calling convention of pads, it is not possible " -"to resize these without additional interaction with the application." -msgstr "" - -#: library/curses.rst:523 -msgid "" -"Resize the standard and current windows to the specified dimensions, and " -"adjusts other bookkeeping data used by the curses library that record the " -"window dimensions (in particular the SIGWINCH handler)." -msgstr "" - -#: library/curses.rst:530 -msgid "" -"Save the current state of the terminal modes in a buffer, usable " -"by :func:`resetty`." -msgstr "" - -#: library/curses.rst:535 -msgid "Retrieves the value set by :func:`set_escdelay`." -msgstr "" - -#: library/curses.rst:541 -msgid "" -"Sets the number of milliseconds to wait after reading an escape character, " -"to distinguish between an individual escape character entered on the " -"keyboard from escape sequences sent by cursor and function keys." -msgstr "" - -#: library/curses.rst:549 -msgid "Retrieves the value set by :func:`set_tabsize`." -msgstr "" - -#: library/curses.rst:555 -msgid "" -"Sets the number of columns used by the curses library when converting a tab " -"character to spaces as it adds the tab to a window." -msgstr "" - -#: library/curses.rst:562 -msgid "" -"Set the virtual screen cursor to *y*, *x*. If *y* and *x* are both ``-1``, " -"then :meth:`leaveok ` is set ``True``." -msgstr "" - -#: library/curses.rst:568 -msgid "" -"Initialize the terminal. *term* is a string giving the terminal name, or " -"``None``; if omitted or ``None``, the value of the :envvar:`TERM` " -"environment variable will be used. *fd* is the file descriptor to which any " -"initialization sequences will be sent; if not supplied or ``-1``, the file " -"descriptor for ``sys.stdout`` will be used." -msgstr "" - -#: library/curses.rst:577 -msgid "" -"Must be called if the programmer wants to use colors, and before any other " -"color manipulation routine is called. It is good practice to call this " -"routine right after :func:`initscr`." -msgstr "" - -#: library/curses.rst:581 -msgid "" -":func:`start_color` initializes eight basic colors (black, red, green, " -"yellow, blue, magenta, cyan, and white), and two global variables in " -"the :mod:`!curses` module, :const:`COLORS` and :const:`COLOR_PAIRS`, " -"containing the maximum number of colors and color-pairs the terminal can " -"support. It also restores the colors on the terminal to the values they had " -"when the terminal was just turned on." -msgstr "" - -#: library/curses.rst:590 -msgid "" -"Return a logical OR of all video attributes supported by the terminal. This " -"information is useful when a curses program needs complete control over the " -"appearance of the screen." -msgstr "" - -#: library/curses.rst:597 -msgid "" -"Return the value of the environment variable :envvar:`TERM`, as a bytes " -"object, truncated to 14 characters." -msgstr "" - -#: library/curses.rst:603 -msgid "" -"Return the value of the Boolean capability corresponding to the terminfo " -"capability name *capname* as an integer. Return the value ``-1`` if " -"*capname* is not a Boolean capability, or ``0`` if it is canceled or absent " -"from the terminal description." -msgstr "" - -#: library/curses.rst:611 -msgid "" -"Return the value of the numeric capability corresponding to the terminfo " -"capability name *capname* as an integer. Return the value ``-2`` if " -"*capname* is not a numeric capability, or ``-1`` if it is canceled or absent " -"from the terminal description." -msgstr "" - -#: library/curses.rst:619 -msgid "" -"Return the value of the string capability corresponding to the terminfo " -"capability name *capname* as a bytes object. Return ``None`` if *capname* " -"is not a terminfo \"string capability\", or is canceled or absent from the " -"terminal description." -msgstr "" - -#: library/curses.rst:627 -msgid "" -"Instantiate the bytes object *str* with the supplied parameters, where *str* " -"should be a parameterized string obtained from the terminfo database. E.g. " -"``tparm(tigetstr(\"cup\"), 5, 3)`` could result in ``b'\\033[6;4H'``, the " -"exact result depending on terminal type." -msgstr "" - -#: library/curses.rst:635 -msgid "" -"Specify that the file descriptor *fd* be used for typeahead checking. If " -"*fd* is ``-1``, then no typeahead checking is done." -msgstr "" - -#: library/curses.rst:638 -msgid "" -"The curses library does \"line-breakout optimization\" by looking for " -"typeahead periodically while updating the screen. If input is found, and it " -"is coming from a tty, the current update is postponed until refresh or " -"doupdate is called again, allowing faster response to commands typed in " -"advance. This function allows specifying a different file descriptor for " -"typeahead checking." -msgstr "" - -#: library/curses.rst:647 -msgid "" -"Return a bytes object which is a printable representation of the character " -"*ch*. Control characters are represented as a caret followed by the " -"character, for example as ``b'^C'``. Printing characters are left as they " -"are." -msgstr "" - -#: library/curses.rst:654 -msgid "Push *ch* so the next :meth:`~window.getch` will return it." -msgstr "" - -#: library/curses.rst:658 -msgid "Only one *ch* can be pushed before :meth:`!getch` is called." -msgstr "" - -#: library/curses.rst:663 -msgid "" -"Update the :const:`LINES` and :const:`COLS` module variables. Useful for " -"detecting manual screen resize." -msgstr "" - -#: library/curses.rst:671 -msgid "Push *ch* so the next :meth:`~window.get_wch` will return it." -msgstr "" - -#: library/curses.rst:675 -msgid "Only one *ch* can be pushed before :meth:`!get_wch` is called." -msgstr "" - -#: library/curses.rst:682 -msgid "" -"Push a :const:`KEY_MOUSE` event onto the input queue, associating the given " -"state data with it." -msgstr "" - -#: library/curses.rst:688 -msgid "" -"If used, this function should be called before :func:`initscr` or newterm " -"are called. When *flag* is ``False``, the values of lines and columns " -"specified in the terminfo database will be used, even if environment " -"variables :envvar:`LINES` and :envvar:`COLUMNS` (used by default) are set, " -"or if curses is running in a window (in which case default behavior would be " -"to use the window size if :envvar:`LINES` and :envvar:`COLUMNS` are not set)." -msgstr "" - -#: library/curses.rst:698 -msgid "Equivalent to ``assume_default_colors(-1, -1)``." -msgstr "" - -#: library/curses.rst:703 -msgid "" -"Initialize curses and call another callable object, *func*, which should be " -"the rest of your curses-using application. If the application raises an " -"exception, this function will restore the terminal to a sane state before re-" -"raising the exception and generating a traceback. The callable object " -"*func* is then passed the main window 'stdscr' as its first argument, " -"followed by any other arguments passed to :func:`!wrapper`. Before calling " -"*func*, :func:`!wrapper` turns on cbreak mode, turns off echo, enables the " -"terminal keypad, and initializes colors if the terminal has color support. " -"On exit (whether normally or by exception) it restores cooked mode, turns on " -"echo, and disables the terminal keypad." -msgstr "" - -#: library/curses.rst:717 -msgid "Window Objects" -msgstr "" - -#: library/curses.rst:721 -msgid "" -"Window objects, as returned by :func:`initscr` and :func:`newwin` above, " -"have the following methods and attributes:" -msgstr "" - -#: library/curses.rst:728 -msgid "" -"Paint character *ch* at ``(y, x)`` with attributes *attr*, overwriting any " -"character previously painted at that location. By default, the character " -"position and attributes are the current settings for the window object." -msgstr "" - -#: library/curses.rst:734 -msgid "" -"Writing outside the window, subwindow, or pad raises a :exc:`curses.error`. " -"Attempting to write to the lower right corner of a window, subwindow, or pad " -"will cause an exception to be raised after the character is printed." -msgstr "" - -#: library/curses.rst:742 -msgid "" -"Paint at most *n* characters of the character string *str* at ``(y, x)`` " -"with attributes *attr*, overwriting anything previously on the display." -msgstr "" - -#: library/curses.rst:750 -msgid "" -"Paint the character string *str* at ``(y, x)`` with attributes *attr*, " -"overwriting anything previously on the display." -msgstr "" - -#: library/curses.rst:755 -msgid "" -"Writing outside the window, subwindow, or pad raises :exc:`curses.error`. " -"Attempting to write to the lower right corner of a window, subwindow, or pad " -"will cause an exception to be raised after the string is printed." -msgstr "" - -#: library/curses.rst:759 -msgid "" -"A `bug in ncurses `_, the backend for " -"this Python module, can cause SegFaults when resizing windows. This is fixed " -"in ncurses-6.1-20190511. If you are stuck with an earlier ncurses, you can " -"avoid triggering this if you do not call :func:`addstr` with a *str* that " -"has embedded newlines. Instead, call :func:`addstr` separately for each " -"line." -msgstr "" - -#: library/curses.rst:769 -msgid "" -"Remove attribute *attr* from the \"background\" set applied to all writes to " -"the current window." -msgstr "" - -#: library/curses.rst:775 -msgid "" -"Add attribute *attr* to the \"background\" set applied to all writes to the " -"current window." -msgstr "" - -#: library/curses.rst:781 -msgid "" -"Set the \"background\" set of attributes to *attr*. This set is initially " -"``0`` (no attributes)." -msgstr "" - -#: library/curses.rst:787 -msgid "" -"Set the background property of the window to the character *ch*, with " -"attributes *attr*. The change is then applied to every character position " -"in that window:" -msgstr "" - -#: library/curses.rst:791 -msgid "" -"The attribute of every character in the window is changed to the new " -"background attribute." -msgstr "" - -#: library/curses.rst:794 -msgid "" -"Wherever the former background character appears, it is changed to the new " -"background character." -msgstr "" - -#: library/curses.rst:800 -msgid "" -"Set the window's background. A window's background consists of a character " -"and any combination of attributes. The attribute part of the background is " -"combined (OR'ed) with all non-blank characters that are written into the " -"window. Both the character and attribute parts of the background are " -"combined with the blank characters. The background becomes a property of " -"the character and moves with the character through any scrolling and insert/" -"delete line/character operations." -msgstr "" - -#: library/curses.rst:810 -msgid "" -"Draw a border around the edges of the window. Each parameter specifies the " -"character to use for a specific part of the border; see the table below for " -"more details." -msgstr "" - -#: library/curses.rst:816 -msgid "" -"A ``0`` value for any parameter will cause the default character to be used " -"for that parameter. Keyword parameters can *not* be used. The defaults are " -"listed in this table:" -msgstr "" - -#: library/curses.rst:821 -msgid "Parameter" -msgstr "Paramètre" - -#: library/curses.rst:821 -msgid "Description" -msgstr "Description" - -#: library/curses.rst:821 -msgid "Default value" -msgstr "Valeur par défaut" - -#: library/curses.rst:823 -msgid "*ls*" -msgstr "*ls*" - -#: library/curses.rst:823 -msgid "Left side" -msgstr "" - -#: library/curses.rst:825 -msgid ":const:`ACS_VLINE`" -msgstr ":const:`ACS_VLINE`" - -#: library/curses.rst:825 -msgid "*rs*" -msgstr "*rs*" - -#: library/curses.rst:825 -msgid "Right side" -msgstr "" - -#: library/curses.rst:827 -msgid "*ts*" -msgstr "*ts*" - -#: library/curses.rst:827 -msgid "Top" -msgstr "" - -#: library/curses.rst:829 -msgid ":const:`ACS_HLINE`" -msgstr ":const:`ACS_HLINE`" - -#: library/curses.rst:829 -msgid "*bs*" -msgstr "*bs*" - -#: library/curses.rst:829 -msgid "Bottom" -msgstr "" - -#: library/curses.rst:831 -msgid "*tl*" -msgstr "*tl*" - -#: library/curses.rst:831 -msgid "Upper-left corner" -msgstr "" - -#: library/curses.rst:831 -msgid ":const:`ACS_ULCORNER`" -msgstr ":const:`ACS_ULCORNER`" - -#: library/curses.rst:833 -msgid "*tr*" -msgstr "" - -#: library/curses.rst:833 -msgid "Upper-right corner" -msgstr "" - -#: library/curses.rst:833 -msgid ":const:`ACS_URCORNER`" -msgstr ":const:`ACS_URCORNER`" - -#: library/curses.rst:835 -msgid "*bl*" -msgstr "" - -#: library/curses.rst:835 -msgid "Bottom-left corner" -msgstr "" - -#: library/curses.rst:835 -msgid ":const:`ACS_LLCORNER`" -msgstr ":const:`ACS_LLCORNER`" - -#: library/curses.rst:837 -msgid "*br*" -msgstr "" - -#: library/curses.rst:837 -msgid "Bottom-right corner" -msgstr "" - -#: library/curses.rst:837 -msgid ":const:`ACS_LRCORNER`" -msgstr ":const:`ACS_LRCORNER`" - -#: library/curses.rst:843 -msgid "" -"Similar to :meth:`border`, but both *ls* and *rs* are *vertch* and both *ts* " -"and *bs* are *horch*. The default corner characters are always used by this " -"function." -msgstr "" - -#: library/curses.rst:852 -msgid "" -"Set the attributes of *num* characters at the current cursor position, or at " -"position ``(y, x)`` if supplied. If *num* is not given or is ``-1``, the " -"attribute will be set on all the characters to the end of the line. This " -"function moves cursor to position ``(y, x)`` if supplied. The changed line " -"will be touched using the :meth:`touchline` method so that the contents will " -"be redisplayed by the next window refresh." -msgstr "" - -#: library/curses.rst:862 -msgid "" -"Like :meth:`erase`, but also cause the whole window to be repainted upon " -"next call to :meth:`refresh`." -msgstr "" - -#: library/curses.rst:868 -msgid "" -"If *flag* is ``True``, the next call to :meth:`refresh` will clear the " -"window completely." -msgstr "" - -#: library/curses.rst:874 -msgid "" -"Erase from cursor to the end of the window: all lines below the cursor are " -"deleted, and then the equivalent of :meth:`clrtoeol` is performed." -msgstr "" - -#: library/curses.rst:880 -msgid "Erase from cursor to the end of the line." -msgstr "" - -#: library/curses.rst:885 -msgid "" -"Update the current cursor position of all the ancestors of the window to " -"reflect the current cursor position of the window." -msgstr "" - -#: library/curses.rst:891 -msgid "Delete any character at ``(y, x)``." -msgstr "" - -#: library/curses.rst:896 -msgid "" -"Delete the line under the cursor. All following lines are moved up by one " -"line." -msgstr "" - -#: library/curses.rst:902 -msgid "" -"An abbreviation for \"derive window\", :meth:`derwin` is the same as " -"calling :meth:`subwin`, except that *begin_y* and *begin_x* are relative to " -"the origin of the window, rather than relative to the entire screen. Return " -"a window object for the derived window." -msgstr "" - -#: library/curses.rst:910 -msgid "" -"Add character *ch* with attribute *attr*, and immediately " -"call :meth:`refresh` on the window." -msgstr "" - -#: library/curses.rst:916 -msgid "" -"Test whether the given pair of screen-relative character-cell coordinates " -"are enclosed by the given window, returning ``True`` or ``False``. It is " -"useful for determining what subset of the screen windows enclose the " -"location of a mouse event." -msgstr "" - -#: library/curses.rst:921 -msgid "Previously it returned ``1`` or ``0`` instead of ``True`` or ``False``." -msgstr "" - -#: library/curses.rst:927 -msgid "" -"Encoding used to encode method arguments (Unicode strings and characters). " -"The encoding attribute is inherited from the parent window when a subwindow " -"is created, for example with :meth:`window.subwin`. By default, current " -"locale encoding is used (see :func:`locale.getencoding`)." -msgstr "" - -#: library/curses.rst:937 -msgid "Clear the window." -msgstr "" - -#: library/curses.rst:942 -msgid "Return a tuple ``(y, x)`` of coordinates of upper-left corner." -msgstr "" - -#: library/curses.rst:947 -msgid "Return the given window's current background character/attribute pair." -msgstr "" - -#: library/curses.rst:952 -msgid "" -"Get a character. Note that the integer returned does *not* have to be in " -"ASCII range: function keys, keypad keys and so on are represented by numbers " -"higher than 255. In no-delay mode, return ``-1`` if there is no input, " -"otherwise wait until a key is pressed." -msgstr "" - -#: library/curses.rst:960 -msgid "" -"Get a wide character. Return a character for most keys, or an integer for " -"function keys, keypad keys, and other special keys. In no-delay mode, raise " -"an exception if there is no input." -msgstr "" - -#: library/curses.rst:969 -msgid "" -"Get a character, returning a string instead of an integer, as :meth:`getch` " -"does. Function keys, keypad keys and other special keys return a multibyte " -"string containing the key name. In no-delay mode, raise an exception if " -"there is no input." -msgstr "" - -#: library/curses.rst:977 -msgid "Return a tuple ``(y, x)`` of the height and width of the window." -msgstr "" - -#: library/curses.rst:982 -msgid "" -"Return the beginning coordinates of this window relative to its parent " -"window as a tuple ``(y, x)``. Return ``(-1, -1)`` if this window has no " -"parent." -msgstr "" - -#: library/curses.rst:992 -msgid "" -"Read a bytes object from the user, with primitive line editing capacity. The " -"maximum value for *n* is 2047." -msgstr "" - -#: library/curses.rst:1090 -msgid "The maximum value for *n* was increased from 1023 to 2047." -msgstr "" - -#: library/curses.rst:1001 -msgid "" -"Return a tuple ``(y, x)`` of current cursor position relative to the " -"window's upper-left corner." -msgstr "" - -#: library/curses.rst:1008 -msgid "" -"Display a horizontal line starting at ``(y, x)`` with length *n* consisting " -"of the character *ch*." -msgstr "" - -#: library/curses.rst:1014 -msgid "" -"If *flag* is ``False``, curses no longer considers using the hardware insert/" -"delete character feature of the terminal; if *flag* is ``True``, use of " -"character insertion and deletion is enabled. When curses is first " -"initialized, use of character insert/delete is enabled by default." -msgstr "" - -#: library/curses.rst:1022 -msgid "" -"If *flag* is ``True``, :mod:`!curses` will try and use hardware line editing " -"facilities. Otherwise, line insertion/deletion are disabled." -msgstr "" - -#: library/curses.rst:1028 -msgid "" -"If *flag* is ``True``, any change in the window image automatically causes " -"the window to be refreshed; you no longer have to call :meth:`refresh` " -"yourself. However, it may degrade performance considerably, due to repeated " -"calls to wrefresh. This option is disabled by default." -msgstr "" - -#: library/curses.rst:1036 -msgid "" -"Return the character at the given position in the window. The bottom 8 bits " -"are the character proper, and upper bits are the attributes." -msgstr "" - -#: library/curses.rst:1043 -msgid "" -"Paint character *ch* at ``(y, x)`` with attributes *attr*, moving the line " -"from position *x* right by one character." -msgstr "" - -#: library/curses.rst:1049 -msgid "" -"Insert *nlines* lines into the specified window above the current line. The " -"*nlines* bottom lines are lost. For negative *nlines*, delete *nlines* " -"lines starting with the one under the cursor, and move the remaining lines " -"up. The bottom *nlines* lines are cleared. The current cursor position " -"remains the same." -msgstr "" - -#: library/curses.rst:1058 -msgid "" -"Insert a blank line under the cursor. All following lines are moved down by " -"one line." -msgstr "" - -#: library/curses.rst:1065 -msgid "" -"Insert a character string (as many characters as will fit on the line) " -"before the character under the cursor, up to *n* characters. If *n* is " -"zero or negative, the entire string is inserted. All characters to the right " -"of the cursor are shifted right, with the rightmost characters on the line " -"being lost. The cursor position does not change (after moving to *y*, *x*, " -"if specified)." -msgstr "" - -#: library/curses.rst:1075 -msgid "" -"Insert a character string (as many characters as will fit on the line) " -"before the character under the cursor. All characters to the right of the " -"cursor are shifted right, with the rightmost characters on the line being " -"lost. The cursor position does not change (after moving to *y*, *x*, if " -"specified)." -msgstr "" - -#: library/curses.rst:1084 -msgid "" -"Return a bytes object of characters, extracted from the window starting at " -"the current cursor position, or at *y*, *x* if specified. Attributes are " -"stripped from the characters. If *n* is specified, :meth:`instr` returns a " -"string at most *n* characters long (exclusive of the trailing NUL). The " -"maximum value for *n* is 2047." -msgstr "" - -#: library/curses.rst:1096 -msgid "" -"Return ``True`` if the specified line was modified since the last call " -"to :meth:`refresh`; otherwise return ``False``. Raise a :exc:`curses.error` " -"exception if *line* is not valid for the given window." -msgstr "" - -#: library/curses.rst:1103 -msgid "" -"Return ``True`` if the specified window was modified since the last call " -"to :meth:`refresh`; otherwise return ``False``." -msgstr "" - -#: library/curses.rst:1109 -msgid "" -"If *flag* is ``True``, escape sequences generated by some keys (keypad, " -"function keys) will be interpreted by :mod:`!curses`. If *flag* is " -"``False``, escape sequences will be left as is in the input stream." -msgstr "" - -#: library/curses.rst:1116 -msgid "" -"If *flag* is ``True``, cursor is left where it is on update, instead of " -"being at \"cursor position.\" This reduces cursor movement where possible. " -"If possible the cursor will be made invisible." -msgstr "" - -#: library/curses.rst:1120 -msgid "" -"If *flag* is ``False``, cursor will always be at \"cursor position\" after " -"an update." -msgstr "" - -#: library/curses.rst:1125 -msgid "Move cursor to ``(new_y, new_x)``." -msgstr "" - -#: library/curses.rst:1130 -msgid "" -"Move the window inside its parent window. The screen-relative parameters of " -"the window are not changed. This routine is used to display different parts " -"of the parent window at the same physical position on the screen." -msgstr "" - -#: library/curses.rst:1137 -msgid "Move the window so its upper-left corner is at ``(new_y, new_x)``." -msgstr "" - -#: library/curses.rst:1142 -msgid "If *flag* is ``True``, :meth:`getch` will be non-blocking." -msgstr "" - -#: library/curses.rst:1147 -msgid "If *flag* is ``True``, escape sequences will not be timed out." -msgstr "" - -#: library/curses.rst:1149 -msgid "" -"If *flag* is ``False``, after a few milliseconds, an escape sequence will " -"not be interpreted, and will be left in the input stream as is." -msgstr "" - -#: library/curses.rst:1155 -msgid "" -"Mark for refresh but wait. This function updates the data structure " -"representing the desired state of the window, but does not force an update " -"of the physical screen. To accomplish that, call :func:`doupdate`." -msgstr "" - -#: library/curses.rst:1162 -msgid "" -"Overlay the window on top of *destwin*. The windows need not be the same " -"size, only the overlapping region is copied. This copy is non-destructive, " -"which means that the current background character does not overwrite the old " -"contents of *destwin*." -msgstr "" - -#: library/curses.rst:1167 -msgid "" -"To get fine-grained control over the copied region, the second form " -"of :meth:`overlay` can be used. *sminrow* and *smincol* are the upper-left " -"coordinates of the source window, and the other variables mark a rectangle " -"in the destination window." -msgstr "" - -#: library/curses.rst:1175 -msgid "" -"Overwrite the window on top of *destwin*. The windows need not be the same " -"size, in which case only the overlapping region is copied. This copy is " -"destructive, which means that the current background character overwrites " -"the old contents of *destwin*." -msgstr "" - -#: library/curses.rst:1180 -msgid "" -"To get fine-grained control over the copied region, the second form " -"of :meth:`overwrite` can be used. *sminrow* and *smincol* are the upper-left " -"coordinates of the source window, the other variables mark a rectangle in " -"the destination window." -msgstr "" - -#: library/curses.rst:1188 -msgid "" -"Write all data associated with the window into the provided file object. " -"This information can be later retrieved using the :func:`getwin` function." -msgstr "" - -#: library/curses.rst:1194 -msgid "" -"Indicate that the *num* screen lines, starting at line *beg*, are corrupted " -"and should be completely redrawn on the next :meth:`refresh` call." -msgstr "" - -#: library/curses.rst:1200 -msgid "" -"Touch the entire window, causing it to be completely redrawn on the " -"next :meth:`refresh` call." -msgstr "" - -#: library/curses.rst:1206 -msgid "" -"Update the display immediately (sync actual screen with previous drawing/" -"deleting methods)." -msgstr "" - -#: library/curses.rst:1209 -msgid "" -"The 6 optional arguments can only be specified when the window is a pad " -"created with :func:`newpad`. The additional parameters are needed to " -"indicate what part of the pad and screen are involved. *pminrow* and " -"*pmincol* specify the upper left-hand corner of the rectangle to be " -"displayed in the pad. *sminrow*, *smincol*, *smaxrow*, and *smaxcol* " -"specify the edges of the rectangle to be displayed on the screen. The lower " -"right-hand corner of the rectangle to be displayed in the pad is calculated " -"from the screen coordinates, since the rectangles must be the same size. " -"Both rectangles must be entirely contained within their respective " -"structures. Negative values of *pminrow*, *pmincol*, *sminrow*, or " -"*smincol* are treated as if they were zero." -msgstr "" - -#: library/curses.rst:1223 -msgid "" -"Reallocate storage for a curses window to adjust its dimensions to the " -"specified values. If either dimension is larger than the current values, " -"the window's data is filled with blanks that have the current background " -"rendition (as set by :meth:`bkgdset`) merged into them." -msgstr "" - -#: library/curses.rst:1231 -msgid "Scroll the screen or scrolling region upward by *lines* lines." -msgstr "" - -#: library/curses.rst:1236 -msgid "" -"Control what happens when the cursor of a window is moved off the edge of " -"the window or scrolling region, either as a result of a newline action on " -"the bottom line, or typing the last character of the last line. If *flag* " -"is ``False``, the cursor is left on the bottom line. If *flag* is ``True``, " -"the window is scrolled up one line. Note that in order to get the physical " -"scrolling effect on the terminal, it is also necessary to call :meth:`idlok`." -msgstr "" - -#: library/curses.rst:1246 -msgid "" -"Set the scrolling region from line *top* to line *bottom*. All scrolling " -"actions will take place in this region." -msgstr "" - -#: library/curses.rst:1252 -msgid "" -"Turn off the standout attribute. On some terminals this has the side effect " -"of turning off all attributes." -msgstr "" - -#: library/curses.rst:1258 -msgid "Turn on attribute *A_STANDOUT*." -msgstr "" - -#: library/curses.rst:1271 -msgid "" -"Return a sub-window, whose upper-left corner is at ``(begin_y, begin_x)``, " -"and whose width/height is *ncols*/*nlines*." -msgstr "" - -#: library/curses.rst:1274 -msgid "" -"By default, the sub-window will extend from the specified position to the " -"lower right corner of the window." -msgstr "" - -#: library/curses.rst:1280 -msgid "" -"Touch each location in the window that has been touched in any of its " -"ancestor windows. This routine is called by :meth:`refresh`, so it should " -"almost never be necessary to call it manually." -msgstr "" - -#: library/curses.rst:1287 -msgid "" -"If *flag* is ``True``, then :meth:`syncup` is called automatically whenever " -"there is a change in the window." -msgstr "" - -#: library/curses.rst:1293 -msgid "" -"Touch all locations in ancestors of the window that have been changed in " -"the window." -msgstr "" - -#: library/curses.rst:1299 -msgid "" -"Set blocking or non-blocking read behavior for the window. If *delay* is " -"negative, blocking read is used (which will wait indefinitely for input). " -"If *delay* is zero, then non-blocking read is used, and :meth:`getch` will " -"return ``-1`` if no input is waiting. If *delay* is positive, " -"then :meth:`getch` will block for *delay* milliseconds, and return ``-1`` if " -"there is still no input at the end of that time." -msgstr "" - -#: library/curses.rst:1309 -msgid "" -"Pretend *count* lines have been changed, starting with line *start*. If " -"*changed* is supplied, it specifies whether the affected lines are marked as " -"having been changed (*changed*\\ ``=True``) or unchanged (*changed*\\ " -"``=False``)." -msgstr "" - -#: library/curses.rst:1316 -msgid "" -"Pretend the whole window has been changed, for purposes of drawing " -"optimizations." -msgstr "" - -#: library/curses.rst:1322 -msgid "" -"Mark all lines in the window as unchanged since the last call " -"to :meth:`refresh`." -msgstr "" - -#: library/curses.rst:1329 -msgid "" -"Display a vertical line starting at ``(y, x)`` with length *n* consisting of " -"the character *ch* with attributes *attr*." -msgstr "" - -#: library/curses.rst:1334 -msgid "Constants" -msgstr "Constantes" - -#: library/curses.rst:1336 -msgid "The :mod:`!curses` module defines the following data members:" -msgstr "" - -#: library/curses.rst:1341 -msgid "" -"Some curses routines that return an integer, such " -"as :meth:`~window.getch`, return :const:`ERR` upon failure." -msgstr "" - -#: library/curses.rst:1347 -msgid "" -"Some curses routines that return an integer, such as :func:`napms`, " -"return :const:`OK` upon success." -msgstr "" - -#: library/curses.rst:1353 -msgid "A bytes object representing the current version of the module." -msgstr "" - -#: library/curses.rst:1358 -msgid "" -"A named tuple containing the three components of the ncurses library " -"version: *major*, *minor*, and *patch*. All values are integers. The " -"components can also be accessed by name, so ``curses.ncurses_version[0]`` " -"is equivalent to ``curses.ncurses_version.major`` and so on." -msgstr "" - -#: library/curses.rst:1363 -msgid "Availability: if the ncurses library is used." -msgstr "" - -#: library/curses.rst:1369 -msgid "" -"The maximum number of colors the terminal can support. It is defined only " -"after the call to :func:`start_color`." -msgstr "" - -#: library/curses.rst:1374 -msgid "" -"The maximum number of color pairs the terminal can support. It is defined " -"only after the call to :func:`start_color`." -msgstr "" - -#: library/curses.rst:1379 -msgid "" -"The width of the screen, i.e., the number of columns. It is defined only " -"after the call to :func:`initscr`. Updated " -"by :func:`update_lines_cols`, :func:`resizeterm` and :func:`resize_term`." -msgstr "" - -#: library/curses.rst:1386 -msgid "" -"The height of the screen, i.e., the number of lines. It is defined only " -"after the call to :func:`initscr`. Updated " -"by :func:`update_lines_cols`, :func:`resizeterm` and :func:`resize_term`." -msgstr "" - -#: library/curses.rst:1392 -msgid "" -"Some constants are available to specify character cell attributes. The exact " -"constants available are system dependent." -msgstr "" - -#: library/curses.rst:1396 -msgid "Attribute" -msgstr "Attribut" - -#: library/curses.rst:1441 library/curses.rst:1779 -msgid "Meaning" -msgstr "Signification" - -#: library/curses.rst:1398 -msgid "Alternate character set mode" -msgstr "" - -#: library/curses.rst:1400 -msgid "Blink mode" -msgstr "" - -#: library/curses.rst:1402 -msgid "Bold mode" -msgstr "" - -#: library/curses.rst:1404 -msgid "Dim mode" -msgstr "" - -#: library/curses.rst:1406 -msgid "Invisible or blank mode" -msgstr "" - -#: library/curses.rst:1408 -msgid "Italic mode" -msgstr "" - -#: library/curses.rst:1410 -msgid "Normal attribute" -msgstr "Attribut normal" - -#: library/curses.rst:1412 -msgid "Protected mode" -msgstr "" - -#: library/curses.rst:1414 -msgid "Reverse background and foreground colors" -msgstr "" - -#: library/curses.rst:1417 -msgid "Standout mode" -msgstr "" - -#: library/curses.rst:1419 -msgid "Underline mode" -msgstr "" - -#: library/curses.rst:1421 -msgid "Horizontal highlight" -msgstr "" - -#: library/curses.rst:1423 -msgid "Left highlight" -msgstr "" - -#: library/curses.rst:1425 -msgid "Low highlight" -msgstr "" - -#: library/curses.rst:1427 -msgid "Right highlight" -msgstr "" - -#: library/curses.rst:1429 -msgid "Top highlight" -msgstr "" - -#: library/curses.rst:1431 -msgid "Vertical highlight" -msgstr "" - -#: library/curses.rst:1434 -msgid "``A_ITALIC`` was added." -msgstr "" - -#: library/curses.rst:1437 -msgid "" -"Several constants are available to extract corresponding attributes returned " -"by some methods." -msgstr "" - -#: library/curses.rst:1441 -msgid "Bit-mask" -msgstr "" - -#: library/curses.rst:1443 -msgid "Bit-mask to extract attributes" -msgstr "" - -#: library/curses.rst:1446 -msgid "Bit-mask to extract a character" -msgstr "" - -#: library/curses.rst:1449 -msgid "Bit-mask to extract color-pair field information" -msgstr "" - -#: library/curses.rst:1453 -msgid "" -"Keys are referred to by integer constants with names starting with " -"``KEY_``. The exact keycaps available are system dependent." -msgstr "" - -#: library/curses.rst:1459 -msgid "Key constant" -msgstr "" - -#: library/curses.rst:1459 -msgid "Key" -msgstr "Clé" - -#: library/curses.rst:1461 -msgid "Minimum key value" -msgstr "" - -#: library/curses.rst:1463 -msgid "Break key (unreliable)" -msgstr "" - -#: library/curses.rst:1465 -msgid "Down-arrow" -msgstr "" - -#: library/curses.rst:1467 -msgid "Up-arrow" -msgstr "" - -#: library/curses.rst:1469 -msgid "Left-arrow" -msgstr "" - -#: library/curses.rst:1471 -msgid "Right-arrow" -msgstr "" - -#: library/curses.rst:1473 -msgid "Home key (upward+left arrow)" -msgstr "" - -#: library/curses.rst:1475 -msgid "Backspace (unreliable)" -msgstr "" - -#: library/curses.rst:1477 -msgid "Function keys. Up to 64 function keys are supported." -msgstr "" - -#: library/curses.rst:1480 -msgid "Value of function key *n*" -msgstr "" - -#: library/curses.rst:1482 -msgid "Delete line" -msgstr "" - -#: library/curses.rst:1484 -msgid "Insert line" -msgstr "" - -#: library/curses.rst:1486 -msgid "Delete character" -msgstr "" - -#: library/curses.rst:1488 -msgid "Insert char or enter insert mode" -msgstr "" - -#: library/curses.rst:1490 -msgid "Exit insert char mode" -msgstr "" - -#: library/curses.rst:1492 -msgid "Clear screen" -msgstr "" - -#: library/curses.rst:1494 -msgid "Clear to end of screen" -msgstr "" - -#: library/curses.rst:1496 -msgid "Clear to end of line" -msgstr "" - -#: library/curses.rst:1498 -msgid "Scroll 1 line forward" -msgstr "" - -#: library/curses.rst:1500 -msgid "Scroll 1 line backward (reverse)" -msgstr "" - -#: library/curses.rst:1502 -msgid "Next page" -msgstr "" - -#: library/curses.rst:1504 -msgid "Previous page" -msgstr "" - -#: library/curses.rst:1506 -msgid "Set tab" -msgstr "" - -#: library/curses.rst:1508 -msgid "Clear tab" -msgstr "" - -#: library/curses.rst:1510 -msgid "Clear all tabs" -msgstr "" - -#: library/curses.rst:1512 -msgid "Enter or send (unreliable)" -msgstr "" - -#: library/curses.rst:1514 -msgid "Soft (partial) reset (unreliable)" -msgstr "" - -#: library/curses.rst:1516 -msgid "Reset or hard reset (unreliable)" -msgstr "" - -#: library/curses.rst:1518 -msgid "Print" -msgstr "" - -#: library/curses.rst:1520 -msgid "Home down or bottom (lower left)" -msgstr "" - -#: library/curses.rst:1522 -msgid "Upper left of keypad" -msgstr "" - -#: library/curses.rst:1524 -msgid "Upper right of keypad" -msgstr "" - -#: library/curses.rst:1526 -msgid "Center of keypad" -msgstr "" - -#: library/curses.rst:1528 -msgid "Lower left of keypad" -msgstr "" - -#: library/curses.rst:1530 -msgid "Lower right of keypad" -msgstr "" - -#: library/curses.rst:1532 -msgid "Back tab" -msgstr "" - -#: library/curses.rst:1534 -msgid "Beg (beginning)" -msgstr "" - -#: library/curses.rst:1536 -msgid "Cancel" -msgstr "" - -#: library/curses.rst:1538 -msgid "Close" -msgstr "*Close*" - -#: library/curses.rst:1540 -msgid "Cmd (command)" -msgstr "" - -#: library/curses.rst:1542 -msgid "Copy" -msgstr "*Copy*" - -#: library/curses.rst:1544 -msgid "Create" -msgstr "" - -#: library/curses.rst:1546 -msgid "End" -msgstr "" - -#: library/curses.rst:1548 -msgid "Exit" -msgstr "*Exit*" - -#: library/curses.rst:1550 -msgid "Find" -msgstr "" - -#: library/curses.rst:1552 -msgid "Help" -msgstr "" - -#: library/curses.rst:1554 -msgid "Mark" -msgstr "" - -#: library/curses.rst:1556 -msgid "Message" -msgstr "" - -#: library/curses.rst:1558 -msgid "Move" -msgstr "" - -#: library/curses.rst:1560 -msgid "Next" -msgstr "" - -#: library/curses.rst:1562 -msgid "Open" -msgstr "" - -#: library/curses.rst:1564 -msgid "Options" -msgstr "Options" - -#: library/curses.rst:1566 -msgid "Prev (previous)" -msgstr "" - -#: library/curses.rst:1568 -msgid "Redo" -msgstr "*Redo*" - -#: library/curses.rst:1570 -msgid "Ref (reference)" -msgstr "" - -#: library/curses.rst:1572 -msgid "Refresh" -msgstr "" - -#: library/curses.rst:1574 -msgid "Replace" -msgstr "" - -#: library/curses.rst:1576 -msgid "Restart" -msgstr "" - -#: library/curses.rst:1578 -msgid "Resume" -msgstr "" - -#: library/curses.rst:1580 -msgid "Save" -msgstr "*Save*" - -#: library/curses.rst:1582 -msgid "Shifted Beg (beginning)" -msgstr "" - -#: library/curses.rst:1584 -msgid "Shifted Cancel" -msgstr "" - -#: library/curses.rst:1586 -msgid "Shifted Command" -msgstr "" - -#: library/curses.rst:1588 -msgid "Shifted Copy" -msgstr "" - -#: library/curses.rst:1590 -msgid "Shifted Create" -msgstr "" - -#: library/curses.rst:1592 -msgid "Shifted Delete char" -msgstr "" - -#: library/curses.rst:1594 -msgid "Shifted Delete line" -msgstr "" - -#: library/curses.rst:1596 -msgid "Select" -msgstr "" - -#: library/curses.rst:1598 -msgid "Shifted End" -msgstr "" - -#: library/curses.rst:1600 -msgid "Shifted Clear line" -msgstr "" - -#: library/curses.rst:1602 -msgid "Shifted Exit" -msgstr "" - -#: library/curses.rst:1604 -msgid "Shifted Find" -msgstr "" - -#: library/curses.rst:1606 -msgid "Shifted Help" -msgstr "" - -#: library/curses.rst:1608 -msgid "Shifted Home" -msgstr "" - -#: library/curses.rst:1610 -msgid "Shifted Input" -msgstr "" - -#: library/curses.rst:1612 -msgid "Shifted Left arrow" -msgstr "" - -#: library/curses.rst:1614 -msgid "Shifted Message" -msgstr "" - -#: library/curses.rst:1616 -msgid "Shifted Move" -msgstr "" - -#: library/curses.rst:1618 -msgid "Shifted Next" -msgstr "" - -#: library/curses.rst:1620 -msgid "Shifted Options" -msgstr "" - -#: library/curses.rst:1622 -msgid "Shifted Prev" -msgstr "" - -#: library/curses.rst:1624 -msgid "Shifted Print" -msgstr "" - -#: library/curses.rst:1626 -msgid "Shifted Redo" -msgstr "" - -#: library/curses.rst:1628 -msgid "Shifted Replace" -msgstr "" - -#: library/curses.rst:1630 -msgid "Shifted Right arrow" -msgstr "" - -#: library/curses.rst:1632 -msgid "Shifted Resume" -msgstr "" - -#: library/curses.rst:1634 -msgid "Shifted Save" -msgstr "" - -#: library/curses.rst:1636 -msgid "Shifted Suspend" -msgstr "" - -#: library/curses.rst:1638 -msgid "Shifted Undo" -msgstr "" - -#: library/curses.rst:1640 -msgid "Suspend" -msgstr "" - -#: library/curses.rst:1642 -msgid "Undo" -msgstr "*Undo*" - -#: library/curses.rst:1644 -msgid "Mouse event has occurred" -msgstr "" - -#: library/curses.rst:1646 -msgid "Terminal resize event" -msgstr "" - -#: library/curses.rst:1648 -msgid "Maximum key value" -msgstr "" - -#: library/curses.rst:1651 -msgid "" -"On VT100s and their software emulations, such as X terminal emulators, there " -"are normally at least four function keys (:const:`KEY_F1 " -"`, :const:`KEY_F2 `, :const:`KEY_F3 " -"`, :const:`KEY_F4 `) available, and the arrow keys mapped " -"to :const:`KEY_UP`, :const:`KEY_DOWN`, :const:`KEY_LEFT` " -"and :const:`KEY_RIGHT` in the obvious way. If your machine has a PC " -"keyboard, it is safe to expect arrow keys and twelve function keys (older PC " -"keyboards may have only ten function keys); also, the following keypad " -"mappings are standard:" -msgstr "" - -#: library/curses.rst:1660 -msgid "Keycap" -msgstr "" - -#: library/curses.rst:1805 library/curses.rst:1926 -msgid "Constant" -msgstr "Constante" - -#: library/curses.rst:1662 -msgid ":kbd:`Insert`" -msgstr ":kbd:`Insert`" - -#: library/curses.rst:1662 -msgid "KEY_IC" -msgstr "" - -#: library/curses.rst:1664 -msgid ":kbd:`Delete`" -msgstr ":kbd:`Delete`" - -#: library/curses.rst:1664 -msgid "KEY_DC" -msgstr "" - -#: library/curses.rst:1666 -msgid ":kbd:`Home`" -msgstr ":kbd:`Home`" - -#: library/curses.rst:1666 -msgid "KEY_HOME" -msgstr "KEY_HOME" - -#: library/curses.rst:1668 -msgid ":kbd:`End`" -msgstr ":kbd:`End`" - -#: library/curses.rst:1668 -msgid "KEY_END" -msgstr "KEY_END" - -#: library/curses.rst:1670 -msgid ":kbd:`Page Up`" -msgstr ":kbd:`Page Up`" - -#: library/curses.rst:1670 -msgid "KEY_PPAGE" -msgstr "KEY_PPAGE" - -#: library/curses.rst:1672 -msgid ":kbd:`Page Down`" -msgstr ":kbd:`Page Down`" - -#: library/curses.rst:1672 -msgid "KEY_NPAGE" -msgstr "KEY_NPAGE" - -#: library/curses.rst:1677 -msgid "" -"The following table lists characters from the alternate character set. These " -"are inherited from the VT100 terminal, and will generally be available on " -"software emulations such as X terminals. When there is no graphic " -"available, curses falls back on a crude printable ASCII approximation." -msgstr "" - -#: library/curses.rst:1684 -msgid "These are available only after :func:`initscr` has been called." -msgstr "" - -#: library/curses.rst:1687 -msgid "ACS code" -msgstr "" - -#: library/curses.rst:1689 -msgid "alternate name for upper right corner" -msgstr "" - -#: library/curses.rst:1691 -msgid "solid square block" -msgstr "" - -#: library/curses.rst:1693 -msgid "board of squares" -msgstr "" - -#: library/curses.rst:1695 -msgid "alternate name for horizontal line" -msgstr "" - -#: library/curses.rst:1697 -msgid "alternate name for upper left corner" -msgstr "" - -#: library/curses.rst:1699 -msgid "alternate name for top tee" -msgstr "" - -#: library/curses.rst:1701 -msgid "bottom tee" -msgstr "" - -#: library/curses.rst:1703 -msgid "bullet" -msgstr "" - -#: library/curses.rst:1705 -msgid "checker board (stipple)" -msgstr "" - -#: library/curses.rst:1707 -msgid "arrow pointing down" -msgstr "" - -#: library/curses.rst:1709 -msgid "degree symbol" -msgstr "" - -#: library/curses.rst:1711 -msgid "diamond" -msgstr "" - -#: library/curses.rst:1713 -msgid "greater-than-or-equal-to" -msgstr "" - -#: library/curses.rst:1715 -msgid "horizontal line" -msgstr "" - -#: library/curses.rst:1717 -msgid "lantern symbol" -msgstr "" - -#: library/curses.rst:1719 -msgid "left arrow" -msgstr "" - -#: library/curses.rst:1721 -msgid "less-than-or-equal-to" -msgstr "" - -#: library/curses.rst:1723 -msgid "lower left-hand corner" -msgstr "" - -#: library/curses.rst:1725 -msgid "lower right-hand corner" -msgstr "" - -#: library/curses.rst:1727 -msgid "left tee" -msgstr "" - -#: library/curses.rst:1729 -msgid "not-equal sign" -msgstr "" - -#: library/curses.rst:1731 -msgid "letter pi" -msgstr "" - -#: library/curses.rst:1733 -msgid "plus-or-minus sign" -msgstr "" - -#: library/curses.rst:1735 -msgid "big plus sign" -msgstr "" - -#: library/curses.rst:1737 -msgid "right arrow" -msgstr "" - -#: library/curses.rst:1739 -msgid "right tee" -msgstr "" - -#: library/curses.rst:1741 -msgid "scan line 1" -msgstr "" - -#: library/curses.rst:1743 -msgid "scan line 3" -msgstr "" - -#: library/curses.rst:1745 -msgid "scan line 7" -msgstr "" - -#: library/curses.rst:1747 -msgid "scan line 9" -msgstr "" - -#: library/curses.rst:1749 -msgid "alternate name for lower right corner" -msgstr "" - -#: library/curses.rst:1751 -msgid "alternate name for vertical line" -msgstr "" - -#: library/curses.rst:1753 -msgid "alternate name for right tee" -msgstr "" - -#: library/curses.rst:1755 -msgid "alternate name for lower left corner" -msgstr "" - -#: library/curses.rst:1757 -msgid "alternate name for bottom tee" -msgstr "" - -#: library/curses.rst:1759 -msgid "alternate name for left tee" -msgstr "" - -#: library/curses.rst:1761 -msgid "alternate name for crossover or big plus" -msgstr "" - -#: library/curses.rst:1763 -msgid "pound sterling" -msgstr "" - -#: library/curses.rst:1765 -msgid "top tee" -msgstr "" - -#: library/curses.rst:1767 -msgid "up arrow" -msgstr "" - -#: library/curses.rst:1769 -msgid "upper left corner" -msgstr "" - -#: library/curses.rst:1771 -msgid "upper right corner" -msgstr "" - -#: library/curses.rst:1773 -msgid "vertical line" -msgstr "" - -#: library/curses.rst:1776 -msgid "" -"The following table lists mouse button constants used by :meth:`getmouse`:" -msgstr "" - -#: library/curses.rst:1779 -msgid "Mouse button constant" -msgstr "" - -#: library/curses.rst:1781 -msgid "Mouse button *n* pressed" -msgstr "" - -#: library/curses.rst:1783 -msgid "Mouse button *n* released" -msgstr "" - -#: library/curses.rst:1785 -msgid "Mouse button *n* clicked" -msgstr "" - -#: library/curses.rst:1787 -msgid "Mouse button *n* double clicked" -msgstr "" - -#: library/curses.rst:1789 -msgid "Mouse button *n* triple clicked" -msgstr "" - -#: library/curses.rst:1791 -msgid "Shift was down during button state change" -msgstr "" - -#: library/curses.rst:1795 -msgid "Control was down during button state change" -msgstr "" - -#: library/curses.rst:1802 -msgid "The following table lists the predefined colors:" -msgstr "" - -#: library/curses.rst:1805 -msgid "Color" -msgstr "" - -#: library/curses.rst:1807 -msgid "Black" -msgstr "" - -#: library/curses.rst:1809 -msgid "Blue" -msgstr "" - -#: library/curses.rst:1811 -msgid "Cyan (light greenish blue)" -msgstr "" - -#: library/curses.rst:1813 -msgid "Green" -msgstr "" - -#: library/curses.rst:1815 -msgid "Magenta (purplish red)" -msgstr "" - -#: library/curses.rst:1817 -msgid "Red" -msgstr "" - -#: library/curses.rst:1819 -msgid "White" -msgstr "" - -#: library/curses.rst:1821 -msgid "Yellow" -msgstr "" - -#: library/curses.rst:1826 -msgid ":mod:`!curses.textpad` --- Text input widget for curses programs" -msgstr "" - -#: library/curses.rst:1831 -msgid "" -"The :mod:`!curses.textpad` module provides a :class:`Textbox` class that " -"handles elementary text editing in a curses window, supporting a set of " -"keybindings resembling those of Emacs (thus, also of Netscape Navigator, " -"BBedit 6.x, FrameMaker, and many other programs). The module also provides " -"a rectangle-drawing function useful for framing text boxes or for other " -"purposes." -msgstr "" - -#: library/curses.rst:1837 -msgid "The module :mod:`!curses.textpad` defines the following function:" -msgstr "" - -#: library/curses.rst:1842 -msgid "" -"Draw a rectangle. The first argument must be a window object; the remaining " -"arguments are coordinates relative to that window. The second and third " -"arguments are the y and x coordinates of the upper left hand corner of the " -"rectangle to be drawn; the fourth and fifth arguments are the y and x " -"coordinates of the lower right hand corner. The rectangle will be drawn " -"using VT100/IBM PC forms characters on terminals that make this possible " -"(including xterm and most other software terminal emulators). Otherwise it " -"will be drawn with ASCII dashes, vertical bars, and plus signs." -msgstr "" - -#: library/curses.rst:1855 -msgid "Textbox objects" -msgstr "" - -#: library/curses.rst:1857 -msgid "You can instantiate a :class:`Textbox` object as follows:" -msgstr "" - -#: library/curses.rst:1862 -msgid "" -"Return a textbox widget object. The *win* argument should be a " -"curses :ref:`window ` object in which the textbox is " -"to be contained. The edit cursor of the textbox is initially located at the " -"upper left hand corner of the containing window, with coordinates ``(0, " -"0)``. The instance's :attr:`stripspaces` flag is initially on." -msgstr "" - -#: library/curses.rst:1868 -#, fuzzy -msgid ":class:`Textbox` objects have the following methods:" -msgstr "" -"Les objets de la classe :class:`TestLoader` ont les attributs suivants :" - -#: library/curses.rst:1873 -msgid "" -"This is the entry point you will normally use. It accepts editing " -"keystrokes until one of the termination keystrokes is entered. If " -"*validator* is supplied, it must be a function. It will be called for each " -"keystroke entered with the keystroke as a parameter; command dispatch is " -"done on the result. This method returns the window contents as a string; " -"whether blanks in the window are included is affected by " -"the :attr:`stripspaces` attribute." -msgstr "" - -#: library/curses.rst:1884 -msgid "" -"Process a single command keystroke. Here are the supported special " -"keystrokes:" -msgstr "" - -#: library/curses.rst:1926 -msgid "Keystroke" -msgstr "" - -#: library/curses.rst:1888 -msgid "Action" -msgstr "Action" - -#: library/curses.rst:1890 -msgid ":kbd:`Control-A`" -msgstr ":kbd:`Control-A`" - -#: library/curses.rst:1890 -msgid "Go to left edge of window." -msgstr "" - -#: library/curses.rst:1928 -msgid ":kbd:`Control-B`" -msgstr ":kbd:`Control-B`" - -#: library/curses.rst:1892 -msgid "Cursor left, wrapping to previous line if appropriate." -msgstr "" - -#: library/curses.rst:1895 -msgid ":kbd:`Control-D`" -msgstr ":kbd:`Control-D`" - -#: library/curses.rst:1895 -msgid "Delete character under cursor." -msgstr "" - -#: library/curses.rst:1897 -msgid ":kbd:`Control-E`" -msgstr ":kbd:`Control-E`" - -#: library/curses.rst:1897 -msgid "Go to right edge (stripspaces off) or end of line (stripspaces on)." -msgstr "" - -#: library/curses.rst:1930 -msgid ":kbd:`Control-F`" -msgstr ":kbd:`Control-F`" - -#: library/curses.rst:1900 -msgid "Cursor right, wrapping to next line when appropriate." -msgstr "" - -#: library/curses.rst:1903 -msgid ":kbd:`Control-G`" -msgstr ":kbd:`Control-G`" - -#: library/curses.rst:1903 -msgid "Terminate, returning the window contents." -msgstr "" - -#: library/curses.rst:1905 -msgid ":kbd:`Control-H`" -msgstr ":kbd:`Control-H`" - -#: library/curses.rst:1905 -msgid "Delete character backward." -msgstr "" - -#: library/curses.rst:1907 -msgid ":kbd:`Control-J`" -msgstr ":kbd:`Control-J`" - -#: library/curses.rst:1907 -msgid "Terminate if the window is 1 line, otherwise insert newline." -msgstr "" - -#: library/curses.rst:1910 -msgid ":kbd:`Control-K`" -msgstr ":kbd:`Control-K`" - -#: library/curses.rst:1910 -msgid "If line is blank, delete it, otherwise clear to end of line." -msgstr "" - -#: library/curses.rst:1913 -msgid ":kbd:`Control-L`" -msgstr ":kbd:`Control-L`" - -#: library/curses.rst:1913 -msgid "Refresh screen." -msgstr "" - -#: library/curses.rst:1934 -msgid ":kbd:`Control-N`" -msgstr ":kbd:`Control-N`" - -#: library/curses.rst:1915 -msgid "Cursor down; move down one line." -msgstr "" - -#: library/curses.rst:1917 -msgid ":kbd:`Control-O`" -msgstr ":kbd:`Control-O`" - -#: library/curses.rst:1917 -msgid "Insert a blank line at cursor location." -msgstr "" - -#: library/curses.rst:1932 -msgid ":kbd:`Control-P`" -msgstr ":kbd:`Control-P`" - -#: library/curses.rst:1919 -msgid "Cursor up; move up one line." -msgstr "" - -#: library/curses.rst:1922 -msgid "" -"Move operations do nothing if the cursor is at an edge where the movement is " -"not possible. The following synonyms are supported where possible:" -msgstr "" - -#: library/curses.rst:1928 -#, fuzzy -msgid ":const:`~curses.KEY_LEFT`" -msgstr ":const:`KEY_LEFT`" - -#: library/curses.rst:1930 -#, fuzzy -msgid ":const:`~curses.KEY_RIGHT`" -msgstr ":const:`KEY_RIGHT`" - -#: library/curses.rst:1932 -#, fuzzy -msgid ":const:`~curses.KEY_UP`" -msgstr ":const:`KEY_UP`" - -#: library/curses.rst:1934 -#, fuzzy -msgid ":const:`~curses.KEY_DOWN`" -msgstr ":const:`KEY_DOWN`" - -#: library/curses.rst:1936 -#, fuzzy -msgid ":const:`~curses.KEY_BACKSPACE`" -msgstr ":const:`KEY_BACKSPACE`" - -#: library/curses.rst:1936 -msgid ":kbd:`Control-h`" -msgstr ":kbd:`Control-h`" - -#: library/curses.rst:1939 -msgid "" -"All other keystrokes are treated as a command to insert the given character " -"and move right (with line wrapping)." -msgstr "" - -#: library/curses.rst:1945 -msgid "" -"Return the window contents as a string; whether blanks in the window are " -"included is affected by the :attr:`stripspaces` member." -msgstr "" - -#: library/curses.rst:1951 -msgid "" -"This attribute is a flag which controls the interpretation of blanks in the " -"window. When it is on, trailing blanks on each line are ignored; any cursor " -"motion that would land the cursor on a trailing blank goes to the end of " -"that line instead, and trailing blanks are stripped when the window contents " -"are gathered." -msgstr "" - -#~ msgid "``A_ALTCHARSET``" -#~ msgstr "``A_ALTCHARSET``" - -#~ msgid "``A_BLINK``" -#~ msgstr "``A_BLINK``" - -#~ msgid "``A_BOLD``" -#~ msgstr "``A_BOLD``" - -#~ msgid "``A_DIM``" -#~ msgstr "``A_DIM``" - -#~ msgid "``A_INVIS``" -#~ msgstr "``A_INVIS``" - -#~ msgid "``A_ITALIC``" -#~ msgstr "``A_ITALIC``" - -#~ msgid "``A_NORMAL``" -#~ msgstr "``A_NORMAL``" - -#~ msgid "``A_PROTECT``" -#~ msgstr "``A_PROTECT``" - -#~ msgid "``A_REVERSE``" -#~ msgstr "``A_REVERSE``" - -#~ msgid "``A_STANDOUT``" -#~ msgstr "``A_STANDOUT``" - -#~ msgid "``A_UNDERLINE``" -#~ msgstr "``A_UNDERLINE``" - -#~ msgid "``A_HORIZONTAL``" -#~ msgstr "``A_HORIZONTAL``" - -#~ msgid "``A_LEFT``" -#~ msgstr "``A_LEFT``" - -#~ msgid "``A_LOW``" -#~ msgstr "``A_LOW``" - -#~ msgid "``A_RIGHT``" -#~ msgstr "``A_RIGHT``" - -#~ msgid "``A_TOP``" -#~ msgstr "``A_TOP``" - -#~ msgid "``A_VERTICAL``" -#~ msgstr "``A_VERTICAL``" - -#~ msgid "``A_CHARTEXT``" -#~ msgstr "``A_CHARTEXT``" - -#~ msgid "``A_ATTRIBUTES``" -#~ msgstr "``A_ATTRIBUTES``" - -#~ msgid "``A_COLOR``" -#~ msgstr "``A_COLOR``" - -#~ msgid "``KEY_MIN``" -#~ msgstr "``KEY_MIN``" - -#~ msgid "``KEY_BREAK``" -#~ msgstr "``KEY_BREAK``" - -#~ msgid "``KEY_DOWN``" -#~ msgstr "``KEY_DOWN``" - -#~ msgid "``KEY_UP``" -#~ msgstr "``KEY_UP``" - -#~ msgid "``KEY_LEFT``" -#~ msgstr "``KEY_LEFT``" - -#~ msgid "``KEY_RIGHT``" -#~ msgstr "``KEY_RIGHT``" - -#~ msgid "``KEY_HOME``" -#~ msgstr "``KEY_HOME``" - -#~ msgid "``KEY_BACKSPACE``" -#~ msgstr "``KEY_BACKSPACE``" - -#~ msgid "``KEY_F0``" -#~ msgstr "``KEY_F0``" - -#~ msgid "``KEY_Fn``" -#~ msgstr "``KEY_Fn``" - -#~ msgid "``KEY_DL``" -#~ msgstr "``KEY_DL``" - -#~ msgid "``KEY_IL``" -#~ msgstr "``KEY_IL``" - -#~ msgid "``KEY_DC``" -#~ msgstr "``KEY_DC``" - -#~ msgid "``KEY_IC``" -#~ msgstr "``KEY_IC``" - -#~ msgid "``KEY_EIC``" -#~ msgstr "``KEY_EIC``" - -#~ msgid "``KEY_CLEAR``" -#~ msgstr "``KEY_CLEAR``" - -#~ msgid "``KEY_EOS``" -#~ msgstr "``KEY_EOS``" - -#~ msgid "``KEY_EOL``" -#~ msgstr "``KEY_EOL``" - -#~ msgid "``KEY_SF``" -#~ msgstr "``KEY_SF``" - -#~ msgid "``KEY_SR``" -#~ msgstr "``KEY_SR``" - -#~ msgid "``KEY_NPAGE``" -#~ msgstr "``KEY_NPAGE``" - -#~ msgid "``KEY_PPAGE``" -#~ msgstr "``KEY_PPAGE``" - -#~ msgid "``KEY_STAB``" -#~ msgstr "``KEY_STAB``" - -#~ msgid "``KEY_CTAB``" -#~ msgstr "``KEY_CTAB``" - -#~ msgid "``KEY_CATAB``" -#~ msgstr "``KEY_CATAB``" - -#~ msgid "``KEY_ENTER``" -#~ msgstr "``KEY_ENTER``" - -#~ msgid "``KEY_SRESET``" -#~ msgstr "``KEY_SRESET``" - -#~ msgid "``KEY_RESET``" -#~ msgstr "``KEY_RESET``" - -#~ msgid "``KEY_PRINT``" -#~ msgstr "``KEY_PRINT``" - -#~ msgid "``KEY_LL``" -#~ msgstr "``KEY_LL``" - -#~ msgid "``KEY_A1``" -#~ msgstr "``KEY_A1``" - -#~ msgid "``KEY_A3``" -#~ msgstr "``KEY_A3``" - -#~ msgid "``KEY_B2``" -#~ msgstr "``KEY_B2``" - -#~ msgid "``KEY_C1``" -#~ msgstr "``KEY_C1``" - -#~ msgid "``KEY_C3``" -#~ msgstr "``KEY_C3``" - -#~ msgid "``KEY_BTAB``" -#~ msgstr "``KEY_BTAB``" - -#~ msgid "``KEY_BEG``" -#~ msgstr "``KEY_BEG``" - -#~ msgid "``KEY_CANCEL``" -#~ msgstr "``KEY_CANCEL``" - -#~ msgid "``KEY_CLOSE``" -#~ msgstr "``KEY_CLOSE``" - -#~ msgid "``KEY_COMMAND``" -#~ msgstr "``KEY_COMMAND``" - -#~ msgid "``KEY_COPY``" -#~ msgstr "``KEY_COPY``" - -#~ msgid "``KEY_CREATE``" -#~ msgstr "``KEY_CREATE``" - -#~ msgid "``KEY_END``" -#~ msgstr "``KEY_END``" - -#~ msgid "``KEY_EXIT``" -#~ msgstr "``KEY_EXIT``" - -#~ msgid "``KEY_FIND``" -#~ msgstr "``KEY_FIND``" - -#~ msgid "``KEY_HELP``" -#~ msgstr "``KEY_HELP``" - -#~ msgid "``KEY_MARK``" -#~ msgstr "``KEY_MARK``" - -#~ msgid "``KEY_MESSAGE``" -#~ msgstr "``KEY_MESSAGE``" - -#~ msgid "``KEY_MOVE``" -#~ msgstr "``KEY_MOVE``" - -#~ msgid "``KEY_NEXT``" -#~ msgstr "``KEY_NEXT``" - -#~ msgid "``KEY_OPEN``" -#~ msgstr "``KEY_OPEN``" - -#~ msgid "``KEY_OPTIONS``" -#~ msgstr "``KEY_OPTIONS``" - -#~ msgid "``KEY_PREVIOUS``" -#~ msgstr "``KEY_PREVIOUS``" - -#~ msgid "``KEY_REDO``" -#~ msgstr "``KEY_REDO``" - -#~ msgid "``KEY_REFERENCE``" -#~ msgstr "``KEY_REFERENCE``" - -#~ msgid "``KEY_REFRESH``" -#~ msgstr "``KEY_REFRESH``" - -#~ msgid "``KEY_REPLACE``" -#~ msgstr "``KEY_REPLACE``" - -#~ msgid "``KEY_RESTART``" -#~ msgstr "``KEY_RESTART``" - -#~ msgid "``KEY_RESUME``" -#~ msgstr "``KEY_RESUME``" - -#~ msgid "``KEY_SAVE``" -#~ msgstr "``KEY_SAVE``" - -#~ msgid "``KEY_SBEG``" -#~ msgstr "``KEY_SBEG``" - -#~ msgid "``KEY_SCANCEL``" -#~ msgstr "``KEY_SCANCEL``" - -#~ msgid "``KEY_SCOMMAND``" -#~ msgstr "``KEY_SCOMMAND``" - -#~ msgid "``KEY_SCOPY``" -#~ msgstr "``KEY_SCOPY``" - -#~ msgid "``KEY_SCREATE``" -#~ msgstr "``KEY_SCREATE``" - -#~ msgid "``KEY_SDC``" -#~ msgstr "``KEY_SDC``" - -#~ msgid "``KEY_SDL``" -#~ msgstr "``KEY_SDL``" - -#~ msgid "``KEY_SELECT``" -#~ msgstr "``KEY_SELECT``" - -#~ msgid "``KEY_SEND``" -#~ msgstr "``KEY_SEND``" - -#~ msgid "``KEY_SEOL``" -#~ msgstr "``KEY_SEOL``" - -#~ msgid "``KEY_SEXIT``" -#~ msgstr "``KEY_SEXIT``" - -#~ msgid "``KEY_SFIND``" -#~ msgstr "``KEY_SFIND``" - -#~ msgid "``KEY_SHELP``" -#~ msgstr "``KEY_SHELP``" - -#~ msgid "``KEY_SHOME``" -#~ msgstr "``KEY_SHOME``" - -#~ msgid "``KEY_SIC``" -#~ msgstr "``KEY_SIC``" - -#~ msgid "``KEY_SLEFT``" -#~ msgstr "``KEY_SLEFT``" - -#~ msgid "``KEY_SMESSAGE``" -#~ msgstr "``KEY_SMESSAGE``" - -#~ msgid "``KEY_SMOVE``" -#~ msgstr "``KEY_SMOVE``" - -#~ msgid "``KEY_SNEXT``" -#~ msgstr "``KEY_SNEXT``" - -#~ msgid "``KEY_SOPTIONS``" -#~ msgstr "``KEY_SOPTIONS``" - -#~ msgid "``KEY_SPREVIOUS``" -#~ msgstr "``KEY_SPREVIOUS``" - -#~ msgid "``KEY_SPRINT``" -#~ msgstr "``KEY_SPRINT``" - -#~ msgid "``KEY_SREDO``" -#~ msgstr "``KEY_SREDO``" - -#~ msgid "``KEY_SREPLACE``" -#~ msgstr "``KEY_SREPLACE``" - -#~ msgid "``KEY_SRIGHT``" -#~ msgstr "``KEY_SRIGHT``" - -#~ msgid "``KEY_SRSUME``" -#~ msgstr "``KEY_SRSUME``" - -#~ msgid "``KEY_SSAVE``" -#~ msgstr "``KEY_SSAVE``" - -#~ msgid "``KEY_SSUSPEND``" -#~ msgstr "``KEY_SSUSPEND``" - -#~ msgid "``KEY_SUNDO``" -#~ msgstr "``KEY_SUNDO``" - -#~ msgid "``KEY_SUSPEND``" -#~ msgstr "``KEY_SUSPEND``" - -#~ msgid "``KEY_UNDO``" -#~ msgstr "``KEY_UNDO``" - -#~ msgid "``KEY_MOUSE``" -#~ msgstr "``KEY_MOUSE``" - -#~ msgid "``KEY_RESIZE``" -#~ msgstr "``KEY_RESIZE``" - -#~ msgid "``KEY_MAX``" -#~ msgstr "``KEY_MAX``" - -#~ msgid "``ACS_BBSS``" -#~ msgstr "``ACS_BBSS``" - -#~ msgid "``ACS_BLOCK``" -#~ msgstr "``ACS_BLOCK``" - -#~ msgid "``ACS_BOARD``" -#~ msgstr "``ACS_BOARD``" - -#~ msgid "``ACS_BSBS``" -#~ msgstr "``ACS_BSBS``" - -#~ msgid "``ACS_BSSB``" -#~ msgstr "``ACS_BSSB``" - -#~ msgid "``ACS_BSSS``" -#~ msgstr "``ACS_BSSS``" - -#~ msgid "``ACS_BTEE``" -#~ msgstr "``ACS_BTEE``" - -#~ msgid "``ACS_BULLET``" -#~ msgstr "``ACS_BULLET``" - -#~ msgid "``ACS_CKBOARD``" -#~ msgstr "``ACS_CKBOARD``" - -#~ msgid "``ACS_DARROW``" -#~ msgstr "``ACS_DARROW``" - -#~ msgid "``ACS_DEGREE``" -#~ msgstr "``ACS_DEGREE``" - -#~ msgid "``ACS_DIAMOND``" -#~ msgstr "``ACS_DIAMOND``" - -#~ msgid "``ACS_GEQUAL``" -#~ msgstr "``ACS_GEQUAL``" - -#~ msgid "``ACS_HLINE``" -#~ msgstr "``ACS_HLINE``" - -#~ msgid "``ACS_LANTERN``" -#~ msgstr "``ACS_LANTERN``" - -#~ msgid "``ACS_LARROW``" -#~ msgstr "``ACS_LARROW``" - -#~ msgid "``ACS_LEQUAL``" -#~ msgstr "``ACS_LEQUAL``" - -#~ msgid "``ACS_LLCORNER``" -#~ msgstr "``ACS_LLCORNER``" - -#~ msgid "``ACS_LRCORNER``" -#~ msgstr "``ACS_LRCORNER``" - -#~ msgid "``ACS_LTEE``" -#~ msgstr "``ACS_LTEE``" - -#~ msgid "``ACS_NEQUAL``" -#~ msgstr "``ACS_NEQUAL``" - -#~ msgid "``ACS_PI``" -#~ msgstr "``ACS_PI``" - -#~ msgid "``ACS_PLMINUS``" -#~ msgstr "``ACS_PLMINUS``" - -#~ msgid "``ACS_PLUS``" -#~ msgstr "``ACS_PLUS``" - -#~ msgid "``ACS_RARROW``" -#~ msgstr "``ACS_RARROW``" - -#~ msgid "``ACS_RTEE``" -#~ msgstr "``ACS_RTEE``" - -#~ msgid "``ACS_S1``" -#~ msgstr "``ACS_S1``" - -#~ msgid "``ACS_S3``" -#~ msgstr "``ACS_S3``" - -#~ msgid "``ACS_S7``" -#~ msgstr "``ACS_S7``" - -#~ msgid "``ACS_S9``" -#~ msgstr "``ACS_S9``" - -#~ msgid "``ACS_SBBS``" -#~ msgstr "``ACS_SBBS``" - -#~ msgid "``ACS_SBSB``" -#~ msgstr "``ACS_SBSB``" - -#~ msgid "``ACS_SBSS``" -#~ msgstr "``ACS_SBSS``" - -#~ msgid "``ACS_SSBB``" -#~ msgstr "``ACS_SSBB``" - -#~ msgid "``ACS_SSBS``" -#~ msgstr "``ACS_SSBS``" - -#~ msgid "``ACS_SSSB``" -#~ msgstr "``ACS_SSSB``" - -#~ msgid "``ACS_SSSS``" -#~ msgstr "``ACS_SSSS``" - -#~ msgid "``ACS_STERLING``" -#~ msgstr "``ACS_STERLING``" - -#~ msgid "``ACS_TTEE``" -#~ msgstr "``ACS_TTEE``" - -#~ msgid "``ACS_UARROW``" -#~ msgstr "``ACS_UARROW``" - -#~ msgid "``ACS_ULCORNER``" -#~ msgstr "``ACS_ULCORNER``" - -#~ msgid "``ACS_URCORNER``" -#~ msgstr "``ACS_URCORNER``" - -#~ msgid "``ACS_VLINE``" -#~ msgstr "``ACS_VLINE``" - -#~ msgid "``COLOR_BLACK``" -#~ msgstr "``COLOR_BLACK``" - -#~ msgid "``COLOR_BLUE``" -#~ msgstr "``COLOR_BLUE``" - -#~ msgid "``COLOR_CYAN``" -#~ msgstr "``COLOR_CYAN``" - -#~ msgid "``COLOR_GREEN``" -#~ msgstr "``COLOR_GREEN``" - -#~ msgid "``COLOR_MAGENTA``" -#~ msgstr "``COLOR_MAGENTA``" - -#~ msgid "``COLOR_RED``" -#~ msgstr "``COLOR_RED``" - -#~ msgid "``COLOR_WHITE``" -#~ msgstr "``COLOR_WHITE``" - -#~ msgid "``COLOR_YELLOW``" -#~ msgstr "``COLOR_YELLOW``" diff --git a/library/custominterp.po b/library/custominterp.po deleted file mode 100644 index c2dd628535..0000000000 --- a/library/custominterp.po +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2023-01-15 22:33+0100\n" -"PO-Revision-Date: 2018-07-29 19:08+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/custominterp.rst:5 -msgid "Custom Python Interpreters" -msgstr "Interpréteurs Python personnalisés" - -#: library/custominterp.rst:7 -#, fuzzy -msgid "" -"The modules described in this chapter allow writing interfaces similar to " -"Python's interactive interpreter. If you want a Python interpreter that " -"supports some special feature in addition to the Python language, you should " -"look at the :mod:`code` module. (The :mod:`codeop` module is lower-level, " -"used to support compiling a possibly incomplete chunk of Python code.)" -msgstr "" -"Les modules décrits dans ce chapitre permettent d'écrire des interfaces " -"similaires à l'interpréteur interactif de Python. Si vous voulez un " -"interpréteur Python qui gère quelques fonctionnalités supplémentaires, vous " -"devriez regarder le module :mod:`code`. (Le module :mod:`codeop` est un " -"module de plus bas niveau permettant de compiler des morceaux, pas forcément " -"complets, de Python.)" - -#: library/custominterp.rst:13 -msgid "The full list of modules described in this chapter is:" -msgstr "La liste complète des modules décrits dans ce chapitre est :" diff --git a/library/dataclasses.po b/library/dataclasses.po deleted file mode 100644 index eaf3812891..0000000000 --- a/library/dataclasses.po +++ /dev/null @@ -1,1386 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-03-20 09:44+0100\n" -"Last-Translator: David GIRAUD \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 3.2.1\n" - -#: library/dataclasses.rst:2 -msgid ":mod:`!dataclasses` --- Data Classes" -msgstr ":mod:`!dataclasses` — Classes de données" - -#: library/dataclasses.rst:7 -msgid "**Source code:** :source:`Lib/dataclasses.py`" -msgstr "**Code source :** :source:`Lib/dataclasses.py`" - -#: library/dataclasses.rst:11 -msgid "" -"This module provides a decorator and functions for automatically adding " -"generated :term:`special methods ` such " -"as :meth:`~object.__init__` and :meth:`~object.__repr__` to user-defined " -"classes. It was originally described in :pep:`557`." -msgstr "" -"Ce module fournit un décorateur et des fonctions pour générer " -"automatiquement les :term:`méthodes spéciales ` " -"comme :meth:`~object.__init__` et :meth:`~object.__repr__` dans les classes " -"définies par l’utilisateur. Ce mécanisme a été décrit dans la :pep:`557`." - -#: library/dataclasses.rst:16 -msgid "" -"The member variables to use in these generated methods are defined " -"using :pep:`526` type annotations. For example, this code::" -msgstr "" -"Les variables membres à utiliser dans ces méthodes générées sont définies en " -"utilisant les annotations de type :pep:`526`. Par exemple ::" - -#: library/dataclasses.rst:31 -#, fuzzy -msgid "will add, among other things, a :meth:`!__init__` that looks like::" -msgstr "" -"ce code ajoute à la classe, entre autres choses, une " -"méthode :meth:`__init__` qui ressemble à ::" - -#: library/dataclasses.rst:38 -#, fuzzy -msgid "" -"Note that this method is automatically added to the class: it is not " -"directly specified in the :class:`!InventoryItem` definition shown above." -msgstr "" -"Il est important de noter que cette méthode est ajoutée automatiquement dans " -"la classe. Elle n’est jamais écrite dans la définition de ``InventoryItem``." - -#: library/dataclasses.rst:44 -msgid "Module contents" -msgstr "Classe de données" - -#: library/dataclasses.rst:48 -#, fuzzy -msgid "" -"This function is a :term:`decorator` that is used to add " -"generated :term:`special methods ` to classes, as described " -"below." -msgstr "" -"Cette fonction est un :term:`décorateur ` qui ajoute aux classes " -"des :term:`méthodes spéciales ` générées automatiquement. " -"Voici une description plus détaillée." - -#: library/dataclasses.rst:51 -#, fuzzy -msgid "" -"The ``@dataclass`` decorator examines the class to find ``field``\\s. A " -"``field`` is defined as a class variable that has a :term:`type annotation " -"`. With two exceptions described below, nothing in " -"``@dataclass`` examines the type specified in the variable annotation." -msgstr "" -"Le décorateur :func:`dataclass` examine la classe pour trouver des champs. " -"Un champ est défini comme une variable de classe qui possède " -"une :term:`annotation de type `. À deux exceptions " -"près décrites plus bas, :func:`dataclass` ne prend pas en considération le " -"type donné dans l'annotation." - -#: library/dataclasses.rst:57 -msgid "" -"The order of the fields in all of the generated methods is the order in " -"which they appear in the class definition." -msgstr "" -"L’ordre des paramètres des méthodes générées est celui d’apparition des " -"champs dans la définition de la classe." - -#: library/dataclasses.rst:60 -#, fuzzy -msgid "" -"The ``@dataclass`` decorator will add various \"dunder\" methods to the " -"class, described below. If any of the added methods already exist in the " -"class, the behavior depends on the parameter, as documented below. The " -"decorator returns the same class that it is called on; no new class is " -"created." -msgstr "" -"Le décorateur :func:`dataclass` ajoute diverses méthodes spéciales à la " -"classe, décrites ci-après. Si l’une des méthodes ajoutées existe déjà dans " -"la classe, le comportement dépend des paramètres. Le décorateur renvoie la " -"classe sur laquelle il est appelé ; aucune nouvelle classe n'est créée." - -#: library/dataclasses.rst:66 -#, fuzzy -msgid "" -"If ``@dataclass`` is used just as a simple decorator with no parameters, it " -"acts as if it has the default values documented in this signature. That is, " -"these three uses of ``@dataclass`` are equivalent::" -msgstr "" -"Si :func:`dataclass` est utilisé directement, il se comporte comme si on " -"l’avait appelé sans argument (c.-à-d. en laissant les valeurs par défaut de " -"sa signature). Ainsi, les trois usages suivants de :func:`dataclass` sont " -"équivalents ::" - -#: library/dataclasses.rst:84 -#, fuzzy -msgid "The parameters to ``@dataclass`` are:" -msgstr "Les paramètres de :func:`dataclass` sont les suivants :" - -#: library/dataclasses.rst:86 -#, fuzzy -msgid "" -"*init*: If true (the default), a :meth:`~object.__init__` method will be " -"generated." -msgstr "" -"*init* : si vrai (par défaut), une méthode :meth:`__init__` est générée." - -#: library/dataclasses.rst:89 -#, fuzzy -msgid "" -"If the class already defines :meth:`!__init__`, this parameter is ignored." -msgstr "" -"Si la classe définit déjà une méthode :meth:`__init__`, ce paramètre est " -"ignoré." - -#: library/dataclasses.rst:92 -#, fuzzy -msgid "" -"*repr*: If true (the default), a :meth:`~object.__repr__` method will be " -"generated. The generated repr string will have the class name and the name " -"and repr of each field, in the order they are defined in the class. Fields " -"that are marked as being excluded from the repr are not included. For " -"example: ``InventoryItem(name='widget', unit_price=3.0, " -"quantity_on_hand=10)``." -msgstr "" -"*repr* : si vrai (par défaut), une méthode :meth:`__repr__` est générée. La " -"chaîne de représentation comporte le nom de la classe et le nom ainsi que la " -"représentation de chaque champ, suivant leur ordre de définition. Les " -"champs marqués comme exclus de la représentation (voir ``Field`` ci-dessous) " -"sont ignorés. Par exemple : ``InventoryItem(name='widget', unit_price=3.0, " -"quantity_on_hand=10)``." - -#: library/dataclasses.rst:99 -#, fuzzy -msgid "" -"If the class already defines :meth:`!__repr__`, this parameter is ignored." -msgstr "" -"Si la classe définit déjà une méthode :meth:`__repr__`, ce paramètre est " -"ignoré." - -#: library/dataclasses.rst:102 -#, fuzzy -msgid "" -"*eq*: If true (the default), an :meth:`~object.__eq__` method will be " -"generated. This method compares the class as if it were a tuple of its " -"fields, in order. Both instances in the comparison must be of the identical " -"type." -msgstr "" -"*eq* : si vrai (par défaut), une méthode :meth:`__eq__` est générée. Cette " -"méthode permet de comparer les instances de la classe comme si elles étaient " -"des *n*-uplet de leurs champs, pris dans l’ordre. Les deux instances dans la " -"comparaison doivent être de même type." - -#: library/dataclasses.rst:107 -#, fuzzy -msgid "" -"If the class already defines :meth:`!__eq__`, this parameter is ignored." -msgstr "" -"Si la classe définit déjà une méthode :meth:`__eq__`, ce paramètre est " -"ignoré." - -#: library/dataclasses.rst:110 -#, fuzzy -msgid "" -"*order*: If true (the default is " -"``False``), :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:`~object.__gt__`, " -"and :meth:`~object.__ge__` methods will be generated. These compare the " -"class as if it were a tuple of its fields, in order. Both instances in the " -"comparison must be of the identical type. If *order* is true and *eq* is " -"false, a :exc:`ValueError` is raised." -msgstr "" -"*order* : si vrai (``False`` par défaut), les " -"méthodes :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__`, et :meth:`__ge__` " -"sont générées. Elles permettent de comparer les instances de la classe en " -"les considérant comme des *n*-uplets, dans l’ordre de définition des " -"champs. Toutes les instances dans la comparaison doivent être de même " -"type. Si ``order`` est vrai mais que ``eq`` est faux, une :exc:`ValueError` " -"est levée." - -#: library/dataclasses.rst:117 -#, fuzzy -msgid "" -"If the class already defines any of :meth:`!__lt__`, :meth:`!" -"__le__`, :meth:`!__gt__`, or :meth:`!__ge__`, then :exc:`TypeError` is " -"raised." -msgstr "" -"Si la classe définit déjà l’une des " -"méthodes :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__`, ou :meth:`__ge__`, " -"alors une :exc:`TypeError` est levée." - -#: library/dataclasses.rst:121 -#, fuzzy -msgid "" -"*unsafe_hash*: If true, force ``dataclasses`` to create " -"a :meth:`~object.__hash__` method, even though it may not be safe to do so. " -"Otherwise, generate a :meth:`~object.__hash__` method according to how *eq* " -"and *frozen* are set. The default value is ``False``." -msgstr "" -"*unsafe_hash* : si ``False`` (par défaut), une méthode :meth:`__hash__` est " -"générée et son comportement dépend des valeurs de *eq* et *frozen*." - -#: library/dataclasses.rst:127 -#, fuzzy -msgid "" -":meth:`!__hash__` is used by built-in :meth:`hash`, and when objects are " -"added to hashed collections such as dictionaries and sets. Having a :meth:`!" -"__hash__` implies that instances of the class are immutable. Mutability is a " -"complicated property that depends on the programmer's intent, the existence " -"and behavior of :meth:`!__eq__`, and the values of the *eq* and *frozen* " -"flags in the ``@dataclass`` decorator." -msgstr "" -":meth:`__hash__` est utilisée par la fonction native :meth:`hash()`, ainsi " -"que lorsqu’un objet est inséré dans une collection utilisant du hachage, tel " -"qu’un dictionnaire ou un ensemble. Avoir une méthode :meth:`__hash__` " -"implique que les instances de la classe sont immuables. La muabilité est une " -"propriété complexe qui dépend des intentions du programmeur, de l’existence " -"et du comportement de la méthode :meth:`__eq__`, et des valeurs des options " -"*eq* et *frozen* dans l’appel au décorateur :func:`dataclass`." - -#: library/dataclasses.rst:134 -#, fuzzy -msgid "" -"By default, ``@dataclass`` will not implicitly add " -"a :meth:`~object.__hash__` method unless it is safe to do so. Neither will " -"it add or change an existing explicitly defined :meth:`!__hash__` method. " -"Setting the class attribute ``__hash__ = None`` has a specific meaning to " -"Python, as described in the :meth:`!__hash__` documentation." -msgstr "" -"Par défaut, :func:`dataclass` n’ajoute pas de méthode " -"implicite :meth:`__hash__`, sauf s’il n’existe aucun risque sous-jacent. Il " -"n’ajoute ou ne modifie pas non plus la méthode :meth:`__hash__` si elle a " -"été définie explicitement. Définir l’attribut de classe ``__hash__ = None`` " -"a une signification particulière, comme précisé dans la documentation " -"de :meth:`__hash__`." - -#: library/dataclasses.rst:140 -#, fuzzy -msgid "" -"If :meth:`!__hash__` is not explicitly defined, or if it is set to ``None``, " -"then ``@dataclass`` *may* add an implicit :meth:`!__hash__` method. Although " -"not recommended, you can force ``@dataclass`` to create a :meth:`!__hash__` " -"method with ``unsafe_hash=True``. This might be the case if your class is " -"logically immutable but can still be mutated. This is a specialized use case " -"and should be considered carefully." -msgstr "" -"Si :meth:`__hash__` n’est pas défini explicitement, ou s’il a pour valeur " -"``None``, alors :func:`dataclass` *peut* ajouter une " -"méthode :meth:`__hash__` implicite. Bien que ce ne soit pas recommandé, vous " -"pouvez forcer :func:`dataclass` à créer une méthode :meth:`__hash__` en " -"utilisant ``unsafe_hash=True``. Cela pourrait être nécessaire si votre " -"classe est logiquement immuable mais qu’une mutation est tout de même " -"possible. Il s'agit là d'un cas particulier qui doit être considéré avec la " -"plus grande prudence." - -#: library/dataclasses.rst:147 -#, fuzzy -msgid "" -"Here are the rules governing implicit creation of a :meth:`!__hash__` " -"method. Note that you cannot both have an explicit :meth:`!__hash__` method " -"in your dataclass and set ``unsafe_hash=True``; this will result in " -"a :exc:`TypeError`." -msgstr "" -"Voici les règles autour de la création implicite de la " -"méthode :meth:`__hash__`. Il faut noter que vous ne pouvez pas avoir à la " -"fois une méthode :meth:`__hash__` explicite dans votre classe de données et " -"définir ``unsafe_hash=True`` ; cela lèvera une :exc:`TypeError`." - -#: library/dataclasses.rst:152 -#, fuzzy -msgid "" -"If *eq* and *frozen* are both true, by default ``@dataclass`` will generate " -"a :meth:`!__hash__` method for you. If *eq* is true and *frozen* is " -"false, :meth:`!__hash__` will be set to ``None``, marking it unhashable " -"(which it is, since it is mutable). If *eq* is false, :meth:`!__hash__` " -"will be left untouched meaning the :meth:`!__hash__` method of the " -"superclass will be used (if the superclass is :class:`object`, this means it " -"will fall back to id-based hashing)." -msgstr "" -"Si *eq* et *frozen* sont tous deux vrais, :func:`dataclass` génère par " -"défaut une méthode :meth:`__hash__` pour vous. Si *eq* est vrai mais que " -"*frozen* est faux, :meth:`__hash__` prend la valeur ``None``, marquant la " -"classe comme non-hachable (et c’est le cas, puisque les instances sont " -"mutables). Si ``eq`` est faux, la méthode :meth:`__hash__` est laissée " -"intacte, ce qui veut dire que la méthode :meth:`__hash__` de la classe " -"parente sera utilisée (si la classe parente est :class:`object`, le " -"comportement est un hachage basé sur les id)." - -#: library/dataclasses.rst:160 -#, fuzzy -msgid "" -"*frozen*: If true (the default is ``False``), assigning to fields will " -"generate an exception. This emulates read-only frozen instances. See " -"the :ref:`discussion ` below." -msgstr "" -"*frozen* : si vrai (faux par défaut), assigner une valeur à un champ lève " -"une exception. Cela simule le comportement des instances figées en lecture " -"seule. Si la méthode :meth:`__setattr__` ou :meth:`__delattr__` est définie " -"sur la classe, alors une :exc:`TypeError` est levée. Voir la discussion ci-" -"dessous." - -#: library/dataclasses.rst:164 -#, fuzzy -msgid "" -"If :meth:`~object.__setattr__` or :meth:`~object.__delattr__` is defined in " -"the class and *frozen* is true, then :exc:`TypeError` is raised." -msgstr "" -"Sous-classe de :exc:`AttributeError`, levée lorsqu'une " -"méthode :meth:`__setattr__` ou :meth:`__delattr__` définie implicitement est " -"appelée dans une classe de données définie avec ``frozen=True``." - -#: library/dataclasses.rst:167 -#, fuzzy -msgid "" -"*match_args*: If true (the default is ``True``), " -"the :attr:`~object.__match_args__` tuple will be created from the list of " -"non keyword-only parameters to the generated :meth:`~object.__init__` method " -"(even if :meth:`!__init__` is not generated, see above). If false, or " -"if :attr:`!__match_args__` is already defined in the class, then :attr:`!" -"__match_args__` will not be generated." -msgstr "" -"*match_args* : si vrai (``True`` est la valeur par défaut), le *n*-uplet " -"``__match_args__`` est créé automatiquement depuis la liste des paramètres " -"de la méthode :meth:`__init__` générée (même si :meth:`__init__` n'est pas " -"générée, voir ci-dessus). Si faux ou si ``__match_args__`` est déjà défini " -"dans la classe alors ``__match_args__`` n'est pas créé." - -#: library/dataclasses.rst:176 -#, fuzzy -msgid "" -"*kw_only*: If true (the default value is ``False``), then all fields will be " -"marked as keyword-only. If a field is marked as keyword-only, then the only " -"effect is that the :meth:`~object.__init__` parameter generated from a " -"keyword-only field must be specified with a keyword when :meth:`!__init__` " -"is called. See the :term:`parameter` glossary entry for details. Also see " -"the :const:`KW_ONLY` section." -msgstr "" -"*kw_only* : si vrai (``False`` est la valeur par défaut) alors tous les " -"champs sont marqués comme exclusivement nommés. Si un champ est marqué comme " -"exclusivement nommé, le seul impact est que le champ de la " -"méthode :meth:`__init__` générée devra être explicitement nommé lors de " -"l'appel de la méthode :meth:`__init__`. Il n'y a aucun autre effet dans les " -"autres aspects des classes de données. Voir l'entrée :term:`paramètre " -"` du glossaire pour plus d'informations. Voir également la " -"section :const:`KW_ONLY`." - -#: library/dataclasses.rst:184 -msgid "Keyword-only fields are not included in :attr:`!__match_args__`." -msgstr "" - -#: library/dataclasses.rst:188 -#, fuzzy -msgid "" -"*slots*: If true (the default is ``False``), :attr:`~object.__slots__` " -"attribute will be generated and new class will be returned instead of the " -"original one. If :attr:`!__slots__` is already defined in the class, " -"then :exc:`TypeError` is raised." -msgstr "" -"*slot* : si vrai (``False`` est la valeur par défaut), " -"l'attribut :attr:`__slots__` est généré et une nouvelle classe est renvoyée " -"à la place de celle d'origine. Si :attr:`__slots__` est déjà défini dans la " -"classe alors une :exc:`TypeError` est levée." - -#: library/dataclasses.rst:194 -msgid "" -"Passing parameters to a base class :meth:`~object.__init_subclass__` when " -"using ``slots=True`` will result in a :exc:`TypeError`. Either use " -"``__init_subclass__`` with no parameters or use default values as a " -"workaround. See :gh:`91126` for full details." -msgstr "" - -#: library/dataclasses.rst:202 -#, fuzzy -msgid "" -"If a field name is already included in the :attr:`!__slots__` of a base " -"class, it will not be included in the generated :attr:`!__slots__` to " -"prevent :ref:`overriding them `. Therefore, do not " -"use :attr:`!__slots__` to retrieve the field names of a dataclass. " -"Use :func:`fields` instead. To be able to determine inherited slots, base " -"class :attr:`!__slots__` may be any iterable, but *not* an iterator." -msgstr "" -"Si un nom de champ est déjà inclus dans le ``__slots__`` d'une classe mère, " -"il n'est pas inclus dans les ``__slots__`` générés pour éviter de :ref:`les " -"remplacer `. Par conséquent, n'utilisez pas " -"``__slots__`` pour récupérer les noms de champ d'une classe de données. " -"Utilisez :func:`fields` à la place. Pour pouvoir déterminer les *slots* " -"hérités, ``__slots__`` de la classe mère peut être n'importe quel itérable, " -"mais *pas* un itérateur." - -#: library/dataclasses.rst:212 -#, fuzzy -msgid "" -"*weakref_slot*: If true (the default is ``False``), add a slot named " -"\"__weakref__\", which is required to make an instance :func:`weakref-able " -"`. It is an error to specify ``weakref_slot=True`` without also " -"specifying ``slots=True``." -msgstr "" -"``weakref_slot`` : s'il est vrai (la valeur par défaut est ``False``), " -"ajoute un *slot* nommé ``\"__weakref__\"``, ce qui est nécessaire pour " -"pouvoir référencer faiblement une instance. C'est une erreur de spécifier " -"``weakref_slot=True`` sans spécifier également ``slots=True``." - -#: library/dataclasses.rst:220 -msgid "" -"``field``\\s may optionally specify a default value, using normal Python " -"syntax::" -msgstr "" -"Les champs peuvent éventuellement préciser une valeur par défaut, en " -"utilisant la syntaxe Python normale ::" - -#: library/dataclasses.rst:228 -#, fuzzy -msgid "" -"In this example, both :attr:`!a` and :attr:`!b` will be included in the " -"added :meth:`~object.__init__` method, which will be defined as::" -msgstr "" -"Dans cet exemple, ``a`` et ``b`` sont tous deux inclus dans la signature de " -"la méthode générée :meth:`__init__`, qui est définie comme suit ::" - -#: library/dataclasses.rst:233 -msgid "" -":exc:`TypeError` will be raised if a field without a default value follows a " -"field with a default value. This is true whether this occurs in a single " -"class, or as a result of class inheritance." -msgstr "" -"Une :exc:`TypeError` est levée si un champ sans valeur par défaut est défini " -"après un champ avec une valeur par défaut. C’est le cas que ce soit dans " -"une seule classe ou si c’est le résultat d’un héritage de classes." - -#: library/dataclasses.rst:239 -#, fuzzy -msgid "" -"For common and simple use cases, no other functionality is required. There " -"are, however, some dataclass features that require additional per-field " -"information. To satisfy this need for additional information, you can " -"replace the default field value with a call to the provided :func:`!field` " -"function. For example::" -msgstr "" -"Dans les cas les plus simples et courants, ce qui a été décrit jusqu'ici " -"suffit. Cependant, les classes de données possèdent des fonctionnalités " -"supplémentaires fondées sur des métadonnées propres à chaque champ. Pour " -"remplir ces métadonnées, il suffit de mettre un appel à la " -"fonction :func:`field` à la place de la valeur par défaut, comme dans cet " -"exemple ::" - -#: library/dataclasses.rst:252 -msgid "" -"As shown above, the :const:`MISSING` value is a sentinel object used to " -"detect if some parameters are provided by the user. This sentinel is used " -"because ``None`` is a valid value for some parameters with a distinct " -"meaning. No code should directly use the :const:`MISSING` value." -msgstr "" -"Comme le montre la signature, la constante :const:`MISSING` est une valeur " -"sentinelle pour déterminer si des paramètres ont été fournis par " -"l'utilisateur. ``None`` ne conviendrait pas puisque c'est une valeur avec un " -"sens qui peut être différent pour certains paramètres. La " -"sentinelle :const:`MISSING` est interne au module et ne doit pas être " -"utilisée dans vos programmes." - -#: library/dataclasses.rst:257 -#, fuzzy -msgid "The parameters to :func:`!field` are:" -msgstr "Les paramètres de :func:`field` sont :" - -#: library/dataclasses.rst:259 -#, fuzzy -msgid "" -"*default*: If provided, this will be the default value for this field. This " -"is needed because the :func:`!field` call itself replaces the normal " -"position of the default value." -msgstr "" -"*default* : s'il est fourni, il devient la valeur par défaut du champ. " -"L'appel à :meth:`field` est mis à la place normale de la valeur par défaut, " -"d'où la nécessité de ce paramètre." - -#: library/dataclasses.rst:263 -#, fuzzy -msgid "" -"*default_factory*: If provided, it must be a zero-argument callable that " -"will be called when a default value is needed for this field. Among other " -"purposes, this can be used to specify fields with mutable default values, as " -"discussed below. It is an error to specify both *default* and " -"*default_factory*." -msgstr "" -"*default_factory* : s'il est fourni, ce doit être un objet appelable sans " -"argument. Il est alors appelé à chaque fois qu'il faut une valeur par défaut " -"pour le champ. Ceci permet, entre autres choses, de définir des champs dont " -"les valeurs par défaut sont mutables. Une erreur se produit si *default* et " -"*default_factory* sont donnés tous les deux." - -#: library/dataclasses.rst:269 -#, fuzzy -msgid "" -"*init*: If true (the default), this field is included as a parameter to the " -"generated :meth:`~object.__init__` method." -msgstr "" -"*init* : si vrai (par défaut), la méthode :meth:`__init__` générée possède " -"un paramètre correspondant à ce champ." - -#: library/dataclasses.rst:272 -#, fuzzy -msgid "" -"*repr*: If true (the default), this field is included in the string returned " -"by the generated :meth:`~object.__repr__` method." -msgstr "" -"*repr* : si vrai (par défaut), le champ est inclus dans les chaînes " -"construites par la méthode :meth:`__repr__` générée." - -#: library/dataclasses.rst:275 -#, fuzzy -msgid "" -"*hash*: This can be a bool or ``None``. If true, this field is included in " -"the generated :meth:`~object.__hash__` method. If false, this field is " -"excluded from the generated :meth:`~object.__hash__`. If ``None`` (the " -"default), use the value of *compare*: this would normally be the expected " -"behavior, since a field should be included in the hash if it's used for " -"comparisons. Setting this value to anything other than ``None`` is " -"discouraged." -msgstr "" -"*hash* : ce paramètre est un booléen ou ``None``. La valeur ``False`` force " -"la prise en compte du champ dans la méthode :meth:`__hash__` générée, alors " -"que ``False`` force son exclusion. ``None`` revient à mettre la même valeur " -"que *compare*, ce qui est en général correct : il faut inclure dans le " -"hachage les champs employés pour les comparaisons. Il est déconseillé de " -"mettre ce paramètre à autre chose que ``None``." - -#: library/dataclasses.rst:283 -msgid "" -"One possible reason to set ``hash=False`` but ``compare=True`` would be if a " -"field is expensive to compute a hash value for, that field is needed for " -"equality testing, and there are other fields that contribute to the type's " -"hash value. Even if a field is excluded from the hash, it will still be " -"used for comparisons." -msgstr "" -"Cependant, une raison légitime de mettre *hash* à ``False`` alors que " -"*compare* est à ``True`` est la concourance de trois facteurs : le champ est " -"coûteux à hacher ; il est nécessaire pour les comparaisons d'égalité ; et il " -"y a déjà d'autres champs qui participent au hachage des instances. À ce " -"moment, on peut alors se passer du champ dans le hachage tout en le faisant " -"participer aux comparaisons." - -#: library/dataclasses.rst:289 -#, fuzzy -msgid "" -"*compare*: If true (the default), this field is included in the generated " -"equality and comparison methods " -"(:meth:`~object.__eq__`, :meth:`~object.__gt__`, et al.)." -msgstr "" -"*compare* : si vrai (par défaut), le champ est considéré dans les " -"comparaisons d'égalité et d'inégalité dans les méthodes " -"générées :meth:`__eq__`, :meth:`__gt__`, etc." - -#: library/dataclasses.rst:293 -#, fuzzy -msgid "" -"*metadata*: This can be a mapping or ``None``. ``None`` is treated as an " -"empty dict. This value is wrapped in :func:`~types.MappingProxyType` to " -"make it read-only, and exposed on the :class:`Field` object. It is not used " -"at all by Data Classes, and is provided as a third-party extension " -"mechanism. Multiple third-parties can each have their own key, to use as a " -"namespace in the metadata." -msgstr "" -"*metadata* : ce paramètre est un tableau associatif (*mapping* en anglais). " -"La valeur par défaut de ``None`` est prise comme un dictionnaire vide. Le " -"tableau associatif devient accessible sur l'objet :class:`Field`, sous la " -"forme d'un :func:`~types.MappingProxyType` afin qu'il soit en lecture seule." - -#: library/dataclasses.rst:301 -#, fuzzy -msgid "" -"*kw_only*: If true, this field will be marked as keyword-only. This is used " -"when the generated :meth:`~object.__init__` method's parameters are computed." -msgstr "" -"``kw_only`` : s'il est vrai, ce champ est marqué comme exclusivement nommé. " -"Cela est utilisé lors du traitement des paramètres de la " -"méthode :meth:`__init__` générée." - -#: library/dataclasses.rst:305 -msgid "Keyword-only fields are also not included in :attr:`!__match_args__`." -msgstr "" - -#: library/dataclasses.rst:309 -msgid "*doc*: optional docstring for this field." -msgstr "" - -#: library/dataclasses.rst:313 -#, fuzzy -msgid "" -"If the default value of a field is specified by a call to :func:`!field`, " -"then the class attribute for this field will be replaced by the specified " -"*default* value. If *default* is not provided, then the class attribute " -"will be deleted. The intent is that after the :deco:`dataclass` decorator " -"runs, the class attributes will all contain the default values for the " -"fields, just as if the default value itself were specified. For example, " -"after::" -msgstr "" -"Si la valeur par défaut d'un champ est donnée dans un appel à :func:`field` " -"(et pas directement), l'attribut correspondant de la classe est remplacé par " -"cette valeur. Si le paramètre *default* n'est pas passé, l'attribut est " -"simplement supprimé. De cette manière, après le passage du " -"décorateur :func:`dataclass`, les attributs de la classe contiennent les " -"valeurs par défaut des champs exactement comme si elles avaient été définies " -"directement. Par exemple ::" - -#: library/dataclasses.rst:329 -#, fuzzy -msgid "" -"The class attribute :attr:`!C.z` will be ``10``, the class attribute :attr:`!" -"C.t` will be ``20``, and the class attributes :attr:`!C.x` and :attr:`!C.y` " -"will not be set." -msgstr "" -"Après l'exécution de ce code, l'attribut de classe ``C.z`` vaut ``10`` et " -"l'attribut ``C.t`` vaut ``20``, alors que les attributs ``C.x`` et ``C.y`` " -"n'existent pas." - -#: library/dataclasses.rst:333 -msgid "" -"If *metadata* is ``None``, use an empty :class:`frozendict`, instead of " -"a :func:`~types.MappingProxyType` of an empty :class:`dict`." -msgstr "" - -#: library/dataclasses.rst:339 -#, fuzzy -msgid "" -":class:`!Field` objects describe each defined field. These objects are " -"created internally, and are returned by the :func:`fields` module-level " -"method (see below). Users should never instantiate a :class:`!Field` object " -"directly. Its documented attributes are:" -msgstr "" -"Les objets :class:`Field` contiennent des informations sur les champs. Ils " -"sont créés en interne, et on y accède à l'aide de la méthode au niveau du " -"module :func:`fields` (voir plus bas). Les utilisateurs ne doivent jamais " -"instancier un objet :class:`Field` eux-mêmes. Les attributs documentés sont " -"les suivants :" - -#: library/dataclasses.rst:344 -#, fuzzy -msgid ":attr:`!name`: The name of the field." -msgstr "*name* : le nom du champ ;" - -#: library/dataclasses.rst:345 -#, fuzzy -msgid ":attr:`!type`: The type of the field." -msgstr "*type* : le type associé au champ par l'annotation ;" - -#: library/dataclasses.rst:346 -#, fuzzy -msgid "" -":attr:`!default`, :attr:`!default_factory`, :attr:`!init`, :attr:`!" -"repr`, :attr:`!hash`, :attr:`!compare`, :attr:`!metadata`, and :attr:`!" -"kw_only` have the identical meaning and values as they do in " -"the :func:`field` function." -msgstr "" -"``default``, ``default_factory``, ``init``, ``repr``, ``hash``, ``compare``, " -"``metadata`` et ``kw_only`` qui correspondent aux paramètres " -"de :func:`field` et en prennent les valeurs." - -#: library/dataclasses.rst:350 -msgid "" -"Other attributes may exist, but they are private and must not be inspected " -"or relied on." -msgstr "" -"D'autres attributs peuvent exister, mais ils sont privés et ne sont pas " -"censés être inspectés. Le code ne doit jamais reposer sur eux." - -#: library/dataclasses.rst:355 -msgid "" -"``InitVar[T]`` type annotations describe variables that are :ref:`init-only " -"`. Fields annotated with :class:`!InitVar` " -"are considered pseudo-fields, and thus are neither returned by " -"the :func:`fields` function nor used in any way except adding them as " -"parameters to :meth:`~object.__init__` and an optional :meth:`__post_init__`." -msgstr "" - -#: library/dataclasses.rst:364 -msgid "" -"Returns a tuple of :class:`Field` objects that define the fields for this " -"dataclass. Accepts either a dataclass, or an instance of a dataclass. " -"Raises :exc:`TypeError` if not passed a dataclass or instance of one. Does " -"not return pseudo-fields which are ``ClassVar`` or ``InitVar``." -msgstr "" -"Renvoie un *n*-uplet d'objets :class:`Field` correspondant aux champs de " -"l'argument, à l'exclusion des pseudo-champs ``ClassVar`` ou ``InitVar``. " -"L'argument peut être soit une classe de données, soit une instance d'une " -"telle classe ; si ce n'est pas le cas, une exception :exc:`TypeError` est " -"levée." - -#: library/dataclasses.rst:371 -#, fuzzy -msgid "" -"Converts the dataclass *obj* to a dict (by using the factory function " -"*dict_factory*). Each dataclass is converted to a dict of its fields, as " -"``name: value`` pairs. dataclasses, dicts, frozendicts, lists, and tuples " -"are recursed into. Other objects are copied with :func:`copy.deepcopy`." -msgstr "" -"Convertit la classe de données ``obj`` en un dictionnaire (en utilisant la " -"fonction ``dict_factory``). Les clés et valeurs proviennent directement des " -"champs. Les dictionnaires, listes, *n*-uplets et instances de classes de " -"données sont parcourus récursivement. Les autres objets sont copiés " -"avec :func:`copy.deepcopy`." - -#: library/dataclasses.rst:377 -#, fuzzy -msgid "Example of using :func:`!asdict` on nested dataclasses::" -msgstr "" -"Exemple d'utilisation de :func:`asdict` sur des classes de données " -"imbriquées ::" - -#: library/dataclasses.rst:414 -msgid "To create a shallow copy, the following workaround may be used::" -msgstr "" -"Pour créer une copie superficielle, la solution de contournement suivante " -"peut être utilisée ::" - -#: library/dataclasses.rst:398 -#, fuzzy -msgid "" -":func:`!asdict` raises :exc:`TypeError` if *obj* is not a dataclass instance." -msgstr "" -":func:`asdict` lève :exc:`TypeError` si ``obj`` n'est pas une instance d'une " -"classe de données." - -#: library/dataclasses.rst:403 -#, fuzzy -msgid "" -"Converts the dataclass *obj* to a tuple (by using the factory function " -"*tuple_factory*). Each dataclass is converted to a tuple of its field " -"values. dataclasses, dicts, frozendicts, lists, and tuples are recursed " -"into. Other objects are copied with :func:`copy.deepcopy`." -msgstr "" -"Convertit l'instance d'une classe de données ``obj`` en un *n*-uplet (en " -"utilisant la fonction ``tuple_factory``). Chaque classe de données est " -"convertie vers un *n*-uplet des valeurs de ses champs. Cette fonction agit " -"récursivement sur les dictionnaires, listes et *n*-uplets. Les autres objets " -"sont copiés avec :func:`copy.deepcopy`." - -#: library/dataclasses.rst:409 -msgid "Continuing from the previous example::" -msgstr "Pour continuer l'exemple précédent ::" - -#: library/dataclasses.rst:418 -#, fuzzy -msgid "" -":func:`!astuple` raises :exc:`TypeError` if *obj* is not a dataclass " -"instance." -msgstr "" -":func:`astuple` lève :exc:`TypeError` si ``obj`` n'est pas une instance " -"d'une classe de données." - -#: library/dataclasses.rst:423 -#, fuzzy -msgid "" -"Creates a new dataclass with name *cls_name*, fields as defined in *fields*, " -"base classes as given in *bases*, and initialized with a namespace as given " -"in *namespace*. *fields* is an iterable whose elements are each either " -"``name``, ``(name, type)``, or ``(name, type, Field)``. If just ``name`` is " -"supplied, :data:`typing.Any` is used for ``type``. The values of *init*, " -"*repr*, *eq*, *order*, *unsafe_hash*, *frozen*, *match_args*, *kw_only*, " -"*slots*, and *weakref_slot* have the same meaning as they do " -"in :deco:`dataclass`." -msgstr "" -"Crée une nouvelle classe de données avec le nom ``cls_name``. Les champs " -"proviennent de ``fields``. Les classes mères sont lues dans ``bases``. " -"L'espace de nommage de la classe est initialisé par ``namespace``. " -"``fields`` est un itérable dont les éléments sont individuellement de la " -"forme ``name``, ``(name:type)`` ou ``(name, type, Field)``. Si seul ``name`` " -"est fourni, ``typing.Any`` est utilisé pour ``type``. Les valeurs de " -"``init``, ``repr``, ``eq``, ``order``, ``unsafe_hash``, ``frozen``, " -"``match_args``, ``kw_only``, ``slots`` et ``weakref_slot`` ont la même " -"signification que dans :func:`dataclass`." - -#: library/dataclasses.rst:433 -msgid "" -"If *module* is defined, the :attr:`!__module__` attribute of the dataclass " -"is set to that value. By default, it is set to the module name of the caller." -msgstr "" - -#: library/dataclasses.rst:437 -msgid "" -"The *decorator* parameter is a callable that will be used to create the " -"dataclass. It should take the class object as a first argument and the same " -"keyword arguments as :deco:`dataclass`. By default, the :deco:`dataclass` " -"function is used." -msgstr "" - -#: library/dataclasses.rst:442 -#, fuzzy -msgid "" -"This function is not strictly required, because any Python mechanism for " -"creating a new class with :attr:`~object.__annotations__` can then apply " -"the :deco:`dataclass` function to convert that class to a dataclass. This " -"function is provided as a convenience. For example::" -msgstr "" -"Cette fonction est pratique mais pas absolument nécessaire, puisqu'il suffit " -"de créer par un moyen quelconque une classe avec l'attribut " -"``__annotation__`` et de lui appliquer la fonction :func:`dataclass`, qui la " -"convertit en une classe de données. Par exemple, ceci ::" - -#: library/dataclasses.rst:454 -msgid "Is equivalent to::" -msgstr "est équivalent à ::" - -#: library/dataclasses.rst:465 -msgid "Added the *decorator* parameter." -msgstr "" - -#: library/dataclasses.rst:470 -#, fuzzy -msgid "" -"Creates a new object of the same type as *obj*, replacing fields with values " -"from *changes*. If *obj* is not a Data Class, raises :exc:`TypeError`. If " -"keys in *changes* are not field names of the given dataclass, " -"raises :exc:`TypeError`." -msgstr "" -"Crée un nouvel objet du même type que ``obj`` en affectant aux champs les " -"valeurs données par ``changes``. Si ``obj`` n'est pas une classe de " -"données, :exc:`TypeError` est levée. Si une clé dans ``changes`` ne " -"correspond à aucun champ de l'instance, :exc:`TypeError` est levée." - -#: library/dataclasses.rst:475 -#, fuzzy -msgid "" -"The newly returned object is created by calling the :meth:`~object.__init__` " -"method of the dataclass. This ensures that :meth:`__post_init__`, if " -"present, is also called." -msgstr "" -"L'objet renvoyé est créé à l'aide de la méthode :meth:`__init__` de la " -"classe de données, ce qui garantit que :meth:`__post_init__` est appelée (si " -"elle existe)." - -#: library/dataclasses.rst:479 -#, fuzzy -msgid "" -"Init-only variables without default values, if any exist, must be specified " -"on the call to :func:`!replace` so that they can be passed to :meth:`!" -"__init__` and :meth:`__post_init__`." -msgstr "" -"Si un champ d'initialisation (voir plus bas) n'a pas de valeur par défaut, " -"il faut l'inclure dans l'appel à :func:`replace` afin qu'il soit passé " -"à :meth:`__init__` et :meth:`__post_init__`." - -#: library/dataclasses.rst:483 -#, fuzzy -msgid "" -"It is an error for *changes* to contain any fields that are defined as " -"having ``init=False``. A :exc:`ValueError` will be raised in this case." -msgstr "" -"Si une clé de *changes* correspond à un champ défini avec " -"``init=False``, :exc:`ValueError` est levée." - -#: library/dataclasses.rst:487 -#, fuzzy -msgid "" -"Be forewarned about how ``init=False`` fields work during a call to :func:`!" -"replace`. They are not copied from the source object, but rather are " -"initialized in :meth:`__post_init__`, if they're initialized at all. It is " -"expected that ``init=False`` fields will be rarely and judiciously used. If " -"they are used, it might be wise to have alternate class constructors, or " -"perhaps a custom :func:`!replace` (or similarly named) method which handles " -"instance copying." -msgstr "" -"Prenez garde aux champs définis avec ``init=False`` dans un appel " -"à :func:`replace`. Ils ne sont pas copiés automatiquement de l'instance " -"source. C'est le rôle de :meth:`__post_init__` de les initialiser — ou pas. " -"Les champs avec ``init=False`` doivent rarement être utilisés et seulement à " -"bon escient. Si vous en avez, il peut être sage de traiter la copie des " -"instances par des constructeurs de classe alternatifs, ou bien une méthode " -"personnalisée ``replace()`` (ou un nom similaire)." - -#: library/dataclasses.rst:496 -msgid "" -"Dataclass instances are also supported by generic " -"function :func:`copy.replace`." -msgstr "" - -#: library/dataclasses.rst:500 -#, fuzzy -msgid "" -"Return ``True`` if its parameter is a dataclass (including subclasses of a " -"dataclass, but not including :ref:`generic aliases `) or " -"an instance of one, otherwise return ``False``." -msgstr "" -"Renvoie ``True`` si l'argument est soit une classe de données, soit une " -"instance d'une telle classe. Sinon, renvoie ``False``." - -#: library/dataclasses.rst:504 -msgid "" -"If you need to know if a class is an instance of a dataclass (and not a " -"dataclass itself), then add a further check for ``not isinstance(obj, " -"type)``::" -msgstr "" -"Pour vérifier qu'un objet *obj* est une instance d'une classe de données, et " -"non pas lui-même une classe de données, ajoutez le test ``not " -"isinstance(obj, type)`` ::" - -#: library/dataclasses.rst:513 -msgid "A sentinel value signifying a missing default or default_factory." -msgstr "" -"Une valeur sentinelle pour dénoter l'absence de *default* ou " -"*default_factory*." - -#: library/dataclasses.rst:517 -#, fuzzy -msgid "" -"A sentinel value used as a type annotation. Any fields after a pseudo-field " -"with the type of :const:`!KW_ONLY` are marked as keyword-only fields. Note " -"that a pseudo-field of type :const:`!KW_ONLY` is otherwise completely " -"ignored. This includes the name of such a field. By convention, a name of " -"``_`` is used for a :const:`!KW_ONLY` field. Keyword-only fields " -"signify :meth:`~object.__init__` parameters that must be specified as " -"keywords when the class is instantiated." -msgstr "" -"Une valeur sentinelle utilisée en tant qu'annotation de type. Chaque " -"attribut situé après un pseudo-champ ayant pour type la " -"constante :const:`KW_ONLY` est marqué comme champ exclusivement nommé. Notez " -"que le pseudo-champ ayant pour type la constante :const:`KW_ONLY` est par " -"ailleurs complètement ignoré. Par convention le nom ``_`` est utilisé pour " -"l'attribut :const:`KW_ONLY`. Les paramètres de la méthode :meth:`__init__` " -"exclusivement nommés doivent être spécifiés par leur nom lors de " -"l'instanciation de la classe." - -#: library/dataclasses.rst:526 -msgid "" -"In this example, the fields ``y`` and ``z`` will be marked as keyword-only " -"fields::" -msgstr "" -"Dans cet exemple ``y`` et ``z`` sont marqués comme exclusivement nommés ::" - -#: library/dataclasses.rst:537 -#, fuzzy -msgid "" -"In a single dataclass, it is an error to specify more than one field whose " -"type is :const:`!KW_ONLY`." -msgstr "" -"Une erreur est levée s'il y a plus d'un champ de type :const:`KW_ONLY` dans " -"une unique classe de données." - -#: library/dataclasses.rst:544 -#, fuzzy -msgid "" -"Raised when an implicitly defined :meth:`~object.__setattr__` " -"or :meth:`~object.__delattr__` is called on a dataclass which was defined " -"with ``frozen=True``. It is a subclass of :exc:`AttributeError`." -msgstr "" -"Sous-classe de :exc:`AttributeError`, levée lorsqu'une " -"méthode :meth:`__setattr__` ou :meth:`__delattr__` définie implicitement est " -"appelée dans une classe de données définie avec ``frozen=True``." - -#: library/dataclasses.rst:551 -msgid "Post-init processing" -msgstr "Post-initialisation" - -#: library/dataclasses.rst:555 -#, fuzzy -msgid "" -"When defined on the class, it will be called by the " -"generated :meth:`~object.__init__`, normally as :meth:`!self.__post_init__`. " -"However, if any ``InitVar`` fields are defined, they will also be passed " -"to :meth:`!__post_init__` in the order they were defined in the class. If " -"no :meth:`!__init__` method is generated, then :meth:`!__post_init__` will " -"not automatically be called." -msgstr "" -"Après avoir initialisé l'objet, la méthode :meth:`__init__` générée appelle " -"la méthode :meth:`__post_init__`, si elle est définie. :meth:`__post_init__` " -"est habituellement appelée avec un simple ``self.__post_init__()``. " -"Cependant, si la classe comporte des champs d'initialisation (voir plus " -"bas), leurs valeurs sont aussi passées à :meth:`__post_init__` telles " -"qu'elles ont été fournies à :meth:`__init__`. Si la classe est créée avec " -"``init=False``, :meth:`__post_init__` n'est jamais appelée automatiquement." - -#: library/dataclasses.rst:562 -msgid "" -"Among other uses, this allows for initializing field values that depend on " -"one or more other fields. For example::" -msgstr "" -"Cette méthode permet, entre autres, d'initialiser des champs qui dépendent " -"d'autres champs. Par exemple ::" - -#: library/dataclasses.rst:574 -#, fuzzy -msgid "" -"The :meth:`~object.__init__` method generated by :deco:`dataclass` does not " -"call base class :meth:`!__init__` methods. If the base class has an :meth:`!" -"__init__` method that has to be called, it is common to call this method in " -"a :meth:`__post_init__` method::" -msgstr "" -"Les méthodes :meth:`__init__` des classes mères ne sont pas appelées " -"automatiquement par la méthode :meth:`__init__` que " -"génère :func:`dataclass`. S'il faut appeler ces méthodes :meth:`__init__`, " -"il est courant de le faire dans :meth:`__post_init__` ::" - -#: library/dataclasses.rst:591 -#, fuzzy -msgid "" -"Note, however, that in general the dataclass-generated :meth:`!__init__` " -"methods don't need to be called, since the derived dataclass will take care " -"of initializing all fields of any base class that is a dataclass itself." -msgstr "" -"Notez toutefois qu'il n'est généralement pas nécessaire d'appeler une " -"méthode :meth:`__init__` si elle a été générée automatiquement dans une " -"classe de données, car la classe fille initialise elle-même les champs " -"apportés par toute classe mère qui est aussi une classe de données." - -#: library/dataclasses.rst:595 -#, fuzzy -msgid "" -"See the section below on init-only variables for ways to pass parameters " -"to :meth:`!__post_init__`. Also see the warning about how :func:`replace` " -"handles ``init=False`` fields." -msgstr "" -"Voir la section plus bas à propos des variables d'initialisation pour les " -"moyens de passer des paramètres à :meth:`__post_init__`. Voir également " -"l'avertissement sur le traitement par :func:`replace` des champs définis " -"avec ``init=False``." - -#: library/dataclasses.rst:602 -msgid "Class variables" -msgstr "Variables de classe" - -#: library/dataclasses.rst:604 -#, fuzzy -msgid "" -"One of the few places where :deco:`dataclass` actually inspects the type of " -"a field is to determine if a field is a class variable as defined " -"in :pep:`526`. It does this by checking if the type of the field " -"is :data:`typing.ClassVar`. If a field is a ``ClassVar``, it is excluded " -"from consideration as a field and is ignored by the dataclass mechanisms. " -"Such ``ClassVar`` pseudo-fields are not returned by the module-" -"level :func:`fields` function." -msgstr "" -"Voici le premier des deux cas où le type fourni dans l'annotation d'un champ " -"est pris en compte par :func:`dataclass` au moment de l'exécution. Si ce " -"type est ``typing.ClassVar``, le champ est considéré comme une variable de " -"classe, notion définie dans la :pep:`526`. Les champs de ce genre sont " -"complètement ignorés du point de vue des classes de données. Ils " -"n'apparaissent pas dans le résultat de :func:`fields`." - -#: library/dataclasses.rst:615 -msgid "Init-only variables" -msgstr "Variables d'initialisation" - -#: library/dataclasses.rst:617 -#, fuzzy -msgid "" -"Another place where :deco:`dataclass` inspects a type annotation is to " -"determine if a field is an init-only variable. It does this by seeing if " -"the type of a field is of type :class:`InitVar`. If a field is " -"an :class:`InitVar`, it is considered a pseudo-field called an init-only " -"field. As it is not a true field, it is not returned by the module-" -"level :func:`fields` function. Init-only fields are added as parameters to " -"the generated :meth:`~object.__init__` method, and are passed to the " -"optional :meth:`__post_init__` method. They are not otherwise used by " -"dataclasses." -msgstr "" -"L'autre cas où l'annotation de type influence :func:`dataclass` est le " -"suivant : si le type est ``dataclasses.InitVar``, le nom devient un « champ " -"d'initialisation ». Puisque ce n'est pas un vrai champ, il n'est pas inclus " -"dans le *n*-uplet que renvoie :func:`fields`. Les champs d'initialisation " -"sont ajoutés en tant que paramètres à la méthode :meth:`__init__` générée. " -"Leurs valeurs sont passées à :meth:`__post_init__`, si cette méthode existe. " -"C'est la seule manière dont elles sont utilisées." - -#: library/dataclasses.rst:627 -msgid "" -"For example, suppose a field will be initialized from a database, if a value " -"is not provided when creating the class::" -msgstr "" -"On peut par exemple imaginer un champ initialisé à partir d'une base de " -"données s'il n'a pas reçu de valeur explicite ::" - -#: library/dataclasses.rst:642 -#, fuzzy -msgid "" -"In this case, :func:`fields` will return :class:`Field` objects for :attr:`!" -"i` and :attr:`!j`, but not for :attr:`!database`." -msgstr "" -"Ici, :func:`fields` renvoie des objets :class:`Field` correspondant à ``i`` " -"et à ``j``, mais pas à ``database``." - -#: library/dataclasses.rst:648 -msgid "Frozen instances" -msgstr "Instances figées" - -#: library/dataclasses.rst:650 -#, fuzzy -msgid "" -"It is not possible to create truly immutable Python objects. However, by " -"passing ``frozen=True`` to the :deco:`dataclass` decorator you can emulate " -"immutability. In that case, dataclasses will " -"add :meth:`~object.__setattr__` and :meth:`~object.__delattr__` methods to " -"the class. These methods will raise a :exc:`FrozenInstanceError` when " -"invoked." -msgstr "" -"Bien qu'il ne soit pas possible de créer des objets Python strictement " -"immuables, on peut rendre les instances d'une classe de données quasi " -"immuables en passant ``frozen=True`` au décorateur :meth:`dataclass`, ce qui " -"lui fait générer des méthodes :meth:`__setattr__` et :meth:`__delattr__`. " -"Celles-ci lèvent systématiquement l'exception :exc:`FrozenInstanceError`." - -#: library/dataclasses.rst:656 -#, fuzzy -msgid "" -"There is a tiny performance penalty when using " -"``frozen=True``: :meth:`~object.__init__` cannot use simple assignment to " -"initialize fields, and must use :meth:`!object.__setattr__`." -msgstr "" -"Les performances sont légèrement moins bonnes avec ``frozen=True`` " -"car :meth:`__init__` doit passer par :meth:`object.__setattr__` au lieu de " -"simples affectations pour initialiser les champs." - -#: library/dataclasses.rst:665 -msgid "Inheritance" -msgstr "Héritage" - -#: library/dataclasses.rst:667 -#, fuzzy -msgid "" -"When the dataclass is being created by the :deco:`dataclass` decorator, it " -"looks through all of the class's base classes in reverse MRO (that is, " -"starting at :class:`object`) and, for each dataclass that it finds, adds the " -"fields from that base class to an ordered mapping of fields. After all of " -"the base class fields are added, it adds its own fields to the ordered " -"mapping. All of the generated methods will use this combined, calculated " -"ordered mapping of fields. Because the fields are in insertion order, " -"derived classes override base classes. An example::" -msgstr "" -"Au moment de la création d'une classe de données, le " -"décorateur :meth:`dataclass` parcourt toutes les classes mères dans l'ordre " -"inverse de résolution des méthodes (donc en commençant par :class:`object`). " -"À chaque fois qu'une classe de données est rencontrée, ses champs sont " -"insérés dans un tableau associatif ordonné. Pour finir, les champs de la " -"classe elle-même sont rajoutés. Toutes les méthodes générées utilisent en " -"interne ce même tableau associatif. Puisqu'il est ordonné, les champs des " -"classes filles écrasent ceux des classes mères. Voici un exemple ::" - -#: library/dataclasses.rst:687 -#, fuzzy -msgid "" -"The final list of fields is, in order, :attr:`!x`, :attr:`!y`, :attr:`!z`. " -"The final type of :attr:`!x` is :class:`int`, as specified in class :class:`!" -"C`." -msgstr "" -"La liste finale des champs contient, dans l'ordre, ``x``, ``y``, ``z``. Le " -"type de ``x`` est ``int``, comme déclaré dans ``C``." - -#: library/dataclasses.rst:690 -#, fuzzy -msgid "" -"The generated :meth:`~object.__init__` method for :class:`!C` will look " -"like::" -msgstr "La méthode :meth:`__init__` générée pour ``C`` ressemble à ::" - -#: library/dataclasses.rst:695 -#, fuzzy -msgid "Re-ordering of keyword-only parameters in :meth:`!__init__`" -msgstr "" -"Réarrangement des paramètres exclusivement nommés dans :meth:`__init__`" - -#: library/dataclasses.rst:697 -#, fuzzy -msgid "" -"After the parameters needed for :meth:`~object.__init__` are computed, any " -"keyword-only parameters are moved to come after all regular (non-keyword-" -"only) parameters. This is a requirement of how keyword-only parameters are " -"implemented in Python: they must come after non-keyword-only parameters." -msgstr "" -"Lorsque les paramètres requis pour :meth:`__init__` sont préparés, tous ceux " -"marqués comme exclusivement nommés sont déplacés pour être positionnés après " -"tous ceux non exclusivement nommés. Ceci est un prérequis de la façon dont " -"les paramètres exclusivement nommés sont implémentés en Python : ils sont " -"après les paramètres non exclusivement nommés." - -#: library/dataclasses.rst:703 -#, fuzzy -msgid "" -"In this example, :attr:`!Base.y`, :attr:`!Base.w`, and :attr:`!D.t` are " -"keyword-only fields, and :attr:`!Base.x` and :attr:`!D.z` are regular " -"fields::" -msgstr "" -"Dans cet exemple, ``Base.y``, ``Base.w``, et ``D.t`` sont des champs " -"exclusivement nommés alors que ``Base.x`` et ``D.z`` sont des champs " -"normaux ::" - -#: library/dataclasses.rst:718 -#, fuzzy -msgid "The generated :meth:`!__init__` method for :class:`!D` will look like::" -msgstr "La méthode :meth:`__init__` générée pour ``D`` ressemble à ::" - -#: library/dataclasses.rst:722 -msgid "" -"Note that the parameters have been re-ordered from how they appear in the " -"list of fields: parameters derived from regular fields are followed by " -"parameters derived from keyword-only fields." -msgstr "" -"Les paramètres ont été réarrangés par rapport à leur ordre d'apparition dans " -"la liste des champs : les paramètres provenant des attributs normaux sont " -"suivis par les paramètres qui proviennent des attributs exclusivement nommés." - -#: library/dataclasses.rst:726 -#, fuzzy -msgid "" -"The relative ordering of keyword-only parameters is maintained in the re-" -"ordered :meth:`!__init__` parameter list." -msgstr "" -"L'ordre relatif des paramètres exclusivement nommés est conservé par le " -"réarrangement des paramètres d'\\ :meth:`__init__`." - -#: library/dataclasses.rst:731 -msgid "Default factory functions" -msgstr "Fabriques de valeurs par défaut" - -#: library/dataclasses.rst:733 -#, fuzzy -msgid "" -"If a :func:`field` specifies a *default_factory*, it is called with zero " -"arguments when a default value for the field is needed. For example, to " -"create a new instance of a list, use::" -msgstr "" -"Le paramètre facultatif *default_factory* de :func:`field` est une fonction " -"qui est appelée sans argument pour fournir des valeurs par défaut. Par " -"exemple, voici comment donner la valeur par défaut d'une liste vide ::" - -#: library/dataclasses.rst:739 -#, fuzzy -msgid "" -"If a field is excluded from :meth:`~object.__init__` (using ``init=False``) " -"and the field also specifies *default_factory*, then the default factory " -"function will always be called from the generated :meth:`!__init__` " -"function. This happens because there is no other way to give the field an " -"initial value." -msgstr "" -"Si un champ avec fabrique est exclu de :meth:`__init__` (par " -"``init=False``), alors la fabrique est appelée par :meth:`__init__` pour " -"chaque nouvelle instance, puisque c'est le seul moyen d'obtenir une valeur à " -"laquelle initialiser le champ." - -#: library/dataclasses.rst:746 -msgid "Mutable default values" -msgstr "Valeurs par défaut mutables" - -#: library/dataclasses.rst:748 -msgid "" -"Python stores default member variable values in class attributes. Consider " -"this example, not using dataclasses::" -msgstr "" -"En Python, les valeurs par défaut des attributs sont stockées dans des " -"attributs de la classe. Observez cet exemple, sans classe de données ::" - -#: library/dataclasses.rst:763 -#, fuzzy -msgid "" -"Note that the two instances of class :class:`!C` share the same class " -"variable :attr:`!x`, as expected." -msgstr "" -"Comme attendu, les deux instances de ``C`` partagent le même objet pour " -"l'attribut ``x``." - -#: library/dataclasses.rst:766 -msgid "Using dataclasses, *if* this code was valid::" -msgstr "Avec les classes de données, si ce code était valide ::" - -#: library/dataclasses.rst:774 -msgid "it would generate code similar to::" -msgstr "il générerait un code équivalent à ::" - -#: library/dataclasses.rst:785 -#, fuzzy -msgid "" -"This has the same issue as the original example using class :class:`!C`. " -"That is, two instances of class :class:`!D` that do not specify a value " -"for :attr:`!x` when creating a class instance will share the same copy " -"of :attr:`!x`. Because dataclasses just use normal Python class creation " -"they also share this behavior. There is no general way for Data Classes to " -"detect this condition. Instead, the :deco:`dataclass` decorator will raise " -"a :exc:`ValueError` if it detects an unhashable default parameter. The " -"assumption is that if a value is unhashable, it is mutable. This is a " -"partial solution, but it does protect against many common errors." -msgstr "" -"On se retrouve avec le même problème qu'au premier exemple avec la classe " -"``C``. C'est-à-dire que deux instances de la classe ``D`` qui ne spécifient " -"pas de valeur pour ``x`` lors de leur création partageront la même copie de " -"``x``. Les classes de données étant créées comme toutes les autres classes " -"Python, leur comportement est identique. Il n'y a aucun moyen générique pour " -"les classes de données de détecter cette situation. C'est pourquoi le " -"décorateur :func:`dataclass` lève :exc:`TypeError` s'il détecte un paramètre " -"par défaut non hachable. L'hypothèse est que si une valeur ne peut pas être " -"hachée, elle est modifiable. Cette solution n'est pas parfaite, mais permet " -"d'éviter la majorité des erreurs." - -#: library/dataclasses.rst:796 -msgid "" -"Using default factory functions is a way to create new instances of mutable " -"types as default values for fields::" -msgstr "" -"Pour qu'un champ d'un type mutable soit par défaut initialisé à un nouvel " -"objet pour chaque instance, utilisez une fonction de fabrique ::" - -# suit un ':' -#: library/dataclasses.rst:805 -#, fuzzy -msgid "" -"Instead of looking for and disallowing objects of " -"type :class:`list`, :class:`dict`, or :class:`set`, unhashable objects are " -"now not allowed as default values. Unhashability is used to approximate " -"mutability." -msgstr "" -"au lieu de rechercher et d'interdire les objets de type ``list``, ``dict`` " -"ou ``set``, les objets non hachables ne sont plus autorisés comme valeurs " -"par défaut. Le caractère non-hachable est utilisé pour approximer la " -"muabilité." - -#: library/dataclasses.rst:812 -msgid "Descriptor-typed fields" -msgstr "" - -#: library/dataclasses.rst:814 -msgid "" -"Fields that are assigned :ref:`descriptor objects ` as their " -"default value have the following special behaviors:" -msgstr "" - -#: library/dataclasses.rst:817 -msgid "" -"The value for the field passed to the dataclass's :meth:`~object.__init__` " -"method is passed to the descriptor's :meth:`~object.__set__` method rather " -"than overwriting the descriptor object." -msgstr "" - -#: library/dataclasses.rst:821 -msgid "" -"Similarly, when getting or setting the field, the " -"descriptor's :meth:`~object.__get__` or :meth:`!__set__` method is called " -"rather than returning or overwriting the descriptor object." -msgstr "" - -#: library/dataclasses.rst:825 -msgid "" -"To determine whether a field contains a default value, :deco:`dataclass` " -"will call the descriptor's :meth:`!__get__` method using its class access " -"form: ``descriptor.__get__(obj=None, type=cls)``. If the descriptor returns " -"a value in this case, it will be used as the field's default. On the other " -"hand, if the descriptor raises :exc:`AttributeError` in this situation, no " -"default value will be provided for the field." -msgstr "" - -#: library/dataclasses.rst:860 -msgid "" -"Note that if a field is annotated with a descriptor type, but is not " -"assigned a descriptor object as its default value, the field will act like a " -"normal field." -msgstr "" - -#~ msgid "Module-level decorators, classes, and functions" -#~ msgstr "Décorateurs, classes et fonctions du module" - -#~ msgid "Exceptions" -#~ msgstr "Exceptions" diff --git a/library/datatypes.po b/library/datatypes.po deleted file mode 100644 index 8df18bd9fc..0000000000 --- a/library/datatypes.po +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2019-11-17 23:05+0100\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.4\n" - -#: library/datatypes.rst:5 -msgid "Data Types" -msgstr "Types de données" - -#: library/datatypes.rst:7 -msgid "" -"The modules described in this chapter provide a variety of specialized data " -"types such as dates and times, fixed-type arrays, heap queues, double-ended " -"queues, and enumerations." -msgstr "" -"Les modules documentés dans ce chapitre fournissent une gamme de types de " -"données spécialisés tel que les dates et les heures, les listes à type " -"prédéfini, les *heap queue*, les queues synchronisées et les énumérations." - -#: library/datatypes.rst:11 -msgid "" -"Python also provides some built-in data types, in " -"particular, :class:`dict`, :class:`list`, :class:`set` " -"and :class:`frozenset`, and :class:`tuple`. The :class:`str` class is used " -"to hold Unicode strings, and the :class:`bytes` and :class:`bytearray` " -"classes are used to hold binary data." -msgstr "" -"Python fournit aussi quelques types natifs, " -"typiquement :class:`dict`, :class:`list`, :class:`set`, :class:`frozenset`, " -"et :class:`tuple`. La classe :class:`str` est utilisée pour stocker des " -"chaînes Unicode, et les classes :class:`bytes` et :class:`bytearray` des " -"données binaires." - -#: library/datatypes.rst:17 -msgid "The following modules are documented in this chapter:" -msgstr "Les modules suivants sont documentés dans ce chapitre :" diff --git a/library/datetime.po b/library/datetime.po deleted file mode 100644 index f6d7ca1b81..0000000000 --- a/library/datetime.po +++ /dev/null @@ -1,4927 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-10-03 21:51+0200\n" -"Last-Translator: Loc Cosnier \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.3.2\n" - -#: library/datetime.rst:2 -msgid ":mod:`!datetime` --- Basic date and time types" -msgstr ":mod:`!datetime` — Types de base pour la date et l'heure" - -#: library/datetime.rst:7 -msgid "**Source code:** :source:`Lib/datetime.py`" -msgstr "**Code source :** :source:`Lib/datetime.py`" - -#: library/datetime.rst:11 -msgid "" -"The :mod:`!datetime` module supplies classes for manipulating dates and " -"times." -msgstr "" -"Le module :mod:`!datetime` fournit des classes permettant de manipuler les " -"dates et les heures." - -#: library/datetime.rst:13 -msgid "" -"While date and time arithmetic is supported, the focus of the implementation " -"is on efficient attribute extraction for output formatting and manipulation." -msgstr "" -"Bien que les calculs de date et d'heure sont gérés, l'attention lors de " -"l'implémentation s'est essentiellement portée sur l'efficacité de " -"l'extraction des attributs en vue de leur manipulation et formatage pour " -"l'affichage." - -#: library/datetime.rst:18 -msgid "Skip to :ref:`the format codes `." -msgstr "" - -#: library/datetime.rst:22 -msgid "Module :mod:`calendar`" -msgstr "Module :mod:`calendar`" - -#: library/datetime.rst:23 -msgid "General calendar related functions." -msgstr "Fonctions génériques associées au calendrier." - -#: library/datetime.rst:25 -msgid "Module :mod:`time`" -msgstr "Module :mod:`time`" - -#: library/datetime.rst:26 -msgid "Time access and conversions." -msgstr "Accès aux données d'horaires et aux conversions associées." - -#: library/datetime.rst:28 -msgid "Module :mod:`zoneinfo`" -msgstr "Module :mod:`zoneinfo`" - -#: library/datetime.rst:29 -msgid "Concrete time zones representing the IANA time zone database." -msgstr "Fuseaux horaires concrets représentant la base de données IANA." - -#: library/datetime.rst:31 -msgid "Package `dateutil `_" -msgstr "Paquet `dateutil `_" - -#: library/datetime.rst:32 -msgid "Third-party library with expanded time zone and parsing support." -msgstr "" -"Bibliothèque tierce avec prise en charge complète du fuseau horaire et de " -"l'analyse de dates sous forme textuelle." - -#: library/datetime.rst:34 -msgid "Package :pypi:`DateType`" -msgstr "" - -#: library/datetime.rst:35 -#, fuzzy -msgid "" -"Third-party library that introduces distinct static types to for example, " -"allow :term:`static type checkers ` to differentiate " -"between naive and aware datetimes." -msgstr "" -"Bibliothèque tierce qui introduit des types statiques distincts pour, par " -"ex. permettre aux :term:`vérificateurs statiques de typage ` de faire la différence entre les dates et horaires naïfs et avisés." - -#: library/datetime.rst:43 -#, fuzzy -msgid "Aware and naive objects" -msgstr "Objets avisés et naïfs" - -#: library/datetime.rst:45 -msgid "" -"Date and time objects may be categorized as \"aware\" or \"naive\" depending " -"on whether or not they include time zone information." -msgstr "" -"Les objets *date* et *time* peuvent être classés comme « avisés » ou " -"« naïfs » selon qu'ils contiennent ou non des informations sur le fuseau " -"horaire." - -#: library/datetime.rst:48 -msgid "" -"With sufficient knowledge of applicable algorithmic and political time " -"adjustments, such as time zone and daylight saving time information, an " -"**aware** object can locate itself relative to other aware objects. An aware " -"object represents a specific moment in time that is not open to " -"interpretation. [#]_" -msgstr "" -"Un objet **avisé** possède suffisamment de connaissance des règles à " -"appliquer et des politiques d'ajustement de l'heure comme les informations " -"sur les fuseaux horaires et l'heure d'été pour se situer de façon relative " -"par rapport à d'autres objets avisés. Un objet avisé est utilisé pour " -"représenter un instant précis qui n'est pas ouvert à l'interprétation [#]_." - -#: library/datetime.rst:54 -msgid "" -"A **naive** object does not contain enough information to unambiguously " -"locate itself relative to other date/time objects. Whether a naive object " -"represents Coordinated Universal Time (UTC), local time, or time in some " -"other time zone is purely up to the program, just like it is up to the " -"program whether a particular number represents metres, miles, or mass. Naive " -"objects are easy to understand and to work with, at the cost of ignoring " -"some aspects of reality." -msgstr "" -"Un objet **naïf** ne comporte pas assez d'informations pour se situer sans " -"ambiguïté par rapport à d'autres objets *date/time*. Le fait qu'un objet " -"naïf représente un Temps universel coordonné (UTC), une heure locale ou une " -"heure dans un autre fuseau horaire dépend complètement du programme, tout " -"comme un nombre peut représenter une longueur, un poids ou une distance pour " -"le programme. Les objets naïfs sont simples à comprendre et il est aisé de " -"travailler avec, au prix de négliger certains aspects de la réalité." - -#: library/datetime.rst:61 -#, fuzzy -msgid "" -"For applications requiring aware objects, :class:`.datetime` " -"and :class:`.time` objects have an optional time zone information " -"attribute, :attr:`!tzinfo`, that can be set to an instance of a subclass of " -"the abstract :class:`!tzinfo` class. These :class:`tzinfo` objects capture " -"information about the offset from UTC time, the time zone name, and whether " -"daylight saving time is in effect." -msgstr "" -"Pour les applications nécessitant des objets avisés, les " -"objets :class:`.datetime` et :class:`.time` ont un attribut facultatif " -"renseignant le fuseau horaire, :attr:`!tzinfo`, qui peut être une instance " -"d'une sous-classe de la classe abstraite :class:`tzinfo`. Ces " -"objets :class:`tzinfo` regroupent des informations sur le décalage par " -"rapport à l'heure UTC, le nom du fuseau horaire, et si l'heure d'été est en " -"vigueur." - -#: library/datetime.rst:67 -msgid "" -"Only one concrete :class:`tzinfo` class, the :class:`timezone` class, is " -"supplied by the :mod:`!datetime` module. The :class:`!timezone` class can " -"represent simple time zones with fixed offsets from UTC, such as UTC itself " -"or North American EST and EDT time zones. Supporting time zones at deeper " -"levels of detail is up to the application. The rules for time adjustment " -"across the world are more political than rational, change frequently, and " -"there is no standard suitable for every application aside from UTC." -msgstr "" -"Notez qu'une seule classe concrète :class:`tzinfo`, la " -"classe :class:`timezone`, est proposée par le module :mod:`!datetime`. La " -"classe :class:`!timezone` peut représenter des fuseaux horaires simples avec " -"un décalage fixe par rapport à UTC, comme UTC lui-même ou les fuseaux EST et " -"EDT d'Amérique du Nord. Gérer des fuseaux horaires d'un niveau de détails " -"plus avancé est à la charge de l'application. Les règles d'ajustement du " -"temps à travers le monde sont plus politiques que rationnelles, changent " -"fréquemment, et il n'y a pas de standard qui vaille pour toute application, " -"en dehors d'UTC." - -#: library/datetime.rst:77 -msgid "Constants" -msgstr "Constantes" - -#: library/datetime.rst:79 -msgid "The :mod:`!datetime` module exports the following constants:" -msgstr "Le module :mod:`!datetime` exporte les constantes suivantes :" - -#: library/datetime.rst:83 -msgid "" -"The smallest year number allowed in a :class:`date` or :class:`.datetime` " -"object. :const:`MINYEAR` is 1." -msgstr "" -"Le numéro d'année le plus petit autorisé dans un objet :class:`date` " -"ou :class:`.datetime`. :const:`MINYEAR` vaut 1." - -#: library/datetime.rst:89 -msgid "" -"The largest year number allowed in a :class:`date` or :class:`.datetime` " -"object. :const:`MAXYEAR` is 9999." -msgstr "" -"Le numéro d'année le plus grand autorisé dans un objet :class:`date` " -"ou :class:`.datetime`. :const:`MAXYEAR` vaut 9999." - -#: library/datetime.rst:95 -msgid "Alias for the UTC time zone singleton :attr:`datetime.timezone.utc`." -msgstr "" -"Alias du singleton de fuseau horaire UTC :attr:`datetime.timezone.utc`." - -#: library/datetime.rst:101 -#, fuzzy -msgid "Available types" -msgstr "Types disponibles" - -#: library/datetime.rst:106 -msgid "" -"An idealized naive date, assuming the current Gregorian calendar always was, " -"and always will be, in effect. Attributes: :attr:`year`, :attr:`month`, " -"and :attr:`day`." -msgstr "" -"Une date naïve idéalisée, en supposant que le calendrier Grégorien actuel a " -"toujours existé et qu'il existera toujours. " -"Attributs : :attr:`year`, :attr:`month` et :attr:`day`." - -#: library/datetime.rst:114 -msgid "" -"An idealized time, independent of any particular day, assuming that every " -"day has exactly 24\\*60\\*60 seconds. (There is no notion of \"leap " -"seconds\" here.) " -"Attributes: :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:`microsecond`, " -"and :attr:`.tzinfo`." -msgstr "" -"Un temps idéalisé, indépendant d'une date particulière, en supposant qu'une " -"journée est composée d'exactement 24\\*60\\*60 secondes (il n'y a pas ici de " -"notion de « seconde intercalaire »). " -"Attributs : :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:`microsecond` " -"et :attr:`tzinfo`." - -#: library/datetime.rst:123 -msgid "" -"A combination of a date and a time. " -"Attributes: :attr:`year`, :attr:`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:`microsecond`, " -"and :attr:`.tzinfo`." -msgstr "" -"Une combinaison d'une date et d'une heure. " -"Attributs : :attr:`year`, :attr:`month`, :attr:`day`, :attr:`hour`, :attr:`minute`, :attr:`second`, :attr:`microsecond`, " -"et :attr:`tzinfo`." - -#: library/datetime.rst:131 -msgid "" -"A duration expressing the difference between two :class:`.datetime` " -"or :class:`date` instances to microsecond resolution." -msgstr "" -"Une durée qui exprime la différence entre deux instances " -"de :class:`.datetime` ou :class:`date` en microsecondes." - -#: library/datetime.rst:138 -msgid "" -"An abstract base class for time zone information objects. These are used by " -"the :class:`.datetime` and :class:`.time` classes to provide a customizable " -"notion of time adjustment (for example, to account for time zone and/or " -"daylight saving time)." -msgstr "" -"Une classe abstraite pour les objets portants des informations sur les " -"fuseaux horaires. Ceux-ci sont utilisés par les classes :class:`.datetime` " -"et :class:`.time` pour donner une notion personnalisable d'ajustement " -"d'horaire (par exemple la prise en compte d'un fuseau horaire et/ou de " -"l'heure d'été)." - -#: library/datetime.rst:147 -msgid "" -"A class that implements the :class:`tzinfo` abstract base class as a fixed " -"offset from the UTC." -msgstr "" -"Une classe qui implémente la classe abstraite :class:`tzinfo` en tant " -"que décalage fixe par rapport au temps UTC." - -#: library/datetime.rst:170 -msgid "Objects of these types are immutable." -msgstr "Les objets issus de ces types sont immuables." - -#: library/datetime.rst:155 -#, fuzzy -msgid "Subclass relationships:" -msgstr "Relations entre les sous-classes ::" - -#: library/datetime.rst:157 -msgid "" -"timedelta, tzinfo, time, and date inherit from object; timezone inherits\n" -"from tzinfo; and datetime inherits from date." -msgstr "" - -#: library/datetime.rst:165 -#, fuzzy -msgid "Common properties" -msgstr "Propriétés communes" - -#: library/datetime.rst:167 -msgid "" -"The :class:`date`, :class:`.datetime`, :class:`.time`, and :class:`timezone` " -"types share these common features:" -msgstr "" -"Les types :class:`date`, :class:`.datetime`, :class:`.time`, " -"et :class:`timezone` partagent les caractéristiques suivantes :" - -#: library/datetime.rst:171 -msgid "" -"Objects of these types are :term:`hashable`, meaning that they can be used " -"as dictionary keys." -msgstr "" -"Les objets de ces types sont :term:`hachable`, ce qui signifie qu'ils " -"peuvent être utilisés comme clés de dictionnaire." - -#: library/datetime.rst:173 -msgid "" -"Objects of these types support efficient pickling via the :mod:`pickle` " -"module." -msgstr "" -"Les objets de ces types peuvent être sérialisés efficacement par le " -"module :mod:`pickle`." - -#: library/datetime.rst:177 -#, fuzzy -msgid "Determining if an object is aware or naive" -msgstr "Catégorisation d'un objet en « avisé » ou « naïf »" - -#: library/datetime.rst:179 -msgid "Objects of the :class:`date` type are always naive." -msgstr "Les objets de type :class:`date` sont toujours naïfs." - -#: library/datetime.rst:181 -msgid "" -"An object of type :class:`.time` or :class:`.datetime` may be aware or naive." -msgstr "" -"Un objet du type :class:`.time` ou :class:`.datetime` peut être avisé ou " -"naïf." - -#: library/datetime.rst:183 -msgid "" -"A :class:`.datetime` object ``d`` is aware if both of the following hold:" -msgstr "" -"Un objet :class:`.datetime` ``d`` est avisé si les deux conditions suivantes " -"vérifient :" - -#: library/datetime.rst:185 -msgid "``d.tzinfo`` is not ``None``" -msgstr "``d.tzinfo`` ne vaut pas ``None``" - -#: library/datetime.rst:186 -msgid "``d.tzinfo.utcoffset(d)`` does not return ``None``" -msgstr "``d.tzinfo.utcoffset(d)`` ne renvoie pas ``None``" - -#: library/datetime.rst:188 -msgid "Otherwise, ``d`` is naive." -msgstr "Autrement, ``d`` est naïf." - -#: library/datetime.rst:190 -msgid "A :class:`.time` object ``t`` is aware if both of the following hold:" -msgstr "" -"Un objet :class:`.time` ``t`` est avisé si les deux conditions suivantes " -"vérifient :" - -#: library/datetime.rst:192 -msgid "``t.tzinfo`` is not ``None``" -msgstr "``t.tzinfo`` ne vaut pas ``None``" - -#: library/datetime.rst:193 -msgid "``t.tzinfo.utcoffset(None)`` does not return ``None``." -msgstr "``t.tzinfo.utcoffset(None)`` ne renvoie pas ``None``." - -#: library/datetime.rst:195 -msgid "Otherwise, ``t`` is naive." -msgstr "Autrement, ``t`` est naïf." - -#: library/datetime.rst:197 -msgid "" -"The distinction between aware and naive doesn't apply to :class:`timedelta` " -"objects." -msgstr "" -"La distinction entre avisé et naïf ne s'applique pas aux objets de " -"type :class:`timedelta`." - -#: library/datetime.rst:204 -#, fuzzy -msgid ":class:`!timedelta` objects" -msgstr "Objets :class:`timedelta`" - -#: library/datetime.rst:206 -msgid "" -"A :class:`timedelta` object represents a duration, the difference between " -"two :class:`.datetime` or :class:`date` instances." -msgstr "" -"Un objet :class:`timedelta` représente une durée, c'est-à-dire la différence " -"entre deux instances de :class:`.datetime` ou :class:`date`." - -#: library/datetime.rst:211 -msgid "" -"All arguments are optional and default to 0. Arguments may be integers or " -"floats, and may be positive or negative." -msgstr "" -"Tous les arguments sont optionnels et ont 0 comme valeur par défaut. Les " -"arguments peuvent être des entiers ou des flottants et ils peuvent être " -"positifs ou négatifs." - -#: library/datetime.rst:214 -msgid "" -"Only *days*, *seconds* and *microseconds* are stored internally. Arguments " -"are converted to those units:" -msgstr "" -"Seuls les *jours*, les *secondes* et les *microsecondes* sont stockés en " -"interne. Les arguments sont convertis dans ces unités :" - -#: library/datetime.rst:217 -msgid "A millisecond is converted to 1000 microseconds." -msgstr "Une milliseconde est convertie en 1000 microsecondes." - -#: library/datetime.rst:218 -msgid "A minute is converted to 60 seconds." -msgstr "Une minute est convertie en 60 secondes." - -#: library/datetime.rst:219 -msgid "An hour is converted to 3600 seconds." -msgstr "Une heure est convertie en 3600 secondes." - -#: library/datetime.rst:220 -msgid "A week is converted to 7 days." -msgstr "Une semaine est convertie en 7 jours." - -#: library/datetime.rst:222 -msgid "" -"and days, seconds and microseconds are then normalized so that the " -"representation is unique, with" -msgstr "" -"et ensuite les jours, secondes et microsecondes sont normalisés pour que la " -"représentation soit unique avec" - -#: library/datetime.rst:225 -msgid "``0 <= microseconds < 1000000``" -msgstr "``0 <= microseconds < 1000000``" - -#: library/datetime.rst:226 -msgid "``0 <= seconds < 3600*24`` (the number of seconds in one day)" -msgstr "``0 <= secondes < 3600*24`` (le nombre de secondes dans une journée)" - -#: library/datetime.rst:227 -msgid "``-999999999 <= days <= 999999999``" -msgstr "``-999999999 <= days <= 999999999``" - -#: library/datetime.rst:229 -msgid "" -"The following example illustrates how any arguments besides *days*, " -"*seconds* and *microseconds* are \"merged\" and normalized into those three " -"resulting attributes::" -msgstr "" -"L'exemple suivant illustre comment tous les arguments autres que *days*, " -"*seconds* et *microseconds* sont « fusionnés » et normalisés dans ces trois " -"attributs résultants ::" - -#: library/datetime.rst:248 -msgid "" -"``import datetime as dt`` instead of ``import datetime`` or ``from datetime " -"import datetime`` to avoid confusion between the module and the class. See " -"`How I Import Python’s datetime Module `__." -msgstr "" - -#: library/datetime.rst:253 -msgid "" -"If any argument is a float and there are fractional microseconds, the " -"fractional microseconds left over from all arguments are combined and their " -"sum is rounded to the nearest microsecond using round-half-to-even " -"tiebreaker. If no argument is a float, the conversion and normalization " -"processes are exact (no information is lost)." -msgstr "" -"Si l'un des arguments est un flottant et qu'il y a des microsecondes " -"décimales, les microsecondes décimales laissées par les arguments sont " -"combinées et leur somme est arrondie à la microseconde la plus proche en " -"arrondissant les demis vers le nombre pair. Si aucun argument n'est " -"flottant, les processus de conversion et de normalisation seront exacts (pas " -"d'informations perdues)." - -#: library/datetime.rst:260 -msgid "" -"If the normalized value of days lies outside the indicated " -"range, :exc:`OverflowError` is raised." -msgstr "" -"Si la valeur normalisée des jours déborde de l'intervalle indiqué, " -"une :exc:`OverflowError` est levée." - -#: library/datetime.rst:263 -msgid "" -"Note that normalization of negative values may be surprising at first. For " -"example::" -msgstr "" -"Notez que la normalisation de valeurs négatives peut être surprenante au " -"premier abord. Par exemple ::" - -#: library/datetime.rst:271 -#, fuzzy -msgid "" -"Since the string representation of :class:`!timedelta` objects can be " -"confusing, use the following recipe to produce a more readable format:" -msgstr "" -"Renvoie une chaîne de la forme objet :class:`timedelta` comme un appel " -"construit avec des valeurs d'attributs canoniques." - -#: library/datetime.rst:628 library/datetime.rst:1850 library/datetime.rst:2486 -msgid "Class attributes:" -msgstr "Attributs de la classe :" - -#: library/datetime.rst:292 -msgid "The most negative :class:`timedelta` object, ``timedelta(-999999999)``." -msgstr "L'objet :class:`timedelta` le plus négatif, ``timedelta(-999999999)``." - -#: library/datetime.rst:297 -msgid "" -"The most positive :class:`timedelta` object, ``timedelta(days=999999999, " -"hours=23, minutes=59, seconds=59, microseconds=999999)``." -msgstr "" -"L'objet :class:`timedelta` le plus positif, ``timedelta(days=999999999, " -"hours=23, minutes=59, seconds=59, microseconds=999999)``." - -#: library/datetime.rst:303 -msgid "" -"The smallest possible difference between non-equal :class:`timedelta` " -"objects, ``timedelta(microseconds=1)``." -msgstr "" -"La plus petite différence entre des objets :class:`timedelta` non égaux, " -"``timedelta(microseconds=1)``." - -#: library/datetime.rst:307 -msgid "" -"Note that, because of normalization, ``timedelta.max`` is greater than ``-" -"timedelta.min``. ``-timedelta.max`` is not representable as " -"a :class:`timedelta` object." -msgstr "" -"Il est à noter, du fait de la normalisation, que ``timedelta.max`` est plus " -"grand que ``-timedelta.min``. ``-timedelta.max`` n'est pas représentable " -"sous la forme d'un objet :class:`timedelta`." - -#: library/datetime.rst:646 library/datetime.rst:1870 -msgid "Instance attributes (read-only):" -msgstr "Attributs de l'instance (en lecture seule) :" - -#: library/datetime.rst:315 -msgid "Between -999,999,999 and 999,999,999 inclusive." -msgstr "Entre -999999999 et 999999999 inclus" - -#: library/datetime.rst:320 -msgid "Between 0 and 86,399 inclusive." -msgstr "Entre 0 et 86399 inclus." - -#: library/datetime.rst:324 -msgid "" -"It is a somewhat common bug for code to unintentionally use this attribute " -"when it is actually intended to get a :meth:`~timedelta.total_seconds` value " -"instead:" -msgstr "" - -#: library/datetime.rst:340 -msgid "Between 0 and 999,999 inclusive." -msgstr "Entre 0 et 999999 inclus." - -#: library/datetime.rst:663 library/datetime.rst:1275 -msgid "Supported operations:" -msgstr "Opérations gérées :" - -#: library/datetime.rst:666 library/datetime.rst:1278 -msgid "Operation" -msgstr "Opération" - -#: library/datetime.rst:666 library/datetime.rst:1278 -msgid "Result" -msgstr "Résultat" - -#: library/datetime.rst:348 -msgid "``t1 = t2 + t3``" -msgstr "``t1 = t2 + t3``" - -#: library/datetime.rst:348 -msgid "" -"Sum of ``t2`` and ``t3``. Afterwards ``t1 - t2 == t3`` and ``t1 - t3 == t2`` " -"are true. (1)" -msgstr "" -"Somme de ``t2`` et ``t3``. Ensuite ``t1 - t2 == t3`` et ``t1 - t3 == t2`` " -"sont des expressions vraies. (1)" - -#: library/datetime.rst:352 -msgid "``t1 = t2 - t3``" -msgstr "``t1 = t2 - t3``" - -#: library/datetime.rst:352 -msgid "" -"Difference of ``t2`` and ``t3``. Afterwards ``t1 == t2 - t3`` and ``t2 == " -"t1 + t3`` are true. (1)(6)" -msgstr "" -"Différence entre ``t2`` et ``t3``. Ensuite ``t1 == t2 - t3`` et ``t2 == t1 + " -"t3`` sont des expressions vraies. (1)(6)" - -#: library/datetime.rst:356 -msgid "``t1 = t2 * i or t1 = i * t2``" -msgstr "``t1 = t2 * i or t1 = i * t2``" - -#: library/datetime.rst:356 -msgid "" -"Delta multiplied by an integer. Afterwards ``t1 // i == t2`` is true, " -"provided ``i != 0``." -msgstr "" -"Delta multiplié par un entier. Ensuite ``t1 // i == t2`` est vrai, en " -"admettant que ``i != 0``." - -#: library/datetime.rst:360 -msgid "In general, ``t1 * i == t1 * (i-1) + t1`` is true. (1)" -msgstr "De manière générale, ``t1 * i == t1 * (i-1) + t1`` est vrai. (1)" - -#: library/datetime.rst:363 -msgid "``t1 = t2 * f or t1 = f * t2``" -msgstr "``t1 = t2 * f or t1 = f * t2``" - -#: library/datetime.rst:363 -msgid "" -"Delta multiplied by a float. The result is rounded to the nearest multiple " -"of timedelta.resolution using round-half-to-even." -msgstr "" -"Delta multiplié par un flottant. Le résultat est arrondi au multiple le plus " -"proche de ``timedelta.resolution`` en utilisant la règle de l'arrondi au " -"pair le plus proche." - -#: library/datetime.rst:367 -msgid "``f = t2 / t3``" -msgstr "``f = t2 / t3``" - -#: library/datetime.rst:367 -msgid "" -"Division (3) of overall duration ``t2`` by interval unit ``t3``. Returns " -"a :class:`float` object." -msgstr "" -"Division (3) de la durée totale ``t2`` par l'unité d'intervalle ``t3``. " -"Renvoie un objet :class:`float`." - -#: library/datetime.rst:371 -msgid "``t1 = t2 / f or t1 = t2 / i``" -msgstr "``t1 = t2 / f or t1 = t2 / i``" - -#: library/datetime.rst:371 -msgid "" -"Delta divided by a float or an int. The result is rounded to the nearest " -"multiple of timedelta.resolution using round-half-to-even." -msgstr "" -"Delta divisé par un flottant ou un entier. Le résultat est arrondi au " -"multiple le plus proche de ``timedelta.resolution`` en utilisant la règle de " -"l'arrondi au pair le plus proche." - -#: library/datetime.rst:375 -msgid "``t1 = t2 // i`` or ``t1 = t2 // t3``" -msgstr "``t1 = t2 // i`` or ``t1 = t2 // t3``" - -#: library/datetime.rst:375 -msgid "" -"The floor is computed and the remainder (if any) is thrown away. In the " -"second case, an integer is returned. (3)" -msgstr "" -"Le quotient est calculé et le reste (s'il y en a un) est ignoré. Dans le " -"second cas, un entier est renvoyé. (3)" - -#: library/datetime.rst:379 -msgid "``t1 = t2 % t3``" -msgstr "``t1 = t2 % t3``" - -#: library/datetime.rst:379 -msgid "The remainder is computed as a :class:`timedelta` object. (3)" -msgstr "Le reste est calculé comme un objet de type :class:`timedelta`. (3)" - -#: library/datetime.rst:382 -msgid "``q, r = divmod(t1, t2)``" -msgstr "``q, r = divmod(t1, t2)``" - -#: library/datetime.rst:382 -msgid "" -"Computes the quotient and the remainder: ``q = t1 // t2`` (3) and ``r = t1 % " -"t2``. ``q`` is an integer and ``r`` is a :class:`timedelta` object." -msgstr "" -"Calcule le quotient et le reste : ``q = t1 // t2`` (3) et ``r = t1 % t2``. " -"``q`` est un entier et ``r`` est un objet :class:`timedelta`." - -#: library/datetime.rst:387 -msgid "``+t1``" -msgstr "``+t1``" - -#: library/datetime.rst:387 -msgid "Returns a :class:`timedelta` object with the same value. (2)" -msgstr "Renvoie un objet :class:`timedelta` avec la même valeur. (2)" - -#: library/datetime.rst:390 -msgid "``-t1``" -msgstr "``-t1``" - -#: library/datetime.rst:390 -msgid "" -"Equivalent to ``timedelta(-t1.days, -t1.seconds, -t1.microseconds)``, and to " -"``t1 * -1``. (1)(4)" -msgstr "" -"Équivalent à ``timedelta(-t1.days, -t1.seconds, -t1.microseconds)``, et à " -"``t1 * -1``. (1)(4)" - -#: library/datetime.rst:394 -msgid "``abs(t)``" -msgstr "``abs(t)``" - -#: library/datetime.rst:394 -msgid "" -"Equivalent to ``+t`` when ``t.days >= 0``, and to ``-t`` when ``t.days < " -"0``. (2)" -msgstr "" -"Équivalent à ``+t`` quand ``t.days >= 0``, et à ``-t`` quand ``t.days < 0``. " -"(2)" - -#: library/datetime.rst:397 -msgid "``str(t)``" -msgstr "``str(t)``" - -#: library/datetime.rst:397 -msgid "" -"Returns a string in the form ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, where D is " -"negative for negative ``t``. (5)" -msgstr "" -"Renvoie une chaîne de la forme ``[D day[s], ][H]H:MM:SS[.UUUUUU]``, où D est " -"négatif pour ``t`` négatif. (5)" - -#: library/datetime.rst:401 -msgid "``repr(t)``" -msgstr "``repr(t)``" - -#: library/datetime.rst:401 -msgid "" -"Returns a string representation of the :class:`timedelta` object as a " -"constructor call with canonical attribute values." -msgstr "" -"Renvoie une chaîne de la forme objet :class:`timedelta` comme un appel " -"construit avec des valeurs d'attributs canoniques." - -#: library/datetime.rst:685 library/datetime.rst:2796 -msgid "Notes:" -msgstr "Notes :" - -#: library/datetime.rst:409 -msgid "This is exact but may overflow." -msgstr "Ceci est exact, mais peut provoquer un débordement." - -#: library/datetime.rst:412 -msgid "This is exact and cannot overflow." -msgstr "Ceci est exact, et ne peut pas provoquer un débordement." - -#: library/datetime.rst:415 -msgid "Division by zero raises :exc:`ZeroDivisionError`." -msgstr "Une division par zéro lève une :exc:`ZeroDivisionError`." - -#: library/datetime.rst:418 -msgid "``-timedelta.max`` is not representable as a :class:`timedelta` object." -msgstr "" -"``-timedelta.max`` n'est pas représentable avec un objet :class:`timedelta`." - -#: library/datetime.rst:421 -msgid "" -"String representations of :class:`timedelta` objects are normalized " -"similarly to their internal representation. This leads to somewhat unusual " -"results for negative timedeltas. For example::" -msgstr "" -"La représentation en chaîne des objets :class:`timedelta` est normalisée " -"similairement à leur représentation interne. Cela amène à des résultats " -"inhabituels pour des *timedeltas* négatifs. Par exemple ::" - -#: library/datetime.rst:431 -msgid "" -"The expression ``t2 - t3`` will always be equal to the expression ``t2 + (-" -"t3)`` except when t3 is equal to ``timedelta.max``; in that case the former " -"will produce a result while the latter will overflow." -msgstr "" -"L'expression ``t2 - t3`` est toujours égale à l'expression ``t2 + (-t3)`` " -"sauf si ``t3`` vaut ``timedelta.max`` ; dans ce cas, la première expression " -"produit une valeur alors que la seconde produit un débordement." - -#: library/datetime.rst:435 -msgid "" -"In addition to the operations listed above, :class:`timedelta` objects " -"support certain additions and subtractions with :class:`date` " -"and :class:`.datetime` objects (see below)." -msgstr "" -"En plus des opérations listées ci-dessus, les objets :class:`timedelta` " -"implémentent certaines additions et soustractions avec des " -"objets :class:`date` et :class:`datetime` (voir ci-dessous)." - -#: library/datetime.rst:439 -#, fuzzy -msgid "" -"Floor division and true division of a :class:`timedelta` object by " -"another :class:`!timedelta` object are now supported, as are remainder " -"operations and the :func:`divmod` function. True division and multiplication " -"of a :class:`!timedelta` object by a :class:`float` object are now supported." -msgstr "" -"La division entière et la vraie division d'un objet :class:`timedelta` par " -"un autre :class:`timedelta` sont maintenant gérées, comme le sont les " -"opérations de reste euclidien et la fonction :func:`divmod`. La vraie " -"division et la multiplication d'un objet :class:`timedelta` par " -"un :class:`float` sont maintenant implémentées." - -#: library/datetime.rst:445 -msgid ":class:`timedelta` objects support equality and order comparisons." -msgstr "" -"Les objets :class:`timedelta` supportent les comparaisons d'égalité et " -"d'ordre." - -#: library/datetime.rst:447 -msgid "" -"In Boolean contexts, a :class:`timedelta` object is considered to be true if " -"and only if it isn't equal to ``timedelta(0)``." -msgstr "" -"Dans les contextes booléens, un objet :class:`timedelta` est considéré comme " -"vrai si et seulement s'il n'est pas égal à ``timedelta(0)``." - -#: library/datetime.rst:727 library/datetime.rst:1995 -msgid "Instance methods:" -msgstr "Méthodes de l'instance :" - -#: library/datetime.rst:454 -#, fuzzy -msgid "" -"Return the total number of seconds contained in the duration. Equivalent to " -"``td / timedelta(seconds=1)``. For interval units other than seconds, use " -"the division form directly (for example, ``td / timedelta(microseconds=1)``)." -msgstr "" -"Renvoie le nombre total de secondes contenues dans la durée. Équivalent à " -"``td / timedelta(seconds=1)``. Pour un intervalle dont l'unité n'est pas la " -"seconde, utilisez directement la division (par exemple, ``td / " -"timedelta(microseconds=1)``)." - -#: library/datetime.rst:458 -msgid "" -"Note that for very large time intervals (greater than 270 years on most " -"platforms) this method will lose microsecond accuracy." -msgstr "" -"Notez que pour des intervalles de temps très larges (supérieurs à 270 ans " -"sur la plupart des plateformes), cette méthode perdra la précision des " -"microsecondes." - -#: library/datetime.rst:465 -#, fuzzy -msgid "Examples of usage: :class:`!timedelta`" -msgstr "Exemples d'utilisation de la classe :class:`timedelta` :" - -#: library/datetime.rst:467 -msgid "An additional example of normalization::" -msgstr "Un exemple supplémentaire de normalisation ::" - -#: library/datetime.rst:479 -msgid "Examples of :class:`timedelta` arithmetic::" -msgstr "Exemples d'arithmétique avec la classe :class:`timedelta` ::" - -#: library/datetime.rst:499 -#, fuzzy -msgid ":class:`!date` objects" -msgstr "Objets :class:`date`" - -#: library/datetime.rst:501 -msgid "" -"A :class:`date` object represents a date (year, month and day) in an " -"idealized calendar, the current Gregorian calendar indefinitely extended in " -"both directions." -msgstr "" -"Un objet :class:`date` représente une date (année, mois et jour) dans un " -"calendrier idéal, le calendrier grégorien actuel étant indéfiniment étendu " -"dans les deux sens." - -#: library/datetime.rst:505 -msgid "" -"January 1 of year 1 is called day number 1, January 2 of year 1 is called " -"day number 2, and so on. [#]_" -msgstr "" -"Le 1 :sup:`er` janvier de l'année 1 est appelé jour numéro 1, le 2 janvier " -"de l'année 1 est appelé jour numéro 2, et ainsi de suite. [#]_" - -#: library/datetime.rst:510 -msgid "" -"All arguments are required. Arguments must be integers, in the following " -"ranges:" -msgstr "" -"Tous les arguments sont requis. Les arguments peuvent être des entiers, dans " -"les intervalles suivants :" - -#: library/datetime.rst:513 -msgid "``MINYEAR <= year <= MAXYEAR``" -msgstr "``MINYEAR <= year <= MAXYEAR``" - -#: library/datetime.rst:514 -msgid "``1 <= month <= 12``" -msgstr "``1 <= month <= 12``" - -#: library/datetime.rst:515 -msgid "``1 <= day <= number of days in the given month and year``" -msgstr "``1 <= day <= nombre de jours dans le mois et l'année donnés``" - -#: library/datetime.rst:948 -msgid "" -"If an argument outside those ranges is given, :exc:`ValueError` is raised." -msgstr "" -"Si un argument est donné en dehors de ces intervalles, une :exc:`ValueError` " -"est levée." - -#: library/datetime.rst:954 -msgid "Other constructors, all class methods:" -msgstr "Autres constructeurs, méthodes de classe :" - -#: library/datetime.rst:524 -msgid "Return the current local date." -msgstr "Renvoie la date locale courante." - -#: library/datetime.rst:526 -msgid "This is equivalent to ``date.fromtimestamp(time.time())``." -msgstr "Cela est équivalent à ``date.fromtimestamp(time.time())``." - -#: library/datetime.rst:531 -#, fuzzy -msgid "" -"Return the local date corresponding to the POSIX *timestamp*, such as is " -"returned by :func:`time.time`." -msgstr "" -"Renvoie la date locale correspondant à l'horodatage POSIX, telle que " -"renvoyée par :func:`time.time`." - -#: library/datetime.rst:534 -msgid "" -"This may raise :exc:`OverflowError`, if the timestamp is out of the range of " -"values supported by the platform C :c:func:`localtime` function, " -"and :exc:`OSError` on :c:func:`localtime` failure. It's common for this to " -"be restricted to years from 1970 through 2038. Note that on non-POSIX " -"systems that include leap seconds in their notion of a timestamp, leap " -"seconds are ignored by :meth:`fromtimestamp`." -msgstr "" -"Elle peut lever une :exc:`OverflowError`, si l'horodatage est en dehors des " -"bornes gérées par la fonction C :c:func:`localtime` de la plateforme, et une " -"exception :exc:`OSError` en cas d'échec de :c:func:`localtime`. Il est " -"commun d'être restreint aux années entre 1970 et 2038. Notez que sur les " -"systèmes non *POSIX* qui incluent les secondes intercalaires dans leur " -"notion d'horodatage, ces secondes sont ignorées par :meth:`fromtimestamp`." - -#: library/datetime.rst:541 -msgid "" -"Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " -"out of the range of values supported by the platform C :c:func:`localtime` " -"function. Raise :exc:`OSError` instead of :exc:`ValueError` " -"on :c:func:`localtime` failure." -msgstr "" -"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si " -"l'horodatage (*timestamp* en anglais) est en dehors des bornes gérées par la " -"fonction C :c:func:`localtime` de la plateforme. Lève une :exc:`OSError` " -"plutôt qu'une :exc:`ValueError` en cas d'échec de :c:func:`localtime`." - -#: library/datetime.rst:1042 library/datetime.rst:1082 -msgid "Accepts any real number as *timestamp*, not only integer or float." -msgstr "" - -#: library/datetime.rst:553 -#, fuzzy -msgid "" -"Return the date corresponding to the proleptic Gregorian *ordinal*, where " -"January 1 of year 1 has ordinal 1." -msgstr "" -"Renvoie la date correspondant à l'ordinal grégorien proleptique, où le 1er " -"janvier de l'an 1 a l'ordinal 1." - -#: library/datetime.rst:556 -msgid "" -":exc:`ValueError` is raised unless ``1 <= ordinal <= date.max.toordinal()``. " -"For any date ``d``, ``date.fromordinal(d.toordinal()) == d``." -msgstr "" -":exc:`ValueError` est levée à moins que ``1 <= ordinal <= " -"date.max.toordinal()``. Pour toute date ``d``, " -"``date.fromordinal(d.toordinal()) == d``." - -#: library/datetime.rst:563 -msgid "" -"Return a :class:`date` corresponding to a *date_string* given in any valid " -"ISO 8601 format, with the following exceptions:" -msgstr "" -"Renvoie une :class:`date` correspondant à *date_string* dans un format ISO " -"8601 valide, avec les exceptions suivantes :" - -#: library/datetime.rst:1123 -msgid "" -"Reduced precision dates are not currently supported (``YYYY-MM``, ``YYYY``)." -msgstr "" -"Les dates à précision réduite ne sont actuellement pas gérées (``YYYY-MM``, " -"``YYYY``)." - -#: library/datetime.rst:1125 -msgid "" -"Extended date representations are not currently supported (``±YYYYYY-MM-" -"DD``)." -msgstr "" - -#: library/datetime.rst:1127 -#, fuzzy -msgid "Ordinal dates are not currently supported (``YYYY-OOO``)." -msgstr "Les dates ordinales ne sont actuellement pas gérées." - -#: library/datetime.rst:1129 library/datetime.rst:1604 -msgid "Examples::" -msgstr "Exemples ::" - -#: library/datetime.rst:583 -msgid "Previously, this method only supported the format ``YYYY-MM-DD``." -msgstr "" -"Auparavant, cette méthode prenait en charge seulement le format ``YYYY-MM-" -"DD``." - -#: library/datetime.rst:589 -#, fuzzy -msgid "" -"Return a :class:`date` corresponding to the ISO calendar date specified by " -"*year*, *week* and *day*. This is the inverse of the " -"function :meth:`date.isocalendar`." -msgstr "" -"Renvoie une :class:`date` correspondant à la date du calendrier ISO définie " -"par l'année, la semaine et le jour. C'est la réciproque de la " -"fonction :meth:`date.isocalendar`." - -#: library/datetime.rst:597 -#, fuzzy -msgid "" -"Return a :class:`.date` corresponding to *date_string*, parsed according to " -"*format*. This is equivalent to::" -msgstr "" -"Renvoie une classe :class:`.datetime` correspondant à *date_string*, " -"analysée selon *format*." - -#: library/datetime.rst:602 -#, fuzzy -msgid "" -":exc:`ValueError` is raised if the date_string and format can't be parsed " -"by :func:`time.strptime` or if it returns a value which isn't a time tuple. " -"See also :ref:`strftime-strptime-behavior` and :meth:`date.fromisoformat`." -msgstr "" -"Une :exc:`ValueError` est levée si *date_string* et *format* ne peuvent être " -"analysés par :func:`time.strptime` ou si elle renvoie une valeur qui n'est " -"pas un *n*-uplet de temps. Voir :ref:`strftime-strptime-behavior` " -"et :meth:`datetime.fromisoformat`." - -#: library/datetime.rst:1184 -msgid "" -"If *format* specifies a day of month (``%d``) without a " -"year, :exc:`ValueError` is raised. This is to avoid a quadrennial leap year " -"bug in code seeking to parse only a month and day as the default year used " -"in absence of one in the format is not a leap year. The workaround is to " -"always include a year in your *format*. If parsing *date_string* values " -"that do not have a year, explicitly add a year that is a leap year before " -"parsing:" -msgstr "" - -#: library/datetime.rst:632 -msgid "The earliest representable date, ``date(MINYEAR, 1, 1)``." -msgstr "La plus vieille date représentable, ``date(MINYEAR, 1, 1)``." - -#: library/datetime.rst:637 -msgid "The latest representable date, ``date(MAXYEAR, 12, 31)``." -msgstr "La dernière date représentable, ``date(MAXYEAR, 12, 31)``." - -#: library/datetime.rst:642 -msgid "" -"The smallest possible difference between non-equal date objects, " -"``timedelta(days=1)``." -msgstr "" -"La plus petite différence possible entre deux objets dates non-égaux, " -"``timedelta(days=1)``." - -#: library/datetime.rst:1225 -msgid "Between :const:`MINYEAR` and :const:`MAXYEAR` inclusive." -msgstr "Entre :const:`MINYEAR` et :const:`MAXYEAR` inclus." - -#: library/datetime.rst:1230 -msgid "Between 1 and 12 inclusive." -msgstr "Entre 1 et 12 inclus." - -#: library/datetime.rst:1235 -msgid "Between 1 and the number of days in the given month of the given year." -msgstr "Entre 1 et le nombre de jours du mois donné de l'année donnée." - -#: library/datetime.rst:668 -msgid "``date2 = date1 + timedelta``" -msgstr "``date2 = date1 + timedelta``" - -#: library/datetime.rst:668 -#, fuzzy -msgid "``date2`` will be ``timedelta.days`` days after ``date1``. (1)" -msgstr "" -"``date2`` est décalée de ``timedelta.days`` jours par rapport à ``date1``. " -"(1)" - -#: library/datetime.rst:671 -msgid "``date2 = date1 - timedelta``" -msgstr "``date2 = date1 - timedelta``" - -#: library/datetime.rst:671 -#, fuzzy -msgid "Computes ``date2`` such that ``date2 + timedelta == date1``. (2)" -msgstr "Calcule ``date2`` de façon à avoir ``date2 + timedelta == date1``. (2)" - -#: library/datetime.rst:674 -msgid "``timedelta = date1 - date2``" -msgstr "``timedelta = date1 - date2``" - -#: library/datetime.rst:1284 -msgid "\\(3)" -msgstr "\\(3)" - -#: library/datetime.rst:676 -#, fuzzy -msgid "``date1 == date2``" -msgstr "``date1 < date2``" - -#: library/datetime.rst:677 -#, fuzzy -msgid "``date1 != date2``" -msgstr "``date1 < date2``" - -#: library/datetime.rst:1286 -msgid "Equality comparison. (4)" -msgstr "" - -#: library/datetime.rst:679 -msgid "``date1 < date2``" -msgstr "``date1 < date2``" - -#: library/datetime.rst:680 -#, fuzzy -msgid "``date1 > date2``" -msgstr "``date1 < date2``" - -#: library/datetime.rst:681 -#, fuzzy -msgid "``date1 <= date2``" -msgstr "``date1 < date2``" - -#: library/datetime.rst:682 -#, fuzzy -msgid "``date1 >= date2``" -msgstr "``date1 < date2``" - -#: library/datetime.rst:1289 -msgid "Order comparison. (5)" -msgstr "" - -#: library/datetime.rst:688 -msgid "" -"*date2* is moved forward in time if ``timedelta.days > 0``, or backward if " -"``timedelta.days < 0``. Afterward ``date2 - date1 == timedelta.days``. " -"``timedelta.seconds`` and ``timedelta.microseconds`` are " -"ignored. :exc:`OverflowError` is raised if ``date2.year`` would be smaller " -"than :const:`MINYEAR` or larger than :const:`MAXYEAR`." -msgstr "" -"``date2`` est déplacée en avant dans le temps si ``timedelta.days > 0``, ou " -"en arrière si ``timedelta.days < 0``. Après quoi ``date2 - date1 == " -"timedelta.days``. ``timedelta.seconds`` et ``timedelta.microseconds`` sont " -"ignorés. Une :exc:`OverflowError` est levée si ``date2.year`` devait être " -"inférieure à :const:`MINYEAR` ou supérieure à :const:`MAXYEAR`." - -#: library/datetime.rst:695 -msgid "``timedelta.seconds`` and ``timedelta.microseconds`` are ignored." -msgstr "``timedelta.seconds`` et ``timedelta.microseconds`` sont ignorés." - -#: library/datetime.rst:698 -#, fuzzy -msgid "" -"This is exact, and cannot overflow. ``timedelta.seconds`` and " -"``timedelta.microseconds`` are 0, and ``date2 + timedelta == date1`` after." -msgstr "" -"Cela est exact, et ne peut pas provoquer de débordement. " -"``timedelta.seconds`` et ``timedelta.microseconds`` valent ``0``, et ``date2 " -"+ timedelta == date1`` après cela." - -#: library/datetime.rst:702 -#, fuzzy -msgid ":class:`date` objects are equal if they represent the same date." -msgstr "Renvoie un objet :class:`date` avec les mêmes année, mois et jour." - -#: library/datetime.rst:704 -msgid "" -":class:`!date` objects that are not also :class:`.datetime` instances are " -"never equal to :class:`!datetime` objects, even if they represent the same " -"date." -msgstr "" - -#: library/datetime.rst:709 -#, fuzzy -msgid "" -"*date1* is considered less than *date2* when *date1* precedes *date2* in " -"time. In other words, ``date1 < date2`` if and only if ``date1.toordinal() < " -"date2.toordinal()``." -msgstr "" -"``date1`` est considérée comme inférieure à ``date2`` quand ``date1`` " -"précède ``date2`` dans le temps. (4)" - -#: library/datetime.rst:713 -#, fuzzy -msgid "" -"Order comparison between a :class:`date` object that is not also " -"a :class:`.datetime` instance and a :class:`!datetime` object " -"raises :exc:`TypeError`." -msgstr "" -"Les comparaisons d'égalité entre des instances :class:`.datetime` naïves et " -"avisées ne lèvent pas d'exception :exc:`TypeError`." - -#: library/datetime.rst:1357 -msgid "" -"Comparison between :class:`.datetime` object and an instance of " -"the :class:`date` subclass that is not a :class:`!datetime` subclass no " -"longer converts the latter to :class:`!date`, ignoring the time part and the " -"time zone. The default behavior can be changed by overriding the special " -"comparison methods in subclasses." -msgstr "" - -#: library/datetime.rst:725 -msgid "" -"In Boolean contexts, all :class:`date` objects are considered to be true." -msgstr "" -"Dans des contextes booléens, tous les objets :class:`date` sont considérés " -"comme vrai." - -#: library/datetime.rst:731 -#, fuzzy -msgid "" -"Return a new :class:`date` object with the same values, but with specified " -"parameters updated." -msgstr "Renvoie un objet :class:`date` avec les mêmes année, mois et jour." - -#: library/datetime.rst:2041 -msgid "Example::" -msgstr "Exemple ::" - -#: library/datetime.rst:741 -msgid "" -"The generic function :func:`copy.replace` also supports :class:`date` " -"objects." -msgstr "" - -#: library/datetime.rst:1482 -msgid "" -"Return a :class:`time.struct_time` such as returned " -"by :func:`time.localtime`." -msgstr "" -"Renvoie une :class:`time.struct_time` telle que renvoyée " -"par :func:`time.localtime`." - -#: library/datetime.rst:749 -msgid "The hours, minutes and seconds are 0, and the DST flag is -1." -msgstr "" -"Les heures, minutes et secondes sont égales à 0 et le drapeau DST vaut -1." - -#: library/datetime.rst:1484 -msgid "``d.timetuple()`` is equivalent to::" -msgstr "``d.timetuple()`` est équivalent à ::" - -#: library/datetime.rst:755 -#, fuzzy -msgid "" -"where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " -"day number within the current year starting with 1 for January 1st." -msgstr "" -"où ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` est le " -"numéro du jour dans l'année courante commençant par ``1`` pour le " -"1\\ :sup:`er` janvier." - -#: library/datetime.rst:761 -#, fuzzy -msgid "" -"Return the proleptic Gregorian ordinal of the date, where January 1 of year " -"1 has ordinal 1. For any :class:`date` object ``d``, " -"``date.fromordinal(d.toordinal()) == d``." -msgstr "" -"Renvoie l'ordinal grégorien proleptique de la date, où le 1er janvier de " -"l'an 1 a l'ordinal 1. Pour tout objet :class:`date` *d*, " -"``date.fromordinal(d.toordinal()) == d``." - -#: library/datetime.rst:768 -msgid "" -"Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " -"For example, ``date(2002, 12, 4).weekday() == 2``, a Wednesday. See " -"also :meth:`isoweekday`." -msgstr "" -"Renvoie le jour de la semaine sous forme de nombre, où lundi vaut 0 et " -"dimanche vaut 6. Par exemple, ``date(2002, 12, 4).weekday() == 2``, un " -"mercredi. Voir aussi :meth:`isoweekday`." - -#: library/datetime.rst:775 -msgid "" -"Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " -"For example, ``date(2002, 12, 4).isoweekday() == 3``, a Wednesday. See " -"also :meth:`weekday`, :meth:`isocalendar`." -msgstr "" -"Renvoie le jour de la semaine sous forme de nombre, où lundi vaut 1 et " -"dimanche vaut 7. Par exemple, ``date(2002, 12, 4).isoweekday() == 3``, un " -"mercredi. Voir aussi :meth:`weekday`, :meth:`isocalendar`." - -#: library/datetime.rst:782 -msgid "" -"Return a :term:`named tuple` object with three components: ``year``, " -"``week`` and ``weekday``." -msgstr "" -"Renvoie un objet :term:`named tuple` avec trois composants : ``year``, " -"``week`` et ``weekday``." - -#: library/datetime.rst:785 -msgid "" -"The ISO calendar is a widely used variant of the Gregorian calendar. [#]_" -msgstr "" -"Le calendrier ISO est une variante largement utilisée du calendrier " -"grégorien. [#]_" - -#: library/datetime.rst:787 -msgid "" -"The ISO year consists of 52 or 53 full weeks, and where a week starts on a " -"Monday and ends on a Sunday. The first week of an ISO year is the first " -"(Gregorian) calendar week of a year containing a Thursday. This is called " -"week number 1, and the ISO year of that Thursday is the same as its " -"Gregorian year." -msgstr "" -"Une année ISO est composée de 52 ou 53 semaines pleines, où chaque semaine " -"débute un lundi et se termine un dimanche. La première semaine d'une année " -"ISO est la première semaine calendaire (grégorienne) de l'année comportant " -"un jeudi. Elle est appelée la semaine numéro 1, et l'année ISO de ce jeudi " -"est la même que son année Grégorienne." - -#: library/datetime.rst:792 -msgid "" -"For example, 2004 begins on a Thursday, so the first week of ISO year 2004 " -"begins on Monday, 29 Dec 2003 and ends on Sunday, 4 Jan 2004::" -msgstr "" -"Par exemple, l'année 2004 débute un jeudi, donc la première semaine de " -"l'année ISO 2004 débute le lundi 29 décembre 2003 et se termine le dimanche " -"4 janvier 2004 ::" - -#: library/datetime.rst:801 -msgid "Result changed from a tuple to a :term:`named tuple`." -msgstr "Le résultat a changé d'un *n*-uplet à un :term:`named tuple`." - -#: library/datetime.rst:807 -msgid "" -"Return a string representing the date in ISO 8601 format, ``YYYY-MM-DD``::" -msgstr "" -"Renvoie une chaîne représentant la date au format ISO 8601, ``YYYY-MM-DD`` ::" - -#: library/datetime.rst:816 -#, fuzzy -msgid "For a date ``d``, ``str(d)`` is equivalent to ``d.isoformat()``." -msgstr "Pour une date *d*, ``str(d)`` est équivalent à ``d.isoformat()``." - -#: library/datetime.rst:821 -msgid "Return a string representing the date::" -msgstr "Renvoie une chaîne représentant la date ::" - -#: library/datetime.rst:1675 -msgid "``d.ctime()`` is equivalent to::" -msgstr "``d.ctime()`` est équivalent à ::" - -#: library/datetime.rst:831 -msgid "" -"on platforms where the native C :c:func:`ctime` function " -"(which :func:`time.ctime` invokes, but which :meth:`date.ctime` does not " -"invoke) conforms to the C standard." -msgstr "" -"sur les plateformes où la fonction C native :c:func:`ctime` " -"(que :func:`time.ctime` invoque, mais pas :meth:`date.ctime`) est conforme " -"au standard C." - -#: library/datetime.rst:838 -msgid "" -"Return a string representing the date, controlled by an explicit format " -"string. Format codes referring to hours, minutes or seconds will see 0 " -"values. See also :ref:`strftime-strptime-behavior` " -"and :meth:`date.isoformat`." -msgstr "" -"Renvoie une chaîne représentant la date, contrôlée par une chaîne de " -"formatage explicite. Les codes de formatage se référant aux heures, minutes " -"ou secondes auront pour valeur 0. Voir :ref:`strftime-strptime-behavior` " -"et :meth:`date.isoformat`." - -#: library/datetime.rst:845 -msgid "" -"Same as :meth:`.date.strftime`. This makes it possible to specify a format " -"string for a :class:`.date` object in :ref:`formatted string literals ` and when using :meth:`str.format`. See also :ref:`strftime-" -"strptime-behavior` and :meth:`date.isoformat`." -msgstr "" -"Identique à :meth:`.date.strftime`. Cela permet de spécifier une chaîne de " -"formatage pour un objet :class:`.date` dans une :ref:`chaîne de formatage " -"littérale ` et à l'utilisation de :meth:`str.format`. " -"Voir :ref:`strftime-strptime-behavior` et :meth:`date.isoformat`." - -#: library/datetime.rst:852 -#, fuzzy -msgid "Examples of usage: :class:`!date`" -msgstr "Exemple d'utilisation de la classe :class:`date` :" - -#: library/datetime.rst:854 -msgid "Example of counting days to an event::" -msgstr "Exemple de décompte des jours avant un évènement ::" - -#: library/datetime.rst:873 -msgid "More examples of working with :class:`date`:" -msgstr "Plus d'exemples avec la classe :class:`date` :" - -#: library/datetime.rst:922 -#, fuzzy -msgid ":class:`!datetime` objects" -msgstr "Objets :class:`.datetime`" - -#: library/datetime.rst:924 -msgid "" -"A :class:`.datetime` object is a single object containing all the " -"information from a :class:`date` object and a :class:`.time` object." -msgstr "" -"Un objet :class:`.datetime` est un seul et même objet contenant toute " -"l'information d'un objet :class:`date` et d'un objet :class:`time`." - -#: library/datetime.rst:927 -#, fuzzy -msgid "" -"Like a :class:`date` object, :class:`.datetime` assumes the current " -"Gregorian calendar extended in both directions; like a :class:`.time` " -"object, :class:`!datetime` assumes there are exactly 3600\\*24 seconds in " -"every day." -msgstr "" -"Comme un objet :class:`date`, un objet :class:`.datetime` utilise le " -"calendrier Grégorien actuel étendu vers le passé et le futur ; comme un " -"objet :class:`.time`, un objet :class:`.datetime` suppose qu'il y a " -"exactement 3600\\*24 secondes chaque jour." - -#: library/datetime.rst:931 -msgid "Constructor:" -msgstr "Constructeur :" - -#: library/datetime.rst:935 -msgid "" -"The *year*, *month* and *day* arguments are required. *tzinfo* may be " -"``None``, or an instance of a :class:`tzinfo` subclass. The remaining " -"arguments must be integers in the following ranges:" -msgstr "" -"Les arguments *year*, *month* et *day* sont requis. *tzinfo* peut être " -"``None`` ou une instance d'une sous-classe de :class:`tzinfo`. Les arguments " -"restant doivent être des nombres, dans les intervalles suivants :" - -#: library/datetime.rst:939 -msgid "``MINYEAR <= year <= MAXYEAR``," -msgstr "``MINYEAR <= year <= MAXYEAR``," - -#: library/datetime.rst:940 -msgid "``1 <= month <= 12``," -msgstr "``1 <= month <= 12``," - -#: library/datetime.rst:941 -msgid "``1 <= day <= number of days in the given month and year``," -msgstr "``1 <= day <= nombre de jours dans le mois donné de l'année donnée``," - -#: library/datetime.rst:1840 -msgid "``0 <= hour < 24``," -msgstr "``0 <= hour < 24``," - -#: library/datetime.rst:1841 -msgid "``0 <= minute < 60``," -msgstr "``0 <= minute < 60``," - -#: library/datetime.rst:1842 -msgid "``0 <= second < 60``," -msgstr "``0 <= second < 60``," - -#: library/datetime.rst:1843 -msgid "``0 <= microsecond < 1000000``," -msgstr "``0 <= microsecond < 1000000``," - -#: library/datetime.rst:1844 -msgid "``fold in [0, 1]``." -msgstr "``fold in [0, 1]``." - -#: library/datetime.rst:1403 library/datetime.rst:2008 -#, fuzzy -msgid "Added the *fold* parameter." -msgstr "Ajout de l'argument ``fold``." - -#: library/datetime.rst:958 -#, fuzzy -msgid "Return the current local date and time, with :attr:`.tzinfo` ``None``." -msgstr "Renvoie la date locale actuelle, avec :attr:`.tzinfo` ``None``." - -#: library/datetime.rst:960 -msgid "Equivalent to::" -msgstr "Équivalent à ::" - -#: library/datetime.rst:964 -msgid "See also :meth:`now`, :meth:`fromtimestamp`." -msgstr "Voir aussi :meth:`now`, :meth:`fromtimestamp`." - -#: library/datetime.rst:966 -msgid "" -"This method is functionally equivalent to :meth:`now`, but without a ``tz`` " -"parameter." -msgstr "" -"Cette méthode est fonctionnellement équivalente à :meth:`now`, mais sans le " -"paramètre ``tz``." - -#: library/datetime.rst:972 -msgid "Return the current local date and time." -msgstr "Renvoie la date et l'heure locale actuelle." - -#: library/datetime.rst:974 -msgid "" -"If optional argument *tz* is ``None`` or not specified, this is " -"like :meth:`today`, but, if possible, supplies more precision than can be " -"gotten from going through a :func:`time.time` timestamp (for example, this " -"may be possible on platforms supplying the C :c:func:`gettimeofday` " -"function)." -msgstr "" -"Si l'argument optionnel *tz* est ``None`` ou n'est pas spécifié, la méthode " -"est similaire à :meth:`today`, mais, si possible, apporte plus de précisions " -"que ce qui peut être trouvé à travers un horodatage :func:`time.time` (par " -"exemple, cela peut être possible sur des plateformes fournissant la fonction " -"C :c:func:`gettimeofday`)." - -#: library/datetime.rst:980 -msgid "" -"If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " -"subclass, and the current date and time are converted to *tz*’s time zone." -msgstr "" -"Si *tz* n'est pas ``None``, il doit être une instance d'une sous-" -"classe :class:`tzinfo`, et la date et l'heure courantes sont converties vers " -"le fuseau horaire *tz*." - -#: library/datetime.rst:983 -msgid "This function is preferred over :meth:`today` and :meth:`utcnow`." -msgstr "Cette fonction est préférée à :meth:`today` et :meth:`utcnow`." - -#: library/datetime.rst:987 -msgid "" -"Subsequent calls to :meth:`!datetime.now` may return the same instant " -"depending on the precision of the underlying clock." -msgstr "" - -#: library/datetime.rst:993 -msgid "Return the current UTC date and time, with :attr:`.tzinfo` ``None``." -msgstr "" -"Renvoie la date et l'heure UTC actuelle, avec :attr:`.tzinfo` ``None``." - -#: library/datetime.rst:995 -msgid "" -"This is like :meth:`now`, but returns the current UTC date and time, as a " -"naive :class:`.datetime` object. An aware current UTC datetime can be " -"obtained by calling ``datetime.now(timezone.utc)``. See also :meth:`now`." -msgstr "" -"C'est semblable à :meth:`now`, mais renvoie la date et l'heure UTC " -"courantes, comme un objet :class:`.datetime` naïf. Un ``datetime`` UTC " -"courant avisé peut être obtenu en appelant ``datetime.now(timezone.utc)``. " -"Voir aussi :meth:`now`." - -#: library/datetime.rst:1001 -msgid "" -"Because naive ``datetime`` objects are treated by many ``datetime`` methods " -"as local times, it is preferred to use aware datetimes to represent times in " -"UTC. As such, the recommended way to create an object representing the " -"current time in UTC is by calling ``datetime.now(timezone.utc)``." -msgstr "" -"Parce que les objets naïfs ``datetime`` sont traités par de nombreuses " -"méthodes ``datetime`` comme des heures locales, il est préférable d'utiliser " -"les dates connues pour représenter les heures en UTC. En tant que tel, le " -"moyen recommandé pour créer un objet représentant l'heure actuelle en UTC " -"est d'appeler ``datetime.now(timezone.utc)``." - -#: library/datetime.rst:1008 -msgid "Use :meth:`datetime.now` with :const:`UTC` instead." -msgstr "" - -#: library/datetime.rst:1013 -msgid "" -"Return the local date and time corresponding to the POSIX timestamp, such as " -"is returned by :func:`time.time`. If optional argument *tz* is ``None`` or " -"not specified, the timestamp is converted to the platform's local date and " -"time, and the returned :class:`.datetime` object is naive." -msgstr "" -"Renvoie la date et l'heure locales correspondant à l'horodatage (*timestamp* " -"en anglais) *POSIX*, comme renvoyé par :func:`time.time`. Si l'argument " -"optionnel *tz* est ``None`` ou n'est pas spécifié, l'horodatage est converti " -"vers la date et l'heure locales de la plateforme, et " -"l'objet :class:`.datetime` renvoyé est naïf." - -#: library/datetime.rst:1018 -msgid "" -"If *tz* is not ``None``, it must be an instance of a :class:`tzinfo` " -"subclass, and the timestamp is converted to *tz*’s time zone." -msgstr "" -"Si *tz* n'est pas ``None``, il doit être une instance d'une sous-" -"classe :class:`tzinfo`, et l'horodatage (*timestamp* en anglais) est " -"converti vers le fuseau horaire *tz*." - -#: library/datetime.rst:1021 -msgid "" -":meth:`fromtimestamp` may raise :exc:`OverflowError`, if the timestamp is " -"out of the range of values supported by the platform C :c:func:`localtime` " -"or :c:func:`gmtime` functions, and :exc:`OSError` on :c:func:`localtime` " -"or :c:func:`gmtime` failure. It's common for this to be restricted to years " -"in 1970 through 2038. Note that on non-POSIX systems that include leap " -"seconds in their notion of a timestamp, leap seconds are ignored " -"by :meth:`fromtimestamp`, and then it's possible to have two timestamps " -"differing by a second that yield identical :class:`.datetime` objects. This " -"method is preferred over :meth:`utcfromtimestamp`." -msgstr "" -":meth:`fromtimestamp` peut lever une :exc:`OverflowError`, si l'horodatage " -"est en dehors de l'intervalle de valeurs gérées par les fonctions " -"C :c:func:`localtime` ou :c:func:`gmtime` de la plateforme, et " -"une :exc:`OSError` en cas d'échec de :c:func:`localtime` " -"ou :c:func:`gmtime`. Il est courant d'être restreint aux années de 1970 à " -"2038. Notez que sur les systèmes non *POSIX* qui incluent les secondes " -"intercalaires dans leur notion d'horodatage, les secondes intercalaires sont " -"ignorées par :meth:`fromtimestamp`, et il est alors possible d'avoir deux " -"horodatages différant d'une seconde produisant un objet :class:`.datetime` " -"identique. Cette méthode est préférée à :meth:`utcfromtimestamp`." - -#: library/datetime.rst:1032 -msgid "" -"Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " -"out of the range of values supported by the platform C :c:func:`localtime` " -"or :c:func:`gmtime` functions. Raise :exc:`OSError` instead " -"of :exc:`ValueError` on :c:func:`localtime` or :c:func:`gmtime` failure." -msgstr "" -"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si " -"l'horodatage est en dehors de l'intervalle de valeurs gérées par les " -"fonctions C :c:func:`localtime` ou :c:func:`gmtime` de la plateforme. Lève " -"une :exc:`OSError` plutôt qu'une :exc:`ValueError` en cas d'échec " -"de :c:func:`localtime` ou :c:func:`gmtime`." - -#: library/datetime.rst:1039 -msgid ":meth:`fromtimestamp` may return instances with :attr:`.fold` set to 1." -msgstr "" -":meth:`fromtimestamp` peut renvoyer des instances avec " -"l'attribut :attr:`.fold` à 1." - -#: library/datetime.rst:1048 -msgid "" -"Return the UTC :class:`.datetime` corresponding to the POSIX timestamp, " -"with :attr:`.tzinfo` ``None``. (The resulting object is naive.)" -msgstr "" -"Renvoie la classe UTC :class:`.datetime` correspondant à l'horodatage POSIX, " -"avec :attr:`.tzinfo` ``None`` (l'objet résultant est naïf)." - -#: library/datetime.rst:1051 -msgid "" -"This may raise :exc:`OverflowError`, if the timestamp is out of the range of " -"values supported by the platform C :c:func:`gmtime` function, " -"and :exc:`OSError` on :c:func:`gmtime` failure. It's common for this to be " -"restricted to years in 1970 through 2038." -msgstr "" -"Cela peut lever une :exc:`OverflowError`, si l'horodatage est en dehors de " -"l'intervalle de valeurs gérées par la fonction C :c:func:`gmtime` de la " -"plateforme, et une :exc:`OSError` en cas d'échec de :c:func:`gmtime`. Il est " -"courant d'être restreint aux années de 1970 à 2038." - -#: library/datetime.rst:1056 -msgid "To get an aware :class:`.datetime` object, call :meth:`fromtimestamp`::" -msgstr "" -"Pour obtenir un objet :class:`.datetime` avisé, " -"appelez :meth:`fromtimestamp` ::" - -#: library/datetime.rst:1060 -msgid "" -"On the POSIX compliant platforms, it is equivalent to the following " -"expression::" -msgstr "" -"Sur les plateformes respectant *POSIX*, cela est équivalent à l'expression " -"suivante ::" - -#: library/datetime.rst:1065 -msgid "" -"except the latter formula always supports the full years range: " -"between :const:`MINYEAR` and :const:`MAXYEAR` inclusive." -msgstr "" -"excepté que la dernière formule gère l'intervalle complet des années " -"entre :const:`MINYEAR` et :const:`MAXYEAR` incluses." - -#: library/datetime.rst:1070 -msgid "" -"Because naive ``datetime`` objects are treated by many ``datetime`` methods " -"as local times, it is preferred to use aware datetimes to represent times in " -"UTC. As such, the recommended way to create an object representing a " -"specific timestamp in UTC is by calling ``datetime.fromtimestamp(timestamp, " -"tz=timezone.utc)``." -msgstr "" -"Parce que les objets naïfs ``datetime`` sont traités par de nombreuses " -"méthodes ``datetime`` comme des heures locales, il est préférable d'utiliser " -"les dates connues pour représenter les heures en UTC. En tant que tel, le " -"moyen recommandé pour créer un objet représentant un horodatage spécifique " -"en UTC est d'appeler ``datetime.fromtimestamp(timestamp, tz=timezone.utc)``." - -#: library/datetime.rst:1076 -msgid "" -"Raise :exc:`OverflowError` instead of :exc:`ValueError` if the timestamp is " -"out of the range of values supported by the platform C :c:func:`gmtime` " -"function. Raise :exc:`OSError` instead of :exc:`ValueError` " -"on :c:func:`gmtime` failure." -msgstr "" -"Lève une :exc:`OverflowError` plutôt qu'une :exc:`ValueError` si " -"l'horodatage est en dehors de l'intervalle de valeurs gérées par la fonction " -"C :c:func:`gmtime` de la plateforme. Lève une :exc:`OSError` plutôt " -"qu'une :exc:`ValueError` en cas d'échec de :c:func:`gmtime`." - -#: library/datetime.rst:1087 -msgid "Use :meth:`datetime.fromtimestamp` with :const:`UTC` instead." -msgstr "" - -#: library/datetime.rst:1092 -msgid "" -"Return the :class:`.datetime` corresponding to the proleptic Gregorian " -"ordinal, where January 1 of year 1 has ordinal 1. :exc:`ValueError` is " -"raised unless ``1 <= ordinal <= datetime.max.toordinal()``. The hour, " -"minute, second and microsecond of the result are all 0, and :attr:`.tzinfo` " -"is ``None``." -msgstr "" -"Renvoie le :class:`.datetime` correspondant à l'ordinal du calendrier " -"grégorien proleptique, où le 1er janvier de l'an 1 a l'ordinal 1. " -"Une :exc:`ValueError` est levée à moins que ``1 <= ordinal <= " -"datetime.max.toordinal()``. Les heures, minutes, secondes et microsecondes " -"du résultat valent toutes 0, et :attr:`.tzinfo` est ``None``." - -#: library/datetime.rst:1100 -#, fuzzy -msgid "" -"Return a new :class:`.datetime` object whose date components are equal to " -"the given :class:`date` object's, and whose time components are equal to the " -"given :class:`.time` object's. If the *tzinfo* argument is provided, its " -"value is used to set the :attr:`.tzinfo` attribute of the result, otherwise " -"the :attr:`~.time.tzinfo` attribute of the *time* argument is used. If the " -"*date* argument is a :class:`!datetime` object, its time components " -"and :attr:`.tzinfo` attributes are ignored." -msgstr "" -"Renvoie un nouvel objet :class:`.datetime` dont les composants de date sont " -"égaux à ceux de l'objet :class:`date` donné, et dont les composants de temps " -"sont égaux à ceux de l'objet :class:`time` donné. Si l'argument *tzinfo* est " -"fourni, sa valeur est utilisée pour initialiser l'attribut :attr:`.tzinfo` " -"du résultat, autrement l'attribut :attr:`~.time.tzinfo` de l'argument *time* " -"est utilisé." - -#: library/datetime.rst:1108 -#, fuzzy -msgid "" -"For any :class:`.datetime` object ``d``, ``d == datetime.combine(d.date(), " -"d.time(), d.tzinfo)``." -msgstr "" -"Pour tout objet :class:`.datetime` *d*`, ``d == datetime.combine(d.date(), " -"d.time(), d.tzinfo)``. Si *date* est un objet :class:`.datetime`, ses " -"composants de temps et attributs :attr:`.tzinfo` sont ignorés." - -#: library/datetime.rst:1111 -msgid "Added the *tzinfo* argument." -msgstr "Ajout de l'argument *tzinfo*." - -#: library/datetime.rst:1117 -msgid "" -"Return a :class:`.datetime` corresponding to a *date_string* in any valid " -"ISO 8601 format, with the following exceptions:" -msgstr "" -"Renvoie une classe :class:`.datetime` correspondant à *date_string* dans un " -"format ISO 8601 valide, avec les exceptions suivantes :" - -#: library/datetime.rst:1942 -msgid "Time zone offsets may have fractional seconds." -msgstr "" -"Les décalages de fuseaux horaires peuvent comporter des fractions de " -"secondes." - -#: library/datetime.rst:1121 -msgid "The ``T`` separator may be replaced by any single unicode character." -msgstr "" -"Le séparateur ``T`` peut être remplacé par n'importe quel caractère Unicode." - -#: library/datetime.rst:1947 -msgid "Fractional hours and minutes are not supported." -msgstr "Les fractions d'heures et de minutes ne sont pas gérées." - -#: library/datetime.rst:1153 -#, fuzzy -msgid "" -"Previously, this method only supported formats that could be emitted " -"by :meth:`date.isoformat` or :meth:`datetime.isoformat`." -msgstr "" -"Auparavant, cette méthode prenait en charge seulement les formats émis " -"par :meth:`date.isoformat()` et :meth:`datetime.isoformat()`." - -#: library/datetime.rst:1160 -#, fuzzy -msgid "" -"Return a :class:`.datetime` corresponding to the ISO calendar date specified " -"by *year*, *week* and *day*. The non-date components of the datetime are " -"populated with their normal default values. This is the inverse of the " -"function :meth:`datetime.isocalendar`." -msgstr "" -"Renvoie une classe :class:`.datetime` correspondant à la date du calendrier " -"ISO spécifiée par année, semaine et jour. Les composantes ne relevant pas de " -"la date de *datetime* sont renseignées avec leurs valeurs par défaut " -"normales. C'est la réciproque de la fonction :meth:`datetime.isocalendar`." - -#: library/datetime.rst:1170 -msgid "" -"Return a :class:`.datetime` corresponding to *date_string*, parsed according " -"to *format*." -msgstr "" -"Renvoie une classe :class:`.datetime` correspondant à *date_string*, " -"analysée selon *format*." - -#: library/datetime.rst:1173 -#, fuzzy -msgid "" -"If *format* does not contain microseconds or time zone information, this is " -"equivalent to::" -msgstr "" -"Si *format* ne contient pas de microsecondes ou d'informations sur le fuseau " -"horaire, cela équivaut à ::" - -#: library/datetime.rst:1177 -msgid "" -":exc:`ValueError` is raised if the date_string and format can't be parsed " -"by :func:`time.strptime` or if it returns a value which isn't a time tuple. " -"See also :ref:`strftime-strptime-behavior` " -"and :meth:`datetime.fromisoformat`." -msgstr "" -"Une :exc:`ValueError` est levée si *date_string* et *format* ne peuvent être " -"analysés par :func:`time.strptime` ou si elle renvoie une valeur qui n'est " -"pas un *n*-uplet de temps. Voir :ref:`strftime-strptime-behavior` " -"et :meth:`datetime.fromisoformat`." - -#: library/datetime.rst:1205 -msgid "" -"The earliest representable :class:`.datetime`, ``datetime(MINYEAR, 1, 1, " -"tzinfo=None)``." -msgstr "" -"Le plus ancien :class:`.datetime` représentable, ``datetime(MINYEAR, 1, 1, " -"tzinfo=None)``." - -#: library/datetime.rst:1211 -msgid "" -"The latest representable :class:`.datetime`, ``datetime(MAXYEAR, 12, 31, 23, " -"59, 59, 999999, tzinfo=None)``." -msgstr "" -"Le dernier :class:`.datetime` représentable, ``datetime(MAXYEAR, 12, 31, 23, " -"59, 59, 999999, tzinfo=None)``." - -#: library/datetime.rst:1217 -msgid "" -"The smallest possible difference between non-equal :class:`.datetime` " -"objects, ``timedelta(microseconds=1)``." -msgstr "" -"La plus petite différence possible entre deux objets :class:`.datetime` non-" -"égaux, ``timedelta(microseconds=1)``." - -#: library/datetime.rst:1874 -msgid "In ``range(24)``." -msgstr "Dans ``range(24)``." - -#: library/datetime.rst:1250 library/datetime.rst:1884 -msgid "In ``range(60)``." -msgstr "Dans ``range(60)``." - -#: library/datetime.rst:1889 -msgid "In ``range(1000000)``." -msgstr "Dans ``range(1000000)``." - -#: library/datetime.rst:1260 -msgid "" -"The object passed as the *tzinfo* argument to the :class:`.datetime` " -"constructor, or ``None`` if none was passed." -msgstr "" -"L'objet passé en tant que paramètre *tzinfo* du constructeur de la " -"classe :class:`.datetime` ou ``None`` si aucun n'a été donné." - -#: library/datetime.rst:1900 -#, fuzzy -msgid "" -"In ``[0, 1]``. Used to disambiguate wall times during a repeated interval. " -"(A repeated interval occurs when clocks are rolled back at the end of " -"daylight saving time or when the UTC offset for the current zone is " -"decreased for political reasons.) The values 0 and 1 represent, " -"respectively, the earlier and later of the two moments with the same wall " -"time representation." -msgstr "" -"Dans ``[0, 1]``. Utilisé pour désambiguïser les heures dans un intervalle " -"répété. (Un intervalle répété apparaît quand l'horloge est retardée à la fin " -"de l'heure d'été ou quand le décalage horaire UTC du fuseau courant est " -"décrémenté pour des raisons politiques.) La valeur 0 (1) représente le plus " -"ancien (récent) des deux moments représentés par la même heure." - -#: library/datetime.rst:1280 -msgid "``datetime2 = datetime1 + timedelta``" -msgstr "``datetime2 = datetime1 + timedelta``" - -#: library/datetime.rst:2544 library/datetime.rst:2554 -#: library/datetime.rst:2564 library/datetime.rst:2668 -msgid "\\(1)" -msgstr "\\(1)" - -#: library/datetime.rst:1282 -msgid "``datetime2 = datetime1 - timedelta``" -msgstr "``datetime2 = datetime1 - timedelta``" - -#: library/datetime.rst:2674 -msgid "\\(2)" -msgstr "\\(2)" - -#: library/datetime.rst:1284 -msgid "``timedelta = datetime1 - datetime2``" -msgstr "``timedelta = datetime1 - datetime2``" - -#: library/datetime.rst:1286 -#, fuzzy -msgid "``datetime1 == datetime2``" -msgstr "``datetime1 < datetime2``" - -#: library/datetime.rst:1287 -#, fuzzy -msgid "``datetime1 != datetime2``" -msgstr "``datetime1 < datetime2``" - -#: library/datetime.rst:1289 -msgid "``datetime1 < datetime2``" -msgstr "``datetime1 < datetime2``" - -#: library/datetime.rst:1290 -#, fuzzy -msgid "``datetime1 > datetime2``" -msgstr "``datetime1 < datetime2``" - -#: library/datetime.rst:1291 -#, fuzzy -msgid "``datetime1 <= datetime2``" -msgstr "``datetime1 < datetime2``" - -#: library/datetime.rst:1292 -#, fuzzy -msgid "``datetime1 >= datetime2``" -msgstr "``datetime1 < datetime2``" - -#: library/datetime.rst:1296 -#, fuzzy -msgid "" -"``datetime2`` is a duration of ``timedelta`` removed from ``datetime1``, " -"moving forward in time if ``timedelta.days > 0``, or backward if " -"``timedelta.days < 0``. The result has the same :attr:`~.datetime.tzinfo` " -"attribute as the input datetime, and ``datetime2 - datetime1 == timedelta`` " -"after. :exc:`OverflowError` is raised if ``datetime2.year`` would be smaller " -"than :const:`MINYEAR` or larger than :const:`MAXYEAR`. Note that no time " -"zone adjustments are done even if the input is an aware object." -msgstr "" -"*datetime2* est décalé d'une durée *timedelta* par rapport à *datetime1*, en " -"avant dans le temps si ``timedelta.days > 0``, ou en arrière si " -"``timedelta.days < 0``. Le résultat a le même " -"attribut :attr:`~.datetime.tzinfo` que le *datetime* d'entrée, et *datetime2 " -"- datetime1 == timedelta* après l'opération. Une :exc:`OverflowError` est " -"levée si *datetime2.year* devait être inférieure à :const:`MINYEAR` ou " -"supérieure à :const:`MAXYEAR`. Notez qu'aucun ajustement de fuseau horaire " -"n'est réalisé même si l'entrée est avisée." - -#: library/datetime.rst:1305 -#, fuzzy -msgid "" -"Computes the ``datetime2`` such that ``datetime2 + timedelta == datetime1``. " -"As for addition, the result has the same :attr:`~.datetime.tzinfo` attribute " -"as the input datetime, and no time zone adjustments are done even if the " -"input is aware." -msgstr "" -"Calcule *datetime2* tel que ``datetime2 + timedelta == datetime1``. Comme " -"pour l'addition, le résultat a le même attribut :attr:`~.datetime.tzinfo` " -"que le *datetime* d'entrée, et aucun ajustement de fuseau horaire n'est " -"réalisé même si l'entrée est avisée." - -#: library/datetime.rst:1310 -#, fuzzy -msgid "" -"Subtraction of a :class:`.datetime` from a :class:`!datetime` is defined " -"only if both operands are naive, or if both are aware. If one is aware and " -"the other is naive, :exc:`TypeError` is raised." -msgstr "" -"La soustraction d'un :class:`.datetime` à un autre :class:`.datetime` n'est " -"définie que si les deux opérandes sont naïfs, ou s'ils sont les deux " -"avisés. Si l'un est avisé et que l'autre est naïf, une :exc:`TypeError` est " -"levée." - -#: library/datetime.rst:1314 -#, fuzzy -msgid "" -"If both are naive, or both are aware and have the " -"same :attr:`~.datetime.tzinfo` attribute, the :attr:`~.datetime.tzinfo` " -"attributes are ignored, and the result is a :class:`timedelta` object ``t`` " -"such that ``datetime2 + t == datetime1``. No time zone adjustments are done " -"in this case." -msgstr "" -"Si les deux sont naïfs, ou que les deux sont avisés et ont le même " -"attribut :attr:`~.datetime.tzinfo`, les attributs :attr:`~.datetime.tzinfo` " -"sont ignorés, et le résultat est un objet :class:`timedelta` *t* tel que " -"``datetime2 + t == datetime1``. Aucun ajustement de fuseau horaire n'a lieu " -"dans ce cas." - -#: library/datetime.rst:1319 -#, fuzzy -msgid "" -"If both are aware and have different :attr:`~.datetime.tzinfo` attributes, " -"``a-b`` acts as if ``a`` and ``b`` were first converted to naive UTC " -"datetimes. The result is ``(a.replace(tzinfo=None) - a.utcoffset()) - " -"(b.replace(tzinfo=None) - b.utcoffset())`` except that the implementation " -"never overflows." -msgstr "" -"Si les deux sont avisés mais ont des attributs :attr:`~.datetime.tzinfo` " -"différents, ``a-b`` agit comme si *a* et *b* étaient premièrement convertis " -"vers des *datetimes* UTC naïfs. Le résultat est ``(a.replace(tzinfo=None) - " -"a.utcoffset()) - (b.replace(tzinfo=None) - b.utcoffset())`` à l'exception " -"que l'implémentation ne produit jamais de débordement." - -#: library/datetime.rst:1325 -msgid "" -":class:`.datetime` objects are equal if they represent the same date and " -"time, taking into account the time zone." -msgstr "" - -#: library/datetime.rst:1328 -#, fuzzy -msgid "Naive and aware :class:`.datetime` objects are never equal." -msgstr "" -"Pour obtenir un objet :class:`.datetime` avisé, " -"appelez :meth:`fromtimestamp` ::" - -#: library/datetime.rst:1330 -#, fuzzy -msgid "" -"If both comparands are aware, and have the same :attr:`!tzinfo` attribute, " -"the :attr:`!tzinfo` and :attr:`~.datetime.fold` attributes are ignored and " -"the base datetimes are compared. If both comparands are aware and have " -"different :attr:`~.datetime.tzinfo` attributes, the comparison acts as " -"comparands were first converted to UTC datetimes except that the " -"implementation never overflows. :class:`.datetime` instances in a repeated " -"interval are never equal to :class:`!datetime` instances in other time zone." -msgstr "" -"Si les deux opérandes sont avisés, et ont le même " -"attribut :attr:`~.datetime.tzinfo`, l'attribut " -"commun :attr:`~.datetime.tzinfo` est ignoré et les *datetimes* de base sont " -"comparés. Si les deux opérandes sont avisés et ont des " -"attributs :attr:`~.datetime.tzinfo` différents, les opérandes sont " -"premièrement ajustés en soustrayant leurs décalages UTC (obtenus depuis " -"``self.utcoffset()``)." - -#: library/datetime.rst:1340 -#, fuzzy -msgid "" -"*datetime1* is considered less than *datetime2* when *datetime1* precedes " -"*datetime2* in time, taking into account the time zone." -msgstr "" -"*datetime1* est considéré inférieur à *datetime2* quand il le précède dans " -"le temps." - -#: library/datetime.rst:1343 -#, fuzzy -msgid "" -"Order comparison between naive and aware :class:`.datetime` objects " -"raises :exc:`TypeError`." -msgstr "" -"Les comparaisons d'égalité entre des instances :class:`.datetime` naïves et " -"avisées ne lèvent pas d'exception :exc:`TypeError`." - -#: library/datetime.rst:1346 -#, fuzzy -msgid "" -"If both comparands are aware, and have the same :attr:`!tzinfo` attribute, " -"the :attr:`!tzinfo` and :attr:`~.datetime.fold` attributes are ignored and " -"the base datetimes are compared. If both comparands are aware and have " -"different :attr:`~.datetime.tzinfo` attributes, the comparison acts as " -"comparands were first converted to UTC datetimes except that the " -"implementation never overflows." -msgstr "" -"Si les deux opérandes sont avisés, et ont le même " -"attribut :attr:`~.datetime.tzinfo`, l'attribut " -"commun :attr:`~.datetime.tzinfo` est ignoré et les *datetimes* de base sont " -"comparés. Si les deux opérandes sont avisés et ont des " -"attributs :attr:`~.datetime.tzinfo` différents, les opérandes sont " -"premièrement ajustés en soustrayant leurs décalages UTC (obtenus depuis " -"``self.utcoffset()``)." - -#: library/datetime.rst:1353 -msgid "" -"Equality comparisons between aware and naive :class:`.datetime` instances " -"don't raise :exc:`TypeError`." -msgstr "" -"Les comparaisons d'égalité entre des instances :class:`.datetime` naïves et " -"avisées ne lèvent pas d'exception :exc:`TypeError`." - -#: library/datetime.rst:1370 -msgid "Return :class:`date` object with same year, month and day." -msgstr "Renvoie un objet :class:`date` avec les mêmes année, mois et jour." - -#: library/datetime.rst:1375 -msgid "" -"Return :class:`.time` object with same hour, minute, second, microsecond and " -"fold. :attr:`.tzinfo` is ``None``. See also method :meth:`timetz`." -msgstr "" -"Renvoie un objet :class:`.time` avec les mêmes heures, minutes, secondes, " -"microsecondes et *fold*. :attr:`.tzinfo` est ``None``. Voir aussi la " -"méthode :meth:`timetz`." - -#: library/datetime.rst:1387 -msgid "The fold value is copied to the returned :class:`.time` object." -msgstr "La valeur *fold* est copiée vers l'objet :class:`.time` renvoyé." - -#: library/datetime.rst:1384 -msgid "" -"Return :class:`.time` object with same hour, minute, second, microsecond, " -"fold, and tzinfo attributes. See also method :meth:`time`." -msgstr "" -"Renvoie un objet :class:`.time` avec les mêmes attributs heure, minute, " -"seconde, microseconde, *fold* et *tzinfo*. Voir aussi la " -"méthode :meth:`time`." - -#: library/datetime.rst:1395 -#, fuzzy -msgid "" -"Return a new :class:`datetime` object with the same attributes, but with " -"specified parameters updated. Note that ``tzinfo=None`` can be specified to " -"create a naive datetime from an aware datetime with no conversion of date " -"and time data." -msgstr "" -"Renvoie un *datetime* avec les mêmes attributs, exceptés ceux dont de " -"nouvelles valeurs sont données par les arguments nommés correspondant. " -"Notez que ``tzinfo=None`` peut être spécifié pour créer un *datetime* naïf " -"depuis un *datetime* avisé sans conversion de la date ou de l'heure." - -#: library/datetime.rst:1400 -msgid "" -":class:`.datetime` objects are also supported by generic " -"function :func:`copy.replace`." -msgstr "" - -#: library/datetime.rst:1409 -msgid "" -"Return a :class:`.datetime` object with new :attr:`.tzinfo` attribute *tz*, " -"adjusting the date and time data so the result is the same UTC time as " -"*self*, but in *tz*'s local time." -msgstr "" -"Renvoie un objet :class:`.datetime` avec un nouvel attribut :attr:`.tzinfo` " -"valant *tz*, ajustant la date et l'heure pour que le résultat soit le même " -"temps UTC que *self*, mais dans le temps local au fuseau *tz*." - -#: library/datetime.rst:1413 -#, fuzzy -msgid "" -"If provided, *tz* must be an instance of a :class:`tzinfo` subclass, and " -"its :meth:`utcoffset` and :meth:`dst` methods must not return ``None``. If " -"*self* is naive, it is presumed to represent time in the system time zone." -msgstr "" -"S'il est fourni, *tz* doit être une instance d'une sous-classe " -"de :class:`tzinfo`, et ses méthodes :meth:`utcoffset` et :meth:`dst` ne " -"doivent pas renvoyer ``None``. Si *self* est naïf, Python considère que le " -"temps est exprimé dans le fuseau horaire du système." - -#: library/datetime.rst:1417 -#, fuzzy -msgid "" -"If called without arguments (or with ``tz=None``) the system local time zone " -"is assumed for the target time zone. The ``.tzinfo`` attribute of the " -"converted datetime instance will be set to an instance of :class:`timezone` " -"with the zone name and offset obtained from the OS." -msgstr "" -"Si appelé sans arguments (ou si ``tz=None``) le fuseau horaire local du " -"système est utilisé comme fuseau horaire cible. L'attribut ``.tzinfo`` de " -"l'instance *datetime* convertie aura pour valeur une instance " -"de :class:`timezone` avec le nom de fuseau et le décalage obtenus depuis " -"l'OS." - -#: library/datetime.rst:1422 -#, fuzzy -msgid "" -"If ``self.tzinfo`` is *tz*, ``self.astimezone(tz)`` is equal to *self*: no " -"adjustment of date or time data is performed. Else the result is local time " -"in the time zone *tz*, representing the same UTC time as *self*: after " -"``astz = dt.astimezone(tz)``, ``astz - astz.utcoffset()`` will have the same " -"date and time data as ``dt - dt.utcoffset()``." -msgstr "" -"Si ``self.tzinfo`` est *tz*, ``self.astimezone(tz)`` est égal à *self* : " -"aucun ajustement de date ou d'heure n'est réalisé. Sinon le résultat est le " -"temps local dans le fuseau *tz* représentant le même temps UTC que *self* : " -"après ``astz = dt.astimezone(tz)``, ``astz - astz.utcoffset()`` aura les " -"mêmes données de date et d'heure que ``dt - dt.utcoffset()``." - -#: library/datetime.rst:1428 -#, fuzzy -msgid "" -"If you merely want to attach a :class:`timezone` object *tz* to a datetime " -"*dt* without adjustment of date and time data, use " -"``dt.replace(tzinfo=tz)``. If you merely want to remove the :class:`!" -"timezone` object from an aware datetime *dt* without conversion of date and " -"time data, use ``dt.replace(tzinfo=None)``." -msgstr "" -"Si vous voulez seulement associer un fuseau horaire *tz* à un *datetime* " -"*dt* sans ajustement des données de date et d'heure, utilisez " -"``dt.replace(tzinfo=tz)``. Si vous voulez seulement supprimer le fuseau " -"horaire d'un *datetime* *dt* avisé sans conversion des données de date et " -"d'heure, utilisez ``dt.replace(tzinfo=None)``." - -#: library/datetime.rst:1433 -msgid "" -"Note that the default :meth:`tzinfo.fromutc` method can be overridden in " -"a :class:`tzinfo` subclass to affect the result returned " -"by :meth:`astimezone`. Ignoring error cases, :meth:`astimezone` acts like::" -msgstr "" -"Notez que la méthode par défaut :meth:`tzinfo.fromutc` peut être redéfinie " -"dans une sous-classe :class:`tzinfo` pour affecter le résultat renvoyé " -"par :meth:`astimezone`. En ignorant les cas d'erreurs, :meth:`astimezone` se " -"comporte comme ::" - -#: library/datetime.rst:1445 -msgid "*tz* now can be omitted." -msgstr "*tz* peut maintenant être omis." - -#: library/datetime.rst:1448 -msgid "" -"The :meth:`astimezone` method can now be called on naive instances that are " -"presumed to represent system local time." -msgstr "" -"La méthode :meth:`astimezone` peut maintenant être appelée sur des instances " -"naïves qui sont supposées représenter un temps local au système." - -#: library/datetime.rst:1455 -msgid "" -"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " -"``self.tzinfo.utcoffset(self)``, and raises an exception if the latter " -"doesn't return ``None`` or a :class:`timedelta` object with magnitude less " -"than one day." -msgstr "" -"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie " -"``self.tzinfo.utcoffset(self)``, et lève une exception si l'expression " -"précédente ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une " -"magnitude inférieure à un jour." - -#: library/datetime.rst:2081 library/datetime.rst:2443 -#: library/datetime.rst:2852 -msgid "The UTC offset is not restricted to a whole number of minutes." -msgstr "Le décalage UTC peut aussi être autre chose qu'un ensemble de minutes." - -#: library/datetime.rst:1465 -msgid "" -"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " -"``self.tzinfo.dst(self)``, and raises an exception if the latter doesn't " -"return ``None`` or a :class:`timedelta` object with magnitude less than one " -"day." -msgstr "" -"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie " -"``self.tzinfo.dst(self)``, et lève une exception si l'expression précédente " -"ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " -"inférieure à un jour." - -#: library/datetime.rst:2091 library/datetime.rst:2248 -msgid "The DST offset is not restricted to a whole number of minutes." -msgstr "Le décalage DST n'est pas restreint à des minutes entières." - -#: library/datetime.rst:1475 -msgid "" -"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " -"``self.tzinfo.tzname(self)``, raises an exception if the latter doesn't " -"return ``None`` or a string object," -msgstr "" -"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie " -"``self.tzinfo.tzname(self)``, lève une exception si l'expression précédente " -"ne renvoie pas ``None`` ou une chaîne de caractères," - -#: library/datetime.rst:1490 -#, fuzzy -msgid "" -"where ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` is the " -"day number within the current year starting with 1 for January 1st. " -"The :attr:`~time.struct_time.tm_isdst` flag of the result is set according " -"to the :meth:`dst` method: :attr:`.tzinfo` is ``None`` or :meth:`dst` " -"returns ``None``, :attr:`!tm_isdst` is set to ``-1``; else if :meth:`dst` " -"returns a non-zero value, :attr:`!tm_isdst` is set to 1; else :attr:`!" -"tm_isdst` is set to 0." -msgstr "" -"où ``yday = d.toordinal() - date(d.year, 1, 1).toordinal() + 1`` est le " -"numéro de jour dans l'année courante commençant avec ``1`` pour le " -"1\\ :sup:`er` janvier. L'option :attr:`tm_isdist` du résultat est attribuée " -"selon la méthode :meth:`dst` : si :attr:`.tzinfo` est ``None`` " -"ou :meth:`dst` renvoie ``None``, :attr:`tm_isdst` est mise à ``-1`` ; " -"sinon, si :meth:`dst` renvoie une valeur non nulle, :attr:`tm_isdst` est " -"mise à ``1`` ; sinon :attr:`tm_isdst` est mise à ``0``." - -#: library/datetime.rst:1501 -#, fuzzy -msgid "" -"If :class:`.datetime` instance ``d`` is naive, this is the same as " -"``d.timetuple()`` except that :attr:`~.time.struct_time.tm_isdst` is forced " -"to 0 regardless of what ``d.dst()`` returns. DST is never in effect for a " -"UTC time." -msgstr "" -"Si l'instance de :class:`.datetime` *d* est naïve, cela est équivalent à " -"``d.timetuple()``, excepté que :attr:`tm_isdst` est forcé à 0 sans tenir " -"compte de ce que renvoie ``d.dst()``. L'heure d'été n'est jamais effective " -"pour un temps UTC." - -#: library/datetime.rst:1505 -#, fuzzy -msgid "" -"If ``d`` is aware, ``d`` is normalized to UTC time, by subtracting " -"``d.utcoffset()``, and a :class:`time.struct_time` for the normalized time " -"is returned. :attr:`!tm_isdst` is forced to 0. Note that " -"an :exc:`OverflowError` may be raised if ``d.year`` was ``MINYEAR`` or " -"``MAXYEAR`` and UTC adjustment spills over a year boundary." -msgstr "" -"Si *d* est avisé, il est normalisé vers un temps UTC, en lui soustrayant " -"``d.utcoffset()``, et un :class:`time.struct_time` est renvoyé pour le temps " -"normalisé. :attr:`tm_isdst` est forcé à 0. Notez " -"qu'une :exc:`OverflowError` peut être levée si *d.year* vaut ``MINYEAR`` ou " -"``MAXYEAR`` et que l'ajustement UTC fait déborder la limite de l'année." - -#: library/datetime.rst:1514 -msgid "" -"Because naive ``datetime`` objects are treated by many ``datetime`` methods " -"as local times, it is preferred to use aware datetimes to represent times in " -"UTC; as a result, using :meth:`datetime.utctimetuple` may give misleading " -"results. If you have a naive ``datetime`` representing UTC, use " -"``datetime.replace(tzinfo=timezone.utc)`` to make it aware, at which point " -"you can use :meth:`.datetime.timetuple`." -msgstr "" -"Comme les objets ``datetime`` naïfs sont traités par de nombreuses méthodes " -"``datetime`` comme des heures locales, il est préférable d'utiliser les " -"``datetime`` avisés pour représenter les heures en UTC ; par conséquent, " -"l'utilisation de :meth:`datetime.utcfromtimetuple` peut donner des résultats " -"trompeurs. Si vous disposez d'une ``datetime`` naïve représentant l'heure " -"UTC, utilisez ``datetime.replace(tzinfo=timezone.utc)`` pour la rendre " -"avisée, puis vous pouvez utiliser :meth:`.datetime.timetuple`." - -#: library/datetime.rst:1524 -msgid "" -"Return the proleptic Gregorian ordinal of the date. The same as " -"``self.date().toordinal()``." -msgstr "" -"Renvoie l'ordinal du calendrier grégorien proleptique de cette date. " -"Identique à ``self.date().toordinal()``." - -#: library/datetime.rst:1530 -msgid "" -"Return POSIX timestamp corresponding to the :class:`.datetime` instance. The " -"return value is a :class:`float` similar to that returned " -"by :func:`time.time`." -msgstr "" -"Renvoie l'horodatage *POSIX* correspondant à l'instance :class:`.datetime`. " -"La valeur renvoyée est un :class:`float` similaire à ceux renvoyés " -"par :func:`time.time`." - -#: library/datetime.rst:1534 -#, fuzzy -msgid "" -"Naive :class:`.datetime` instances are assumed to represent local time and " -"this method relies on platform C functions to perform the conversion. " -"Since :class:`!datetime` supports a wider range of values than the platform " -"C functions on many platforms, this method may raise :exc:`OverflowError` " -"or :exc:`OSError` for times far in the past or far in the future." -msgstr "" -"Les instances naïves de :class:`.datetime` sont supposées représenter un " -"temps local et cette méthode se base sur la fonction C :c:func:`mktime` de " -"la plateforme pour opérer la conversion. Comme :class:`.datetime` gère un " -"intervalle de valeurs plus large que :c:func:`mktime` sur beaucoup de " -"plateformes, cette méthode peut lever une :exc:`OverflowError` pour les " -"temps trop éloignés dans le passé ou le futur." - -#: library/datetime.rst:1541 -msgid "" -"For aware :class:`.datetime` instances, the return value is computed as::" -msgstr "" -"Pour les instances :class:`.datetime` avisées, la valeur renvoyée est " -"calculée comme suit ::" - -#: library/datetime.rst:1548 -#, fuzzy -msgid "" -"There is no method to obtain the POSIX timestamp directly from a " -"naive :class:`.datetime` instance representing UTC time. If your application " -"uses this convention and your system time zone is not set to UTC, you can " -"obtain the POSIX timestamp by supplying ``tzinfo=timezone.utc``::" -msgstr "" -"Il n'y a pas de méthode pour obtenir l'horodatage (*timestamp* en anglais) " -"*POSIX* directement depuis une instance :class:`.datetime` naïve " -"représentant un temps UTC. Si votre application utilise cette convention et " -"que le fuseau horaire de votre système n'est pas réglé sur UTC, vous pouvez " -"obtenir l'horodatage *POSIX* en fournissant ``tzinfo=timezone.utc`` ::" - -#: library/datetime.rst:1556 -msgid "or by calculating the timestamp directly::" -msgstr "ou en calculant l'horodatage (*timestamp* en anglais) directement ::" - -#: library/datetime.rst:1562 -msgid "" -"The :meth:`timestamp` method uses the :attr:`.fold` attribute to " -"disambiguate the times during a repeated interval." -msgstr "" -"La méthode :meth:`timestamp` utilise l'attribut :attr:`.fold` pour " -"désambiguïser le temps dans un intervalle répété." - -#: library/datetime.rst:1566 -msgid "" -"This method no longer relies on the platform C :c:func:`mktime` function to " -"perform conversions." -msgstr "" - -#: library/datetime.rst:1573 -msgid "" -"Return the day of the week as an integer, where Monday is 0 and Sunday is 6. " -"The same as ``self.date().weekday()``. See also :meth:`isoweekday`." -msgstr "" -"Renvoie le jour de la semaine sous forme de nombre, où lundi vaut 0 et " -"dimanche vaut 6. Identique à ``self.date().weekday()``. Voir " -"aussi :meth:`isoweekday`." - -#: library/datetime.rst:1579 -msgid "" -"Return the day of the week as an integer, where Monday is 1 and Sunday is 7. " -"The same as ``self.date().isoweekday()``. See " -"also :meth:`weekday`, :meth:`isocalendar`." -msgstr "" -"Renvoie le jour de la semaine sous forme de nombre, où lundi vaut 1 et " -"dimanche vaut 7. Identique à ``self.date().isoweekday()``. Voir " -"aussi :meth:`weekday`, :meth:`isocalendar`." - -#: library/datetime.rst:1586 -msgid "" -"Return a :term:`named tuple` with three components: ``year``, ``week`` and " -"``weekday``. The same as ``self.date().isocalendar()``." -msgstr "" -"Renvoie un :term:`n-uplet nommé` de 3 éléments : ``year``, " -"``week`` et ``weekday``. Identique à ``self.date().isocalendar()``." - -#: library/datetime.rst:1592 -msgid "Return a string representing the date and time in ISO 8601 format:" -msgstr "" -"Renvoie une chaîne représentant la date et l'heure au format ISO 8601 :" - -#: library/datetime.rst:1594 -msgid "``YYYY-MM-DDTHH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" -msgstr "``YYYY-MM-DDTHH:MM:SS.ffffff``, si :attr:`microsecond` ne vaut pas 0" - -#: library/datetime.rst:1595 -msgid "``YYYY-MM-DDTHH:MM:SS``, if :attr:`microsecond` is 0" -msgstr "``YYYY-MM-DDTHH:MM:SS``, si :attr:`microsecond` vaut 0" - -#: library/datetime.rst:1597 -msgid "" -"If :meth:`utcoffset` does not return ``None``, a string is appended, giving " -"the UTC offset:" -msgstr "" -"Si :meth:`utcoffset` ne renvoie pas ``None``, une chaîne est ajoutée, " -"donnant le décalage UTC :" - -#: library/datetime.rst:1600 -msgid "" -"``YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` " -"is not 0" -msgstr "" -"``YYYY-MM-DDTHH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` " -"ne vaut pas 0" - -#: library/datetime.rst:1602 -msgid "" -"``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0" -msgstr "" -"``YYYY-MM-DDTHH:MM:SS+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` vaut 0" - -#: library/datetime.rst:1612 -msgid "" -"The optional argument *sep* (default ``'T'``) is a one-character separator, " -"placed between the date and time portions of the result. For example::" -msgstr "" -"L'argument optionnel *sep* (par défaut ``'T'``) est un séparateur d'un " -"caractère, placé entre les portions du résultat correspondant à la date et à " -"l'heure. Par exemple ::" - -#: library/datetime.rst:2021 -msgid "" -"The optional argument *timespec* specifies the number of additional " -"components of the time to include (the default is ``'auto'``). It can be one " -"of the following:" -msgstr "" -"L'argument optionnel *timespec* spécifie le nombre de composants " -"additionnels de temps à inclure (par défaut ``'auto'``). Il peut valoir " -"l'une des valeurs suivantes :" - -#: library/datetime.rst:2025 -msgid "" -"``'auto'``: Same as ``'seconds'`` if :attr:`microsecond` is 0, same as " -"``'microseconds'`` otherwise." -msgstr "" -"``'auto'`` : Identique à ``'seconds'`` si :attr:`microsecond` vaut 0, à " -"``'microseconds'`` sinon." - -#: library/datetime.rst:2027 -msgid "``'hours'``: Include the :attr:`hour` in the two-digit ``HH`` format." -msgstr "``'hours'`` : Inclut :attr:`hour` au format à deux chiffres ``HH``." - -#: library/datetime.rst:2028 -msgid "" -"``'minutes'``: Include :attr:`hour` and :attr:`minute` in ``HH:MM`` format." -msgstr "" -"``'minutes'`` : Inclut :attr:`hour` et :attr:`minute` au format ``HH:MM``." - -#: library/datetime.rst:2029 -msgid "" -"``'seconds'``: Include :attr:`hour`, :attr:`minute`, and :attr:`second` in " -"``HH:MM:SS`` format." -msgstr "" -"``'seconds'`` : Inclut :attr:`hour`, :attr:`minute` et :attr:`second` au " -"format ``HH:MM:SS``." - -#: library/datetime.rst:2031 -msgid "" -"``'milliseconds'``: Include full time, but truncate fractional second part " -"to milliseconds. ``HH:MM:SS.sss`` format." -msgstr "" -"``'milliseconds'`` : Inclut le temps complet, mais tronque la partie " -"fractionnaire des millisecondes, au format ``HH:MM:SS.sss``." - -#: library/datetime.rst:2033 -msgid "``'microseconds'``: Include full time in ``HH:MM:SS.ffffff`` format." -msgstr "" -"``'microseconds'`` : Inclut le temps complet, au format ``HH:MM:SS.ffffff``." - -#: library/datetime.rst:2037 -msgid "Excluded time components are truncated, not rounded." -msgstr "Les composants de temps exclus sont tronqués et non arrondis." - -#: library/datetime.rst:1644 -msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument::" -msgstr "" -"Une :exc:`ValueError` est levée en cas d'argument *timespec* invalide ::" - -#: library/datetime.rst:2052 -#, fuzzy -msgid "Added the *timespec* parameter." -msgstr "Ajout de l'argument *timespec*." - -#: library/datetime.rst:1660 -#, fuzzy -msgid "" -"For a :class:`.datetime` instance ``d``, ``str(d)`` is equivalent to " -"``d.isoformat(' ')``." -msgstr "" -"Pour une instance *d* de :class:`.datetime`, ``str(d)`` est équivalent à " -"``d.isoformat(' ')``." - -#: library/datetime.rst:1666 -msgid "Return a string representing the date and time::" -msgstr "Renvoie une chaîne représentant la date et l'heure ::" - -#: library/datetime.rst:1672 -msgid "" -"The output string will *not* include time zone information, regardless of " -"whether the input is aware or naive." -msgstr "" -"La chaîne de caractères en sortie n'inclura *pas* d'informations sur le " -"fuseau horaire, que l'entrée soit avisée ou naïve." - -#: library/datetime.rst:1679 -msgid "" -"on platforms where the native C :c:func:`ctime` function " -"(which :func:`time.ctime` invokes, but which :meth:`datetime.ctime` does not " -"invoke) conforms to the C standard." -msgstr "" -"sur les plateformes où la fonction C native :c:func:`ctime` " -"(que :func:`time.ctime` invoque, mais pas :meth:`datetime.ctime`) est " -"conforme au standard C." - -#: library/datetime.rst:1686 -msgid "" -"Return a string representing the date and time, controlled by an explicit " -"format string. See also :ref:`strftime-strptime-behavior` " -"and :meth:`datetime.isoformat`." -msgstr "" -"Renvoie une chaîne représentant la date et l'heure, contrôlée par une chaîne " -"de format explicite. Voir :ref:`strftime-strptime-behavior` " -"et :meth:`datetime.isoformat`." - -#: library/datetime.rst:1693 -msgid "" -"Same as :meth:`.datetime.strftime`. This makes it possible to specify a " -"format string for a :class:`.datetime` object in :ref:`formatted string " -"literals ` and when using :meth:`str.format`. See " -"also :ref:`strftime-strptime-behavior` and :meth:`datetime.isoformat`." -msgstr "" -"Identique à :meth:`.datetime.strftime`. Cela permet de spécifier une chaîne " -"de format pour un objet :class:`.datetime` dans une :ref:`chaîne de " -"formatage littérale ` et en utilisant :meth:`str.format`. " -"Voir :ref:`strftime-strptime-behavior` et :meth:`datetime.isoformat`." - -#: library/datetime.rst:1700 -#, fuzzy -msgid "Examples of usage: :class:`!datetime`" -msgstr "Exemple d'utilisation de la classe :class:`.datetime` :" - -#: library/datetime.rst:1702 -#, fuzzy -msgid "Examples of working with :class:`.datetime` objects:" -msgstr "Exemples d'utilisation de l'objet :class:`.time` ::" - -#: library/datetime.rst:1755 -msgid "" -"The example below defines a :class:`tzinfo` subclass capturing time zone " -"information for Kabul, Afghanistan, which used +4 UTC until 1945 and then " -"+4:30 UTC thereafter::" -msgstr "" -"L'exemple ci-dessous définit une sous-classe :class:`tzinfo` qui regroupe " -"des informations sur les fuseaux horaires pour Kaboul, en Afghanistan, qui a " -"utilisé +4 UTC jusqu'en 1945, puis +4:30 UTC par la suite ::" - -#: library/datetime.rst:1802 -msgid "Usage of ``KabulTz`` from above::" -msgstr "Utilisation de ``KabulTz`` cité plus haut ::" - -#: library/datetime.rst:1829 -#, fuzzy -msgid ":class:`!time` objects" -msgstr "Objets :class:`.time`" - -#: library/datetime.rst:1831 -#, fuzzy -msgid "" -"A :class:`.time` object represents a (local) time of day, independent of any " -"particular day, and subject to adjustment via a :class:`tzinfo` object." -msgstr "" -"Un objet :class:`time` représente une heure (locale) du jour, indépendante " -"de tout jour particulier, et sujette à des ajustements par un " -"objet :class:`tzinfo`." - -#: library/datetime.rst:1836 -msgid "" -"All arguments are optional. *tzinfo* may be ``None``, or an instance of " -"a :class:`tzinfo` subclass. The remaining arguments must be integers in the " -"following ranges:" -msgstr "" -"Tous les arguments sont optionnels. *tzinfo* peut être ``None`` ou une " -"instance d'une sous-classe :class:`tzinfo`. Les autres arguments doivent " -"être des nombres entiers, dans les intervalles suivants :" - -#: library/datetime.rst:1846 -#, fuzzy -msgid "" -"If an argument outside those ranges is given, :exc:`ValueError` is raised. " -"All default to 0 except *tzinfo*, which defaults to ``None``." -msgstr "" -"Si un argument est fourni en dehors de ces bornes, une :exc:`ValueError` est " -"levée. Ils valent tous ``0`` par défaut, à l'exception de *tzinfo* qui " -"vaut :const:`None`." - -#: library/datetime.rst:1855 -msgid "The earliest representable :class:`.time`, ``time(0, 0, 0, 0)``." -msgstr "" -"Le plus petit objet :class:`.time` représentable, ``time(0, 0, 0, 0)``." - -#: library/datetime.rst:1860 -msgid "The latest representable :class:`.time`, ``time(23, 59, 59, 999999)``." -msgstr "" -"Le plus grand objet :class:`.time` représentable, ``time(23, 59, 59, " -"999999)``." - -#: library/datetime.rst:1865 -msgid "" -"The smallest possible difference between non-equal :class:`.time` objects, " -"``timedelta(microseconds=1)``, although note that arithmetic " -"on :class:`.time` objects is not supported." -msgstr "" -"La plus petite différence possible entre deux objets :class:`.time` non-" -"égaux, ``timedelta(microseconds=1)``, notez cependant que les " -"objets :class:`.time` n'implémentent pas d'opérations arithmétiques." - -#: library/datetime.rst:1894 -msgid "" -"The object passed as the tzinfo argument to the :class:`.time` constructor, " -"or ``None`` if none was passed." -msgstr "" -"L'objet passé comme argument *tzinfo* au constructeur de :class:`.time`, ou " -"``None`` si aucune valeur n'a été passée." - -#: library/datetime.rst:1909 -msgid "" -":class:`.time` objects support equality and order comparisons, where ``a`` " -"is considered less than ``b`` when ``a`` precedes ``b`` in time." -msgstr "" - -#: library/datetime.rst:1912 -msgid "" -"Naive and aware :class:`!time` objects are never equal. Order comparison " -"between naive and aware :class:`!time` objects raises :exc:`TypeError`." -msgstr "" - -#: library/datetime.rst:1916 -#, fuzzy -msgid "" -"If both comparands are aware, and have the same :attr:`~.time.tzinfo` " -"attribute, the :attr:`!tzinfo` and :attr:`!fold` attributes are ignored and " -"the base times are compared. If both comparands are aware and have " -"different :attr:`!tzinfo` attributes, the comparands are first adjusted by " -"subtracting their UTC offsets (obtained from ``self.utcoffset()``)." -msgstr "" -"Si les deux opérandes sont avisés, et ont le même " -"attribut :attr:`~.datetime.tzinfo`, l'attribut " -"commun :attr:`~.datetime.tzinfo` est ignoré et les *datetimes* de base sont " -"comparés. Si les deux opérandes sont avisés et ont des " -"attributs :attr:`~.datetime.tzinfo` différents, les opérandes sont " -"premièrement ajustés en soustrayant leurs décalages UTC (obtenus depuis " -"``self.utcoffset()``)." - -#: library/datetime.rst:1922 -#, fuzzy -msgid "" -"Equality comparisons between aware and naive :class:`.time` instances don't " -"raise :exc:`TypeError`." -msgstr "" -"Les comparaisons d'égalité entre des instances :class:`.datetime` naïves et " -"avisées ne lèvent pas d'exception :exc:`TypeError`." - -#: library/datetime.rst:1926 -msgid "" -"In Boolean contexts, a :class:`.time` object is always considered to be true." -msgstr "" -"Dans un contexte booléen, un objet :class:`.time` est toujours considéré " -"comme vrai." - -#: library/datetime.rst:1928 -#, fuzzy -msgid "" -"Before Python 3.5, a :class:`.time` object was considered to be false if it " -"represented midnight in UTC. This behavior was considered obscure and error-" -"prone and has been removed in Python 3.5. See :issue:`13936` for more " -"information." -msgstr "" -"Avant Python 3.5, un objet :class:`.time` était considéré comme faux s'il " -"représentait minuit en UTC. Ce comportement était considéré comme obscur et " -"propice aux erreurs, il a été supprimé en Python 3.5. Voir :issue:`13936` " -"pour les détails complets." - -#: library/datetime.rst:1935 -#, fuzzy -msgid "Other constructors:" -msgstr "Autre constructeur :" - -#: library/datetime.rst:1939 -msgid "" -"Return a :class:`.time` corresponding to a *time_string* in any valid ISO " -"8601 format, with the following exceptions:" -msgstr "" -"Renvoie une :class:`.time` correspondant à *time_string* dans un format ISO " -"8601 valide, avec les exceptions suivantes :" - -#: library/datetime.rst:1943 -msgid "" -"The leading ``T``, normally required in cases where there may be ambiguity " -"between a date and a time, is not required." -msgstr "" -"Le ``T`` initial, normalement requis dans les cas où il peut y avoir une " -"ambiguïté entre une date et une heure, n'est pas nécessaire." - -#: library/datetime.rst:1945 -msgid "" -"Fractional seconds may have any number of digits (anything beyond 6 will be " -"truncated)." -msgstr "" -"Les fractions de secondes peuvent avoir un nombre quelconque de décimales " -"(tout ce qui dépasse 6 décimales sera tronqué)." - -#: library/datetime.rst:1949 -#, fuzzy -msgid "Examples:" -msgstr "Exemples ::" - -#: library/datetime.rst:1973 -#, fuzzy -msgid "" -"Previously, this method only supported formats that could be emitted " -"by :meth:`time.isoformat`." -msgstr "" -"Auparavant, cette méthode ne prenait en charge que les formats émis " -"par :meth:`time.isoformat()`." - -#: library/datetime.rst:1980 -#, fuzzy -msgid "" -"Return a :class:`.time` corresponding to *date_string*, parsed according to " -"*format*." -msgstr "" -"Renvoie une classe :class:`.datetime` correspondant à *date_string*, " -"analysée selon *format*." - -#: library/datetime.rst:1983 -#, fuzzy -msgid "" -"If *format* does not contain microseconds or timezone information, this is " -"equivalent to::" -msgstr "" -"Si *format* ne contient pas de microsecondes ou d'informations sur le fuseau " -"horaire, cela équivaut à ::" - -#: library/datetime.rst:1987 -#, fuzzy -msgid "" -":exc:`ValueError` is raised if the *date_string* and *format* cannot be " -"parsed by :func:`time.strptime` or if it returns a value which is not a time " -"tuple. See also :ref:`strftime-strptime-behavior` " -"and :meth:`time.fromisoformat`." -msgstr "" -"Une :exc:`ValueError` est levée si *date_string* et *format* ne peuvent être " -"analysés par :func:`time.strptime` ou si elle renvoie une valeur qui n'est " -"pas un *n*-uplet de temps. Voir :ref:`strftime-strptime-behavior` " -"et :meth:`datetime.fromisoformat`." - -#: library/datetime.rst:2000 -#, fuzzy -msgid "" -"Return a new :class:`.time` with the same values, but with specified " -"parameters updated. Note that ``tzinfo=None`` can be specified to create a " -"naive :class:`!time` from an aware :class:`!time`, without conversion of the " -"time data." -msgstr "" -"Renvoie un objet :class:`.time` avec la même valeur, à l'exception des " -"attributs dont les nouvelles valeurs sont spécifiées par les arguments " -"nommés. Notez que ``tzinfo=None`` peut être spécifié pour créer une " -"instance :class:`.time` naïve à partir d'une instance :class:`.time` avisée, " -"sans conversion des données de temps." - -#: library/datetime.rst:2005 -msgid "" -":class:`.time` objects are also supported by generic " -"function :func:`copy.replace`." -msgstr "" - -#: library/datetime.rst:2014 -msgid "Return a string representing the time in ISO 8601 format, one of:" -msgstr "Renvoie une chaîne représentant la date au format ISO 8601 :" - -#: library/datetime.rst:2016 -msgid "``HH:MM:SS.ffffff``, if :attr:`microsecond` is not 0" -msgstr "``HH:MM:SS.ffffff``, si :attr:`microsecond` ne vaut pas 0" - -#: library/datetime.rst:2017 -msgid "``HH:MM:SS``, if :attr:`microsecond` is 0" -msgstr "``HH:MM:SS``, si :attr:`microsecond` vaut 0" - -#: library/datetime.rst:2018 -msgid "" -"``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, if :meth:`utcoffset` does not " -"return ``None``" -msgstr "" -"``HH:MM:SS.ffffff+HH:MM[:SS[.ffffff]]``, si :meth:`utcoffset` ne renvoie pas " -"``None``" - -#: library/datetime.rst:2019 -msgid "" -"``HH:MM:SS+HH:MM[:SS[.ffffff]]``, if :attr:`microsecond` is 0 " -"and :meth:`utcoffset` does not return ``None``" -msgstr "" -"``HH:MM:SS+HH:MM[:SS[.ffffff]]``, si :attr:`microsecond` vaut 0 " -"et :meth:`utcoffset` ne renvoie pas ``None``" - -#: library/datetime.rst:2039 -msgid ":exc:`ValueError` will be raised on an invalid *timespec* argument." -msgstr "" -"Une :exc:`ValueError` sera levée en cas d'argument *timespec* invalide." - -#: library/datetime.rst:2058 -#, fuzzy -msgid "For a time ``t``, ``str(t)`` is equivalent to ``t.isoformat()``." -msgstr "Pour un temps *t*, ``str(t)`` est équivalent à ``t.isoformat()``." - -#: library/datetime.rst:2063 -msgid "" -"Return a string representing the time, controlled by an explicit format " -"string. See also :ref:`strftime-strptime-behavior` " -"and :meth:`time.isoformat`." -msgstr "" -"Renvoie une chaîne représentant l'heure, contrôlée par une chaîne de " -"formatage explicite. Voir :ref:`strftime-strptime-behavior` " -"et :meth:`time.isoformat`." - -#: library/datetime.rst:2069 -msgid "" -"Same as :meth:`.time.strftime`. This makes it possible to specify a format " -"string for a :class:`.time` object in :ref:`formatted string literals ` and when using :meth:`str.format`. See also :ref:`strftime-" -"strptime-behavior` and :meth:`time.isoformat`." -msgstr "" -"Identique à :meth:`.time.strftime`. Cela permet de spécifier une chaîne de " -"formatage pour un objet :class:`.time` dans une :ref:`chaîne de formatage " -"littérale ` et à l'utilisation de :meth:`str.format`. " -"Voir :ref:`strftime-strptime-behavior` et :meth:`time.isoformat`." - -#: library/datetime.rst:2077 -msgid "" -"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " -"``self.tzinfo.utcoffset(None)``, and raises an exception if the latter " -"doesn't return ``None`` or a :class:`timedelta` object with magnitude less " -"than one day." -msgstr "" -"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie " -"``self.tzinfo.utcoffset(None)``, et lève une exception si l'expression " -"précédente ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une " -"magnitude inférieure à un jour." - -#: library/datetime.rst:2087 -msgid "" -"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " -"``self.tzinfo.dst(None)``, and raises an exception if the latter doesn't " -"return ``None``, or a :class:`timedelta` object with magnitude less than one " -"day." -msgstr "" -"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie " -"``self.tzinfo.dst(None)``, et lève une exception si l'expression précédente " -"ne renvoie pas ``None`` ou un objet :class:`timedelta` d'une magnitude " -"inférieure à un jour." - -#: library/datetime.rst:2097 -msgid "" -"If :attr:`.tzinfo` is ``None``, returns ``None``, else returns " -"``self.tzinfo.tzname(None)``, or raises an exception if the latter doesn't " -"return ``None`` or a string object." -msgstr "" -"Si :attr:`.tzinfo` est ``None``, renvoie ``None``, sinon renvoie " -"``self.tzinfo.tzname(None)``, et lève une exception si l'expression " -"précédente ne renvoie pas ``None`` ou une chaîne de caractères." - -#: library/datetime.rst:2103 -#, fuzzy -msgid "Examples of usage: :class:`!time`" -msgstr "Exemples d'utilisation de :class:`.time`" - -#: library/datetime.rst:2105 -msgid "Examples of working with a :class:`.time` object::" -msgstr "Exemples d'utilisation de l'objet :class:`.time` ::" - -#: library/datetime.rst:2136 -#, fuzzy -msgid ":class:`!tzinfo` objects" -msgstr "Objets :class:`tzinfo`" - -#: library/datetime.rst:2140 -#, fuzzy -msgid "" -"This is an :term:`abstract base class`, meaning that this class should not " -"be instantiated directly. Define a subclass of :class:`tzinfo` to capture " -"information about a particular time zone." -msgstr "" -"Il s'agit d'une classe abstraite, ce qui signifie que cette classe ne " -"doit pas être instanciée directement. Définissez une sous-classe " -"de :class:`tzinfo` pour capturer des informations sur un fuseau horaire " -"particulier." - -#: library/datetime.rst:2144 -#, fuzzy -msgid "" -"An instance of (a concrete subclass of) :class:`tzinfo` can be passed to the " -"constructors for :class:`.datetime` and :class:`.time` objects. The latter " -"objects view their attributes as being in local time, and the :class:`!" -"tzinfo` object supports methods revealing offset of local time from UTC, the " -"name of the time zone, and DST offset, all relative to a date or time object " -"passed to them." -msgstr "" -"Une instance (d'une sous-classe concrète) de :class:`tzinfo` peut être " -"passée aux constructeurs des objets :class:`.datetime` et :class:`.time`. " -"Les objets en question voient leurs attributs comme étant en temps local, et " -"l'objet :class:`.tzinfo` contient des méthodes pour obtenir le décalage du " -"temps local par rapport à UTC, le nom du fuseau horaire, le décalage d'heure " -"d'été, tous relatifs à un objet de date ou d'heure qui leur est passé." - -#: library/datetime.rst:2150 -#, fuzzy -msgid "" -"You need to derive a concrete subclass, and (at least) supply " -"implementations of the standard :class:`tzinfo` methods needed by " -"the :class:`.datetime` methods you use. The :mod:`!datetime` module " -"provides :class:`timezone`, a simple concrete subclass of :class:`!tzinfo` " -"which can represent time zones with fixed offset from UTC such as UTC itself " -"or North American EST and EDT." -msgstr "" -"Vous devez en dériver une sous-classe concrète et (au minimum) fournir des " -"implémentations aux méthodes standard :class:`tzinfo` requises par les " -"méthodes de :class:`.datetime` que vous utilisez. Le module :mod:`datetime` " -"fournit une simple sous-classe concrète " -"de :class:`tzinfo`, :class:`timezone`, qui peut représenter des fuseaux " -"horaires avec des décalages fixes par rapport à UTC, tels qu'UTC lui-même ou " -"les fuseaux nord-américains EST et EDT." - -#: library/datetime.rst:2157 -#, fuzzy -msgid "" -"Special requirement for pickling: A :class:`tzinfo` subclass must have " -"an :meth:`~object.__init__` method that can be called with no arguments, " -"otherwise it can be pickled but possibly not unpickled again. This is a " -"technical requirement that may be relaxed in the future." -msgstr "" -"Prérequis spécifique à la sérialisation : Une sous-classe :class:`tzinfo` " -"doit avoir une méthode :meth:`__init__` qui peut être appelée sans " -"arguments, sans quoi un objet sérialisé ne pourrait pas toujours être " -"désérialisé. C'est un prérequis technique qui pourrait être assoupli dans " -"le futur." - -#: library/datetime.rst:2163 -#, fuzzy -msgid "" -"A concrete subclass of :class:`tzinfo` may need to implement the following " -"methods. Exactly which methods are needed depends on the uses made of " -"aware :mod:`!datetime` objects. If in doubt, simply implement all of them." -msgstr "" -"Une sous-classe concrète de :class:`tzinfo` peut devoir implémenter les " -"méthodes suivantes. Les méthodes réellement nécessaires dépendent de " -"l'utilisation qui est faite des objets :mod:`datetime` avisés. Dans le " -"doute, implémentez-les toutes." - -#: library/datetime.rst:2170 -msgid "" -"Return offset of local time from UTC, as a :class:`timedelta` object that is " -"positive east of UTC. If local time is west of UTC, this should be negative." -msgstr "" -"Renvoie le décalage de l'heure locale par rapport à UTC, sous la forme d'un " -"objet :class:`timedelta` qui est positif à l'est de UTC. Si l'heure locale " -"est à l'ouest de UTC, il doit être négatif." - -#: library/datetime.rst:2173 -msgid "" -"This represents the *total* offset from UTC; for example, if " -"a :class:`tzinfo` object represents both time zone and DST " -"adjustments, :meth:`utcoffset` should return their sum. If the UTC offset " -"isn't known, return ``None``. Else the value returned must be " -"a :class:`timedelta` object strictly between ``-timedelta(hours=24)`` and " -"``timedelta(hours=24)`` (the magnitude of the offset must be less than one " -"day). Most implementations of :meth:`utcoffset` will probably look like one " -"of these two::" -msgstr "" -"Cela représente le décalage *total* par rapport à UTC ; par exemple, si un " -"objet :class:`tzinfo` représente à la fois un fuseau horaire et son " -"ajustement à l'heure d'été, :meth:`utcoffset` devrait renvoyer leur somme. " -"Si le décalage UTC n'est pas connu, elle renvoie ``None``. Sinon, la valeur " -"renvoyée doit être un objet :class:`timedelta` compris strictement entre ``-" -"timedelta(hours=24)`` et ``timedelta(hours=24)`` (l'amplitude du décalage " -"doit être inférieure à un jour). La plupart des implémentations " -"de :meth:`utcoffset` ressembleront probablement à l'une des deux suivantes ::" - -#: library/datetime.rst:2184 -msgid "" -"If :meth:`utcoffset` does not return ``None``, :meth:`dst` should not return " -"``None`` either." -msgstr "" -"Si :meth:`utcoffset` ne renvoie pas ``None``, :meth:`dst` ne doit pas non " -"plus renvoyer ``None``." - -#: library/datetime.rst:2187 -msgid "" -"The default implementation of :meth:`utcoffset` " -"raises :exc:`NotImplementedError`." -msgstr "" -"L'implémentation par défaut de :meth:`utcoffset` lève " -"une :exc:`NotImplementedError`." - -#: library/datetime.rst:2196 -msgid "" -"Return the daylight saving time (DST) adjustment, as a :class:`timedelta` " -"object or ``None`` if DST information isn't known." -msgstr "" -"Renvoie le réglage de l'heure d'été (DST), sous la forme d'un " -"objet :class:`timedelta` ou ``None`` si l'information DST n'est pas connue." - -#: library/datetime.rst:2200 -#, fuzzy -msgid "" -"Return ``timedelta(0)`` if DST is not in effect. If DST is in effect, return " -"the offset as a :class:`timedelta` object (see :meth:`utcoffset` for " -"details). Note that DST offset, if applicable, has already been added to the " -"UTC offset returned by :meth:`utcoffset`, so there's no need to " -"consult :meth:`dst` unless you're interested in obtaining DST info " -"separately. For example, :meth:`datetime.timetuple` calls " -"its :attr:`~.datetime.tzinfo` attribute's :meth:`dst` method to determine " -"how the :attr:`~time.struct_time.tm_isdst` flag should be set, " -"and :meth:`tzinfo.fromutc` calls :meth:`dst` to account for DST changes when " -"crossing time zones." -msgstr "" -"Renvoie ``timedelta(0)`` si l'heure d'été n'est pas effective. Si elle est " -"effective, renvoie un décalage sous forme d'un objet :class:`timedelta` " -"(voir :meth:`utcoffset` pour les détails). Notez que ce décalage, si " -"applicable, est déjà compris dans le décalage UTC renvoyé " -"par :meth:`utcoffset`, il n'est donc pas nécessaire de faire appel " -"à :meth:`dst` à moins que vous ne souhaitiez obtenir les informations " -"séparément. Par exemple, :meth:`datetime.timetuple` appelle la " -"méthode :meth:`dst` de son attribut :attr:`~.datetime.tzinfo` pour " -"déterminer si l'option :attr:`tm_isdst` doit être activée, " -"et :meth:`tzinfo.fromutc` fait appel à :meth:`dst` pour tenir compte des " -"heures d'été quand elle traverse des fuseaux horaires." - -#: library/datetime.rst:2210 -msgid "" -"An instance *tz* of a :class:`tzinfo` subclass that models both standard and " -"daylight times must be consistent in this sense:" -msgstr "" -"Une instance *tz* d'une sous-classe :class:`tzinfo` convenant à la fois pour " -"une heure standard et une heure d'été doit être cohérente :" - -#: library/datetime.rst:2213 -msgid "``tz.utcoffset(dt) - tz.dst(dt)``" -msgstr "``tz.utcoffset(dt) - tz.dst(dt)``" - -#: library/datetime.rst:2215 -#, fuzzy -msgid "" -"must return the same result for every :class:`.datetime` *dt* with " -"``dt.tzinfo == tz``. For sane :class:`!tzinfo` subclasses, this expression " -"yields the time zone's \"standard offset\", which should not depend on the " -"date or the time, but only on geographic location. The implementation " -"of :meth:`datetime.astimezone` relies on this, but cannot detect violations; " -"it's the programmer's responsibility to ensure it. If a :class:`!tzinfo` " -"subclass cannot guarantee this, it may be able to override the default " -"implementation of :meth:`tzinfo.fromutc` to work correctly " -"with :meth:`~.datetime.astimezone` regardless." -msgstr "" -"doit renvoyer le même résultat pour tout objet :class:`.datetime` *dt* avec " -"``dt.tzinfo == tz`` Pour les sous-classes saines de :class:`tzinfo`, cette " -"expression calcule le « décalage standard » du fuseau horaire, qui ne doit " -"pas dépendre de la date ou de l'heure, mais seulement de la position " -"géographique. L'implémentation de :meth:`datetime.astimezone` se base là-" -"dessus, mais ne peut pas détecter les violations ; il est de la " -"responsabilité du programmeur de l'assurer. Si une sous-" -"classe :class:`tzinfo` ne le garantit pas, il doit être possible de " -"redéfinir l'implémentation par défaut de :meth:`tzinfo.fromutc` pour tout de " -"même fonctionner correctement avec :meth:`astimezone`." - -#: library/datetime.rst:2224 -msgid "" -"Most implementations of :meth:`dst` will probably look like one of these " -"two::" -msgstr "" -"La plupart des implémentations de :meth:`dst` ressembleront probablement à " -"l'une des deux suivantes ::" - -#: library/datetime.rst:2232 -msgid "or::" -msgstr "ou ::" - -#: library/datetime.rst:2246 -msgid "" -"The default implementation of :meth:`dst` raises :exc:`NotImplementedError`." -msgstr "" -"L'implémentation par défaut de :meth:`dst` lève " -"une :exc:`NotImplementedError`." - -#: library/datetime.rst:2254 -#, fuzzy -msgid "" -"Return the time zone name corresponding to the :class:`.datetime` object " -"*dt*, as a string. Nothing about string names is defined by the :mod:`!" -"datetime` module, and there's no requirement that it mean anything in " -"particular. For example, ``\"GMT\"``, ``\"UTC\"``, ``\"-500\"``, " -"``\"-5:00\"``, ``\"EDT\"``, ``\"US/Eastern\"``, ``\"America/New York\"`` are " -"all valid replies. Return ``None`` if a string name isn't known. Note that " -"this is a method rather than a fixed string primarily because " -"some :class:`tzinfo` subclasses will wish to return different names " -"depending on the specific value of *dt* passed, especially if the :class:`!" -"tzinfo` class is accounting for daylight time." -msgstr "" -"Renvoie le nom du fuseau horaire correspondant à l'objet :class:`.datetime` " -"*dt*, sous forme d'une chaîne. Rien n'est défini sur les noms par le " -"module :mod:`datetime`, et il n'est pas nécessaire que ces noms signifient " -"quelque chose en particulier. Par exemple, « *GMT* », « *UTC* », " -"« *-500* », « *-5:00* », « *EDT* », « *US/Eastern* » et « *America/New " -"York* » sont toutes des valeurs de retour valides. Renvoie ``None`` si un " -"nom est inconnu. Notez qu'il s'agit d'une méthode et non d'une chaîne fixée " -"en amont, parce que les sous-classes de :class:`tzinfo` peuvent souhaiter " -"renvoyer des noms différents en fonction de valeurs de *dt* spécifiques, en " -"particulier si la classe :class:`tzinfo` tient compte de l'heure d'été." - -#: library/datetime.rst:2264 -msgid "" -"The default implementation of :meth:`tzname` " -"raises :exc:`NotImplementedError`." -msgstr "" -"L'implémentation par défaut de :meth:`tzname` lève " -"une :exc:`NotImplementedError`." - -#: library/datetime.rst:2267 -#, fuzzy -msgid "" -"These methods are called by a :class:`.datetime` or :class:`.time` object, " -"in response to their methods of the same names. A :class:`!datetime` object " -"passes itself as the argument, and a :class:`!time` object passes ``None`` " -"as the argument. A :class:`tzinfo` subclass's methods should therefore be " -"prepared to accept a *dt* argument of ``None``, or of class :class:`!" -"datetime`." -msgstr "" -"Ces méthodes sont appelées par les objets :class:`.datetime` " -"et :class:`.time`, en réponse à leurs méthodes de mêmes noms. Un " -"objet :class:`.datetime` se passe lui-même en tant qu'argument, et un " -"objet :class:`.time` passe ``None``. Les méthodes des sous-" -"classes :class:`tzinfo` doivent alors être prêtes à recevoir un argument " -"``None`` pour *dt*, ou une instance de :class:`.datetime`." - -#: library/datetime.rst:2273 -msgid "" -"When ``None`` is passed, it's up to the class designer to decide the best " -"response. For example, returning ``None`` is appropriate if the class wishes " -"to say that time objects don't participate in the :class:`tzinfo` protocols. " -"It may be more useful for ``utcoffset(None)`` to return the standard UTC " -"offset, as there is no other convention for discovering the standard offset." -msgstr "" -"Quand ``None`` est passé, il est de la responsabilité du *designer* de la " -"classe de choisir la meilleure réponse. Par exemple, renvoyer ``None`` est " -"approprié si la classe souhaite signaler que les objets de temps ne " -"participent pas au protocole :class:`tzinfo`. Il peut être plus utile pour " -"``utcoffset(None)`` de renvoyer le décalage UTC standard, comme il n'existe " -"aucune autre convention pour obtenir ce décalage." - -#: library/datetime.rst:2279 -#, fuzzy -msgid "" -"When a :class:`.datetime` object is passed in response to a :class:`!" -"datetime` method, ``dt.tzinfo`` is the same object as " -"*self*. :class:`tzinfo` methods can rely on this, unless user code " -"calls :class:`!tzinfo` methods directly. The intent is that the :class:`!" -"tzinfo` methods interpret *dt* as being in local time, and not need worry " -"about objects in other time zones." -msgstr "" -"Quand un objet :class:`.datetime` est passé en réponse à une méthode " -"de :class:`.datetime`, ``dt.tzinfo`` est le même objet que *self*. Les " -"méthodes de :class:`tzinfo` peuvent se baser là-dessus, à moins que le code " -"utilisateur appelle directement des méthodes de :class:`tzinfo`. L'intention " -"est que les méthodes de :class:`tzinfo` interprètent *dt* comme étant le " -"temps local, et n'aient pas à se soucier des objets dans d'autres fuseaux " -"horaires." - -#: library/datetime.rst:2285 -msgid "" -"There is one more :class:`tzinfo` method that a subclass may wish to " -"override:" -msgstr "" -"Il y a une dernière méthode de :class:`tzinfo` que les sous-classes peuvent " -"vouloir redéfinir :" - -#: library/datetime.rst:2290 -#, fuzzy -msgid "" -"This is called from the default :meth:`datetime.astimezone` implementation. " -"When called from that, ``dt.tzinfo`` is *self*, and *dt*'s date and time " -"data are to be viewed as expressing a UTC time. The purpose " -"of :meth:`fromutc` is to adjust the date and time data, returning an " -"equivalent datetime in *self*'s local time." -msgstr "" -"Elle est appelée par l'implémentation par défaut " -"de :class:`datetime.astimezone()`. Lors d'un appel depuis cette méthode, " -"``dt.tzinfo`` vaut *self* et les données de date et d'heure de *dt* sont " -"vues comme exprimant un horodatage UTC. Le rôle de :meth:`fromutc` est " -"d'ajuster les données de date et d'heure, renvoyant un objet *datetime* " -"équivalent à *self*, dans le temps local." - -#: library/datetime.rst:2296 -#, fuzzy -msgid "" -"Most :class:`tzinfo` subclasses should be able to inherit the " -"default :meth:`fromutc` implementation without problems. It's strong enough " -"to handle fixed-offset time zones, and time zones accounting for both " -"standard and daylight time, and the latter even if the DST transition times " -"differ in different years. An example of a time zone the " -"default :meth:`fromutc` implementation may not handle correctly in all cases " -"is one where the standard offset (from UTC) depends on the specific date and " -"time passed, which can happen for political reasons. The default " -"implementations of :meth:`~.datetime.astimezone` and :meth:`fromutc` may not " -"produce the result you want if the result is one of the hours straddling the " -"moment the standard offset changes." -msgstr "" -"La plupart des sous-classes :class:`tzinfo` doivent être en mesure d'hériter " -"sans problème de l'implémentation par défaut de :meth:`fromutc`. Elle est " -"suffisamment robuste pour gérer les fuseaux horaires à décalage fixe, et les " -"fuseaux représentant à la fois des heures standards et d'été, et ce même si " -"le décalage de l'heure d'été est différent suivant les années. Un exemple de " -"fuseau horaire qui ne serait pas géré correctement dans tous les cas par " -"l'implémentation par défaut de :meth:`fromutc` en est un où le décalage " -"standard (par rapport à UTC) dépend de valeurs spécifiques de date et " -"d'heure passées, ce qui peut arriver pour des raisons politiques. Les " -"implémentations par défaut de :meth:`astimezone` et :meth:`fromutc` peuvent " -"ne pas produire les résultats attendus si le résultat est l'une des heures " -"affectées par le changement d'heure." - -#: library/datetime.rst:2307 -msgid "" -"Skipping code for error cases, the default :meth:`fromutc` implementation " -"acts like::" -msgstr "" -"En omettant le code des cas d'erreurs, l'implémentation par défaut " -"de :meth:`fromutc` se comporte comme suit ::" - -#: library/datetime.rst:2327 -msgid "" -"In the following :download:`tzinfo_examples.py <../includes/" -"tzinfo_examples.py>` file there are some examples of :class:`tzinfo` classes:" -msgstr "" -"Dans le fichier :download:`tzinfo_examples.py <../includes/" -"tzinfo_examples.py>` il y a des exemples de :class:`tzinfo` classes :" - -#: library/datetime.rst:2333 -msgid "" -"Note that there are unavoidable subtleties twice per year in " -"a :class:`tzinfo` subclass accounting for both standard and daylight time, " -"at the DST transition points. For concreteness, consider US Eastern (UTC " -"-0500), where EDT begins the minute after 1:59 (EST) on the second Sunday in " -"March, and ends the minute after 1:59 (EDT) on the first Sunday in November::" -msgstr "" -"Notez que, deux fois par an, on rencontre des subtilités inévitables dans " -"les sous-classes de :class:`tzinfo` représentant à la fois des heures " -"standard et d'été, au passage de l'une à l'autre. Concrètement, considérez " -"le fuseau de l'est des États-Unis (UTC -0500), où EDT (heure d'été) débute à " -"la minute qui suit 1:59 (EST) le second dimanche de mars, et se termine à la " -"minute qui suit 1:59 (EDT) le premier dimanche de novembre ::" - -#: library/datetime.rst:2347 -msgid "" -"When DST starts (the \"start\" line), the local wall clock leaps from 1:59 " -"to 3:00. A wall time of the form 2:MM doesn't really make sense on that day, " -"so ``astimezone(Eastern)`` won't deliver a result with ``hour == 2`` on the " -"day DST begins. For example, at the Spring forward transition of 2016, we " -"get::" -msgstr "" -"Quand l'heure d'été débute (la ligne « *start* »), l'horloge locale passe de " -"1:59 à 3:00. Une heure de la forme 2:MM n'a pas vraiment de sens ce jour là, " -"donc ``astimezone(Eastern)`` ne fournira pas de résultat avec ``hour == 2`` " -"pour le jour où débute l'heure d'été. Par exemple, lors du changement " -"d'heure du printemps 2016, nous obtenons ::" - -#: library/datetime.rst:2366 -#, fuzzy -msgid "" -"When DST ends (the \"end\" line), there's a potentially worse problem: " -"there's an hour that can't be spelled unambiguously in local wall time: the " -"last hour of daylight time. In Eastern, that's times of the form 5:MM UTC on " -"the day daylight time ends. The local wall clock leaps from 1:59 (daylight " -"time) back to 1:00 (standard time) again. Local times of the form 1:MM are " -"ambiguous. :meth:`~.datetime.astimezone` mimics the local clock's behavior " -"by mapping two adjacent UTC hours into the same local hour then. In the " -"Eastern example, UTC times of the form 5:MM and 6:MM both map to 1:MM when " -"converted to Eastern, but earlier times have the :attr:`~.datetime.fold` " -"attribute set to 0 and the later times have it set to 1. For example, at the " -"Fall back transition of 2016, we get::" -msgstr "" -"Quand l'heure d'été se termine (la ligne « *end* »), il y a potentiellement " -"un problème pire que cela : il y a une heure qui ne peut pas être exprimée " -"sans ambiguïté en temps local : la dernière heure de l'heure d'été. Dans " -"l'est des États-Unis, l'heure d'été se termine sur les heures de la forme " -"5:MM UTC. L'horloge locale passe de 1:59 (heure d'été) à 1:00 (heure " -"d'hiver) à nouveau. Les heures locales de la forme 1:MM sont " -"ambiguës. :meth:`astimezone` imite le comportement des horloges locales en " -"associant deux heures UTC adjacentes à la même heure locale. Dans notre " -"exemple, les horodatages UTC de la forme 5:MM et 6:MM sont tous deux " -"associés à 1:MM quand ils sont convertis vers ce fuseau, mais les " -"horodatages les plus anciens ont l'attribut :attr:`~datetime.fold` à 0 et " -"les plus récents l'ont à 1. Par exemple, lors du changement d'heure de " -"l'automne 2016, nous obtenons ::" - -#: library/datetime.rst:2390 -#, fuzzy -msgid "" -"Note that the :class:`.datetime` instances that differ only by the value of " -"the :attr:`~.datetime.fold` attribute are considered equal in comparisons." -msgstr "" -"Notez que deux instances :class:`datetime` qui ne diffèrent que par la " -"valeur de leur attribut :attr:`~datetime.fold` sont considérées égales dans " -"les comparaisons." - -#: library/datetime.rst:2393 -#, fuzzy -msgid "" -"Applications that can't bear wall-time ambiguities should explicitly check " -"the value of the :attr:`~.datetime.fold` attribute or avoid using " -"hybrid :class:`tzinfo` subclasses; there are no ambiguities when " -"using :class:`timezone`, or any other fixed-offset :class:`!tzinfo` subclass " -"(such as a class representing only EST (fixed offset -5 hours), or only EDT " -"(fixed offset -4 hours))." -msgstr "" -"Les applications qui ne peuvent pas gérer ces ambiguïtés doivent vérifier " -"explicitement la valeur de l'attribut :attr:`~datetime.fold` ou éviter " -"d'utiliser des sous-classes :class:`tzinfo` hybrides ; il n'y a aucune " -"ambiguïté lors de l'utilisation de la classe :class:`timezone`, ou toute " -"autre sous-classe de :class:`tzinfo` à décalage fixe (comme une classe " -"représentant uniquement le fuseau EST (de décalage fixe *-5h*) ou uniquement " -"EDT (*-4h*))." - -#: library/datetime.rst:2401 -msgid ":mod:`zoneinfo`" -msgstr ":mod:`zoneinfo`" - -#: library/datetime.rst:2402 -#, fuzzy -msgid "" -"The :mod:`!datetime` module has a basic :class:`timezone` class (for " -"handling arbitrary fixed offsets from UTC) and its :attr:`timezone.utc` " -"attribute (a UTC :class:`!timezone` instance)." -msgstr "" -"Le module :mod:`datetime` contient une classe élémentaire :class:`timezone` " -"pour gérer des décalages fixes par rapport à UTC et :attr:`timezone.utc` " -"comme instance du fuseau horaire UTC." - -#: library/datetime.rst:2406 -#, fuzzy -msgid "" -"``zoneinfo`` brings the *IANA time zone database* (also known as the Olson " -"database) to Python, and its usage is recommended." -msgstr "" -"``zoneinfo`` apporte à Python la *base de données de fuseaux horaires IANA* " -"(aussi appelée base de données Olson), et son utilisation est recommandée." - -#: library/datetime.rst:2409 -#, fuzzy -msgid "`IANA time zone database `_" -msgstr "" -"`Base de données des fuseaux horaires de l'IANA `_" - -#: library/datetime.rst:2410 -msgid "" -"The Time Zone Database (often called tz, tzdata or zoneinfo) contains code " -"and data that represent the history of local time for many representative " -"locations around the globe. It is updated periodically to reflect changes " -"made by political bodies to time zone boundaries, UTC offsets, and daylight-" -"saving rules." -msgstr "" -"La *Time Zone Database* (souvent appelée *tz*, *tzdata* ou *zoneinfo*) " -"contient les codes et les données représentant l'historique du temps local " -"pour un grand nombre d'emplacements représentatifs autour du globe. Elle est " -"mise à jour périodiquement, pour refléter les changements opérés par des " -"politiques sur les bornes du fuseau, les décalages UTC, et les règles de " -"passage à l'heure d'été." - -#: library/datetime.rst:2420 -#, fuzzy -msgid ":class:`!timezone` objects" -msgstr "Objets :class:`timezone`" - -#: library/datetime.rst:2422 -#, fuzzy -msgid "" -"The :class:`timezone` class is a subclass of :class:`tzinfo`, each instance " -"of which represents a time zone defined by a fixed offset from UTC." -msgstr "" -"La classe :class:`timezone` est une sous-classe de :class:`tzinfo`, dont " -"chaque instance représente un fuseau horaire défini par un décalage fixe par " -"rapport à UTC." - -#: library/datetime.rst:2426 -#, fuzzy -msgid "" -"Objects of this class cannot be used to represent time zone information in " -"the locations where different offsets are used in different days of the year " -"or where historical changes have been made to civil time." -msgstr "" -"Les objets de cette classe ne peuvent pas être utilisés pour représenter les " -"informations de fuseaux horaires dans des emplacements où plusieurs " -"décalages sont utilisés au cours de l'année ni où le déroulement du temps " -"civil a fait l'objet d'ajustements." - -#: library/datetime.rst:2433 -msgid "" -"The *offset* argument must be specified as a :class:`timedelta` object " -"representing the difference between the local time and UTC. It must be " -"strictly between ``-timedelta(hours=24)`` and ``timedelta(hours=24)``, " -"otherwise :exc:`ValueError` is raised." -msgstr "" -"L'argument *offset* doit être spécifié comme un objet :class:`timedelta` " -"représentant la différence entre le temps local et UTC. Il doit être " -"strictement compris entre ``-timedelta(hours=24)`` et " -"``timedelta(hours=24)``, autrement une :exc:`ValueError` est levée." - -#: library/datetime.rst:2438 -msgid "" -"The *name* argument is optional. If specified it must be a string that will " -"be used as the value returned by the :meth:`datetime.tzname` method." -msgstr "" -"L'argument *name* est optionnel. S'il est spécifié, il doit être une chaîne " -"qui sera utilisée comme valeur de retour de la " -"méthode :meth:`datetime.tzname`." - -#: library/datetime.rst:2461 -msgid "" -"Return the fixed value specified when the :class:`timezone` instance is " -"constructed." -msgstr "" -"Renvoie la valeur fixe spécifiée lorsque l'instance :class:`timezone` est " -"construite." - -#: library/datetime.rst:2452 -msgid "" -"The *dt* argument is ignored. The return value is a :class:`timedelta` " -"instance equal to the difference between the local time and UTC." -msgstr "" -"L'argument *dt* est ignoré. La valeur de retour est une " -"instance :class:`timedelta` égale à la différence entre le temps local et " -"UTC." - -#: library/datetime.rst:2464 -msgid "" -"If *name* is not provided in the constructor, the name returned by " -"``tzname(dt)`` is generated from the value of the ``offset`` as follows. If " -"*offset* is ``timedelta(0)``, the name is \"UTC\", otherwise it is a string " -"in the format ``UTC±HH:MM``, where ± is the sign of ``offset``, HH and MM " -"are two digits of ``offset.hours`` and ``offset.minutes`` respectively." -msgstr "" -"Si *name* n'est pas fourni au constructeur, le nom renvoyé par " -"``tzname(dt)`` est généré comme suit à partir de la valeur de ``offset``. " -"Si *offset* vaut ``timedelta(0)``, le nom sera « UTC », autrement le nom " -"sera une chaîne de la forme ``UTC±HH:MM``, où ± est le signe d'``offset``, " -"et HH et MM sont respectivement les représentations à deux chiffres de " -"``offset.hours`` et ``offset.minutes``." - -#: library/datetime.rst:2470 -msgid "" -"Name generated from ``offset=timedelta(0)`` is now plain ``'UTC'``, not " -"``'UTC+00:00'``." -msgstr "" -"Le nom généré à partir de ``offset=timedelta(0)`` est maintenant ``'UTC'`` " -"plutôt que ``'UTC+00:00'``." - -#: library/datetime.rst:2477 -msgid "Always returns ``None``." -msgstr "Renvoie toujours ``None``." - -#: library/datetime.rst:2482 -msgid "" -"Return ``dt + offset``. The *dt* argument must be an " -"aware :class:`.datetime` instance, with ``tzinfo`` set to ``self``." -msgstr "" -"Renvoie ``dt + offset``. L'argument *dt* doit être une instance avisée " -"de :class:`.datetime`, avec ``tzinfo`` valant ``self``." - -#: library/datetime.rst:2490 -#, fuzzy -msgid "The UTC time zone, ``timezone(timedelta(0))``." -msgstr "Le fuseau horaire UTC, ``timezone(timedelta(0))``." - -#: library/datetime.rst:2499 -#, fuzzy -msgid ":meth:`!strftime` and :meth:`!strptime` behavior" -msgstr "Comportement de :meth:`strftime` et :meth:`strptime`" - -#: library/datetime.rst:2501 -msgid "" -":class:`date`, :class:`.datetime`, and :class:`.time` objects all support a " -"``strftime(format)`` method, to create a string representing the time under " -"the control of an explicit format string." -msgstr "" -"Les objets :class:`date`, :class:`.datetime` et :class:`.time` comportent " -"tous une méthode ``strftime(format)``, pour créer une représentation du " -"temps sous forme d'une chaîne, contrôlée par une chaîne de formatage " -"explicite." - -#: library/datetime.rst:2505 -#, fuzzy -msgid "" -"Conversely, the :meth:`date.strptime`, :meth:`datetime.strptime` " -"and :meth:`time.strptime` class methods create an object from a string " -"representing the time and a corresponding format string." -msgstr "" -"Inversement, la méthode de classe :meth:`datetime.strptime` crée un " -"objet :class:`.datetime` à partir d'une chaîne représentant une date et une " -"heure, et une chaîne de format correspondante." - -#: library/datetime.rst:2509 -#, fuzzy -msgid "" -"The table below provides a high-level comparison " -"of :meth:`~.datetime.strftime` versus :meth:`~.datetime.strptime`:" -msgstr "" -"Le tableau ci-dessous fournit une comparaison de haut niveau " -"entre :meth:`strftime` et :meth:`strptime` :" - -#: library/datetime.rst:2513 -msgid "``strftime``" -msgstr "``strftime``" - -#: library/datetime.rst:2513 -msgid "``strptime``" -msgstr "``strptime``" - -#: library/datetime.rst:2515 -msgid "Usage" -msgstr "Utilisation" - -#: library/datetime.rst:2515 -msgid "Convert object to a string according to a given format" -msgstr "Convertit un objet en une chaîne selon un format donné" - -#: library/datetime.rst:2515 -#, fuzzy -msgid "Parse a string into an object given a corresponding format" -msgstr "" -"Analyse une chaîne dans un objet :class:`.datetime` en fonction du format de " -"correspondance donné" - -#: library/datetime.rst:2517 -msgid "Type of method" -msgstr "Type de méthode" - -#: library/datetime.rst:2517 -msgid "Instance method" -msgstr "Méthode d'instance" - -#: library/datetime.rst:2517 -msgid "Class method" -msgstr "Méthode de classe" - -#: library/datetime.rst:2519 -msgid "Signature" -msgstr "Signature" - -#: library/datetime.rst:2519 -msgid "``strftime(format)``" -msgstr "``strftime(format)``" - -#: library/datetime.rst:2519 -msgid "``strptime(date_string, format)``" -msgstr "``strptime(date_string, format)``" - -#: library/datetime.rst:2526 -#, fuzzy -msgid ":meth:`!strftime` and :meth:`!strptime` format codes" -msgstr "Codes de formatage de :meth:`strftime` et :meth:`strptime`" - -#: library/datetime.rst:2528 -msgid "" -"These methods accept format codes that can be used to parse and format " -"dates::" -msgstr "" -"Ces méthodes acceptent des codes de formatage qui peuvent être utilisés pour " -"analyser et formater les dates ::" - -#: library/datetime.rst:2537 -#, fuzzy -msgid "" -"The following is a list of all the format codes that the 2011 C standard " -"requires, and these work on all supported platforms." -msgstr "" -"Voici la liste de tous les codes de formatage requis par le C standard 1989, " -"et ils fonctionnent sur toutes les plateformes possédant une implémentation " -"de C standard." - -#: library/datetime.rst:2696 -msgid "Directive" -msgstr "Directive" - -#: library/datetime.rst:2696 -msgid "Meaning" -msgstr "Signification" - -#: library/datetime.rst:2696 -msgid "Example" -msgstr "Exemple" - -#: library/datetime.rst:2696 -msgid "Notes" -msgstr "Notes" - -#: library/datetime.rst:2544 -msgid "``%a``" -msgstr "``%a``" - -#: library/datetime.rst:2544 -msgid "Weekday as locale's abbreviated name." -msgstr "Jour de la semaine abrégé dans la langue locale." - -#: library/datetime.rst:2544 -msgid "Sun, Mon, ..., Sat (en_US);" -msgstr "Sun, Mon, ..., Sat (en_US);" - -#: library/datetime.rst:2546 -msgid "So, Mo, ..., Sa (de_DE)" -msgstr "Lu, Ma, ..., Di (*fr_FR*)" - -#: library/datetime.rst:2549 -msgid "``%A``" -msgstr "``%A``" - -#: library/datetime.rst:2549 -msgid "Weekday as locale's full name." -msgstr "Jour de la semaine complet dans la langue locale." - -#: library/datetime.rst:2549 -msgid "Sunday, Monday, ..., Saturday (en_US);" -msgstr "*Sunday*, *Monday*, ..., *Saturday* (*en_US*);" - -#: library/datetime.rst:2551 -msgid "Sonntag, Montag, ..., Samstag (de_DE)" -msgstr "Lundi, Mardi, ..., Dimanche (*fr_FR*)" - -#: library/datetime.rst:2554 -msgid "``%b``" -msgstr "``%b``" - -#: library/datetime.rst:2554 -msgid "Month as locale's abbreviated name." -msgstr "Nom du mois abrégé dans la langue locale." - -#: library/datetime.rst:2554 -msgid "Jan, Feb, ..., Dec (en_US);" -msgstr "Jan, Feb, ..., Dec (*en_US*);" - -#: library/datetime.rst:2556 -msgid "Jan, Feb, ..., Dez (de_DE)" -msgstr "janv., févr., ..., déc. (*fr_FR*)" - -#: library/datetime.rst:2559 -msgid "``%B``" -msgstr "``%B``" - -#: library/datetime.rst:2559 -msgid "Month as locale's full name." -msgstr "Nom complet du mois dans la langue locale." - -#: library/datetime.rst:2559 -msgid "January, February, ..., December (en_US);" -msgstr "*January*, *February*, ..., *December* (*en_US*);" - -#: library/datetime.rst:2561 -msgid "Januar, Februar, ..., Dezember (de_DE)" -msgstr "janvier, février, ..., décembre (*fr_FR*)" - -#: library/datetime.rst:2564 -msgid "``%c``" -msgstr "``%c``" - -#: library/datetime.rst:2564 -msgid "Locale's appropriate date and time representation." -msgstr "Représentation locale de la date et de l'heure." - -#: library/datetime.rst:2564 -msgid "Tue Aug 16 21:30:00 1988 (en_US);" -msgstr "Tue Aug 16 21:30:00 1988 (*en_US*);" - -#: library/datetime.rst:2566 -msgid "Di 16 Aug 21:30:00 1988 (de_DE)" -msgstr "mar. 16 août 1988 21:30:00 (*fr_FR*)" - -#: library/datetime.rst:2569 -msgid "``%C``" -msgstr "" - -#: library/datetime.rst:2569 -#, fuzzy -msgid "" -"The year divided by 100 and truncated to an integer as a zero-padded decimal " -"number." -msgstr "Année sur deux chiffres (sans le siècle)." - -#: library/datetime.rst:2569 -#, fuzzy -msgid "01, 02, ..., 99" -msgstr "01, 02, ..., 31" - -#: library/datetime.rst:2585 library/datetime.rst:2595 -msgid "\\(0)" -msgstr "" - -#: library/datetime.rst:2573 -msgid "``%d``" -msgstr "``%d``" - -#: library/datetime.rst:2573 -msgid "Day of the month as a zero-padded decimal number." -msgstr "Jour du mois sur deux chiffres." - -#: library/datetime.rst:2573 -msgid "01, 02, ..., 31" -msgstr "01, 02, ..., 31" - -#: library/datetime.rst:2573 -#, fuzzy -msgid "\\(9), \\(10)" -msgstr "\\(4), \\(9)" - -#: library/datetime.rst:2576 -msgid "``%D``" -msgstr "" - -#: library/datetime.rst:2576 -#, fuzzy -msgid "Equivalent to ``%m/%d/%y``." -msgstr "Équivalent à ::" - -#: library/datetime.rst:2576 -msgid "11/28/25" -msgstr "" - -#: library/datetime.rst:2597 library/datetime.rst:2603 -#: library/datetime.rst:2609 library/datetime.rst:2671 -msgid "\\(9)" -msgstr "\\(9)" - -#: library/datetime.rst:2579 -msgid "``%e``" -msgstr "" - -#: library/datetime.rst:2579 -#, fuzzy -msgid "The day of the month as a space-padded decimal number." -msgstr "Jour du mois sur deux chiffres." - -#: library/datetime.rst:2579 -#, fuzzy -msgid "␣1, ␣2, ..., 31" -msgstr "01, 02, ..., 31" - -#: library/datetime.rst:2579 -msgid "\\(10)" -msgstr "" - -#: library/datetime.rst:2582 -msgid "``%F``" -msgstr "" - -#: library/datetime.rst:2582 -msgid "Equivalent to ``%Y-%m-%d``, the ISO 8601 format." -msgstr "" - -#: library/datetime.rst:2582 -msgid "2025-10-11, 1001-12-30" -msgstr "" - -#: library/datetime.rst:2585 -msgid "``%g``" -msgstr "" - -#: library/datetime.rst:2585 -#, fuzzy -msgid "" -"Last 2 digits of ISO 8601 year representing the year that contains the " -"greater part of the ISO week (``%V``)." -msgstr "" -"Année complète ISO 8601 représentant l'année contenant la plus grande partie " -"de la semaine ISO (``%V``)." - -#: library/datetime.rst:2671 -msgid "00, 01, ..., 99" -msgstr "00, 01, ..., 99" - -#: library/datetime.rst:2590 -msgid "``%G``" -msgstr "``%G``" - -#: library/datetime.rst:2590 -msgid "" -"ISO 8601 year with century representing the year that contains the greater " -"part of the ISO week (``%V``)." -msgstr "" -"Année complète ISO 8601 représentant l'année contenant la plus grande partie " -"de la semaine ISO (``%V``)." - -#: library/datetime.rst:2674 -msgid "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" -msgstr "0001, 0002, ..., 2013, 2014, ..., 9998, 9999" - -#: library/datetime.rst:2590 -msgid "\\(8)" -msgstr "\\(8)" - -#: library/datetime.rst:2595 -msgid "``%h``" -msgstr "" - -#: library/datetime.rst:2595 -#, fuzzy -msgid "Equivalent to ``%b``." -msgstr "Équivalent à ::" - -#: library/datetime.rst:2595 -#, fuzzy -msgid "See ``%b``." -msgstr "``%b``" - -#: library/datetime.rst:2597 -msgid "``%H``" -msgstr "``%H``" - -#: library/datetime.rst:2597 -msgid "Hour (24-hour clock) as a zero-padded decimal number." -msgstr "Heure à deux chiffres de 00 à 23." - -#: library/datetime.rst:2597 -msgid "00, 01, ..., 23" -msgstr "00, 01, ..., 23" - -#: library/datetime.rst:2600 -msgid "``%I``" -msgstr "``%I``" - -#: library/datetime.rst:2600 -msgid "Hour (12-hour clock) as a zero-padded decimal number." -msgstr "Heure à deux chiffres pour les horloges 12h (01 à 12)." - -#: library/datetime.rst:2606 -msgid "01, 02, ..., 12" -msgstr "01, 02, ..., 12" - -#: library/datetime.rst:2603 -msgid "``%j``" -msgstr "``%j``" - -#: library/datetime.rst:2603 -msgid "Day of the year as a zero-padded decimal number." -msgstr "Numéro du jour dans l'année sur trois chiffres." - -#: library/datetime.rst:2603 -msgid "001, 002, ..., 366" -msgstr "001, 002, ..., 366" - -#: library/datetime.rst:2606 -msgid "``%m``" -msgstr "``%m``" - -#: library/datetime.rst:2606 -msgid "Month as a zero-padded decimal number." -msgstr "Numéro du mois sur deux chiffres." - -#: library/datetime.rst:2609 -msgid "``%M``" -msgstr "``%M``" - -#: library/datetime.rst:2609 -msgid "Minute as a zero-padded decimal number." -msgstr "Minutes sur deux chiffres." - -#: library/datetime.rst:2625 -msgid "00, 01, ..., 59" -msgstr "00, 01, ..., 59" - -#: library/datetime.rst:2612 -msgid "``%n``" -msgstr "" - -#: library/datetime.rst:2612 -msgid "" -"The newline character (``'\\n'``). For :meth:`!strptime`, zero or more " -"whitespace." -msgstr "" - -#: library/datetime.rst:2612 -msgid "``\\n``" -msgstr "" - -#: library/datetime.rst:2617 -msgid "``%p``" -msgstr "``%p``" - -#: library/datetime.rst:2617 -msgid "Locale's equivalent of either AM or PM." -msgstr "Équivalent local à AM/PM." - -#: library/datetime.rst:2617 -msgid "AM, PM (en_US);" -msgstr "AM, PM (en_US);" - -#: library/datetime.rst:2618 -msgid "am, pm (de_DE)" -msgstr "am, pm (de_DE)" - -#: library/datetime.rst:2617 -msgid "\\(1), \\(3)" -msgstr "\\(1), \\(3)" - -#: library/datetime.rst:2620 -msgid "``%r``" -msgstr "" - -#: library/datetime.rst:2620 -msgid "Locale's 12-hour clock time." -msgstr "" - -#: library/datetime.rst:2620 -msgid "12:00:00 AM" -msgstr "" - -#: library/datetime.rst:2620 -#, fuzzy -msgid "\\(1), \\(0)" -msgstr "\\(1), \\(3)" - -#: library/datetime.rst:2623 -msgid "``%R``" -msgstr "" - -#: library/datetime.rst:2623 -#, fuzzy -msgid "Equivalent to ``%H:%M``." -msgstr "Équivalent à ::" - -#: library/datetime.rst:2623 -msgid "10:01" -msgstr "" - -#: library/datetime.rst:2625 -msgid "``%S``" -msgstr "``%S``" - -#: library/datetime.rst:2625 -msgid "Second as a zero-padded decimal number." -msgstr "Secondes sur deux chiffres." - -#: library/datetime.rst:2625 -msgid "\\(4), \\(9)" -msgstr "\\(4), \\(9)" - -#: library/datetime.rst:2628 -msgid "``%t``" -msgstr "" - -#: library/datetime.rst:2628 -msgid "" -"The tab character (``'\\t'``). For :meth:`!strptime`, zero or more " -"whitespace." -msgstr "" - -#: library/datetime.rst:2628 -msgid "``\\t``" -msgstr "" - -#: library/datetime.rst:2632 -msgid "``%T``" -msgstr "" - -#: library/datetime.rst:2632 -msgid "ISO 8601 time format, equivalent to ``%H:%M:%S``." -msgstr "" - -#: library/datetime.rst:2632 -msgid "10:01:59" -msgstr "" - -#: library/datetime.rst:2635 -msgid "``%u``" -msgstr "``%u``" - -#: library/datetime.rst:2635 -msgid "ISO 8601 weekday as a decimal number where 1 is Monday." -msgstr "Jour de la semaine ISO 8601 où 1 correspond au lundi." - -#: library/datetime.rst:2635 -msgid "1, 2, ..., 7" -msgstr "1, 2, ..., 7" - -#: library/datetime.rst:2638 -msgid "``%U``" -msgstr "``%U``" - -#: library/datetime.rst:2638 -msgid "" -"Week number of the year (Sunday as the first day of the week) as a zero-" -"padded decimal number. All days in a new year preceding the first Sunday are " -"considered to be in week 0." -msgstr "" -"Numéro de la semaine à deux chiffres (où dimanche est considéré comme le " -"premier jour de la semaine). Tous les jours de l'année précédent le premier " -"dimanche sont considérés comme appartenant à la semaine 0." - -#: library/datetime.rst:2656 -msgid "00, 01, ..., 53" -msgstr "00, 01, ..., 53" - -#: library/datetime.rst:2656 -msgid "\\(7), \\(9)" -msgstr "\\(7), \\(9)" - -#: library/datetime.rst:2646 -msgid "``%V``" -msgstr "``%V``" - -#: library/datetime.rst:2646 -msgid "" -"ISO 8601 week as a decimal number with Monday as the first day of the week. " -"Week 01 is the week containing Jan 4." -msgstr "" -"Numéro de la semaine ISO 8601, avec lundi étant le premier jour de la " -"semaine. La semaine 01 est la semaine contenant le 4 janvier." - -#: library/datetime.rst:2646 -msgid "01, 02, ..., 53" -msgstr "01, 02, ..., 53" - -#: library/datetime.rst:2646 -msgid "\\(8), \\(9)" -msgstr "\\(8), \\(9)" - -#: library/datetime.rst:2652 -msgid "``%w``" -msgstr "``%w``" - -#: library/datetime.rst:2652 -msgid "Weekday as a decimal number, where 0 is Sunday and 6 is Saturday." -msgstr "" -"Jour de la semaine en chiffre, avec 0 pour le dimanche et 6 pour le samedi." - -#: library/datetime.rst:2652 -msgid "0, 1, ..., 6" -msgstr "0, 1, ..., 6" - -#: library/datetime.rst:2656 -msgid "``%W``" -msgstr "``%W``" - -#: library/datetime.rst:2656 -msgid "" -"Week number of the year (Monday as the first day of the week) as a zero-" -"padded decimal number. All days in a new year preceding the first Monday are " -"considered to be in week 0." -msgstr "" -"Numéro de la semaine à deux chiffres (où lundi est considéré comme le " -"premier jour de la semaine). Tous les jours de l'année précédent le premier " -"lundi sont considérés comme appartenant à la semaine 0." - -#: library/datetime.rst:2664 -msgid "``%x``" -msgstr "``%x``" - -#: library/datetime.rst:2664 -msgid "Locale's appropriate date representation." -msgstr "Représentation locale de la date." - -#: library/datetime.rst:2664 -msgid "08/16/88 (None);" -msgstr "08/16/88 (None);" - -#: library/datetime.rst:2665 -msgid "08/16/1988 (en_US);" -msgstr "08/16/1988 (*en_US*);" - -#: library/datetime.rst:2666 -msgid "16.08.1988 (de_DE)" -msgstr "16/08/1988 (*fr_FR*)" - -#: library/datetime.rst:2668 -msgid "``%X``" -msgstr "``%X``" - -#: library/datetime.rst:2668 -msgid "Locale's appropriate time representation." -msgstr "Représentation locale de l'heure." - -#: library/datetime.rst:2668 -msgid "21:30:00 (en_US);" -msgstr "21:30:00 (*en_US*) ;" - -#: library/datetime.rst:2669 -msgid "21:30:00 (de_DE)" -msgstr "21:30:00 (*fr_FR*)" - -#: library/datetime.rst:2671 -msgid "``%y``" -msgstr "``%y``" - -#: library/datetime.rst:2671 -msgid "Year without century as a zero-padded decimal number." -msgstr "Année sur deux chiffres (sans le siècle)." - -#: library/datetime.rst:2674 -msgid "``%Y``" -msgstr "``%Y``" - -#: library/datetime.rst:2674 -msgid "Year with century as a decimal number." -msgstr "Année complète sur quatre chiffres." - -#: library/datetime.rst:2840 -msgid "``%z``" -msgstr "``%z``" - -#: library/datetime.rst:2677 -msgid "" -"UTC offset in the form ``±HHMM[SS[.ffffff]]`` (empty string if the object is " -"naive)." -msgstr "" -"Décalage horaire UTC sous la forme ``±HHMM[SS[.ffffff]]`` (chaîne vide si " -"l'instance est naïve)." - -#: library/datetime.rst:2677 -msgid "(empty), +0000, -0400, +1030, +063415, -030712.345216" -msgstr "(vide), +0000, -0400, +1030, +063415, -030712.345216" - -#: library/datetime.rst:2682 library/datetime.rst:2702 -msgid "\\(6)" -msgstr "\\(6)" - -#: library/datetime.rst:2872 -msgid "``%Z``" -msgstr "``%Z``" - -#: library/datetime.rst:2682 -msgid "Time zone name (empty string if the object is naive)." -msgstr "Nom du fuseau horaire (chaîne vide si l'instance est naïve)." - -#: library/datetime.rst:2682 -msgid "(empty), UTC, GMT" -msgstr "(vide), UTC, GMT" - -#: library/datetime.rst:2685 -msgid "``%%``" -msgstr "``%%``" - -#: library/datetime.rst:2685 -msgid "A literal ``'%'`` character." -msgstr "Un caractère ``'%'`` littéral." - -#: library/datetime.rst:2685 -msgid "%" -msgstr "%" - -#: library/datetime.rst:2688 -#, fuzzy -msgid "" -"The ISO 8601 year and ISO 8601 week directives are not interchangeable with " -"the year and week number directives above. " -"Calling :meth:`~.datetime.strptime` with incomplete or ambiguous ISO 8601 " -"directives will raise a :exc:`ValueError`." -msgstr "" -"Elles peuvent ne pas être disponibles sur toutes les plateformes quand elles " -"sont utilisées avec la méthode :meth:`strftime`. Les directives ISO 8601 " -"d'année et de semaine ne sont pas interchangeables avec les directives " -"d'année et de semaine précédentes. Appeler :meth:`strptime` avec des " -"directives ISO 8601 incomplètes ou ambiguës lèvera une :exc:`ValueError`." - -#: library/datetime.rst:2692 -#, fuzzy -msgid "" -"Several additional directives not required by the C11 standard are included " -"for convenience." -msgstr "" -"Plusieurs directives supplémentaires non requises par la norme C89 sont " -"incluses pour des raisons de commodité. Ces paramètres correspondent tous " -"aux valeurs de date de la norme ISO 8601." - -#: library/datetime.rst:2698 -msgid "``%f``" -msgstr "``%f``" - -#: library/datetime.rst:2698 -msgid "Microsecond as a decimal number, zero-padded to 6 digits." -msgstr "Microsecondes sur 6 chiffres." - -#: library/datetime.rst:2698 -msgid "000000, 000001, ..., 999999" -msgstr "000000, 000001, ..., 999999" - -#: library/datetime.rst:2698 -msgid "\\(5)" -msgstr "\\(5)" - -#: library/datetime.rst:2862 -msgid "``%:z``" -msgstr "" - -#: library/datetime.rst:2702 -#, fuzzy -msgid "" -"UTC offset in the form ``±HH:MM[:SS[.ffffff]]`` (empty string if the object " -"is naive)." -msgstr "" -"Décalage horaire UTC sous la forme ``±HHMM[SS[.ffffff]]`` (chaîne vide si " -"l'instance est naïve)." - -#: library/datetime.rst:2702 -#, fuzzy -msgid "(empty), +00:00, -04:00, +10:30, +06:34:15, -03:07:12.345216" -msgstr "(vide), +0000, -0400, +1030, +063415, -030712.345216" - -#: library/datetime.rst:2708 -#, fuzzy -msgid "" -"The full set of format codes supported varies across platforms, because " -"Python calls the platform C library's :c:func:`strftime` function, and " -"platform variations are common. To see the full set of format codes " -"supported on your platform, consult the :manpage:`strftime(3)` " -"documentation. There are also differences between platforms in handling of " -"unsupported format specifiers." -msgstr "" -"L'ensemble complet des codes de formatage implémentés varie selon les " -"plateformes, parce que Python appelle la fonction :func:`strftime` de la " -"bibliothèque C de la plateforme, et les variations sont courantes. Pour voir " -"un ensemble complet des codes de formatage implémentés par votre plateforme, " -"consultez la documentation de :manpage:`strftime(3)`. Il existe également " -"des différences entre les plateformes dans la gestion de format non pris en " -"charge." - -#: library/datetime.rst:2714 -msgid "``%G``, ``%u`` and ``%V`` were added." -msgstr "``%G``, ``%u`` et ``%V`` ont été ajoutés." - -#: library/datetime.rst:2717 -msgid "``%:z`` was added for :meth:`~.datetime.strftime`." -msgstr "" - -#: library/datetime.rst:2720 -msgid "" -"``%D``, ``%F``, ``%n``, ``%t``, and ``%:z`` were added " -"for :meth:`~.datetime.strptime`." -msgstr "" - -#: library/datetime.rst:2726 -#, fuzzy -msgid "Technical detail" -msgstr "Détail technique" - -#: library/datetime.rst:2728 -#, fuzzy -msgid "" -"Broadly speaking, ``d.strftime(fmt)`` acts like the :mod:`time` module's " -"``time.strftime(fmt, d.timetuple())`` although not all objects support " -"a :meth:`~date.timetuple` method." -msgstr "" -"Grossièrement, ``d.strftime(fmt)`` se comporte comme la fonction " -"``time.strftime(fmt, d.timetuple())`` du module :mod:`time`, bien que tous " -"les objets ne comportent pas de méthode :meth:`timetuple`." - -#: library/datetime.rst:2732 -#, fuzzy -msgid "" -"For the :meth:`.datetime.strptime` and :meth:`.date.strptime` class methods, " -"the default value is ``1900-01-01T00:00:00.000``: any components not " -"specified in the format string will be pulled from the default value." -msgstr "" -"Pour la méthode :meth:`datetime.strptime`, la valeur par défaut est " -"``1900-01-01T00:00:00.000`` : tous les composants non spécifiés dans la " -"chaîne de formatage seront retirés de la valeur par défaut. [#]_" - -#: library/datetime.rst:2737 -msgid "" -"Format strings without separators can be ambiguous for parsing. For example, " -"with ``%Y%m%d``, the string ``2026111`` may be parsed either as " -"``2026-11-01`` or as ``2026-01-11``. Use separators to ensure the input is " -"parsed as intended." -msgstr "" - -#: library/datetime.rst:2743 -msgid "" -"When used to parse partial dates lacking a year, :meth:`.datetime.strptime` " -"and :meth:`.date.strptime` will raise when encountering February 29 because " -"the default year of 1900 is *not* a leap year. Always add a default leap " -"year to partial date strings before parsing." -msgstr "" - -#: library/datetime.rst:2774 -msgid "Using ``datetime.strptime(date_string, format)`` is equivalent to::" -msgstr "" -"L'utilisation de ``datetime.strptime(date_string, format)`` équivaut à ::" - -#: library/datetime.rst:2778 -#, fuzzy -msgid "" -"except when the format includes sub-second components or time zone offset " -"information, which are supported in ``datetime.strptime`` but are discarded " -"by ``time.strptime``." -msgstr "" -"sauf lorsque le format inclut des composantes de sous-secondes ou des " -"informations de décalage de fuseau horaire, qui sont prises en charge dans " -"``datetime.strptime`` mais pas par ``time.strptime``." - -#: library/datetime.rst:2782 -#, fuzzy -msgid "" -"For :class:`.time` objects, the format codes for year, month, and day should " -"not be used, as :class:`!time` objects have no such values. If they're used " -"anyway, 1900 is substituted for the year, and 1 for the month and day." -msgstr "" -"Pour les objets :class:`.time`, les codes de formatage pour l'année, le mois " -"et le jour ne devraient pas être utilisés, puisque les objets :class:`time` " -"ne possèdent pas de telles valeurs. S'ils sont tout de même utilisés, " -"``1900`` est utilisé pour l'année, et ``1`` pour le mois et le jour." - -#: library/datetime.rst:2786 -#, fuzzy -msgid "" -"For :class:`date` objects, the format codes for hours, minutes, seconds, and " -"microseconds should not be used, as :class:`date` objects have no such " -"values. If they're used anyway, 0 is substituted for them." -msgstr "" -"Pour les objets :class:`date`, les codes de formatage pour les heures, " -"minutes, secondes et microsecondes ne devraient pas être utilisés, puisque " -"les objets :class:`date` ne possèdent pas de telles valeurs. S'ils sont tout " -"de même utilisés, la valeur ``0`` est utilisée." - -#: library/datetime.rst:2790 -msgid "" -"For the same reason, handling of format strings containing Unicode code " -"points that can't be represented in the charset of the current locale is " -"also platform-dependent. On some platforms such code points are preserved " -"intact in the output, while on others ``strftime`` may " -"raise :exc:`UnicodeError` or return an empty string instead." -msgstr "" -"Pour la même raison, la gestion des chaînes contenant des caractères (ou " -"points) Unicode qui ne peuvent pas être représentés dans la *locale* " -"actuelle dépend aussi de la plateforme. Sur certaines plateformes, ces " -"caractères sont conservés tels quels dans la sortie, alors que sur d'autres " -"plateformes ``strftime`` lève une :exc:`UnicodeError` ou renvoie une chaîne " -"vide." - -#: library/datetime.rst:2799 -msgid "" -"This format code is currently unsupported by :meth:`~.datetime.strptime`." -msgstr "" - -#: library/datetime.rst:2802 -msgid "" -"Because the format depends on the current locale, care should be taken when " -"making assumptions about the output value. Field orderings will vary (for " -"example, \"month/day/year\" versus \"day/month/year\"), and the output may " -"contain non-ASCII characters." -msgstr "" -"Comme le format dépend de la locale courante, les assomptions sur la valeur " -"de retour doivent être prises soigneusement. L'ordre des champs variera (par " -"exemple, « mois/jour/année » au lieu de « année/mois/jour »), et le résultat " -"peut contenir des caractères non-ASCII." - -#: library/datetime.rst:2808 -#, fuzzy -msgid "" -"The :meth:`~.datetime.strptime` method can parse years in the full [1, 9999] " -"range, but years < 1000 must be zero-filled to 4-digit width." -msgstr "" -"La méthode :meth:`strptime` peut analyser toutes les années de l'intervalle " -"[1, 9999], mais toutes les années < 1000 doivent être représentées sur " -"quatre chiffres." - -#: library/datetime.rst:2811 -#, fuzzy -msgid "" -"In previous versions, :meth:`~.datetime.strftime` method was restricted to " -"years >= 1900." -msgstr "" -"Dans les versions précédentes, la méthode :meth:`strftime` était limitée aux " -"années >= 1900." - -#: library/datetime.rst:2815 -#, fuzzy -msgid "" -"In version 3.2, :meth:`~.datetime.strftime` method was restricted to years " -">= 1000." -msgstr "" -"En version 3.2, la méthode :meth:`strftime` était limitée aux années >= 1000." - -#: library/datetime.rst:2820 -#, fuzzy -msgid "" -"When used with the :meth:`~.datetime.strptime` method, the ``%p`` directive " -"only affects the output hour field if the ``%I`` directive is used to parse " -"the hour." -msgstr "" -"Quand utilisée avec la méthode :meth:`strptime`, la directive ``%p`` " -"n'affecte l'heure extraite que si la directive ``%I`` est utilisée pour " -"analyser l'heure." - -#: library/datetime.rst:2824 -#, fuzzy -msgid "" -"Unlike the :mod:`time` module, the :mod:`!datetime` module does not support " -"leap seconds." -msgstr "" -"À l'inverse du module :mod:`time`, le module :mod:`datetime` ne gère pas les " -"secondes intercalaires." - -#: library/datetime.rst:2828 -#, fuzzy -msgid "" -"When used with the :meth:`~.datetime.strptime` method, the ``%f`` directive " -"accepts from one to six digits and zero pads on the right. ``%f`` is an " -"extension to the set of format characters in the C standard (but implemented " -"separately in datetime objects, and therefore always available)." -msgstr "" -"Quand elle est utilisée avec la méthode :meth:`strptime`, la directive " -"``%f`` accepte un nombre de 1 à 6 chiffres, où des zéros seront ajoutés à " -"droite. ``%f`` est une extension de l'ensemble des caractères de formatage " -"du standard C (mais implémentée séparément dans les objets *datetime*, la " -"rendant ainsi toujours disponible)." - -#: library/datetime.rst:2835 -#, fuzzy -msgid "" -"For a naive object, the ``%z``, ``%:z`` and ``%Z`` format codes are replaced " -"by empty strings." -msgstr "" -"Pour les objets naïfs, les codes de formatage ``%z`` et ``%Z`` sont " -"remplacés par des chaînes vides." - -#: library/datetime.rst:2838 -msgid "For an aware object:" -msgstr "Pour un objet avisé :" - -#: library/datetime.rst:2841 -#, fuzzy -msgid "" -":meth:`~.datetime.utcoffset` is transformed into a string of the form " -"``±HHMM[SS[.ffffff]]``, where ``HH`` is a 2-digit string giving the number " -"of UTC offset hours, ``MM`` is a 2-digit string giving the number of UTC " -"offset minutes, ``SS`` is a 2-digit string giving the number of UTC offset " -"seconds and ``ffffff`` is a 6-digit string giving the number of UTC offset " -"microseconds. The ``ffffff`` part is omitted when the offset is a whole " -"number of seconds and both the ``ffffff`` and the ``SS`` part is omitted " -"when the offset is a whole number of minutes. For example, " -"if :meth:`~.datetime.utcoffset` returns ``timedelta(hours=-3, " -"minutes=-30)``, ``%z`` is replaced with the string ``'-0330'``." -msgstr "" -"Le résultat de :meth:`utcoffset` est transformé en une chaîne sous la forme " -"``±HHMM[SS[.ffffff]]``, où ``HH`` est une chaîne de deux chiffres donnant le " -"nombre d'heures du décalage UTC, ``MM`` une chaîne de deux chiffres donnant " -"le nombre de minutes du décalage UTC, ``SS`` une chaîne de deux chiffres " -"donnant le nombre de secondes du décalage UTC et ``ffffff`` une chaîne de " -"six chiffres donnant le nombre en microsecondes du décalage UTC. La partie " -"``ffffff`` est omise lorsque le décalage est un nombre entier de secondes et " -"les parties ``ffffff`` et ``SS`` sont omises lorsque le décalage est un " -"nombre entier de minutes. Par exemple, si :meth:`utcoffset` renvoie " -"``timedelta(hours=-3, minutes=-30)``, ``%z`` est remplacé par la chaîne " -"``'-0330'``." - -#: library/datetime.rst:2855 -#, fuzzy -msgid "" -"When the ``%z`` directive is provided to the :meth:`~.datetime.strptime` " -"method, the UTC offsets can have a colon as a separator between hours, " -"minutes and seconds. For example, both ``'+010000'`` and ``'+01:00:00'`` " -"will be parsed as an offset of one hour. In addition, providing ``'Z'`` is " -"identical to ``'+00:00'``." -msgstr "" -"Quand la directive ``%z`` est soumise à la méthode :meth:`strptime`, le " -"décalage UTC peut avoir une colonne comme séparateur entre les heures, " -"minutes et secondes. Par exemple, ``'+01:00:00'``, est analysé comme un " -"décalage d'une heure. Par ailleurs, ``'Z'`` est identique à ``'+00:00'``." - -#: library/datetime.rst:2863 -msgid "" -"When used with :meth:`~.datetime.strftime`, behaves exactly as ``%z``, " -"except that a colon separator is added between hours, minutes and seconds." -msgstr "" - -#: library/datetime.rst:2866 -#, fuzzy -msgid "" -"When used with :meth:`~.datetime.strptime`, the UTC offset is *required* to " -"have a colon as a separator between hours, minutes and seconds. For example, " -"``'+01:00:00'`` (but *not* ``'+010000'``) will be parsed as an offset of one " -"hour. In addition, providing ``'Z'`` is identical to ``'+00:00'``." -msgstr "" -"Quand la directive ``%z`` est soumise à la méthode :meth:`strptime`, le " -"décalage UTC peut avoir une colonne comme séparateur entre les heures, " -"minutes et secondes. Par exemple, ``'+01:00:00'``, est analysé comme un " -"décalage d'une heure. Par ailleurs, ``'Z'`` est identique à ``'+00:00'``." - -#: library/datetime.rst:2873 -#, fuzzy -msgid "" -"In :meth:`~.datetime.strftime`, ``%Z`` is replaced by an empty string " -"if :meth:`~.datetime.tzname` returns ``None``; otherwise ``%Z`` is replaced " -"by the returned value, which must be a string." -msgstr "" -"Si :meth:`tzname` renvoie ``None``, ``%Z`` est remplacé par une chaîne vide " -"dans :meth:`strftime`. Autrement ``%Z`` est remplacé par la valeur renvoyée, " -"qui doit être une chaîne." - -#: library/datetime.rst:2877 -#, fuzzy -msgid ":meth:`~.datetime.strptime` only accepts certain values for ``%Z``:" -msgstr ":meth:`strptime` accepte seulement certaines valeurs pour ``%Z`` :" - -#: library/datetime.rst:2879 -msgid "any value in ``time.tzname`` for your machine's locale" -msgstr "toute valeur dans ``time.tzname`` pour votre machine locale" - -#: library/datetime.rst:2880 -msgid "the hard-coded values ``UTC`` and ``GMT``" -msgstr "les valeurs ``UTC`` et ``GMT`` codés en dur" - -#: library/datetime.rst:2882 -msgid "" -"So someone living in Japan may have ``JST``, ``UTC``, and ``GMT`` as valid " -"values, but probably not ``EST``. It will raise ``ValueError`` for invalid " -"values." -msgstr "" -"Ainsi, quelqu'un qui vit au Japon peut avoir comme valeurs valides ``JST``, " -"``UTC`` et ``GMT``, mais probablement pas ``EST``. Les valeurs invalides " -"lèvent ``ValueError``." - -#: library/datetime.rst:2886 -#, fuzzy -msgid "" -"When the ``%z`` directive is provided to the :meth:`~.datetime.strptime` " -"method, an aware :class:`.datetime` object will be produced. The ``tzinfo`` " -"of the result will be set to a :class:`timezone` instance." -msgstr "" -"Quand la directive ``%z`` est fournie à la méthode :meth:`strptime`, un " -"objet :class:`.datetime` avisé est construit. L'attribut ``tzinfo`` du " -"résultat aura pour valeur une instance de :class:`timezone`." - -#: library/datetime.rst:2892 -#, fuzzy -msgid "" -"When used with the :meth:`~.datetime.strptime` method, ``%U`` and ``%W`` are " -"only used in calculations when the day of the week and the calendar year " -"(``%Y``) are specified." -msgstr "" -"Quand ces directives sont utilisées avec la méthode :meth:`strptime`, ``%U`` " -"et ``%W`` ne sont utilisées dans les calculs que si le jour de la semaine et " -"l'année calendaire (``%Y``) sont spécifiés." - -#: library/datetime.rst:2897 -#, fuzzy -msgid "" -"Similar to ``%U`` and ``%W``, ``%V`` is only used in calculations when the " -"day of the week and the ISO year (``%G``) are specified in " -"a :meth:`~.datetime.strptime` format string. Also note that ``%G`` and " -"``%Y`` are not interchangeable." -msgstr "" -"De façon similaire à ``%U`` et ``%W``, ``%v`` n'est utilisé dans les calculs " -"que lorsque le jour de la semaine et l'année ISO (``%G``) sont spécifiés " -"dans la chaîne de formatage :meth:`strptime`. Notez aussi que ``%G`` et " -"``%Y`` ne sont pas interchangeables." - -#: library/datetime.rst:2903 -#, fuzzy -msgid "" -"When used with the :meth:`~.datetime.strptime` method, the leading zero is " -"optional for formats ``%d``, ``%m``, ``%H``, ``%I``, ``%M``, ``%S``, " -"``%j``, ``%U``, ``%W``, and ``%V``. Format ``%y`` does require a leading " -"zero." -msgstr "" -"Quand cette directive est utilisée avec la méthode :meth:`strptime`, le zéro " -"d'entête est optionnel pour les formats ``%d``, ``%m``, ``%H``, ``%I``, " -"``%M``, ``%S``, ``%j``, ``%U``, ``%W`` et ``%V``. Le format ``%y`` requiert " -"un zéro en entête." - -#: library/datetime.rst:2908 -msgid "" -"When parsing a month and day using :meth:`~.datetime.strptime`, always " -"include a year in the format. If the value you need to parse lacks a year, " -"append an explicit dummy leap year. Otherwise your code will raise an " -"exception when it encounters leap day because the default year used by the " -"parser (1900) is not a leap year. Users run into that bug every leap year." -msgstr "" - -#: library/datetime.rst:2920 -msgid "Using ``%d`` without a year now raises :exc:`ValueError`." -msgstr "" - -#: library/datetime.rst:2923 -msgid "" -":meth:`~.datetime.strptime` calls using a format string containing ``%e`` " -"without a year now emit a :exc:`DeprecationWarning`." -msgstr "" - -#: library/datetime.rst:2928 -msgid "Footnotes" -msgstr "Notes" - -#: library/datetime.rst:2929 -#, fuzzy -msgid "If, that is, we ignore the effects of relativity." -msgstr "Si on ignore les effets de la Relativité" - -#: library/datetime.rst:2931 -msgid "" -"This matches the definition of the \"proleptic Gregorian\" calendar in " -"Dershowitz and Reingold's book *Calendrical Calculations*, where it's the " -"base calendar for all computations. See the book for algorithms for " -"converting between proleptic Gregorian ordinals and many other calendar " -"systems." -msgstr "" -"Cela correspond à la définition du calendrier « grégorien proleptique » dans " -"le livre *Calendrical Calculations* de Dershowitz et Reingold, où il est la " -"base de tous les calculs. Référez-vous au livre pour les algorithmes de " -"conversion entre calendriers grégorien proleptique et les autres systèmes." - -#: library/datetime.rst:2937 -msgid "" -"See R. H. van Gent's `guide to the mathematics of the ISO 8601 calendar " -"`_ for a good explanation." -msgstr "" -"Voir R. H. van Gent `guide des mathématiques du calendrier ISO 8601 `_ pour une bonne explication." - -#, fuzzy -#~ msgid "" -#~ "Passing ``datetime.strptime('Feb 29', '%b %d')`` will fail since 1900 is " -#~ "not a leap year." -#~ msgstr "" -#~ "Passer ``datetime.strptime(‘Feb 29’, ‘%b %d’)`` ne marchera pas car " -#~ "``1900`` n’est pas une année bissextile." - -#~ msgid "" -#~ "Return a date with the same value, except for those parameters given new " -#~ "values by whichever keyword arguments are specified." -#~ msgstr "" -#~ "Renvoie une date avec la même valeur, à l'exception des paramètres nommés " -#~ "pour lesquels une nouvelle valeur est donnée en argument." - -#~ msgid "Method of" -#~ msgstr "Méthode de" - -#~ msgid ":class:`date`; :class:`.datetime`; :class:`.time`" -#~ msgstr ":class:`date` ; :class:`.datetime` ; :class:`.time`" - -#~ msgid ":class:`.datetime`" -#~ msgstr ":class:`.datetime`" - -#, fuzzy -#~ msgid "datetime.fromtimestamp(time.time())" -#~ msgstr "Cela est équivalent à ``date.fromtimestamp(time.time())``." - -#, fuzzy -#~ msgid "datetime(*(time.strptime(date_string, format)[0:6]))" -#~ msgstr "``strptime(date_string, format)``" - -#~ msgid "% (percent)" -#~ msgstr "% (pourcentage)" - -#~ msgid "datetime format" -#~ msgstr "Format de date et d'heure" - -#~ msgid "Attribute" -#~ msgstr "Attribut" - -#~ msgid "Value" -#~ msgstr "Valeur" - -#~ msgid "``days``" -#~ msgstr "``days``" - -#~ msgid "``seconds``" -#~ msgstr "``seconds``" - -#~ msgid "``microseconds``" -#~ msgstr "``microseconds``" - -#~ msgid "" -#~ "The comparisons ``==`` or ``!=`` *always* return a :class:`bool`, no " -#~ "matter the type of the compared object::" -#~ msgstr "" -#~ "Les comparaisons ``==`` ou ``!=`` renvoient *toujours* un :class:`bool`, " -#~ "quel que soit le type de l'objet comparé ::" - -#~ msgid "" -#~ "For all other comparisons (such as ``<`` and ``>``), when " -#~ "a :class:`timedelta` object is compared to an object of a different " -#~ "type, :exc:`TypeError` is raised::" -#~ msgstr "" -#~ "Pour toutes les autres comparaisons (telles que ``<`` et ``>``), " -#~ "lorsqu'un objet :class:`timedelta` est comparé à un objet d'un type " -#~ "différent, une :exc:`TypeError` est levée ::" - -#~ msgid "" -#~ "Return a :class:`date` corresponding to a *date_string* given in any " -#~ "valid ISO 8601 format, except ordinal dates (e.g. ``YYYY-DDD``)::" -#~ msgstr "" -#~ "Renvoie une :class:`date` correspondant à *date_string* dans un format " -#~ "ISO 8601 valide, à part les dates ordinales (ex: ``YYYY-DDD``) ::" - -#~ msgid "" -#~ "In other words, ``date1 < date2`` if and only if ``date1.toordinal() < " -#~ "date2.toordinal()``. Date comparison raises :exc:`TypeError` if the other " -#~ "comparand isn't also a :class:`date` object. However, ``NotImplemented`` " -#~ "is returned instead if the other comparand has a :meth:`timetuple` " -#~ "attribute. This hook gives other kinds of date objects a chance at " -#~ "implementing mixed-type comparison. If not, when a :class:`date` object " -#~ "is compared to an object of a different type, :exc:`TypeError` is raised " -#~ "unless the comparison is ``==`` or ``!=``. The latter cases " -#~ "return :const:`False` or :const:`True`, respectively." -#~ msgstr "" -#~ "En d'autres termes, ``date1 < date2`` si et seulement si " -#~ "``date1.toordinal() < date2.toordinal()``. La comparaison de dates lève " -#~ "une :exc:`TypeError` si l'autre opérande n'est pas un " -#~ "objet :class:`date`. Cependant, ``NotImplemented`` est renvoyé à la place " -#~ "si l'autre opérande a un attribut :meth:`timetuple`. Cela permet à " -#~ "d'autres types d'objets dates d'avoir une chance d'implémenter une " -#~ "comparaison entre types différents. Sinon, quand un objet :class:`date` " -#~ "est comparé à un objet d'un type différent, une :exc:`TypeError` est " -#~ "levée à moins que la comparaison soit ``==`` ou ``!=``. Ces derniers cas " -#~ "renvoient respectivement :const:`False` et :const:`True`." - -#~ msgid "Compares :class:`.datetime` to :class:`.datetime`. (4)" -#~ msgstr "Compare :class:`.datetime` à :class:`.datetime`. (4)" - -#~ msgid "" -#~ "If one comparand is naive and the other is aware, :exc:`TypeError` is " -#~ "raised if an order comparison is attempted. For equality comparisons, " -#~ "naive instances are never equal to aware instances." -#~ msgstr "" -#~ "Si un opérande est naïf et l'autre avisé, une :exc:`TypeError` est levée " -#~ "si une comparaison d'ordre est attendue. Pour les comparaisons " -#~ "d'égalité, les instances naïves ne sont jamais égales aux instances " -#~ "avisées." - -#~ msgid "" -#~ "In order to stop comparison from falling back to the default scheme of " -#~ "comparing object addresses, datetime comparison normally " -#~ "raises :exc:`TypeError` if the other comparand isn't also " -#~ "a :class:`.datetime` object. However, ``NotImplemented`` is returned " -#~ "instead if the other comparand has a :meth:`timetuple` attribute. This " -#~ "hook gives other kinds of date objects a chance at implementing mixed-" -#~ "type comparison. If not, when a :class:`.datetime` object is compared to " -#~ "an object of a different type, :exc:`TypeError` is raised unless the " -#~ "comparison is ``==`` or ``!=``. The latter cases return :const:`False` " -#~ "or :const:`True`, respectively." -#~ msgstr "" -#~ "Afin d'empêcher la comparaison de retomber sur le schéma par défaut de " -#~ "comparaison des adresses des objets, la comparaison *datetime* lève " -#~ "normalement une exception :exc:`TypeError` si l'autre opérande n'est pas " -#~ "aussi un objet :class:`.datetime`. Cependant, ``NotImplemented`` est " -#~ "renvoyé à la place si l'autre opérande a un attribut :meth:`timetuple`. " -#~ "Cela permet à d'autres types d'objets dates d'implémenter la comparaison " -#~ "entre types mixtes. Sinon, quand un objet :class:`.datetime` est comparé " -#~ "à un objet d'un type différent, une exception :exc:`TypeError` est levée " -#~ "à moins que la comparaison soit ``==`` ou ``!=``. Ces derniers cas " -#~ "renvoient respectivement :const:`False` et :const:`True`." - -#~ msgid "Examples of working with :class:`~datetime.datetime` objects:" -#~ msgstr "Exemples d'utilisation des objets :class:`~datetime.datetime` :" - -#~ msgid "" -#~ ":class:`.time` objects support comparison of :class:`.time` " -#~ "to :class:`.time`, where *a* is considered less than *b* when *a* " -#~ "precedes *b* in time. If one comparand is naive and the other is " -#~ "aware, :exc:`TypeError` is raised if an order comparison is attempted. " -#~ "For equality comparisons, naive instances are never equal to aware " -#~ "instances." -#~ msgstr "" -#~ "Les objets :class:`.time` gèrent la comparaison d'un :class:`.time` avec " -#~ "un autre :class:`.time`, où *a* est considéré inférieur à *b* s'il le " -#~ "précède dans le temps. Si un opérande est naïf et l'autre avisé, et " -#~ "qu'une relation d'ordre est attendue, une :exc:`TypeError` est levée. " -#~ "Pour les égalités, les instances naïves ne sont jamais égales aux " -#~ "instances avisées." - -#~ msgid "" -#~ "If both comparands are aware, and have the same :attr:`~time.tzinfo` " -#~ "attribute, the common :attr:`~time.tzinfo` attribute is ignored and the " -#~ "base times are compared. If both comparands are aware and have " -#~ "different :attr:`~time.tzinfo` attributes, the comparands are first " -#~ "adjusted by subtracting their UTC offsets (obtained from " -#~ "``self.utcoffset()``). In order to stop mixed-type comparisons from " -#~ "falling back to the default comparison by object address, when " -#~ "a :class:`.time` object is compared to an object of a different " -#~ "type, :exc:`TypeError` is raised unless the comparison is ``==`` or ``!" -#~ "=``. The latter cases return :const:`False` or :const:`True`, " -#~ "respectively." -#~ msgstr "" -#~ "Si les deux opérandes sont avisés, et ont le même " -#~ "attribut :attr:`~time.tzinfo`, l'attribut commun :attr:`~time.tzinfo` est " -#~ "ignoré et les temps de base sont comparés. Si les deux opérandes sont " -#~ "avisés et ont des attributs :attr:`~time.tzinfo` différents, ils sont " -#~ "d'abord ajustés en leur soustrayant leurs décalages UTC (obtenus à l'aide " -#~ "de ``self.utcoffset()``). Afin d'empêcher les comparaisons de types " -#~ "mixtes de retomber sur la comparaison par défaut par l'adresse de " -#~ "l'objet, quand un objet :class:`.time` est comparé à un objet de type " -#~ "différent, une :exc:`TypeError` est levée à moins que la comparaison soit " -#~ "``==`` ou ``!=``. Ces derniers cas renvoient " -#~ "respectivement :const:`False` et :const:`True`." - -#~ msgid "" -#~ "Equality comparisons between aware and naive :class:`~datetime.time` " -#~ "instances don't raise :exc:`TypeError`." -#~ msgstr "" -#~ "Les comparaisons d'égalité entre instances de :class:`~datetime.time` " -#~ "naïves et avisées ne lèvent pas de :exc:`TypeError`." - -#~ msgid "This is equivalent to::" -#~ msgstr "C’est équivalent à ::" - -#~ msgid "This is the inverse of :meth:`date.fromisoformat`." -#~ msgstr "C'est la réciproque de :meth:`date.fromisoformat`." - -#~ msgid "Specifically, this function supports strings in the format:" -#~ msgstr "" -#~ "Plus précisément, cette fonction prend en charge les chaînes de " -#~ "caractères dans le format :" - -#~ msgid "" -#~ "This does *not* support parsing arbitrary ISO 8601 strings - it is only " -#~ "intended as the inverse operation of :meth:`datetime.isoformat`. A more " -#~ "full-featured ISO 8601 parser, ``dateutil.parser.isoparse`` is available " -#~ "in the third-party package `dateutil `__." -#~ msgstr "" -#~ "Ceci ne prend pas en charge l'analyse arbitraire des chaînes de " -#~ "caractères ISO 8601 - il est uniquement destiné à l'opération réciproque " -#~ "de :meth:`datetime.isoformat`. Un analyseur ISO 8601 plus complet, " -#~ "``dateutil.parser.isoparse`` est disponible dans le paquet tiers " -#~ "`dateutil `__." - -#, fuzzy -#~ msgid "" -#~ "Return a :class:`.time` corresponding to a *time_string* in one of the " -#~ "formats emitted by :meth:`time.isoformat`. Specifically, this function " -#~ "supports strings in the format:" -#~ msgstr "" -#~ "Renvoie une :class:`date` correspondant à *date_string* dans le format " -#~ "émis par :meth:`date.isoformat`. Spécifiquement, cette fonction gère des " -#~ "chaînes dans le(s) format(s) ``YYYY-MM-DD`` :" - -#, fuzzy -#~ msgid "" -#~ "This does *not* support parsing arbitrary ISO 8601 strings. It is only " -#~ "intended as the inverse operation of :meth:`time.isoformat`." -#~ msgstr "" -#~ "Ceci ne gère pas l'analyse arbitraire de chaînes ISO 8601, ceci est " -#~ "seulement destiné à l'opération inverse de :meth:`time.isoformat`." - -#~ msgid "" -#~ "Week number of the year (Monday as the first day of the week) as a " -#~ "decimal number. All days in a new year preceding the first Monday are " -#~ "considered to be in week 0." -#~ msgstr "" -#~ "Numéro de la semaine à deux chiffres (où lundi est considéré comme le " -#~ "premier jour de la semaine). Tous les jours de l'année précédent le " -#~ "premier lundi sont considérés comme appartenant à la semaine 0." - -#~ msgid "`dateutil.tz `_" -#~ msgstr "`dateutil.tz `_" - -#~ msgid "Return a 3-tuple, (ISO year, ISO week number, ISO weekday)." -#~ msgstr "" -#~ "Renvoie un *n*-uplet de 3 éléments, (année ISO, numéro de semaine ISO, " -#~ "jour de la semaine ISO)." diff --git a/library/dbm.po b/library/dbm.po deleted file mode 100644 index 1f72c00b45..0000000000 --- a/library/dbm.po +++ /dev/null @@ -1,671 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: library/dbm.rst:2 -msgid ":mod:`!dbm` --- Interfaces to Unix \"databases\"" -msgstr "" - -#: library/dbm.rst:7 -#, fuzzy -msgid "**Source code:** :source:`Lib/dbm/__init__.py`" -msgstr "**Source code:** :source:`Lib/html/__init__.py`" - -#: library/dbm.rst:11 -msgid ":mod:`!dbm` is a generic interface to variants of the DBM database:" -msgstr "" - -#: library/dbm.rst:13 -msgid ":mod:`dbm.sqlite3`" -msgstr "" - -#: library/dbm.rst:14 -msgid ":mod:`dbm.gnu`" -msgstr "" - -#: library/dbm.rst:15 -msgid ":mod:`dbm.ndbm`" -msgstr "" - -#: library/dbm.rst:17 -msgid "" -"If none of these modules are installed, the slow-but-simple implementation " -"in module :mod:`dbm.dumb` will be used. There is a `third party interface " -"`_ to the Oracle Berkeley DB." -msgstr "" - -#: library/dbm.rst:23 -msgid "" -"None of the underlying modules will automatically shrink the disk space used " -"by the database file. However, :mod:`dbm.sqlite3`, :mod:`dbm.gnu` " -"and :mod:`dbm.dumb` provide a :meth:`!reorganize` method that can be used " -"for this purpose." -msgstr "" - -#: library/dbm.rst:30 -msgid "" -"A tuple containing the exceptions that can be raised by each of the " -"supported modules, with a unique exception also named :exc:`dbm.error` as " -"the first item --- the latter is used when :exc:`dbm.error` is raised." -msgstr "" - -#: library/dbm.rst:37 -msgid "" -"This function attempts to guess which of the several simple database modules " -"available --- :mod:`dbm.sqlite3`, :mod:`dbm.gnu`, :mod:`dbm.ndbm`, " -"or :mod:`dbm.dumb` --- should be used to open a given file." -msgstr "" - -#: library/dbm.rst:41 -#, fuzzy -msgid "Return one of the following values:" -msgstr "Le module définit :" - -#: library/dbm.rst:43 -msgid "" -"``None`` if the file can't be opened because it's unreadable or doesn't exist" -msgstr "" - -#: library/dbm.rst:44 -msgid "the empty string (``''``) if the file's format can't be guessed" -msgstr "" - -#: library/dbm.rst:45 -msgid "" -"a string containing the required module name, such as ``'dbm.ndbm'`` or " -"``'dbm.gnu'``" -msgstr "" - -#: library/dbm.rst:288 library/dbm.rst:499 -msgid "*filename* accepts a :term:`path-like object`." -msgstr "" - -#: library/dbm.rst:71 -msgid "Open a database and return the corresponding database object." -msgstr "" - -#: library/dbm.rst:0 -msgid "Parameters" -msgstr "Paramètres" - -#: library/dbm.rst:73 -msgid "" -"The database file to open. If the database file already exists, " -"the :func:`whichdb` function is used to determine its type and the " -"appropriate module is used; if it does not exist, the first submodule listed " -"above that can be imported is used." -msgstr "" - -#: library/dbm.rst:260 -msgid "The database file to open." -msgstr "" - -#: library/dbm.rst:76 -msgid "" -"If the database file already exists, the :func:`whichdb` function is used to " -"determine its type and the appropriate module is used; if it does not exist, " -"the first submodule listed above that can be imported is used." -msgstr "" - -#: library/dbm.rst:187 library/dbm.rst:397 -msgid "" -"* ``'r'`` (default): |flag_r| * ``'w'``: |flag_w| * ``'c'``: |flag_c| * " -"``'n'``: |flag_n|" -msgstr "" - -#: library/dbm.rst:189 library/dbm.rst:398 -msgid "``'r'`` (default): |flag_r|" -msgstr "" - -#: library/dbm.rst:190 library/dbm.rst:399 library/dbm.rst:475 -msgid "``'w'``: |flag_w|" -msgstr "" - -#: library/dbm.rst:191 library/dbm.rst:400 -msgid "``'c'``: |flag_c|" -msgstr "" - -#: library/dbm.rst:192 library/dbm.rst:401 library/dbm.rst:477 -msgid "``'n'``: |flag_n|" -msgstr "" - -#: library/dbm.rst:282 library/dbm.rst:479 -msgid "|mode_param_doc|" -msgstr "" - -#: library/dbm.rst:90 -msgid "*file* accepts a :term:`path-like object`." -msgstr "" - -#: library/dbm.rst:93 -msgid "" -"The object returned by :func:`~dbm.open` supports the basic functionality of " -"mutable :term:`mappings `; keys and their corresponding values can " -"be stored, retrieved, and deleted, and iteration, the :keyword:`in` operator " -"and methods :meth:`!keys`, :meth:`!get`, :meth:`!setdefault` and :meth:`!" -"clear` are available. The :meth:`!keys` method returns a list instead of a " -"view object. The :meth:`!setdefault` method requires two arguments." -msgstr "" - -#: library/dbm.rst:101 -msgid "" -"Key and values are always stored as :class:`bytes`. This means that when " -"strings are used they are implicitly converted to the default encoding " -"before being stored." -msgstr "" - -#: library/dbm.rst:105 -msgid "" -"These objects also support being used in a :keyword:`with` statement, which " -"will automatically close them when done." -msgstr "" - -#: library/dbm.rst:108 -msgid "" -":meth:`!get` and :meth:`!setdefault` methods are now available for " -"all :mod:`!dbm` backends." -msgstr "" - -#: library/dbm.rst:112 -msgid "" -"Added native support for the context management protocol to the objects " -"returned by :func:`~dbm.open`." -msgstr "" - -#: library/dbm.rst:116 -msgid "" -"Deleting a key from a read-only database raises a database module specific " -"exception instead of :exc:`KeyError`." -msgstr "" - -#: library/dbm.rst:120 -msgid ":meth:`!clear` methods are now available for all :mod:`!dbm` backends." -msgstr "" - -#: library/dbm.rst:124 -msgid "" -"The following example records some hostnames and a corresponding title, and " -"then prints out the contents of the database::" -msgstr "" - -#: library/dbm.rst:154 -msgid "Module :mod:`shelve`" -msgstr "Module :mod:`shelve`" - -#: library/dbm.rst:155 -msgid "Persistence module which stores non-string data." -msgstr "" - -#: library/dbm.rst:158 -msgid "The individual submodules are described in the following sections." -msgstr "" - -#: library/dbm.rst:161 -msgid ":mod:`!dbm.sqlite3` --- SQLite backend for dbm" -msgstr "" - -#: library/dbm.rst:168 -#, fuzzy -msgid "**Source code:** :source:`Lib/dbm/sqlite3.py`" -msgstr "**Code source :** :source:`Lib/bdb.py`" - -#: library/dbm.rst:172 -msgid "" -"This module uses the standard library :mod:`sqlite3` module to provide an " -"SQLite backend for the :mod:`!dbm` module. The files created by :mod:`!" -"dbm.sqlite3` can thus be opened by :mod:`sqlite3`, or any other SQLite " -"browser, including the SQLite CLI." -msgstr "" - -#: library/dbm.rst:375 includes/wasm-mobile-notavail.rst:3 -#: includes/wasm-notavail.rst:3 -msgid "Availability" -msgstr "Disponibilité" - -#: includes/wasm-notavail.rst:5 -msgid "" -"This module does not work or is not available on WebAssembly. See :ref:`wasm-" -"availability` for more information." -msgstr "" - -#: library/dbm.rst:181 -msgid "Open an SQLite database." -msgstr "" - -#: library/dbm.rst:183 -msgid "The path to the database to be opened." -msgstr "" - -#: library/dbm.rst:194 -msgid "" -"The Unix file access mode of the file (default: octal ``0o666``), used only " -"when the database has to be created." -msgstr "" - -#: library/dbm.rst:198 -msgid "" -"The returned database object behaves similar to a mutable :term:`mapping`, " -"but the :meth:`!keys` method returns a list, and the :meth:`!setdefault` " -"method requires two arguments. It also supports a \"closing\" context " -"manager via the :keyword:`with` keyword." -msgstr "" - -#: library/dbm.rst:304 library/dbm.rst:507 -msgid "The following methods are also provided:" -msgstr "" - -#: library/dbm.rst:207 -msgid "Close the SQLite database." -msgstr "" - -#: library/dbm.rst:211 -msgid "" -"If you have carried out a lot of deletions and would like to shrink the " -"space used on disk, this method will reorganize the database; otherwise, " -"deleted file space will be kept and reused as new (key, value) pairs are " -"added." -msgstr "" - -#: library/dbm.rst:216 -msgid "" -"While reorganizing, as much as two times the size of the original database " -"is required in free disk space. However, be aware that this factor changes " -"for each :mod:`!dbm` submodule." -msgstr "" - -#: library/dbm.rst:223 -msgid ":mod:`!dbm.gnu` --- GNU database manager" -msgstr "" - -#: library/dbm.rst:228 -#, fuzzy -msgid "**Source code:** :source:`Lib/dbm/gnu.py`" -msgstr "**Code source :** :source:`Lib/bdb.py`" - -#: library/dbm.rst:232 -msgid "" -"The :mod:`!dbm.gnu` module provides an interface to the :abbr:`GDBM (GNU " -"dbm)` library, similar to the :mod:`dbm.ndbm` module, but with additional " -"functionality like crash tolerance." -msgstr "" - -#: library/dbm.rst:238 -msgid "" -"The file formats created by :mod:`!dbm.gnu` and :mod:`dbm.ndbm` are " -"incompatible and can not be used interchangeably." -msgstr "" - -#: includes/wasm-mobile-notavail.rst:5 -msgid "" -"This module is not supported on :ref:`mobile platforms ` or :ref:`WebAssembly platforms `." -msgstr "" - -#: library/dbm.rst:247 -msgid "" -"Raised on :mod:`!dbm.gnu`-specific errors, such as I/O " -"errors. :exc:`KeyError` is raised for general mapping errors like specifying " -"an incorrect key." -msgstr "" - -#: library/dbm.rst:253 -msgid "" -"A string of characters the *flag* parameter of :meth:`~dbm.gnu.open` " -"supports." -msgstr "" - -#: library/dbm.rst:258 -msgid "Open a GDBM database and return a :class:`!gdbm` object." -msgstr "" - -#: library/dbm.rst:264 -msgid "" -"* ``'r'`` (default): |flag_r| * ``'w'``: |flag_w| * ``'c'``: |flag_c| * " -"``'n'``: |flag_n| The following additional characters may be appended to " -"control how the database is opened: * ``'f'``: Open the database in fast " -"mode. Writes to the database will not be synchronized. * ``'s'``: " -"Synchronized mode. Changes to the database will be written immediately to " -"the file. * ``'u'``: Do not lock database. Not all flags are valid for all " -"versions of GDBM. See the :data:`open_flags` member for a list of supported " -"flag characters." -msgstr "" - -#: library/dbm.rst:270 -msgid "" -"The following additional characters may be appended to control how the " -"database is opened:" -msgstr "" - -#: library/dbm.rst:273 -msgid "" -"``'f'``: Open the database in fast mode. Writes to the database will not be " -"synchronized." -msgstr "" - -#: library/dbm.rst:275 -msgid "" -"``'s'``: Synchronized mode. Changes to the database will be written " -"immediately to the file." -msgstr "" - -#: library/dbm.rst:277 -msgid "``'u'``: Do not lock database." -msgstr "" - -#: library/dbm.rst:279 -msgid "" -"Not all flags are valid for all versions of GDBM. See the :data:`open_flags` " -"member for a list of supported flag characters." -msgstr "" - -#: library/dbm.rst:0 -msgid "Raises" -msgstr "" - -#: library/dbm.rst:285 -msgid "If an invalid *flag* argument is passed." -msgstr "" - -#: library/dbm.rst:291 -msgid "" -":class:`!gdbm` objects behave similar to mutable :term:`mappings `, " -"but methods :meth:`!items`, :meth:`!values`, :meth:`!pop`, :meth:`!popitem`, " -"and :meth:`!update` are not supported, the :meth:`!keys` method returns a " -"list, and the :meth:`!setdefault` method requires two arguments. It also " -"supports a \"closing\" context manager via the :keyword:`with` keyword." -msgstr "" - -#: library/dbm.rst:416 -msgid "Added the :meth:`!get` and :meth:`!setdefault` methods." -msgstr "" - -#: library/dbm.rst:419 -msgid "Added the :meth:`!clear` method." -msgstr "" - -#: library/dbm.rst:308 -msgid "Close the GDBM database." -msgstr "" - -#: library/dbm.rst:312 -msgid "" -"It's possible to loop over every key in the database using this method and " -"the :meth:`nextkey` method. The traversal is ordered by GDBM's internal " -"hash values, and won't be sorted by the key values. This method returns the " -"starting key." -msgstr "" - -#: library/dbm.rst:319 -msgid "" -"Returns the key that follows *key* in the traversal. The following code " -"prints every key in the database ``db``, without having to create a list in " -"memory that contains them all::" -msgstr "" - -#: library/dbm.rst:330 -msgid "" -"If you have carried out a lot of deletions and would like to shrink the " -"space used by the GDBM file, this routine will reorganize the " -"database. :class:`!gdbm` objects will not shorten the length of a database " -"file except by using this reorganization; otherwise, deleted file space will " -"be kept and reused as new (key, value) pairs are added." -msgstr "" - -#: library/dbm.rst:337 -msgid "" -"While reorganizing, as much as one time the size of the original database is " -"required in free disk space. However, be aware that this factor changes for " -"each :mod:`!dbm` submodule." -msgstr "" - -#: library/dbm.rst:342 -msgid "" -"When the database has been opened in fast mode, this method forces any " -"unwritten data to be written to the disk." -msgstr "" - -#: library/dbm.rst:347 -msgid ":mod:`!dbm.ndbm` --- New Database Manager" -msgstr "" - -#: library/dbm.rst:352 -#, fuzzy -msgid "**Source code:** :source:`Lib/dbm/ndbm.py`" -msgstr "**Code source :** :source:`Lib/bdb.py`" - -#: library/dbm.rst:356 -msgid "" -"The :mod:`!dbm.ndbm` module provides an interface to the :abbr:`NDBM (New " -"Database Manager)` library. This module can be used with the \"classic\" " -"NDBM interface or the :abbr:`GDBM (GNU dbm)` compatibility interface." -msgstr "" - -#: library/dbm.rst:363 -msgid "" -"The file formats created by :mod:`dbm.gnu` and :mod:`!dbm.ndbm` are " -"incompatible and can not be used interchangeably." -msgstr "" - -#: library/dbm.rst:368 -msgid "" -"The NDBM library shipped as part of macOS has an undocumented limitation on " -"the size of values, which can result in corrupted database files when " -"storing values larger than this limit. Reading such corrupted files can " -"result in a hard crash (segmentation fault)." -msgstr "" - -#: library/dbm.rst:379 -msgid "" -"Raised on :mod:`!dbm.ndbm`-specific errors, such as I/O " -"errors. :exc:`KeyError` is raised for general mapping errors like specifying " -"an incorrect key." -msgstr "" - -#: library/dbm.rst:385 -msgid "Name of the NDBM implementation library used." -msgstr "" - -#: library/dbm.rst:390 -msgid "Open an NDBM database and return an :class:`!ndbm` object." -msgstr "" - -#: library/dbm.rst:392 -msgid "" -"The basename of the database file (without the :file:`.dir` or :file:`.pag` " -"extensions)." -msgstr "" - -#: library/dbm.rst:406 -msgid "Accepts :term:`path-like object` for filename." -msgstr "" - -#: library/dbm.rst:409 -msgid "" -":class:`!ndbm` objects behave similar to mutable :term:`mappings `, " -"but methods :meth:`!items`, :meth:`!values`, :meth:`!pop`, :meth:`!popitem`, " -"and :meth:`!update` are not supported, the :meth:`!keys` method returns a " -"list, and the :meth:`!setdefault` method requires two arguments. It also " -"supports a \"closing\" context manager via the :keyword:`with` keyword." -msgstr "" - -#: library/dbm.rst:422 -msgid "The following method is also provided:" -msgstr "" - -#: library/dbm.rst:426 -msgid "Close the NDBM database." -msgstr "" - -#: library/dbm.rst:430 -msgid ":mod:`!dbm.dumb` --- Portable DBM implementation" -msgstr "" - -#: library/dbm.rst:435 -#, fuzzy -msgid "**Source code:** :source:`Lib/dbm/dumb.py`" -msgstr "**Code source :** :source:`Lib/bdb.py`" - -#: library/dbm.rst:441 -msgid "" -"The :mod:`!dbm.dumb` module is intended as a last resort fallback for " -"the :mod:`!dbm` module when a more robust module is not available. " -"The :mod:`!dbm.dumb` module is not written for speed and is not nearly as " -"heavily used as the other database modules." -msgstr "" - -#: library/dbm.rst:448 -msgid "" -"The :mod:`!dbm.dumb` module provides a persistent :class:`dict`-like " -"interface which is written entirely in Python. Unlike other :mod:`!dbm` " -"backends, such as :mod:`dbm.gnu`, no external library is required." -msgstr "" - -#: library/dbm.rst:453 -#, fuzzy -msgid "The :mod:`!dbm.dumb` module defines the following:" -msgstr "Le module définit :" - -#: library/dbm.rst:457 -msgid "" -"Raised on :mod:`!dbm.dumb`-specific errors, such as I/O " -"errors. :exc:`KeyError` is raised for general mapping errors like " -"specifying an incorrect key." -msgstr "" - -#: library/dbm.rst:463 -msgid "Open a :mod:`!dbm.dumb` database." -msgstr "" - -#: library/dbm.rst:465 -msgid "" -"The basename of the database file (without extensions). A new database " -"creates the following files: - :file:`{filename}.dat` " -"- :file:`{filename}.dir`" -msgstr "" - -#: library/dbm.rst:466 -msgid "" -"The basename of the database file (without extensions). A new database " -"creates the following files:" -msgstr "" - -#: library/dbm.rst:469 -msgid ":file:`{filename}.dat`" -msgstr "" - -#: library/dbm.rst:470 -msgid ":file:`{filename}.dir`" -msgstr "" - -#: library/dbm.rst:473 -msgid "" -"* ``'r'``: |flag_r| * ``'w'``: |flag_w| * ``'c'`` (default): |flag_c| * " -"``'n'``: |flag_n|" -msgstr "" - -#: library/dbm.rst:474 -msgid "``'r'``: |flag_r|" -msgstr "" - -#: library/dbm.rst:476 -msgid "``'c'`` (default): |flag_c|" -msgstr "" - -#: library/dbm.rst:483 -#, fuzzy -msgid "" -"It is possible to crash the Python interpreter when loading a database with " -"a sufficiently large/complex entry due to stack depth limitations in " -"Python's AST compiler." -msgstr "" -"Il est possible de faire planter l'interpréteur Python avec des chaînes " -"suffisamment grandes ou complexes lors de la compilation d'un objet AST dû à " -"la limitation de la profondeur de la pile d'appels." - -#: library/dbm.rst:488 -msgid "" -":mod:`!dbm.dumb` does not support concurrent read/write access. (Multiple " -"simultaneous read accesses are safe.) When a program has the database open " -"for writing, no other program should have it open for reading or writing." -msgstr "" - -#: library/dbm.rst:492 -msgid "" -":func:`~dbm.dumb.open` always creates a new database when *flag* is ``'n'``." -msgstr "" - -#: library/dbm.rst:495 -msgid "" -"A database opened read-only if *flag* is ``'r'``. A database is not created " -"if it does not exist if *flag* is ``'r'`` or ``'w'``." -msgstr "" - -#: library/dbm.rst:502 -msgid "" -"The returned database object behaves similar to a mutable :term:`mapping`, " -"but the :meth:`!keys` and :meth:`!items` methods return lists, and " -"the :meth:`!setdefault` method requires two arguments. It also supports a " -"\"closing\" context manager via the :keyword:`with` keyword." -msgstr "" - -#: library/dbm.rst:511 -msgid "Close the database." -msgstr "" - -#: library/dbm.rst:515 -msgid "" -"If you have carried out a lot of deletions and would like to shrink the " -"space used on disk, this method will reorganize the database; otherwise, " -"deleted file space will not be reused." -msgstr "" - -#: library/dbm.rst:520 -msgid "" -"While reorganizing, no additional free disk space is required. However, be " -"aware that this factor changes for each :mod:`!dbm` submodule." -msgstr "" - -#: library/dbm.rst:527 -msgid "" -"Synchronize the on-disk directory and data files. This method is called by " -"the :meth:`shelve.Shelf.sync` method." -msgstr "" - -#~ msgid "Value" -#~ msgstr "Valeur" - -#~ msgid "Meaning" -#~ msgstr "Signification" - -#~ msgid "``'r'``" -#~ msgstr "``'r'``" - -#~ msgid "``'w'``" -#~ msgstr "``'w'``" - -#~ msgid "``'c'``" -#~ msgstr "``'c'``" - -#~ msgid "``'n'``" -#~ msgstr "``'n'``" - -#~ msgid "``'f'``" -#~ msgstr "``'f'``" - -#~ msgid "``'s'``" -#~ msgstr "``'s'``" - -#~ msgid "``'u'``" -#~ msgstr "``'u'``" diff --git a/library/debug.po b/library/debug.po deleted file mode 100644 index db7238b14d..0000000000 --- a/library/debug.po +++ /dev/null @@ -1,39 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-10-31 11:32+0100\n" -"Last-Translator: Cléo Buck \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.6\n" - -#: library/debug.rst:3 -#, fuzzy -msgid "Debugging and profiling" -msgstr "Débogueur et instrumentation" - -#: library/debug.rst:5 -msgid "" -"These libraries help you with Python development: the debugger enables you " -"to step through code, analyze stack frames and set breakpoints etc., and the " -"profilers run code and give you a detailed breakdown of execution times, " -"allowing you to identify bottlenecks in your programs. Auditing events " -"provide visibility into runtime behaviors that would otherwise require " -"intrusive debugging or patching." -msgstr "" -"Ces bibliothèques sont là pour vous aider lors du développement en Python : " -"Le débogueur vous permet d'avancer pas à pas dans le code, d'analyser la " -"pile d'appel, de placer des points d'arrêts, … Les outils d'instrumentation " -"exécutent du code et vous donnent un rapport détaillé du temps d'exécution, " -"vous permettant d'identifier les goulots d'étranglement dans vos programmes. " -"Les événements d'audit fournissent une visibilité sur les comportements " -"d'exécution qui nécessiteraient autrement un débogage ou une correction " -"intrusifs." diff --git a/library/decimal.po b/library/decimal.po deleted file mode 100644 index f3555e3521..0000000000 --- a/library/decimal.po +++ /dev/null @@ -1,2813 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-05-20 20:21+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/decimal.rst:2 -#, fuzzy -msgid ":mod:`!decimal` --- Decimal fixed-point and floating-point arithmetic" -msgstr ":mod:`decimal` — Arithmétique décimale en virgule fixe et flottante" - -#: library/decimal.rst:7 -msgid "**Source code:** :source:`Lib/decimal.py`" -msgstr "**Code source :** :source:`Lib/decimal.py`" - -#: library/decimal.rst:25 -#, fuzzy -msgid "" -"The :mod:`!decimal` module provides support for fast correctly rounded " -"decimal floating-point arithmetic. It offers several advantages over " -"the :class:`float` datatype:" -msgstr "" -"Le module :mod:`decimal` fournit une arithmétique en virgule flottante " -"rapide et produisant des arrondis mathématiquement corrects. Il possède " -"plusieurs avantages par rapport au type :class:`float` :" - -#: library/decimal.rst:29 -#, fuzzy -msgid "" -"Decimal \"is based on a `floating-point model `__ which was designed with people in mind, " -"and necessarily has a paramount guiding principle -- computers must provide " -"an arithmetic that works in the same way as the arithmetic that people learn " -"at school.\" -- excerpt from the decimal arithmetic specification." -msgstr "" -"Le module ``decimal`` « est basé sur un modèle en virgule flottante conçu " -"pour les humains, qui suit ce principe directeur : l'ordinateur doit fournir " -"un modèle de calcul qui fonctionne de la même manière que le calcul qu'on " -"apprend à l'école » – extrait (traduit) de la spécification de " -"l'arithmétique décimale." - -#: library/decimal.rst:36 -msgid "" -"Decimal numbers can be represented exactly. In contrast, numbers like " -"``1.1`` and ``2.2`` do not have exact representations in binary floating " -"point. End users typically would not expect ``1.1 + 2.2`` to display as " -"``3.3000000000000003`` as it does with binary floating point." -msgstr "" -"Les nombres décimaux peuvent être représentés exactement en base décimale " -"flottante. En revanche, des nombres tels que ``1.1`` ou ``1.2`` n'ont pas de " -"représentation exacte en base binaire flottante. L'utilisateur final ne " -"s'attend typiquement pas à obtenir ``3.3000000000000003`` lorsqu'il saisit " -"``1.1 + 2.2``, ce qui se passe en arithmétique binaire à virgule flottante." - -#: library/decimal.rst:41 -msgid "" -"The exactness carries over into arithmetic. In decimal floating point, " -"``0.1 + 0.1 + 0.1 - 0.3`` is exactly equal to zero. In binary floating " -"point, the result is ``5.5511151231257827e-017``. While near to zero, the " -"differences prevent reliable equality testing and differences can " -"accumulate. For this reason, decimal is preferred in accounting applications " -"which have strict equality invariants." -msgstr "" -"Ces inexactitudes ont des conséquences en arithmétique. En base décimale à " -"virgule flottante, ``0.1 + 0.1 + 0.1 - 0.3`` est exactement égal à zéro. En " -"virgule flottante binaire, l'ordinateur l'évalue à " -"``5.5511151231257827e-017``. Bien que très proche de zéro, cette différence " -"induit des erreurs lors des tests d'égalité, erreurs qui peuvent " -"s'accumuler. Pour ces raisons ``decimal`` est le module utilisé pour des " -"applications comptables ayant des contraintes strictes de fiabilité." - -#: library/decimal.rst:48 -msgid "" -"The decimal module incorporates a notion of significant places so that " -"``1.30 + 1.20`` is ``2.50``. The trailing zero is kept to indicate " -"significance. This is the customary presentation for monetary applications. " -"For multiplication, the \"schoolbook\" approach uses all the figures in the " -"multiplicands. For instance, ``1.3 * 1.2`` gives ``1.56`` while ``1.30 * " -"1.20`` gives ``1.5600``." -msgstr "" -"Le module ``decimal`` incorpore la notion de chiffres significatifs, de " -"façon à ce que ``1.30 + 1.20`` égale ``2.50``. Le dernier zéro est conservé " -"pour respecter le nombre de chiffres significatifs. C'est l'affichage " -"préféré pour représenter des sommes d'argent. Pour la multiplication, " -"l'approche « scolaire » utilise tous les chiffres présents dans les " -"facteurs. Par exemple, ``1.3 * 1.2`` donne ``1.56`` tandis que ``1.30 * " -"1.20`` donne ``1.5600``." - -#: library/decimal.rst:55 -msgid "" -"Unlike hardware based binary floating point, the decimal module has a user " -"alterable precision (defaulting to 28 places) which can be as large as " -"needed for a given problem:" -msgstr "" -"Contrairement à l'arithmétique en virgule flottante binaire, le module " -"``decimal`` possède un paramètre de précision ajustable (par défaut à 28 " -"chiffres significatifs) qui peut être aussi élevée que nécessaire pour un " -"problème donné :" - -#: library/decimal.rst:67 -msgid "" -"Both binary and decimal floating point are implemented in terms of published " -"standards. While the built-in float type exposes only a modest portion of " -"its capabilities, the decimal module exposes all required parts of the " -"standard. When needed, the programmer has full control over rounding and " -"signal handling. This includes an option to enforce exact arithmetic by " -"using exceptions to block any inexact operations." -msgstr "" -"L'arithmétique binaire et décimale en virgule flottante sont implémentées " -"selon des standards publiés. Alors que le type ``float`` n'expose qu'une " -"faible portion de ses capacités, le module ``decimal`` expose tous les " -"composants nécessaires du standard. Lorsque nécessaire, le développeur a un " -"contrôle total de la gestion des signaux et de l'arrondi. Cela inclut la " -"possibilité de forcer une arithmétique exacte en utilisant des exceptions " -"pour bloquer toute opération inexacte." - -#: library/decimal.rst:74 -msgid "" -"The decimal module was designed to support \"without prejudice, both exact " -"unrounded decimal arithmetic (sometimes called fixed-point arithmetic) and " -"rounded floating-point arithmetic.\" -- excerpt from the decimal arithmetic " -"specification." -msgstr "" -"Le module ``decimal`` a été conçu pour gérer « sans préjugé, à la fois une " -"arithmétique décimale non-arrondie (aussi appelée arithmétique en virgule " -"fixe) et à la fois une arithmétique en virgule flottante » (extrait traduit " -"de la spécification de l'arithmétique décimale)." - -#: library/decimal.rst:79 -msgid "" -"The module design is centered around three concepts: the decimal number, " -"the context for arithmetic, and signals." -msgstr "" -"Le module est conçu autour de trois concepts : le nombre décimal, le " -"contexte arithmétique et les signaux." - -#: library/decimal.rst:82 -msgid "" -"A decimal number is immutable. It has a sign, coefficient digits, and an " -"exponent. To preserve significance, the coefficient digits do not truncate " -"trailing zeros. Decimals also include special values such as ``Infinity``, " -"``-Infinity``, and ``NaN``. The standard also differentiates ``-0`` from " -"``+0``." -msgstr "" -"Un ``Decimal`` est immuable. Il a un signe, un coefficient et un exposant. " -"Pour préserver le nombre de chiffres significatifs, les zéros en fin de " -"chaîne ne sont pas tronqués. Les décimaux incluent aussi des valeurs " -"spéciales telles que ``Infinity``, ``-Infinity`` et ``NaN``. Le standard " -"fait également la différence entre ``-0`` et ``+0``." - -#: library/decimal.rst:88 -msgid "" -"The context for arithmetic is an environment specifying precision, rounding " -"rules, limits on exponents, flags indicating the results of operations, and " -"trap enablers which determine whether signals are treated as exceptions. " -"Rounding options " -"include :const:`ROUND_CEILING`, :const:`ROUND_DOWN`, :const:`ROUND_FLOOR`, :const:`ROUND_HALF_DOWN`, :const:`ROUND_HALF_EVEN`, :const:`ROUND_HALF_UP`, :const:`ROUND_UP`, " -"and :const:`ROUND_05UP`." -msgstr "" -"Le contexte de l'arithmétique est un environnement qui permet de configurer " -"une précision, une règle pour l'arrondi, des limites sur l'exposant, des " -"options indiquant le résultat des opérations et si les signaux (remontés " -"lors d'opérations illégales) sont traités comme des exceptions Python. Les " -"options d'arrondi " -"incluent :const:`ROUND_CEILING`, :const:`ROUND_DOWN`, :const:`ROUND_FLOOR`, :const:`ROUND_HALF_DOWN`, :const:`ROUND_HALF_EVEN`, :const:`ROUND_HALF_UP`, :const:`ROUND_UP` " -"et :const:`ROUND_05UP`." - -#: library/decimal.rst:95 -msgid "" -"Signals are groups of exceptional conditions arising during the course of " -"computation. Depending on the needs of the application, signals may be " -"ignored, considered as informational, or treated as exceptions. The signals " -"in the decimal module " -"are: :const:`Clamped`, :const:`InvalidOperation`, :const:`DivisionByZero`, :const:`Inexact`, :const:`Rounded`, :const:`Subnormal`, :const:`Overflow`, :const:`Underflow` " -"and :const:`FloatOperation`." -msgstr "" -"Les signaux sont des groupes de conditions exceptionnelles qui surviennent " -"durant le calcul. Selon les besoins de l'application, les signaux peuvent " -"être ignorés, considérés comme de l'information, ou bien traités comme des " -"exceptions. Les signaux dans le module ``decimal`` " -"sont : :const:`Clamped`, :const:`InvalidOperation`, :const:`DivisionByZero`, :const:`Inexact`, :const:`Rounded`, :const:`Subnormal`, :const:`Overflow`, :const:`Underflow` " -"et :const:`FloatOperation`." - -#: library/decimal.rst:102 -msgid "" -"For each signal there is a flag and a trap enabler. When a signal is " -"encountered, its flag is set to one, then, if the trap enabler is set to " -"one, an exception is raised. Flags are sticky, so the user needs to reset " -"them before monitoring a calculation." -msgstr "" -"Chaque signal est configurable indépendamment, à travers un drapeau (ou " -"option) et un activateur de déroutement. Quand une opération illégale " -"survient, le drapeau du signal est mis à ``1`` puis, si l'activateur est " -"configuré, une exception est levée. La mise à ``1`` du drapeau est " -"persistante, l'utilisateur doit donc remettre les drapeaux à zéro avant de " -"commencer un calcul qu'il souhaite surveiller." - -#: library/decimal.rst:110 -msgid "" -"IBM's General Decimal Arithmetic Specification, `The General Decimal " -"Arithmetic Specification `_." -msgstr "" -"Spécification d'IBM sur l'arithmétique décimale : `The General Decimal " -"Arithmetic Specification `_ " -"(article en anglais)." - -#: library/decimal.rst:119 -#, fuzzy -msgid "Quick-start tutorial" -msgstr "Introduction pratique" - -#: library/decimal.rst:121 -msgid "" -"The usual start to using decimals is importing the module, viewing the " -"current context with :func:`getcontext` and, if necessary, setting new " -"values for precision, rounding, or enabled traps::" -msgstr "" -"Commençons par importer le module, regarder le contexte actuel " -"avec :func:`getcontext` et, si nécessaire, configurer la précision, " -"l'arrondi et la gestion des signaux ::" - -#: library/decimal.rst:133 -msgid "" -"Decimal instances can be constructed from integers, strings, floats, or " -"tuples. Construction from an integer or a float performs an exact conversion " -"of the value of that integer or float. Decimal numbers include special " -"values such as ``NaN`` which stands for \"Not a number\", positive and " -"negative ``Infinity``, and ``-0``::" -msgstr "" -"Les instances de ``Decimal`` peuvent être construites avec des entiers, des " -"chaînes de caractères, des ``floats`` ou des *n*-uplets. La construction " -"depuis un entier ou un ``float`` effectue la conversion exacte de cet entier " -"ou de ce ``float``. Les nombres décimaux incluent des valeurs spéciales " -"telles que ``NaN`` qui signifie en anglais « *Not a number* », en français " -"« pas un nombre », des ``Infinity`` positifs ou négatifs et ``-0`` ::" - -#: library/decimal.rst:157 -msgid "" -"If the :exc:`FloatOperation` signal is trapped, accidental mixing of " -"decimals and floats in constructors or ordering comparisons raises an " -"exception::" -msgstr "" -"Si le signal :exc:`FloatOperation` est activé pour déroutement, un mélange " -"accidentel d'objets ``Decimal`` et de ``float`` dans les constructeurs ou " -"des opérations de comparaison lève une exception ::" - -#: library/decimal.rst:176 -msgid "" -"The significance of a new Decimal is determined solely by the number of " -"digits input. Context precision and rounding only come into play during " -"arithmetic operations." -msgstr "" -"Le nombre de chiffres significatifs d'un nouvel objet ``Decimal`` est " -"déterminé entièrement par le nombre de chiffres saisis. La précision et les " -"règles d'arrondis n'interviennent que lors d'opérations arithmétiques." - -#: library/decimal.rst:193 -msgid "" -"If the internal limits of the C version are exceeded, constructing a decimal " -"raises :class:`InvalidOperation`::" -msgstr "" -"Si les limites internes de la version en C sont dépassées, la construction " -"d'un objet décimal lève l'exception :class:`InvalidOperation` ::" - -#: library/decimal.rst:203 -#, fuzzy -msgid "" -"Decimals interact well with much of the rest of Python. Here is a small " -"decimal floating-point flying circus:" -msgstr "" -"Les objets ``Decimal`` interagissent très bien avec le reste de Python. " -"Voici quelques exemples d'opérations avec des décimaux :" - -#: library/decimal.rst:235 -msgid "" -"Decimals can be formatted (with :func:`format` built-in or :ref:`f-strings`) " -"in fixed-point or scientific notation, using the same formatting syntax " -"(see :ref:`formatspec`) as builtin :class:`float` type:" -msgstr "" - -#: library/decimal.rst:255 -msgid "And some mathematical functions are also available to Decimal:" -msgstr "" -"Et certaines fonctions mathématiques sont également disponibles sur des " -"instances de ``Decimal`` :" - -#: library/decimal.rst:267 -msgid "" -"The :meth:`~Decimal.quantize` method rounds a number to a fixed exponent. " -"This method is useful for monetary applications that often round results to " -"a fixed number of places:" -msgstr "" -"La méthode :meth:`~Decimal.quantize` arrondit un nombre à un exposant " -"déterminé. Cette méthode est utile pour des applications monétaires qui " -"arrondissent souvent un résultat à un nombre déterminé de chiffres après la " -"virgule :" - -#: library/decimal.rst:276 -msgid "" -"As shown above, the :func:`getcontext` function accesses the current context " -"and allows the settings to be changed. This approach meets the needs of " -"most applications." -msgstr "" -"Comme montré plus haut, la fonction :func:`getcontext` accède au contexte " -"actuel et permet de modifier les paramètres. Cette approche répond aux " -"besoins de la plupart des applications." - -#: library/decimal.rst:280 -#, fuzzy -msgid "" -"For more advanced work, it may be useful to create alternate contexts using " -"the :meth:`Context` constructor. To make an alternate active, use " -"the :func:`setcontext` function." -msgstr "" -"Pour un travail plus avancé, il peut être utile de créer des contextes " -"alternatifs en utilisant le constructeur de ``Context``. Pour activer cet " -"objet ``Context``, utilisez la fonction :func:`setcontext`." - -#: library/decimal.rst:284 -#, fuzzy -msgid "" -"In accordance with the standard, the :mod:`!decimal` module provides two " -"ready to use standard contexts, :const:`BasicContext` " -"and :const:`ExtendedContext`. The former is especially useful for debugging " -"because many of the traps are enabled:" -msgstr "" -"En accord avec le standard, le module :mod:`decimal` fournit des objets " -"*Context* standards, :const:`BasicContext` et :const:`ExtendedContext`. Le " -"premier est particulièrement utile pour le débogage car beaucoup des signaux " -"ont leur déroutement activé :" - -#: library/decimal.rst:313 -msgid "" -"Contexts also have signal flags for monitoring exceptional conditions " -"encountered during computations. The flags remain set until explicitly " -"cleared, so it is best to clear the flags before each set of monitored " -"computations by using the :meth:`~Context.clear_flags` method. ::" -msgstr "" -"Les objets ``Context`` ont aussi des options pour détecter des opérations " -"illégales lors des calculs. Ces options restent activées jusqu'à ce qu'elles " -"soit remises à zéro de manière explicite. Il convient donc de remettre à " -"zéro ces options avant chaque inspection de chaque calcul, avec la " -"méthode :meth:`~Context.clear_flags`. ::" - -#: library/decimal.rst:326 -msgid "" -"The *flags* entry shows that the rational approximation to pi was rounded " -"(digits beyond the context precision were thrown away) and that the result " -"is inexact (some of the discarded digits were non-zero)." -msgstr "" -"Les options montrent que l'approximation de π par une fraction a été " -"arrondie (les chiffres au-delà de la précision spécifiée par l'objet " -"*Context* ont été tronqués) et que le résultat est différent (certains des " -"chiffres tronqués étaient différents de zéro)." - -#: library/decimal.rst:330 -msgid "" -"Individual traps are set using the dictionary in the :attr:`~Context.traps` " -"attribute of a context:" -msgstr "" -"L'activation du déroutement se fait en utilisant un dictionnaire dans " -"l'attribut :attr:`~Context.traps` du contexte :" - -#: library/decimal.rst:345 -msgid "" -"Most programs adjust the current context only once, at the beginning of the " -"program. And, in many applications, data is converted to :class:`Decimal` " -"with a single cast inside a loop. With context set and decimals created, " -"the bulk of the program manipulates the data no differently than with other " -"Python numeric types." -msgstr "" -"La plupart des applications n'ajustent l'objet ``Context`` qu'une seule " -"fois, au démarrage. Et, dans beaucoup d'applications, les données sont " -"converties une fois pour toutes en :class:`Decimal`. Une fois le ``Context`` " -"initialisé et les objets ``Decimal`` créés, la majeure partie du programme " -"manipule les données de la même manière qu'avec d'autres types numériques " -"Python." - -#: library/decimal.rst:357 -msgid "Decimal objects" -msgstr "Les objets *Decimal*" - -#: library/decimal.rst:362 -msgid "Construct a new :class:`Decimal` object based from *value*." -msgstr "Construit un nouvel objet :class:`Decimal` à partir de *value*." - -#: library/decimal.rst:364 -msgid "" -"*value* can be an integer, string, tuple, :class:`float`, or " -"another :class:`Decimal` object. If no *value* is given, returns " -"``Decimal('0')``. If *value* is a string, it should conform to the decimal " -"numeric string syntax after leading and trailing whitespace characters, as " -"well as underscores throughout, are removed::" -msgstr "" -"*value* peut être un entier, une chaîne de caractères, un *n*-uplet, " -"un :class:`float` ou une autre instance de :class:`Decimal`. Si *value* " -"n'est pas fourni, le constructeur renvoie ``Decimal('0')``. Si *value* est " -"une chaîne de caractères, elle doit correspondre à la syntaxe décimale en " -"dehors des espaces de début et de fin, ou des tirets bas, qui sont enlevés ::" - -#: library/decimal.rst:380 -#, fuzzy -msgid "" -"Other Unicode decimal digits are also permitted where ``digit`` appears " -"above. These include decimal digits from various other alphabets (for " -"example, Arabic-Indic and Devanāgarī digits) along with the fullwidth digits " -"``'\\uff10'`` through ``'\\uff19'``. Case is not significant, so, for " -"example, ``inf``, ``Inf``, ``INFINITY``, and ``iNfINity`` are all acceptable " -"spellings for positive infinity." -msgstr "" -"Les chiffres codés en Unicode sont aussi autorisés, dans les emplacements " -"``digit`` ci-dessus. Cela inclut des chiffres décimaux venant d'autres " -"alphabets (par exemple les chiffres indo-arabes ou Devanagari) ainsi que les " -"chiffres de pleine largeur ``'\\uff10'`` jusqu'à ``'\\uff19'``." - -#: library/decimal.rst:387 -msgid "" -"If *value* is a :class:`tuple`, it should have three components, a sign " -"(``0`` for positive or ``1`` for negative), a :class:`tuple` of digits, and " -"an integer exponent. For example, ``Decimal((0, (1, 4, 1, 4), -3))`` returns " -"``Decimal('1.414')``." -msgstr "" -"Si *value* est un :class:`n-uplet `, il doit avoir trois éléments, le " -"signe (``0`` pour positif ou ``1`` pour négatif), un :class:`n-uplet " -"` de chiffres et un entier représentant l'exposant. Par exemple, " -"``Decimal((0, (1, 4, 1, 4), -3))`` construit l'objet ``Decimal('1.414')``." - -#: library/decimal.rst:392 -#, fuzzy -msgid "" -"If *value* is a :class:`float`, the binary floating-point value is " -"losslessly converted to its exact decimal equivalent. This conversion can " -"often require 53 or more digits of precision. For example, " -"``Decimal(float('1.1'))`` converts to " -"``Decimal('1.100000000000000088817841970012523233890533447265625')``." -msgstr "" -"Si *value* est un :class:`float`, la valeur en binaire flottant est " -"convertie exactement à son équivalent décimal. Cette conversion peut parfois " -"nécessiter 53 chiffres significatifs ou plus. Par exemple, " -"``Decimal(float('1.1'))`` devient " -"``Decimal('1.100000000000000088817841970012523233890533447265625')``." - -#: library/decimal.rst:398 -msgid "" -"The *context* precision does not affect how many digits are stored. That is " -"determined exclusively by the number of digits in *value*. For example, " -"``Decimal('3.00000')`` records all five zeros even if the context precision " -"is only three." -msgstr "" -"La précision spécifiée dans le contexte n'affecte pas le nombre de chiffres " -"stockés. Cette valeur est déterminée exclusivement par le nombre de chiffres " -"dans *value*. Par exemple, ``Decimal('3.00000')`` enregistre les 5 zéros " -"même si la précision du contexte est de 3." - -#: library/decimal.rst:403 -msgid "" -"The purpose of the *context* argument is determining what to do if *value* " -"is a malformed string. If the context traps :const:`InvalidOperation`, an " -"exception is raised; otherwise, the constructor returns a new Decimal with " -"the value of ``NaN``." -msgstr "" -"L'objectif de l'argument *context* est de déterminer ce que Python doit " -"faire si *value* est une chaîne avec un mauvais format. Si le déroutement " -"est activé pour :const:`InvalidOperation`, une exception est levée, sinon le " -"constructeur renvoie un objet ``Decimal`` de valeur ``NaN``." - -#: library/decimal.rst:408 -msgid "Once constructed, :class:`Decimal` objects are immutable." -msgstr "Une fois construit, un objet :class:`Decimal` est immuable." - -# suit un : -#: library/decimal.rst:410 -msgid "" -"The argument to the constructor is now permitted to be a :class:`float` " -"instance." -msgstr "" -"l'argument du constructeur peut désormais être un objet :class:`float`." - -# suit un : -#: library/decimal.rst:414 -msgid "" -":class:`float` arguments raise an exception if the :exc:`FloatOperation` " -"trap is set. By default the trap is off." -msgstr "" -"un argument :class:`float` lève une exception si le déroutement est activé " -"pour :exc:`FloatOperation`. Par défaut le déroutement n'est pas activé." - -# suit un : -#: library/decimal.rst:418 -msgid "" -"Underscores are allowed for grouping, as with integral and floating-point " -"literals in code." -msgstr "" -"les tirets bas sont autorisés pour regrouper, tout comme pour l'arithmétique " -"en virgule fixe et flottante." - -#: library/decimal.rst:422 -#, fuzzy -msgid "" -"Decimal floating-point objects share many properties with the other built-in " -"numeric types such as :class:`float` and :class:`int`. All of the usual " -"math operations and special methods apply. Likewise, decimal objects can be " -"copied, pickled, printed, used as dictionary keys, used as set elements, " -"compared, sorted, and coerced to another type (such as :class:`float` " -"or :class:`int`)." -msgstr "" -"Les objets ``Decimal`` partagent beaucoup de propriétés avec les autres " -"types numériques natifs tels que :class:`float` et :class:`int`. Toutes les " -"opérations mathématiques et méthodes sont conservées. De même les objets " -"``Decimal`` peuvent être copiés, sérialisés via le module ``pickle``, " -"affichés, utilisés comme clé de dictionnaire, éléments d'ensembles, " -"comparés, classés et convertis vers un autre type (tel que :class:`float` " -"ou :class:`int`)." - -#: library/decimal.rst:429 -msgid "" -"There are some small differences between arithmetic on Decimal objects and " -"arithmetic on integers and floats. When the remainder operator ``%`` is " -"applied to Decimal objects, the sign of the result is the sign of the " -"*dividend* rather than the sign of the divisor::" -msgstr "" -"Il existe quelques différences mineures entre l'arithmétique entre les " -"objets décimaux et l'arithmétique avec les entiers et les ``float``. Quand " -"l'opérateur modulo ``%`` est appliqué sur des objets décimaux, le signe du " -"résultat est le signe du *dividende* plutôt que le signe du diviseur ::" - -#: library/decimal.rst:439 -msgid "" -"The integer division operator ``//`` behaves analogously, returning the " -"integer part of the true quotient (truncating towards zero) rather than its " -"floor, so as to preserve the usual identity ``x == (x // y) * y + x % y``::" -msgstr "" -"L'opérateur division entière (``//``) se comporte de la même manière, " -"renvoyant la partie entière du quotient plutôt que son arrondi, de manière à " -"préserver l'identité d'Euclide ``x == (x // y) * y + x % y`` ::" - -#: library/decimal.rst:448 -msgid "" -"The ``%`` and ``//`` operators implement the ``remainder`` and ``divide-" -"integer`` operations (respectively) as described in the specification." -msgstr "" -"Les opérateurs ``//`` et ``%`` implémentent la division entière et le reste " -"(ou modulo), respectivement, tels que décrits dans la spécification." - -#: library/decimal.rst:452 -msgid "" -"Decimal objects cannot generally be combined with floats or instances " -"of :class:`fractions.Fraction` in arithmetic operations: an attempt to add " -"a :class:`Decimal` to a :class:`float`, for example, will raise " -"a :exc:`TypeError`. However, it is possible to use Python's comparison " -"operators to compare a :class:`Decimal` instance ``x`` with another number " -"``y``. This avoids confusing results when doing equality comparisons " -"between numbers of different types." -msgstr "" -"Les objets ``Decimal`` ne peuvent généralement pas être combinés avec des " -"``float`` ou des objets :class:`fractions.Fraction` lors d'opérations " -"arithmétiques : toute addition entre un :class:`Decimal` et " -"un :class:`float`, par exemple, lève une exception :exc:`TypeError`. " -"Cependant, il est possible d'utiliser les opérateurs de comparaison entre " -"instances de :class:`Decimal` et les autres types numériques. Cela évite " -"d'avoir des résultats absurdes lors des tests d'égalité entre différents " -"types." - -# suit un : -#: library/decimal.rst:460 -msgid "" -"Mixed-type comparisons between :class:`Decimal` instances and other numeric " -"types are now fully supported." -msgstr "" -"les comparaisons inter-types entre :class:`Decimal` et les autres types " -"numériques sont désormais intégralement gérées." - -#: library/decimal.rst:464 -#, fuzzy -msgid "" -"In addition to the standard numeric properties, decimal floating-point " -"objects also have a number of specialized methods:" -msgstr "" -"En plus des propriétés numériques standard, les objets décimaux à virgule " -"flottante ont également un certain nombre de méthodes spécialisées :" - -#: library/decimal.rst:470 -msgid "" -"Return the adjusted exponent after shifting out the coefficient's rightmost " -"digits until only the lead digit remains: ``Decimal('321e+5').adjusted()`` " -"returns seven. Used for determining the position of the most significant " -"digit with respect to the decimal point." -msgstr "" -"Renvoie l'exposant ajusté après avoir décalé les chiffres les plus à droite " -"du coefficient jusqu'à ce qu'il ne reste que le premier chiffre : " -"``Decimal('321e+5').adjusted()`` renvoie sept. Utilisée pour déterminer la " -"position du chiffre le plus significatif par rapport à la virgule." - -#: library/decimal.rst:477 -msgid "" -"Return a pair ``(n, d)`` of integers that represent the " -"given :class:`Decimal` instance as a fraction, in lowest terms and with a " -"positive denominator::" -msgstr "" -"Renvoie un couple d'entiers ``(n, d)`` qui représentent " -"l'instance :class:`Decimal` donnée sous la forme d'une fraction, avec les " -"termes les plus petits possibles et avec un dénominateur positif ::" - -#: library/decimal.rst:484 -msgid "" -"The conversion is exact. Raise OverflowError on infinities and ValueError " -"on NaNs." -msgstr "" -"La conversion est exacte. Lève une ``OverflowError`` sur l'infini et " -"``ValueError`` sur les *Nan*." - -#: library/decimal.rst:491 -msgid "" -"Return a :term:`named tuple` representation of the number: " -"``DecimalTuple(sign, digits, exponent)``." -msgstr "" -"Renvoie une représentation sous la forme d'un :term:`n-uplet nommé ` du nombre ``DecimalTuple(sign, digits, exposant)``." - -#: library/decimal.rst:497 -msgid "" -"Return the canonical encoding of the argument. Currently, the encoding of " -"a :class:`Decimal` instance is always canonical, so this operation returns " -"its argument unchanged." -msgstr "" -"Renvoie la forme canonique de l'argument. Actuellement, la forme d'une " -"instance :class:`Decimal` est toujours canonique, donc cette opération " -"renvoie son argument inchangé." - -#: library/decimal.rst:503 -msgid "" -"Compare the values of two Decimal instances. :meth:`compare` returns a " -"Decimal instance, and if either operand is a NaN then the result is a NaN::" -msgstr "" -"Compare les valeurs de deux instances *Decimal*. :meth:`compare` renvoie une " -"instance *Decimal* et, si l'un des opérandes est un *NaN*, alors le résultat " -"est un *NaN* ::" - -#: library/decimal.rst:514 -msgid "" -"This operation is identical to the :meth:`compare` method, except that all " -"NaNs signal. That is, if neither operand is a signaling NaN then any quiet " -"NaN operand is treated as though it were a signaling NaN." -msgstr "" -"Cette opération est identique à la méthode :meth:`compare`, sauf que tous " -"les *NaN* activent un déroutement. Autrement dit, si aucun des opérandes " -"n'est un *NaN* de signalisation, alors tout opérande *NaN* silencieux est " -"traité comme s'il s'agissait d'un *NaN* de signalisation." - -#: library/decimal.rst:520 -msgid "" -"Compare two operands using their abstract representation rather than their " -"numerical value. Similar to the :meth:`compare` method, but the result " -"gives a total ordering on :class:`Decimal` instances. Two :class:`Decimal` " -"instances with the same numeric value but different representations compare " -"unequal in this ordering:" -msgstr "" -"Compare deux opérandes en utilisant leur représentation abstraite plutôt que " -"leur valeur numérique. Similaire à la méthode :meth:`compare`, mais le " -"résultat donne un ordre total sur les instances :class:`Decimal`. Deux " -"instances de :class:`Decimal` avec la même valeur numérique mais des " -"représentations différentes se comparent de manière inégale dans cet ordre :" - -#: library/decimal.rst:529 -msgid "" -"Quiet and signaling NaNs are also included in the total ordering. The " -"result of this function is ``Decimal('0')`` if both operands have the same " -"representation, ``Decimal('-1')`` if the first operand is lower in the total " -"order than the second, and ``Decimal('1')`` if the first operand is higher " -"in the total order than the second operand. See the specification for " -"details of the total order." -msgstr "" -"Les *NaN* silencieux et de signalisation sont également inclus dans l'ordre " -"total. Le résultat de cette fonction est ``Decimal('0')`` si les deux " -"opérandes ont la même représentation, ``Decimal('-1')`` si le premier " -"opérande est inférieur au second, et ``Decimal('1')`` si le premier opérande " -"est supérieur au deuxième opérande. Voir les spécifications pour les détails " -"de l'ordre total." - -#: library/decimal.rst:547 library/decimal.rst:879 -msgid "" -"This operation is unaffected by context and is quiet: no flags are changed " -"and no rounding is performed. As an exception, the C version may raise " -"InvalidOperation if the second operand cannot be converted exactly." -msgstr "" -"Cette opération ne dépend pas du contexte et est silencieuse : aucun " -"indicateur n'est modifié et aucun arrondi n'est effectué. " -"Exceptionnellement, la version C peut lever une *InvalidOperation* si le " -"deuxième opérande ne peut pas être converti exactement." - -#: library/decimal.rst:542 -msgid "" -"Compare two operands using their abstract representation rather than their " -"value as in :meth:`compare_total`, but ignoring the sign of each operand. " -"``x.compare_total_mag(y)`` is equivalent to " -"``x.copy_abs().compare_total(y.copy_abs())``." -msgstr "" -"Compare deux opérandes en utilisant leur représentation abstraite plutôt que " -"leur valeur comme dans :meth:`compare_total`, mais en ignorant le signe de " -"chaque opérande. ``x.compare_total_mag(y)`` est équivalent à " -"``x.copy_abs().compare_total(y.copy_abs())``." - -#: library/decimal.rst:553 -msgid "" -"Just returns self, this method is only to comply with the Decimal " -"Specification." -msgstr "" -"Ne fait que renvoyer self ; cette méthode existe uniquement pour se " -"conformer à la spécification." - -#: library/decimal.rst:558 -msgid "" -"Return the absolute value of the argument. This operation is unaffected by " -"the context and is quiet: no flags are changed and no rounding is performed." -msgstr "" -"Renvoie la valeur absolue de l'argument. Cette opération ne dépend pas du " -"contexte et est silencieuse : aucun drapeau n'est modifié et aucun arrondi " -"n'est effectué." - -#: library/decimal.rst:564 -msgid "" -"Return the negation of the argument. This operation is unaffected by the " -"context and is quiet: no flags are changed and no rounding is performed." -msgstr "" -"Renvoie la négation de l'argument. Cette opération ne dépend pas du contexte " -"et est silencieuse : aucun drapeau n'est modifié et aucun arrondi n'est " -"effectué." - -#: library/decimal.rst:569 -msgid "" -"Return a copy of the first operand with the sign set to be the same as the " -"sign of the second operand. For example:" -msgstr "" -"Renvoie une copie du premier opérande mais avec le même signe que celui du " -"deuxième opérande. Par exemple :" - -#: library/decimal.rst:581 -msgid "" -"Return the value of the (natural) exponential function ``e**x`` at the given " -"number. The result is correctly rounded using the :const:`ROUND_HALF_EVEN` " -"rounding mode." -msgstr "" -"Renvoie la valeur ``e**x`` (fonction exponentielle) du nombre donné. Le " -"résultat est correctement arrondi en utilisant le mode " -"d'arrondi :const:`ROUND_HALF_EVEN`." - -#: library/decimal.rst:592 -msgid "" -"Alternative constructor that only accepts instances of :class:`float` " -"or :class:`int`." -msgstr "" -"Constructeur alternatif qui n'accepte que les instances de :class:`float` " -"ou :class:`int`." - -#: library/decimal.rst:595 -msgid "" -"Note ``Decimal.from_float(0.1)`` is not the same as ``Decimal('0.1')``. " -"Since 0.1 is not exactly representable in binary floating point, the value " -"is stored as the nearest representable value which is " -"``0x1.999999999999ap-4``. That equivalent value in decimal is " -"``0.1000000000000000055511151231257827021181583404541015625``." -msgstr "" -"Remarquez que ``Decimal.from_float(0.1)`` est différent de " -"``Decimal('0.1')``. Puisque 0.1 n'est pas exactement représentable en " -"virgule flottante binaire, la valeur est stockée comme la valeur " -"représentable la plus proche qui est ``0x1.999999999999ap-4``. La valeur " -"équivalente en décimal est " -"``0.1000000000000000055511151231257827021181583404541015625``." - -# suit un : -#: library/decimal.rst:601 -msgid "" -"From Python 3.2 onwards, a :class:`Decimal` instance can also be constructed " -"directly from a :class:`float`." -msgstr "" -"depuis Python 3.2, une instance :class:`Decimal` peut également être " -"construite directement à partir d'un :class:`float`." - -#: library/decimal.rst:619 -#, fuzzy -msgid "" -"Alternative constructor that only accepts instances " -"of :class:`float`, :class:`int` or :class:`Decimal`, but not strings or " -"tuples." -msgstr "" -"Constructeur alternatif qui n'accepte que les instances de :class:`float` " -"ou :class:`int`." - -#: library/decimal.rst:636 -msgid "" -"Fused multiply-add. Return self*other+third with no rounding of the " -"intermediate product self*other." -msgstr "" -"Multiplier-ajouter fusionné. Renvoie ``self*other+third`` sans arrondir le " -"produit intermédiaire ``self*other``." - -#: library/decimal.rst:644 -msgid "" -"Return :const:`True` if the argument is canonical and :const:`False` " -"otherwise. Currently, a :class:`Decimal` instance is always canonical, so " -"this operation always returns :const:`True`." -msgstr "" -"Renvoie :const:`True` si l'argument est sous forme canonique " -"et :const:`False` sinon. Actuellement, une instance :class:`Decimal` est " -"toujours canonique, donc cette opération renvoie toujours :const:`True`." - -#: library/decimal.rst:650 -msgid "" -"Return :const:`True` if the argument is a finite number, and :const:`False` " -"if the argument is an infinity or a NaN." -msgstr "" -"Renvoie :const:`True` si l'argument est un nombre fini et :const:`False` si " -"l'argument est un infini ou un *NaN*." - -#: library/decimal.rst:655 -msgid "" -"Return :const:`True` if the argument is either positive or negative infinity " -"and :const:`False` otherwise." -msgstr "" -"Renvoie :const:`True` si l'argument est un infini positif ou " -"négatif, :const:`False` sinon." - -#: library/decimal.rst:660 -msgid "" -"Return :const:`True` if the argument is a (quiet or signaling) NaN " -"and :const:`False` otherwise." -msgstr "" -"Renvoie :const:`True` si l'argument est un *NaN* (signalétique ou " -"silencieux), :const:`False` sinon." - -#: library/decimal.rst:665 -msgid "" -"Return :const:`True` if the argument is a *normal* finite number. " -"Return :const:`False` if the argument is zero, subnormal, infinite or a NaN." -msgstr "" -"Renvoie :const:`True` si l'argument est un nombre fini *normal*. " -"Renvoie :const:`False` si l'argument est zéro, infini, résultat d'un " -"dépassement par valeur inférieure ou un *NaN*." - -#: library/decimal.rst:670 -msgid "" -"Return :const:`True` if the argument is a quiet NaN, and :const:`False` " -"otherwise." -msgstr "" -"Renvoie :const:`True` si l'argument est un *NaN* silencieux, :const:`False` " -"sinon." - -#: library/decimal.rst:675 -msgid "" -"Return :const:`True` if the argument has a negative sign and :const:`False` " -"otherwise. Note that zeros and NaNs can both carry signs." -msgstr "" -"Renvoie :const:`True` si l'argument est négatif, :const:`False` sinon. " -"Remarquez que les zéros et les *NaN* peuvent être signés." - -#: library/decimal.rst:680 -msgid "" -"Return :const:`True` if the argument is a signaling NaN and :const:`False` " -"otherwise." -msgstr "" -"Renvoie :const:`True` si l'argument est un *NaN* " -"signalétique, :const:`False` sinon." - -#: library/decimal.rst:685 -msgid "" -"Return :const:`True` if the argument is subnormal, and :const:`False` " -"otherwise." -msgstr "" -"Renvoie :const:`True` si l'argument est le résultat d'un dépassement par " -"valeur inférieure, :const:`False` sinon." - -#: library/decimal.rst:690 -msgid "" -"Return :const:`True` if the argument is a (positive or negative) zero " -"and :const:`False` otherwise." -msgstr "" -"Renvoie :const:`True` si l'argument est un zéro (positif ou " -"négatif), :const:`False` sinon." - -#: library/decimal.rst:695 -msgid "" -"Return the natural (base e) logarithm of the operand. The result is " -"correctly rounded using the :const:`ROUND_HALF_EVEN` rounding mode." -msgstr "" -"Renvoie le logarithme naturel (base e) de l'opérande. Le résultat est " -"arrondi avec le mode :const:`ROUND_HALF_EVEN`." - -#: library/decimal.rst:700 -msgid "" -"Return the base ten logarithm of the operand. The result is correctly " -"rounded using the :const:`ROUND_HALF_EVEN` rounding mode." -msgstr "" -"Renvoie le logarithme en base 10 de l'opérande. Le résultat est arrondi avec " -"le mode :const:`ROUND_HALF_EVEN`." - -#: library/decimal.rst:705 -msgid "" -"For a nonzero number, return the adjusted exponent of its operand as " -"a :class:`Decimal` instance. If the operand is a zero then ``Decimal('-" -"Infinity')`` is returned and the :const:`DivisionByZero` flag is raised. If " -"the operand is an infinity then ``Decimal('Infinity')`` is returned." -msgstr "" -"Pour un nombre non nul, renvoie l'exposant ajusté de son opérande en tant " -"qu'instance :class:`Decimal`. Si l'opérande est un zéro alors ``Decimal('-" -"Infinity')`` est renvoyé et le drapeau :const:`DivisionByZero` est levé. Si " -"l'opérande est un infini alors ``Decimal('Infinity')`` est renvoyé." - -#: library/decimal.rst:713 -msgid "" -":meth:`logical_and` is a logical operation which takes two *logical " -"operands* (see :ref:`logical_operands_label`). The result is the digit-wise " -"``and`` of the two operands." -msgstr "" -":meth:`logical_and` est une opération logique qui prend deux *opérandes " -"logiques* (voir :ref:`logical_operands_label`). Le résultat est le *ET* des " -"chiffres des deux opérandes." - -#: library/decimal.rst:719 -msgid "" -":meth:`logical_invert` is a logical operation. The result is the digit-wise " -"inversion of the operand." -msgstr "" -":meth:`logical_invert` est une opération logique. Le résultat est " -"l'inversion de chacun des chiffres de l'opérande." - -#: library/decimal.rst:724 -msgid "" -":meth:`logical_or` is a logical operation which takes two *logical operands* " -"(see :ref:`logical_operands_label`). The result is the digit-wise ``or`` of " -"the two operands." -msgstr "" -":meth:`logical_or` est une opération logique qui prend deux *opérandes " -"logiques* (voir :ref:`logical_operands_label`). Le résultat est le *OU* des " -"chiffres des deux opérandes." - -#: library/decimal.rst:730 -msgid "" -":meth:`logical_xor` is a logical operation which takes two *logical " -"operands* (see :ref:`logical_operands_label`). The result is the digit-wise " -"exclusive or of the two operands." -msgstr "" -":meth:`logical_xor` est une opération logique qui prend deux *opérandes " -"logiques* (voir :ref:`logical_operands_label`). Le résultat est le *OU " -"EXCLUSIF* des chiffres des deux opérandes." - -#: library/decimal.rst:736 -msgid "" -"Like ``max(self, other)`` except that the context rounding rule is applied " -"before returning and that ``NaN`` values are either signaled or ignored " -"(depending on the context and whether they are signaling or quiet)." -msgstr "" -"Comme ``max(self, other)`` sauf que la règle d'arrondi de *context* est " -"appliquée avant le retour et que les valeurs ``NaN`` sont signalées ou " -"ignorées (selon le contexte et si elles sont signalétiques ou silencieuses)." - -#: library/decimal.rst:743 -msgid "" -"Similar to the :meth:`.max` method, but the comparison is done using the " -"absolute values of the operands." -msgstr "" -"Semblable à la méthode :meth:`.max`, mais la comparaison est effectuée en " -"utilisant les valeurs absolues des opérandes." - -#: library/decimal.rst:748 -msgid "" -"Like ``min(self, other)`` except that the context rounding rule is applied " -"before returning and that ``NaN`` values are either signaled or ignored " -"(depending on the context and whether they are signaling or quiet)." -msgstr "" -"Comme ``min(self, other)`` sauf que la règle d'arrondi de *context* est " -"appliquée avant le retour et que les valeurs ``NaN`` sont signalées ou " -"ignorées (selon le contexte et si elles sont signalétiques ou silencieuses)." - -#: library/decimal.rst:755 -msgid "" -"Similar to the :meth:`.min` method, but the comparison is done using the " -"absolute values of the operands." -msgstr "" -"Semblable à la méthode :meth:`.min`, mais la comparaison est effectuée en " -"utilisant les valeurs absolues des opérandes." - -#: library/decimal.rst:760 -msgid "" -"Return the largest number representable in the given context (or in the " -"current thread's context if no context is given) that is smaller than the " -"given operand." -msgstr "" -"Renvoie le plus grand nombre représentable dans le *context* donné (ou dans " -"le contexte du fil d'exécution actuel si aucun contexte n'est donné) qui est " -"plus petit que l'opérande donné." - -#: library/decimal.rst:766 -msgid "" -"Return the smallest number representable in the given context (or in the " -"current thread's context if no context is given) that is larger than the " -"given operand." -msgstr "" -"Renvoie le plus petit nombre représentable dans le *context* donné (ou dans " -"le contexte du fil d'exécution actuel si aucun contexte n'est donné) qui est " -"supérieur à l'opérande donné." - -#: library/decimal.rst:772 -msgid "" -"If the two operands are unequal, return the number closest to the first " -"operand in the direction of the second operand. If both operands are " -"numerically equal, return a copy of the first operand with the sign set to " -"be the same as the sign of the second operand." -msgstr "" -"Si les deux opérandes ne sont pas égaux, renvoie le nombre le plus proche du " -"premier opérande dans la direction du deuxième opérande. Si les deux " -"opérandes sont numériquement égaux, renvoie une copie du premier opérande " -"avec le signe défini comme étant le même que le signe du second opérande." - -#: library/decimal.rst:779 -msgid "" -"Used for producing canonical values of an equivalence class within either " -"the current context or the specified context." -msgstr "" -"Utilisé pour produire des valeurs canoniques d'une classe d'équivalence dans " -"le contexte actuel ou dans le contexte spécifié." - -#: library/decimal.rst:782 -msgid "" -"This has the same semantics as the unary plus operation, except that if the " -"final result is finite it is reduced to its simplest form, with all trailing " -"zeros removed and its sign preserved. That is, while the coefficient is non-" -"zero and a multiple of ten the coefficient is divided by ten and the " -"exponent is incremented by 1. Otherwise (the coefficient is zero) the " -"exponent is set to 0. In all cases the sign is unchanged." -msgstr "" -"C'est la même sémantique que l'opération unaire plus, sauf que si le " -"résultat final est fini, il est réduit à sa forme la plus simple, avec tous " -"les zéros à droite supprimés et son signe conservé. Autrement dit, tant que " -"la mantisse est différente de zéro et est un multiple de dix, elle est " -"divisée par dix et l'exposant est incrémenté de 1. Sinon (la mantisse est " -"nulle), l'exposant est mis à 0. Dans tous les cas, le signe est inchangé." - -#: library/decimal.rst:789 -msgid "" -"For example, ``Decimal('32.100')`` and ``Decimal('0.321000e+2')`` both " -"normalize to the equivalent value ``Decimal('32.1')``." -msgstr "" -"Par exemple, ``Decimal('32.100')`` et ``Decimal('0.321000e+2')`` se " -"normalisent tous deux à la valeur équivalente ``Decimal('32.1')``." - -#: library/decimal.rst:792 -msgid "Note that rounding is applied *before* reducing to simplest form." -msgstr "" -"Notez que l'arrondi est appliqué *avant* la réduction à la forme la plus " -"simple." - -#: library/decimal.rst:794 -msgid "" -"In the latest versions of the specification, this operation is also known as " -"``reduce``." -msgstr "" -"Dans les dernières versions de la spécification, cette opération est " -"également connue sous le nom de ``reduce``." - -#: library/decimal.rst:799 -msgid "" -"Return a string describing the *class* of the operand. The returned value " -"is one of the following ten strings." -msgstr "" -"Renvoie une chaîne décrivant la *classe* de l'opérande. La valeur renvoyée " -"est l'une des dix chaînes suivantes." - -# Élément d'une liste, d'où le ; final -#: library/decimal.rst:802 -msgid "``\"-Infinity\"``, indicating that the operand is negative infinity." -msgstr "``\"-Infinity\"``, indiquant que l'opérande est l'infini négatif ;" - -# Élément d'une liste, d'où le ; final -#: library/decimal.rst:803 -msgid "" -"``\"-Normal\"``, indicating that the operand is a negative normal number." -msgstr "" -"``\"-Normal\"``, indiquant que l'opérande est un nombre négatif normal ;" - -# Élément d'une liste, d'où le ; final -#: library/decimal.rst:804 -msgid "" -"``\"-Subnormal\"``, indicating that the operand is negative and subnormal." -msgstr "" -"``\"-Subnormal\"``, indiquant que l'opérande est négatif et qu'il est le " -"résultat d'un dépassement par valeur inférieure ;" - -# Élément d'une liste, d'où le ; final -#: library/decimal.rst:805 -msgid "``\"-Zero\"``, indicating that the operand is a negative zero." -msgstr "``\"-Zero\"``, indiquant que l'opérande est un zéro négatif ;" - -# Élément d'une liste, d'où le ; final -#: library/decimal.rst:806 -msgid "``\"+Zero\"``, indicating that the operand is a positive zero." -msgstr "``\"+Zero\"``, indiquant que l'opérande est un zéro positif ;" - -# Élément d'une liste, d'où le ; final -#: library/decimal.rst:807 -msgid "" -"``\"+Subnormal\"``, indicating that the operand is positive and subnormal." -msgstr "" -"``\"+Subnormal\"``, indiquant que l'opérande est positif et qu'il est le " -"résultat un dépassement par valeur inférieure ;" - -#: library/decimal.rst:808 -msgid "" -"``\"+Normal\"``, indicating that the operand is a positive normal number." -msgstr "" -"``\"+Normal\"``, indiquant que l'opérande est un nombre positif normal ;" - -# Élément d'une liste, d'où le ; final -#: library/decimal.rst:809 -msgid "``\"+Infinity\"``, indicating that the operand is positive infinity." -msgstr "``\"+Infinity\"``, indiquant que l'opérande est l'infini positif ;" - -# Élément d'une liste, d'où le ; final -#: library/decimal.rst:810 -msgid "``\"NaN\"``, indicating that the operand is a quiet NaN (Not a Number)." -msgstr "" -"``\"NaN\"``, indiquant que l'opérande est un *NaN* (*Not a Number*, pas un " -"nombre) silencieux ;" - -#: library/decimal.rst:811 -msgid "``\"sNaN\"``, indicating that the operand is a signaling NaN." -msgstr "" -"``\"sNaN\"``, indiquant que l'opérande est un *NaN* (*Not a Number*, pas un " -"nombre) signalétique." - -#: library/decimal.rst:815 -msgid "" -"Return a value equal to the first operand after rounding and having the " -"exponent of the second operand." -msgstr "" -"Renvoie une valeur égale au premier opérande après arrondi et ayant " -"l'exposant du second opérande." - -#: library/decimal.rst:821 -msgid "" -"Unlike other operations, if the length of the coefficient after the quantize " -"operation would be greater than precision, then an :const:`InvalidOperation` " -"is signaled. This guarantees that, unless there is an error condition, the " -"quantized exponent is always equal to that of the right-hand operand." -msgstr "" -"Contrairement aux autres opérations, si la longueur du coefficient après " -"l'opération de quantification est supérieure à la précision, alors " -"une :const:`InvalidOperation` est signalée. Ceci garantit que, sauf " -"condition d'erreur, l'exposant quantifié est toujours égal à celui de " -"l'opérande de droite." - -#: library/decimal.rst:827 -msgid "" -"Also unlike other operations, quantize never signals Underflow, even if the " -"result is subnormal and inexact." -msgstr "" -"Contrairement aux autres opérations, la quantification ne signale jamais de " -"dépassement par valeur inférieure, même si le résultat est inférieur à la " -"valeur minimale représentable et inexact." - -#: library/decimal.rst:830 -msgid "" -"If the exponent of the second operand is larger than that of the first then " -"rounding may be necessary. In this case, the rounding mode is determined by " -"the ``rounding`` argument if given, else by the given ``context`` argument; " -"if neither argument is given the rounding mode of the current thread's " -"context is used." -msgstr "" -"Si l'exposant du deuxième opérande est supérieur à celui du premier, un " -"arrondi peut être nécessaire. Dans ce cas, le mode d'arrondi est déterminé " -"par l'argument ``rounding`` s'il est donné, sinon par l'argument ``context`` " -"donné ; si aucun argument n'est donné, le mode d'arrondi du contexte du fil " -"d'exécution courant est utilisé." - -#: library/decimal.rst:836 -msgid "" -"An error is returned whenever the resulting exponent is greater " -"than :attr:`~Context.Emax` or less than :meth:`~Context.Etiny`." -msgstr "" -"Une erreur est renvoyée chaque fois que l'exposant résultant est supérieur " -"à :attr:`~Context.Emax` ou inférieur à :meth:`~Context.Etiny`." - -#: library/decimal.rst:841 -msgid "" -"Return ``Decimal(10)``, the radix (base) in which the :class:`Decimal` class " -"does all its arithmetic. Included for compatibility with the specification." -msgstr "" -"Renvoie ``Decimal(10)``, la base (base) dans laquelle la " -"classe :class:`Decimal` fait toute son arithmétique. Inclus pour la " -"compatibilité avec la spécification." - -#: library/decimal.rst:847 -msgid "" -"Return the remainder from dividing *self* by *other*. This differs from " -"``self % other`` in that the sign of the remainder is chosen so as to " -"minimize its absolute value. More precisely, the return value is ``self - n " -"* other`` where ``n`` is the integer nearest to the exact value of ``self / " -"other``, and if two integers are equally near then the even one is chosen." -msgstr "" -"Renvoie le reste de la division de *self* par *other*. La différence avec " -"``self % other`` réside dans le signe du reste, qui est choisi de manière à " -"minimiser sa valeur absolue. Plus précisément, la valeur de retour est " -"``self - n * other`` où ``n`` est l'entier le plus proche de la valeur " -"exacte de ``self / other`` et, si deux entiers sont également proches, alors " -"l'entier pair est choisi." - -#: library/decimal.rst:854 -msgid "If the result is zero then its sign will be the sign of *self*." -msgstr "Si le résultat est zéro, alors son signe est le signe de *self*." - -#: library/decimal.rst:865 -msgid "" -"Return the result of rotating the digits of the first operand by an amount " -"specified by the second operand. The second operand must be an integer in " -"the range -precision through precision. The absolute value of the second " -"operand gives the number of places to rotate. If the second operand is " -"positive then rotation is to the left; otherwise rotation is to the right. " -"The coefficient of the first operand is padded on the left with zeros to " -"length precision if necessary. The sign and exponent of the first operand " -"are unchanged." -msgstr "" -"Renvoie le résultat de la rotation des chiffres du premier opérande d'une " -"quantité spécifiée par le deuxième opérande. Le deuxième opérande doit être " -"un entier compris dans la plage -précision à précision. La valeur absolue du " -"deuxième opérande donne le nombre de rotations unitaires à faire. Si le " -"deuxième opérande est positif alors la rotation se fait vers la gauche ; " -"sinon la rotation se fait vers la droite. Le coefficient du premier opérande " -"est complété à gauche avec des zéros à la précision de la longueur si " -"nécessaire. Le signe et l'exposant du premier opérande sont inchangés." - -#: library/decimal.rst:876 -msgid "" -"Test whether self and other have the same exponent or whether both are " -"``NaN``." -msgstr "" -"Teste si *self* et *other* ont le même exposant ou si les deux sont ``NaN``." - -#: library/decimal.rst:885 -msgid "" -"Return the first operand with exponent adjusted by the second. Equivalently, " -"return the first operand multiplied by ``10**other``. The second operand " -"must be an integer." -msgstr "" -"Renvoie le premier opérande avec l'exposant ajusté par le second. De manière " -"équivalente, renvoie le premier opérande multiplié par ``10**other``. Le " -"deuxième opérande doit être entier." - -#: library/decimal.rst:891 -msgid "" -"Return the result of shifting the digits of the first operand by an amount " -"specified by the second operand. The second operand must be an integer in " -"the range -precision through precision. The absolute value of the second " -"operand gives the number of places to shift. If the second operand is " -"positive then the shift is to the left; otherwise the shift is to the " -"right. Digits shifted into the coefficient are zeros. The sign and " -"exponent of the first operand are unchanged." -msgstr "" -"Renvoie le résultat du décalage des chiffres du premier opérande d'une " -"quantité spécifiée par le deuxième opérande. Le deuxième opérande doit être " -"un entier compris dans la plage -précision à précision. La valeur absolue du " -"deuxième opérande donne le nombre de décalages unitaires à effectuer. Si le " -"deuxième opérande est positif alors le décalage est vers la gauche ; sinon " -"le décalage est vers la droite. Les chiffres insérés dans le nombre par le " -"décalage sont des zéros. Le signe et l'exposant du premier opérande sont " -"inchangés." - -#: library/decimal.rst:901 -msgid "Return the square root of the argument to full precision." -msgstr "Renvoie la racine carrée de l'argument avec une précision maximale." - -#: library/decimal.rst:1563 -msgid "" -"Convert to a string, using engineering notation if an exponent is needed." -msgstr "" -"Convertir en chaîne, en utilisant la notation ingénieur si un exposant est " -"nécessaire." - -#: library/decimal.rst:1565 -msgid "" -"Engineering notation has an exponent which is a multiple of 3. This can " -"leave up to 3 digits to the left of the decimal place and may require the " -"addition of either one or two trailing zeros." -msgstr "" -"La notation ingénieur possède un exposant qui est un multiple de 3. Cela " -"peut laisser jusqu'à 3 chiffres à gauche de la décimale et peut nécessiter " -"l'ajout d'un ou de deux zéros à la fin." - -#: library/decimal.rst:912 -msgid "" -"For example, this converts ``Decimal('123E+1')`` to ``Decimal('1.23E+3')``." -msgstr "" -"Par exemple, ``Decimal('123E+1')`` est converti en ``Decimal('1.23E+3')``." - -#: library/decimal.rst:916 -msgid "" -"Identical to the :meth:`to_integral_value` method. The ``to_integral`` name " -"has been kept for compatibility with older versions." -msgstr "" -"Identique à la méthode :meth:`to_integral_value`. Le nom ``to_integral`` a " -"été conservé pour la compatibilité avec les anciennes versions." - -#: library/decimal.rst:921 -msgid "" -"Round to the nearest integer, signaling :const:`Inexact` or :const:`Rounded` " -"as appropriate if rounding occurs. The rounding mode is determined by the " -"``rounding`` parameter if given, else by the given ``context``. If neither " -"parameter is given then the rounding mode of the current context is used." -msgstr "" -"Arrondit à l'entier le plus proche, en signalant :const:`Inexact` " -"ou :const:`Rounded` selon le cas si l'arrondi se produit. Le mode d'arrondi " -"est déterminé par le paramètre ``rounding`` s'il est donné, sinon par le " -"``context`` donné. Si aucun paramètre n'est donné, le mode d'arrondi du " -"contexte courant est utilisé." - -#: library/decimal.rst:929 -msgid "" -"Round to the nearest integer without signaling :const:`Inexact` " -"or :const:`Rounded`. If given, applies *rounding*; otherwise, uses the " -"rounding method in either the supplied *context* or the current context." -msgstr "" -"Arrondit à l'entier le plus proche sans signaler :const:`Inexact` " -"ou :const:`Rounded`. Si donné, applique *rounding* ; sinon, utilise la " -"méthode d'arrondi dans le *context* fourni ou dans le contexte actuel." - -#: library/decimal.rst:933 -msgid "Decimal numbers can be rounded using the :func:`.round` function:" -msgstr "" - -#: library/decimal.rst:938 -msgid "" -"If *ndigits* is not given or ``None``, returns the nearest :class:`int` to " -"*number*, rounding ties to even, and ignoring the rounding mode of " -"the :class:`Decimal` context. Raises :exc:`OverflowError` if *number* is an " -"infinity or :exc:`ValueError` if it is a (quiet or signaling) NaN." -msgstr "" - -#: library/decimal.rst:944 -msgid "" -"If *ndigits* is an :class:`int`, the context's rounding mode is respected " -"and a :class:`Decimal` representing *number* rounded to the nearest multiple " -"of ``Decimal('1E-ndigits')`` is returned; in this case, ``round(number, " -"ndigits)`` is equivalent to ``self.quantize(Decimal('1E-ndigits'))``. " -"Returns ``Decimal('NaN')`` if *number* is a quiet NaN. " -"Raises :class:`InvalidOperation` if *number* is an infinity, a signaling " -"NaN, or if the length of the coefficient after the quantize operation would " -"be greater than the current context's precision. In other words, for the " -"non-corner cases:" -msgstr "" - -#: library/decimal.rst:954 -msgid "" -"if *ndigits* is positive, return *number* rounded to *ndigits* decimal " -"places;" -msgstr "" - -#: library/decimal.rst:956 -msgid "if *ndigits* is zero, return *number* rounded to the nearest integer;" -msgstr "" - -#: library/decimal.rst:957 -msgid "" -"if *ndigits* is negative, return *number* rounded to the nearest multiple of " -"``10**abs(ndigits)``." -msgstr "" - -#: library/decimal.rst:960 -msgid "For example::" -msgstr "Par exemple ::" - -#: library/decimal.rst:979 -msgid "Logical operands" -msgstr "Opérandes logiques" - -#: library/decimal.rst:981 -msgid "" -"The :meth:`~Decimal.logical_and`, :meth:`~Decimal.logical_invert`, :meth:`~Decimal.logical_or`, " -"and :meth:`~Decimal.logical_xor` methods expect their arguments to be " -"*logical operands*. A *logical operand* is a :class:`Decimal` instance " -"whose exponent and sign are both zero, and whose digits are all either ``0`` " -"or ``1``." -msgstr "" -"Les " -"méthodes :meth:`~Decimal.logical_and`, :meth:`~Decimal.logical_invert`, :meth:`~Decimal.logical_or` " -"et :meth:`~Decimal.logical_xor` s'attendent à ce que leurs arguments soient " -"des *opérandes logiques*. Un *opérande logique* est une " -"instance :class:`Decimal` dont l'exposant et le signe sont tous les deux " -"zéro et dont les chiffres sont tous ``0`` ou ``1``." - -#: library/decimal.rst:993 -msgid "Context objects" -msgstr "Objets de contexte" - -#: library/decimal.rst:995 -msgid "" -"Contexts are environments for arithmetic operations. They govern precision, " -"set rules for rounding, determine which signals are treated as exceptions, " -"and limit the range for exponents." -msgstr "" -"Les contextes sont des environnements pour les opérations arithmétiques. Ils " -"régissent la précision, établissent des règles d'arrondi, déterminent quels " -"signaux sont traités comme des exceptions et limitent la plage des exposants." - -#: library/decimal.rst:999 -msgid "" -"Each thread has its own current context which is accessed or changed using " -"the :func:`getcontext` and :func:`setcontext` functions:" -msgstr "" -"Chaque fil d'exécution a son propre contexte actuel qui est accessible ou " -"modifié à l'aide des fonctions :func:`getcontext` et :func:`setcontext` :" - -#: library/decimal.rst:1005 -msgid "Return the current context for the active thread." -msgstr "Renvoie le contexte actuel du fil d'exécution courant." - -#: library/decimal.rst:1010 -msgid "Set the current context for the active thread to *c*." -msgstr "Définit le contexte du fil d'exécution courant à *c*." - -#: library/decimal.rst:1012 -msgid "" -"You can also use the :keyword:`with` statement and the :func:`localcontext` " -"function to temporarily change the active context." -msgstr "" -"Vous pouvez également utiliser l'instruction :keyword:`with` et la " -"fonction :func:`localcontext` pour modifier temporairement le contexte actif." - -#: library/decimal.rst:1017 -msgid "" -"Return a context manager that will set the current context for the active " -"thread to a copy of *ctx* on entry to the with-statement and restore the " -"previous context when exiting the with-statement. If no context is " -"specified, a copy of the current context is used. The *kwargs* argument is " -"used to set the attributes of the new context." -msgstr "" -"Renvoie un gestionnaire de contexte qui définira le contexte actuel du fil " -"d'exécution actif sur une copie de *ctx* à l'entrée de l'instruction *with* " -"et restaurera le contexte précédent lors de la sortie de l'instruction " -"*with*. Si aucun contexte n'est spécifié, une copie du contexte actuel est " -"utilisée. L'argument *kwargs* est utilisé pour définir les attributs du " -"nouveau contexte." - -#: library/decimal.rst:1023 -msgid "" -"For example, the following code sets the current decimal precision to 42 " -"places, performs a calculation, and then automatically restores the previous " -"context::" -msgstr "" -"Par exemple, le code suivant définit la précision décimale actuelle à 42 " -"chiffres, effectue un calcul, puis restaure automatiquement le contexte " -"précédent ::" - -#: library/decimal.rst:1033 -msgid "Using keyword arguments, the code would be the following::" -msgstr "En utilisant des arguments nommés, le code serait le suivant ::" - -#: library/decimal.rst:1041 -msgid "" -"Raises :exc:`TypeError` if *kwargs* supplies an attribute " -"that :class:`Context` doesn't support. Raises either :exc:`TypeError` " -"or :exc:`ValueError` if *kwargs* supplies an invalid value for an attribute." -msgstr "" -"Lève :exc:`TypeError` si *kwargs* fournit un attribut que :class:`Context` " -"ne prend pas en charge. Lève soit :exc:`TypeError` ou :exc:`ValueError` si " -"*kwargs* fournit une valeur invalide pour un attribut." - -#: library/decimal.rst:1045 -msgid "" -":meth:`localcontext` now supports setting context attributes through the use " -"of keyword arguments." -msgstr "" -":meth:`localcontext` prend désormais en charge la définition des attributs " -"de contexte grâce à l'utilisation d'arguments nommés." - -#: library/decimal.rst:1050 -msgid "" -"Return a context object initialized to the proper values for one of the IEEE " -"interchange formats. The argument must be a multiple of 32 and less " -"than :const:`IEEE_CONTEXT_MAX_BITS`." -msgstr "" - -#: library/decimal.rst:1056 -msgid "" -"New contexts can also be created using the :class:`Context` constructor " -"described below. In addition, the module provides three pre-made contexts:" -msgstr "" -"De nouveaux contextes peuvent également être créés à l'aide du " -"constructeur :class:`Context` décrit ci-dessous. De plus, le module fournit " -"trois contextes prédéfinis :" - -#: library/decimal.rst:1062 -msgid "" -"This is a standard context defined by the General Decimal Arithmetic " -"Specification. Precision is set to nine. Rounding is set " -"to :const:`ROUND_HALF_UP`. All flags are cleared. All traps are enabled " -"(treated as exceptions) except :const:`Inexact`, :const:`Rounded`, " -"and :const:`Subnormal`." -msgstr "" -"Il s'agit d'un contexte standard défini par la *General Decimal Arithmetic " -"Specification*. La précision est fixée à neuf. L'arrondi est défini " -"sur :const:`ROUND_HALF_UP`. Tous les drapeaux sont effacés. Tous les " -"déroutements sont activés (ils lèvent des exceptions) " -"sauf :const:`Inexact`, :const:`Rounded` et :const:`Subnormal`." - -#: library/decimal.rst:1068 -msgid "" -"Because many of the traps are enabled, this context is useful for debugging." -msgstr "" -"Étant donné que de nombreuses options de déroutement sont activées, ce " -"contexte est utile pour le débogage." - -#: library/decimal.rst:1073 -msgid "" -"This is a standard context defined by the General Decimal Arithmetic " -"Specification. Precision is set to nine. Rounding is set " -"to :const:`ROUND_HALF_EVEN`. All flags are cleared. No traps are enabled " -"(so that exceptions are not raised during computations)." -msgstr "" -"Il s'agit d'un contexte standard défini par la *General Decimal Arithmetic " -"Specification*. La précision est fixée à neuf. L'arrondi est défini " -"sur :const:`ROUND_HALF_EVEN`. Toutes les options de déroutement sont " -"désactivées (afin que les exceptions ne soient pas levées pendant les " -"calculs)." - -#: library/decimal.rst:1078 -msgid "" -"Because the traps are disabled, this context is useful for applications that " -"prefer to have result value of ``NaN`` or ``Infinity`` instead of raising " -"exceptions. This allows an application to complete a run in the presence of " -"conditions that would otherwise halt the program." -msgstr "" -"Comme les interruptions sont désactivées, ce contexte est utile pour les " -"applications qui préfèrent avoir une valeur de résultat ``NaN`` ou " -"``Infinity`` au lieu de lever des exceptions. Cela permet à une application " -"de terminer une exécution en présence de conditions qui, autrement, " -"arrêteraient le programme." - -#: library/decimal.rst:1086 -msgid "" -"This context is used by the :class:`Context` constructor as a prototype for " -"new contexts. Changing a field (such a precision) has the effect of " -"changing the default for new contexts created by the :class:`Context` " -"constructor." -msgstr "" -"Ce contexte est utilisé par le constructeur :class:`Context` comme prototype " -"pour de nouveaux contextes. Changer un champ (par exemple la précision) a " -"pour effet de changer la valeur par défaut pour les nouveaux contextes créés " -"par le constructeur :class:`Context`." - -#: library/decimal.rst:1090 -msgid "" -"This context is most useful in multi-threaded environments. Changing one of " -"the fields before threads are started has the effect of setting system-wide " -"defaults. Changing the fields after threads have started is not recommended " -"as it would require thread synchronization to prevent race conditions." -msgstr "" -"Ce contexte est particulièrement utile dans les environnements à plusieurs " -"fils d'exécution. La modification de l'un des champs avant le démarrage des " -"fils a pour effet de définir des valeurs par défaut à l'échelle du système. " -"La modification des champs après le démarrage des fils d'exécution n'est pas " -"recommandée car cela nécessiterait une synchronisation des fils d'exécution " -"pour éviter des conditions de concurrence." - -#: library/decimal.rst:1095 -msgid "" -"In single threaded environments, it is preferable to not use this context at " -"all. Instead, simply create contexts explicitly as described below." -msgstr "" -"Dans les environnements à fil d'exécution unique, il est préférable de ne " -"pas utiliser ce contexte du tout. Créez plutôt simplement des contextes " -"explicitement comme décrit ci-dessous." - -#: library/decimal.rst:1098 -msgid "" -"The default values are :attr:`Context.prec`\\ =\\ " -"``28``, :attr:`Context.rounding`\\ =\\ :const:`ROUND_HALF_EVEN`, and enabled " -"traps for :class:`Overflow`, :class:`InvalidOperation`, " -"and :class:`DivisionByZero`." -msgstr "" -"Les valeurs par défaut sont :attr:`Context.prec`\\ =\\ " -"``28``, :attr:`Context.rounding`\\ =\\ :const:`ROUND_HALF_EVEN` et les " -"interruptions sont activées " -"pour :class:`Overflow`, :class:`InvalidOperation` et :class:`DivisionByZero`." - -#: library/decimal.rst:1103 -msgid "" -"In addition to the three supplied contexts, new contexts can be created with " -"the :class:`Context` constructor." -msgstr "" -"En plus des trois contextes fournis, de nouveaux contextes peuvent être " -"créés avec le constructeur :class:`Context`." - -#: library/decimal.rst:1109 -msgid "" -"Creates a new context. If a field is not specified or is :const:`None`, the " -"default values are copied from the :const:`DefaultContext`. If the *flags* " -"field is not specified or is :const:`None`, all flags are cleared." -msgstr "" -"Crée un nouveau contexte. Si un champ n'est pas spécifié ou " -"est :const:`None`, les valeurs par défaut sont copiées à partir " -"du :const:`DefaultContext`. Si le champ *flags* n'est pas spécifié ou " -"est :const:`None`, tous les indicateurs sont effacés." - -#: library/decimal.rst:1115 -#, fuzzy -msgid "" -"An integer in the range [``1``, :const:`MAX_PREC`] that sets the precision " -"for arithmetic operations in the context." -msgstr "" -"*prec* est un entier compris dans la plage [``1``, :const:`MAX_PREC`] qui " -"définit la précision des opérations arithmétiques dans le contexte." - -#: library/decimal.rst:1120 -#, fuzzy -msgid "One of the constants listed in the section `Rounding Modes`_." -msgstr "" -"L'option *rounding* est l'une des constantes répertoriées dans la section " -"`Modes d'arrondi`_." - -#: library/decimal.rst:1125 -#, fuzzy -msgid "" -"Lists of any signals to be set. Generally, new contexts should only set " -"traps and leave the flags clear." -msgstr "" -"Les champs *traps* et *flags* répertorient tous les signaux à définir. En " -"général, les nouveaux contextes ne doivent qu'activer des surveillances et " -"laisser les drapeaux baissés." - -#: library/decimal.rst:1131 -#, fuzzy -msgid "" -"Integers specifying the outer limits allowable for exponents. *Emin* must be " -"in the range [:const:`MIN_EMIN`, ``0``], *Emax* in the range " -"[``0``, :const:`MAX_EMAX`]." -msgstr "" -"Les champs *Emin* et *Emax* sont des entiers spécifiant les valeurs limites " -"autorisées pour les exposants. *Emin* doit être dans [:const:`MIN_EMIN`, " -"``0``], *Emax* dans la plage [``0``, :const:`MAX_EMAX`]." - -#: library/decimal.rst:1137 -#, fuzzy -msgid "" -"Either ``0`` or ``1`` (the default). If set to ``1``, exponents are printed " -"with a capital ``E``; otherwise, a lowercase ``e`` is used: " -"``Decimal('6.02e+23')``." -msgstr "" -"Le champ *capitals* est soit ``0`` soit ``1`` (la valeur par défaut). S'il " -"est défini à ``1``, les exposants sont imprimés avec un ``E`` majuscule ; " -"sinon, un ``e`` minuscule est utilisé : ``Decimal('6.02e+23')``." - -#: library/decimal.rst:1143 -#, fuzzy -msgid "" -"Either ``0`` (the default) or ``1``. If set to ``1``, the exponent ``e`` of " -"a :class:`Decimal` instance representable in this context is strictly " -"limited to the range ``Emin - prec + 1 <= e <= Emax - prec + 1``. If *clamp* " -"is ``0`` then a weaker condition holds: the adjusted exponent of " -"the :class:`Decimal` instance is at most :attr:`~Context.Emax`. When " -"*clamp* is ``1``, a large normal number will, where possible, have its " -"exponent reduced and a corresponding number of zeros added to its " -"coefficient, in order to fit the exponent constraints; this preserves the " -"value of the number but loses information about significant trailing zeros. " -"For example::" -msgstr "" -"Le champ *clamp* est soit ``0`` (la valeur par défaut), soit ``1``. S'il est " -"défini à ``1``, l'exposant ``e`` d'une instance :class:`Decimal` " -"représentable dans ce contexte est strictement limité à la plage ``Emin - " -"prec + 1 <= e <= Emax - prec + 1``. Si *clamp* est ``0`` alors une condition " -"plus faible est vraie : l'exposant ajusté de l'instance :class:`Decimal` est " -"au plus :attr:`~Context.Emax`. Lorsque *clamp* vaut ``1``, un grand nombre " -"normal voit, si possible, son exposant réduit et un nombre correspondant de " -"zéros ajouté à sa mantisse, afin de s'adapter aux contraintes d'exposant ; " -"cela préserve la valeur du nombre mais perd des informations sur les zéros " -"significatifs. Par exemple ::" - -#: library/decimal.rst:1157 -msgid "" -"A *clamp* value of ``1`` allows compatibility with the fixed-width decimal " -"interchange formats specified in IEEE 754." -msgstr "" -"Une valeur *clamp* de ``1`` permet la compatibilité avec les formats " -"d'échange décimaux à largeur fixe spécifiés dans la norme IEEE 754." - -#: library/decimal.rst:1160 -msgid "" -"The :class:`Context` class defines several general purpose methods as well " -"as a large number of methods for doing arithmetic directly in a given " -"context. In addition, for each of the :class:`Decimal` methods described " -"above (with the exception of the :meth:`~Decimal.adjusted` " -"and :meth:`~Decimal.as_tuple` methods) there is a " -"corresponding :class:`Context` method. For example, for a :class:`Context` " -"instance ``C`` and :class:`Decimal` instance ``x``, ``C.exp(x)`` is " -"equivalent to ``x.exp(context=C)``. Each :class:`Context` method accepts a " -"Python integer (an instance of :class:`int`) anywhere that a Decimal " -"instance is accepted." -msgstr "" -"La classe :class:`Context` définit plusieurs méthodes à usage général ainsi " -"qu'un grand nombre de méthodes permettant de faire de l'arithmétique " -"directement dans un contexte donné. De plus, pour chacune des " -"méthodes :class:`Decimal` décrites ci-dessus (à l'exception des " -"méthodes :meth:`~Decimal.adjusted` et :meth:`~Decimal.as_tuple`), il existe " -"une méthode :class:`Context` correspondante. Par exemple, pour une " -"instance :class:`Context` ``C`` et une instance :class:`Decimal` ``x``, " -"``C.exp(x)`` est équivalent à ``x.exp(context=C)``. Chaque " -"méthode :class:`Context` accepte un entier Python (une instance " -"de :class:`int`) partout où une instance Decimal est acceptée." - -#: library/decimal.rst:1173 -msgid "Resets all of the flags to ``0``." -msgstr "Réinitialise tous les drapeaux à ``0``." - -#: library/decimal.rst:1177 -msgid "Resets all of the traps to ``0``." -msgstr "Réinitialise toutes les surveillances à ``0``." - -#: library/decimal.rst:1183 -msgid "Return a duplicate of the context." -msgstr "Renvoie une copie du contexte." - -#: library/decimal.rst:1187 -msgid "Return a copy of the Decimal instance num." -msgstr "Renvoie une copie de l'instance :class:`!Decimal` *num*." - -#: library/decimal.rst:1191 -msgid "" -"Creates a new Decimal instance from *num* but using *self* as context. " -"Unlike the :class:`Decimal` constructor, the context precision, rounding " -"method, flags, and traps are applied to the conversion." -msgstr "" -"Crée une nouvelle instance Decimal à partir de *num* mais en utilisant " -"*self* comme contexte. Contrairement au constructeur :class:`Decimal`, la " -"précision du contexte, la méthode d'arrondi, les indicateurs et les " -"surveillances sont appliqués à la conversion." - -#: library/decimal.rst:1195 -msgid "" -"This is useful because constants are often given to a greater precision than " -"is needed by the application. Another benefit is that rounding immediately " -"eliminates unintended effects from digits beyond the current precision. In " -"the following example, using unrounded inputs means that adding zero to a " -"sum can change the result:" -msgstr "" -"C'est utile car les constantes sont souvent données avec une précision " -"supérieure à celle requise par l'application. Un autre avantage est que " -"l’arrondi élimine immédiatement les effets involontaires des chiffres au-" -"delà de la précision actuelle. Dans l'exemple suivant, l'utilisation " -"d'entrées non arrondies signifie que l'ajout de zéro à une somme peut " -"modifier le résultat :" - -#: library/decimal.rst:1209 -msgid "" -"This method implements the to-number operation of the IBM specification. If " -"the argument is a string, no leading or trailing whitespace or underscores " -"are permitted." -msgstr "" -"Cette méthode implémente l'opération *to-number* de la spécification IBM. Si " -"l’argument est une chaîne, aucun espace ou trait de soulignement de début ou " -"de fin n’est autorisé." - -#: library/decimal.rst:1215 -msgid "" -"Creates a new Decimal instance from a float *f* but rounding using *self* as " -"the context. Unlike the :meth:`Decimal.from_float` class method, the " -"context precision, rounding method, flags, and traps are applied to the " -"conversion." -msgstr "" -"Crée une nouvelle instance Decimal à partir d'un *float* *f* mais en " -"arrondissant en utilisant *self* comme contexte. Contrairement à la méthode " -"de classe :meth:`Decimal.from_float`, la précision du contexte, la méthode " -"d'arrondi, les indicateurs et les surveillances sont appliqués à la " -"conversion." - -#: library/decimal.rst:1235 -msgid "" -"Returns a value equal to ``Emin - prec + 1`` which is the minimum exponent " -"value for subnormal results. When underflow occurs, the exponent is set " -"to :const:`Etiny`." -msgstr "" -"Renvoie une valeur égale à ``Emin - prec + 1`` qui est la valeur minimale de " -"l'exposant pour les résultats avec dépassement inférieur. Lorsqu'un " -"dépassement inférieur se produit, l'exposant est défini sur :const:`Etiny`." - -#: library/decimal.rst:1241 -msgid "Returns a value equal to ``Emax - prec + 1``." -msgstr "Renvoie une valeur égale à ``Emax - prec + 1``." - -#: library/decimal.rst:1243 -msgid "" -"The usual approach to working with decimals is to create :class:`Decimal` " -"instances and then apply arithmetic operations which take place within the " -"current context for the active thread. An alternative approach is to use " -"context methods for calculating within a specific context. The methods are " -"similar to those for the :class:`Decimal` class and are only briefly " -"recounted here." -msgstr "" -"L'approche habituelle pour travailler avec des décimaux consiste à créer des " -"instances :class:`Decimal`, puis à appliquer des opérations arithmétiques " -"qui ont lieu dans le contexte actuel du fil d'exécution actif. Une approche " -"alternative consiste à utiliser des méthodes contextuelles pour calculer " -"dans un contexte spécifique. Les méthodes sont similaires à celles de la " -"classe :class:`Decimal` et ne sont décrites que brièvement ici." - -#: library/decimal.rst:1253 -msgid "Returns the absolute value of *x*." -msgstr "Renvoie la valeur absolue de *x*." - -#: library/decimal.rst:1258 -msgid "Return the sum of *x* and *y*." -msgstr "Renvoie la somme de *x* et *y*." - -#: library/decimal.rst:1263 -msgid "Returns the same Decimal object *x*." -msgstr "Renvoie l'objet Decimal *x* lui-même." - -#: library/decimal.rst:1268 -msgid "Compares *x* and *y* numerically." -msgstr "Compare *x* et *y* numériquement." - -#: library/decimal.rst:1273 -msgid "Compares the values of the two operands numerically." -msgstr "Compare numériquement les valeurs des deux opérandes." - -#: library/decimal.rst:1278 -msgid "Compares two operands using their abstract representation." -msgstr "Compare deux opérandes en utilisant leur représentation abstraite." - -#: library/decimal.rst:1283 -msgid "" -"Compares two operands using their abstract representation, ignoring sign." -msgstr "" -"Compare deux opérandes en utilisant leur représentation abstraite, en " -"ignorant le signe." - -#: library/decimal.rst:1288 -msgid "Returns a copy of *x* with the sign set to 0." -msgstr "Renvoie une copie de *x* avec le signe à 0 (c.-à-d. positif)." - -#: library/decimal.rst:1293 -msgid "Returns a copy of *x* with the sign inverted." -msgstr "Renvoie une copie de *x* mais de signe opposé." - -#: library/decimal.rst:1298 -msgid "Copies the sign from *y* to *x*." -msgstr "Copie le signe de *y* vers *x*." - -#: library/decimal.rst:1303 -msgid "Return *x* divided by *y*." -msgstr "Renvoie *x* divisé par *y*." - -#: library/decimal.rst:1308 -msgid "Return *x* divided by *y*, truncated to an integer." -msgstr "Renvoie *x* divisé par *y*, tronqué comme entier." - -#: library/decimal.rst:1313 -msgid "Divides two numbers and returns the integer part of the result." -msgstr "Renvoie la partie entière de la division entre deux nombres." - -#: library/decimal.rst:1318 -msgid "Returns ``e ** x``." -msgstr "Renvoie ``e ** x``." - -#: library/decimal.rst:1323 -msgid "Returns *x* multiplied by *y*, plus *z*." -msgstr "Renvoie *x* multiplié par *y*, plus *z*." - -#: library/decimal.rst:1328 -msgid "Returns ``True`` if *x* is canonical; otherwise returns ``False``." -msgstr "Renvoie ``True`` si *x* est canonique ; ``False`` sinon." - -#: library/decimal.rst:1333 -msgid "Returns ``True`` if *x* is finite; otherwise returns ``False``." -msgstr "Renvoie ``True`` si *x* est fini ; ``False`` sinon." - -#: library/decimal.rst:1338 -msgid "Returns ``True`` if *x* is infinite; otherwise returns ``False``." -msgstr "Renvoie ``True`` si *x* est infini et ``False`` sinon." - -#: library/decimal.rst:1343 -msgid "Returns ``True`` if *x* is a qNaN or sNaN; otherwise returns ``False``." -msgstr "" -"Renvoie ``True`` si *x* est un *NaN* (silencieux ou signalétique), ``False`` " -"sinon." - -#: library/decimal.rst:1348 -msgid "" -"Returns ``True`` if *x* is a normal number; otherwise returns ``False``." -msgstr "Renvoie ``True`` si *x* est un nombre normal ; ``False`` sinon." - -#: library/decimal.rst:1353 -msgid "Returns ``True`` if *x* is a quiet NaN; otherwise returns ``False``." -msgstr "Renvoie ``True`` si *x* est un *NaN* silencieux, ``False`` sinon." - -#: library/decimal.rst:1358 -msgid "Returns ``True`` if *x* is negative; otherwise returns ``False``." -msgstr "Renvoie ``True`` si *x* est négatif et ``False`` sinon." - -#: library/decimal.rst:1363 -msgid "" -"Returns ``True`` if *x* is a signaling NaN; otherwise returns ``False``." -msgstr "Renvoie ``True`` si *x* est un *NaN* signalétique, ``False`` sinon." - -#: library/decimal.rst:1368 -msgid "Returns ``True`` if *x* is subnormal; otherwise returns ``False``." -msgstr "" -"Renvoie ``True`` si *x* est est inférieur à la valeur minimale " -"représentable ; sinon, renvoie ``False``." - -#: library/decimal.rst:1373 -msgid "Returns ``True`` if *x* is a zero; otherwise returns ``False``." -msgstr "Renvoie ``True`` si *x* est un zéro et ``False`` sinon." - -#: library/decimal.rst:1378 -msgid "Returns the natural (base e) logarithm of *x*." -msgstr "Renvoie le logarithme naturel (en base e) de *x*." - -#: library/decimal.rst:1383 -msgid "Returns the base 10 logarithm of *x*." -msgstr "Renvoie le logarithme en base 10 de *x*." - -#: library/decimal.rst:1388 -msgid "Returns the exponent of the magnitude of the operand's MSD." -msgstr "" -"Renvoie l'exposant correspondant du chiffre de poids fort de la mantisse de " -"l'opérande." - -#: library/decimal.rst:1393 -msgid "Applies the logical operation *and* between each operand's digits." -msgstr "" -"Applique l'opération logique *ET* entre les chiffres de chaque opérande." - -#: library/decimal.rst:1398 -msgid "Invert all the digits in *x*." -msgstr "Inverse tous les chiffres de *x*." - -#: library/decimal.rst:1403 -msgid "Applies the logical operation *or* between each operand's digits." -msgstr "" -"Applique l'opération logique *OU* entre les chiffres de chaque opérande." - -#: library/decimal.rst:1408 -msgid "Applies the logical operation *xor* between each operand's digits." -msgstr "" -"Applique l'opération logique *OU EXCLUSIF* entre les chiffres de chaque " -"opérande." - -#: library/decimal.rst:1413 -msgid "Compares two values numerically and returns the maximum." -msgstr "Renvoie le maximum entre les deux valeurs numériques." - -#: library/decimal.rst:1428 -msgid "Compares the values numerically with their sign ignored." -msgstr "Compare les valeurs numériquement en ignorant leur signe." - -#: library/decimal.rst:1423 -msgid "Compares two values numerically and returns the minimum." -msgstr "Compare numériquement deux valeurs et renvoie le minimum." - -#: library/decimal.rst:1433 -msgid "Minus corresponds to the unary prefix minus operator in Python." -msgstr "Correspond à l’opérateur unaire préfixé « moins » en Python." - -#: library/decimal.rst:1438 -msgid "Return the product of *x* and *y*." -msgstr "Renvoie la multiplication de *x* avec *y*." - -#: library/decimal.rst:1443 -msgid "Returns the largest representable number smaller than *x*." -msgstr "Renvoie le plus grand nombre représentable inférieur à *x*." - -#: library/decimal.rst:1448 -msgid "Returns the smallest representable number larger than *x*." -msgstr "Renvoie le plus petit nombre représentable supérieur à *x*." - -#: library/decimal.rst:1453 -msgid "Returns the number closest to *x*, in direction towards *y*." -msgstr "Renvoie le nombre le plus proche de *x*, en direction de *y*." - -#: library/decimal.rst:1458 -msgid "Reduces *x* to its simplest form." -msgstr "Réduit *x* à sa forme la plus simple." - -#: library/decimal.rst:1463 -msgid "Returns an indication of the class of *x*." -msgstr "Renvoie une indication de la classe de *x*." - -#: library/decimal.rst:1468 -msgid "" -"Plus corresponds to the unary prefix plus operator in Python. This " -"operation applies the context precision and rounding, so it is *not* an " -"identity operation." -msgstr "" -"Correspond à l'opérateur unaire préfixé « plus » en Python. Cette opération " -"applique la précision du contexte et l'arrondi, ce n'est donc *pas* une " -"opération d'identité." - -#: library/decimal.rst:1475 -msgid "Return ``x`` to the power of ``y``, reduced modulo ``modulo`` if given." -msgstr "" -"Renvoie ``x`` à la puissance ``y``, réduit modulo ``modulo`` si celui-ci est " -"donné." - -#: library/decimal.rst:1477 -msgid "" -"With two arguments, compute ``x**y``. If ``x`` is negative then ``y`` must " -"be integral. The result will be inexact unless ``y`` is integral and the " -"result is finite and can be expressed exactly in 'precision' digits. The " -"rounding mode of the context is used. Results are always correctly rounded " -"in the Python version." -msgstr "" -"Avec deux arguments, calcule ``x**y``. Si ``x`` est négatif alors ``y`` doit " -"être entier. Le résultat est inexact à moins que ``y`` soit entier et que le " -"résultat soit fini et puisse être exprimé exactement en ``precision`` " -"chiffres. Le mode d'arrondi du contexte est utilisé. Les résultats sont " -"toujours correctement arrondis à la manière de Python." - -#: library/decimal.rst:1483 -msgid "" -"``Decimal(0) ** Decimal(0)`` results in ``InvalidOperation``, and if " -"``InvalidOperation`` is not trapped, then results in ``Decimal('NaN')``." -msgstr "" -"``Decimal(0) ** Decimal(0)`` donne ``InvalidOperation`` et, si " -"``InvalidOperation`` n'est pas surveillé, cela donne ``Decimal('NaN')``." - -#: library/decimal.rst:1486 -msgid "" -"The C module computes :meth:`power` in terms of the correctly " -"rounded :meth:`exp` and :meth:`ln` functions. The result is well-defined but " -"only \"almost always correctly rounded\"." -msgstr "" -"le module C calcule :meth:`power` en termes de fonctions :meth:`exp` " -"et :meth:`ln` correctement arrondies. Le résultat est bien défini mais " -"seulement « presque toujours correctement arrondi »." - -#: library/decimal.rst:1491 -msgid "" -"With three arguments, compute ``(x**y) % modulo``. For the three argument " -"form, the following restrictions on the arguments hold:" -msgstr "" -"Avec trois arguments, calcule ``(x**y) % modulo``. Pour la forme à trois " -"arguments, les restrictions suivantes sur les arguments s'appliquent :" - -#: library/decimal.rst:1494 -msgid "all three arguments must be integral" -msgstr "les trois arguments doivent être entiers ;" - -# Élément d'une liste, d'où le ; final -#: library/decimal.rst:1495 -msgid "``y`` must be nonnegative" -msgstr "``y`` ne doit pas être négatif ;" - -# Élément d'une liste, d'où le ; final -#: library/decimal.rst:1496 -msgid "at least one of ``x`` or ``y`` must be nonzero" -msgstr "au moins l'un de ``x`` ou ``y`` doit être différent de zéro ;" - -#: library/decimal.rst:1497 -msgid "``modulo`` must be nonzero and have at most 'precision' digits" -msgstr "" -"``modulo`` doit être différent de zéro et avoir au plus ``precision`` " -"chiffres." - -#: library/decimal.rst:1499 -msgid "" -"The value resulting from ``Context.power(x, y, modulo)`` is equal to the " -"value that would be obtained by computing ``(x**y) % modulo`` with unbounded " -"precision, but is computed more efficiently. The exponent of the result is " -"zero, regardless of the exponents of ``x``, ``y`` and ``modulo``. The " -"result is always exact." -msgstr "" -"La valeur résultant de ``Context.power(x, y, modulo)`` est égale à la valeur " -"qui serait obtenue en calculant ``(x**y) % modulo`` avec une précision " -"illimitée, mais est calculée plus efficacement. L'exposant du résultat est " -"zéro, quels que soient les exposants de ``x``, ``y`` et ``modulo``. Le " -"résultat est toujours exact." - -#: library/decimal.rst:1509 -msgid "Returns a value equal to *x* (rounded), having the exponent of *y*." -msgstr "Renvoie une valeur égale à *x* (arrondie), ayant l'exposant de *y*." - -#: library/decimal.rst:1514 -msgid "Just returns 10, as this is Decimal, :)" -msgstr "Renvoie 10 car c'est *Decimal*, :)" - -#: library/decimal.rst:1519 -msgid "Returns the remainder from integer division." -msgstr "Renvoie le reste de la division entière." - -#: library/decimal.rst:1521 -msgid "" -"The sign of the result, if non-zero, is the same as that of the original " -"dividend." -msgstr "" -"Le signe du résultat, s'il est différent de zéro, est le même que celui du " -"dividende initial." - -#: library/decimal.rst:1527 -msgid "" -"Returns ``x - y * n``, where *n* is the integer nearest the exact value of " -"``x / y`` (if the result is 0 then its sign will be the sign of *x*)." -msgstr "" -"Renvoie ``x - y * n``, où *n* est l'entier le plus proche de la valeur " -"exacte de ``x / y`` (si le résultat est 0 alors son signe est le signe de " -"*x*)." - -#: library/decimal.rst:1533 -msgid "Returns a rotated copy of *x*, *y* times." -msgstr "Renvoie une copie pivotée de *x*, *y* fois." - -#: library/decimal.rst:1538 -msgid "Returns ``True`` if the two operands have the same exponent." -msgstr "Renvoie ``True`` si les deux opérandes ont le même exposant." - -#: library/decimal.rst:1543 -msgid "Returns the first operand after adding the second value its exp." -msgstr "" -"Renvoie le premier opérande après avoir ajouté la deuxième valeur à son " -"*exp*." - -#: library/decimal.rst:1548 -msgid "Returns a shifted copy of *x*, *y* times." -msgstr "Renvoie une copie décalée de *x*, *y* fois." - -#: library/decimal.rst:1553 -msgid "Square root of a non-negative number to context precision." -msgstr "" -"Renvoie la racine carrée d'un nombre non négatif avec la précision donnée " -"par le contexte." - -#: library/decimal.rst:1558 -msgid "Return the difference between *x* and *y*." -msgstr "Renvoie la différence entre *x* et *y*." - -#: library/decimal.rst:1572 -msgid "Rounds to an integer." -msgstr "Arrondit à un entier." - -#: library/decimal.rst:1577 -msgid "Converts a number to a string using scientific notation." -msgstr "Convertit un nombre en chaîne en utilisant la notation scientifique." - -#: library/decimal.rst:1584 -msgid "Constants" -msgstr "Constantes" - -#: library/decimal.rst:1588 -#, fuzzy -msgid "" -"The highest version of the General Decimal Arithmetic Specification that " -"this implementation complies with. See https://speleotrove.com/decimal/" -"decarith.html for the specification." -msgstr "" -"Spécification d'IBM sur l'arithmétique décimale : `The General Decimal " -"Arithmetic Specification `_ " -"(article en anglais)." - -#: library/decimal.rst:1595 -#, fuzzy -msgid "" -"The following constants are only relevant for the C module. They are also " -"included in the pure Python version for compatibility." -msgstr "" -"Les constantes de cette section ne sont pertinentes que pour le module C. " -"Elles sont aussi incluses pour la compatibilité dans la version en Python " -"pur." - -#: library/decimal.rst:1599 -msgid "32-bit" -msgstr "32-bit" - -#: library/decimal.rst:1599 -msgid "64-bit" -msgstr "64-bit" - -#: library/decimal.rst:1603 -msgid "``425000000``" -msgstr "``425000000``" - -#: library/decimal.rst:1603 -msgid "``999999999999999999``" -msgstr "``999999999999999999``" - -#: library/decimal.rst:1605 -msgid "``-425000000``" -msgstr "``-425000000``" - -#: library/decimal.rst:1605 -msgid "``-999999999999999999``" -msgstr "``-999999999999999999``" - -#: library/decimal.rst:1607 -msgid "``-849999999``" -msgstr "``-849999999``" - -#: library/decimal.rst:1607 -msgid "``-1999999999999999997``" -msgstr "``-1999999999999999997``" - -#: library/decimal.rst:1609 -msgid "``256``" -msgstr "" - -#: library/decimal.rst:1609 -msgid "``512``" -msgstr "" - -#: library/decimal.rst:1614 -msgid "" -"The value is ``True``. Deprecated, because Python now always has threads." -msgstr "" -"La valeur est ``True``. Déprécié, parce que maintenant Python possède " -"toujours des fils d'exécution." - -#: library/decimal.rst:1620 -msgid "" -"The default value is ``True``. If Python is :option:`configured using the --" -"without-decimal-contextvar option <--without-decimal-contextvar>`, the C " -"version uses a thread-local rather than a coroutine-local context and the " -"value is ``False``. This is slightly faster in some nested context " -"scenarios." -msgstr "" - -#: library/decimal.rst:1629 -msgid "Rounding modes" -msgstr "Modes d'arrondi" - -#: library/decimal.rst:1633 -msgid "Round towards ``Infinity``." -msgstr "" - -#: library/decimal.rst:1637 -msgid "Round towards zero." -msgstr "" - -#: library/decimal.rst:1641 -msgid "Round towards ``-Infinity``." -msgstr "" - -#: library/decimal.rst:1645 -msgid "Round to nearest with ties going towards zero." -msgstr "" - -#: library/decimal.rst:1649 -msgid "Round to nearest with ties going to nearest even integer." -msgstr "" - -#: library/decimal.rst:1653 -msgid "Round to nearest with ties going away from zero." -msgstr "" - -#: library/decimal.rst:1657 -msgid "Round away from zero." -msgstr "" - -#: library/decimal.rst:1661 -msgid "" -"Round away from zero if last digit after rounding towards zero would have " -"been 0 or 5; otherwise round towards zero." -msgstr "" - -#: library/decimal.rst:1668 -msgid "Signals" -msgstr "Signaux" - -#: library/decimal.rst:1670 -msgid "" -"Signals represent conditions that arise during computation. Each corresponds " -"to one context flag and one context trap enabler." -msgstr "" - -#: library/decimal.rst:1673 -msgid "" -"The context flag is set whenever the condition is encountered. After the " -"computation, flags may be checked for informational purposes (for instance, " -"to determine whether a computation was exact). After checking the flags, be " -"sure to clear all flags before starting the next computation." -msgstr "" - -#: library/decimal.rst:1678 -msgid "" -"If the context's trap enabler is set for the signal, then the condition " -"causes a Python exception to be raised. For example, if " -"the :class:`DivisionByZero` trap is set, then a :exc:`DivisionByZero` " -"exception is raised upon encountering the condition." -msgstr "" - -#: library/decimal.rst:1686 -msgid "Altered an exponent to fit representation constraints." -msgstr "" - -#: library/decimal.rst:1688 -msgid "" -"Typically, clamping occurs when an exponent falls outside the " -"context's :attr:`~Context.Emin` and :attr:`~Context.Emax` limits. If " -"possible, the exponent is reduced to fit by adding zeros to the coefficient." -msgstr "" - -#: library/decimal.rst:1695 -msgid "Base class for other signals and a subclass of :exc:`ArithmeticError`." -msgstr "" - -#: library/decimal.rst:1700 -msgid "Signals the division of a non-infinite number by zero." -msgstr "" - -#: library/decimal.rst:1702 -msgid "" -"Can occur with division, modulo division, or when raising a number to a " -"negative power. If this signal is not trapped, returns ``Infinity`` or ``-" -"Infinity`` with the sign determined by the inputs to the calculation." -msgstr "" - -#: library/decimal.rst:1709 -msgid "Indicates that rounding occurred and the result is not exact." -msgstr "" - -#: library/decimal.rst:1711 -msgid "" -"Signals when non-zero digits were discarded during rounding. The rounded " -"result is returned. The signal flag or trap is used to detect when results " -"are inexact." -msgstr "" - -#: library/decimal.rst:1718 -msgid "An invalid operation was performed." -msgstr "" - -#: library/decimal.rst:1720 -msgid "" -"Indicates that an operation was requested that does not make sense. If not " -"trapped, returns ``NaN``. Possible causes include::" -msgstr "" - -#: library/decimal.rst:1736 -msgid "Numerical overflow." -msgstr "Débordement numérique." - -#: library/decimal.rst:1738 -msgid "" -"Indicates the exponent is larger than :attr:`Context.Emax` after rounding " -"has occurred. If not trapped, the result depends on the rounding mode, " -"either pulling inward to the largest representable finite number or rounding " -"outward to ``Infinity``. In either case, :class:`Inexact` " -"and :class:`Rounded` are also signaled." -msgstr "" - -#: library/decimal.rst:1747 -msgid "Rounding occurred though possibly no information was lost." -msgstr "" - -#: library/decimal.rst:1749 -msgid "" -"Signaled whenever rounding discards digits; even if those digits are zero " -"(such as rounding ``5.00`` to ``5.0``). If not trapped, returns the result " -"unchanged. This signal is used to detect loss of significant digits." -msgstr "" - -#: library/decimal.rst:1757 -msgid "Exponent was lower than :attr:`~Context.Emin` prior to rounding." -msgstr "" - -#: library/decimal.rst:1759 -msgid "" -"Occurs when an operation result is subnormal (the exponent is too small). If " -"not trapped, returns the result unchanged." -msgstr "" - -#: library/decimal.rst:1765 -msgid "Numerical underflow with result rounded to zero." -msgstr "" - -#: library/decimal.rst:1767 -msgid "" -"Occurs when a subnormal result is pushed to zero by " -"rounding. :class:`Inexact` and :class:`Subnormal` are also signaled." -msgstr "" - -#: library/decimal.rst:1773 -msgid "Enable stricter semantics for mixing floats and Decimals." -msgstr "" - -#: library/decimal.rst:1775 -msgid "" -"If the signal is not trapped (default), mixing floats and Decimals is " -"permitted in the :class:`~decimal.Decimal` " -"constructor, :meth:`~decimal.Context.create_decimal` and all comparison " -"operators. Both conversion and comparisons are exact. Any occurrence of a " -"mixed operation is silently recorded by setting :exc:`FloatOperation` in the " -"context flags. Explicit conversions with :meth:`~decimal.Decimal.from_float` " -"or :meth:`~decimal.Context.create_decimal_from_float` do not set the flag." -msgstr "" - -#: library/decimal.rst:1783 -msgid "" -"Otherwise (the signal is trapped), only equality comparisons and explicit " -"conversions are silent. All other mixed operations " -"raise :exc:`FloatOperation`." -msgstr "" - -#: library/decimal.rst:1787 -msgid "The following table summarizes the hierarchy of signals::" -msgstr "" - -#: library/decimal.rst:1808 -msgid "Floating-point notes" -msgstr "" - -#: library/decimal.rst:1812 -msgid "Mitigating round-off error with increased precision" -msgstr "" - -#: library/decimal.rst:1814 -msgid "" -"The use of decimal floating point eliminates decimal representation error " -"(making it possible to represent ``0.1`` exactly); however, some operations " -"can still incur round-off error when non-zero digits exceed the fixed " -"precision." -msgstr "" - -#: library/decimal.rst:1818 -msgid "" -"The effects of round-off error can be amplified by the addition or " -"subtraction of nearly offsetting quantities resulting in loss of " -"significance. Knuth provides two instructive examples where rounded " -"floating-point arithmetic with insufficient precision causes the breakdown " -"of the associative and distributive properties of addition:" -msgstr "" - -#: library/decimal.rst:1842 -msgid "" -"The :mod:`!decimal` module makes it possible to restore the identities by " -"expanding the precision sufficiently to avoid loss of significance:" -msgstr "" - -#: library/decimal.rst:1862 -msgid "Special values" -msgstr "" - -#: library/decimal.rst:1864 -msgid "" -"The number system for the :mod:`!decimal` module provides special values " -"including ``NaN``, ``sNaN``, ``-Infinity``, ``Infinity``, and two zeros, " -"``+0`` and ``-0``." -msgstr "" - -#: library/decimal.rst:1868 -msgid "" -"Infinities can be constructed directly with: ``Decimal('Infinity')``. Also, " -"they can arise from dividing by zero when the :exc:`DivisionByZero` signal " -"is not trapped. Likewise, when the :exc:`Overflow` signal is not trapped, " -"infinity can result from rounding beyond the limits of the largest " -"representable number." -msgstr "" - -#: library/decimal.rst:1873 -msgid "" -"The infinities are signed (affine) and can be used in arithmetic operations " -"where they get treated as very large, indeterminate numbers. For instance, " -"adding a constant to infinity gives another infinite result." -msgstr "" - -#: library/decimal.rst:1877 -msgid "" -"Some operations are indeterminate and return ``NaN``, or if " -"the :exc:`InvalidOperation` signal is trapped, raise an exception. For " -"example, ``0/0`` returns ``NaN`` which means \"not a number\". This variety " -"of ``NaN`` is quiet and, once created, will flow through other computations " -"always resulting in another ``NaN``. This behavior can be useful for a " -"series of computations that occasionally have missing inputs --- it allows " -"the calculation to proceed while flagging specific results as invalid." -msgstr "" - -#: library/decimal.rst:1885 -msgid "" -"A variant is ``sNaN`` which signals rather than remaining quiet after every " -"operation. This is a useful return value when an invalid result needs to " -"interrupt a calculation for special handling." -msgstr "" - -#: library/decimal.rst:1889 -msgid "" -"The behavior of Python's comparison operators can be a little surprising " -"where a ``NaN`` is involved. A test for equality where one of the operands " -"is a quiet or signaling ``NaN`` always returns :const:`False` (even when " -"doing ``Decimal('NaN')==Decimal('NaN')``), while a test for inequality " -"always returns :const:`True`. An attempt to compare two Decimals using any " -"of the ``<``, ``<=``, ``>`` or ``>=`` operators will raise " -"the :exc:`InvalidOperation` signal if either operand is a ``NaN``, and " -"return :const:`False` if this signal is not trapped. Note that the General " -"Decimal Arithmetic specification does not specify the behavior of direct " -"comparisons; these rules for comparisons involving a ``NaN`` were taken from " -"the IEEE 854 standard (see Table 3 in section 5.7). To ensure strict " -"standards-compliance, use the :meth:`~Decimal.compare` " -"and :meth:`~Decimal.compare_signal` methods instead." -msgstr "" - -#: library/decimal.rst:1902 -msgid "" -"The signed zeros can result from calculations that underflow. They keep the " -"sign that would have resulted if the calculation had been carried out to " -"greater precision. Since their magnitude is zero, both positive and " -"negative zeros are treated as equal and their sign is informational." -msgstr "" - -#: library/decimal.rst:1907 -msgid "" -"In addition to the two signed zeros which are distinct yet equal, there are " -"various representations of zero with differing precisions yet equivalent in " -"value. This takes a bit of getting used to. For an eye accustomed to " -"normalized floating-point representations, it is not immediately obvious " -"that the following calculation returns a value equal to zero:" -msgstr "" - -#: library/decimal.rst:1922 -msgid "Working with threads" -msgstr "" - -#: library/decimal.rst:1924 -msgid "" -"The :func:`getcontext` function accesses a different :class:`Context` object " -"for each thread. Having separate thread contexts means that threads may " -"make changes (such as ``getcontext().prec=10``) without interfering with " -"other threads." -msgstr "" - -#: library/decimal.rst:1928 -msgid "" -"Likewise, the :func:`setcontext` function automatically assigns its target " -"to the current thread." -msgstr "" - -#: library/decimal.rst:1931 -msgid "" -"If :func:`setcontext` has not been called before :func:`getcontext`, " -"then :func:`getcontext` will automatically create a new context for use in " -"the current thread. New context objects have default values set from " -"the :data:`decimal.DefaultContext` object." -msgstr "" - -#: library/decimal.rst:1936 -msgid "" -"The :data:`sys.flags.thread_inherit_context` flag affects the context for " -"new threads. If the flag is false, new threads will start with an empty " -"context. In this case, :func:`getcontext` will create a new context object " -"when called and use the default values from *DefaultContext*. If the flag " -"is true, new threads will start with a copy of context from the caller " -"of :meth:`threading.Thread.start`." -msgstr "" - -#: library/decimal.rst:1943 -msgid "" -"To control the defaults so that each thread will use the same values " -"throughout the application, directly modify the *DefaultContext* object. " -"This should be done *before* any threads are started so that there won't be " -"a race condition between threads calling :func:`getcontext`. For example::" -msgstr "" - -#: library/decimal.rst:1967 -msgid "Recipes" -msgstr "Cas pratiques" - -#: library/decimal.rst:1969 -msgid "" -"Here are a few recipes that serve as utility functions and that demonstrate " -"ways to work with the :class:`Decimal` class::" -msgstr "" - -#: library/decimal.rst:2124 -msgid "Decimal FAQ" -msgstr "FAQ *decimal*" - -#: library/decimal.rst:2126 -#, fuzzy -msgid "" -"Q: It is cumbersome to type ``decimal.Decimal('1234.5')``. Is there a way " -"to minimize typing when using the interactive interpreter?" -msgstr "" -"Q. C'est fastidieux de taper ``decimal.Decimal('1234.5')``. Y a-t-il un " -"moyen de réduire la frappe quand on utilise l'interpréteur interactif ?" - -#: library/decimal.rst:2129 -#, fuzzy -msgid "A: Some users abbreviate the constructor to just a single letter:" -msgstr "" -"R. Certains utilisateurs abrègent le constructeur en une seule lettre :" - -#: library/decimal.rst:2135 -msgid "" -"Q: In a fixed-point application with two decimal places, some inputs have " -"many places and need to be rounded. Others are not supposed to have excess " -"digits and need to be validated. What methods should be used?" -msgstr "" - -#: library/decimal.rst:2139 -msgid "" -"A: The :meth:`~Decimal.quantize` method rounds to a fixed number of decimal " -"places. If the :const:`Inexact` trap is set, it is also useful for " -"validation:" -msgstr "" - -#: library/decimal.rst:2157 -#, fuzzy -msgid "" -"Q: Once I have valid two place inputs, how do I maintain that invariant " -"throughout an application?" -msgstr "" -"Q. Une fois que mes entrées sont à deux décimales valides, comment maintenir " -"cet invariant dans l'application ?" - -#: library/decimal.rst:2160 -#, fuzzy -msgid "" -"A: Some operations like addition, subtraction, and multiplication by an " -"integer will automatically preserve fixed point. Others operations, like " -"division and non-integer multiplication, will change the number of decimal " -"places and need to be followed-up with a :meth:`~Decimal.quantize` step:" -msgstr "" -"R. Certaines opérations comme l'addition, la soustraction et la " -"multiplication par un entier préservent automatiquement la virgule fixe. " -"D'autres opérations, comme la division et la multiplication par des non-" -"entiers, changent le nombre de décimales et doivent être suivies d'une " -"étape :meth:`~Decimal.quantize` :" - -#: library/decimal.rst:2178 -msgid "" -"In developing fixed-point applications, it is convenient to define functions " -"to handle the :meth:`~Decimal.quantize` step:" -msgstr "" -"Lors du développement d'applications en virgule fixe, il est pratique de " -"définir des fonctions pour gérer cette étape de quantification " -"par :meth:`~Decimal.quantize` :" - -#: library/decimal.rst:2192 -msgid "" -"Q: There are many ways to express the same value. The numbers ``200``, " -"``200.000``, ``2E2``, and ``.02E+4`` all have the same value at various " -"precisions. Is there a way to transform them to a single recognizable " -"canonical value?" -msgstr "" - -#: library/decimal.rst:2197 -msgid "" -"A: The :meth:`~Decimal.normalize` method maps all equivalent values to a " -"single representative:" -msgstr "" - -#: library/decimal.rst:2204 -msgid "Q: When does rounding occur in a computation?" -msgstr "" - -#: library/decimal.rst:2206 -msgid "" -"A: It occurs *after* the computation. The philosophy of the decimal " -"specification is that numbers are considered exact and are created " -"independent of the current context. They can even have greater precision " -"than current context. Computations process with those exact inputs and then " -"rounding (or other context operations) is applied to the *result* of the " -"computation::" -msgstr "" - -#: library/decimal.rst:2224 -msgid "" -"Q: Some decimal values always print with exponential notation. Is there a " -"way to get a non-exponential representation?" -msgstr "" - -#: library/decimal.rst:2227 -msgid "" -"A: For some values, exponential notation is the only way to express the " -"number of significant places in the coefficient. For example, expressing " -"``5.0E+3`` as ``5000`` keeps the value constant but cannot show the " -"original's two-place significance." -msgstr "" - -#: library/decimal.rst:2232 -msgid "" -"If an application does not care about tracking significance, it is easy to " -"remove the exponent and trailing zeroes, losing significance, but keeping " -"the value unchanged:" -msgstr "" - -#: library/decimal.rst:2242 -msgid "Q: Is there a way to convert a regular float to a :class:`Decimal`?" -msgstr "" - -#: library/decimal.rst:2244 -msgid "" -"A: Yes, any binary floating-point number can be exactly expressed as a " -"Decimal though an exact conversion may take more precision than intuition " -"would suggest:" -msgstr "" - -#: library/decimal.rst:2253 -msgid "" -"Q: Within a complex calculation, how can I make sure that I haven't gotten a " -"spurious result because of insufficient precision or rounding anomalies." -msgstr "" - -#: library/decimal.rst:2256 -msgid "" -"A: The decimal module makes it easy to test results. A best practice is to " -"re-run calculations using greater precision and with various rounding modes. " -"Widely differing results indicate insufficient precision, rounding mode " -"issues, ill-conditioned inputs, or a numerically unstable algorithm." -msgstr "" - -#: library/decimal.rst:2261 -msgid "" -"Q: I noticed that context precision is applied to the results of operations " -"but not to the inputs. Is there anything to watch out for when mixing " -"values of different precisions?" -msgstr "" - -#: library/decimal.rst:2265 -msgid "" -"A: Yes. The principle is that all values are considered to be exact and so " -"is the arithmetic on those values. Only the results are rounded. The " -"advantage for inputs is that \"what you type is what you get\". A " -"disadvantage is that the results can look odd if you forget that the inputs " -"haven't been rounded:" -msgstr "" - -#: library/decimal.rst:2278 -msgid "" -"The solution is either to increase precision or to force rounding of inputs " -"using the unary plus operation:" -msgstr "" - -#: library/decimal.rst:2287 -msgid "" -"Alternatively, inputs can be rounded upon creation using " -"the :meth:`Context.create_decimal` method:" -msgstr "" - -#: library/decimal.rst:2293 -msgid "Q: Is the CPython implementation fast for large numbers?" -msgstr "" - -#: library/decimal.rst:2295 -msgid "" -"A: Yes. In the CPython and PyPy3 implementations, the C/CFFI versions of " -"the decimal module integrate the high speed `libmpdec `_ library for arbitrary " -"precision correctly rounded decimal floating-point arithmetic [#]_. " -"``libmpdec`` uses `Karatsuba multiplication `_ for medium-sized numbers and the `Number Theoretic " -"Transform `_ for very " -"large numbers." -msgstr "" - -#: library/decimal.rst:2305 -msgid "" -"The context must be adapted for exact arbitrary precision " -"arithmetic. :attr:`~Context.Emin` and :attr:`~Context.Emax` should always be " -"set to the maximum values, :attr:`~Context.clamp` should always be 0 (the " -"default). Setting :attr:`~Context.prec` requires some care." -msgstr "" - -#: library/decimal.rst:2309 -msgid "" -"The easiest approach for trying out bignum arithmetic is to use the maximum " -"value for :attr:`~Context.prec` as well [#]_::" -msgstr "" - -#: library/decimal.rst:2318 -msgid "" -"For inexact results, :const:`MAX_PREC` is far too large on 64-bit platforms " -"and the available memory will be insufficient::" -msgstr "" - -#: library/decimal.rst:2326 -msgid "" -"On systems with overallocation (e.g. Linux), a more sophisticated approach " -"is to adjust :attr:`~Context.prec` to the amount of available RAM. Suppose " -"that you have 8GB of RAM and expect 10 simultaneous operands using a maximum " -"of 500MB each::" -msgstr "" - -#: library/decimal.rst:2350 -msgid "" -"In general (and especially on systems without overallocation), it is " -"recommended to estimate even tighter bounds and set the :attr:`Inexact` trap " -"if all calculations are expected to be exact." -msgstr "" - -#: library/decimal.rst:2359 -msgid "" -"This approach now works for all exact results except for non-integer powers." -msgstr "" - -#~ msgid "" -#~ "Normalize the number by stripping the rightmost trailing zeros and " -#~ "converting any result equal to ``Decimal('0')`` to ``Decimal('0e0')``. " -#~ "Used for producing canonical values for attributes of an equivalence " -#~ "class. For example, ``Decimal('32.100')`` and ``Decimal('0.321000e+2')`` " -#~ "both normalize to the equivalent value ``Decimal('32.1')``." -#~ msgstr "" -#~ "Normalise le nombre en supprimant les zéros de fin les plus à droite et " -#~ "en convertissant tout résultat égal à ``Decimal('0')`` en " -#~ "``Decimal('0e0')``. Utilisé pour produire des valeurs canoniques pour les " -#~ "attributs d'une classe d'équivalence. Par exemple, ``Decimal('32.100')`` " -#~ "et ``Decimal('0.321000e+2')`` sont tous deux normalisés à la valeur " -#~ "équivalente ``Decimal('32.1')``." diff --git a/library/development.po b/library/development.po deleted file mode 100644 index f313988e7e..0000000000 --- a/library/development.po +++ /dev/null @@ -1,48 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2018-09-29 15:32+0200\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.2\n" - -#: library/development.rst:5 -msgid "Development Tools" -msgstr "Outils de développement" - -#: library/development.rst:7 -#, fuzzy -msgid "" -"The modules described in this chapter help you write software. For example, " -"the :mod:`pydoc` module takes a module and generates documentation based on " -"the module's contents. The :mod:`doctest` and :mod:`unittest` modules " -"contains frameworks for writing unit tests that automatically exercise code " -"and verify that the expected output is produced." -msgstr "" -"Les modules décrits dans ce chapitre vous aident à écrire des logiciels. " -"Par exemple, le module :mod:`pydoc` prend un module et génère de la " -"documentation basée sur son contenu. Les modules :mod:`doctest` " -"et :mod:`unittest` contiennent des cades applicatifs pour écrire des tests " -"unitaires qui permettent de valider automatiquement le code en vérifiant que " -"chaque résultat attendu est produit. Le programme :program:`2to3` peut " -"traduire du code Python 2.x en Python 3.x." - -#: library/development.rst:13 -msgid "The list of modules described in this chapter is:" -msgstr "La liste des modules documentés dans ce chapitre est :" - -#~ msgid "" -#~ "See also the Python development mode: the :option:`-X` ``dev`` option " -#~ "and :envvar:`PYTHONDEVMODE` environment variable." -#~ msgstr "" -#~ "Regardez aussi le \"mode développement\" de Python : l'option :option:`-" -#~ "X` ``dev`` et la variable d'environnement :envvar:`PYTHONDEVMODE`." diff --git a/library/devmode.po b/library/devmode.po deleted file mode 100644 index b4e0e2fe5f..0000000000 --- a/library/devmode.po +++ /dev/null @@ -1,290 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2020-07-20 15:08+0200\n" -"Last-Translator: FULL NAME \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" - -#: library/devmode.rst:4 -msgid "Python Development Mode" -msgstr "" - -#: library/devmode.rst:8 -msgid "" -"The Python Development Mode introduces additional runtime checks that are " -"too expensive to be enabled by default. It should not be more verbose than " -"the default if the code is correct; new warnings are only emitted when an " -"issue is detected." -msgstr "" - -#: library/devmode.rst:13 -msgid "" -"It can be enabled using the :option:`-X dev <-X>` command line option or by " -"setting the :envvar:`PYTHONDEVMODE` environment variable to ``1``." -msgstr "" - -#: library/devmode.rst:16 -msgid "See also :ref:`Python debug build `." -msgstr "" - -#: library/devmode.rst:19 -msgid "Effects of the Python Development Mode" -msgstr "" - -#: library/devmode.rst:21 -msgid "" -"Enabling the Python Development Mode is similar to the following command, " -"but with additional effects described below::" -msgstr "" - -#: library/devmode.rst:26 -msgid "Effects of the Python Development Mode:" -msgstr "" - -#: library/devmode.rst:28 -msgid "" -"Add ``default`` :ref:`warning filter `. The " -"following warnings are shown:" -msgstr "" - -#: library/devmode.rst:31 -msgid ":exc:`DeprecationWarning`" -msgstr ":exc:`DeprecationWarning`" - -#: library/devmode.rst:32 -msgid ":exc:`ImportWarning`" -msgstr ":exc:`ImportWarning`" - -#: library/devmode.rst:33 -msgid ":exc:`PendingDeprecationWarning`" -msgstr ":exc:`PendingDeprecationWarning`" - -#: library/devmode.rst:34 -msgid ":exc:`ResourceWarning`" -msgstr ":exc:`ResourceWarning`" - -#: library/devmode.rst:36 -msgid "" -"Normally, the above warnings are filtered by the default :ref:`warning " -"filters `." -msgstr "" - -#: library/devmode.rst:39 -msgid "" -"It behaves as if the :option:`-W default <-W>` command line option is used." -msgstr "" - -#: library/devmode.rst:41 -msgid "" -"Use the :option:`-W error <-W>` command line option or set " -"the :envvar:`PYTHONWARNINGS` environment variable to ``error`` to treat " -"warnings as errors." -msgstr "" - -#: library/devmode.rst:45 -msgid "Install debug hooks on memory allocators to check for:" -msgstr "" - -#: library/devmode.rst:47 -msgid "Buffer underflow" -msgstr "" - -#: library/devmode.rst:48 -msgid "Buffer overflow" -msgstr "" - -#: library/devmode.rst:49 -msgid "Memory allocator API violation" -msgstr "" - -#: library/devmode.rst:50 -msgid "Unsafe usage of the GIL" -msgstr "" - -#: library/devmode.rst:52 -msgid "See the :c:func:`PyMem_SetupDebugHooks` C function." -msgstr "" - -#: library/devmode.rst:54 -msgid "" -"It behaves as if the :envvar:`PYTHONMALLOC` environment variable is set to " -"``debug``." -msgstr "" - -#: library/devmode.rst:57 -msgid "" -"To enable the Python Development Mode without installing debug hooks on " -"memory allocators, set the :envvar:`PYTHONMALLOC` environment variable to " -"``default``." -msgstr "" - -#: library/devmode.rst:61 -msgid "" -"Call :func:`faulthandler.enable` at Python startup to install handlers for " -"the :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :const:`~signal.SIGABRT`, :const:`~signal.SIGBUS` " -"and :const:`~signal.SIGILL` signals to dump the Python traceback on a crash." -msgstr "" - -#: library/devmode.rst:66 -msgid "" -"It behaves as if the :option:`-X faulthandler <-X>` command line option is " -"used or if the :envvar:`PYTHONFAULTHANDLER` environment variable is set to " -"``1``." -msgstr "" - -#: library/devmode.rst:70 -msgid "" -"Enable :ref:`asyncio debug mode `. For " -"example, :mod:`asyncio` checks for coroutines that were not awaited and logs " -"them." -msgstr "" - -#: library/devmode.rst:73 -msgid "" -"It behaves as if the :envvar:`PYTHONASYNCIODEBUG` environment variable is " -"set to ``1``." -msgstr "" - -#: library/devmode.rst:76 -msgid "" -"Check the *encoding* and *errors* arguments for string encoding and decoding " -"operations. Examples: :func:`open`, :meth:`str.encode` " -"and :meth:`bytes.decode`." -msgstr "" - -#: library/devmode.rst:80 -msgid "" -"By default, for best performance, the *errors* argument is only checked at " -"the first encoding/decoding error and the *encoding* argument is sometimes " -"ignored for empty strings." -msgstr "" - -#: library/devmode.rst:84 -msgid "The :class:`io.IOBase` destructor logs ``close()`` exceptions." -msgstr "" - -#: library/devmode.rst:85 -#, fuzzy -msgid "" -"Set the :attr:`~sys.flags.dev_mode` attribute of :data:`sys.flags` to " -"``True``." -msgstr "" -"Définit l'attribut :attr:`~sys.flags.dev_mode` de :attr:`sys.flags` à " -"``True``" - -#: library/devmode.rst:88 -msgid "" -"The Python Development Mode does not enable the :mod:`tracemalloc` module by " -"default, because the overhead cost (to performance and memory) would be too " -"large. Enabling the :mod:`tracemalloc` module provides additional " -"information on the origin of some errors. For " -"example, :exc:`ResourceWarning` logs the traceback where the resource was " -"allocated, and a buffer overflow error logs the traceback where the memory " -"block was allocated." -msgstr "" - -#: library/devmode.rst:95 -msgid "" -"The Python Development Mode does not prevent the :option:`-O` command line " -"option from removing :keyword:`assert` statements nor from " -"setting :const:`__debug__` to ``False``." -msgstr "" - -#: library/devmode.rst:99 -msgid "" -"The Python Development Mode can only be enabled at the Python startup. Its " -"value can be read from :data:`sys.flags.dev_mode `." -msgstr "" - -#: library/devmode.rst:102 -msgid "The :class:`io.IOBase` destructor now logs ``close()`` exceptions." -msgstr "" - -#: library/devmode.rst:105 -msgid "" -"The *encoding* and *errors* arguments are now checked for string encoding " -"and decoding operations." -msgstr "" - -#: library/devmode.rst:111 -msgid "ResourceWarning Example" -msgstr "" - -#: library/devmode.rst:113 -msgid "" -"Example of a script counting the number of lines of the text file specified " -"in the command line::" -msgstr "" - -#: library/devmode.rst:127 -msgid "" -"The script does not close the file explicitly. By default, Python does not " -"emit any warning. Example using README.txt, which has 269 lines:" -msgstr "" - -#: library/devmode.rst:135 -msgid "" -"Enabling the Python Development Mode displays a :exc:`ResourceWarning` " -"warning:" -msgstr "" - -#: library/devmode.rst:145 -msgid "" -"In addition, enabling :mod:`tracemalloc` shows the line where the file was " -"opened:" -msgstr "" - -#: library/devmode.rst:160 -msgid "" -"The fix is to close explicitly the file. Example using a context manager::" -msgstr "" - -#: library/devmode.rst:168 -msgid "" -"Not closing a resource explicitly can leave a resource open for way longer " -"than expected; it can cause severe issues upon exiting Python. It is bad in " -"CPython, but it is even worse in PyPy. Closing resources explicitly makes an " -"application more deterministic and more reliable." -msgstr "" - -#: library/devmode.rst:175 -msgid "Bad file descriptor error example" -msgstr "" - -#: library/devmode.rst:177 -msgid "Script displaying the first line of itself::" -msgstr "" - -#: library/devmode.rst:190 -msgid "By default, Python does not emit any warning:" -msgstr "" - -#: library/devmode.rst:197 -msgid "" -"The Python Development Mode shows a :exc:`ResourceWarning` and logs a \"Bad " -"file descriptor\" error when finalizing the file object:" -msgstr "" - -#: library/devmode.rst:213 -msgid "" -"``os.close(fp.fileno())`` closes the file descriptor. When the file object " -"finalizer tries to close the file descriptor again, it fails with the ``Bad " -"file descriptor`` error. A file descriptor must be closed only once. In the " -"worst case scenario, closing it twice can lead to a crash " -"(see :issue:`18748` for an example)." -msgstr "" - -#: library/devmode.rst:219 -msgid "" -"The fix is to remove the ``os.close(fp.fileno())`` line, or open the file " -"with ``closefd=False``." -msgstr "" diff --git a/library/dialog.po b/library/dialog.po deleted file mode 100644 index 5ccf6d9584..0000000000 --- a/library/dialog.po +++ /dev/null @@ -1,351 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-07-08 10:52+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/dialog.rst:2 -msgid "Tkinter Dialogs" -msgstr "Boîtes de dialogue *Tkinter*" - -#: library/dialog.rst:5 -#, fuzzy -msgid ":mod:`!tkinter.simpledialog` --- Standard Tkinter input dialogs" -msgstr "" -":mod:`tkinter.simpledialog` – Boîtes de dialogue de saisie standard de " -"*Tkinter*" - -#: library/dialog.rst:10 -msgid "**Source code:** :source:`Lib/tkinter/simpledialog.py`" -msgstr "**Code source :** :source:`Lib/tkinter/simpledialog.py`" - -#: library/dialog.rst:14 -#, fuzzy -msgid "" -"The :mod:`!tkinter.simpledialog` module contains convenience classes and " -"functions for creating simple modal dialogs to get a value from the user." -msgstr "" -"Le module :mod:`tkinter.simpledialog` contient des classes pratiques et des " -"fonctions pour créer des boîtes de dialogue modales simples afin d'obtenir " -"une valeur de l'utilisateur." - -#: library/dialog.rst:22 -msgid "" -"The above three functions provide dialogs that prompt the user to enter a " -"value of the desired type." -msgstr "" -"Les trois fonctions ci-dessus fournissent des boîtes de dialogue qui " -"invitent l'utilisateur à saisir une valeur du type souhaité." - -#: library/dialog.rst:27 -msgid "The base class for custom dialogs." -msgstr "Classe mère pour les boîtes de dialogue personnalisées." - -#: library/dialog.rst:31 -msgid "" -"Override to construct the dialog's interface and return the widget that " -"should have initial focus." -msgstr "" -"À remplacer pour construire l'interface de la boîte de dialogue et renvoyer " -"le widget qui doit avoir le focus initial." - -#: library/dialog.rst:36 -msgid "" -"Default behaviour adds OK and Cancel buttons. Override for custom button " -"layouts." -msgstr "" -"Le comportement par défaut ajoute les boutons OK et Annuler. À remplacer " -"avoir une disposition de boutons personnalisée." - -#: library/dialog.rst:42 -#, fuzzy -msgid ":mod:`!tkinter.filedialog` --- File selection dialogs" -msgstr "" -":mod:`tkinter.filedialog` – Boîtes de dialogue de sélection de fichiers" - -#: library/dialog.rst:47 -msgid "**Source code:** :source:`Lib/tkinter/filedialog.py`" -msgstr "**Code source :** :source:`Lib/tkinter/filedialog.py`" - -#: library/dialog.rst:51 -#, fuzzy -msgid "" -"The :mod:`!tkinter.filedialog` module provides classes and factory functions " -"for creating file/directory selection windows." -msgstr "" -"Le module :mod:`tkinter.filedialog` fournit des classes et des fonctions de " -"fabrique pour créer des fenêtres de sélection de fichiers ou répertoires." - -#: library/dialog.rst:55 -msgid "Native Load/Save Dialogs" -msgstr "Boîtes de dialogue de chargement et sauvegarde natives" - -#: library/dialog.rst:57 -msgid "" -"The following classes and functions provide file dialog windows that combine " -"a native look-and-feel with configuration options to customize behaviour. " -"The following keyword arguments are applicable to the classes and functions " -"listed below:" -msgstr "" -"Les classes et fonctions suivantes fournissent des fenêtres de dialogue de " -"fichiers qui combinent une apparence native avec des options de " -"configuration pour personnaliser le comportement. Les arguments nommés " -"suivants s'appliquent aux classes et fonctions répertoriées ci-dessous :" - -#: library/dialog.rst:62 -msgid "*parent* - the window to place the dialog on top of" -msgstr "*parent* – la fenêtre sur laquelle placer la boîte de dialogue" - -#: library/dialog.rst:64 -msgid "*title* - the title of the window" -msgstr "*title* – le titre de la fenêtre" - -#: library/dialog.rst:66 -msgid "*initialdir* - the directory that the dialog starts in" -msgstr "*initialdir* – le répertoire dans lequel la boîte de dialogue démarre" - -#: library/dialog.rst:68 -msgid "*initialfile* - the file selected upon opening of the dialog" -msgstr "" -"*initialfile* – le fichier sélectionné à l'ouverture de la boîte de dialogue" - -#: library/dialog.rst:70 -msgid "" -"*filetypes* - a sequence of (label, pattern) tuples, '*' wildcard is allowed" -msgstr "" -"*filetypes* – une séquence de *n*-uplets (étiquette, motif), le caractère " -"générique ``'*'`` est autorisé" - -#: library/dialog.rst:72 -msgid "*defaultextension* - default extension to append to file (save dialogs)" -msgstr "" -"*defaultextension* – extension par défaut à ajouter au fichier (boîtes de " -"dialogue de sauvegarde)" - -#: library/dialog.rst:74 -msgid "*multiple* - when true, selection of multiple items is allowed" -msgstr "" -"*multiple* – lorsque vrai, la sélection de plusieurs éléments est autorisée" - -#: library/dialog.rst:77 -msgid "**Static factory functions**" -msgstr "**Fonctions statiques de fabrique**" - -#: library/dialog.rst:79 -msgid "" -"The below functions when called create a modal, native look-and-feel dialog, " -"wait for the user's selection, then return the selected value(s) or ``None`` " -"to the caller." -msgstr "" -"Les fonctions ci-dessous, lorsqu'elles sont appelées, créent une boîte de " -"dialogue d'apparence modale native, attendent la sélection de l'utilisateur, " -"puis renvoient la ou les valeurs sélectionnées ou ``None`` à l'appelant." - -#: library/dialog.rst:86 -msgid "" -"The above two functions create an :class:`Open` dialog and return the opened " -"file object(s) in read-only mode." -msgstr "" -"Les deux fonctions ci-dessus créent une boîte de dialogue :class:`Open` et " -"renvoient le(s) objet(s) fichier ouvert(s) en mode lecture seule." - -#: library/dialog.rst:91 -msgid "" -"Create a :class:`SaveAs` dialog and return a file object opened in write-" -"only mode." -msgstr "" -"Crée une boîte de dialogue :class:`SaveAs` et renvoie un objet fichier " -"ouvert en mode écriture seule." - -#: library/dialog.rst:96 -msgid "" -"The above two functions create an :class:`Open` dialog and return the " -"selected filename(s) that correspond to existing file(s)." -msgstr "" -"Les deux fonctions ci-dessus créent une boîte de dialogue :class:`Open` et " -"renvoient le(s) nom(s) de fichier sélectionné(s) qui correspondent au(x) " -"fichier(s) existant(s)." - -#: library/dialog.rst:101 -msgid "Create a :class:`SaveAs` dialog and return the selected filename." -msgstr "" -"Crée une boîte de dialogue :class:`SaveAs` et renvoie le nom de fichier " -"sélectionné." - -#: library/dialog.rst:105 -msgid "Prompt user to select a directory." -msgstr "Demande à l'utilisateur de sélectionner un répertoire." - -#: library/dialog.rst:106 -msgid "Additional keyword option:" -msgstr "Option nommée supplémentaire :" - -#: library/dialog.rst:107 -msgid "*mustexist* - determines if selection must be an existing directory." -msgstr "" -"*mustexist* – détermine si la sélection doit être un répertoire existant." - -#: library/dialog.rst:112 -msgid "" -"The above two classes provide native dialog windows for saving and loading " -"files." -msgstr "" -"Les deux classes ci-dessus fournissent des fenêtres de dialogue natives pour " -"enregistrer et charger des fichiers." - -#: library/dialog.rst:115 -msgid "**Convenience classes**" -msgstr "**Classes de commodité**" - -#: library/dialog.rst:117 -msgid "" -"The below classes are used for creating file/directory windows from scratch. " -"These do not emulate the native look-and-feel of the platform." -msgstr "" -"Les classes ci-dessous sont utilisées pour créer des fenêtres avec fichiers " -"et répertoires à partir de zéro. Celles-ci n'imitent pas l'apparence native " -"de la plateforme." - -#: library/dialog.rst:122 -msgid "Create a dialog prompting the user to select a directory." -msgstr "" -"Crée une boîte de dialogue invitant l'utilisateur à sélectionner un " -"répertoire." - -#: library/dialog.rst:124 -msgid "" -"The *FileDialog* class should be subclassed for custom event handling and " -"behaviour." -msgstr "" -"la classe *FileDialog* doit être sous-classée pour un comportement et une " -"gestion des événements personnalisés." - -#: library/dialog.rst:129 -msgid "Create a basic file selection dialog." -msgstr "Crée une boîte de dialogue basique de sélection de fichiers." - -#: library/dialog.rst:133 -msgid "Trigger the termination of the dialog window." -msgstr "Déclenche la fermeture de la fenêtre de dialogue." - -#: library/dialog.rst:137 -msgid "Event handler for double-click event on directory." -msgstr "" -"Gestionnaire d'événements pour l'événement de double-clic sur le répertoire." - -#: library/dialog.rst:141 -msgid "Event handler for click event on directory." -msgstr "Gestionnaire d'événements pour l'événement de clic sur le répertoire." - -#: library/dialog.rst:145 -msgid "Event handler for double-click event on file." -msgstr "" -"Gestionnaire d'événements pour l'événement de double-clic sur le fichier." - -#: library/dialog.rst:149 -msgid "Event handler for single-click event on file." -msgstr "" -"Gestionnaire d'événements pour un événement en un seul clic sur le fichier." - -#: library/dialog.rst:153 -msgid "Filter the files by directory." -msgstr "Filtre les fichiers par répertoire." - -#: library/dialog.rst:157 -msgid "Retrieve the file filter currently in use." -msgstr "Récupère le filtre de fichiers actuellement utilisé." - -#: library/dialog.rst:161 -msgid "Retrieve the currently selected item." -msgstr "Récupère l'élément actuellement sélectionné." - -#: library/dialog.rst:165 -msgid "Render dialog and start event loop." -msgstr "Affiche la boîte de dialogue et lance la boucle d'événements." - -#: library/dialog.rst:169 -msgid "Exit dialog returning current selection." -msgstr "Quitte la boîte de dialogue en renvoyant la sélection actuelle." - -#: library/dialog.rst:173 -msgid "Exit dialog returning filename, if any." -msgstr "" -"Sort de la boîte de dialogue en renvoyant le nom du fichier, le cas échéant." - -#: library/dialog.rst:177 -msgid "Set the file filter." -msgstr "Définit le filtre de fichiers." - -#: library/dialog.rst:181 -msgid "Update the current file selection to *file*." -msgstr "Met à jour la sélection de fichiers actuelle vers *file*." - -#: library/dialog.rst:186 -msgid "" -"A subclass of FileDialog that creates a dialog window for selecting an " -"existing file." -msgstr "" -"Sous-classe de *FileDialog* qui crée une fenêtre de dialogue pour " -"sélectionner un fichier existant." - -#: library/dialog.rst:191 -msgid "" -"Test that a file is provided and that the selection indicates an already " -"existing file." -msgstr "" -"Teste qu'un fichier est fourni et que la sélection indique un fichier déjà " -"existant." - -#: library/dialog.rst:196 -msgid "" -"A subclass of FileDialog that creates a dialog window for selecting a " -"destination file." -msgstr "" -"Sous-classe de *FileDialog* qui crée une fenêtre de dialogue pour " -"sélectionner un fichier de destination." - -#: library/dialog.rst:201 -msgid "" -"Test whether or not the selection points to a valid file that is not a " -"directory. Confirmation is required if an already existing file is selected." -msgstr "" -"Teste si la sélection pointe vers un fichier valide qui n'est pas un " -"répertoire. Une confirmation est requise si un fichier déjà existant est " -"sélectionné." - -#: library/dialog.rst:206 -#, fuzzy -msgid ":mod:`!tkinter.commondialog` --- Dialog window templates" -msgstr ":mod:`tkinter.commondialog` – Modèles de fenêtre de dialogue" - -#: library/dialog.rst:211 -msgid "**Source code:** :source:`Lib/tkinter/commondialog.py`" -msgstr "**Code source :** :source:`Lib/tkinter/commondialog.py`" - -#: library/dialog.rst:215 -#, fuzzy -msgid "" -"The :mod:`!tkinter.commondialog` module provides the :class:`Dialog` class " -"that is the base class for dialogs defined in other supporting modules." -msgstr "" -"Le module :mod:`tkinter.commondialog` fournit la classe :class:`Dialog` qui " -"est la classe mère pour les dialogues définis dans d'autres modules." - -#: library/dialog.rst:222 -msgid "Render the Dialog window." -msgstr "Affiche la fenêtre de dialogue." - -#: library/dialog.rst:227 -msgid "Modules :mod:`tkinter.messagebox`, :ref:`tut-files`" -msgstr "Modules :mod:`tkinter.messagebox`, :ref:`tut-files`" diff --git a/library/difflib.po b/library/difflib.po deleted file mode 100644 index 00b22eee87..0000000000 --- a/library/difflib.po +++ /dev/null @@ -1,983 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-10-18 12:28+0200\n" -"Last-Translator: Loc Cosnier \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1)\n" -"X-Generator: Gtranslator 3.36.0\n" - -#: library/difflib.rst:2 -#, fuzzy -msgid ":mod:`!difflib` --- Helpers for computing deltas" -msgstr ":mod:`difflib` — Utilitaires pour le calcul des deltas" - -#: library/difflib.rst:7 -msgid "**Source code:** :source:`Lib/difflib.py`" -msgstr "**Code source:** :source:`Lib/difflib.py`" - -#: library/difflib.rst:16 -#, fuzzy -msgid "" -"This module provides classes and functions for comparing sequences. It can " -"be used for example, for comparing files, and can produce information about " -"file differences in various formats, including HTML and context and unified " -"diffs. For comparing directories and files, see also, the :mod:`filecmp` " -"module." -msgstr "" -"Ce module fournit des classes et des fonctions permettant de comparer des " -"séquences. Il peut être utilisé, par exemple, pour comparer des fichiers et " -"peut produire des informations sur les différences dans divers formats, y " -"compris HTML et les différences contextuelles et unifiées. Pour la " -"comparaison de répertoires et de fichiers, voir aussi le " -"module :mod:`filecmp`." - -#: library/difflib.rst:25 -msgid "" -"This is a flexible class for comparing pairs of sequences of any type, so " -"long as the sequence elements are :term:`hashable`. The basic algorithm " -"predates, and is a little fancier than, an algorithm published in the late " -"1980's by Ratcliff and Obershelp under the hyperbolic name \"gestalt pattern " -"matching.\" The idea is to find the longest contiguous matching subsequence " -"that contains no \"junk\" elements; these \"junk\" elements are ones that " -"are uninteresting in some sense, such as blank lines or whitespace. " -"(Handling junk is an extension to the Ratcliff and Obershelp algorithm.) The " -"same idea is then applied recursively to the pieces of the sequences to the " -"left and to the right of the matching subsequence. This does not yield " -"minimal edit sequences, but does tend to yield matches that \"look right\" " -"to people." -msgstr "" -"C'est une classe flexible permettant de comparer des séquences deux à deux " -"de n'importe quel type, tant que les éléments des séquences " -"sont :term:`hachables `. L'algorithme de base est antérieur, et un " -"peu plus sophistiqué, à un algorithme publié à la fin des années 1980 par " -"Ratcliff et Obershelp sous le nom hyperbolique de *gestalt pattern " -"matching*. L'idée est de trouver la plus longue sous-séquence d'appariement " -"contiguë qui ne contient pas d'éléments « indésirables » ; ces éléments " -"« indésirables » sont ceux qui sont inintéressants dans un certain sens, " -"comme les lignes blanches ou les espaces. (Le traitement des éléments " -"indésirables est une extension de l'algorithme de Ratcliff et Obershelp). La " -"même idée est ensuite appliquée récursivement aux morceaux des séquences à " -"gauche et à droite de la sous-séquence correspondante. Cela ne donne pas des " -"séquences de montage minimales, mais tend à donner des correspondances qui " -"« semblent correctes » pour les gens." - -#: library/difflib.rst:37 -msgid "" -"**Timing:** The basic Ratcliff-Obershelp algorithm is cubic time in the " -"worst case and quadratic time in the expected case. :class:`SequenceMatcher` " -"is quadratic time for the worst case and has expected-case behavior " -"dependent in a complicated way on how many elements the sequences have in " -"common; best case time is linear." -msgstr "" -"**Compléxité temporelle :** l'algorithme de base de Ratcliff-Obershelp est " -"de complexité cubique dans le pire cas et de complexité quadratique dans le " -"cas attendu. :class:`SequenceMatcher` est de complexité quadratique pour le " -"pire cas et son comportement dans le cas attendu dépend de façon complexe du " -"nombre d'éléments que les séquences ont en commun ; le temps dans le " -"meilleur cas est linéaire." - -#: library/difflib.rst:43 -msgid "" -"**Automatic junk heuristic:** :class:`SequenceMatcher` supports a heuristic " -"that automatically treats certain sequence items as junk. The heuristic " -"counts how many times each individual item appears in the sequence. If an " -"item's duplicates (after the first one) account for more than 1% of the " -"sequence and the sequence is at least 200 items long, this item is marked as " -"\"popular\" and is treated as junk for the purpose of sequence matching. " -"This heuristic can be turned off by setting the ``autojunk`` argument to " -"``False`` when creating the :class:`SequenceMatcher`." -msgstr "" -"**Heuristique automatique des indésirables:** :class:`SequenceMatcher` " -"utilise une heuristique qui traite automatiquement certains éléments de la " -"séquence comme indésirables. L'heuristique compte combien de fois chaque " -"élément individuel apparaît dans la séquence. Si les doublons d'un élément " -"(après le premier) représentent plus de 1 % de la séquence et que la " -"séquence compte au moins 200 éléments, cet élément est marqué comme " -"« populaire » et est traité comme indésirable aux fins de la comparaison des " -"séquences. Cette heuristique peut être désactivée en réglant l'argument " -"``autojunk`` sur ``False`` lors de la création de la " -"classe :class:`SequenceMatcher`." - -#: library/difflib.rst:390 -#, fuzzy -msgid "Added the *autojunk* parameter." -msgstr "Le paramètre *autojunk*." - -#: library/difflib.rst:57 -msgid "" -"This is a class for comparing sequences of lines of text, and producing " -"human-readable differences or deltas. Differ uses :class:`SequenceMatcher` " -"both to compare sequences of lines, and to compare sequences of characters " -"within similar (near-matching) lines." -msgstr "" -"Il s'agit d'une classe permettant de comparer des séquences de lignes de " -"texte et de produire des différences ou deltas humainement lisibles. " -"*Differ* utilise :class:`SequenceMatcher` à la fois pour comparer des " -"séquences de lignes, et pour comparer des séquences de caractères dans des " -"lignes similaires (quasi-correspondantes)." - -#: library/difflib.rst:62 -msgid "Each line of a :class:`Differ` delta begins with a two-letter code:" -msgstr "" -"Chaque ligne d'un delta :class:`Differ` commence par un code de deux " -"lettres :" - -#: library/difflib.rst:65 -msgid "Code" -msgstr "Code" - -#: library/difflib.rst:500 -msgid "Meaning" -msgstr "Signification" - -#: library/difflib.rst:67 -msgid "``'- '``" -msgstr "``'- '``" - -#: library/difflib.rst:67 -msgid "line unique to sequence 1" -msgstr "ligne n'appartenant qu'à la séquence 1" - -#: library/difflib.rst:69 -msgid "``'+ '``" -msgstr "``'+ '``" - -#: library/difflib.rst:69 -msgid "line unique to sequence 2" -msgstr "ligne n'appartenant qu'à la séquence 2" - -#: library/difflib.rst:71 -msgid "``' '``" -msgstr "``' '``" - -#: library/difflib.rst:71 -msgid "line common to both sequences" -msgstr "ligne commune aux deux séquences" - -#: library/difflib.rst:73 -msgid "``'? '``" -msgstr "``'? '``" - -#: library/difflib.rst:73 -msgid "line not present in either input sequence" -msgstr "ligne non présente dans l'une ou l'autre des séquences d'entrée" - -#: library/difflib.rst:76 -#, fuzzy -msgid "" -"Lines beginning with '``?``' attempt to guide the eye to intraline " -"differences, and were not present in either input sequence. These lines can " -"be confusing if the sequences contain whitespace characters, such as spaces, " -"tabs or line breaks." -msgstr "" -"Les lignes commençant par ``'?'`` tentent de guider l'œil vers les " -"différences intralignes, et n'étaient présentes dans aucune des séquences " -"d'entrée. Ces lignes peuvent être déroutantes si les séquences contiennent " -"des caractères de tabulation." - -#: library/difflib.rst:83 -msgid "" -"This class can be used to create an HTML table (or a complete HTML file " -"containing the table) showing a side by side, line by line comparison of " -"text with inter-line and intra-line change highlights. The table can be " -"generated in either full or contextual difference mode." -msgstr "" -"Cette classe peut être utilisée pour créer un tableau HTML (ou un fichier " -"HTML complet contenant le tableau) montrant une comparaison côte à côte, " -"ligne par ligne, du texte avec les changements inter-lignes et intralignes. " -"Le tableau peut être généré en mode de différence complet ou contextuel." - -#: library/difflib.rst:88 -msgid "The constructor for this class is:" -msgstr "Le constructeur pour cette classe est :" - -#: library/difflib.rst:93 -msgid "Initializes instance of :class:`HtmlDiff`." -msgstr "Initialise l'instance de :class:`HtmlDiff`." - -#: library/difflib.rst:95 -msgid "" -"*tabsize* is an optional keyword argument to specify tab stop spacing and " -"defaults to ``8``." -msgstr "" -"*tabsize* est argument nommé optionnel pour spécifier l'espacement des " -"tabulations et sa valeur par défaut est ``8``." - -#: library/difflib.rst:98 -msgid "" -"*wrapcolumn* is an optional keyword to specify column number where lines are " -"broken and wrapped, defaults to ``None`` where lines are not wrapped." -msgstr "" -"*wrapcolumn* est un argument nommé optionnel pour spécifier le numéro de la " -"colonne où les lignes sont coupées pour être ré-agencées, la valeur par " -"défaut est ``None`` lorsque les lignes ne sont pas ré-agencées." - -#: library/difflib.rst:101 -msgid "" -"*linejunk* and *charjunk* are optional keyword arguments passed " -"into :func:`ndiff` (used by :class:`HtmlDiff` to generate the side by side " -"HTML differences). See :func:`ndiff` documentation for argument default " -"values and descriptions." -msgstr "" -"*linejunk* et *charjunk* sont des arguments nommés optionnels passés " -"dans :func:`ndiff` (utilisés par :class:`HtmlDiff` pour générer les " -"différences HTML côte à côte). Voir la documentation de :func:`ndiff` pour " -"les valeurs par défaut des arguments et les descriptions." - -#: library/difflib.rst:105 -msgid "The following methods are public:" -msgstr "Les méthodes suivantes sont publiques :" - -#: library/difflib.rst:110 -msgid "" -"Compares *fromlines* and *tolines* (lists of strings) and returns a string " -"which is a complete HTML file containing a table showing line by line " -"differences with inter-line and intra-line changes highlighted." -msgstr "" -"Compare *fromlines* et *tolines* (listes de chaînes de caractères) et " -"renvoie une chaîne de caractères qui est un fichier HTML complet contenant " -"un tableau montrant les différences ligne par ligne avec les changements " -"inter-lignes et intralignes mis en évidence." - -#: library/difflib.rst:114 -msgid "" -"*fromdesc* and *todesc* are optional keyword arguments to specify from/to " -"file column header strings (both default to an empty string)." -msgstr "" -"*fromdesc* et *todesc* sont des arguments nommés optionnels pour spécifier " -"les chaînes d'en-tête des colonnes *from/to* du fichier (les deux sont des " -"chaînes vides par défaut)." - -#: library/difflib.rst:117 -msgid "" -"*context* and *numlines* are both optional keyword arguments. Set *context* " -"to ``True`` when contextual differences are to be shown, else the default is " -"``False`` to show the full files. *numlines* defaults to ``5``. When " -"*context* is ``True`` *numlines* controls the number of context lines which " -"surround the difference highlights. When *context* is ``False`` *numlines* " -"controls the number of lines which are shown before a difference highlight " -"when using the \"next\" hyperlinks (setting to zero would cause the \"next\" " -"hyperlinks to place the next difference highlight at the top of the browser " -"without any leading context)." -msgstr "" -"*context* et *numlines* sont tous deux des arguments nommés facultatifs. " -"Mettre *context* à ``True`` lorsque les différences contextuelles doivent " -"être affichées, sinon la valeur par défaut est ``False`` pour afficher les " -"fichiers complets. Les *numlines* ont pour valeur par défaut ``5``. Lorsque " -"*context* est ``True``, *numlines* contrôle le nombre de lignes de contexte " -"qui entourent les différences mise en évidence. Lorsque *context* est " -"``False``, *numlines* contrôle le nombre de lignes qui sont affichées avant " -"un surlignage de différence lors de l'utilisation des hyperliens " -"« suivants » (un réglage à zéro ferait en sorte que les hyperliens " -"« suivants » placeraient le surlignage de différence suivant en haut du " -"navigateur sans aucun contexte introductif)." - -#: library/difflib.rst:128 -msgid "" -"*fromdesc* and *todesc* are interpreted as unescaped HTML and should be " -"properly escaped while receiving input from untrusted sources." -msgstr "" -"*fromdesc* et *todesc* sont interprétés comme du HTML non échappé et doivent " -"être correctement échappés lors de la réception de données provenant de " -"sources non fiables." - -#: library/difflib.rst:131 -msgid "" -"*charset* keyword-only argument was added. The default charset of HTML " -"document changed from ``'ISO-8859-1'`` to ``'utf-8'``." -msgstr "" -"l'argument nommé *charset* a été ajouté. Le jeu de caractères par défaut du " -"document HTML est passé de ``'ISO-8859-1'`` à ``'utf-8'``." - -#: library/difflib.rst:137 -msgid "" -"Compares *fromlines* and *tolines* (lists of strings) and returns a string " -"which is a complete HTML table showing line by line differences with inter-" -"line and intra-line changes highlighted." -msgstr "" -"Compare *fromlines* et *tolines* (listes de chaînes) et renvoie une chaîne " -"qui est un tableau HTML complet montrant les différences ligne par ligne " -"avec les changements inter-lignes et intralignes mis en évidence." - -#: library/difflib.rst:141 -msgid "" -"The arguments for this method are the same as those for " -"the :meth:`make_file` method." -msgstr "" -"Les arguments pour cette méthode sont les mêmes que ceux de la " -"méthode :meth:`make_file`." - -#: library/difflib.rst:148 -msgid "" -"Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " -"generating the delta lines) in context diff format." -msgstr "" -"Compare *a* et *b* (listes de chaînes de caractères) ; renvoie un delta " -"(un :term:`generateur ` générant les lignes delta) dans un format " -"de différence de contexte." - -#: library/difflib.rst:151 -#, fuzzy -msgid "" -"Context diffs are a compact way of showing just the lines that have changed " -"plus a few lines of context. The changes are shown in a before/after " -"style. The number of context lines is set by *n* which defaults to three." -msgstr "" -"Les différences de contexte sont une façon compacte de montrer seulement les " -"lignes qui ont changé plus quelques lignes de contexte. Les changements " -"sont affichés dans un style avant/après. Le nombre de lignes de contexte " -"est défini par *n*, qui est de trois par défaut." - -#: library/difflib.rst:155 -msgid "" -"By default, the diff control lines (those with ``***`` or ``---``) are " -"created with a trailing newline. This is helpful so that inputs created " -"from :func:`io.IOBase.readlines` result in diffs that are suitable for use " -"with :func:`io.IOBase.writelines` since both the inputs and outputs have " -"trailing newlines." -msgstr "" -"Par défaut, les lignes de contrôle de la différence (celles avec ``***`` ou " -"``---``) sont créées avec un saut de ligne à la fin. Ceci est utile pour que " -"les entrées créées à partir de :func:`io.IOBase.readlines` résultent en des " -"différences qui peuvent être utilisées avec :func:`io.IOBase.writelines` " -"puisque les entrées et les sorties ont des nouvelles lignes de fin." - -#: library/difflib.rst:293 -msgid "" -"For inputs that do not have trailing newlines, set the *lineterm* argument " -"to ``\"\"`` so that the output will be uniformly newline free." -msgstr "" -"Pour les entrées qui n'ont pas de retour à la ligne, mettre l'argument " -"*lineterm* à ``\"\"`` afin que la sortie soit uniformément sans retour à la " -"ligne." - -#: library/difflib.rst:164 -msgid "" -"The context diff format normally has a header for filenames and modification " -"times. Any or all of these may be specified using strings for *fromfile*, " -"*tofile*, *fromfiledate*, and *tofiledate*. The modification times are " -"normally expressed in the ISO 8601 format. If not specified, the strings " -"default to blanks." -msgstr "" -"Le format de contexte de différence comporte normalement un en-tête pour les " -"noms de fichiers et les heures de modification. Tout ou partie de ces " -"éléments peuvent être spécifiés en utilisant les chaînes de caractères " -"*fromfile*, *tofile*, *fromfiledate* et *tofiledate*. Les heures de " -"modification sont normalement exprimées dans le format ISO 8601. Si elles ne " -"sont pas spécifiées, les chaînes de caractères sont par défaut vierges." - -#: library/difflib.rst:320 -msgid "See :ref:`difflib-interface` for a more detailed example." -msgstr "" -"Voir :ref:`une interface de ligne de commandes pour difflib ` pour un exemple plus détaillé." - -#: library/difflib.rst:195 -msgid "" -"Return a list of the best \"good enough\" matches. *word* is a sequence for " -"which close matches are desired (typically a string), and *possibilities* is " -"a list of sequences against which to match *word* (typically a list of " -"strings)." -msgstr "" - -#: library/difflib.rst:199 -msgid "" -"Optional argument *n* (default ``3``) is the maximum number of close matches " -"to return; *n* must be greater than ``0``." -msgstr "" - -#: library/difflib.rst:202 -msgid "" -"Optional argument *cutoff* (default ``0.6``) is a float in the range [0, 1]. " -"Possibilities that don't score at least that similar to *word* are ignored." -msgstr "" - -#: library/difflib.rst:205 -msgid "" -"The best (no more than *n*) matches among the possibilities are returned in " -"a list, sorted by similarity score, most similar first." -msgstr "" - -#: library/difflib.rst:221 -msgid "" -"Compare *a* and *b* (lists of strings); return a :class:`Differ`\\ -style " -"delta (a :term:`generator` generating the delta lines)." -msgstr "" - -#: library/difflib.rst:224 -msgid "" -"Optional keyword parameters *linejunk* and *charjunk* are filtering " -"functions (or ``None``):" -msgstr "" - -#: library/difflib.rst:227 -msgid "" -"*linejunk*: A function that accepts a single string argument, and returns " -"true if the string is junk, or false if not. The default is ``None``. There " -"is also a module-level function :func:`IS_LINE_JUNK`, which filters out " -"lines without visible characters, except for at most one hash character " -"(``'#'``) -- however the underlying :class:`SequenceMatcher` class does a " -"dynamic analysis of which lines are so frequent as to constitute noise, and " -"this usually works better than using this function." -msgstr "" - -#: library/difflib.rst:235 -msgid "" -"*charjunk*: A function that accepts a character (a string of length 1), and " -"returns if the character is junk, or false if not. The default is module-" -"level function :func:`IS_CHARACTER_JUNK`, which filters out whitespace " -"characters (a blank or tab; it's a bad idea to include newline in this!)." -msgstr "" - -#: library/difflib.rst:256 -msgid "Return one of the two sequences that generated a delta." -msgstr "" - -#: library/difflib.rst:258 -msgid "" -"Given a *sequence* produced by :meth:`Differ.compare` or :func:`ndiff`, " -"extract lines originating from file 1 or 2 (parameter *which*), stripping " -"off line prefixes." -msgstr "" - -#: library/difflib.rst:262 -msgid "Example:" -msgstr "Exemple :" - -#: library/difflib.rst:279 -msgid "" -"Compare *a* and *b* (lists of strings); return a delta (a :term:`generator` " -"generating the delta lines) in unified diff format." -msgstr "" - -#: library/difflib.rst:282 -msgid "" -"Unified diffs are a compact way of showing just the lines that have changed " -"plus a few lines of context. The changes are shown in an inline style " -"(instead of separate before/after blocks). The number of context lines is " -"set by *n* which defaults to three." -msgstr "" - -#: library/difflib.rst:287 -msgid "" -"By default, the diff control lines (those with ``---``, ``+++``, or ``@@``) " -"are created with a trailing newline. This is helpful so that inputs created " -"from :func:`io.IOBase.readlines` result in diffs that are suitable for use " -"with :func:`io.IOBase.writelines` since both the inputs and outputs have " -"trailing newlines." -msgstr "" - -#: library/difflib.rst:296 -msgid "" -"Set *color* to ``True`` to enable output in color, similar to :program:`git " -"diff --color`. Even if enabled, it can be :ref:`controlled using environment " -"variables `." -msgstr "" - -#: library/difflib.rst:300 -#, fuzzy -msgid "" -"The unified diff format normally has a header for filenames and modification " -"times. Any or all of these may be specified using strings for *fromfile*, " -"*tofile*, *fromfiledate*, and *tofiledate*. The modification times are " -"normally expressed in the ISO 8601 format. If not specified, the strings " -"default to blanks." -msgstr "" -"Le format de contexte de différence comporte normalement un en-tête pour les " -"noms de fichiers et les heures de modification. Tout ou partie de ces " -"éléments peuvent être spécifiés en utilisant les chaînes de caractères " -"*fromfile*, *tofile*, *fromfiledate* et *tofiledate*. Les heures de " -"modification sont normalement exprimées dans le format ISO 8601. Si elles ne " -"sont pas spécifiées, les chaînes de caractères sont par défaut vierges." - -#: library/difflib.rst:322 -#, fuzzy -msgid "Added the *color* parameter." -msgstr "Le paramètre *autojunk*." - -#: library/difflib.rst:328 -msgid "" -"Compare *a* and *b* (lists of bytes objects) using *dfunc*; yield a sequence " -"of delta lines (also bytes) in the format returned by *dfunc*. *dfunc* must " -"be a callable, typically either :func:`unified_diff` or :func:`context_diff`." -msgstr "" - -#: library/difflib.rst:333 -msgid "" -"Allows you to compare data with unknown or inconsistent encoding. All inputs " -"except *n* must be bytes objects, not str. Works by losslessly converting " -"all inputs (except *n*) to str, and calling ``dfunc(a, b, fromfile, tofile, " -"fromfiledate, tofiledate, n, lineterm)``. The output of *dfunc* is then " -"converted back to bytes, so the delta lines that you receive have the same " -"unknown/inconsistent encodings as *a* and *b*." -msgstr "" - -#: library/difflib.rst:344 -msgid "" -"Return ``True`` for ignorable lines. The line *line* is ignorable if *line* " -"is blank or contains a single ``'#'``, otherwise it is not ignorable. Used " -"as a default for parameter *linejunk* in :func:`ndiff` in older versions." -msgstr "" - -#: library/difflib.rst:351 -msgid "" -"Return ``True`` for ignorable characters. The character *ch* is ignorable " -"if *ch* is a space or tab, otherwise it is not ignorable. Used as a default " -"for parameter *charjunk* in :func:`ndiff`." -msgstr "" - -#: library/difflib.rst:358 -msgid "" -"`Pattern Matching: The Gestalt Approach `_" -msgstr "" - -#: library/difflib.rst:359 -msgid "" -"Discussion of a similar algorithm by John W. Ratcliff and D. E. Metzener. " -"This was published in Dr. Dobb's Journal in July, 1988." -msgstr "" - -#: library/difflib.rst:366 -msgid "SequenceMatcher objects" -msgstr "" - -#: library/difflib.rst:368 -msgid "The :class:`SequenceMatcher` class has this constructor:" -msgstr "" - -#: library/difflib.rst:373 -msgid "" -"Optional argument *isjunk* must be ``None`` (the default) or a one-argument " -"function that takes a sequence element and returns true if and only if the " -"element is \"junk\" and should be ignored. Passing ``None`` for *isjunk* is " -"equivalent to passing ``lambda x: False``; in other words, no elements are " -"ignored. For example, pass::" -msgstr "" - -#: library/difflib.rst:381 -msgid "" -"if you're comparing lines as sequences of characters, and don't want to " -"synch up on blanks or hard tabs." -msgstr "" - -#: library/difflib.rst:384 -msgid "" -"The optional arguments *a* and *b* are sequences to be compared; both " -"default to empty strings. The elements of both sequences must " -"be :term:`hashable`." -msgstr "" - -#: library/difflib.rst:387 -msgid "" -"The optional argument *autojunk* can be used to disable the automatic junk " -"heuristic." -msgstr "" - -#: library/difflib.rst:393 -msgid "" -"SequenceMatcher objects get three data attributes: *bjunk* is the set of " -"elements of *b* for which *isjunk* is ``True``; *bpopular* is the set of non-" -"junk elements considered popular by the heuristic (if it is not disabled); " -"*b2j* is a dict mapping the remaining elements of *b* to a list of positions " -"where they occur. All three are reset whenever *b* is reset " -"with :meth:`set_seqs` or :meth:`set_seq2`." -msgstr "" - -#: library/difflib.rst:400 -msgid "The *bjunk* and *bpopular* attributes." -msgstr "" - -#: library/difflib.rst:403 -msgid ":class:`SequenceMatcher` objects have the following methods:" -msgstr "" - -#: library/difflib.rst:407 -msgid "Set the two sequences to be compared." -msgstr "" - -#: library/difflib.rst:409 -msgid "" -":class:`SequenceMatcher` computes and caches detailed information about the " -"second sequence, so if you want to compare one sequence against many " -"sequences, use :meth:`set_seq2` to set the commonly used sequence once and " -"call :meth:`set_seq1` repeatedly, once for each of the other sequences." -msgstr "" - -#: library/difflib.rst:417 -msgid "" -"Set the first sequence to be compared. The second sequence to be compared " -"is not changed." -msgstr "" - -#: library/difflib.rst:423 -msgid "" -"Set the second sequence to be compared. The first sequence to be compared " -"is not changed." -msgstr "" - -#: library/difflib.rst:429 -msgid "Find longest matching block in ``a[alo:ahi]`` and ``b[blo:bhi]``." -msgstr "" - -#: library/difflib.rst:431 -msgid "" -"If *isjunk* was omitted or ``None``, :meth:`find_longest_match` returns " -"``(i, j, k)`` such that ``a[i:i+k]`` is equal to ``b[j:j+k]``, where ``alo " -"<= i <= i+k <= ahi`` and ``blo <= j <= j+k <= bhi``. For all ``(i', j', " -"k')`` meeting those conditions, the additional conditions ``k >= k'``, ``i " -"<= i'``, and if ``i == i'``, ``j <= j'`` are also met. In other words, of " -"all maximal matching blocks, return one that starts earliest in *a*, and of " -"all those maximal matching blocks that start earliest in *a*, return the one " -"that starts earliest in *b*." -msgstr "" - -#: library/difflib.rst:444 -msgid "" -"If *isjunk* was provided, first the longest matching block is determined as " -"above, but with the additional restriction that no junk element appears in " -"the block. Then that block is extended as far as possible by matching " -"(only) junk elements on both sides. So the resulting block never matches on " -"junk except as identical junk happens to be adjacent to an interesting match." -msgstr "" - -#: library/difflib.rst:451 -msgid "" -"Here's the same example as before, but considering blanks to be junk. That " -"prevents ``' abcd'`` from matching the ``' abcd'`` at the tail end of the " -"second sequence directly. Instead only the ``'abcd'`` can match, and " -"matches the leftmost ``'abcd'`` in the second sequence:" -msgstr "" - -#: library/difflib.rst:460 -msgid "If no blocks match, this returns ``(alo, blo, 0)``." -msgstr "" - -#: library/difflib.rst:462 -msgid "This method returns a :term:`named tuple` ``Match(a, b, size)``." -msgstr "" - -#: library/difflib.rst:464 -msgid "Added default arguments." -msgstr "" - -#: library/difflib.rst:470 -msgid "" -"Return list of triples describing non-overlapping matching subsequences. " -"Each triple is of the form ``(i, j, n)``, and means that ``a[i:i+n] == " -"b[j:j+n]``. The triples are monotonically increasing in *i* and *j*." -msgstr "" - -#: library/difflib.rst:475 -msgid "" -"The last triple is a dummy, and has the value ``(len(a), len(b), 0)``. It " -"is the only triple with ``n == 0``. If ``(i, j, n)`` and ``(i', j', n')`` " -"are adjacent triples in the list, and the second is not the last triple in " -"the list, then ``i+n < i'`` or ``j+n < j'``; in other words, adjacent " -"triples always describe non-adjacent equal blocks." -msgstr "" - -#: library/difflib.rst:492 -msgid "" -"Return list of 5-tuples describing how to turn *a* into *b*. Each tuple is " -"of the form ``(tag, i1, i2, j1, j2)``. The first tuple has ``i1 == j1 == " -"0``, and remaining tuples have *i1* equal to the *i2* from the preceding " -"tuple, and, likewise, *j1* equal to the previous *j2*." -msgstr "" - -#: library/difflib.rst:497 -msgid "The *tag* values are strings, with these meanings:" -msgstr "" - -#: library/difflib.rst:500 -msgid "Value" -msgstr "Valeur" - -#: library/difflib.rst:502 -msgid "``'replace'``" -msgstr "``'replace'``" - -#: library/difflib.rst:502 -msgid "``a[i1:i2]`` should be replaced by ``b[j1:j2]``." -msgstr "" - -#: library/difflib.rst:505 -msgid "``'delete'``" -msgstr "``'delete'``" - -#: library/difflib.rst:505 -msgid "``a[i1:i2]`` should be deleted. Note that ``j1 == j2`` in this case." -msgstr "" - -#: library/difflib.rst:508 -msgid "``'insert'``" -msgstr "``'insert'``" - -#: library/difflib.rst:508 -msgid "" -"``b[j1:j2]`` should be inserted at ``a[i1:i1]``. Note that ``i1 == i2`` in " -"this case." -msgstr "" - -#: library/difflib.rst:512 -msgid "``'equal'``" -msgstr "``'equal'``" - -#: library/difflib.rst:512 -msgid "``a[i1:i2] == b[j1:j2]`` (the sub-sequences are equal)." -msgstr "" - -#: library/difflib.rst:516 -msgid "For example::" -msgstr "Par exemple ::" - -#: library/difflib.rst:533 -msgid "Return a :term:`generator` of groups with up to *n* lines of context." -msgstr "" - -#: library/difflib.rst:535 -msgid "" -"Starting with the groups returned by :meth:`get_opcodes`, this method splits " -"out smaller change clusters and eliminates intervening ranges which have no " -"changes." -msgstr "" - -#: library/difflib.rst:539 -msgid "The groups are returned in the same format as :meth:`get_opcodes`." -msgstr "" - -#: library/difflib.rst:544 -msgid "" -"Return a measure of the sequences' similarity as a float in the range [0, 1]." -msgstr "" - -#: library/difflib.rst:547 -msgid "" -"Where T is the total number of elements in both sequences, and M is the " -"number of matches, this is 2.0\\*M / T. Note that this is ``1.0`` if the " -"sequences are identical, and ``0.0`` if they have nothing in common." -msgstr "" - -#: library/difflib.rst:551 -msgid "" -"This is expensive to compute if :meth:`get_matching_blocks` " -"or :meth:`get_opcodes` hasn't already been called, in which case you may " -"want to try :meth:`quick_ratio` or :meth:`real_quick_ratio` first to get an " -"upper bound." -msgstr "" - -#: library/difflib.rst:558 -msgid "" -"Caution: The result of a :meth:`ratio` call may depend on the order of the " -"arguments. For instance::" -msgstr "" - -#: library/difflib.rst:569 -msgid "Return an upper bound on :meth:`ratio` relatively quickly." -msgstr "" - -#: library/difflib.rst:574 -msgid "Return an upper bound on :meth:`ratio` very quickly." -msgstr "" - -#: library/difflib.rst:577 -msgid "" -"The three methods that return the ratio of matching to total characters can " -"give different results due to differing levels of approximation, " -"although :meth:`~SequenceMatcher.quick_ratio` " -"and :meth:`~SequenceMatcher.real_quick_ratio` are always at least as large " -"as :meth:`~SequenceMatcher.ratio`:" -msgstr "" - -#: library/difflib.rst:594 -msgid "SequenceMatcher examples" -msgstr "" - -#: library/difflib.rst:596 -msgid "This example compares two strings, considering blanks to be \"junk\":" -msgstr "" - -#: library/difflib.rst:602 -msgid "" -":meth:`~SequenceMatcher.ratio` returns a float in [0, 1], measuring the " -"similarity of the sequences. As a rule of thumb, " -"a :meth:`~SequenceMatcher.ratio` value over 0.6 means the sequences are " -"close matches:" -msgstr "" - -#: library/difflib.rst:609 -msgid "" -"If you're only interested in where the sequences " -"match, :meth:`~SequenceMatcher.get_matching_blocks` is handy:" -msgstr "" - -#: library/difflib.rst:618 -msgid "" -"Note that the last tuple returned " -"by :meth:`~SequenceMatcher.get_matching_blocks` is always a dummy, " -"``(len(a), len(b), 0)``, and this is the only case in which the last tuple " -"element (number of elements matched) is ``0``." -msgstr "" - -#: library/difflib.rst:622 -msgid "" -"If you want to know how to change the first sequence into the second, " -"use :meth:`~SequenceMatcher.get_opcodes`:" -msgstr "" - -#: library/difflib.rst:633 -msgid "" -"The :func:`get_close_matches` function in this module which shows how simple " -"code building on :class:`SequenceMatcher` can be used to do useful work." -msgstr "" - -#: library/difflib.rst:637 -msgid "" -"`Simple version control recipe `_ for a small application built " -"with :class:`SequenceMatcher`." -msgstr "" - -#: library/difflib.rst:645 -msgid "Differ objects" -msgstr "" - -#: library/difflib.rst:647 -msgid "" -"Note that :class:`Differ`\\ -generated deltas make no claim to be " -"**minimal** diffs. To the contrary, minimal diffs are often counter-" -"intuitive, because they synch up anywhere possible, sometimes accidental " -"matches 100 pages apart. Restricting synch points to contiguous matches " -"preserves some notion of locality, at the occasional cost of producing a " -"longer diff." -msgstr "" - -#: library/difflib.rst:653 -msgid "The :class:`Differ` class has this constructor:" -msgstr "" - -#: library/difflib.rst:659 -msgid "" -"Optional keyword parameters *linejunk* and *charjunk* are for filter " -"functions (or ``None``):" -msgstr "" - -#: library/difflib.rst:662 -msgid "" -"*linejunk*: A function that accepts a single string argument, and returns " -"true if the string is junk. The default is ``None``, meaning that no line " -"is considered junk." -msgstr "" - -#: library/difflib.rst:666 -msgid "" -"*charjunk*: A function that accepts a single character argument (a string of " -"length 1), and returns true if the character is junk. The default is " -"``None``, meaning that no character is considered junk." -msgstr "" - -#: library/difflib.rst:670 -msgid "" -"These junk-filtering functions speed up matching to find differences and do " -"not cause any differing lines or characters to be ignored. Read the " -"description of the :meth:`~SequenceMatcher.find_longest_match` method's " -"*isjunk* parameter for an explanation." -msgstr "" - -#: library/difflib.rst:676 -msgid "" -":class:`Differ` objects are used (deltas generated) via a single method:" -msgstr "" - -#: library/difflib.rst:681 -msgid "" -"Compare two sequences of lines, and generate the delta (a sequence of lines)." -msgstr "" - -#: library/difflib.rst:683 -msgid "" -"Each sequence must contain individual single-line strings ending with " -"newlines. Such sequences can be obtained from " -"the :meth:`~io.IOBase.readlines` method of file-like objects. The delta " -"generated also consists of newline-terminated strings, ready to be printed " -"as-is via the :meth:`~io.IOBase.writelines` method of a file-like object." -msgstr "" - -#: library/difflib.rst:694 -#, fuzzy -msgid "Differ example" -msgstr "Par exemple ::" - -#: library/difflib.rst:696 -msgid "" -"This example compares two texts. First we set up the texts, sequences of " -"individual single-line strings ending with newlines (such sequences can also " -"be obtained from the :meth:`~io.IOBase.readlines` method of file-like " -"objects):" -msgstr "" - -#: library/difflib.rst:715 -msgid "Next we instantiate a Differ object:" -msgstr "" - -#: library/difflib.rst:719 -msgid "" -"Note that when instantiating a :class:`Differ` object we may pass functions " -"to filter out line and character \"junk.\" See the :meth:`Differ` " -"constructor for details." -msgstr "" - -#: library/difflib.rst:723 -msgid "Finally, we compare the two:" -msgstr "" - -#: library/difflib.rst:727 -msgid "``result`` is a list of strings, so let's pretty-print it:" -msgstr "" - -#: library/difflib.rst:742 -msgid "As a single multi-line string it looks like this:" -msgstr "" - -#: library/difflib.rst:761 -msgid "A command-line interface to difflib" -msgstr "" - -#: library/difflib.rst:763 -msgid "" -"This example shows how to use difflib to create a ``diff``-like utility." -msgstr "" - -#: library/difflib.rst:768 -#, fuzzy -msgid "ndiff example" -msgstr "Par exemple ::" - -#: library/difflib.rst:770 -msgid "This example shows how to use :func:`difflib.ndiff`." -msgstr "" - -#~ msgid "" -#~ ":file:`Tools/scripts/diff.py` is a command-line front-end to this class " -#~ "and contains a good example of its use." -#~ msgstr "" -#~ ":file:`Tools/scripts/diff.py` est un frontal en ligne de commande de " -#~ "cette classe et contient un bon exemple de son utilisation." - -#, fuzzy -#~ msgid "" -#~ ":file:`Tools/scripts/ndiff.py` is a command-line front-end to this " -#~ "function." -#~ msgstr "" -#~ ":file:`Tools/scripts/diff.py` est un frontal en ligne de commande de " -#~ "cette classe et contient un bon exemple de son utilisation." diff --git a/library/dis.po b/library/dis.po deleted file mode 100644 index 3c933d0085..0000000000 --- a/library/dis.po +++ /dev/null @@ -1,2211 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-07-18 21:03+0200\n" -"Last-Translator: Aya Keddam \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" - -#: library/dis.rst:2 -#, fuzzy -msgid ":mod:`!dis` --- Disassembler for Python bytecode" -msgstr ":mod:`dis` – Désassembleur pour le code intermédiaire de Python" - -#: library/dis.rst:7 -msgid "**Source code:** :source:`Lib/dis.py`" -msgstr "**Code source :** :source:`Lib/dis.py`" - -#: library/dis.rst:17 -#, fuzzy -msgid "" -"The :mod:`!dis` module supports the analysis of CPython :term:`bytecode` by " -"disassembling it. The CPython bytecode which this module takes as an input " -"is defined in the file :file:`Include/opcode.h` and used by the compiler and " -"the interpreter." -msgstr "" -"La bibliothèque :mod:`dis` supporte l'analyse du :term:`bytecode` CPython " -"en le désassemblant. Le code intermédiaire CPython, que cette bibliothèque " -"prend en paramètre, est défini dans le fichier :file:`Include/opcode.h` et " -"est utilisé par le compilateur et l'interpréteur." - -#: library/dis.rst:24 -msgid "" -"Bytecode is an implementation detail of the CPython interpreter. No " -"guarantees are made that bytecode will not be added, removed, or changed " -"between versions of Python. Use of this module should not be considered to " -"work across Python VMs or Python releases." -msgstr "" -"Le code intermédiaire est un détail d'implémentation de l'interpréteur " -"CPython. Il n'y a pas de garantie que le code intermédiaire sera ajouté, " -"retiré, ou modifié dans les différentes versions de Python. L'utilisation de " -"cette bibliothèque ne fonctionne pas nécessairement sur les machines " -"virtuelles Python ni les différentes versions de Python." - -#: library/dis.rst:29 -msgid "" -"Use 2 bytes for each instruction. Previously the number of bytes varied by " -"instruction." -msgstr "" -"Utilisez 2 bits pour chaque instruction. Avant, le nombre de bits variait " -"par instruction." - -#: library/dis.rst:33 -msgid "" -"The argument of jump, exception handling and loop instructions is now the " -"instruction offset rather than the byte offset." -msgstr "" - -#: library/dis.rst:37 -msgid "" -"Some instructions are accompanied by one or more inline cache entries, which " -"take the form of :opcode:`CACHE` instructions. These instructions are hidden " -"by default, but can be shown by passing ``show_caches=True`` to any :mod:`!" -"dis` utility. Furthermore, the interpreter now adapts the bytecode to " -"specialize it for different runtime conditions. The adaptive bytecode can be " -"shown by passing ``adaptive=True``." -msgstr "" - -#: library/dis.rst:45 -msgid "" -"The argument of a jump is the offset of the target instruction relative to " -"the instruction that appears immediately after the jump " -"instruction's :opcode:`CACHE` entries." -msgstr "" - -#: library/dis.rst:50 -msgid "" -"As a consequence, the presence of the :opcode:`CACHE` instructions is " -"transparent for forward jumps but needs to be taken into account when " -"reasoning about backward jumps." -msgstr "" - -#: library/dis.rst:54 -msgid "" -"The output shows logical labels rather than instruction offsets for jump " -"targets and exception handlers. The ``-O`` command line option and the " -"``show_offsets`` argument were added." -msgstr "" - -#: library/dis.rst:59 -msgid "" -"The :option:`-P ` command-line option and the " -"``show_positions`` argument were added." -msgstr "" - -#: library/dis.rst:63 -msgid "The :option:`-S ` command-line option is added." -msgstr "" - -#: library/dis.rst:65 -#, fuzzy -msgid "Example: Given the function :func:`!myfunc`::" -msgstr "Exemple : Etant donné la fonction :func:`myfunc` ::" - -#: library/dis.rst:70 -#, fuzzy -msgid "" -"the following command can be used to display the disassembly of :func:`!" -"myfunc`:" -msgstr "" -"la commande suivante peut-être utilisé pour afficher le désassemblage " -"de :func:`myfunc` :" - -#: library/dis.rst:83 -msgid "(The \"2\" is a line number)." -msgstr "(Le \"2\" est un numéro de ligne)." - -#: library/dis.rst:88 -msgid "Command-line interface" -msgstr "" - -#: library/dis.rst:90 -msgid "" -"The :mod:`!dis` module can be invoked as a script from the command line:" -msgstr "" - -#: library/dis.rst:96 -msgid "The following options are accepted:" -msgstr "Les options suivantes sont acceptées :" - -#: library/dis.rst:102 -msgid "Display usage and exit." -msgstr "" - -#: library/dis.rst:106 -msgid "Show inline caches." -msgstr "" - -#: library/dis.rst:112 -#, fuzzy -msgid "Show offsets of instructions." -msgstr "l'adresse de l'instruction," - -#: library/dis.rst:118 -#, fuzzy -msgid "Show positions of instructions in the source code." -msgstr "l'adresse de l'instruction," - -#: library/dis.rst:124 -msgid "Show specialized bytecode." -msgstr "" - -#: library/dis.rst:128 -msgid "" -"If :file:`infile` is specified, its disassembled code will be written to " -"stdout. Otherwise, disassembly is performed on compiled source code received " -"from stdin." -msgstr "" - -#: library/dis.rst:132 -msgid "Bytecode analysis" -msgstr "Analyse du code intermédiaire" - -#: library/dis.rst:136 -msgid "" -"The bytecode analysis API allows pieces of Python code to be wrapped in " -"a :class:`Bytecode` object that provides easy access to details of the " -"compiled code." -msgstr "" -"L'analyse de l'*API* code intermédiaire permet de rassembler des blocs de " -"code en Python dans une classe :class:`Bytecode`, qui permet un accès facile " -"aux détails du code compilé." - -#: library/dis.rst:144 -msgid "" -"Analyse the bytecode corresponding to a function, generator, asynchronous " -"generator, coroutine, method, string of source code, or a code object (as " -"returned by :func:`compile`)." -msgstr "" -"Analyse le code intermédiaire correspondant à une fonction, un générateur, " -"un générateur asynchrone, une coroutine, une méthode, une chaîne de " -"caractères du code source, ou bien une classe (comme retourne la " -"fonction :func:`compile`)." - -#: library/dis.rst:148 -msgid "" -"This is a convenience wrapper around many of the functions listed below, " -"most notably :func:`get_instructions`, as iterating over a :class:`Bytecode` " -"instance yields the bytecode operations as :class:`Instruction` instances." -msgstr "" -"Ceci est *wrapper* sur plusieurs fonctions de la liste ci-dessous, " -"notamment :func:`get_instructions`, étant donné qu'une itération sur une " -"instance de la classe :class:`Bytecode` rend les opérations du code " -"intermédiaire des instances de :class:`Instruction`." - -#: library/dis.rst:373 -msgid "" -"If *first_line* is not ``None``, it indicates the line number that should be " -"reported for the first source line in the disassembled code. Otherwise, the " -"source line information (if any) is taken directly from the disassembled " -"code object." -msgstr "" -"Si *first_line* ne vaut pas ``None``, elle indique le nombre de la ligne qui " -"doit être considérée comme première ligne source dans le code désassemblé. " -"Autrement, les informations sur la ligne source sont prises directement à " -"partir de la classe du code désassemblé." - -#: library/dis.rst:157 -msgid "" -"If *current_offset* is not ``None``, it refers to an instruction offset in " -"the disassembled code. Setting this means :meth:`.dis` will display a " -"\"current instruction\" marker against the specified opcode." -msgstr "" -"Si la valeur de *current_offset* est différente de ``None``, c'est une " -"référence à un offset d'une instruction dans le code désassemblé. Cela veut " -"dire que :meth:`.dis` va générer un marqueur de \" l'instruction en cours\" " -"contre le code d'opération donné." - -#: library/dis.rst:161 -msgid "" -"If *show_caches* is ``True``, :meth:`.dis` will display inline cache entries " -"used by the interpreter to specialize the bytecode." -msgstr "" - -#: library/dis.rst:164 -msgid "" -"If *adaptive* is ``True``, :meth:`.dis` will display specialized bytecode " -"that may be different from the original bytecode." -msgstr "" - -#: library/dis.rst:167 -msgid "" -"If *show_offsets* is ``True``, :meth:`.dis` will include instruction offsets " -"in the output." -msgstr "" - -#: library/dis.rst:170 -msgid "" -"If *show_positions* is ``True``, :meth:`.dis` will include instruction " -"source code positions in the output." -msgstr "" - -#: library/dis.rst:175 -msgid "" -"Construct a :class:`Bytecode` instance from the given traceback, setting " -"*current_offset* to the instruction responsible for the exception." -msgstr "" -"Construisez une instance :class:`Bytecode` à partir de la trace d'appel, en " -"mettant *current_offet* à l'instruction responsable de l'exception." - -#: library/dis.rst:180 -msgid "The compiled code object." -msgstr "Le code compilé objet." - -#: library/dis.rst:184 -msgid "The first source line of the code object (if available)" -msgstr "La première ligne source du code objet (si disponible)" - -#: library/dis.rst:188 -msgid "" -"Return a formatted view of the bytecode operations (the same as printed " -"by :func:`dis.dis`, but returned as a multi-line string)." -msgstr "" -"Retourne une vue formatée des opérations du code intermédiaire (la même que " -"celle envoyée par :func:`dis.dis`, mais comme une chaîne de caractères de " -"plusieurs lignes )." - -#: library/dis.rst:193 -msgid "" -"Return a formatted multi-line string with detailed information about the " -"code object, like :func:`code_info`." -msgstr "" -"Retourne une chaîne de caractères de plusieurs lignes formatée avec des " -"informations détaillées sur l'objet code comme :func:`code_info`." - -#: library/dis.rst:242 library/dis.rst:295 -msgid "This can now handle coroutine and asynchronous generator objects." -msgstr "" -"Cette version supporte la coroutine et les objets générateurs asynchrones." - -#: library/dis.rst:298 library/dis.rst:356 library/dis.rst:382 -#, fuzzy -msgid "Added the *show_caches* and *adaptive* parameters." -msgstr "Ajout du paramètre *file*." - -#: library/dis.rst:202 -#, fuzzy -msgid "Added the *show_offsets* parameter" -msgstr "Ajout du paramètre *file*." - -#: library/dis.rst:304 library/dis.rst:362 -#, fuzzy -msgid "Added the *show_positions* parameter." -msgstr "Ajout du paramètre *file*." - -#: library/dis.rst:208 -#, fuzzy -msgid "Example:" -msgstr "Exemple :" - -#: library/dis.rst:224 -msgid "Analysis functions" -msgstr "Analyse de fonctions" - -#: library/dis.rst:226 -#, fuzzy -msgid "" -"The :mod:`!dis` module also defines the following analysis functions that " -"convert the input directly to the desired output. They can be useful if only " -"a single operation is being performed, so the intermediate analysis object " -"isn't useful:" -msgstr "" -"La bibliothèque :mod:`dis` comprend également l'analyse des fonctions " -"suivantes, qui envoient l'entrée directement à la sortie souhaitée. Elles " -"peuvent être utiles si il n'y a qu'une seule opération à effectuer, la " -"représentation intermédiaire objet n'étant donc pas utile dans ce cas :" - -#: library/dis.rst:232 -msgid "" -"Return a formatted multi-line string with detailed code object information " -"for the supplied function, generator, asynchronous generator, coroutine, " -"method, source code string or code object." -msgstr "" -"Retourne une chaîne de caractères de plusieurs lignes formatée avec des " -"informations détaillées sur l'objet code pour les fonctions données, les " -"générateurs asynchrone, coroutine, la méthode, la chaine de caractères du " -"code source ou objet." - -#: library/dis.rst:236 -msgid "" -"Note that the exact contents of code info strings are highly implementation " -"dependent and they may change arbitrarily across Python VMs or Python " -"releases." -msgstr "" -"Il est à noter que le contenu exact des chaînes de caractères figurant dans " -"les informations du code dépendent fortement sur l'implémentation, et " -"peuvent changer arbitrairement sous machines virtuelles Python ou les " -"versions de Python." - -#: library/dis.rst:248 -msgid "" -"Print detailed code object information for the supplied function, method, " -"source code string or code object to *file* (or ``sys.stdout`` if *file* is " -"not specified)." -msgstr "" -"Affiche des informations détaillées sur le code de la fonction fournie, la " -"méthode, la chaîne de caractère du code source ou du code objet à *file* (ou " -"bien ``sys.stdout`` si *file* n'est pas spécifié)." - -#: library/dis.rst:252 -msgid "" -"This is a convenient shorthand for ``print(code_info(x), file=file)``, " -"intended for interactive exploration at the interpreter prompt." -msgstr "" -"Ceci est un raccourci convenable de ``print(code_info(x), file=file)``, " -"principalement fait pour l'exploration interactive sur l'invite de " -"l'interpréteur." - -#: library/dis.rst:289 library/dis.rst:353 -msgid "Added *file* parameter." -msgstr "Ajout du paramètre *file*." - -#: library/dis.rst:264 -#, fuzzy -msgid "" -"Disassemble the *x* object. *x* can denote either a module, a class, a " -"method, a function, a generator, an asynchronous generator, a coroutine, a " -"code object, a string of source code or a byte sequence of raw bytecode. For " -"a module, it disassembles all functions. For a class, it disassembles all " -"methods (including class and static methods). For a code object or sequence " -"of raw bytecode, it prints one line per bytecode instruction. It also " -"recursively disassembles nested code objects. These can include generator " -"expressions, nested functions, the bodies of nested classes, and the code " -"objects used for :ref:`annotation scopes `. Strings are " -"first compiled to code objects with the :func:`compile` built-in function " -"before being disassembled. If no object is provided, this function " -"disassembles the last traceback." -msgstr "" -"Désassemble l'objet *x*. *x* peut être une bibliothèque , une classe, une " -"méthode, une fonction, un générateur, un générateur asynchrone, une " -"coroutine, un code objet, une chaine de caractères du coude source ou une " -"séquence de bits du code intermédiaire brut. Pour une bibliothèque , elle " -"désassemble toutes les fonctions. Pour une classe, elle désassemble toutes " -"les méthodes (y compris les classes et méthodes statiques). Pour un code " -"objet ou une séquence de code intermédiaire brut, elle affiche une ligne par " -"instruction code intermédiaire. Aussi, elle désassemble les codes objets " -"internes récursivement (le code en compréhension, les expressions des " -"générateurs et les fonctions imbriquées, et le code utilisé pour la " -"construction des classes internes). Les chaînes de caractères sont d'abord " -"compilées pour coder des objets avec les fonctions intégrées " -"de :func:`compile` avant qu'elles ne soient désassemblées. Si aucun objet " -"n'est fourni, cette fonction désassemble les dernières traces d'appel." - -#: library/dis.rst:314 library/dis.rst:350 -msgid "" -"The disassembly is written as text to the supplied *file* argument if " -"provided and to ``sys.stdout`` otherwise." -msgstr "" -"Le désassemblage est envoyé sous forme de texte à l'argument du fichier " -"*file* si il est fourni, et à ``sys.stdout`` sinon." - -#: library/dis.rst:280 -msgid "" -"The maximal depth of recursion is limited by *depth* unless it is ``None``. " -"``depth=0`` means no recursion." -msgstr "" -"La profondeur maximale de récursion est limitée par *depth* sauf si elle " -"correspond à ``None``. ``depth=0`` indique qu'il n'y a pas de récursion." - -#: library/dis.rst:283 -msgid "" -"If *show_caches* is ``True``, this function will display inline cache " -"entries used by the interpreter to specialize the bytecode." -msgstr "" - -#: library/dis.rst:286 -msgid "" -"If *adaptive* is ``True``, this function will display specialized bytecode " -"that may be different from the original bytecode." -msgstr "" - -#: library/dis.rst:292 -msgid "Implemented recursive disassembling and added *depth* parameter." -msgstr "" -"Le désassemblage récursif a été implémenté, et le paramètre *depth* a été " -"ajouté." - -#: library/dis.rst:323 library/dis.rst:359 -#, fuzzy -msgid "Added the *show_offsets* parameter." -msgstr "Ajout du paramètre *file*." - -#: library/dis.rst:310 -msgid "" -"Disassemble the top-of-stack function of a traceback, using the last " -"traceback if none was passed. The instruction causing the exception is " -"indicated." -msgstr "" -"Désassemble la fonction du haut de la pile des traces d'appels, en utilisant " -"la dernière trace d'appels si rien n'a été envoyé. L'instruction à l'origine " -"de l'exception est indiquée." - -#: library/dis.rst:334 -msgid "" -"Disassemble a code object, indicating the last instruction if *lasti* was " -"provided. The output is divided in the following columns:" -msgstr "" -"Désassemble un code objet, en indiquant la dernière instruction si *lasti* " -"est fournie. La sortie est répartie sur les colonnes suivantes :" - -#: library/dis.rst:337 -msgid "" -"the source code location of the instruction. Complete location information " -"is shown if *show_positions* is true. Otherwise (the default) only the line " -"number is displayed." -msgstr "" - -#: library/dis.rst:340 -msgid "the current instruction, indicated as ``-->``," -msgstr "l'instruction en cours, indiquée par ``-->``," - -#: library/dis.rst:341 -msgid "a labelled instruction, indicated with ``>>``," -msgstr "une instruction libellée, indiquée par ``> >``," - -#: library/dis.rst:342 -msgid "the address of the instruction," -msgstr "l'adresse de l'instruction," - -#: library/dis.rst:343 -msgid "the operation code name," -msgstr "le nom de le code d'opération," - -#: library/dis.rst:344 -msgid "operation parameters, and" -msgstr "paramètres de l'opération, et" - -#: library/dis.rst:345 -msgid "interpretation of the parameters in parentheses." -msgstr "interprétation des paramètres entre parenthèses." - -#: library/dis.rst:347 -msgid "" -"The parameter interpretation recognizes local and global variable names, " -"constant values, branch targets, and compare operators." -msgstr "" -"L'interprétation du paramètre reconnaît les noms des variables locales et " -"globales, des valeurs constantes, des branchements cibles, et des opérateurs " -"de comparaison." - -#: library/dis.rst:367 -msgid "" -"Return an iterator over the instructions in the supplied function, method, " -"source code string or code object." -msgstr "" -"Retourne un itérateur sur les instructions dans la fonction fournie, la " -"méthode, les chaînes de caractères du code source ou objet." - -#: library/dis.rst:370 -msgid "" -"The iterator generates a series of :class:`Instruction` named tuples giving " -"the details of each operation in the supplied code." -msgstr "" -"Cet itérateur génère une série de *n*-uplets de :class:`Instruction` qui " -"donnent les détails de chacune des opérations dans le code fourni." - -#: library/dis.rst:378 -msgid "The *adaptive* parameter works as it does in :func:`dis`." -msgstr "" - -#: library/dis.rst:385 -msgid "" -"The *show_caches* parameter is deprecated and has no effect. The iterator " -"generates the :class:`Instruction` instances with the *cache_info* field " -"populated (regardless of the value of *show_caches*) and it no longer " -"generates separate items for the cache entries." -msgstr "" - -#: library/dis.rst:393 -msgid "" -"This generator function uses the :meth:`~codeobject.co_lines` method of " -"the :ref:`code object ` *code* to find the offsets which are " -"starts of lines in the source code. They are generated as ``(offset, " -"lineno)`` pairs." -msgstr "" - -#: library/dis.rst:398 -msgid "Line numbers can be decreasing. Before, they were always increasing." -msgstr "" -"Les numéros de lignes peuvent être décroissants. Avant, ils étaient toujours " -"croissants." - -#: library/dis.rst:401 -msgid "" -"The :pep:`626` :meth:`~codeobject.co_lines` method is used instead of " -"the :attr:`~codeobject.co_firstlineno` and :attr:`!codeobject.co_lnotab` " -"attributes of the :ref:`code object `." -msgstr "" - -#: library/dis.rst:406 -msgid "" -"Line numbers can be ``None`` for bytecode that does not map to source lines." -msgstr "" - -#: library/dis.rst:412 -msgid "" -"Detect all offsets in the raw compiled bytecode string *code* which are jump " -"targets, and return a list of these offsets." -msgstr "" - -#: library/dis.rst:418 -msgid "Compute the stack effect of *opcode* with argument *oparg*." -msgstr "" - -#: library/dis.rst:420 -msgid "" -"If the code has a jump target and *jump* is ``True``, :func:`~stack_effect` " -"will return the stack effect of jumping. If *jump* is ``False``, it will " -"return the stack effect of not jumping. And if *jump* is ``None`` (default), " -"it will return the maximal stack effect of both cases." -msgstr "" - -#: library/dis.rst:427 -#, fuzzy -msgid "Added *jump* parameter." -msgstr "Ajout du paramètre *file*." - -#: library/dis.rst:430 -msgid "" -"If ``oparg`` is omitted (or ``None``), the stack effect is now returned for " -"``oparg=0``. Previously this was an error for opcodes that use their arg. It " -"is also no longer an error to pass an integer ``oparg`` when the ``opcode`` " -"does not use it; the ``oparg`` in this case is ignored." -msgstr "" - -#: library/dis.rst:440 -msgid "Python Bytecode Instructions" -msgstr "Les instructions du code intermédiaire en Python" - -#: library/dis.rst:442 -msgid "" -"The :func:`get_instructions` function and :class:`Bytecode` class provide " -"details of bytecode instructions as :class:`Instruction` instances:" -msgstr "" -"La fonction :func:`get_instructions` et la méthode :class:`Bytecode` fournit " -"des détails sur le code intermédiaire des instructions " -"comme :class:`Instruction` instances :" - -#: library/dis.rst:447 -msgid "Details for a bytecode operation" -msgstr "Détails sur le code intermédiaire de l'opération" - -#: library/dis.rst:451 -msgid "" -"numeric code for operation, corresponding to the opcode values listed below " -"and the bytecode values in the :ref:`opcode_collections`." -msgstr "" -"code numérique pour l'opération, correspondant aux valeurs de l'*opcode* ci-" -"dessous et les valeurs du code intermédiaire dans " -"la :ref:`opcode_collections`." - -#: library/dis.rst:457 -msgid "human readable name for operation" -msgstr "nom lisible/compréhensible de l'opération" - -#: library/dis.rst:462 -msgid "" -"numeric code for the base operation if operation is specialized; otherwise " -"equal to :data:`opcode`" -msgstr "" - -#: library/dis.rst:468 -msgid "" -"human readable name for the base operation if operation is specialized; " -"otherwise equal to :data:`opname`" -msgstr "" - -#: library/dis.rst:474 -msgid "numeric argument to operation (if any), otherwise ``None``" -msgstr "le cas échéant, argument numérique de l'opération sinon ``None``" - -#: library/dis.rst:478 -msgid "alias for :data:`arg`" -msgstr "" - -#: library/dis.rst:482 -#, fuzzy -msgid "resolved arg value (if any), otherwise ``None``" -msgstr "le cas échéant, argument numérique de l'opération sinon ``None``" - -#: library/dis.rst:487 -msgid "" -"human readable description of operation argument (if any), otherwise an " -"empty string." -msgstr "" - -#: library/dis.rst:493 -msgid "start index of operation within bytecode sequence" -msgstr "" - -#: library/dis.rst:498 -msgid "" -"start index of operation within bytecode sequence, including prefixed " -"``EXTENDED_ARG`` operations if present; otherwise equal to :data:`offset`" -msgstr "" - -#: library/dis.rst:504 -msgid "start index of the cache entries following the operation" -msgstr "" - -#: library/dis.rst:509 -msgid "end index of the cache entries following the operation" -msgstr "" - -#: library/dis.rst:514 -msgid "``True`` if this opcode starts a source line, otherwise ``False``" -msgstr "" - -#: library/dis.rst:519 -#, fuzzy -msgid "" -"source line number associated with this opcode (if any), otherwise ``None``" -msgstr "le cas échéant, argument numérique de l'opération sinon ``None``" - -#: library/dis.rst:524 -msgid "``True`` if other code jumps to here, otherwise ``False``" -msgstr "" - -#: library/dis.rst:529 -msgid "" -"bytecode index of the jump target if this is a jump operation, otherwise " -"``None``" -msgstr "" - -#: library/dis.rst:535 -msgid "" -":class:`dis.Positions` object holding the start and end locations that are " -"covered by this instruction." -msgstr "" - -#: library/dis.rst:540 -msgid "" -"Information about the cache entries of this instruction, as triplets of the " -"form ``(name, size, data)``, where the ``name`` and ``size`` describe the " -"cache format and data is the contents of the cache. ``cache_info`` is " -"``None`` if the instruction does not have caches." -msgstr "" - -#: library/dis.rst:550 -msgid "Field ``positions`` is added." -msgstr "" - -#: library/dis.rst:554 -msgid "Changed field ``starts_line``." -msgstr "" - -#: library/dis.rst:556 -msgid "" -"Added fields ``start_offset``, ``cache_offset``, ``end_offset``, " -"``baseopname``, ``baseopcode``, ``jump_target``, ``oparg``, ``line_number`` " -"and ``cache_info``." -msgstr "" - -#: library/dis.rst:563 -msgid "" -"In case the information is not available, some fields might be ``None``." -msgstr "" - -#: library/dis.rst:573 -msgid "" -"The Python compiler currently generates the following bytecode instructions." -msgstr "" - -#: library/dis.rst:576 -msgid "**General instructions**" -msgstr "" - -#: library/dis.rst:578 -msgid "" -"In the following, We will refer to the interpreter stack as ``STACK`` and " -"describe operations on it as if it was a Python list. The top of the stack " -"corresponds to ``STACK[-1]`` in this language." -msgstr "" - -#: library/dis.rst:584 -msgid "" -"Do nothing code. Used as a placeholder by the bytecode optimizer, and to " -"generate line tracing events." -msgstr "" - -#: library/dis.rst:590 -msgid "" -"Do nothing code. Used by the interpreter to record :monitoring-" -"event:`BRANCH_LEFT` and :monitoring-event:`BRANCH_RIGHT` events " -"for :mod:`sys.monitoring`." -msgstr "" - -#: library/dis.rst:599 -msgid "Removes the iterator from the top of the stack." -msgstr "" - -#: library/dis.rst:606 -msgid "Removes the top-of-stack item::" -msgstr "" - -#: library/dis.rst:613 -msgid "" -"Removes the top-of-stack item. Equivalent to ``POP_TOP``. Used to clean up " -"at the end of loops, hence the name." -msgstr "" - -#: library/dis.rst:622 -msgid "Implements ``del STACK[-2]``. Used to clean up when a generator exits." -msgstr "" - -#: library/dis.rst:630 -msgid "" -"Push the i-th item to the top of the stack without removing it from its " -"original location::" -msgstr "" - -#: library/dis.rst:641 -msgid "Swap the top of the stack with the i-th element::" -msgstr "" - -#: library/dis.rst:650 -msgid "" -"Rather than being an actual instruction, this opcode is used to mark extra " -"space for the interpreter to cache useful data directly in the bytecode " -"itself. It is automatically hidden by all ``dis`` utilities, but can be " -"viewed with ``show_caches=True``." -msgstr "" - -#: library/dis.rst:655 -msgid "" -"Logically, this space is part of the preceding instruction. Many opcodes " -"expect to be followed by an exact number of caches, and will instruct the " -"interpreter to skip over them at runtime." -msgstr "" - -#: library/dis.rst:659 -msgid "" -"Populated caches can look like arbitrary instructions, so great care should " -"be taken when reading or modifying raw, adaptive bytecode containing " -"quickened data." -msgstr "" - -#: library/dis.rst:666 -msgid "**Unary operations**" -msgstr "" - -#: library/dis.rst:668 -msgid "" -"Unary operations take the top of the stack, apply the operation, and push " -"the result back on the stack." -msgstr "" - -#: library/dis.rst:674 -msgid "Implements ``STACK[-1] = -STACK[-1]``." -msgstr "" - -#: library/dis.rst:679 -msgid "Implements ``STACK[-1] = not STACK[-1]``." -msgstr "" - -#: library/dis.rst:1383 library/dis.rst:1399 -msgid "This instruction now requires an exact :class:`bool` operand." -msgstr "" - -#: library/dis.rst:687 -msgid "Implements ``STACK[-1] = ~STACK[-1]``." -msgstr "" - -#: library/dis.rst:692 -msgid "Implements ``STACK[-1] = iter(STACK[-1])``." -msgstr "" - -#: library/dis.rst:697 -msgid "" -"If ``STACK[-1]`` is a :term:`generator iterator` or :term:`coroutine` object " -"it is left as is. Otherwise, implements ``STACK[-1] = iter(STACK[-1])``." -msgstr "" - -#: library/dis.rst:705 -msgid "Implements ``STACK[-1] = bool(STACK[-1])``." -msgstr "" - -#: library/dis.rst:710 -msgid "**Binary and in-place operations**" -msgstr "" - -#: library/dis.rst:712 -msgid "" -"Binary operations remove the top two items from the stack (``STACK[-1]`` and " -"``STACK[-2]``). They perform the operation, then put the result back on the " -"stack." -msgstr "" - -#: library/dis.rst:715 -msgid "" -"In-place operations are like binary operations, but the operation is done in-" -"place when ``STACK[-2]`` supports it, and the resulting ``STACK[-1]`` may be " -"(but does not have to be) the original ``STACK[-2]``." -msgstr "" - -#: library/dis.rst:722 -msgid "" -"Implements the binary and in-place operators (depending on the value of " -"*op*)::" -msgstr "" - -#: library/dis.rst:730 -msgid "" -"With oparg :``NB_SUBSCR``, implements binary subscript (replaces opcode " -"``BINARY_SUBSCR``)" -msgstr "" - -#: library/dis.rst:746 library/dis.rst:766 library/dis.rst:854 -#: library/dis.rst:1070 library/dis.rst:1226 library/dis.rst:1250 -msgid "Implements::" -msgstr "" - -#: library/dis.rst:777 -msgid "**Coroutine opcodes**" -msgstr "" - -#: library/dis.rst:781 -msgid "" -"Implements ``STACK[-1] = get_awaitable(STACK[-1])``, where " -"``get_awaitable(o)`` returns ``o`` if ``o`` is a coroutine object or a " -"generator object with the :data:`~inspect.CO_ITERABLE_COROUTINE` flag, or " -"resolves ``o.__await__``." -msgstr "" - -#: library/dis.rst:786 -msgid "" -"If the ``where`` operand is nonzero, it indicates where the instruction " -"occurs:" -msgstr "" - -#: library/dis.rst:789 -msgid "``1``: After a call to ``__aenter__``" -msgstr "" - -#: library/dis.rst:790 -msgid "``2``: After a call to ``__aexit__``" -msgstr "" - -#: library/dis.rst:794 -msgid "Previously, this instruction did not have an oparg." -msgstr "" - -#: library/dis.rst:800 -msgid "Implements ``STACK[-1] = STACK[-1].__aiter__()``." -msgstr "" - -#: library/dis.rst:803 -msgid "Returning awaitable objects from ``__aiter__`` is no longer supported." -msgstr "" - -#: library/dis.rst:810 -msgid "" -"Implement ``STACK.append(get_awaitable(STACK[-1].__anext__()))`` to the " -"stack. See ``GET_AWAITABLE`` for details about ``get_awaitable``." -msgstr "" - -#: library/dis.rst:818 -msgid "" -"Terminates an :keyword:`async for` loop. Handles an exception raised when " -"awaiting a next item. The stack contains the async iterable in ``STACK[-2]`` " -"and the raised exception in ``STACK[-1]``. Both are popped. If the exception " -"is not :exc:`StopAsyncIteration`, it is re-raised." -msgstr "" - -#: library/dis.rst:916 library/dis.rst:927 -msgid "" -"Exception representation on the stack now consist of one, not three, items." -msgstr "" - -#: library/dis.rst:831 -msgid "" -"Handles an exception raised during a :meth:`~generator.throw` " -"or :meth:`~generator.close` call through the current frame. If " -"``STACK[-1]`` is an instance of :exc:`StopIteration`, pop three values from " -"the stack and push its ``value`` member. Otherwise, re-raise ``STACK[-1]``." -msgstr "" - -#: library/dis.rst:840 -msgid "**Miscellaneous opcodes**" -msgstr "" - -#: library/dis.rst:849 -msgid "Used to implement set comprehensions." -msgstr "" - -#: library/dis.rst:859 -msgid "Used to implement list comprehensions." -msgstr "" - -#: library/dis.rst:870 -msgid "Used to implement dict comprehensions." -msgstr "" - -#: library/dis.rst:873 -msgid "" -"Map value is ``STACK[-1]`` and map key is ``STACK[-2]``. Before, those were " -"reversed." -msgstr "" - -#: library/dis.rst:877 -msgid "" -"For all of the :opcode:`SET_ADD`, :opcode:`LIST_APPEND` " -"and :opcode:`MAP_ADD` instructions, while the added value or key/value pair " -"is popped off, the container object remains on the stack so that it is " -"available for further iterations of the loop." -msgstr "" - -#: library/dis.rst:885 -msgid "Returns with ``STACK[-1]`` to the caller of the function." -msgstr "" - -#: library/dis.rst:890 -msgid "Yields ``STACK.pop()`` from a :term:`generator`." -msgstr "" - -#: library/dis.rst:892 -msgid "oparg set to be the stack depth." -msgstr "" - -#: library/dis.rst:895 -msgid "" -"oparg set to be the exception block depth, for efficient closing of " -"generators." -msgstr "" - -#: library/dis.rst:898 -msgid "" -"oparg is ``1`` if this instruction is part of a yield-from or await, and " -"``0`` otherwise." -msgstr "" - -#: library/dis.rst:904 -msgid "" -"Checks whether ``__annotations__`` is defined in ``locals()``, if not it is " -"set up to an empty ``dict``. This opcode is only emitted if a class or " -"module body contains :term:`variable annotations ` " -"statically." -msgstr "" - -#: library/dis.rst:914 -msgid "" -"Pops a value from the stack, which is used to restore the exception state." -msgstr "" - -#: library/dis.rst:921 -msgid "" -"Re-raises the exception currently on top of the stack. If oparg is non-zero, " -"pops an additional value from the stack which is used to " -"set :attr:`~frame.f_lasti` of the current frame." -msgstr "" - -#: library/dis.rst:932 -msgid "" -"Pops a value from the stack. Pushes the current exception to the top of the " -"stack. Pushes the value originally popped back to the stack. Used in " -"exception handlers." -msgstr "" - -#: library/dis.rst:940 -msgid "" -"Performs exception matching for ``except``. Tests whether the ``STACK[-2]`` " -"is an exception matching ``STACK[-1]``. Pops ``STACK[-1]`` and pushes the " -"boolean result of the test." -msgstr "" - -#: library/dis.rst:948 -msgid "" -"Performs exception matching for ``except*``. Applies ``split(STACK[-1])`` on " -"the exception group representing ``STACK[-2]``." -msgstr "" - -#: library/dis.rst:951 -msgid "" -"In case of a match, pops two items from the stack and pushes the non-" -"matching subgroup (``None`` in case of full match) followed by the matching " -"subgroup. When there is no match, pops one item (the match type) and pushes " -"``None``." -msgstr "" - -#: library/dis.rst:960 -msgid "" -"Calls the function in position 4 on the stack with arguments (type, val, tb) " -"representing the exception at the top of the stack. Used to implement the " -"call ``context_manager.__exit__(*exc_info())`` when an exception has " -"occurred in a :keyword:`with` statement." -msgstr "" - -#: library/dis.rst:967 -msgid "" -"The ``__exit__`` function is in position 4 of the stack rather than 7. " -"Exception representation on the stack now consist of one, not three, items." -msgstr "" - -#: library/dis.rst:974 -msgid "" -"Pushes a common constant onto the stack. The interpreter contains a " -"hardcoded list of constants supported by this instruction. Used by " -"the :keyword:`assert` statement to load :exc:`AssertionError`." -msgstr "" - -#: library/dis.rst:983 -msgid "" -"Pushes :func:`!builtins.__build_class__` onto the stack. It is later called " -"to construct a class." -msgstr "" - -#: library/dis.rst:988 -msgid "" -"Perform ``STACK.append(len(STACK[-1]))``. Used in :keyword:`match` " -"statements where comparison with structure of pattern is needed." -msgstr "" - -#: library/dis.rst:996 -msgid "" -"If ``STACK[-1]`` is an instance of :class:`collections.abc.Mapping` (or, " -"more technically: if it has the :c:macro:`Py_TPFLAGS_MAPPING` flag set in " -"its :c:member:`~PyTypeObject.tp_flags`), push ``True`` onto the stack. " -"Otherwise, push ``False``." -msgstr "" - -#: library/dis.rst:1006 -msgid "" -"If ``STACK[-1]`` is an instance of :class:`collections.abc.Sequence` and is " -"*not* an instance of :class:`str`/:class:`bytes`/:class:`bytearray` (or, " -"more technically: if it has the :c:macro:`Py_TPFLAGS_SEQUENCE` flag set in " -"its :c:member:`~PyTypeObject.tp_flags`), push ``True`` onto the stack. " -"Otherwise, push ``False``." -msgstr "" - -#: library/dis.rst:1016 -msgid "" -"``STACK[-1]`` is a tuple of mapping keys, and ``STACK[-2]`` is the match " -"subject. If ``STACK[-2]`` contains all of the keys in ``STACK[-1]``, push " -"a :class:`tuple` containing the corresponding values. Otherwise, push " -"``None``." -msgstr "" - -#: library/dis.rst:1768 -msgid "" -"Previously, this instruction also pushed a boolean value indicating success " -"(``True``) or failure (``False``)." -msgstr "" - -#: library/dis.rst:1029 -msgid "" -"Implements ``name = STACK.pop()``. *namei* is the index of *name* in the " -"attribute :attr:`~codeobject.co_names` of the :ref:`code object `. The compiler tries to use :opcode:`STORE_FAST` " -"or :opcode:`STORE_GLOBAL` if possible." -msgstr "" - -#: library/dis.rst:1036 -msgid "" -"Implements ``del name``, where *namei* is the index " -"into :attr:`~codeobject.co_names` attribute of the :ref:`code object `." -msgstr "" - -#: library/dis.rst:1042 -msgid "" -"Unpacks ``STACK[-1]`` into *count* individual values, which are put onto the " -"stack right-to-left. Require there to be exactly *count* values.::" -msgstr "" - -#: library/dis.rst:1051 -msgid "" -"Implements assignment with a starred target: Unpacks an iterable in " -"``STACK[-1]`` into individual values, where the total number of values can " -"be smaller than the number of items in the iterable: one of the new values " -"will be a list of all leftover items." -msgstr "" - -#: library/dis.rst:1056 -msgid "The number of values before and after the list value is limited to 255." -msgstr "" - -#: library/dis.rst:1058 -msgid "" -"The number of values before the list value is encoded in the argument of the " -"opcode. The number of values after the list if any is encoded using an " -"``EXTENDED_ARG``. As a consequence, the argument can be seen as a two bytes " -"values where the low byte of *counts* is the number of values before the " -"list value, the high byte of *counts* the number of values after it." -msgstr "" - -#: library/dis.rst:1064 -msgid "" -"The extracted values are put onto the stack right-to-left, i.e. ``a, *b, c = " -"d`` will be stored after execution as ``STACK.extend((a, b, c))``." -msgstr "" - -#: library/dis.rst:1076 -msgid "" -"where *namei* is the index of name in :attr:`~codeobject.co_names` of " -"the :ref:`code object `." -msgstr "" - -#: library/dis.rst:1086 -msgid "" -"where *namei* is the index of name into :attr:`~codeobject.co_names` of " -"the :ref:`code object `." -msgstr "" - -#: library/dis.rst:1092 -msgid "Works as :opcode:`STORE_NAME`, but stores the name as a global." -msgstr "" - -#: library/dis.rst:1097 -msgid "Works as :opcode:`DELETE_NAME`, but deletes a global name." -msgstr "" - -#: library/dis.rst:1102 -msgid "Pushes ``co_consts[consti]`` onto the stack." -msgstr "" - -#: library/dis.rst:1107 -msgid "" -"Pushes the integer ``i`` onto the stack. ``i`` must be in ``range(256)``" -msgstr "" - -#: library/dis.rst:1115 -msgid "" -"Pushes the value associated with ``co_names[namei]`` onto the stack. The " -"name is looked up within the locals, then the globals, then the builtins." -msgstr "" - -#: library/dis.rst:1121 -msgid "" -"Pushes a reference to the locals dictionary onto the stack. This is used to " -"prepare namespace dictionaries for :opcode:`LOAD_FROM_DICT_OR_DEREF` " -"and :opcode:`LOAD_FROM_DICT_OR_GLOBALS`." -msgstr "" - -#: library/dis.rst:1130 -msgid "" -"Pops a mapping off the stack and looks up the value for ``co_names[namei]``. " -"If the name is not found there, looks it up in the globals and then the " -"builtins, similar to :opcode:`LOAD_GLOBAL`. This is used for loading global " -"variables in :ref:`annotation scopes ` within class " -"bodies." -msgstr "" - -#: library/dis.rst:1141 -msgid "" -"Constructs a new :class:`~string.templatelib.Template` instance from a tuple " -"of strings and a tuple of interpolations and pushes the resulting object " -"onto the stack::" -msgstr "" - -#: library/dis.rst:1154 -msgid "" -"Constructs a new :class:`~string.templatelib.Interpolation` instance from a " -"value and its source expression and pushes the resulting object onto the " -"stack." -msgstr "" - -#: library/dis.rst:1158 -msgid "" -"If no conversion or format specification is present, ``format`` is set to " -"``2``." -msgstr "" - -#: library/dis.rst:1161 -msgid "" -"If the low bit of ``format`` is set, it indicates that the interpolation " -"contains a format specification." -msgstr "" - -#: library/dis.rst:1164 -msgid "" -"If ``format >> 2`` is non-zero, it indicates that the interpolation contains " -"a conversion. The value of ``format >> 2`` is the conversion type (``0`` for " -"no conversion, ``1`` for ``!s``, ``2`` for ``!r``, and ``3`` for ``!a``)::" -msgstr "" - -#: library/dis.rst:1183 -msgid "" -"Creates a tuple consuming *count* items from the stack, and pushes the " -"resulting tuple onto the stack::" -msgstr "" - -#: library/dis.rst:1197 -msgid "Works as :opcode:`BUILD_TUPLE`, but creates a list." -msgstr "" - -#: library/dis.rst:1202 -msgid "Works as :opcode:`BUILD_TUPLE`, but creates a set." -msgstr "" - -#: library/dis.rst:1207 -msgid "" -"Pushes a new dictionary object onto the stack. Pops ``2 * count`` items so " -"that the dictionary holds *count* entries: ``{..., STACK[-4]: STACK[-3], " -"STACK[-2]: STACK[-1]}``." -msgstr "" - -#: library/dis.rst:1211 -msgid "" -"The dictionary is created from stack items instead of creating an empty " -"dictionary pre-sized to hold *count* items." -msgstr "" - -#: library/dis.rst:1218 -msgid "" -"Concatenates *count* strings from the stack and pushes the resulting string " -"onto the stack." -msgstr "" - -#: library/dis.rst:1231 -msgid "Used to build lists." -msgstr "" - -#: library/dis.rst:1243 -msgid "Used to build sets." -msgstr "" - -#: library/dis.rst:1255 -msgid "Used to build dicts." -msgstr "" - -#: library/dis.rst:1262 -msgid "Like :opcode:`DICT_UPDATE` but raises an exception for duplicate keys." -msgstr "" - -#: library/dis.rst:1269 -msgid "" -"If the low bit of ``namei`` is not set, this replaces ``STACK[-1]`` with " -"``getattr(STACK[-1], co_names[namei>>1])``." -msgstr "" - -#: library/dis.rst:1272 -msgid "" -"If the low bit of ``namei`` is set, this will attempt to load a method named " -"``co_names[namei>>1]`` from the ``STACK[-1]`` object. ``STACK[-1]`` is " -"popped. This bytecode distinguishes two cases: if ``STACK[-1]`` has a method " -"with the correct name, the bytecode pushes the unbound method and " -"``STACK[-1]``. ``STACK[-1]`` will be used as the first argument (``self``) " -"by :opcode:`CALL` or :opcode:`CALL_KW` when calling the unbound method. " -"Otherwise, ``NULL`` and the object returned by the attribute lookup are " -"pushed." -msgstr "" - -#: library/dis.rst:1281 -msgid "" -"If the low bit of ``namei`` is set, then a ``NULL`` or ``self`` is pushed to " -"the stack before the attribute or unbound method respectively." -msgstr "" - -#: library/dis.rst:1288 -msgid "" -"This opcode implements :func:`super`, both in its zero-argument and two-" -"argument forms (e.g. ``super().method()``, ``super().attr`` and ``super(cls, " -"self).method()``, ``super(cls, self).attr``)." -msgstr "" - -#: library/dis.rst:1292 -msgid "It pops three values from the stack (from top of stack down):" -msgstr "" - -#: library/dis.rst:1294 -msgid "``self``: the first argument to the current method" -msgstr "" - -#: library/dis.rst:1295 -msgid "``cls``: the class within which the current method was defined" -msgstr "" - -#: library/dis.rst:1296 -msgid "the global ``super``" -msgstr "" - -#: library/dis.rst:1298 -msgid "" -"With respect to its argument, it works similarly to :opcode:`LOAD_ATTR`, " -"except that ``namei`` is shifted left by 2 bits instead of 1." -msgstr "" - -#: library/dis.rst:1301 -msgid "" -"The low bit of ``namei`` signals to attempt a method load, as " -"with :opcode:`LOAD_ATTR`, which results in pushing ``NULL`` and the loaded " -"method. When it is unset a single value is pushed to the stack." -msgstr "" - -#: library/dis.rst:1305 -msgid "" -"The second-low bit of ``namei``, if set, means that this was a two-argument " -"call to :func:`super` (unset means zero-argument)." -msgstr "" - -#: library/dis.rst:1313 -msgid "" -"Performs a Boolean operation. The operation name can be found in " -"``cmp_op[opname >> 5]``. If the fifth-lowest bit of ``opname`` is set " -"(``opname & 16``), the result should be coerced to ``bool``." -msgstr "" - -#: library/dis.rst:1317 -msgid "" -"The fifth-lowest bit of the oparg now indicates a forced conversion " -"to :class:`bool`." -msgstr "" - -#: library/dis.rst:1324 -msgid "Performs ``is`` comparison, or ``is not`` if ``invert`` is 1." -msgstr "" - -#: library/dis.rst:1331 -msgid "Performs ``in`` comparison, or ``not in`` if ``invert`` is 1." -msgstr "" - -#: library/dis.rst:1338 -msgid "" -"Imports the module ``co_names[namei]``. ``STACK[-1]`` and ``STACK[-2]`` are " -"popped and provide the *fromlist* and *level* arguments " -"of :func:`__import__`. The module object is pushed onto the stack. The " -"current namespace is not affected: for a proper import statement, a " -"subsequent :opcode:`STORE_FAST` instruction modifies the namespace." -msgstr "" - -#: library/dis.rst:1346 -msgid "" -"Loads the attribute ``co_names[namei]`` from the module found in " -"``STACK[-1]``. The resulting object is pushed onto the stack, to be " -"subsequently stored by a :opcode:`STORE_FAST` instruction." -msgstr "" - -#: library/dis.rst:1353 -msgid "Increments bytecode counter by *delta*." -msgstr "" - -#: library/dis.rst:1358 -msgid "Decrements bytecode counter by *delta*. Checks for interrupts." -msgstr "" - -#: library/dis.rst:1365 -msgid "Decrements bytecode counter by *delta*. Does not check for interrupts." -msgstr "" - -#: library/dis.rst:1372 -msgid "" -"If ``STACK[-1]`` is true, increments the bytecode counter by *delta*. " -"``STACK[-1]`` is popped." -msgstr "" - -#: library/dis.rst:1391 -msgid "" -"The oparg is now a relative delta rather than an absolute target. This " -"opcode is a pseudo-instruction, replaced in final bytecode by the directed " -"versions (forward/backward)." -msgstr "" - -#: library/dis.rst:1396 library/dis.rst:1420 -msgid "This is no longer a pseudo-instruction." -msgstr "" - -#: library/dis.rst:1388 -msgid "" -"If ``STACK[-1]`` is false, increments the bytecode counter by *delta*. " -"``STACK[-1]`` is popped." -msgstr "" - -#: library/dis.rst:1404 -msgid "" -"If ``STACK[-1]`` is not ``None``, increments the bytecode counter by " -"*delta*. ``STACK[-1]`` is popped." -msgstr "" - -#: library/dis.rst:1415 -msgid "" -"If ``STACK[-1]`` is ``None``, increments the bytecode counter by *delta*. " -"``STACK[-1]`` is popped." -msgstr "" - -#: library/dis.rst:1425 -msgid "" -"``STACK[-1]`` is an :term:`iterator`. Call its :meth:`~iterator.__next__` " -"method. If this yields a new value, push it on the stack (leaving the " -"iterator below it). If the iterator indicates it is exhausted then the byte " -"code counter is incremented by *delta*." -msgstr "" - -#: library/dis.rst:1430 -msgid "Up until 3.11 the iterator was popped when it was exhausted." -msgstr "" - -#: library/dis.rst:1435 -msgid "Loads the global named ``co_names[namei>>1]`` onto the stack." -msgstr "" - -#: library/dis.rst:1437 -msgid "" -"If the low bit of ``namei`` is set, then a ``NULL`` is pushed to the stack " -"before the global variable." -msgstr "" - -#: library/dis.rst:1443 -msgid "" -"Pushes a reference to the local ``co_varnames[var_num]`` onto the stack." -msgstr "" - -#: library/dis.rst:1445 -msgid "" -"This opcode is now only used in situations where the local variable is " -"guaranteed to be initialized. It cannot raise :exc:`UnboundLocalError`." -msgstr "" - -#: library/dis.rst:1451 -msgid "" -"Pushes a borrowed reference to the local ``co_varnames[var_num]`` onto the " -"stack." -msgstr "" - -#: library/dis.rst:1458 -msgid "" -"Pushes references to ``co_varnames[var_nums >> 4]`` and " -"``co_varnames[var_nums & 15]`` onto the stack." -msgstr "" - -#: library/dis.rst:1466 -msgid "" -"Pushes borrowed references to ``co_varnames[var_nums >> 4]`` and " -"``co_varnames[var_nums & 15]`` onto the stack." -msgstr "" - -#: library/dis.rst:1473 -msgid "" -"Pushes a reference to the local ``co_varnames[var_num]`` onto the stack, " -"raising an :exc:`UnboundLocalError` if the local variable has not been " -"initialized." -msgstr "" - -#: library/dis.rst:1481 -msgid "" -"Pushes a reference to the local ``co_varnames[var_num]`` onto the stack (or " -"pushes ``NULL`` onto the stack if the local variable has not been " -"initialized) and sets ``co_varnames[var_num]`` to ``NULL``." -msgstr "" - -#: library/dis.rst:1489 -msgid "Stores ``STACK.pop()`` into the local ``co_varnames[var_num]``." -msgstr "" - -#: library/dis.rst:1493 -msgid "" -"Stores ``STACK[-1]`` into ``co_varnames[var_nums >> 4]`` and ``STACK[-2]`` " -"into ``co_varnames[var_nums & 15]``." -msgstr "" - -#: library/dis.rst:1500 -msgid "" -"Stores ``STACK.pop()`` into the local ``co_varnames[var_nums >> 4]`` and " -"pushes a reference to the local ``co_varnames[var_nums & 15]`` onto the " -"stack." -msgstr "" - -#: library/dis.rst:1508 -msgid "Deletes local ``co_varnames[var_num]``." -msgstr "" - -#: library/dis.rst:1513 -msgid "" -"Creates a new cell in slot ``i``. If that slot is nonempty then that value " -"is stored into the new cell." -msgstr "" - -#: library/dis.rst:1521 -msgid "" -"Loads the cell contained in slot ``i`` of the \"fast locals\" storage. " -"Pushes a reference to the object the cell contains on the stack." -msgstr "" - -#: library/dis.rst:1546 library/dis.rst:1557 -msgid "" -"``i`` is no longer offset by the length of :attr:`~codeobject.co_varnames`." -msgstr "" - -#: library/dis.rst:1530 -msgid "" -"Pops a mapping off the stack and looks up the name associated with slot " -"``i`` of the \"fast locals\" storage in this mapping. If the name is not " -"found there, loads it from the cell contained in slot ``i``, similar " -"to :opcode:`LOAD_DEREF`. This is used for loading :term:`closure variables " -"` in class bodies (which previously used :opcode:`!" -"LOAD_CLASSDEREF`) and in :ref:`annotation scopes ` within " -"class bodies." -msgstr "" - -#: library/dis.rst:1543 -msgid "" -"Stores ``STACK.pop()`` into the cell contained in slot ``i`` of the \"fast " -"locals\" storage." -msgstr "" - -#: library/dis.rst:1552 -msgid "" -"Empties the cell contained in slot ``i`` of the \"fast locals\" storage. " -"Used by the :keyword:`del` statement." -msgstr "" - -#: library/dis.rst:1563 -msgid "" -"Copies the ``n`` :term:`free (closure) variables ` from " -"the closure into the frame. Removes the need for special code on the " -"caller's side when calling closures." -msgstr "" - -#: library/dis.rst:1572 -msgid "" -"Raises an exception using one of the 3 forms of the ``raise`` statement, " -"depending on the value of *argc*:" -msgstr "" - -#: library/dis.rst:1575 -msgid "0: ``raise`` (re-raise previous exception)" -msgstr "" - -#: library/dis.rst:1576 -msgid "" -"1: ``raise STACK[-1]`` (raise exception instance or type at ``STACK[-1]``)" -msgstr "" - -#: library/dis.rst:1577 -msgid "" -"2: ``raise STACK[-2] from STACK[-1]`` (raise exception instance or type at " -"``STACK[-2]`` with ``__cause__`` set to ``STACK[-1]``)" -msgstr "" - -#: library/dis.rst:1583 -msgid "" -"Calls a callable object with the number of arguments specified by ``argc``. " -"On the stack are (in ascending order):" -msgstr "" - -#: library/dis.rst:1610 -msgid "The callable" -msgstr "" - -#: library/dis.rst:1611 -msgid "``self`` or ``NULL``" -msgstr "" - -#: library/dis.rst:1612 -msgid "The remaining positional arguments" -msgstr "" - -#: library/dis.rst:1590 -msgid "``argc`` is the total of the positional arguments, excluding ``self``." -msgstr "" - -#: library/dis.rst:1592 -msgid "" -"``CALL`` pops all arguments and the callable object off the stack, calls the " -"callable object with those arguments, and pushes the return value returned " -"by the callable object." -msgstr "" - -#: library/dis.rst:1598 -msgid "The callable now always appears at the same position on the stack." -msgstr "" - -#: library/dis.rst:1601 -msgid "Calls with keyword arguments are now handled by :opcode:`CALL_KW`." -msgstr "" - -#: library/dis.rst:1607 -msgid "" -"Calls a callable object with the number of arguments specified by ``argc``, " -"including one or more named arguments. On the stack are (in ascending order):" -msgstr "" - -#: library/dis.rst:1613 -msgid "The named arguments" -msgstr "" - -#: library/dis.rst:1614 -msgid "A :class:`tuple` of keyword argument names" -msgstr "" - -#: library/dis.rst:1616 -msgid "" -"``argc`` is the total of the positional and named arguments, excluding " -"``self``. The length of the tuple of keyword argument names is the number of " -"named arguments." -msgstr "" - -#: library/dis.rst:1619 -msgid "" -"``CALL_KW`` pops all arguments, the keyword names, and the callable object " -"off the stack, calls the callable object with those arguments, and pushes " -"the return value returned by the callable object." -msgstr "" - -#: library/dis.rst:1628 -msgid "" -"Calls a callable object with variable set of positional and keyword " -"arguments. If the lowest bit of *flags* is set, the top of the stack " -"contains a mapping object containing additional keyword arguments. Before " -"the callable is called, the mapping object and iterable object are each " -"\"unpacked\" and their contents passed in as keyword and positional " -"arguments respectively. ``CALL_FUNCTION_EX`` pops all arguments and the " -"callable object off the stack, calls the callable object with those " -"arguments, and pushes the return value returned by the callable object." -msgstr "" - -#: library/dis.rst:1643 -msgid "" -"Pushes a ``NULL`` to the stack. Used in the call sequence to match the " -"``NULL`` pushed by :opcode:`LOAD_ATTR` for non-method calls." -msgstr "" - -#: library/dis.rst:1652 -msgid "" -"Pushes a new function object on the stack built from the code object at " -"``STACK[-1]``." -msgstr "" - -#: library/dis.rst:1654 -msgid "Flag value ``0x04`` is a tuple of strings instead of dictionary" -msgstr "" - -#: library/dis.rst:1657 -msgid "Qualified name at ``STACK[-1]`` was removed." -msgstr "" - -#: library/dis.rst:1660 -msgid "" -"Extra function attributes on the stack, signaled by oparg flags, were " -"removed. They now use :opcode:`SET_FUNCTION_ATTRIBUTE`." -msgstr "" - -#: library/dis.rst:1667 -msgid "" -"Sets an attribute on a function object. Expects the function at " -"``STACK[-1]`` and the attribute value to set at ``STACK[-2]``; consumes both " -"and leaves the function at ``STACK[-1]``. The flag determines which " -"attribute to set:" -msgstr "" - -#: library/dis.rst:1671 -msgid "" -"``0x01`` a tuple of default values for positional-only and positional-or-" -"keyword parameters in positional order" -msgstr "" - -#: library/dis.rst:1673 -msgid "``0x02`` a dictionary of keyword-only parameters' default values" -msgstr "" - -#: library/dis.rst:1674 -msgid "``0x04`` a tuple of strings containing parameters' annotations" -msgstr "" - -#: library/dis.rst:1675 -msgid "``0x08`` a tuple containing cells for free variables, making a closure" -msgstr "" - -#: library/dis.rst:1676 -msgid "``0x10`` the :term:`annotate function` for the function object" -msgstr "" - -#: library/dis.rst:1680 -msgid "" -"Added ``0x10`` to indicate the annotate function for the function object." -msgstr "" - -#: library/dis.rst:1688 -msgid "" -"Pushes a slice object on the stack. *argc* must be 2 or 3. If it is 2, " -"implements::" -msgstr "" - -#: library/dis.rst:1694 -msgid "if it is 3, implements::" -msgstr "" - -#: library/dis.rst:1701 -msgid "See the :func:`slice` built-in function for more information." -msgstr "" - -#: library/dis.rst:1706 -msgid "" -"Prefixes any opcode which has an argument too big to fit into the default " -"one byte. *ext* holds an additional byte which act as higher bits in the " -"argument. For each opcode, at most three prefixal ``EXTENDED_ARG`` are " -"allowed, forming an argument from two-byte to four-byte." -msgstr "" - -#: library/dis.rst:1714 -msgid "Convert value to a string, depending on ``oparg``::" -msgstr "" - -#: library/dis.rst:1720 -msgid "``oparg == 1``: call :func:`str` on *value*" -msgstr "" - -#: library/dis.rst:1721 -msgid "``oparg == 2``: call :func:`repr` on *value*" -msgstr "" - -#: library/dis.rst:1722 -msgid "``oparg == 3``: call :func:`ascii` on *value*" -msgstr "" - -#: library/dis.rst:1737 library/dis.rst:1750 -msgid "Used for implementing formatted string literals (f-strings)." -msgstr "" - -#: library/dis.rst:1731 -msgid "Formats the value on top of stack::" -msgstr "" - -#: library/dis.rst:1743 -msgid "Formats the given value with the given format spec::" -msgstr "" - -#: library/dis.rst:1757 -msgid "" -"``STACK[-1]`` is a tuple of keyword attribute names, ``STACK[-2]`` is the " -"class being matched against, and ``STACK[-3]`` is the match subject. " -"*count* is the number of positional sub-patterns." -msgstr "" - -#: library/dis.rst:1761 -msgid "" -"Pop ``STACK[-1]``, ``STACK[-2]``, and ``STACK[-3]``. If ``STACK[-3]`` is an " -"instance of ``STACK[-2]`` and has the positional and keyword attributes " -"required by *count* and ``STACK[-1]``, push a tuple of extracted attributes. " -"Otherwise, push ``None``." -msgstr "" - -#: library/dis.rst:1775 -msgid "A no-op. Performs internal tracing, debugging and optimization checks." -msgstr "" - -#: library/dis.rst:1777 -msgid "" -"The ``context`` operand consists of two parts. The lowest two bits indicate " -"where the ``RESUME`` occurs:" -msgstr "" - -#: library/dis.rst:1780 -msgid "" -"``0`` The start of a function, which is neither a generator, coroutine nor " -"an async generator" -msgstr "" - -#: library/dis.rst:1782 -msgid "``1`` After a ``yield`` expression" -msgstr "" - -#: library/dis.rst:1783 -msgid "``2`` After a ``yield from`` expression" -msgstr "" - -#: library/dis.rst:1784 -msgid "``3`` After an ``await`` expression" -msgstr "" - -#: library/dis.rst:1786 -msgid "" -"The next bit is ``1`` if the RESUME is at except-depth ``1``, and ``0`` " -"otherwise." -msgstr "" - -#: library/dis.rst:1791 -msgid "The oparg value changed to include information about except-depth" -msgstr "" - -#: library/dis.rst:1797 -msgid "" -"Create a generator, coroutine, or async generator from the current frame. " -"Used as first opcode of in code object for the above mentioned callables. " -"Clear the current frame and return the newly created generator." -msgstr "" - -#: library/dis.rst:1806 -msgid "" -"Equivalent to ``STACK[-1] = STACK[-2].send(STACK[-1])``. Used in ``yield " -"from`` and ``await`` statements." -msgstr "" - -#: library/dis.rst:1809 -msgid "" -"If the call raises :exc:`StopIteration`, pop the top value from the stack, " -"push the exception's ``value`` attribute, and increment the bytecode counter " -"by *delta*." -msgstr "" - -#: library/dis.rst:1818 -msgid "" -"This is not really an opcode. It identifies the dividing line between " -"opcodes in the range [0,255] which don't use their argument and those that " -"do (``< HAVE_ARGUMENT`` and ``>= HAVE_ARGUMENT``, respectively)." -msgstr "" - -#: library/dis.rst:1822 -msgid "" -"If your application uses pseudo instructions or specialized instructions, " -"use the :data:`hasarg` collection instead." -msgstr "" - -#: library/dis.rst:1825 -msgid "" -"Now every instruction has an argument, but opcodes ``< HAVE_ARGUMENT`` " -"ignore it. Before, only opcodes ``>= HAVE_ARGUMENT`` had an argument." -msgstr "" - -#: library/dis.rst:1829 -msgid "" -"Pseudo instructions were added to the :mod:`!dis` module, and for them it is " -"not true that comparison with ``HAVE_ARGUMENT`` indicates whether they use " -"their arg." -msgstr "" - -#: library/dis.rst:1834 -msgid "Use :data:`hasarg` instead." -msgstr "" - -#: library/dis.rst:1839 -msgid "" -"Calls an intrinsic function with one argument. Passes ``STACK[-1]`` as the " -"argument and sets ``STACK[-1]`` to the result. Used to implement " -"functionality that is not performance critical." -msgstr "" - -#: library/dis.rst:1897 -msgid "The operand determines which intrinsic function is called:" -msgstr "" - -#: library/dis.rst:1900 -msgid "Operand" -msgstr "" - -#: library/dis.rst:1900 -msgid "Description" -msgstr "Description" - -#: library/dis.rst:1848 -msgid "``INTRINSIC_1_INVALID``" -msgstr "" - -#: library/dis.rst:1902 -msgid "Not valid" -msgstr "" - -#: library/dis.rst:1850 -msgid "``INTRINSIC_PRINT``" -msgstr "" - -#: library/dis.rst:1850 -msgid "Prints the argument to standard out. Used in the REPL." -msgstr "" - -#: library/dis.rst:1853 -msgid "``INTRINSIC_IMPORT_STAR``" -msgstr "" - -#: library/dis.rst:1853 -msgid "Performs ``import *`` for the named module." -msgstr "" - -#: library/dis.rst:1856 -msgid "``INTRINSIC_STOPITERATION_ERROR``" -msgstr "" - -#: library/dis.rst:1856 -msgid "Extracts the return value from a ``StopIteration`` exception." -msgstr "" - -#: library/dis.rst:1859 -msgid "``INTRINSIC_ASYNC_GEN_WRAP``" -msgstr "" - -#: library/dis.rst:1859 -msgid "Wraps an async generator value" -msgstr "" - -#: library/dis.rst:1861 -msgid "``INTRINSIC_UNARY_POSITIVE``" -msgstr "" - -#: library/dis.rst:1861 -msgid "Performs the unary ``+`` operation" -msgstr "" - -#: library/dis.rst:1864 -msgid "``INTRINSIC_LIST_TO_TUPLE``" -msgstr "" - -#: library/dis.rst:1864 -msgid "Converts a list to a tuple" -msgstr "" - -#: library/dis.rst:1866 -msgid "``INTRINSIC_TYPEVAR``" -msgstr "" - -#: library/dis.rst:1866 -msgid "Creates a :class:`typing.TypeVar`" -msgstr "" - -#: library/dis.rst:1868 -msgid "``INTRINSIC_PARAMSPEC``" -msgstr "" - -#: library/dis.rst:1868 -msgid "Creates a :class:`typing.ParamSpec`" -msgstr "" - -#: library/dis.rst:1871 -msgid "``INTRINSIC_TYPEVARTUPLE``" -msgstr "" - -#: library/dis.rst:1871 -msgid "Creates a :class:`typing.TypeVarTuple`" -msgstr "" - -#: library/dis.rst:1874 -msgid "``INTRINSIC_SUBSCRIPT_GENERIC``" -msgstr "" - -#: library/dis.rst:1874 -msgid "Returns :class:`typing.Generic` subscripted with the argument" -msgstr "" - -#: library/dis.rst:1877 -msgid "``INTRINSIC_TYPEALIAS``" -msgstr "" - -#: library/dis.rst:1877 -msgid "" -"Creates a :class:`typing.TypeAliasType`; used in the :keyword:`type` " -"statement. The argument is a tuple of the type alias's name, type " -"parameters, and value." -msgstr "" - -#: library/dis.rst:1889 -msgid "" -"Calls an intrinsic function with two arguments. Used to implement " -"functionality that is not performance critical::" -msgstr "" - -#: library/dis.rst:1902 -msgid "``INTRINSIC_2_INVALID``" -msgstr "" - -#: library/dis.rst:1904 -msgid "``INTRINSIC_PREP_RERAISE_STAR``" -msgstr "" - -#: library/dis.rst:1904 -msgid "Calculates the :exc:`ExceptionGroup` to raise from a ``try-except*``." -msgstr "" - -#: library/dis.rst:1908 -msgid "``INTRINSIC_TYPEVAR_WITH_BOUND``" -msgstr "" - -#: library/dis.rst:1908 -msgid "Creates a :class:`typing.TypeVar` with a bound." -msgstr "" - -#: library/dis.rst:1911 -msgid "``INTRINSIC_TYPEVAR_WITH_CONSTRAINTS``" -msgstr "" - -#: library/dis.rst:1911 -msgid "Creates a :class:`typing.TypeVar` with constraints." -msgstr "" - -#: library/dis.rst:1915 -msgid "``INTRINSIC_SET_FUNCTION_TYPE_PARAMS``" -msgstr "" - -#: library/dis.rst:1915 -msgid "Sets the ``__type_params__`` attribute of a function." -msgstr "" - -#: library/dis.rst:1924 -msgid "" -"Performs special method lookup on ``STACK[-1]``. If " -"``type(STACK[-1]).__xxx__`` is a method, leave ``type(STACK[-1]).__xxx__; " -"STACK[-1]`` on the stack. If ``type(STACK[-1]).__xxx__`` is not a method, " -"leave ``STACK[-1].__xxx__; NULL`` on the stack." -msgstr "" - -#: library/dis.rst:1933 -msgid "**Pseudo-instructions**" -msgstr "" - -#: library/dis.rst:1935 -msgid "" -"These opcodes do not appear in Python bytecode. They are used by the " -"compiler but are replaced by real opcodes or removed before bytecode is " -"generated." -msgstr "" - -#: library/dis.rst:1940 -msgid "" -"Set up an exception handler for the following code block. If an exception " -"occurs, the value stack level is restored to its current state and control " -"is transferred to the exception handler at ``target``." -msgstr "" - -#: library/dis.rst:1947 -msgid "" -"Like ``SETUP_FINALLY``, but in case of an exception also pushes the last " -"instruction (``lasti``) to the stack so that ``RERAISE`` can restore it. If " -"an exception occurs, the value stack level and the last instruction on the " -"frame are restored to their current state, and control is transferred to the " -"exception handler at ``target``." -msgstr "" - -#: library/dis.rst:1956 -msgid "" -"Like ``SETUP_CLEANUP``, but in case of an exception one more item is popped " -"from the stack before control is transferred to the exception handler at " -"``target``." -msgstr "" - -#: library/dis.rst:1960 -msgid "" -"This variant is used in :keyword:`with` and :keyword:`async with` " -"constructs, which push the return value of the context " -"manager's :meth:`~object.__enter__` or :meth:`~object.__aenter__` to the " -"stack." -msgstr "" - -#: library/dis.rst:1967 -msgid "" -"Marks the end of the code block associated with the last ``SETUP_FINALLY``, " -"``SETUP_CLEANUP`` or ``SETUP_WITH``." -msgstr "" - -#: library/dis.rst:1974 -msgid "" -"Undirected relative jump instructions which are replaced by their directed " -"(forward/backward) counterparts by the assembler." -msgstr "" - -#: library/dis.rst:1980 -msgid "" -"Conditional jumps which do not impact the stack. Replaced by the sequence " -"``COPY 1``, ``TO_BOOL``, ``POP_JUMP_IF_TRUE/FALSE``." -msgstr "" - -#: library/dis.rst:1985 -msgid "" -"Pushes a reference to the cell contained in slot ``i`` of the \"fast " -"locals\" storage." -msgstr "" - -#: library/dis.rst:1988 -msgid "" -"Note that ``LOAD_CLOSURE`` is replaced with ``LOAD_FAST`` in the assembler." -msgstr "" - -#: library/dis.rst:1990 -msgid "This opcode is now a pseudo-instruction." -msgstr "" - -#: library/dis.rst:1997 -msgid "Opcode collections" -msgstr "" - -#: library/dis.rst:1999 -msgid "" -"These collections are provided for automatic introspection of bytecode " -"instructions:" -msgstr "" - -#: library/dis.rst:2002 -msgid "" -"The collections now contain pseudo instructions and instrumented " -"instructions as well. These are opcodes with values ``>= MIN_PSEUDO_OPCODE`` " -"and ``>= MIN_INSTRUMENTED_OPCODE``." -msgstr "" - -#: library/dis.rst:2009 -msgid "Sequence of operation names, indexable using the bytecode." -msgstr "" - -#: library/dis.rst:2014 -msgid "Dictionary mapping operation names to bytecodes." -msgstr "" - -#: library/dis.rst:2019 -msgid "Sequence of all compare operation names." -msgstr "" - -#: library/dis.rst:2024 -msgid "Sequence of bytecodes that use their argument." -msgstr "" - -#: library/dis.rst:2031 -msgid "Sequence of bytecodes that access a constant." -msgstr "" - -#: library/dis.rst:2036 -msgid "" -"Sequence of bytecodes that access a :term:`free (closure) variable `. 'free' in this context refers to names in the current scope that " -"are referenced by inner scopes or names in outer scopes that are referenced " -"from this scope. It does *not* include references to global or builtin " -"scopes." -msgstr "" - -#: library/dis.rst:2044 -msgid "Sequence of bytecodes that access an attribute by name." -msgstr "" - -#: library/dis.rst:2049 -msgid "Sequence of bytecodes that have a jump target. All jumps are relative." -msgstr "" - -#: library/dis.rst:2056 -msgid "Sequence of bytecodes that access a local variable." -msgstr "" - -#: library/dis.rst:2061 -msgid "Sequence of bytecodes of Boolean operations." -msgstr "" - -#: library/dis.rst:2065 -msgid "Sequence of bytecodes that set an exception handler." -msgstr "" - -#: library/dis.rst:2072 -msgid "Sequence of bytecodes that have a relative jump target." -msgstr "" - -#: library/dis.rst:2074 -msgid "All jumps are now relative. Use :data:`hasjump`." -msgstr "" - -#: library/dis.rst:2080 -msgid "Sequence of bytecodes that have an absolute jump target." -msgstr "" - -#: library/dis.rst:2082 -msgid "All jumps are now relative. This list is empty." -msgstr "" - -#~ msgid "the line number, for the first instruction of each line" -#~ msgstr "le numéro de ligne, pour la première instruction de chaque ligne" - -#, fuzzy -#~ msgid "built-in function" -#~ msgstr "Analyse de fonctions" - -#~ msgid "slice" -#~ msgstr "tranche" diff --git a/library/distribution.po b/library/distribution.po deleted file mode 100644 index 047e28bcec..0000000000 --- a/library/distribution.po +++ /dev/null @@ -1,31 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -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-06-10 15:33+0200\n" -"Last-Translator: FULL NAME \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" - -#: library/distribution.rst:3 -msgid "Software Packaging and Distribution" -msgstr "Paquets et distribution de paquets logiciels" - -#: library/distribution.rst:5 -msgid "" -"These libraries help you with publishing and installing Python software. " -"While these modules are designed to work in conjunction with the `Python " -"Package Index `__, they can also be used with a local " -"index server, or without any index server at all." -msgstr "" -"Ces bibliothèques vous aident lors de la publication et l'installation de " -"logiciels Python. Bien que ces modules sont conçus pour fonctionner avec le " -"`Python Package Index `__, ils peuvent aussi être utilisés " -"avec un serveur local, ou sans serveur." diff --git a/library/distutils.po b/library/distutils.po deleted file mode 100644 index 39ac89f6bf..0000000000 --- a/library/distutils.po +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright (C) 2001 Python Software Foundation -# This file is distributed under the same license as the Python package. -# -#, fuzzy -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \n" -"Language-Team: FRENCH \n" -"Language: \n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/distutils.rst:2 -msgid ":mod:`!distutils` --- Building and installing Python modules" -msgstr "" - -#: library/distutils.rst:10 -msgid "" -"This module is no longer part of the Python standard library. It " -"was :ref:`removed in Python 3.12 ` after " -"being deprecated in Python 3.10. The removal was decided in :pep:`632`, " -"which has `migration advice `_." -msgstr "" - -#: library/distutils.rst:16 -msgid "" -"The last version of Python that provided the :mod:`!distutils` module was " -"`Python 3.11 `_." -msgstr "" diff --git a/library/doctest.po b/library/doctest.po deleted file mode 100644 index 93550ab585..0000000000 --- a/library/doctest.po +++ /dev/null @@ -1,2984 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-11-01 16:04+0100\n" -"Last-Translator: Edith Viau \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3\n" - -#: library/doctest.rst:2 -msgid ":mod:`!doctest` --- Test interactive Python examples" -msgstr ":mod:`!doctest` — Exemples de tests interactifs en Python" - -#: library/doctest.rst:7 -msgid "**Source code:** :source:`Lib/doctest.py`" -msgstr "**Code source :** :source:`Lib/doctest.py`" - -#: library/doctest.rst:11 -#, fuzzy -msgid "" -"The :mod:`!doctest` module searches for pieces of text that look like " -"interactive Python sessions, and then executes those sessions to verify that " -"they work exactly as shown. There are several common ways to use doctest:" -msgstr "" -"Le module :mod:`doctest` cherche des extraits de texte ressemblant à des " -"sessions Python interactives avant de les exécuter, de façon à vérifier que " -"le fonctionnement correspond exactement à la description. Voici quelques cas " -"d'utilisation de *doctest* :" - -#: library/doctest.rst:15 -msgid "" -"To check that a module's docstrings are up-to-date by verifying that all " -"interactive examples still work as documented." -msgstr "" -"Vérifier que les *docstrings* d'un module sont à jour en vérifiant que tous " -"les exemples interactifs fonctionnent toujours tels que décrits." - -#: library/doctest.rst:18 -msgid "" -"To perform regression testing by verifying that interactive examples from a " -"test file or a test object work as expected." -msgstr "" -"Réaliser un test de régression en vérifiant que les exemples interactifs " -"provenant d'un fichier de test ou d'un objet de test fonctionnent comme " -"prévu." - -#: library/doctest.rst:21 -msgid "" -"To write tutorial documentation for a package, liberally illustrated with " -"input-output examples. Depending on whether the examples or the expository " -"text are emphasized, this has the flavor of \"literate testing\" or " -"\"executable documentation\"." -msgstr "" -"Rédiger de la documentation sous forme de tutoriel pour un paquet, avec une " -"abondance d'exemples ayant des entrées et des sorties. On pourrait voir ça " -"comme des tests « dans le texte » ou de la « documentation exécutable », " -"selon le point de vue." - -#: library/doctest.rst:26 -msgid "Here's a complete but small example module::" -msgstr "Voici un petit exemple d'un module qui soit tout de même complet ::" - -#: library/doctest.rst:83 -#, fuzzy -msgid "" -"If you run :file:`example.py` directly from the command line, :mod:`!" -"doctest` works its magic:" -msgstr "" -"L'exécution du fichier :file:`example.py` directement à partir de la ligne " -"de commande démontre la magie de :mod:`doctest` :" - -#: library/doctest.rst:91 -#, fuzzy -msgid "" -"There's no output! That's normal, and it means all the examples worked. " -"Pass ``-v`` to the script, and :mod:`!doctest` prints a detailed log of what " -"it's trying, and prints a summary at the end:" -msgstr "" -"Il n'y a pas de sortie ! C'est normal, cela signifie que tous les exemples " -"fonctionnent. Passez ``-v`` au script pour que :mod:`doctest` affiche un " -"journal détaillé de ce qui a été essayé, avant d'afficher un résumé à la " -"fin :" - -#: library/doctest.rst:109 -msgid "And so on, eventually ending with:" -msgstr "Et ainsi de suite, jusqu'à ce qu'on atteigne :" - -#: library/doctest.rst:128 -#, fuzzy -msgid "" -"That's all you need to know to start making productive use of :mod:`!" -"doctest`! Jump in. The following sections provide full details. Note that " -"there are many examples of doctests in the standard Python test suite and " -"libraries. Especially useful examples can be found in the standard test " -"file :file:`Lib/test/test_doctest/test_doctest.py`." -msgstr "" -"C'est tout ce dont vous avez besoin pour pouvoir commencer une utilisation " -"productive de :mod:`doctest` ! Allez-y. Les sections suivantes donnent tous " -"les détails. Notez qu'il y a plusieurs exemples de *doctests* dans la suite " -"de tests de la bibliothèque standard de Python et dans les autres " -"bibliothèques. Des exemples particulièrement utiles se situent dans le " -"fichier de test standard :file:`Lib/test/test_doctest.py`." - -#: library/doctest.rst:134 -msgid "" -"Output is colorized by default and can be :ref:`controlled using environment " -"variables `." -msgstr "" - -#: library/doctest.rst:142 -msgid "Simple Usage: Checking Examples in Docstrings" -msgstr "Utilisation simple : vérifier des exemples dans des *docstrings*" - -#: library/doctest.rst:144 -msgid "" -"The simplest way to start using doctest (but not necessarily the way you'll " -"continue to do it) is to end each module :mod:`!M` with::" -msgstr "" -"Le plus simple pour commencer à utiliser *doctest* (mais pas nécessairement " -"la façon avec laquelle vous continuerez) est de terminer chaque " -"module :mod:`!M` avec ::" - -#: library/doctest.rst:151 -msgid ":mod:`!doctest` then examines docstrings in module :mod:`!M`." -msgstr "" -":mod:`!doctest` examine alors les *docstrings* dans le module :mod:`!M`." - -#: library/doctest.rst:153 -msgid "" -"Running the module as a script causes the examples in the docstrings to get " -"executed and verified::" -msgstr "" -"Exécuter le module comme un script a comme conséquence d'exécuter et de " -"vérifier les exemples dans les *docstrings* ::" - -#: library/doctest.rst:158 -msgid "" -"This won't display anything unless an example fails, in which case the " -"failing example(s) and the cause(s) of the failure(s) are printed to stdout, " -"and the final line of output is ``***Test Failed*** N failures.``, where *N* " -"is the number of examples that failed." -msgstr "" -"Ceci n'affiche rien à moins qu'un exemple échoue ; le cas échéant, les " -"exemples défaillants et les causes du ou des échecs sont affichés sur " -"*stdout*, et la ligne finale de la sortie est ``***Test Failed*** *N " -"failures*.``, où *N* est le nombre d'exemples défaillants." - -#: library/doctest.rst:163 -msgid "Run it with the ``-v`` switch instead::" -msgstr "À la place, exécutez-la avec l'option de ligne de commande ``-v`` ::" - -#: library/doctest.rst:167 -msgid "" -"and a detailed report of all examples tried is printed to standard output, " -"along with assorted summaries at the end." -msgstr "" -"alors, un rapport détaillé de tous les exemples faisant partie de l'essai " -"est affiché sur la sortie standard, accompagné à la fin de leurs résumés." - -#: library/doctest.rst:170 -#, fuzzy -msgid "" -"You can force verbose mode by passing ``verbose=True`` to :func:`testmod`, " -"or prohibit it by passing ``verbose=False``. In either of those " -"cases, :data:`sys.argv` is not examined by :func:`testmod` (so passing ``-" -"v`` or not has no effect)." -msgstr "" -"Vous pouvez activer le mode verbeux en passant ``verbose=True`` " -"à :func:`testmod`, ou vous le désactiver en lui passant ``verbose=False``. " -"Dans ces deux cas, ``sys.argv`` n'est pas inspecté par :func:`testmod` " -"(ainsi, lui passer ``-v`` ou pas n'a aucun effet)." - -#: library/doctest.rst:175 -#, fuzzy -msgid "" -"There is also a command line shortcut for running :func:`testmod`, see " -"section :ref:`doctest-cli`." -msgstr "" -"Pour plus d'informations sur :func:`testmod`, consultez la " -"section :ref:`doctest-basic-api`." - -#: library/doctest.rst:178 -msgid "" -"For more information on :func:`testmod`, see section :ref:`doctest-basic-" -"api`." -msgstr "" -"Pour plus d'informations sur :func:`testmod`, consultez la " -"section :ref:`doctest-basic-api`." - -#: library/doctest.rst:184 -msgid "Simple Usage: Checking Examples in a Text File" -msgstr "Utilisation simple : vérifier des exemples dans un fichier texte" - -#: library/doctest.rst:186 -msgid "" -"Another simple application of doctest is testing interactive examples in a " -"text file. This can be done with the :func:`testfile` function::" -msgstr "" -"Une autre application simple de *doctest* est de tester des exemples " -"interactifs dans un fichier texte. Ceci est fait avec la " -"fonction :func:`testfile` ::" - -#: library/doctest.rst:192 -msgid "" -"That short script executes and verifies any interactive Python examples " -"contained in the file :file:`example.txt`. The file content is treated as " -"if it were a single giant docstring; the file doesn't need to contain a " -"Python program! For example, perhaps :file:`example.txt` contains this:" -msgstr "" -"Ce court script exécute et vérifie chacun des exemples Python interactifs " -"contenus dans le fichier :file:`example.txt`. Le contenu du fichier est " -"traité comme une seule *docstring* géante ; le fichier n'a pas besoin de " -"contenir un programme Python ! Par exemple, prenons un " -"fichier :file:`example.txt` contenant :" - -#: library/doctest.rst:215 -msgid "" -"Running ``doctest.testfile(\"example.txt\")`` then finds the error in this " -"documentation::" -msgstr "" -"Exécuter ``doctest.testfile(\"example.txt\")`` recherche les erreurs dans " -"cette documentation ::" - -#: library/doctest.rst:226 -#, fuzzy -msgid "" -"As with :func:`testmod`, :func:`testfile` won't display anything unless an " -"example fails. If an example does fail, then the failing example(s) and the " -"cause(s) of the failure(s) are printed to stdout, using the same format " -"as :func:`!testmod`." -msgstr "" -"Comme pour :func:`testmod`, :func:`testfile` n'affichera rien sauf si un " -"exemple échoue. Si un exemple échoue, alors le ou les exemples défaillants " -"et leurs causes sont affichés sur *stdout*, dans le même format " -"que :func:`testmod`." - -#: library/doctest.rst:231 -msgid "" -"By default, :func:`testfile` looks for files in the calling module's " -"directory. See section :ref:`doctest-basic-api` for a description of the " -"optional arguments that can be used to tell it to look for files in other " -"locations." -msgstr "" -"Par défaut, :func:`testfile` cherche les fichiers dans le répertoire où se " -"situe le module qui l'appelle. Consultez la section :ref:`doctest-basic-api` " -"pour une description des options de ligne de commande à utiliser afin de " -"chercher dans d'autres répertoires." - -#: library/doctest.rst:235 -msgid "" -"Like :func:`testmod`, :func:`testfile`'s verbosity can be set with the ``-" -"v`` command-line switch or with the optional keyword argument *verbose*." -msgstr "" -"Comme pour :func:`testmod`, la verbosité de :func:`testfile` peut être " -"ajustée avec l'option de ligne de commande ``-v`` ou avec le mot clé " -"*verbose*." - -#: library/doctest.rst:239 -#, fuzzy -msgid "" -"There is also a command line shortcut for running :func:`testfile`, see " -"section :ref:`doctest-cli`." -msgstr "" -"Pour plus d'information sur :func:`testfile`, consultez la " -"section :ref:`doctest-basic-api`." - -#: library/doctest.rst:242 -msgid "" -"For more information on :func:`testfile`, see section :ref:`doctest-basic-" -"api`." -msgstr "" -"Pour plus d'information sur :func:`testfile`, consultez la " -"section :ref:`doctest-basic-api`." - -#: library/doctest.rst:248 -msgid "Command-line Usage" -msgstr "" - -#: library/doctest.rst:250 -msgid "" -"The :mod:`!doctest` module can be invoked as a script from the command line:" -msgstr "" - -#: library/doctest.rst:260 -#, fuzzy -msgid "" -"Detailed report of all examples tried is printed to standard output, along " -"with assorted summaries at the end::" -msgstr "" -"alors, un rapport détaillé de tous les exemples faisant partie de l'essai " -"est affiché sur la sortie standard, accompagné à la fin de leurs résumés." - -#: library/doctest.rst:265 -#, fuzzy -msgid "" -"This will import :file:`example.py` as a standalone module and " -"run :func:`testmod` on it. Note that this may not work correctly if the file " -"is part of a package and imports other submodules from that package." -msgstr "" -"Ceci importera :file:`example.py` comme un module autonome et " -"exécutera :func:`testmod` sur celui-ci. Notez que ceci peut ne pas " -"fonctionner si le fichier fait partie d'un paquet et importe d'autres sous-" -"modules de ce paquet." - -#: library/doctest.rst:269 -#, fuzzy -msgid "" -"If the file name does not end with :file:`.py`, :mod:`!doctest` infers that " -"it must be run with :func:`testfile` instead::" -msgstr "" -"Puisque le nom du fichier ne se termine pas par :file:`.py`, :mod:`doctest` " -"en déduit qu'il s'exécute à l'aide de :func:`testfile`, et non " -"pas :func:`testmod`." - -#: library/doctest.rst:276 -msgid "" -"Option flags control various aspects of doctest's behavior, see " -"section :ref:`doctest-options`." -msgstr "" - -#: library/doctest.rst:283 -#, fuzzy -msgid "This is shorthand for ``-o FAIL_FAST``." -msgstr "" -"La ligne de commande de *doctest* accepte l'option ``-f`` comme un raccourci " -"de ``-o FAIL_FAST``." - -#: library/doctest.rst:291 -msgid "How It Works" -msgstr "Comment ça marche" - -#: library/doctest.rst:293 -msgid "" -"This section examines in detail how doctest works: which docstrings it looks " -"at, how it finds interactive examples, what execution context it uses, how " -"it handles exceptions, and how option flags can be used to control its " -"behavior. This is the information that you need to know to write doctest " -"examples; for information about actually running doctest on these examples, " -"see the following sections." -msgstr "" -"Cette section examine en détail le fonctionnement de *doctest* : quelles " -"*docstrings* sont considérées, comment sont trouvés les exemples " -"interactifs, quel est le contexte d'exécution sélectionné, comment les " -"exceptions sont gérées, et de quelles façons les options de ligne de " -"commande peuvent être utilisées pour définir le comportement. Ceci est " -"l'information dont vous avez besoin pour écrire des exemples *doctest* ; " -"pour de l'information sur l'exécution de *doctest* sur ces exemples, " -"consultez les sections suivantes." - -#: library/doctest.rst:304 -msgid "Which Docstrings Are Examined?" -msgstr "Quelles *docstrings* sont considérées ?" - -#: library/doctest.rst:306 -msgid "" -"The module docstring, and all function, class and method docstrings are " -"searched. Objects imported into the module are not searched." -msgstr "" -"Les *docstrings* du module, de toutes les fonctions, classes, et méthodes " -"sont cherchées. Les objets qui sont importés dans le module ne sont pas " -"cherchés." - -#: library/doctest.rst:316 -#, fuzzy -msgid "" -"In addition, there are cases when you want tests to be part of a module but " -"not part of the help text, which requires that the tests not be included in " -"the docstring. Doctest looks for a module-level variable called ``__test__`` " -"and uses it to locate other tests. If ``M.__test__`` exists, it must be a " -"dict, and each entry maps a (string) name to a function object, class " -"object, or string. Function and class object docstrings found from " -"``M.__test__`` are searched, and strings are treated as if they were " -"docstrings. In output, a key ``K`` in ``M.__test__`` appears with name " -"``M.__test__.K``." -msgstr "" -"De plus, si ``M.__test__`` existe et qu'il est vrai, il doit être un *dict* " -"dont chaque élément lie un nom (chaîne de caractère) à un objet (fonction, " -"classe, chaîne de caractère). Les *docstrings* d'objets fonctions et classes " -"trouvées dans ``M.__test__`` sont cherchés, et les chaînes de caractères " -"sont traitées comme si elles étaient des *docstrings*. En sortie, une clé " -"``K`` dans ``M.__test__`` apparaît avec le nom ::" - -#: library/doctest.rst:325 -msgid "For example, place this block of code at the top of :file:`example.py`:" -msgstr "" - -#: library/doctest.rst:339 -msgid "" -"The value of ``example.__test__[\"numbers\"]`` will be treated as a " -"docstring and all the tests inside it will be run. It is important to note " -"that the value can be mapped to a function, class object, or module; if " -"so, :mod:`!doctest` searches them recursively for docstrings, which are then " -"scanned for tests." -msgstr "" - -#: library/doctest.rst:345 -msgid "" -"Any classes found are recursively searched similarly, to test docstrings in " -"their contained methods and nested classes." -msgstr "" -"Toute classe trouvée est ainsi cherchée récursivement, afin de tester les " -"*docstrings* contenues dans leurs méthodes et leurs classes imbriquées." - -#: library/doctest.rst:350 -msgid "" -"``doctest`` can only automatically discover classes and functions that are " -"defined at the module level or inside other classes." -msgstr "" - -#: library/doctest.rst:353 -msgid "" -"Since nested classes and functions only exist when an outer function is " -"called, they cannot be discovered. Define them outside to make them visible." -msgstr "" - -#: library/doctest.rst:359 -msgid "How are Docstring Examples Recognized?" -msgstr "Comment les exemples *docstring* sont-ils identifiés ?" - -#: library/doctest.rst:361 -msgid "" -"In most cases a copy-and-paste of an interactive console session works fine, " -"but doctest isn't trying to do an exact emulation of any specific Python " -"shell." -msgstr "" -"Dans la plupart des cas, un copier-coller d'une séance interactive de " -"console fonctionne bien, mais *doctest* n'essaye pas de faire une simulation " -"exacte d'un *shell* Python spécifique." - -#: library/doctest.rst:386 -msgid "" -"Any expected output must immediately follow the final ``'>>> '`` or ``'... " -"'`` line containing the code, and the expected output (if any) extends to " -"the next ``'>>> '`` or all-whitespace line." -msgstr "" -"Toute sortie souhaitée doit immédiatement suivre le dernier ``'>>> '`` ou le " -"dernier ``'... '`` contenant le code, et la sortie souhaitée, s'il y en a " -"une, s'étend jusqu'au prochain ``'>>> '`` ou à la prochaine ligne vide." - -#: library/doctest.rst:390 -msgid "The fine print:" -msgstr "En détail :" - -#: library/doctest.rst:392 -msgid "" -"Expected output cannot contain an all-whitespace line, since such a line is " -"taken to signal the end of expected output. If expected output does contain " -"a blank line, put ```` in your doctest example each place a blank " -"line is expected." -msgstr "" -"La sortie souhaitée ne peut pas contenir une ligne vide, puisque contenir " -"une telle ligne signale la fin de la sortie souhaitée. Si la sortie " -"souhaitée doit contenir une ligne vide, ajoutez ```` dans votre " -"exemple *doctest* à chaque endroit où une ligne vide est souhaitée." - -#: library/doctest.rst:397 -msgid "" -"All hard tab characters are expanded to spaces, using 8-column tab stops. " -"Tabs in output generated by the tested code are not modified. Because any " -"hard tabs in the sample output *are* expanded, this means that if the code " -"output includes hard tabs, the only way the doctest can pass is if " -"the :const:`NORMALIZE_WHITESPACE` option or :ref:`directive ` is in effect. Alternatively, the test can be rewritten to " -"capture the output and compare it to an expected value as part of the test. " -"This handling of tabs in the source was arrived at through trial and error, " -"and has proven to be the least error prone way of handling them. It is " -"possible to use a different algorithm for handling tabs by writing a " -"custom :class:`DocTestParser` class." -msgstr "" -"Tous les caractères de tabulation insécables (*hard tab characters*) sont " -"convertis en espaces, en utilisant des taquets de tabulation de 8 espaces. " -"Les tabulations se trouvant dans la sortie générée par le code test ne sont " -"pas modifiées. Comme tout caractère de tabulation insécable *est* converti, " -"ceci veut dire que si le code de sortie inclut des caractères de tabulation " -"insécables, alors la seule façon que le *doctest* peut réussir est si " -"l'option :const:`NORMALIZE_WHITESPACE` ou si :ref:`directive ` a cours. De façon alternative, le test peut être ré-écrit afin " -"de capturer la sortie et de la comparer à un ensemble de valeurs attendues, " -"et ce, en tant qu'étape du test. Cette gestion des tabulations à la source a " -"été obtenue suite à un processus d'essais et d'erreurs ; il a été démontré " -"que c'était là la façon de les gérer qui soit la moins susceptible de " -"générer des erreurs. Il est possible d'utiliser un algorithme différent pour " -"la gestion des tabulations en rédigeant une classe sur " -"mesure :class:`DocTestParser`." - -#: library/doctest.rst:409 -msgid "" -"Output to stdout is captured, but not output to stderr (exception tracebacks " -"are captured via a different means)." -msgstr "" -"La sortie vers *stdout* est capturée, mais pas la sortie vers *stderr* (les " -"traces d'appel sont capturées par d'autres moyens)." - -#: library/doctest.rst:412 -msgid "" -"If you continue a line via backslashing in an interactive session, or for " -"any other reason use a backslash, you should use a raw docstring, which will " -"preserve your backslashes exactly as you type them::" -msgstr "" -"Si vous souhaitez conserver les barres obliques inversées telles quelles " -"lorsque vous terminez une ligne avec une barre oblique inversée dans une " -"séance interactive, ou quand vous utilisez une telle barre pour toute autre " -"raison, vous devez utiliser une *docstring* brute ::" - -#: library/doctest.rst:422 -msgid "" -"Otherwise, the backslash will be interpreted as part of the string. For " -"example, the ``\\n`` above would be interpreted as a newline character. " -"Alternatively, you can double each backslash in the doctest version (and not " -"use a raw string)::" -msgstr "" -"Sinon, la barre oblique inversée est interprétée comme faisant partie de la " -"chaîne de caractères. Par exemple, le ``\\n`` ci-dessus est interprété comme " -"un caractère de saut de ligne. De façon alternative, vous pouvez doubler " -"chaque barre oblique inversée dans la version *doctest* (et n'utilisez pas " -"dans ce cas de *docstring* brute) ::" - -#: library/doctest.rst:432 -msgid "The starting column doesn't matter::" -msgstr "La colonne de départ n'a pas d'importance ::" - -#: library/doctest.rst:439 -msgid "" -"and as many leading whitespace characters are stripped from the expected " -"output as appeared in the initial ``'>>> '`` line that started the example." -msgstr "" -"et autant d'espaces sont retirés de la sortie attendue qu'il y avait " -"d'espaces avant la ligne commençant par ``'>>> '``." - -#: library/doctest.rst:446 -msgid "What's the Execution Context?" -msgstr "Quel est le contexte d'exécution ?" - -#: library/doctest.rst:448 -#, fuzzy -msgid "" -"By default, each time :mod:`!doctest` finds a docstring to test, it uses a " -"*shallow copy* of :mod:`!M`'s globals, so that running tests doesn't change " -"the module's real globals, and so that one test in :mod:`!M` can't leave " -"behind crumbs that accidentally allow another test to work. This means " -"examples can freely use any names defined at top-level in :mod:`!M`, and " -"names defined earlier in the docstring being run. Examples cannot see names " -"defined in other docstrings." -msgstr "" -"Par défaut, chaque fois que :mod:`doctest` trouve une *docstring* à tester, " -"il utilise une *copie superficielle* des variables globales de :mod:`!M`, de " -"telle façon que l'exécution de tests ne change pas les variables globales " -"réelles du module et que l'exécution d'un unique test dans :mod:`!M` ne " -"puisse laisser traîner des miettes pouvant accidentellement causer la " -"réussite d'un autre test. Ceci signifie que les exemples peuvent utiliser " -"librement n'importe quel nom défini au niveau supérieur dans :mod:`!M` ainsi " -"que les noms définis précédemment dans la *docstring* en cours d'exécution. " -"Les exemples ne peuvent voir les noms définis dans d'autres *docstrings*." - -#: library/doctest.rst:456 -msgid "" -"You can force use of your own dict as the execution context by passing " -"``globs=your_dict`` to :func:`testmod` or :func:`testfile` instead." -msgstr "" -"Vous pouvez forcer l'utilisation de votre propre *dict* comme contexte " -"d'exécution en passant ``globs=your_dict`` à :func:`testmod` ou encore, " -"à :func:`testfile`." - -#: library/doctest.rst:463 -msgid "What About Exceptions?" -msgstr "Qu'en est-il des exceptions ?" - -#: library/doctest.rst:465 -msgid "" -"No problem, provided that the traceback is the only output produced by the " -"example: just paste in the traceback. [#]_ Since tracebacks contain details " -"that are likely to change rapidly (for example, exact file paths and line " -"numbers), this is one case where doctest works hard to be flexible in what " -"it accepts." -msgstr "" -"Pas de problèmes, tant que la trace d'appels est la seule sortie produite " -"par l'exemple : il suffit d'ajouter la trace. [#]_ Comme les traces d'appels " -"contiennent des détails qui sont sujets à changement rapide (par exemple, le " -"chemin exact vers un fichier et les numéros de ligne), ceci est un cas où " -"*doctest* fait un effort pour être flexible dans ce qu'il accepte." - -#: library/doctest.rst:471 -msgid "Simple example::" -msgstr "Exemple simple ::" - -#: library/doctest.rst:478 -msgid "" -"That doctest succeeds if :exc:`ValueError` is raised, with the " -"``list.remove(x): x not in list`` detail as shown." -msgstr "" -"Ce *doctest* réussit si :exc:`ValueError` est levée, avec le détail " -"``list.remote(x): x not in list`` tel que montré." - -#: library/doctest.rst:481 -msgid "" -"The expected output for an exception must start with a traceback header, " -"which may be either of the following two lines, indented the same as the " -"first line of the example::" -msgstr "" -"La sortie attendue pour une exception doit commencer par un en-tête de trace " -"d'appels, qui peut être l'une des deux lignes suivantes, avec la même " -"indentation que la première ligne de l'exemple ::" - -#: library/doctest.rst:488 -msgid "" -"The traceback header is followed by an optional traceback stack, whose " -"contents are ignored by doctest. The traceback stack is typically omitted, " -"or copied verbatim from an interactive session." -msgstr "" -"L'en-tête de la trace d'appels est suivi par une pile optionnelle de trace " -"d'appels, dont le contenu est ignoré par *doctest*. La trace d'appels est " -"habituellement omise, ou est copiée verbatim à partir d'une séance " -"interactive." - -#: library/doctest.rst:492 -msgid "" -"The traceback stack is followed by the most interesting part: the line(s) " -"containing the exception type and detail. This is usually the last line of " -"a traceback, but can extend across multiple lines if the exception has a " -"multi-line detail::" -msgstr "" -"La pile de trace d'appels est suivie par la partie la plus intéressante : la " -"ou les lignes contenant le type et le détail de l'exception. Ceci est " -"habituellement la dernière ligne de la trace d'appels ; dans le cas où " -"l'exception a un détail sur plusieurs lignes, il est possible de prolonger " -"sur plusieurs lignes ::" - -#: library/doctest.rst:504 -msgid "" -"The last three lines (starting with :exc:`ValueError`) are compared against " -"the exception's type and detail, and the rest are ignored." -msgstr "" -"Les trois dernières lignes (en commençant par :exc:`ValueError`) sont " -"comparées avec le type et le détail de l'exception ; tout le reste est " -"ignoré." - -#: library/doctest.rst:507 -msgid "" -"Best practice is to omit the traceback stack, unless it adds significant " -"documentation value to the example. So the last example is probably better " -"as::" -msgstr "" -"La pratique optimale est d'omettre la pile de trace d'appels, à moins que " -"celle-ci ait une valeur significative de documentation de l'exemple. Ainsi, " -"le dernier exemple est probablement meilleur tel qui suit ::" - -#: library/doctest.rst:517 -msgid "" -"Note that tracebacks are treated very specially. In particular, in the " -"rewritten example, the use of ``...`` is independent of " -"doctest's :const:`ELLIPSIS` option. The ellipsis in that example could be " -"left out, or could just as well be three (or three hundred) commas or " -"digits, or an indented transcript of a Monty Python skit." -msgstr "" -"Prenez note que les traces d'appels sont traitées de façon vraiment " -"particulière. Précisément, dans l'exemple ré-écrit, l'utilisation de ``...`` " -"est indépendante de l'option *doctest* :const:`ELLIPSIS`. Les points de " -"suspension dans cet exemple peuvent être omis, ou peuvent aussi être trois " -"(ou trois cents) virgules ou chiffres, ou une retranscription indentée d'une " -"parodie de Monty Python." - -#: library/doctest.rst:523 -msgid "Some details you should read once, but won't need to remember:" -msgstr "" -"Quelques détails que vous devriez lire une fois, mais que vous pouvez " -"oublier :" - -#: library/doctest.rst:525 -msgid "" -"Doctest can't guess whether your expected output came from an exception " -"traceback or from ordinary printing. So, e.g., an example that expects " -"``ValueError: 42 is prime`` will pass whether :exc:`ValueError` is actually " -"raised or if the example merely prints that traceback text. In practice, " -"ordinary output rarely begins with a traceback header line, so this doesn't " -"create real problems." -msgstr "" -"*Doctest* ne peut pas deviner si votre sortie attendue provient d'une trace " -"d'appels issue d'une exception ou d'un affichage ordinaire. Ainsi, si nous " -"avons un exemple s'attendant à obtenir ``ValueError: 42 is prime``, celui-ci " -"réussira peu importe si :exc:`ValueError` est réellement levée ou si " -"l'exemple affiche simplement ce texte de trace d'appels. Dans la pratique, " -"une sortie ordinaire commence rarement par une ligne d'en-tête de trace " -"d'appels ; ainsi, ceci ne pose pas de vrai problème." - -#: library/doctest.rst:532 -msgid "" -"Each line of the traceback stack (if present) must be indented further than " -"the first line of the example, *or* start with a non-alphanumeric character. " -"The first line following the traceback header indented the same and starting " -"with an alphanumeric is taken to be the start of the exception detail. Of " -"course this does the right thing for genuine tracebacks." -msgstr "" -"Chaque ligne de la trace d'appel (s'il y en a) doit soit être indentée d'un " -"niveau supplémentaire au niveau de la première ligne de l'exemple *ou* doit " -"commencer par un caractère qui ne soit pas alphanumérique. La première ligne " -"suivant l'en-tête de la trace d'appels qui soit indentée similairement et " -"qui commence par un caractère alphanumérique est comprise comme étant le " -"début du détail de l'exception. Bien sûr, ceci fait la chose adéquate pour " -"les traces d'appels véritables." - -#: library/doctest.rst:538 -msgid "" -"When the :const:`IGNORE_EXCEPTION_DETAIL` doctest option is specified, " -"everything following the leftmost colon and any module information in the " -"exception name is ignored." -msgstr "" -"Lorsque l'option de *doctest* :const:`IGNORE_EXCEPTION_DETAIL` est définie, " -"tout ce qui suit le point-virgule se trouvant le plus à gauche ainsi que " -"toute information liée au module dans le nom de l'exception sont ignorés." - -#: library/doctest.rst:542 -#, fuzzy -msgid "" -"The interactive shell omits the traceback header line for " -"some :exc:`SyntaxError`\\ s. But doctest uses the traceback header line to " -"distinguish exceptions from non-exceptions. So in the rare case where you " -"need to test a :exc:`!SyntaxError` that omits the traceback header, you will " -"need to manually add the traceback header line to your test example." -msgstr "" -"Le shell interactif omet la ligne d'en-tête de la trace d'appels pour " -"certaines erreurs :exc:`SyntaxError`. Ceci étant dit, *doctest* utilise la " -"ligne d'en-tête de la trace d'appels afin de faire une distinction entre les " -"exceptions et les autres types d'erreurs. Ainsi, dans les rares cas où vous " -"avez besoin de tester une erreur :exc:`SyntaxError` qui omet l'en-tête de la " -"trace d'appels, il vous est nécessaire d'ajouter manuellement la ligne d'en-" -"tête de la trace d'appels à l'exemple de test." - -#: library/doctest.rst:550 -msgid "" -"For some exceptions, Python displays the position of the error using ``^`` " -"markers and tildes::" -msgstr "" -"Pour certaines erreurs, Python affiche la position de l'erreur en utilisant " -"le marqueur ``^`` et des tildes ::" - -#: library/doctest.rst:559 -msgid "" -"Since the lines showing the position of the error come before the exception " -"type and detail, they are not checked by doctest. For example, the " -"following test would pass, even though it puts the ``^`` marker in the wrong " -"location::" -msgstr "" -"Comme les lignes dénotant la position de l'erreur précèdent le type et le " -"détail de l'exception, elles ne sont pas vérifiées par *doctest*. Par " -"exemple, le test suivant réussira, même si le marqueur ``^`` n'est pas à la " -"bonne place ::" - -#: library/doctest.rst:574 -msgid "Option Flags" -msgstr "Options de ligne de commande" - -#: library/doctest.rst:576 -msgid "" -"A number of option flags control various aspects of doctest's behavior. " -"Symbolic names for the flags are supplied as module constants, which can " -"be :ref:`bitwise ORed ` together and passed to various functions. " -"The names can also be used in :ref:`doctest directives `, and may be passed to the doctest command line interface via " -"the ``-o`` option." -msgstr "" -"Un ensemble d'options de ligne de commande contrôle différents aspects du " -"comportement de *doctest*. Pour les options, des noms symboliques sont " -"fournis comme des constantes de module, qui peuvent être composés par un OU " -"bit à bit (:ref:`bitwise ORed `) et passés à diverses fonctions. " -"Les noms peuvent aussi être utilisés dans des :ref:`instructions doctest " -"`, et peuvent être passés à l'interface de ligne de " -"commande de *doctest* à l'aide de l'option ``-o``." - -#: library/doctest.rst:582 -msgid "" -"The first group of options define test semantics, controlling aspects of how " -"doctest decides whether actual output matches an example's expected output:" -msgstr "" -"Le premier groupe d'options définit les sémantiques de test, de façon à " -"contrôler comment *doctest* décide si la sortie obtenue correspond à la " -"sortie attendue de l'exemple :" - -#: library/doctest.rst:588 -msgid "" -"By default, if an expected output block contains just ``1``, an actual " -"output block containing just ``1`` or just ``True`` is considered to be a " -"match, and similarly for ``0`` versus ``False``. " -"When :const:`DONT_ACCEPT_TRUE_FOR_1` is specified, neither substitution is " -"allowed. The default behavior caters to that Python changed the return type " -"of many functions from integer to boolean; doctests expecting \"little " -"integer\" output still work in these cases. This option will probably go " -"away, but not for several years." -msgstr "" -"Par défaut, si un bloc de sortie attendu contient uniquement un ``1``, un " -"vrai bloc de sortie contenant uniquement un ``1`` ou un ``True`` sera " -"considéré comme étant une correspondance ; de façon similaire, nous avons " -"une correspondance pour ``0`` et ``False``. Lorsque " -"l'option :const:`DONT_ACCEPT_TRUE_FOR_1` est précisée, aucune de ces " -"substitutions n'est acceptée. Le comportement par défaut s'ajuste au fait " -"que Python a changé le type de renvoi de plusieurs fonctions, passant de " -"nombres entiers à des booléens ; les *doctests* s'attendant à une sortie de " -"« petit entier » (*little integer*) fonctionnent encore dans ces cas. Cette " -"option disparaîtra probablement, mais pas avant plusieurs années." - -#: library/doctest.rst:600 -msgid "" -"By default, if an expected output block contains a line containing only the " -"string ````, then that line will match a blank line in the actual " -"output. Because a genuinely blank line delimits the expected output, this " -"is the only way to communicate that a blank line is expected. " -"When :const:`DONT_ACCEPT_BLANKLINE` is specified, this substitution is not " -"allowed." -msgstr "" -"Par défaut, si un bloc de sortie attendue contient une ligne contenant " -"uniquement la chaîne de caractères ````, alors cette ligne sera " -"en correspondance avec une ligne vide dans la sortie réelle. Puisqu'une " -"véritable ligne vide permet de délimiter la sortie attendue, ceci est la " -"seule façon de communiquer qu'une ligne vide est souhaitée. Lorsque " -"l'option :const:`DONT_ACCEPT_BLANKLINE` est précisée, cette substitution " -"n'est pas permise." - -#: library/doctest.rst:609 -msgid "" -"When specified, all sequences of whitespace (blanks and newlines) are " -"treated as equal. Any sequence of whitespace within the expected output " -"will match any sequence of whitespace within the actual output. By default, " -"whitespace must match exactly. :const:`NORMALIZE_WHITESPACE` is especially " -"useful when a line of expected output is very long, and you want to wrap it " -"across multiple lines in your source." -msgstr "" -"Lorsque précisé, toutes les séquences de caractères d'espacement et de " -"caractères de saut de ligne sont traitées comme équivalentes. Toute séquence " -"de caractères d'espacement à l'intérieur de la sortie attendue correspondra " -"alors à toute séquence de caractères d'espacement à l'intérieur de la sortie " -"réelle. Par défaut, les caractères d'espacement doivent correspondre de " -"façon exacte. L'option :const:`NORMALIZE_WHITESPACE` est particulièrement " -"utile lorsqu'une ligne de sortie attendue est très longue, et que l'on " -"souhaite la répartir sur plusieurs lignes dans le fichier source." - -#: library/doctest.rst:620 -msgid "" -"When specified, an ellipsis marker (``...``) in the expected output can " -"match any substring in the actual output. This includes substrings that " -"span line boundaries, and empty substrings, so it's best to keep usage of " -"this simple. Complicated uses can lead to the same kinds of \"oops, it " -"matched too much!\" surprises that ``.*`` is prone to in regular expressions." -msgstr "" -"Lorsque précisé, un marqueur de points de suspension (``...``) dans la " -"sortie attendue peut correspondre à n'importe quelle partie de chaîne de " -"caractères dans la sortie réelle. Ceci inclut les parties qui traversent les " -"frontières de lignes, ainsi que les parties vides de chaînes de caractères ; " -"ainsi, il est préférable d'en faire une utilisation simple. Les usages " -"complexes mènent aux mêmes surprises du type \"oups, il y avait trop de " -"correspondances !\" que l'utilisation de ``.*`` dans les expressions " -"régulières." - -#: library/doctest.rst:629 -msgid "" -"When specified, doctests expecting exceptions pass so long as an exception " -"of the expected type is raised, even if the details (message and fully " -"qualified exception name) don't match." -msgstr "" - -#: library/doctest.rst:633 -msgid "" -"For example, an example expecting ``ValueError: 42`` will pass if the actual " -"exception raised is ``ValueError: 3*14``, but will fail if, say, " -"a :exc:`TypeError` is raised instead. It will also ignore any fully " -"qualified name included before the exception class, which can vary between " -"implementations and versions of Python and the code/libraries in use. Hence, " -"all three of these variations will work with the flag specified:" -msgstr "" - -#: library/doctest.rst:655 -msgid "" -"Note that :const:`ELLIPSIS` can also be used to ignore the details of the " -"exception message, but such a test may still fail based on whether the " -"module name is present or matches exactly." -msgstr "" - -#: library/doctest.rst:659 -msgid "" -":const:`IGNORE_EXCEPTION_DETAIL` now also ignores any information relating " -"to the module containing the exception under test." -msgstr "" -"Maintenant, :const:`IGNORE_EXCEPTION_DETAIL` permet aussi d'ignorer toute " -"information liée au module contenant l'exception qui est en train d'être " -"testée." - -#: library/doctest.rst:666 -msgid "" -"When specified, do not run the example at all. This can be useful in " -"contexts where doctest examples serve as both documentation and test cases, " -"and an example should be included for documentation purposes, but should not " -"be checked. E.g., the example's output might be random; or the example " -"might depend on resources which would be unavailable to the test driver." -msgstr "" -"Lorsque précisé, cesse complètement l'exécution de tous les exemples. Ceci " -"peut être utile dans des contextes où les exemples *doctest* sont à la fois " -"de la documentation et des cas de tests, et qu'un exemple doit être inclus " -"pour des raisons de documentation, mais ne devrait pas être vérifié. Par " -"exemple, la sortie de l'exemple doit être aléatoire ; ou encore, lorsque " -"l'exemple peut dépendre de ressources inatteignables pour l'exécuteur de " -"test." - -#: library/doctest.rst:672 -msgid "" -"The SKIP flag can also be used for temporarily \"commenting out\" examples." -msgstr "" -"L'option *SKIP* peut aussi être utilisée temporairement afin de commenter " -"des exemples et d'en empêcher l'exécution." - -#: library/doctest.rst:677 -msgid "A bitmask or'ing together all the comparison flags above." -msgstr "" -"Un masque binaire effectuant une composition avec OU de toutes les options " -"de comparaisons ci-dessus." - -#: library/doctest.rst:679 -msgid "The second group of options controls how test failures are reported:" -msgstr "" -"Le deuxième groupe d'options détermine comment les échecs de tests sont " -"signalés :" - -#: library/doctest.rst:684 -msgid "" -"When specified, failures that involve multi-line expected and actual outputs " -"are displayed using a unified diff." -msgstr "" -"Lorsque précisé, les défaillances qui font intervenir des sorties attendues " -"et réelles multi-lignes sont affichées dans une *diff* unifiée." - -#: library/doctest.rst:690 -msgid "" -"When specified, failures that involve multi-line expected and actual outputs " -"will be displayed using a context diff." -msgstr "" -"Lorsque précisé, les défaillances qui font intervenir des sorties attendues " -"et réelles multi-lignes sont affichées dans une *diff* de contexte." - -#: library/doctest.rst:696 -msgid "" -"When specified, differences are computed by ``difflib.Differ``, using the " -"same algorithm as the popular :file:`ndiff.py` utility. This is the only " -"method that marks differences within lines as well as across lines. For " -"example, if a line of expected output contains digit ``1`` where actual " -"output contains letter ``l``, a line is inserted with a caret marking the " -"mismatching column positions." -msgstr "" -"Lorsque précisé, les différences sont obtenues grâce à ``difflib.Differ``, " -"en utilisant le même algorithme que le populaire " -"utilitaire :file:`ndiff.py`. Ceci est la seule méthode qui puisse faire la " -"différence à l'intérieur des lignes ainsi que parmi les lignes prises " -"conjointement. Par exemple, si une ligne de sortie attendue contient le " -"chiffre ``1`` alors que la sortie réelle contient la lettre ``l``, une ligne " -"est insérée avec un marqueur caret démarquant les positions de colonnes où " -"il n'y a pas de correspondance." - -#: library/doctest.rst:705 -msgid "" -"When specified, display the first failing example in each doctest, but " -"suppress output for all remaining examples. This will prevent doctest from " -"reporting correct examples that break because of earlier failures; but it " -"might also hide incorrect examples that fail independently of the first " -"failure. When :const:`REPORT_ONLY_FIRST_FAILURE` is specified, the " -"remaining examples are still run, and still count towards the total number " -"of failures reported; only the output is suppressed." -msgstr "" -"Lorsque précisé, le premier exemple défaillant de chaque *doctest* est " -"affiché, mais la sortie est supprimée pour tous les autres exemples. Ceci " -"empêche *doctest* de rapporter les exemples adéquats qui échouent du fait " -"d'échecs précédents ; ceci peut aussi cacher des exemples inadéquats qui " -"échouent de façon indépendante au premier échec. " -"Lorsque :const:`REPORT_ONLY_FIRST_FAILURE` est précisé, les exemples " -"restants sont toujours exécutés, et sont toujours comptabilisés dans le " -"nombre total des lignes échouant ; seulement la sortie est omise." - -#: library/doctest.rst:716 -msgid "" -"When specified, exit after the first failing example and don't attempt to " -"run the remaining examples. Thus, the number of failures reported will be at " -"most 1. This flag may be useful during debugging, since examples after the " -"first failure won't even produce debugging output." -msgstr "" -"Lorsque précisé, mettre fin à l'exécution après le premier exemple " -"défaillant et ne pas essayer d'exécuter les exemples restants. Ainsi, le " -"nombre d'échecs rapporté sera au plus un (1). Cette option peut être utile " -"durant le débogage, étant donné que les exemples suivant le premier échec ne " -"produiront aucune sortie de débogage." - -#: library/doctest.rst:724 -msgid "A bitmask or'ing together all the reporting flags above." -msgstr "" -"Un masque binaire effectuant une composition avec le OU de toutes les " -"options de signalement ci-dessus." - -#: library/doctest.rst:727 -#, fuzzy -msgid "" -"There is also a way to register new option flag names, though this isn't " -"useful unless you intend to extend :mod:`!doctest` internals via subclassing:" -msgstr "" -"Il y a aussi une façon d'enregistrer des nouveaux noms d'option, quoique " -"ceci n'est pas utile sauf dans le cas où vous devez faire une extension pour " -"le code interne de :mod:`doctest` par le biais d'une sous-classe :" - -#: library/doctest.rst:733 -msgid "" -"Create a new option flag with a given name, and return the new flag's " -"integer value. :func:`register_optionflag` can be used when " -"subclassing :class:`OutputChecker` or :class:`DocTestRunner` to create new " -"options that are supported by your subclasses. :func:`register_optionflag` " -"should always be called using the following idiom::" -msgstr "" -"Crée une nouvelle option avec un nom donné, et renvoie la valeur en nombre " -"entier de la nouvelle option. La fonction :func:`register_optionflag` peut " -"être utilisée lors de la création de sous-classes à partir " -"de :class:`OutputChecker` ou :class:`DocTestRunner` pour créer de nouvelles " -"options qui sont supportées par vos sous-classes. La " -"fonction :func:`register_optionflag` devrait toujours être appelée par " -"l'expression suivante ::" - -#: library/doctest.rst:749 -msgid "Directives" -msgstr "Instructions" - -#: library/doctest.rst:751 -msgid "" -"Doctest directives may be used to modify the :ref:`option flags ` for an individual example. Doctest directives are special Python " -"comments following an example's source code:" -msgstr "" -"Les instructions *doctest* peuvent être utilisées afin de modifier " -"les :ref:`options ` pour un exemple individuel. Les " -"instructions *doctest* sont des commentaires Python spéciaux suivant le code " -"source d'un exemple :" - -#: library/doctest.rst:762 -msgid "" -"Whitespace is not allowed between the ``+`` or ``-`` and the directive " -"option name. The directive option name can be any of the option flag names " -"explained above." -msgstr "" -"Les caractères d'espacement ne sont pas permis entre les ``+`` ou les ``-`` " -"et le nom de l'option d'instruction. Le nom de l'option d'instruction peut " -"être n'importe lequel des noms d'options expliqués ci-dessus." - -#: library/doctest.rst:766 -msgid "" -"An example's doctest directives modify doctest's behavior for that single " -"example. Use ``+`` to enable the named behavior, or ``-`` to disable it." -msgstr "" -"Les instructions d'un exemple *doctest* modifient le comportement de " -"*doctest* et ce, seulement pour cet exemple. Utilisez ``+`` pour activer le " -"comportement nommé, ou ``-`` pour le désactiver." - -#: library/doctest.rst:769 -#, fuzzy -msgid "For example, this test passes:" -msgstr "Par exemple, ce test réussit :" - -#: library/doctest.rst:778 -#, fuzzy -msgid "" -"Without the directive it would fail, both because the actual output doesn't " -"have two blanks before the single-digit list elements, and because the " -"actual output is on a single line. This test also passes, and also requires " -"a directive to do so:" -msgstr "" -"Sans l'instruction, ce serait un échec, et ce, à la fois parce que la sortie " -"réelle n'a pas deux espaces vides avant les éléments de la liste formés d'un " -"seul chiffre, et aussi parce que la sortie réelle est contenue sur une seule " -"ligne. Ce test réussit aussi, et nécessite lui aussi une instruction pour ce " -"faire :" - -#: library/doctest.rst:789 -#, fuzzy -msgid "" -"Multiple directives can be used on a single physical line, separated by " -"commas:" -msgstr "" -"Plusieurs instructions sont utilisées sur une unique ligne physique, " -"séparées par des virgules :" - -#: library/doctest.rst:798 -#, fuzzy -msgid "" -"If multiple directive comments are used for a single example, then they are " -"combined:" -msgstr "" -"Si plusieurs commentaires d'instructions sont utilisés pour un exemple " -"unique, alors ils sont combinés :" - -#: library/doctest.rst:808 -#, fuzzy -msgid "" -"As the previous example shows, you can add ``...`` lines to your example " -"containing only directives. This can be useful when an example is too long " -"for a directive to comfortably fit on the same line:" -msgstr "" -"Comme l'exemple précédent le démontre, vous pouvez ajouter des lignes " -"contenant des points de suspension ``...`` à votre exemple ne contenant que " -"des instructions. Ceci peut être utile lorsqu'un exemple est trop long pour " -"qu'une instruction puisse être écrite sur la même ligne :" - -#: library/doctest.rst:819 -msgid "" -"Note that since all options are disabled by default, and directives apply " -"only to the example they appear in, enabling options (via ``+`` in a " -"directive) is usually the only meaningful choice. However, option flags can " -"also be passed to functions that run doctests, establishing different " -"defaults. In such cases, disabling an option via ``-`` in a directive can " -"be useful." -msgstr "" -"Prendre note que puisque toutes les options sont désactivées par défaut, et " -"comme les instructions s'appliquent uniquement aux exemples dans lesquelles " -"elles apparaissent, activer les options (par le biais de ``+`` dans une " -"instruction) est habituellement le seul choix ayant du sens. Toutefois, les " -"options peuvent aussi être passées aux fonctions qui exécutent les " -"*doctests*, définissant de nouvelles valeurs par défaut. Dans de tels cas, " -"désactiver une option par l'utilisation de ``-`` dans une instruction peut " -"être utile." - -#: library/doctest.rst:829 -msgid "Warnings" -msgstr "Avertissements" - -#: library/doctest.rst:831 -#, fuzzy -msgid "" -":mod:`!doctest` is serious about requiring exact matches in expected " -"output. If even a single character doesn't match, the test fails. This " -"will probably surprise you a few times, as you learn exactly what Python " -"does and doesn't guarantee about output. For example, when printing a set, " -"Python doesn't guarantee that the element is printed in any particular " -"order, so a test like ::" -msgstr "" -"Le module :mod:`doctest` est rigoureux pour ce qui est d'inclure des " -"correspondances exactes dans la sortie attendue. Si un seul caractère ne " -"correspond pas, le test échoue. Ceci vous surprendra probablement quelques " -"fois, alors que vous apprenez exactement ce que Python garantit et ne " -"garantit pas pour qui est des sorties. Par exemple, lorsqu'on affiche un " -"ensemble (set), Python ne garantit pas que les éléments sont affichés dans " -"un ordre particulier ; ainsi un test tel que ::" - -#: library/doctest.rst:840 -msgid "is vulnerable! One workaround is to do ::" -msgstr "est vulnérable ! Une alternative est de faire ::" - -#: library/doctest.rst:845 -msgid "instead. Another is to do ::" -msgstr "à la place. Une autre façon de faire est ::" - -#: library/doctest.rst:851 -msgid "There are others, but you get the idea." -msgstr "Il y en a d'autres, mais vous saisissez l'idée." - -#: library/doctest.rst:853 -#, fuzzy -msgid "Another bad idea is to print things that embed an object address, like" -msgstr "" -"Une autre mauvaise idée est d'afficher des choses intégrant l'adresse d'un " -"objet, comme ceci ::" - -#: library/doctest.rst:863 -#, fuzzy -msgid "" -"The :const:`ELLIPSIS` directive gives a nice approach for the last example:" -msgstr "" -"L'instruction :const:`ELLIPSIS` donne une approche sympathique pour le " -"dernier exemple :" - -#: library/doctest.rst:871 -#, fuzzy -msgid "" -"Floating-point numbers are also subject to small output variations across " -"platforms, because Python defers to the platform C library for some floating-" -"point calculations, and C libraries vary widely in quality here. ::" -msgstr "" -"Les nombres à virgule flottante sont aussi sujets à de petites variations à " -"la sortie, tout dépendamment de la plateforme utilisée, étant donné que " -"Python s'en remet à la bibliothèque de la plateforme C pour la mise-en-forme " -"des *floats*, et les bibliothèques C varient grandement pour ce qui de leur " -"qualité sur ce point. ::" - -#: library/doctest.rst:882 -#, fuzzy -msgid "" -"Numbers of the form ``I/2.**J`` are safe across all platforms, and I often " -"contrive doctest examples to produce numbers of that form::" -msgstr "" -"Les nombres ayant la forme ``I/2.**J`` sont sécuritaires pour toutes les " -"plateformes, et je restreins souvent les exemples *doctest* à produire des " -"nombres ayant cette forme ::" - -#: library/doctest.rst:888 -msgid "" -"Simple fractions are also easier for people to understand, and that makes " -"for better documentation." -msgstr "" -"Les fractions simples sont aussi plus faciles à comprendre, et cela fait une " -"meilleure documentation." - -#: library/doctest.rst:895 -msgid "Basic API" -msgstr "API de base" - -#: library/doctest.rst:897 -msgid "" -"The functions :func:`testmod` and :func:`testfile` provide a simple " -"interface to doctest that should be sufficient for most basic uses. For a " -"less formal introduction to these two functions, see sections :ref:`doctest-" -"simple-testmod` and :ref:`doctest-simple-testfile`." -msgstr "" -"Les fonctions :func:`testmod` et :func:`testfile` fournissent une interface " -"simple pour *doctest* qui est suffisante pour les cas d'usage les plus " -"élémentaires. Pour une introduction moins formelle à ces deux fonctions, " -"voir les sections :ref:`doctest-simple-testmod` et :ref:`doctest-simple-" -"testfile`." - -#: library/doctest.rst:905 -msgid "" -"All arguments except *filename* are optional, and should be specified in " -"keyword form." -msgstr "" -"Tous les arguments sauf *filename* sont optionnels, et doivent être précisés " -"sous forme lettrée." - -#: library/doctest.rst:908 -msgid "" -"Test examples in the file named *filename*. Return ``(failure_count, " -"test_count)``." -msgstr "" -"Teste les exemples dans le fichier nommé *filename*. Renvoie " -"``(failure_count, test_count)``." - -#: library/doctest.rst:911 -msgid "" -"Optional argument *module_relative* specifies how the filename should be " -"interpreted:" -msgstr "" -"L'argument optionnel *module_relative* précise comment le nom de fichier " -"doit être interprété :" - -#: library/doctest.rst:914 -msgid "" -"If *module_relative* is ``True`` (the default), then *filename* specifies an " -"OS-independent module-relative path. By default, this path is relative to " -"the calling module's directory; but if the *package* argument is specified, " -"then it is relative to that package. To ensure OS-independence, *filename* " -"should use ``/`` characters to separate path segments, and may not be an " -"absolute path (i.e., it may not begin with ``/``)." -msgstr "" -"Si *module_relative* prend la valeur ``True`` (la valeur par défaut), alors " -"*filename* précise un chemin relatif au module qui soit indépendant du " -"système d'exploitation (*OS*). Par défaut, ce chemin est relatif au " -"répertoire du module appelant ; mais si l'argument *package* est précisé, " -"alors il est relatif à ce paquet. Pour garantir l'indépendance quant au " -"système d'exploitation, *filename* doit utiliser des caractères ``/`` pour " -"séparer chaque segment de chemin, et ne peut pas être un chemin absolu " -"(c'est-à-dire qu'il ne peut pas commencer par ``/``)." - -#: library/doctest.rst:921 -msgid "" -"If *module_relative* is ``False``, then *filename* specifies an OS-specific " -"path. The path may be absolute or relative; relative paths are resolved " -"with respect to the current working directory." -msgstr "" -"Si *module_relative* prend la valeur ``False``, alors *filename* précise un " -"chemin en fonction du système d'exploitation. Le chemin peut être absolu ou " -"relatif ; les chemins relatifs sont résolus en rapport au répertoire actif." - -#: library/doctest.rst:925 -msgid "" -"Optional argument *name* gives the name of the test; by default, or if " -"``None``, ``os.path.basename(filename)`` is used." -msgstr "" -"L'option *name* désigne le nom du test ; par défaut, ou si ``None`` est " -"passé en argument, ``os.path.basename(filename)`` est utilisé." - -#: library/doctest.rst:928 -msgid "" -"Optional argument *package* is a Python package or the name of a Python " -"package whose directory should be used as the base directory for a module-" -"relative filename. If no package is specified, then the calling module's " -"directory is used as the base directory for module-relative filenames. It " -"is an error to specify *package* if *module_relative* is ``False``." -msgstr "" -"L'option *package* est un paquet Python ou le nom d'un paquet Python dont le " -"répertoire doit être utilisé comme le répertoire principal pour un nom de " -"fichier lié à un module. Si aucun paquet n'est spécifié, le répertoire du " -"module appelé à l'exécution est utilisé comme le répertoire principal pour " -"les noms de fichiers liés au module. C'est une erreur que de spécifier " -"*package* si *module_relative* a ``False`` comme valeur." - -#: library/doctest.rst:934 -msgid "" -"Optional argument *globs* gives a dict to be used as the globals when " -"executing examples. A new shallow copy of this dict is created for the " -"doctest, so its examples start with a clean slate. By default, or if " -"``None``, a new empty dict is used." -msgstr "" -"L'option *globs* spécifie un *dict* à utiliser comme *globals* lorsque des " -"exemples sont exécutés. Une copie superficielle de ce *dict* est créée pour " -"le *doctest* ; ainsi, ces exemples commencent avec un état vide. Par défaut, " -"ou si ``None`` est passé en argument, un nouveau *dict* vide est utilisé." - -#: library/doctest.rst:939 -msgid "" -"Optional argument *extraglobs* gives a dict merged into the globals used to " -"execute examples. This works like :meth:`dict.update`: if *globs* and " -"*extraglobs* have a common key, the associated value in *extraglobs* appears " -"in the combined dict. By default, or if ``None``, no extra globals are " -"used. This is an advanced feature that allows parameterization of " -"doctests. For example, a doctest can be written for a base class, using a " -"generic name for the class, then reused to test any number of subclasses by " -"passing an *extraglobs* dict mapping the generic name to the subclass to be " -"tested." -msgstr "" -"L'option *extraglobs* spécifie un *dict* intégré dans les variables globales " -"utilisées pour exécuter l'exemple. Ceci fonctionne " -"comme :meth:`dict.update` : si *globs* et *extraglobs* ont une clé commune, " -"la valeur associée à *extraglobs* apparaît dans le *dict* combiné. Par " -"défaut, ou si ``None`` est passé en argument, aucune variable globale " -"supplémentaire est utilisée. Ceci est une fonctionnalité avancée qui permet " -"la configuration des *doctests*. Par exemple, un *doctest* peut être rédigé " -"pour une classe de base, en utilisant un nom générique pour la classe, puis " -"réutilisé afin de tester un nombre indéfini de sous-classes en passant un " -"*dict* *extraglobs* reliant le nom générique à la sous-classe qui doit être " -"testée." - -#: library/doctest.rst:948 -#, fuzzy -msgid "" -"Optional argument *verbose* prints lots of stuff if true, and prints only " -"failures if false; by default, or if ``None``, it's true if and only if ``'-" -"v'`` is in :data:`sys.argv`." -msgstr "" -"L'option *verbose* affiche une grande quantité d'information si elle est " -"vraie, et affiche uniquement les défaillances si elle est fausse ; par " -"défaut, ou si ``None``, celle-ci est vraie si et seulement si ``-v`` est " -"présent dans ``sys.argv``." - -#: library/doctest.rst:952 -msgid "" -"Optional argument *report* prints a summary at the end when true, else " -"prints nothing at the end. In verbose mode, the summary is detailed, else " -"the summary is very brief (in fact, empty if all tests passed)." -msgstr "" -"L'option *report* affiche un résumé à la fin lorsque vraie ; sinon, rien " -"n'est affiché à la fin. En mode *verbose*, le résumé est détaillé, sinon le " -"résumé est très bref (en fait, vide si tous les tests ont réussi)." - -#: library/doctest.rst:956 -#, fuzzy -msgid "" -"Optional argument *optionflags* (default value ``0``) takes " -"the :ref:`bitwise OR ` of option flags. See section :ref:`doctest-" -"options`." -msgstr "" -"L'option *optionflags* (dont la valeur par défaut est de zéro) calcule la " -"valeur :ref:`bitwise OR ` des options de ligne de commande. Voir la " -"section :ref:`doctest-options`." - -#: library/doctest.rst:960 -msgid "" -"Optional argument *raise_on_error* defaults to false. If true, an exception " -"is raised upon the first failure or unexpected exception in an example. " -"This allows failures to be post-mortem debugged. Default behavior is to " -"continue running examples." -msgstr "" -"L'option *raise_on_error* est fausse par défaut. Si elle est vraie, une " -"exception est levée à la première défaillance ou à la première exception qui " -"ne soit prévue dans l'exemple. Ceci permet aux défaillances d'être analysées " -"lors d'un post-mortem. Le comportement par défaut est de poursuivre " -"l'exécution des exemples." - -#: library/doctest.rst:1111 -msgid "" -"Optional argument *parser* specifies a :class:`DocTestParser` (or subclass) " -"that should be used to extract tests from the files. It defaults to a " -"normal parser (i.e., ``DocTestParser()``)." -msgstr "" -"L'option *parser* définit une classe ou une sous-" -"classe :class:`DocTestParser` qui doit être utilisée pour extraire les tests " -"des fichiers. Par défaut, on utilise un analyseur normal (c'est-à-dire, " -"``DocTestParser()``)." - -#: library/doctest.rst:1115 -msgid "" -"Optional argument *encoding* specifies an encoding that should be used to " -"convert the file to unicode." -msgstr "" -"L'option *encoding* définit un encodage à utiliser pour convertir le fichier " -"en format *unicode*." - -#: library/doctest.rst:975 -msgid "" -"All arguments are optional, and all except for *m* should be specified in " -"keyword form." -msgstr "" -"Toutes les options sont facultatives, et toutes sauf *m* doivent être " -"définies en format lettré." - -#: library/doctest.rst:978 -msgid "" -"Test examples in docstrings in functions and classes reachable from module " -"*m* (or module :mod:`__main__` if *m* is not supplied or is ``None``), " -"starting with ``m.__doc__``." -msgstr "" -"Ceci teste les exemples en *docstrings* dans les fonctions et les classes " -"accessibles depuis le module *m* (ou depuis le module :mod:`__main__` si *m* " -"n'a pas été défini ou est ``None``), en commençant par ``m.__doc__``." - -#: library/doctest.rst:982 -#, fuzzy -msgid "" -"Also test examples reachable from dict ``m.__test__``, if it exists. " -"``m.__test__`` maps names (strings) to functions, classes and strings; " -"function and class docstrings are searched for examples; strings are " -"searched directly, as if they were docstrings." -msgstr "" -"Ceci teste aussi les exemples accessibles depuis le *dict* ``m.__test__``, " -"si et seulement s'il existe et qu'il n'est pas ``None``. Le *dict* " -"``m.__test__`` associe des noms (chaînes de caractères) à des fonctions, des " -"classes et des chaînes de caractères ; les *docstrings* de fonctions et de " -"classes sont fouillées pour des exemples ; les chaînes de caractères sont " -"fouillées directement, comme si elles étaient des *docstrings*." - -#: library/doctest.rst:987 -msgid "" -"Only docstrings attached to objects belonging to module *m* are searched." -msgstr "" -"Seulement les *docstrings* attribuées à des objets appartenant au module *m* " -"sont fouillées." - -#: library/doctest.rst:989 -msgid "Return ``(failure_count, test_count)``." -msgstr "Renvoie ``(failure_count, test_count)``." - -#: library/doctest.rst:991 -msgid "" -"Optional argument *name* gives the name of the module; by default, or if " -"``None``, ``m.__name__`` is used." -msgstr "" -"L'option *name* donne le nom du module ; par défaut, ou si ``None``, " -"``m.__name__`` est utilisé." - -#: library/doctest.rst:994 -#, fuzzy -msgid "" -"Optional argument *exclude_empty* defaults to false. If true, objects for " -"which no doctests are found are excluded from consideration. The default is " -"a backward compatibility hack, so that code still " -"using :meth:`doctest.master.summarize ` in " -"conjunction with :func:`testmod` continues to get output for objects with no " -"tests. The *exclude_empty* argument to the newer :class:`DocTestFinder` " -"constructor defaults to true." -msgstr "" -"L'option *exclude_empty* prend la valeur faux par défaut. Si la valeur est " -"vraie, les objets pour lesquels aucun *doctest* n'est trouvé ne sont pas " -"pris en compte. Le défaut est un bricolage permettant la compatibilité à " -"rebours, de façon à ce que le code qui utilise " -"toujours :meth:`doctest.master.summarize` en conjonction " -"avec :func:`testmod` puisse continuer d'obtenir des sorties pour les objets " -"n'ayant aucun test. L'option *exclude_empty* dans le constructeur de la " -"classe plus récente :class:`DocTestFinder` prend vrai comme valeur par " -"défaut." - -#: library/doctest.rst:1002 -msgid "" -"Optional arguments *extraglobs*, *verbose*, *report*, *optionflags*, " -"*raise_on_error*, and *globs* are the same as for function :func:`testfile` " -"above, except that *globs* defaults to ``m.__dict__``." -msgstr "" -"Les options *extraglobs*, *verbose*, *report*, *optionflags*, " -"*raise_on_error*, et *globs* sont les mêmes que pour la " -"fonction :func:`testfile` ci-dessus, sauf pour *globs*, qui est " -"``m.__dict__`` par défaut." - -#: library/doctest.rst:1009 -msgid "" -"Test examples associated with object *f*; for example, *f* may be a string, " -"a module, a function, or a class object." -msgstr "" -"Les exemples de test associés à l'objet *f* ; par exemple, *f* peut être une " -"chaîne de caractères, un module, une fonction, ou un objet de classe." - -#: library/doctest.rst:1012 -msgid "" -"A shallow copy of dictionary argument *globs* is used for the execution " -"context." -msgstr "" -"Une copie superficielle de l'argument-dictionnaire *globs* est utilisée pour " -"le contexte d'exécution." - -#: library/doctest.rst:1014 -msgid "" -"Optional argument *name* is used in failure messages, and defaults to " -"``\"NoName\"``." -msgstr "" -"L'option *name* est utilisée pour les messages d'échec, et prend " -"``\"NoName\"`` comme valeur par défaut." - -#: library/doctest.rst:1017 -msgid "" -"If optional argument *verbose* is true, output is generated even if there " -"are no failures. By default, output is generated only in case of an example " -"failure." -msgstr "" -"Si l'option *verbose* est vraie, les sorties sont générées même s'il n'y a " -"aucun échec. Par défaut, la sortie est générée seulement si un exemple " -"échoue." - -#: library/doctest.rst:1020 -msgid "" -"Optional argument *compileflags* gives the set of flags that should be used " -"by the Python compiler when running the examples. By default, or if " -"``None``, flags are deduced corresponding to the set of future features " -"found in *globs*." -msgstr "" -"L'option *compileflags* donne l'ensemble des options qui doit être utilisée " -"par le compilateur Python lorsqu'il exécute les exemples. Par défaut, ou si " -"``None``, les options sont inférées à partir de l'ensemble des " -"fonctionnalités futures trouvées dans *globs*." - -#: library/doctest.rst:1024 -msgid "" -"Optional argument *optionflags* works as for function :func:`testfile` above." -msgstr "" -"L'option *optionflags* fonctionne similairement à la " -"fonction :func:`testfile` ci-dessus." - -#: library/doctest.rst:1030 -msgid "Unittest API" -msgstr "API de tests unitaires" - -#: library/doctest.rst:1032 -#, fuzzy -msgid "" -"As your collection of doctest'ed modules grows, you'll want a way to run all " -"their doctests systematically. :mod:`!doctest` provides two functions that " -"can be used to create :mod:`unittest` test suites from modules and text " -"files containing doctests. To integrate with :mod:`unittest` test " -"discovery, include a :ref:`load_tests ` function in " -"your test module::" -msgstr "" -"Au fur et à mesure que la collection de modules testés avec *doctest* " -"s'agrandira, vous allez souhaiter avoir une façon d'exécuter " -"systématiquement tous les *doctests*. Le module :mod:`doctest` fournit deux " -"fonctions qui peuvent être utilisées afin de créer des suites de tests " -"unitaires :mod:`unittest` à partir des modules et des fichiers textes " -"contenant des *doctests*. Afin d'intégrer la découverte fournie " -"par :mod:`unittest`, il suffit d'ajouter une fonction :func:`load_tests` " -"dans votre module de test ::" - -#: library/doctest.rst:1046 -msgid "" -"There are two main functions for creating :class:`unittest.TestSuite` " -"instances from text files and modules with doctests:" -msgstr "" -"Il y a deux fonctions principales pour créer des instances de la " -"classe :class:`unittest.TestSuite` à partir de fichiers textes et de modules " -"ayant des *doctests* :" - -#: library/doctest.rst:1052 -msgid "" -"Convert doctest tests from one or more text files to " -"a :class:`unittest.TestSuite`." -msgstr "" -"Convertit des tests *doctest* à partir d'un ou plusieurs fichiers vers une " -"classe :class:`unittest.TestSuite`." - -#: library/doctest.rst:1055 -#, fuzzy -msgid "" -"The returned :class:`unittest.TestSuite` is to be run by the unittest " -"framework and runs the interactive examples in each file. Each file is run " -"as a separate unit test, and each example in a file is run as " -"a :ref:`subtest `. If any example in a file fails, then the " -"synthesized unit test fails. The traceback for failure or error contains the " -"name of the file containing the test and a (sometimes approximate) line " -"number. If all the examples in a file are skipped, then the synthesized unit " -"test is also marked as skipped." -msgstr "" -"La classe renvoyée :class:`unittest.TestSuite` doit être exécutée dans le " -"cadriciel de tests unitaires et exécute les exemples interactifs trouvés " -"dans chaque fichier. Si un exemple de n'importe quel fichier échoue, alors " -"le test unitaire de synthèse échoue aussi, et une " -"exception :exc:`failureException` est levée, affichant le nom du fichier " -"contenant le test et un numéro de ligne (celui-ci est parfois approximatif)." - -#: library/doctest.rst:1065 -msgid "Pass one or more paths (as strings) to text files to be examined." -msgstr "" -"Passe un ou plusieurs chemins (sous forme de chaînes de caractères) à des " -"fichiers textes afin d'être vérifiés." - -#: library/doctest.rst:1067 -msgid "Options may be provided as keyword arguments:" -msgstr "Les options peuvent être fournies comme des options lettrées :" - -#: library/doctest.rst:1069 -msgid "" -"Optional argument *module_relative* specifies how the filenames in *paths* " -"should be interpreted:" -msgstr "" -"L'option *module_relative* précise comment les noms de fichiers dans *paths* " -"doivent être interprétés :" - -#: library/doctest.rst:1072 -msgid "" -"If *module_relative* is ``True`` (the default), then each filename in " -"*paths* specifies an OS-independent module-relative path. By default, this " -"path is relative to the calling module's directory; but if the *package* " -"argument is specified, then it is relative to that package. To ensure OS-" -"independence, each filename should use ``/`` characters to separate path " -"segments, and may not be an absolute path (i.e., it may not begin with ``/" -"``)." -msgstr "" -"Si *module_relative* a ``True`` comme valeur (valeur par défaut), alors " -"chaque nom de fichier dans *paths* précise un chemin relatif au module qui " -"soit indépendant du système d'exploitation. Par défaut, ce chemin est " -"relatif au répertoire du module appelant ; mais si l'option *package* est " -"précisée, alors il est relatif à ce paquet. Afin de garantir l'indépendance " -"face au système d'exploitation, chaque nom de fichier doit utiliser des " -"caractères ``/`` afin de séparer les segments de chemin, et ne peut pas être " -"un chemin absolu (c'est-à-dire, il ne peut pas commencer par ``/``)." - -#: library/doctest.rst:1080 -msgid "" -"If *module_relative* is ``False``, then each filename in *paths* specifies " -"an OS-specific path. The path may be absolute or relative; relative paths " -"are resolved with respect to the current working directory." -msgstr "" -"Si *module_relative* prend la valeur ``False``, alors *filename* précise un " -"chemin en fonction du système d'exploitation. Le chemin peut être absolu ou " -"relatif ; les chemins relatifs sont résolus en rapport au répertoire actif." - -#: library/doctest.rst:1084 -msgid "" -"Optional argument *package* is a Python package or the name of a Python " -"package whose directory should be used as the base directory for module-" -"relative filenames in *paths*. If no package is specified, then the calling " -"module's directory is used as the base directory for module-relative " -"filenames. It is an error to specify *package* if *module_relative* is " -"``False``." -msgstr "" -"L'option *package* est un paquet Python ou le nom d'un paquet Python dont le " -"répertoire dont être utilisé comme le répertoire principal pour un nom de " -"fichier dans *paths* qui soit lié à un module. Si aucun paquet n'est " -"spécifié, le répertoire du module appelé à l'exécution est utilisé comme le " -"répertoire principal pour les noms de fichiers liés au module. C'est une " -"erreur que de spécifier *package* si *module_relative* a ``False`` comme " -"valeur." - -#: library/doctest.rst:1091 -#, fuzzy -msgid "" -"Optional argument *setUp* specifies a set-up function for the test suite. " -"This is called before running the tests in each file. The *setUp* function " -"will be passed a :class:`DocTest` object. The *setUp* function can access " -"the test globals as the :attr:`~DocTest.globs` attribute of the test passed." -msgstr "" -"L'option *setUp* précise une fonction de mise-en-place pour la suite de " -"tests. Ceci est appelé avant l'exécution des tests dans chaque fichier. La " -"fonction *setUp* est passée à un objet :class:`DocTest`. La fonction *setUp* " -"peut accéder aux valeurs globales du test par le biais de l'attribut *globs* " -"du test passé." - -#: library/doctest.rst:1096 -#, fuzzy -msgid "" -"Optional argument *tearDown* specifies a tear-down function for the test " -"suite. This is called after running the tests in each file. The *tearDown* " -"function will be passed a :class:`DocTest` object. The *tearDown* function " -"can access the test globals as the :attr:`~DocTest.globs` attribute of the " -"test passed." -msgstr "" -"L'option *tearDown* précise une fonction de démolition pour la suite de " -"tests. Celle-ci est appelée après avoir exécuté les tests dans chaque " -"fichier. La fonction *tearDown* est passée à un objet :class:`DocTest`. La " -"fonction *setUp* peut accéder aux valeurs globales du test par l'attribut " -"*globs* du test passé." - -#: library/doctest.rst:1102 -msgid "" -"Optional argument *globs* is a dictionary containing the initial global " -"variables for the tests. A new copy of this dictionary is created for each " -"test. By default, *globs* is a new empty dictionary." -msgstr "" -"L'option *globs* est un dictionnaire contenant les variables globales " -"initiales pour les tests. Une nouvelle copie de ce dictionnaire est créée " -"pour chaque test. Par défaut, *globs* est un nouveau dictionnaire vide." - -#: library/doctest.rst:1106 -msgid "" -"Optional argument *optionflags* specifies the default doctest options for " -"the tests, created by or-ing together individual option flags. See " -"section :ref:`doctest-options`. See " -"function :func:`set_unittest_reportflags` below for a better way to set " -"reporting options." -msgstr "" -"Les options *optionflags* précisent les options par défaut de *doctest* pour " -"les tests, créées en composant par un OU les différentes options " -"individuelles. Voir la section :ref:`doctest-options`. Voir la " -"fonction :func:`set_unittest_reportflags` ci-dessous pour une meilleure " -"façon de préciser des options de rapport." - -#: library/doctest.rst:1118 -msgid "" -"The global ``__file__`` is added to the globals provided to doctests loaded " -"from a text file using :func:`DocFileSuite`." -msgstr "" -"La valeur globale ``__file__`` est ajoutée aux valeurs globales fournies par " -"les *doctests*, ceux-ci étant téléchargés d'un fichier texte utilisant la " -"fonction :func:`DocFileSuite`." - -#: library/doctest.rst:1162 -msgid "Run each example as a :ref:`subtest `." -msgstr "" - -#: library/doctest.rst:1127 -msgid "Convert doctest tests for a module to a :class:`unittest.TestSuite`." -msgstr "" -"Convertit les tests *doctest* pour un module donné à une " -"classe :class:`unittest.TestSuite`." - -#: library/doctest.rst:1129 -#, fuzzy -msgid "" -"The returned :class:`unittest.TestSuite` is to be run by the unittest " -"framework and runs each doctest in the module. Each docstring is run as a " -"separate unit test, and each example in a docstring is run as " -"a :ref:`subtest `. If any of the doctests fail, then the " -"synthesized unit test fails. The traceback for failure or error contains the " -"name of the file containing the test and a (sometimes approximate) line " -"number. If all the examples in a docstring are skipped, then the synthesized " -"unit test is also marked as skipped." -msgstr "" -"La classe renvoyée :class:`unittest.TestSuite` doit être exécutée par le " -"cadriciel de test unitaire, afin d'exécuter chaque *doctest* dans le module. " -"Si n'importe lequel des *doctests* échoue, alors le test unitaire de " -"synthèse échoue, et une exception :exc:`failureException` est levée, " -"affichant le nom du fichier contenant le test et un numéro de ligne pouvant " -"être approximatif." - -#: library/doctest.rst:1139 -msgid "" -"Optional argument *module* provides the module to be tested. It can be a " -"module object or a (possibly dotted) module name. If not specified, the " -"module calling this function is used." -msgstr "" -"L'option *module* fournit le module qui sera testé. Il peut prendre la forme " -"d'un objet-module ou celle du nom d'un module (possiblement *dotted*). Si " -"non-précisée, le module appelant cette fonction est utilisé." - -#: library/doctest.rst:1143 -#, fuzzy -msgid "" -"Optional argument *globs* is a dictionary containing the initial global " -"variables for the tests. A new copy of this dictionary is created for each " -"test. By default, *globs* is the module's :attr:`~module.__dict__`." -msgstr "" -"L'option *globs* est un dictionnaire contenant les variables globales " -"initiales pour les tests. Une nouvelle copie de ce dictionnaire est créée " -"pour chaque test. Par défaut, *globs* est un nouveau dictionnaire vide." - -#: library/doctest.rst:1147 -msgid "" -"Optional argument *extraglobs* specifies an extra set of global variables, " -"which is merged into *globs*. By default, no extra globals are used." -msgstr "" -"L'option *extraglobs* précise un ensemble supplémentaire de variables " -"globales, à fusionner avec *globs*. Par défaut, aucune variable globale " -"supplémentaire est utilisée." - -#: library/doctest.rst:1150 -msgid "" -"Optional argument *test_finder* is the :class:`DocTestFinder` object (or a " -"drop-in replacement) that is used to extract doctests from the module." -msgstr "" -"L'option *test_finder* est l'instance de :class:`DocTestFinder` (ou un " -"remplacement *drop-in*) qui est utilisée pour extraire les *doctests* à " -"partir du module." - -#: library/doctest.rst:1153 -#, fuzzy -msgid "" -"Optional arguments *setUp*, *tearDown*, and *optionflags* are the same as " -"for function :func:`DocFileSuite` above, but they are called for each " -"docstring." -msgstr "" -"Les options *setUp*, *tearDown* et *optionflags* sont les mêmes que pour la " -"fonction :func:`DocFileSuite` ci-dessus." - -#: library/doctest.rst:1156 -msgid "This function uses the same search technique as :func:`testmod`." -msgstr "" -"Cette fonction utilise la même technique de recherche que :func:`testmod`." - -#: library/doctest.rst:1158 -msgid "" -":func:`DocTestSuite` returns an empty :class:`unittest.TestSuite` if " -"*module* contains no docstrings instead of raising :exc:`ValueError`." -msgstr "" -"La fonction :func:`DocTestSuite` renvoie une instance vide de la " -"classe :class:`unittest.TestSuite` si *module* ne contient aucune " -"*docstring*, et ce, au lieu de lever l'exception :exc:`ValueError`." - -#: library/doctest.rst:1165 -#, fuzzy -msgid "" -"Under the covers, :func:`DocTestSuite` creates a :class:`unittest.TestSuite` " -"out of :class:`!doctest.DocTestCase` instances, and :class:`!DocTestCase` is " -"a subclass of :class:`unittest.TestCase`. :class:`!DocTestCase` isn't " -"documented here (it's an internal detail), but studying its code can answer " -"questions about the exact details of :mod:`unittest` integration." -msgstr "" -"Sous le capot, :func:`DocTestSuite` crée une " -"classe :class:`unittest.TestSuite` à partir d'instances " -"de :class:`doctest.DocTestCase` ; de plus, :class:`DocTestCase` est une sous-" -"classe de :class:`unittest.TestCase`. La classe :class:`DocTestCase` n'est " -"pas documentée ici (c'est un détail interne), mais l'étude de son code peut " -"répondre à des questions concernant les détails exacts de l'intégration du " -"module :mod:`doctest`." - -#: library/doctest.rst:1171 -#, fuzzy -msgid "" -"Similarly, :func:`DocFileSuite` creates a :class:`unittest.TestSuite` out " -"of :class:`!doctest.DocFileCase` instances, and :class:`!DocFileCase` is a " -"subclass of :class:`!DocTestCase`." -msgstr "" -"De la même façon, :func:`DocFileSuite` crée une " -"classe :class:`unittest.TestSuite` à partir des " -"instances :class:`doctest.DocFileCase`, où :class:`DocFileCase` est une sous-" -"classe de :class:`DocTestCase`." - -#: library/doctest.rst:1175 -#, fuzzy -msgid "" -"So both ways of creating a :class:`unittest.TestSuite` run instances " -"of :class:`!DocTestCase`. This is important for a subtle reason: when you " -"run :mod:`!doctest` functions yourself, you can control the :mod:`!doctest` " -"options in use directly, by passing option flags to :mod:`!doctest` " -"functions. However, if you're writing a :mod:`unittest` framework, :mod:`!" -"unittest` ultimately controls when and how tests get run. The framework " -"author typically wants to control :mod:`!doctest` reporting options " -"(perhaps, e.g., specified by command line options), but there's no way to " -"pass options through :mod:`!unittest` to :mod:`!doctest` test runners." -msgstr "" -"Ainsi, les deux façons de créer une :class:`unittest.TestSuite` utilisent " -"des instances de la classe :class:`DocTestCase`. Ceci est important pour une " -"raison subtile : lorsque vous exécutez par vous-même des " -"fonctions :mod:`doctest`, vous pouvez contrôler les options :mod:`doctest` " -"qui sont utilisées de façon directe, en passant des options aux " -"fonctions :mod:`doctest`. Toutefois, si vous écrivez un " -"cadriciel :mod:`unittest`, alors :mod:`unittest` a le contrôle final de " -"quand et de comment les tests sont exécutés. La personne qui écrit le " -"cadriciel souhaite habituellement contrôler les options de rapport " -"de :mod:`doctest` (qui sont peut-être, par exemple, spécifiées en options de " -"ligne de commande), sauf qu'il n'y a pas de moyen de spécifier des options à " -"l'attention des exécuteurs de test de :mod:`doctest` à partir " -"de :mod:`unittest`." - -#: library/doctest.rst:1185 -#, fuzzy -msgid "" -"For this reason, :mod:`!doctest` also supports a notion of :mod:`!doctest` " -"reporting flags specific to :mod:`unittest` support, via this function:" -msgstr "" -"Pour cette raison, :mod:`doctest` implémente le concept d'options de rapport " -"de :mod:`doctest` qui soit spécifique à :mod:`unittest`, par le biais de " -"cette fonction :" - -#: library/doctest.rst:1191 -#, fuzzy -msgid "Set the :mod:`!doctest` reporting flags to use." -msgstr "" -"Voir les options de ligne de commandes de :mod:`doctest` pour l'utilisation." - -#: library/doctest.rst:1193 -msgid "" -"Argument *flags* takes the :ref:`bitwise OR ` of option flags. See " -"section :ref:`doctest-options`. Only \"reporting flags\" can be used." -msgstr "" -"L'argument *flags* prend la :ref:`composition OU bit à bit ` des " -"arguments. Voir la section :ref:`doctest-options`. Ce sont uniquement les " -"\"options de rapport\" qui peuvent être utilisées." - -#: library/doctest.rst:1196 -#, fuzzy -msgid "" -"This is a module-global setting, and affects all future doctests run by " -"module :mod:`unittest`: the :meth:`!runTest` method of :class:`!" -"DocTestCase` looks at the option flags specified for the test case when " -"the :class:`!DocTestCase` instance was constructed. If no reporting flags " -"were specified (which is the typical and expected case), :mod:`!" -"doctest`'s :mod:`!unittest` reporting flags are :ref:`bitwise ORed " -"` into the option flags, and the option flags so augmented are " -"passed to the :class:`DocTestRunner` instance created to run the doctest. " -"If any reporting flags were specified when the :class:`!DocTestCase` " -"instance was constructed, :mod:`!doctest`'s :mod:`!unittest` reporting flags " -"are ignored." -msgstr "" -"Ceci est un paramètre au niveau global du module, et affecte tous les futurs " -"*doctests* exécutés par le module :mod:`unittest` : la " -"méthode :meth:`runTest` de :class:`DocTestCase` prend en compte les options " -"précisées pour le cas de test lorsque l'instance de la " -"classe :class:`DocTestCase` a été construite. Si aucune option de rapport " -"n'a été précisée (ce qui est le cas typique et attendu), les options de " -"rapport du module :mod:`unitest` de :mod:`doctest` sont :ref:`` vers les options, et les options obtenues sont passées à " -"l'instance de la classe :class:`DocTestRunner` créée pour exécuter le " -"*doctest*. Si une seule option de rapport a été précisée lorsque l'instance " -"de :class:`DocTestCase` a été construite, les options de rapport du " -"module :mod:`unittest` de :mod:`doctest` sont ignorées." - -#: library/doctest.rst:1207 -msgid "" -"The value of the :mod:`unittest` reporting flags in effect before the " -"function was called is returned by the function." -msgstr "" -"La valeur prise par les options de rapport de :mod:`unittest` et ce, avant " -"que la fonction n'ait été appelée, est renvoyée par la fonction." - -#: library/doctest.rst:1214 -msgid "Advanced API" -msgstr "API avancé" - -#: library/doctest.rst:1216 -msgid "" -"The basic API is a simple wrapper that's intended to make doctest easy to " -"use. It is fairly flexible, and should meet most users' needs; however, if " -"you require more fine-grained control over testing, or wish to extend " -"doctest's capabilities, then you should use the advanced API." -msgstr "" - -#: library/doctest.rst:1221 -msgid "" -"The advanced API revolves around two container classes, which are used to " -"store the interactive examples extracted from doctest cases:" -msgstr "" - -#: library/doctest.rst:1224 -msgid "" -":class:`Example`: A single Python :term:`statement`, paired with its " -"expected output." -msgstr "" -":class:`Example` : Un unique :term:`statement` Python, pris conjointement " -"avec sa sortie attendue." - -#: library/doctest.rst:1227 -msgid "" -":class:`DocTest`: A collection of :class:`Example`\\ s, typically extracted " -"from a single docstring or text file." -msgstr "" -":class:`DocTest` : Une collection de :class:`Example`, habituellement " -"extraits d'une seule *docstring* ou fichier texte." - -#: library/doctest.rst:1230 -msgid "" -"Additional processing classes are defined to find, parse, and run, and check " -"doctest examples:" -msgstr "" - -#: library/doctest.rst:1233 -msgid "" -":class:`DocTestFinder`: Finds all docstrings in a given module, and uses " -"a :class:`DocTestParser` to create a :class:`DocTest` from every docstring " -"that contains interactive examples." -msgstr "" - -#: library/doctest.rst:1237 -msgid "" -":class:`DocTestParser`: Creates a :class:`DocTest` object from a string " -"(such as an object's docstring)." -msgstr "" - -#: library/doctest.rst:1240 -msgid "" -":class:`DocTestRunner`: Executes the examples in a :class:`DocTest`, and " -"uses an :class:`OutputChecker` to verify their output." -msgstr "" - -#: library/doctest.rst:1243 -msgid "" -":class:`OutputChecker`: Compares the actual output from a doctest example " -"with the expected output, and decides whether they match." -msgstr "" - -#: library/doctest.rst:1246 -msgid "" -"The relationships among these processing classes are summarized in the " -"following diagram::" -msgstr "" - -#: library/doctest.rst:1262 -msgid "DocTest Objects" -msgstr "Objets *doctest*" - -#: library/doctest.rst:1267 -msgid "" -"A collection of doctest examples that should be run in a single namespace. " -"The constructor arguments are used to initialize the attributes of the same " -"names." -msgstr "" - -#: library/doctest.rst:1271 -msgid "" -":class:`DocTest` defines the following attributes. They are initialized by " -"the constructor, and should not be modified directly." -msgstr "" -":class:`DocTest` définit les attributs suivants. Ils sont initialisés par le " -"constructeur, et ne doivent pas être modifiés directement." - -#: library/doctest.rst:1277 -msgid "" -"A list of :class:`Example` objects encoding the individual interactive " -"Python examples that should be run by this test." -msgstr "" - -#: library/doctest.rst:1283 -msgid "" -"The namespace (aka globals) that the examples should be run in. This is a " -"dictionary mapping names to values. Any changes to the namespace made by " -"the examples (such as binding new variables) will be reflected " -"in :attr:`globs` after the test is run." -msgstr "" - -#: library/doctest.rst:1291 -msgid "" -"A string name identifying the :class:`DocTest`. Typically, this is the name " -"of the object or file that the test was extracted from." -msgstr "" - -#: library/doctest.rst:1297 -msgid "" -"The name of the file that this :class:`DocTest` was extracted from; or " -"``None`` if the filename is unknown, or if the :class:`!DocTest` was not " -"extracted from a file." -msgstr "" - -#: library/doctest.rst:1304 -msgid "" -"The line number within :attr:`filename` where this :class:`DocTest` begins, " -"or ``None`` if the line number is unavailable. This line number is zero-" -"based with respect to the beginning of the file." -msgstr "" - -#: library/doctest.rst:1311 -msgid "" -"The string that the test was extracted from, or ``None`` if the string is " -"unavailable, or if the test was not extracted from a string." -msgstr "" - -#: library/doctest.rst:1318 -msgid "Example Objects" -msgstr "Exemples d'objets" - -#: library/doctest.rst:1323 -msgid "" -"A single interactive example, consisting of a Python statement and its " -"expected output. The constructor arguments are used to initialize the " -"attributes of the same names." -msgstr "" - -#: library/doctest.rst:1328 -msgid "" -":class:`Example` defines the following attributes. They are initialized by " -"the constructor, and should not be modified directly." -msgstr "" - -#: library/doctest.rst:1334 -msgid "" -"A string containing the example's source code. This source code consists of " -"a single Python statement, and always ends with a newline; the constructor " -"adds a newline when necessary." -msgstr "" - -#: library/doctest.rst:1341 -msgid "" -"The expected output from running the example's source code (either from " -"stdout, or a traceback in case of exception). :attr:`want` ends with a " -"newline unless no output is expected, in which case it's an empty string. " -"The constructor adds a newline when necessary." -msgstr "" - -#: library/doctest.rst:1349 -msgid "" -"The exception message generated by the example, if the example is expected " -"to generate an exception; or ``None`` if it is not expected to generate an " -"exception. This exception message is compared against the return value " -"of :func:`traceback.format_exception_only`. :attr:`exc_msg` ends with a " -"newline unless it's ``None``. The constructor adds a newline if needed." -msgstr "" - -#: library/doctest.rst:1358 -msgid "" -"The line number within the string containing this example where the example " -"begins. This line number is zero-based with respect to the beginning of the " -"containing string." -msgstr "" - -#: library/doctest.rst:1365 -msgid "" -"The example's indentation in the containing string, i.e., the number of " -"space characters that precede the example's first prompt." -msgstr "" - -#: library/doctest.rst:1371 -msgid "" -"A dictionary mapping from option flags to ``True`` or ``False``, which is " -"used to override default options for this example. Any option flags not " -"contained in this dictionary are left at their default value (as specified " -"by the :class:`DocTestRunner`'s :ref:`optionflags `). By " -"default, no options are set." -msgstr "" - -#: library/doctest.rst:1381 -msgid "DocTestFinder objects" -msgstr "Objets *DocTestFinder*" - -#: library/doctest.rst:1386 -msgid "" -"A processing class used to extract the :class:`DocTest`\\ s that are " -"relevant to a given object, from its docstring and the docstrings of its " -"contained objects. :class:`DocTest`\\ s can be extracted from modules, " -"classes, functions, methods, staticmethods, classmethods, and properties." -msgstr "" - -#: library/doctest.rst:1391 -msgid "" -"The optional argument *verbose* can be used to display the objects searched " -"by the finder. It defaults to ``False`` (no output)." -msgstr "" - -#: library/doctest.rst:1394 -msgid "" -"The optional argument *parser* specifies the :class:`DocTestParser` object " -"(or a drop-in replacement) that is used to extract doctests from docstrings." -msgstr "" - -#: library/doctest.rst:1397 -msgid "" -"If the optional argument *recurse* is false, then :meth:`DocTestFinder.find` " -"will only examine the given object, and not any contained objects." -msgstr "" - -#: library/doctest.rst:1400 -msgid "" -"If the optional argument *exclude_empty* is false, " -"then :meth:`DocTestFinder.find` will include tests for objects with empty " -"docstrings." -msgstr "" - -#: library/doctest.rst:1404 -msgid ":class:`DocTestFinder` defines the following method:" -msgstr "La classe :class:`DocTestFinder` définit la méthode suivante :" - -#: library/doctest.rst:1409 -msgid "" -"Return a list of the :class:`DocTest`\\ s that are defined by *obj*'s " -"docstring, or by any of its contained objects' docstrings." -msgstr "" - -#: library/doctest.rst:1412 -msgid "" -"The optional argument *name* specifies the object's name; this name will be " -"used to construct names for the returned :class:`DocTest`\\ s. If *name* is " -"not specified, then ``obj.__name__`` is used." -msgstr "" - -#: library/doctest.rst:1416 -msgid "" -"The optional parameter *module* is the module that contains the given " -"object. If the module is not specified or is ``None``, then the test finder " -"will attempt to automatically determine the correct module. The object's " -"module is used:" -msgstr "" - -#: library/doctest.rst:1420 -msgid "As a default namespace, if *globs* is not specified." -msgstr "" - -#: library/doctest.rst:1422 -msgid "" -"To prevent the DocTestFinder from extracting DocTests from objects that are " -"imported from other modules. (Contained objects with modules other than " -"*module* are ignored.)" -msgstr "" - -#: library/doctest.rst:1426 -msgid "To find the name of the file containing the object." -msgstr "Afin de trouver le nom du fichier contenant l'objet." - -#: library/doctest.rst:1428 -msgid "To help find the line number of the object within its file." -msgstr "" - -#: library/doctest.rst:1430 -msgid "" -"If *module* is ``False``, no attempt to find the module will be made. This " -"is obscure, of use mostly in testing doctest itself: if *module* is " -"``False``, or is ``None`` but cannot be found automatically, then all " -"objects are considered to belong to the (non-existent) module, so all " -"contained objects will (recursively) be searched for doctests." -msgstr "" - -#: library/doctest.rst:1436 -msgid "" -"The globals for each :class:`DocTest` is formed by combining *globs* and " -"*extraglobs* (bindings in *extraglobs* override bindings in *globs*). A new " -"shallow copy of the globals dictionary is created for each :class:`!" -"DocTest`. If *globs* is not specified, then it defaults to the " -"module's :attr:`~module.__dict__`, if specified, or ``{}`` otherwise. If " -"*extraglobs* is not specified, then it defaults to ``{}``." -msgstr "" - -#: library/doctest.rst:1447 -msgid "DocTestParser objects" -msgstr "Objets *DocTestParser*" - -#: library/doctest.rst:1452 -msgid "" -"A processing class used to extract interactive examples from a string, and " -"use them to create a :class:`DocTest` object." -msgstr "" - -#: library/doctest.rst:1456 -msgid ":class:`DocTestParser` defines the following methods:" -msgstr "La classe :class:`DocTestFinder` définit les méthodes suivantes :" - -#: library/doctest.rst:1461 -msgid "" -"Extract all doctest examples from the given string, and collect them into " -"a :class:`DocTest` object." -msgstr "" -"Extrait tous les exemples de *doctests* à partir de la chaîne de caractère " -"donnée, et les réunit dans un objet :class:`DocTest`." - -#: library/doctest.rst:1464 -#, fuzzy -msgid "" -"*globs*, *name*, *filename*, and *lineno* are attributes for the " -"new :class:`!DocTest` object. See the documentation for :class:`DocTest` " -"for more information." -msgstr "" -"Notez que *globs*, *name*, *filname* et *lineno* sont des attributs pour le " -"nouvel objet :class:`DocTest`. Voir la documentation pour :class:`DocTest` " -"pour plus d'information." - -#: library/doctest.rst:1471 -msgid "" -"Extract all doctest examples from the given string, and return them as a " -"list of :class:`Example` objects. Line numbers are 0-based. The optional " -"argument *name* is a name identifying this string, and is only used for " -"error messages." -msgstr "" - -#: library/doctest.rst:1478 -msgid "" -"Divide the given string into examples and intervening text, and return them " -"as a list of alternating :class:`Example`\\ s and strings. Line numbers for " -"the :class:`!Example`\\ s are 0-based. The optional argument *name* is a " -"name identifying this string, and is only used for error messages." -msgstr "" - -#: library/doctest.rst:1485 -msgid "TestResults objects" -msgstr "Objets *TestResults*" - -#: library/doctest.rst:1492 -msgid "Number of failed tests." -msgstr "Nombre de tests échoués." - -#: library/doctest.rst:1496 -msgid "Number of attempted tests." -msgstr "Nombre de tests tentés." - -#: library/doctest.rst:1500 -msgid "Number of skipped tests." -msgstr "Nombre de tests sautés." - -#: library/doctest.rst:1508 -msgid "DocTestRunner objects" -msgstr "Objets *DocTestRunner*" - -#: library/doctest.rst:1513 -msgid "" -"A processing class used to execute and verify the interactive examples in " -"a :class:`DocTest`." -msgstr "" - -#: library/doctest.rst:1516 -msgid "" -"The comparison between expected outputs and actual outputs is done by " -"an :class:`OutputChecker`. This comparison may be customized with a number " -"of option flags; see section :ref:`doctest-options` for more information. " -"If the option flags are insufficient, then the comparison may also be " -"customized by passing a subclass of :class:`!OutputChecker` to the " -"constructor." -msgstr "" - -#: library/doctest.rst:1522 -msgid "" -"The test runner's display output can be controlled in two ways. First, an " -"output function can be passed to :meth:`run`; this function will be called " -"with strings that should be displayed. It defaults to " -"``sys.stdout.write``. If capturing the output is not sufficient, then the " -"display output can be also customized by subclassing DocTestRunner, and " -"overriding the " -"methods :meth:`report_skip`, :meth:`report_start`, :meth:`report_success`, :meth:`report_unexpected_exception`, " -"and :meth:`report_failure`." -msgstr "" - -#: library/doctest.rst:1530 -msgid "" -"The optional keyword argument *checker* specifies the :class:`OutputChecker` " -"object (or drop-in replacement) that should be used to compare the expected " -"outputs to the actual outputs of doctest examples." -msgstr "" - -#: library/doctest.rst:1534 -msgid "" -"The optional keyword argument *verbose* controls " -"the :class:`DocTestRunner`'s verbosity. If *verbose* is ``True``, then " -"information is printed about each example, as it is run. If *verbose* is " -"``False``, then only failures are printed. If *verbose* is unspecified, or " -"``None``, then verbose output is used iff the command-line switch ``-v`` is " -"used." -msgstr "" - -#: library/doctest.rst:1540 -msgid "" -"The optional keyword argument *optionflags* can be used to control how the " -"test runner compares expected output to actual output, and how it displays " -"failures. For more information, see section :ref:`doctest-options`." -msgstr "" - -#: library/doctest.rst:1544 -msgid "" -"The test runner accumulates statistics. The aggregated number of attempted, " -"failed and skipped examples is also available via " -"the :attr:`tries`, :attr:`failures` and :attr:`skips` attributes. " -"The :meth:`run` and :meth:`summarize` methods return a :class:`TestResults` " -"instance." -msgstr "" - -#: library/doctest.rst:1549 -msgid ":class:`DocTestRunner` defines the following methods:" -msgstr "La classe :class:`DocTestRunner` définit les méthodes suivantes :" - -#: library/doctest.rst:1554 -msgid "" -"Report that the given example was skipped. This method is provided to allow " -"subclasses of :class:`DocTestRunner` to customize their output; it should " -"not be called directly." -msgstr "" - -#: library/doctest.rst:1571 -msgid "" -"*example* is the example about to be processed. *test* is the test " -"containing *example*. *out* is the output function that was passed " -"to :meth:`DocTestRunner.run`." -msgstr "" - -#: library/doctest.rst:1567 -msgid "" -"Report that the test runner is about to process the given example. This " -"method is provided to allow subclasses of :class:`DocTestRunner` to " -"customize their output; it should not be called directly." -msgstr "" - -#: library/doctest.rst:1578 -msgid "" -"Report that the given example ran successfully. This method is provided to " -"allow subclasses of :class:`DocTestRunner` to customize their output; it " -"should not be called directly." -msgstr "" - -#: library/doctest.rst:1593 -msgid "" -"*example* is the example about to be processed. *got* is the actual output " -"from the example. *test* is the test containing *example*. *out* is the " -"output function that was passed to :meth:`DocTestRunner.run`." -msgstr "" - -#: library/doctest.rst:1589 -msgid "" -"Report that the given example failed. This method is provided to allow " -"subclasses of :class:`DocTestRunner` to customize their output; it should " -"not be called directly." -msgstr "" - -#: library/doctest.rst:1600 -msgid "" -"Report that the given example raised an unexpected exception. This method is " -"provided to allow subclasses of :class:`DocTestRunner` to customize their " -"output; it should not be called directly." -msgstr "" - -#: library/doctest.rst:1604 -msgid "" -"*example* is the example about to be processed. *exc_info* is a tuple " -"containing information about the unexpected exception (as returned " -"by :func:`sys.exc_info`). *test* is the test containing *example*. *out* is " -"the output function that was passed to :meth:`DocTestRunner.run`." -msgstr "" - -#: library/doctest.rst:1612 -msgid "" -"Run the examples in *test* (a :class:`DocTest` object), and display the " -"results using the writer function *out*. Return a :class:`TestResults` " -"instance." -msgstr "" - -#: library/doctest.rst:1616 -msgid "" -"The examples are run in the namespace ``test.globs``. If *clear_globs* is " -"true (the default), then this namespace will be cleared after the test runs, " -"to help with garbage collection. If you would like to examine the namespace " -"after the test completes, then use *clear_globs=False*." -msgstr "" - -#: library/doctest.rst:1621 -msgid "" -"*compileflags* gives the set of flags that should be used by the Python " -"compiler when running the examples. If not specified, then it will default " -"to the set of future-import flags that apply to *globs*." -msgstr "" - -#: library/doctest.rst:1625 -msgid "" -"The output of each example is checked using the :class:`DocTestRunner`'s " -"output checker, and the results are formatted by the :meth:`!" -"DocTestRunner.report_\\*` methods." -msgstr "" - -#: library/doctest.rst:1632 -msgid "" -"Print a summary of all the test cases that have been run by this " -"DocTestRunner, and return a :class:`TestResults` instance." -msgstr "" - -#: library/doctest.rst:1635 -msgid "" -"The optional *verbose* argument controls how detailed the summary is. If " -"the verbosity is not specified, then the :class:`DocTestRunner`'s verbosity " -"is used." -msgstr "" - -#: library/doctest.rst:1639 -msgid ":class:`DocTestParser` has the following attributes:" -msgstr ":class:`DocTestParser` définit les attributs suivants :" - -#: library/doctest.rst:1643 -msgid "Number of attempted examples." -msgstr "" - -#: library/doctest.rst:1647 -msgid "Number of failed examples." -msgstr "" - -#: library/doctest.rst:1651 -msgid "Number of skipped examples." -msgstr "" - -#: library/doctest.rst:1659 -msgid "OutputChecker objects" -msgstr "Objets *OutputChecker*" - -#: library/doctest.rst:1664 -msgid "" -"A class used to check the whether the actual output from a doctest example " -"matches the expected output. :class:`OutputChecker` defines two " -"methods: :meth:`check_output`, which compares a given pair of outputs, and " -"returns ``True`` if they match; and :meth:`output_difference`, which returns " -"a string describing the differences between two outputs." -msgstr "" - -#: library/doctest.rst:1671 -msgid ":class:`OutputChecker` defines the following methods:" -msgstr "La classe :class:`OutputChecker` définit les méthodes suivantes :" - -#: library/doctest.rst:1675 -msgid "" -"Return ``True`` iff the actual output from an example (*got*) matches the " -"expected output (*want*). These strings are always considered to match if " -"they are identical; but depending on what option flags the test runner is " -"using, several non-exact match types are also possible. See " -"section :ref:`doctest-options` for more information about option flags." -msgstr "" - -#: library/doctest.rst:1684 -msgid "" -"Return a string describing the differences between the expected output for a " -"given example (*example*) and the actual output (*got*). *optionflags* is " -"the set of option flags used to compare *want* and *got*." -msgstr "" - -#: library/doctest.rst:1692 -msgid "Debugging" -msgstr "Débogage" - -#: library/doctest.rst:1694 -msgid "Doctest provides several mechanisms for debugging doctest examples:" -msgstr "" -"*Doctest* fournit plusieurs mécanismes pour déboguer des exemples *doctest* :" - -#: library/doctest.rst:1696 -msgid "" -"Several functions convert doctests to executable Python programs, which can " -"be run under the Python debugger, :mod:`pdb`." -msgstr "" -"Plusieurs fonctions convertissent les *doctests* en programmes Python " -"exécutables, qui peuvent être exécutés grâce au débogueur Python, :mod:`pdb`." - -#: library/doctest.rst:1699 -msgid "" -"The :class:`DebugRunner` class is a subclass of :class:`DocTestRunner` that " -"raises an exception for the first failing example, containing information " -"about that example. This information can be used to perform post-mortem " -"debugging on the example." -msgstr "" - -#: library/doctest.rst:1704 -msgid "" -"The :mod:`unittest` cases generated by :func:`DocTestSuite` support " -"the :meth:`debug` method defined by :class:`unittest.TestCase`." -msgstr "" - -#: library/doctest.rst:1707 -msgid "" -"You can add a call to :func:`pdb.set_trace` in a doctest example, and you'll " -"drop into the Python debugger when that line is executed. Then you can " -"inspect current values of variables, and so on. For example, " -"suppose :file:`a.py` contains just this module docstring::" -msgstr "" - -#: library/doctest.rst:1722 -msgid "Then an interactive Python session may look like this::" -msgstr "Alors une séance interactive de Python peut ressembler à ceci ::" - -#: library/doctest.rst:1755 -msgid "" -"Functions that convert doctests to Python code, and possibly run the " -"synthesized code under the debugger:" -msgstr "" - -#: library/doctest.rst:1761 -msgid "Convert text with examples to a script." -msgstr "Convertit du texte contenant des exemples en un script." - -#: library/doctest.rst:1763 -msgid "" -"Argument *s* is a string containing doctest examples. The string is " -"converted to a Python script, where doctest examples in *s* are converted to " -"regular code, and everything else is converted to Python comments. The " -"generated script is returned as a string. For example, ::" -msgstr "" - -#: library/doctest.rst:1778 -msgid "displays::" -msgstr "affiche::" - -#: library/doctest.rst:1788 -msgid "" -"This function is used internally by other functions (see below), but can " -"also be useful when you want to transform an interactive Python session into " -"a Python script." -msgstr "" -"Cette fonction est utilisée à l'interne par d'autres fonctions (voir ci-" -"bas), mais peut aussi être utile lorsque l'on souhaite transformer une " -"séance interactive de Python en script Python." - -#: library/doctest.rst:1795 -msgid "Convert the doctest for an object to a script." -msgstr "Convertit en script l'objet *doctest*." - -#: library/doctest.rst:1797 -msgid "" -"Argument *module* is a module object, or dotted name of a module, containing " -"the object whose doctests are of interest. Argument *name* is the name " -"(within the module) of the object with the doctests of interest. The result " -"is a string, containing the object's docstring converted to a Python script, " -"as described for :func:`script_from_examples` above. For example, if " -"module :file:`a.py` contains a top-level function :func:`!f`, then ::" -msgstr "" - -#: library/doctest.rst:1807 -#, fuzzy -msgid "" -"prints a script version of function :func:`!f`'s docstring, with doctests " -"converted to code, and the rest placed in comments." -msgstr "" -"affiche une version script de la *docstring* de la fonction :func:`f`, avec " -"des *doctests* convertis en code, et le reste dans les commentaires." - -#: library/doctest.rst:1813 -msgid "Debug the doctests for an object." -msgstr "Débogue les *doctests* pour un objet." - -#: library/doctest.rst:1815 -msgid "" -"The *module* and *name* arguments are the same as for " -"function :func:`testsource` above. The synthesized Python script for the " -"named object's docstring is written to a temporary file, and then that file " -"is run under the control of the Python debugger, :mod:`pdb`." -msgstr "" - -#: library/doctest.rst:1820 -msgid "" -"A shallow copy of ``module.__dict__`` is used for both local and global " -"execution context." -msgstr "" -"Une copie superficielle de ``module.__dict__`` est utilisée à la fois pour " -"les contextes d'exécution locaux et globaux." - -#: library/doctest.rst:1823 -msgid "" -"Optional argument *pm* controls whether post-mortem debugging is used. If " -"*pm* has a true value, the script file is run directly, and the debugger " -"gets involved only if the script terminates via raising an unhandled " -"exception. If it does, then post-mortem debugging is invoked, " -"via :func:`pdb.post_mortem`, passing the traceback object from the unhandled " -"exception. If *pm* is not specified, or is false, the script is run under " -"the debugger from the start, via passing an appropriate :func:`exec` call " -"to :func:`pdb.run`." -msgstr "" - -#: library/doctest.rst:1834 -msgid "Debug the doctests in a string." -msgstr "Débogue les *doctests* dans une chaîne de caractères." - -#: library/doctest.rst:1836 -msgid "" -"This is like function :func:`debug` above, except that a string containing " -"doctest examples is specified directly, via the *src* argument." -msgstr "" -"Ceci est similaire à la fonction :func:`debug` décrite ci-haut, mis-à-part " -"qu'une chaîne de caractères contenant des exemples *doctest* est définie " -"directement, par l'option *src*." - -#: library/doctest.rst:1839 -msgid "" -"Optional argument *pm* has the same meaning as in function :func:`debug` " -"above." -msgstr "" -"L'option *pm* a la même définition que dans la fonction :func:`debug` ci-" -"haut." - -#: library/doctest.rst:1841 -msgid "" -"Optional argument *globs* gives a dictionary to use as both local and global " -"execution context. If not specified, or ``None``, an empty dictionary is " -"used. If specified, a shallow copy of the dictionary is used." -msgstr "" -"L'option *globs* définit un dictionnaire à utiliser comme contexte " -"d'exécution global et local. Si elle n'est pas définie, ou si ``None``, un " -"dictionnaire vide est utilisé. Si définie, une copie superficielle du " -"dictionnaire est utilisée." - -#: library/doctest.rst:1846 -msgid "" -"The :class:`DebugRunner` class, and the special exceptions it may raise, are " -"of most interest to testing framework authors, and will only be sketched " -"here. See the source code, and especially :class:`DebugRunner`'s docstring " -"(which is a doctest!) for more details:" -msgstr "" - -#: library/doctest.rst:1854 -msgid "" -"A subclass of :class:`DocTestRunner` that raises an exception as soon as a " -"failure is encountered. If an unexpected exception occurs, " -"an :exc:`UnexpectedException` exception is raised, containing the test, the " -"example, and the original exception. If the output doesn't match, then " -"a :exc:`DocTestFailure` exception is raised, containing the test, the " -"example, and the actual output." -msgstr "" - -#: library/doctest.rst:1861 -msgid "" -"For information about the constructor parameters and methods, see the " -"documentation for :class:`DocTestRunner` in section :ref:`doctest-advanced-" -"api`." -msgstr "" -"Pour de l'information sur les paramètres et méthodes du constructeur, voir " -"la documentation pour la classe :class:`DocTestrunner` dans la " -"section :reF:`doctest-advanced-api`." - -#: library/doctest.rst:1864 -msgid "" -"There are two exceptions that may be raised by :class:`DebugRunner` " -"instances:" -msgstr "" -"Il y a deux exceptions qui peuvent être levées par des " -"instances :class:`DebugRunner` :" - -#: library/doctest.rst:1869 -msgid "" -"An exception raised by :class:`DocTestRunner` to signal that a doctest " -"example's actual output did not match its expected output. The constructor " -"arguments are used to initialize the attributes of the same names." -msgstr "" -"Une exception levée par :class:`DocTestRunner` pour signaler que la sortie " -"obtenue suite à un exemple *doctest* ne correspond pas à la sortie attendue. " -"Les arguments du constructeur sont utilisés pour initialiser les attributs " -"des mêmes noms." - -#: library/doctest.rst:1873 -msgid ":exc:`DocTestFailure` defines the following attributes:" -msgstr ":exc:`DocTestFailure` définit les attributs suivants :" - -#: library/doctest.rst:1902 -msgid "The :class:`DocTest` object that was being run when the example failed." -msgstr "" -"L'objet issu de la classe :class:`DocTest` qui était en cours d'exécution " -"lorsque l'exemple a échoué." - -#: library/doctest.rst:1907 -msgid "The :class:`Example` that failed." -msgstr "L'exemple :class:`Example` qui a échoué." - -#: library/doctest.rst:1888 -msgid "The example's actual output." -msgstr "La sortie obtenue par l'exécution de l'exemple." - -#: library/doctest.rst:1893 -msgid "" -"An exception raised by :class:`DocTestRunner` to signal that a doctest " -"example raised an unexpected exception. The constructor arguments are used " -"to initialize the attributes of the same names." -msgstr "" -"Une exception levée par :class:`DocTestRunner` afin de signaler qu'un " -"exemple *doctest* a levé une exception inattendue. Les arguments du " -"constructeur sont utilisés pour initialiser les attributs des mêmes noms." - -#: library/doctest.rst:1897 -msgid ":exc:`UnexpectedException` defines the following attributes:" -msgstr ":exc:`UnexpectedException` définit les attributs suivants :" - -#: library/doctest.rst:1912 -msgid "" -"A tuple containing information about the unexpected exception, as returned " -"by :func:`sys.exc_info`." -msgstr "" -"Un n-uplet contenant l'information au sujet de l'exception inattendue, telle " -"que retourné par :func:`sys.exc_info`." - -#: library/doctest.rst:1919 -msgid "Soapbox" -msgstr "Éditorial" - -#: library/doctest.rst:1921 -#, fuzzy -msgid "" -"As mentioned in the introduction, :mod:`!doctest` has grown to have three " -"primary uses:" -msgstr "" -"Comme mentionné dans l'introduction, :mod:`doctest` a présentement trois " -"usages principaux :" - -#: library/doctest.rst:1924 -msgid "Checking examples in docstrings." -msgstr "Vérifier les exemples dans les *docstrings*." - -#: library/doctest.rst:1926 -msgid "Regression testing." -msgstr "Test de régression." - -#: library/doctest.rst:1928 -msgid "Executable documentation / literate testing." -msgstr "De la documentation exécutable / des tests littéraires." - -#: library/doctest.rst:1930 -msgid "" -"These uses have different requirements, and it is important to distinguish " -"them. In particular, filling your docstrings with obscure test cases makes " -"for bad documentation." -msgstr "" - -#: library/doctest.rst:1934 -msgid "" -"When writing a docstring, choose docstring examples with care. There's an " -"art to this that needs to be learned---it may not be natural at first. " -"Examples should add genuine value to the documentation. A good example can " -"often be worth many words. If done with care, the examples will be " -"invaluable for your users, and will pay back the time it takes to collect " -"them many times over as the years go by and things change. I'm still amazed " -"at how often one of my :mod:`!doctest` examples stops working after a " -"\"harmless\" change." -msgstr "" - -#: library/doctest.rst:1942 -msgid "" -"Doctest also makes an excellent tool for regression testing, especially if " -"you don't skimp on explanatory text. By interleaving prose and examples, it " -"becomes much easier to keep track of what's actually being tested, and why. " -"When a test fails, good prose can make it much easier to figure out what the " -"problem is, and how it should be fixed. It's true that you could write " -"extensive comments in code-based testing, but few programmers do. Many have " -"found that using doctest approaches instead leads to much clearer tests. " -"Perhaps this is simply because doctest makes writing prose a little easier " -"than writing code, while writing comments in code is a little harder. I " -"think it goes deeper than just that: the natural attitude when writing a " -"doctest-based test is that you want to explain the fine points of your " -"software, and illustrate them with examples. This in turn naturally leads to " -"test files that start with the simplest features, and logically progress to " -"complications and edge cases. A coherent narrative is the result, instead " -"of a collection of isolated functions that test isolated bits of " -"functionality seemingly at random. It's a different attitude, and produces " -"different results, blurring the distinction between testing and explaining." -msgstr "" - -#: library/doctest.rst:1960 -msgid "" -"Regression testing is best confined to dedicated objects or files. There " -"are several options for organizing tests:" -msgstr "" - -#: library/doctest.rst:1963 -msgid "" -"Write text files containing test cases as interactive examples, and test the " -"files using :func:`testfile` or :func:`DocFileSuite`. This is recommended, " -"although is easiest to do for new projects, designed from the start to use " -"doctest." -msgstr "" - -#: library/doctest.rst:1968 -msgid "" -"Define functions named ``_regrtest_topic`` that consist of single " -"docstrings, containing test cases for the named topics. These functions can " -"be included in the same file as the module, or separated out into a separate " -"test file." -msgstr "" - -#: library/doctest.rst:1972 -msgid "" -"Define a :attr:`~module.__test__` dictionary mapping from regression test " -"topics to docstrings containing test cases." -msgstr "" - -#: library/doctest.rst:1975 -msgid "" -"When you have placed your tests in a module, the module can itself be the " -"test runner. When a test fails, you can arrange for your test runner to re-" -"run only the failing doctest while you debug the problem. Here is a minimal " -"example of such a test runner::" -msgstr "" -"Lorsque vous placez vos tests dans un module, le module lui-même peut être " -"l'exécuteur de tests. Lorsqu'un test échoue, vous pouvez signifier à votre " -"exécuteur de tests de rouler une seconde fois uniquement les tests qui " -"échouent et ce, tant que vous travaillez sur le problème. Voici un exemple " -"minimal d'un test exécuteur de tests ::" - -#: library/doctest.rst:1997 -msgid "Footnotes" -msgstr "Notes" - -#: library/doctest.rst:1998 -msgid "" -"Examples containing both expected output and an exception are not supported. " -"Trying to guess where one ends and the other begins is too error-prone, and " -"that also makes for a confusing test." -msgstr "" -"Les exemples contenant à la fois la sortie attendue et une exception ne sont " -"pas supportés. Tenter de deviner où finit l'un et où commence l'autre peut " -"mener à plusieurs erreurs, en plus d'être un test qui soit source de " -"confusion." - -#~ msgid "" -#~ "There is also a command line shortcut for running :func:`testmod`. You " -#~ "can instruct the Python interpreter to run the doctest module directly " -#~ "from the standard library and pass the module name(s) on the command " -#~ "line::" -#~ msgstr "" -#~ "Il y a un raccourci pour exécuter :func:`testmod` à partir de la ligne de " -#~ "commande. Vous demandez à l'interpréteur Python d'exécuter le module " -#~ "*doctest* directement à partir de la bibliothèque standard afin de passer " -#~ "le ou les noms des modules à partir de la ligne de commande ainsi ::" - -#~ msgid "" -#~ "There is also a command line shortcut for running :func:`testfile`. You " -#~ "can instruct the Python interpreter to run the doctest module directly " -#~ "from the standard library and pass the file name(s) on the command line::" -#~ msgstr "" -#~ "Il y a un raccourci pour exécuter :func:`testfile` à partir de la ligne " -#~ "de commande. Demandez à l'interpréteur Python d'exécuter le module " -#~ "*doctest* directement à partir de la bibliothèque standard et de passer " -#~ "le ou les noms des modules à partir de la ligne de commande ainsi ::" - -#~ msgid "The ``-o`` command line option." -#~ msgstr "L'option de ligne de commande ``-o``." - -#, fuzzy -#~ msgid "" -#~ "When doctests which have been converted to unit tests " -#~ "by :func:`DocFileSuite` or :func:`DocTestSuite` fail, this exception is " -#~ "raised showing the name of the file containing the test and a (sometimes " -#~ "approximate) line number." -#~ msgstr "" -#~ "La classe renvoyée :class:`unittest.TestSuite` doit être exécutée par le " -#~ "cadriciel de test unitaire, afin d'exécuter chaque *doctest* dans le " -#~ "module. Si n'importe lequel des *doctests* échoue, alors le test unitaire " -#~ "de synthèse échoue, et une exception :exc:`failureException` est levée, " -#~ "affichant le nom du fichier contenant le test et un numéro de ligne " -#~ "pouvant être approximatif." - -#~ msgid "^ (caret)" -#~ msgstr "^ (caret)" - -#~ msgid "+ (plus)" -#~ msgstr "+ (plus)" - -#~ msgid "- (minus)" -#~ msgstr "- (moins)" - -#~ msgid "" -#~ "When specified, an example that expects an exception passes if an " -#~ "exception of the expected type is raised, even if the exception detail " -#~ "does not match. For example, an example expecting ``ValueError: 42`` " -#~ "will pass if the actual exception raised is ``ValueError: 3*14``, but " -#~ "will fail, e.g., if :exc:`TypeError` is raised." -#~ msgstr "" -#~ "Lorsque précisé, un exemple qui s'attend à une exception réussit le test " -#~ "si une exception du type attendu est levée, même si le détail de " -#~ "l'exception ne correspond pas. Par exemple, un exemple s'attendant à " -#~ "``ValueError: 42`` réussira si l'exception réellement levée est " -#~ "``ValueError: 3*14``, mais échouera si par exemple :exc:`TypeError` est " -#~ "levée." - -#~ msgid "" -#~ "It will also ignore the module name used in Python 3 doctest reports. " -#~ "Hence both of these variations will work with the flag specified, " -#~ "regardless of whether the test is run under Python 2.7 or Python 3.2 (or " -#~ "later versions)::" -#~ msgstr "" -#~ "Il fera fi du nom de module utilisé dans les rapports *doctest* de Python " -#~ "3. Ainsi, ces deux variations fonctionneront avec l'option précisée, peu " -#~ "importe si le test est exécuté avec Python 2.7 ou Python 3.2 (ou des " -#~ "versions ultérieures) ::" - -#~ msgid "" -#~ "Note that :const:`ELLIPSIS` can also be used to ignore the details of the " -#~ "exception message, but such a test may still fail based on whether or not " -#~ "the module details are printed as part of the exception name. " -#~ "Using :const:`IGNORE_EXCEPTION_DETAIL` and the details from Python 2.3 is " -#~ "also the only clear way to write a doctest that doesn't care about the " -#~ "exception detail yet continues to pass under Python 2.3 or earlier (those " -#~ "releases do not support :ref:`doctest directives ` " -#~ "and ignore them as irrelevant comments). For example::" -#~ msgstr "" -#~ "Prendre note que :const:`ELLIPSIS` peut aussi être utilisée afin " -#~ "d'ignorer les détails du message d'exception, mais un tel test peut tout " -#~ "de même échouer si les détails du module sont affichés comme faisant " -#~ "partie du nom de l'exception. L'utilisation " -#~ "de :const:`IGNORE_EXCEPTION_DETAIL` et des détails de Python 2.3 est " -#~ "aussi la seule façon claire d'écrire un *doctest* qui ne se soucie pas du " -#~ "détail d'exception tout en continuant de réussir, et ce, pour Python 2.3 " -#~ "ou antérieur (ces versions ne supportent pas les :ref:`instructions " -#~ "doctest `, les ignorant et les traitant comme des " -#~ "commentaires sans pertinence). Par exemple ::" - -#~ msgid "" -#~ "passes under Python 2.3 and later Python versions with the flag " -#~ "specified, even though the detail changed in Python 2.4 to say \"does " -#~ "not\" instead of \"doesn't\"." -#~ msgstr "" -#~ "réussit sous Python 2.3 ainsi que pour les versions ultérieures de " -#~ "Python, avec l'option précisée, même si le détail a été changé dans " -#~ "Python 2.4 pour mentionner *\"does not\"* plutôt que *\"doesn't\"* (ne " -#~ "fait pas)." - -#~ msgid "" -#~ "Before Python 3.6, when printing a dict, Python did not guarantee that " -#~ "the key-value pairs was printed in any particular order." -#~ msgstr "" -#~ "Avant Python 3.6, lorsque Python affichait un *dict*, il ne garantissait " -#~ "pas que les paires clés-valeurs suivaient un ordre particulier." diff --git a/library/email.charset.po b/library/email.charset.po deleted file mode 100644 index ed3bb34fc4..0000000000 --- a/library/email.charset.po +++ /dev/null @@ -1,415 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-03-15 22:42+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/email.charset.rst:2 -#, fuzzy -msgid ":mod:`!email.charset`: Representing character sets" -msgstr ":mod:`email.charset` : représentation des jeux de caractères" - -#: library/email.charset.rst:7 -msgid "**Source code:** :source:`Lib/email/charset.py`" -msgstr "**Code source :** :source:`Lib/email/charset.py`" - -#: library/email.charset.rst:11 -msgid "" -"This module is part of the legacy (``Compat32``) email API. In the new API " -"only the aliases table is used." -msgstr "" -"Ce module fait partie de l'ancienne API de messagerie (``Compat32``). Dans " -"la nouvelle API, seule la table des alias est utilisée." - -#: library/email.charset.rst:14 -msgid "" -"The remaining text in this section is the original documentation of the " -"module." -msgstr "" -"Le texte restant de cette section est la documentation originale de ce " -"module." - -#: library/email.charset.rst:16 -msgid "" -"This module provides a class :class:`Charset` for representing character " -"sets and character set conversions in email messages, as well as a character " -"set registry and several convenience methods for manipulating this registry. " -"Instances of :class:`Charset` are used in several other modules within " -"the :mod:`email` package." -msgstr "" -"Ce module fournit une classe :class:`Charset` pour représenter les jeux de " -"caractères et les conversions de jeux de caractères dans les messages " -"électroniques, ainsi qu'un registre de jeux de caractères et plusieurs " -"méthodes pratiques pour manipuler ce registre. Les instances " -"de :class:`Charset` sont utilisées dans plusieurs autres modules du " -"paquet :mod:`email`." - -#: library/email.charset.rst:22 -#, fuzzy -msgid "Import this class from the :mod:`!email.charset` module." -msgstr "Importez cette classe depuis le module :mod:`email.charset`." - -#: library/email.charset.rst:27 -msgid "Map character sets to their email properties." -msgstr "Associe les jeux de caractères à leurs propriétés d'e-mail." - -#: library/email.charset.rst:29 -msgid "" -"This class provides information about the requirements imposed on email for " -"a specific character set. It also provides convenience routines for " -"converting between character sets, given the availability of the applicable " -"codecs. Given a character set, it will do its best to provide information " -"on how to use that character set in an email message in an RFC-compliant way." -msgstr "" -"Cette classe fournit des informations sur les exigences imposées aux e-mails " -"pour un jeu de caractères spécifique. Elle fournit également des routines " -"pratiques pour la conversion entre les jeux de caractères, compte tenu de la " -"disponibilité des codecs applicables. Étant donné un jeu de caractères, elle " -"fait de son mieux pour fournir des informations sur la façon d'utiliser ce " -"jeu de caractères dans un message électronique d'une manière conforme à la " -"RFC." - -#: library/email.charset.rst:35 -msgid "" -"Certain character sets must be encoded with quoted-printable or base64 when " -"used in email headers or bodies. Certain character sets must be converted " -"outright, and are not allowed in email." -msgstr "" -"Certains jeux de caractères doivent être encodés avec *quoted-printable* ou " -"en *base64* lorsqu'ils sont utilisés dans les en-têtes ou les corps des e-" -"mails. Certains jeux de caractères doivent être convertis directement et ne " -"sont pas autorisés dans les e-mails." - -#: library/email.charset.rst:39 -msgid "" -"Optional *input_charset* is as described below; it is always coerced to " -"lower case. After being alias normalized it is also used as a lookup into " -"the registry of character sets to find out the header encoding, body " -"encoding, and output conversion codec to be used for the character set. For " -"example, if *input_charset* is ``iso-8859-1``, then headers and bodies will " -"be encoded using quoted-printable and no output conversion codec is " -"necessary. If *input_charset* is ``euc-jp``, then headers will be encoded " -"with base64, bodies will not be encoded, but output text will be converted " -"from the ``euc-jp`` character set to the ``iso-2022-jp`` character set." -msgstr "" -"Le *input_charset* facultatif est tel que décrit ci-dessous ; il est " -"toujours contraint en minuscules. Après avoir été normalisé par alias, il " -"est également utilisé comme recherche dans le registre des jeux de " -"caractères pour trouver le codage d'en-tête, le codage de corps et le codec " -"de conversion de sortie à utiliser pour le jeu de caractères. Par exemple, " -"si *input_charset* vaut ``iso-8859-1``, alors les en-têtes et les corps " -"seront encodés en utilisant *quoted-printable* et aucun codec de conversion " -"de sortie n'est nécessaire. Si *input_charset* vaut ``euc-jp``, alors les en-" -"têtes seront encodés en *base64*, les corps ne seront pas encodés, mais le " -"texte de sortie sera converti du jeu de caractères ``euc-jp`` vers le jeu de " -"caractères ``iso-2022-jp``." - -#: library/email.charset.rst:49 -msgid ":class:`Charset` instances have the following data attributes:" -msgstr "" -"Les instances de :class:`Charset` ont les attributs de données suivants :" - -#: library/email.charset.rst:53 -msgid "" -"The initial character set specified. Common aliases are converted to their " -"*official* email names (e.g. ``latin_1`` is converted to ``iso-8859-1``). " -"Defaults to 7-bit ``us-ascii``." -msgstr "" -"Jeu de caractères initial spécifié. Les alias communs sont convertis en " -"leurs noms de messagerie *officiels* (par exemple, ``latin_1`` est converti " -"en ``iso-8859-1``). Par défaut, ``us-ascii`` 7 bits." - -#: library/email.charset.rst:60 -#, fuzzy -msgid "" -"If the character set must be encoded before it can be used in an email " -"header, this attribute will be set to ``charset.QP`` (for quoted-printable), " -"``charset.BASE64`` (for base64 encoding), or ``charset.SHORTEST`` for the " -"shortest of QP or BASE64 encoding. Otherwise, it will be ``None``." -msgstr "" -"Si le jeu de caractères doit être encodé avant de pouvoir être utilisé dans " -"un en-tête d'e-mail, cet attribut est défini sur ``Charset.QP`` (pour " -"*quoted-printable*), ``Charset.BASE64`` (pour l'encodage en *base64*), ou " -"``Charset.SHORTEST`` pour le plus court des encodages QP ou BASE64. Sinon, " -"c'est ``None``." - -#: library/email.charset.rst:69 -#, fuzzy -msgid "" -"Same as *header_encoding*, but describes the encoding for the mail message's " -"body, which indeed may be different than the header encoding. " -"``charset.SHORTEST`` is not allowed for *body_encoding*." -msgstr "" -"Identique à *header_encoding*, mais décrit l'encodage du corps du message " -"électronique, qui peut effectivement être différent de l'encodage de l'en-" -"tête. ``Charset.SHORTEST`` n'est pas autorisé pour *body_encoding*." - -#: library/email.charset.rst:76 -msgid "" -"Some character sets must be converted before they can be used in email " -"headers or bodies. If the *input_charset* is one of them, this attribute " -"will contain the name of the character set output will be converted to. " -"Otherwise, it will be ``None``." -msgstr "" -"Certains jeux de caractères doivent être convertis avant de pouvoir être " -"utilisés dans les en-têtes ou le corps des e-mails. Si le *input_charset* " -"est un jeu de ce type, alors cet attribut contient le nom du jeu de " -"caractères vers lequel la sortie sera convertie. Sinon, il vaut ``None``." - -#: library/email.charset.rst:84 -msgid "" -"The name of the Python codec used to convert the *input_charset* to " -"Unicode. If no conversion codec is necessary, this attribute will be " -"``None``." -msgstr "" -"Nom du codec Python utilisé pour convertir le *input_charset* en Unicode. Si " -"aucun codec de conversion n'est nécessaire, cet attribut vaut ``None``." - -#: library/email.charset.rst:91 -msgid "" -"The name of the Python codec used to convert Unicode to the " -"*output_charset*. If no conversion codec is necessary, this attribute will " -"have the same value as the *input_codec*." -msgstr "" -"Nom du codec Python utilisé pour convertir Unicode en *output_charset*. Si " -"aucun codec de conversion n'est nécessaire, cet attribut a la même valeur " -"que le *input_codec*." - -#: library/email.charset.rst:96 -msgid ":class:`Charset` instances also have the following methods:" -msgstr "" -"Les instances de :class:`Charset` ont également les méthodes suivantes :" - -#: library/email.charset.rst:100 -msgid "Return the content transfer encoding used for body encoding." -msgstr "" -"Renvoie l'encodage de transfert de contenu utilisé pour l'encodage du corps." - -#: library/email.charset.rst:102 -msgid "" -"This is either the string ``quoted-printable`` or ``base64`` depending on " -"the encoding used, or it is a function, in which case you should call the " -"function with a single argument, the Message object being encoded. The " -"function should then set the :mailheader:`Content-Transfer-Encoding` header " -"itself to whatever is appropriate." -msgstr "" -"Il s'agit soit de la chaîne ``quoted-printable`` ou ``base64`` selon " -"l'encodage utilisé, soit d'une fonction, vous devez alors appeler la " -"fonction avec un seul argument, l'objet Message étant encodé. La fonction " -"doit ensuite définir l'en-tête :mailheader:`Content-Transfer-Encoding` à la " -"valeur appropriée." - -#: library/email.charset.rst:108 -msgid "" -"Returns the string ``quoted-printable`` if *body_encoding* is ``QP``, " -"returns the string ``base64`` if *body_encoding* is ``BASE64``, and returns " -"the string ``7bit`` otherwise." -msgstr "" -"Renvoie la chaîne ``quoted-printable`` si *body_encoding* est ``QP``, " -"renvoie la chaîne ``base64`` si *body_encoding* est ``BASE64`` et renvoie la " -"chaîne ``7bit`` sinon." - -#: library/email.charset.rst:115 -msgid "Return the output character set." -msgstr "Renvoie le jeu de caractères de sortie." - -#: library/email.charset.rst:117 -msgid "" -"This is the *output_charset* attribute if that is not ``None``, otherwise it " -"is *input_charset*." -msgstr "" -"C'est l'attribut *output_charset* si ce n'est pas ``None``, sinon c'est " -"*input_charset*." - -#: library/email.charset.rst:123 -msgid "Header-encode the string *string*." -msgstr "Encode la chaîne *string* pour un en-tête." - -#: library/email.charset.rst:125 -msgid "" -"The type of encoding (base64 or quoted-printable) will be based on the " -"*header_encoding* attribute." -msgstr "" -"Le type d'encodage (*base64* ou *quoted-printable*) est basé sur l'attribut " -"*header_encoding*." - -#: library/email.charset.rst:131 -msgid "Header-encode a *string* by converting it first to bytes." -msgstr "" -"Encode *string* en la convertissant d'abord en octets, pour un en-tête." - -#: library/email.charset.rst:133 -msgid "" -"This is similar to :meth:`header_encode` except that the string is fit into " -"maximum line lengths as given by the argument *maxlengths*, which must be an " -"iterator: each element returned from this iterator will provide the next " -"maximum line length." -msgstr "" -"C'est similaire à :meth:`header_encode` sauf que la chaîne est adaptée aux " -"longueurs de ligne maximales indiquées par l'argument *maxlengths*, qui doit " -"être un itérateur : chaque élément renvoyé par cet itérateur fournit la " -"prochaine longueur de ligne maximale." - -#: library/email.charset.rst:141 -msgid "Body-encode the string *string*." -msgstr "Encode la chaîne *string* pour un usage en corps de message." - -#: library/email.charset.rst:143 -msgid "" -"The type of encoding (base64 or quoted-printable) will be based on the " -"*body_encoding* attribute." -msgstr "" -"Le type d'encodage (*base64* ou *quoted-printable*) est basé sur l'attribut " -"*body_encoding*." - -#: library/email.charset.rst:146 -msgid "" -"The :class:`Charset` class also provides a number of methods to support " -"standard operations and built-in functions." -msgstr "" -"La classe :class:`Charset` fournit également un certain nombre de méthodes " -"pour prendre en charge les opérations standard et les fonctions intégrées." - -#: library/email.charset.rst:152 -#, fuzzy -msgid "" -"Returns *input_charset* as a string coerced to lower case. :meth:`!__repr__` " -"is an alias for :meth:`!__str__`." -msgstr "" -"Renvoie *input_charset* sous la forme d'une chaîne contrainte en " -"minuscules. :meth:`__repr__` est un alias pour :meth:`__str__`." - -#: library/email.charset.rst:158 -msgid "" -"This method allows you to compare two :class:`Charset` instances for " -"equality." -msgstr "" -"Cette méthode vous permet de tester l'égalité de deux instances " -"de :class:`Charset`." - -#: library/email.charset.rst:164 -msgid "" -"This method allows you to compare two :class:`Charset` instances for " -"inequality." -msgstr "" -"Cette méthode vous permet de tester l'inégalité de deux instances " -"de :class:`Charset`." - -#: library/email.charset.rst:167 -#, fuzzy -msgid "" -"The :mod:`!email.charset` module also provides the following functions for " -"adding new entries to the global character set, alias, and codec registries:" -msgstr "" -"Le module :mod:`email.charset` fournit également les fonctions suivantes " -"pour ajouter de nouvelles entrées à l'ensemble des jeux de caractères " -"globaux, aux registres d'alias et de codec :" - -#: library/email.charset.rst:173 -msgid "Add character properties to the global registry." -msgstr "" -"Ajoute des propriétés relatives d'un jeu de caractères dans le registre " -"global." - -#: library/email.charset.rst:175 -msgid "" -"*charset* is the input character set, and must be the canonical name of a " -"character set." -msgstr "" -"*charset* est le jeu de caractères d'entrée et doit être le nom canonique " -"d'un jeu de caractères." - -#: library/email.charset.rst:178 -#, fuzzy -msgid "" -"Optional *header_enc* and *body_enc* is either ``charset.QP`` for quoted-" -"printable, ``charset.BASE64`` for base64 encoding, ``charset.SHORTEST`` for " -"the shortest of quoted-printable or base64 encoding, or ``None`` for no " -"encoding. ``SHORTEST`` is only valid for *header_enc*. The default is " -"``None`` for no encoding." -msgstr "" -"*header_enc* et *body_enc* (facultatifs) sont soit ``Charset.QP`` pour " -"*quoted-printable*, ``Charset.BASE64`` pour l'encodage *base64*, " -"``Charset.SHORTEST`` pour le plus court entre *quoted-printable* et " -"*base64*, ou ``None`` pour aucun encodage. ``SHORTEST`` n'est valide que " -"pour *header_enc*. La valeur par défaut est ``None`` pour aucun encodage." - -#: library/email.charset.rst:184 -msgid "" -"Optional *output_charset* is the character set that the output should be in. " -"Conversions will proceed from input charset, to Unicode, to the output " -"charset when the method :meth:`Charset.convert` is called. The default is " -"to output in the same character set as the input." -msgstr "" -"*output_charset* (facultatif) est le jeu de caractères dans lequel doit être " -"la sortie. Les conversions se poursuivent du jeu de caractères d'entrée, " -"vers Unicode, vers le jeu de caractères de sortie lorsque la " -"méthode :meth:`Charset.convert` est appelée. La valeur par défaut est de " -"sortir dans le même jeu de caractères que l'entrée." - -#: library/email.charset.rst:189 -msgid "" -"Both *input_charset* and *output_charset* must have Unicode codec entries in " -"the module's character set-to-codec mapping; use :func:`add_codec` to add " -"codecs the module does not know about. See the :mod:`codecs` module's " -"documentation for more information." -msgstr "" -"*input_charset* et *output_charset* doivent avoir des entrées de codec " -"Unicode dans la table de correspondances du jeu de caractères au codec du " -"module ; utilisez :func:`add_codec` pour ajouter des codecs que le module ne " -"connaît pas. Voir la documentation du module :mod:`codecs` pour plus " -"d'informations." - -#: library/email.charset.rst:194 -msgid "" -"The global character set registry is kept in the module global dictionary " -"``CHARSETS``." -msgstr "" -"Le registre de jeux de caractères global est conservé dans le dictionnaire " -"global du module ``CHARSETS``." - -#: library/email.charset.rst:200 -msgid "" -"Add a character set alias. *alias* is the alias name, e.g. ``latin-1``. " -"*canonical* is the character set's canonical name, e.g. ``iso-8859-1``." -msgstr "" -"Ajoute un alias de jeu de caractères. *alias* est le nom d'alias, par ex. " -"``latin-1``. *canonical* est le nom canonique du jeu de caractères, par ex. " -"``iso-8859-1``." - -#: library/email.charset.rst:203 -msgid "" -"The global charset alias registry is kept in the module global dictionary " -"``ALIASES``." -msgstr "" -"Le registre global des alias du jeu de caractères est conservé dans le " -"dictionnaire global du module ``ALIASES``." - -#: library/email.charset.rst:209 -msgid "" -"Add a codec that map characters in the given character set to and from " -"Unicode." -msgstr "" -"Ajoute un codec qui fait correspondre les caractères du jeu de caractères " -"donné vers et depuis Unicode." - -#: library/email.charset.rst:211 -msgid "" -"*charset* is the canonical name of a character set. *codecname* is the name " -"of a Python codec, as appropriate for the second argument to " -"the :class:`str`'s :meth:`~str.encode` method." -msgstr "" -"*charset* est le nom canonique d'un jeu de caractères. *codecname* est le " -"nom d'un codec Python (c.-à-d. une valeur valable comme second argument de " -"la méthode :meth:`~str.encode` de :class:`str`)." diff --git a/library/email.compat32-message.po b/library/email.compat32-message.po deleted file mode 100644 index 83481722a1..0000000000 --- a/library/email.compat32-message.po +++ /dev/null @@ -1,1282 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-08-28 00:13+0200\n" -"Last-Translator: Christophe Nanteuil \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" - -#: library/email.compat32-message.rst:4 -msgid "" -":mod:`email.message.Message`: Representing an email message using " -"the :data:`~email.policy.compat32` API" -msgstr "" -":mod:`email.message.Message` : représentation d'un message électronique à " -"l'aide de l'API :data:`~email.policy.compat32`" - -#: library/email.compat32-message.rst:13 -msgid "" -"The :class:`Message` class is very similar to " -"the :class:`~email.message.EmailMessage` class, without the methods added by " -"that class, and with the default behavior of certain other methods being " -"slightly different. We also document here some methods that, while " -"supported by the :class:`~email.message.EmailMessage` class, are not " -"recommended unless you are dealing with legacy code." -msgstr "" -"La classe :class:`Message` est très similaire à la " -"classe :class:`~email.message.EmailMessage`, sans les méthodes ajoutées par " -"cette classe et avec le comportement par défaut légèrement différent pour " -"certaines autres méthodes. Nous documentons également ici certaines méthodes " -"qui, bien que prises en charge par la " -"classe :class:`~email.message.EmailMessage`, ne sont pas recommandées, sauf " -"si vous avez affaire à du code hérité." - -#: library/email.compat32-message.rst:20 -msgid "The philosophy and structure of the two classes is otherwise the same." -msgstr "" -"La philosophie et la structure des deux classes sont par ailleurs les mêmes." - -#: library/email.compat32-message.rst:22 -msgid "" -"This document describes the behavior under the default " -"(for :class:`Message`) policy :attr:`~email.policy.Compat32`. If you are " -"going to use another policy, you should be using " -"the :class:`~email.message.EmailMessage` class instead." -msgstr "" -"Ce document décrit le comportement avec les règles par défaut " -"(pour :class:`Message`) :attr:`~email.policy.Compat32`. Si vous envisagez " -"d'utiliser d'autres règles, vous devriez plutôt utiliser la " -"classe :class:`~email.message.EmailMessage`." - -#: library/email.compat32-message.rst:26 -msgid "" -"An email message consists of *headers* and a *payload*. Headers must " -"be :rfc:`5322` style names and values, where the field name and value are " -"separated by a colon. The colon is not part of either the field name or the " -"field value. The payload may be a simple text message, or a binary object, " -"or a structured sequence of sub-messages each with their own set of headers " -"and their own payload. The latter type of payload is indicated by the " -"message having a MIME type such as :mimetype:`multipart/\\*` " -"or :mimetype:`message/rfc822`." -msgstr "" -"Un message électronique se compose d'*en-têtes* et d'une *charge utile*. Les " -"en-têtes doivent être des noms et des valeurs de style :rfc:`5322`, où le " -"nom et la valeur du champ sont séparés par deux-points. Les deux-points ne " -"font partie ni du nom du champ ni de la valeur du champ. La charge utile " -"peut être un simple message texte, ou un objet binaire, ou une séquence " -"structurée de sous-messages chacun avec son propre ensemble d'en-têtes et sa " -"propre charge utile. Ce dernier type de charge utile est indiqué par le " -"message ayant un type MIME tel que :mimetype:`multipart/\\*` " -"ou :mimetype:`message/rfc822`." - -#: library/email.compat32-message.rst:35 -msgid "" -"The conceptual model provided by a :class:`Message` object is that of an " -"ordered dictionary of headers with additional methods for accessing both " -"specialized information from the headers, for accessing the payload, for " -"generating a serialized version of the message, and for recursively walking " -"over the object tree. Note that duplicate headers are supported but special " -"methods must be used to access them." -msgstr "" -"Le modèle conceptuel fourni par un objet :class:`Message` est celui d'un " -"dictionnaire ordonné d'en-têtes avec des méthodes supplémentaires pour " -"accéder à la fois aux informations spécialisées des en-têtes, pour accéder à " -"la charge utile, pour générer une version sérialisée du message et pour " -"parcourir récursivement l'arbre d'objets. Notez que les en-têtes en double " -"sont pris en charge mais que des méthodes spéciales doivent être utilisées " -"pour y accéder." - -#: library/email.compat32-message.rst:42 -msgid "" -"The :class:`Message` pseudo-dictionary is indexed by the header names, which " -"must be ASCII values. The values of the dictionary are strings that are " -"supposed to contain only ASCII characters; there is some special handling " -"for non-ASCII input, but it doesn't always produce the correct results. " -"Headers are stored and returned in case-preserving form, but field names are " -"matched case-insensitively. There may also be a single envelope header, " -"also known as the *Unix-From* header or the ``From_`` header. The *payload* " -"is either a string or bytes, in the case of simple message objects, or a " -"list of :class:`Message` objects, for MIME container documents " -"(e.g. :mimetype:`multipart/\\*` and :mimetype:`message/rfc822`)." -msgstr "" -"Le pseudo-dictionnaire :class:`Message` est indicé par les noms d'en-tête, " -"qui doivent être des valeurs ASCII. Les valeurs du dictionnaire sont des " -"chaînes censées contenir uniquement des caractères ASCII ; il existe une " -"gestion spéciale pour les entrées non ASCII, mais cela ne produit pas " -"toujours les résultats corrects. Les en-têtes sont stockés et renvoyés sous " -"une forme respectant la casse, mais les noms de champ sont mis en " -"correspondance sans tenir compte de la casse. Il peut également y avoir un " -"seul en-tête d'enveloppe, également appelé en-tête *Unix-From* ou en-tête " -"``From_``. La *charge utile* est soit une chaîne ou des octets, dans le cas " -"d'objets message simples, soit une liste d'objets :class:`Message`, pour les " -"documents conteneurs MIME (par exemple :mimetype:`multipart/\\*` " -"et :mimetype:`message/rfc822`)." - -#: library/email.compat32-message.rst:53 -msgid "Here are the methods of the :class:`Message` class:" -msgstr "Voici les méthodes de la classe :class:`Message` :" - -#: library/email.compat32-message.rst:58 -msgid "" -"If *policy* is specified (it must be an instance of a :mod:`~email.policy` " -"class) use the rules it specifies to update and serialize the representation " -"of the message. If *policy* is not set, use the :class:`compat32 " -"` policy, which maintains backward compatibility with " -"the Python 3.2 version of the email package. For more information see " -"the :mod:`~email.policy` documentation." -msgstr "" -"Si *policy* est spécifié (il doit s'agir d'une instance d'une " -"classe :mod:`~email.policy`), utilise les règles spécifiées pour mettre à " -"jour et sérialiser la représentation du message. Si *policy* n'est pas " -"défini, utilise les règles :class:`compat32 `, qui " -"maintient la rétrocompatibilité avec la version Python 3.2 du paquet de " -"messagerie. Pour plus d'informations, consultez la " -"documentation :mod:`~email.policy`." - -# suit un : -#: library/email.compat32-message.rst:65 -msgid "The *policy* keyword argument was added." -msgstr "l'argument nommé *policy* a été ajouté." - -#: library/email.compat32-message.rst:70 -msgid "" -"Return the entire message flattened as a string. When optional *unixfrom* " -"is true, the envelope header is included in the returned string. *unixfrom* " -"defaults to ``False``. For backward compatibility reasons, *maxheaderlen* " -"defaults to ``0``, so if you want a different value you must override it " -"explicitly (the value specified for *max_line_length* in the policy will be " -"ignored by this method). The *policy* argument may be used to override the " -"default policy obtained from the message instance. This can be used to " -"control some of the formatting produced by the method, since the specified " -"*policy* will be passed to the ``Generator``." -msgstr "" -"Renvoie le message entier aplati sous forme de chaîne. Lorsque l'option " -"*unixfrom* est vraie, l'en-tête de l'enveloppe est inclus dans la chaîne " -"renvoyée. *unixfrom* par défaut est ``False``. Pour des raisons de " -"compatibilité descendante, *maxheaderlen* est par défaut à ``0``, donc si " -"vous voulez une valeur différente, vous devez la remplacer explicitement (la " -"valeur spécifiée pour *max_line_length* dans la politique sera ignorée par " -"cette méthode). L'argument *policy* peut être utilisé pour remplacer les " -"règles par défaut obtenues à partir de l'instance de message. Cela peut être " -"utilisé pour contrôler une partie du formatage produit par la méthode, " -"puisque la *policy* spécifiée est transmise au ``Generator``." - -#: library/email.compat32-message.rst:80 library/email.compat32-message.rst:122 -msgid "" -"Flattening the message may trigger changes to the :class:`Message` if " -"defaults need to be filled in to complete the transformation to a string " -"(for example, MIME boundaries may be generated or modified)." -msgstr "" -"L'aplatissement du message peut déclencher des changements " -"dans :class:`Message` si les valeurs par défaut doivent être renseignées " -"pour terminer la transformation en chaîne (par exemple, les limites MIME " -"peuvent être générées ou modifiées)." - -#: library/email.compat32-message.rst:84 -msgid "" -"Note that this method is provided as a convenience and may not always format " -"the message the way you want. For example, by default it does not do the " -"mangling of lines that begin with ``From`` that is required by the Unix mbox " -"format. For more flexibility, instantiate " -"a :class:`~email.generator.Generator` instance and use " -"its :meth:`~email.generator.Generator.flatten` method directly. For " -"example::" -msgstr "" -"Notez que cette méthode est fournie à titre de commodité et peut ne pas " -"toujours formater le message comme vous le souhaitez. Par exemple, par " -"défaut, elle ne reformate pas les lignes qui commencent par ``From`` qui est " -"requis par le format *mbox* Unix. Pour plus de flexibilité, instanciez une " -"instance :class:`~email.generator.Generator` et utilisez sa " -"méthode :meth:`~email.generator.Generator.flatten` directement. Par " -"exemple ::" - -#: library/email.compat32-message.rst:98 -msgid "" -"If the message object contains binary data that is not encoded according to " -"RFC standards, the non-compliant data will be replaced by unicode \"unknown " -"character\" code points. (See also :meth:`.as_bytes` " -"and :class:`~email.generator.BytesGenerator`.)" -msgstr "" -"Si l'objet message contient des données binaires qui ne sont pas encodées " -"selon les normes RFC, les données non conformes seront remplacées par des " -"points de code Unicode « caractère inconnu » (voir aussi :meth:`.as_bytes` " -"et :class:`~email.generator.BytesGenerator`)." - -#: library/email.compat32-message.rst:103 -msgid "the *policy* keyword argument was added." -msgstr "l'argument nommé *policy* a été ajouté." - -#: library/email.compat32-message.rst:108 -#, fuzzy -msgid "" -"Equivalent to :meth:`.as_string`. Allows ``str(msg)`` to produce a string " -"containing the formatted message." -msgstr "" -"Équivalent à :meth:`.as_string()`. Permet à ``str(msg)`` de produire une " -"chaîne contenant le message formaté." - -#: library/email.compat32-message.rst:114 -msgid "" -"Return the entire message flattened as a bytes object. When optional " -"*unixfrom* is true, the envelope header is included in the returned string. " -"*unixfrom* defaults to ``False``. The *policy* argument may be used to " -"override the default policy obtained from the message instance. This can be " -"used to control some of the formatting produced by the method, since the " -"specified *policy* will be passed to the ``BytesGenerator``." -msgstr "" -"Renvoie le message entier aplati en tant qu'objet bytes. Lorsque l'option " -"*unixfrom* est vraie, l'en-tête de l'enveloppe est inclus dans la chaîne " -"renvoyée. *unixfrom* par défaut est ``False``. L'argument *policy* peut être " -"utilisé pour remplacer les règles par défaut obtenues à partir de l'instance " -"de message. Cela peut être utilisé pour contrôler une partie du formatage " -"produit par la méthode, puisque la *policy* spécifiée est passée au " -"``BytesGenerator``." - -#: library/email.compat32-message.rst:126 -msgid "" -"Note that this method is provided as a convenience and may not always format " -"the message the way you want. For example, by default it does not do the " -"mangling of lines that begin with ``From`` that is required by the Unix mbox " -"format. For more flexibility, instantiate " -"a :class:`~email.generator.BytesGenerator` instance and use " -"its :meth:`~email.generator.BytesGenerator.flatten` method directly. For " -"example::" -msgstr "" -"Notez que cette méthode est fournie à titre de commodité et peut ne pas " -"toujours formater le message comme vous le souhaitez. Par exemple, par " -"défaut, elle ne reformate pas les lignes qui commencent par ``From`` qui est " -"requis par le format *mbox* Unix. Pour plus de flexibilité, instanciez une " -"instance :class:`~email.generator.BytesGenerator` et utilisez sa " -"méthode :meth:`~email.generator.BytesGenerator.flatten` directement. Par " -"exemple ::" - -#: library/email.compat32-message.rst:146 -#, fuzzy -msgid "" -"Equivalent to :meth:`.as_bytes`. Allows ``bytes(msg)`` to produce a bytes " -"object containing the formatted message." -msgstr "" -"Équivalent à :meth:`.as_bytes()`. Permet à ``bytes(msg)`` de produire un " -"objet bytes contenant le message formaté." - -#: library/email.compat32-message.rst:154 -msgid "" -"Return ``True`` if the message's payload is a list of sub-" -"\\ :class:`Message` objects, otherwise return ``False``. " -"When :meth:`is_multipart` returns ``False``, the payload should be a string " -"object (which might be a CTE encoded binary payload). (Note " -"that :meth:`is_multipart` returning ``True`` does not necessarily mean that " -"\"msg.get_content_maintype() == 'multipart'\" will return the ``True``. For " -"example, ``is_multipart`` will return ``True`` when the :class:`Message` is " -"of type ``message/rfc822``.)" -msgstr "" -"Renvoie ``True`` si la charge utile du message est une liste d'objets sous-" -"\\ :class:`Message`, sinon renvoie ``False``. Lorsque :meth:`is_multipart` " -"renvoie ``False``, la charge utile doit être un objet chaîne (qui peut être " -"une charge utile binaire encodée CTE). (Notez que :meth:`is_multipart` " -"renvoyant ``True`` ne signifie pas nécessairement que " -"``msg.get_content_maintype() == 'multipart'`` renvoie ``True``. Par exemple, " -"``is_multipart`` renvoie ``True`` lorsque le :class:`Message` est de type " -"``message/rfc822``.)" - -#: library/email.compat32-message.rst:166 -msgid "" -"Set the message's envelope header to *unixfrom*, which should be a string." -msgstr "" -"Définit l'en-tête de l'enveloppe du message sur *unixfrom*, qui doit être " -"une chaîne." - -#: library/email.compat32-message.rst:171 -msgid "" -"Return the message's envelope header. Defaults to ``None`` if the envelope " -"header was never set." -msgstr "" -"Renvoie l'en-tête de l'enveloppe du message. La valeur par défaut est " -"``None`` si l'en-tête de l'enveloppe n'a jamais été défini." - -#: library/email.compat32-message.rst:177 -msgid "" -"Add the given *payload* to the current payload, which must be ``None`` or a " -"list of :class:`Message` objects before the call. After the call, the " -"payload will always be a list of :class:`Message` objects. If you want to " -"set the payload to a scalar object (e.g. a string), use :meth:`set_payload` " -"instead." -msgstr "" -"Ajoute le *payload* donné à la charge utile actuelle, qui doit être ``None`` " -"ou une liste d'objets :class:`Message` avant l'appel. Après l'appel, la " -"charge utile sera toujours une liste d'objets :class:`Message`. Si vous " -"souhaitez définir la charge utile sur un objet scalaire (par exemple, une " -"chaîne), utilisez :meth:`set_payload` à la place." - -#: library/email.compat32-message.rst:183 -#, fuzzy -msgid "" -"This is a legacy method. On the :class:`~email.message.EmailMessage` class " -"its functionality is replaced " -"by :meth:`~email.message.EmailMessage.set_content` and the related ``make`` " -"and ``add`` methods." -msgstr "" -"Il s'agit d'une ancienne méthode. Dans la " -"classe :class:`~email.emailmessage.EmailMessage` sa fonctionnalité est " -"remplacée par :meth:`~email.message.EmailMessage.set_content` et les " -"méthodes associées ``make`` et ``add``." - -#: library/email.compat32-message.rst:191 -msgid "" -"Return the current payload, which will be a list of :class:`Message` objects " -"when :meth:`is_multipart` is ``True``, or a string when :meth:`is_multipart` " -"is ``False``. If the payload is a list and you mutate the list object, you " -"modify the message's payload in place." -msgstr "" -"Renvoie la charge utile actuelle, qui est une liste " -"d'objets :class:`Message` lorsque :meth:`is_multipart` est ``True``, ou une " -"chaîne lorsque :meth:`is_multipart` est ``False``. Si la charge utile est " -"une liste et que vous modifiez l'objet liste, vous modifiez la charge utile " -"du message « sur place »." - -#: library/email.compat32-message.rst:196 -msgid "" -"With optional argument *i*, :meth:`get_payload` will return the *i*-th " -"element of the payload, counting from zero, if :meth:`is_multipart` is " -"``True``. An :exc:`IndexError` will be raised if *i* is less than 0 or " -"greater than or equal to the number of items in the payload. If the payload " -"is a string (i.e. :meth:`is_multipart` is ``False``) and *i* is given, " -"a :exc:`TypeError` is raised." -msgstr "" -"Avec l'argument optionnel *i*, :meth:`get_payload` renvoie le *i*:sup:`ème` " -"élément de la charge utile, en partant de zéro, si :meth:`is_multipart` vaut " -"``True``. Une :exc:`IndexError` est levée si *i* est inférieur à 0 ou " -"supérieur ou égal au nombre d'éléments dans la charge utile. Si la charge " -"utile est une chaîne (c'est-à-dire que :meth:`is_multipart` est ``False``) " -"et que *i* est donné, une :exc:`TypeError` est levée." - -#: library/email.compat32-message.rst:203 -msgid "" -"Optional *decode* is a flag indicating whether the payload should be decoded " -"or not, according to the :mailheader:`Content-Transfer-Encoding` header. " -"When ``True`` and the message is not a multipart, the payload will be " -"decoded if this header's value is ``quoted-printable`` or ``base64``. If " -"some other encoding is used, or :mailheader:`Content-Transfer-Encoding` " -"header is missing, the payload is returned as-is (undecoded). In all cases " -"the returned value is binary data. If the message is a multipart and the " -"*decode* flag is ``True``, then ``None`` is returned. If the payload is " -"base64 and it was not perfectly formed (missing padding, characters outside " -"the base64 alphabet), then an appropriate defect will be added to the " -"message's defect property (:class:`~email.errors.InvalidBase64PaddingDefect` " -"or :class:`~email.errors.InvalidBase64CharactersDefect`, respectively)." -msgstr "" -"*decode* est un indicateur facultatif indiquant si la charge utile doit être " -"décodée ou non, selon l'en-tête :mailheader:`Content-Transfer-Encoding`. " -"Lorsqu'il vaut ``True`` et que le message n'est pas en plusieurs parties, la " -"charge utile est décodée si la valeur de cet en-tête est ``quoted-" -"printable`` ou ``base64``. Si un autre encodage est utilisé, ou si l'en-" -"tête :mailheader:`Content-Transfer-Encoding` est manquant, la charge utile " -"est renvoyée telle quelle (non décodée). Dans tous les cas, la valeur " -"renvoyée est une donnée binaire. Si le message est en plusieurs parties et " -"que l'indicateur *decode* est ``True``, alors ``None`` est renvoyé. Si la " -"charge utile est en base64 et qu'elle n'a pas été parfaitement formée " -"(remplissage manquant, caractères en dehors de l'alphabet base64), alors un " -"défaut approprié est ajouté à la propriété de défaut du message " -"(:class:`~email.errors.InvalidBase64PaddingDefect` " -"ou :class:`~email.errors.InvalidBase64CharactersDefect`, respectivement)." - -#: library/email.compat32-message.rst:217 -msgid "" -"When *decode* is ``False`` (the default) the body is returned as a string " -"without decoding the :mailheader:`Content-Transfer-Encoding`. However, for " -"a :mailheader:`Content-Transfer-Encoding` of 8bit, an attempt is made to " -"decode the original bytes using the ``charset`` specified by " -"the :mailheader:`Content-Type` header, using the ``replace`` error handler. " -"If no ``charset`` is specified, or if the ``charset`` given is not " -"recognized by the email package, the body is decoded using the default ASCII " -"charset." -msgstr "" -"Lorsque *decode* est ``False`` (valeur par défaut), le corps est renvoyé " -"sous forme de chaîne sans décoder le :mailheader:`Content-Transfer-" -"Encoding`. Cependant, pour un :mailheader:`Content-Transfer-Encoding` de 8 " -"bits, une tentative est faite pour décoder les octets d'origine en utilisant " -"le ``charset`` spécifié par l'en-tête :mailheader:`Content-Type`, en " -"utilisant le gestionnaire d'erreurs ``replace``. Si aucun ``charset`` n'est " -"spécifié, ou si le ``charset`` donné n'est pas reconnu par le paquet de " -"messagerie, le corps est décodé en utilisant le jeu de caractères ASCII par " -"défaut." - -#: library/email.compat32-message.rst:226 -#, fuzzy -msgid "" -"This is a legacy method. On the :class:`~email.message.EmailMessage` class " -"its functionality is replaced " -"by :meth:`~email.message.EmailMessage.get_content` " -"and :meth:`~email.message.EmailMessage.iter_parts`." -msgstr "" -"Il s'agit d'une ancienne méthode. Dans la " -"classe :class:`~email.emailmessage.EmailMessage` sa fonctionnalité est " -"remplacée par :meth:`~email.message.EmailMessage.get_content` " -"et :meth:`~email.message.EmailMessage.iter_parts`." - -#: library/email.compat32-message.rst:234 -msgid "" -"Set the entire message object's payload to *payload*. It is the client's " -"responsibility to ensure the payload invariants. Optional *charset* sets " -"the message's default character set; see :meth:`set_charset` for details." -msgstr "" -"Définit la charge utile de l'objet message entier à *payload*. Il est de la " -"responsabilité du client de s'assurer des invariants de la charge utile. Le " -"*charset* facultatif définit le jeu de caractères par défaut du message ; " -"voir :meth:`set_charset` pour plus de détails." - -#: library/email.compat32-message.rst:238 -#, fuzzy -msgid "" -"This is a legacy method. On the :class:`~email.message.EmailMessage` class " -"its functionality is replaced " -"by :meth:`~email.message.EmailMessage.set_content`." -msgstr "" -"Il s'agit d'une ancienne méthode. Dans la " -"classe :class:`~email.emailmessage.EmailMessage` sa fonctionnalité est " -"remplacée par :meth:`~email.message.EmailMessage.set_content`." - -#: library/email.compat32-message.rst:245 -msgid "" -"Set the character set of the payload to *charset*, which can either be " -"a :class:`~email.charset.Charset` instance (see :mod:`email.charset`), a " -"string naming a character set, or ``None``. If it is a string, it will be " -"converted to a :class:`~email.charset.Charset` instance. If *charset* is " -"``None``, the ``charset`` parameter will be removed from " -"the :mailheader:`Content-Type` header (the message will not be otherwise " -"modified). Anything else will generate a :exc:`TypeError`." -msgstr "" -"Définit le jeu de caractères de la charge utile à *charset*, qui peut être " -"soit une instance de :class:`~email.charset.Charset` " -"(voir :mod:`email.charset`), une chaîne nommant un jeu de caractères ou " -"``None``. S'il s'agit d'une chaîne, elle est convertie en une " -"instance :class:`~email.charset.Charset`. Si *charset* est ``None``, le " -"paramètre ``charset`` est supprimé de l'en-tête :mailheader:`Content-Type` " -"(le message n'est pas modifié autrement). Tout le reste lève " -"une :exc:`TypeError`." - -#: library/email.compat32-message.rst:253 -msgid "" -"If there is no existing :mailheader:`MIME-Version` header one will be " -"added. If there is no existing :mailheader:`Content-Type` header, one will " -"be added with a value of :mimetype:`text/plain`. Whether " -"the :mailheader:`Content-Type` header already exists or not, its ``charset`` " -"parameter will be set to *charset.output_charset*. If " -"*charset.input_charset* and *charset.output_charset* differ, the payload " -"will be re-encoded to the *output_charset*. If there is no " -"existing :mailheader:`Content-Transfer-Encoding` header, then the payload " -"will be transfer-encoded, if needed, using the " -"specified :class:`~email.charset.Charset`, and a header with the appropriate " -"value will be added. If a :mailheader:`Content-Transfer-Encoding` header " -"already exists, the payload is assumed to already be correctly encoded using " -"that :mailheader:`Content-Transfer-Encoding` and is not modified." -msgstr "" -"S'il n'y a pas d'en-tête :mailheader:`MIME-Version` existant, un en-tête est " -"ajouté. S'il n'y a pas d'en-tête :mailheader:`Content-Type`, un en-tête est " -"ajouté avec une valeur de :mimetype:`text/plain`. Que l'en-" -"tête :mailheader:`Content-Type` existe déjà ou non, son paramètre " -"``charset`` est défini sur *charset.output_charset*. Si " -"*charset.input_charset* et *charset.output_charset* diffèrent, la charge " -"utile est ré-encodée dans le *output_charset*. S'il n'y a pas d'en-" -"tête :mailheader:`Content-Transfer-Encoding` existant, alors la charge utile " -"est encodée par transfert, si nécessaire, en utilisant " -"le :class:`~email.charset.Charset` spécifié et un en-tête avec cette valeur " -"est ajouté. Si un en-tête :mailheader:`Content-Transfer-Encoding` existe " -"déjà, la charge utile est supposée être déjà correctement encodée à l'aide " -"de cet en-tête :mailheader:`Content-Transfer-Encoding` et n'est pas modifiée." - -#: library/email.compat32-message.rst:267 -#, fuzzy -msgid "" -"This is a legacy method. On the :class:`~email.message.EmailMessage` class " -"its functionality is replaced by the *charset* parameter of " -"the :meth:`email.message.EmailMessage.set_content` method." -msgstr "" -"Il s'agit d'une ancienne méthode. Dans la " -"classe :class:`~email.emailmessage.EmailMessage` sa fonctionnalité est " -"remplacée par le paramètre *charset* de la " -"méthode :meth:`email.emailmessage.EmailMessage.set_content`." - -#: library/email.compat32-message.rst:275 -msgid "" -"Return the :class:`~email.charset.Charset` instance associated with the " -"message's payload." -msgstr "" -"Renvoie l'instance :class:`~email.charset.Charset` associée à la charge " -"utile du message." - -#: library/email.compat32-message.rst:278 -#, fuzzy -msgid "" -"This is a legacy method. On the :class:`~email.message.EmailMessage` class " -"it always returns ``None``." -msgstr "" -"Il s'agit d'une ancienne méthode. Dans la " -"classe :class:`~email.emailmessage.EmailMessage`, elle renvoie toujours " -"``None``." - -#: library/email.compat32-message.rst:283 -msgid "" -"The following methods implement a mapping-like interface for accessing the " -"message's :rfc:`2822` headers. Note that there are some semantic " -"differences between these methods and a normal mapping (i.e. dictionary) " -"interface. For example, in a dictionary there are no duplicate keys, but " -"here there may be duplicate message headers. Also, in dictionaries there is " -"no guaranteed order to the keys returned by :meth:`keys`, but in " -"a :class:`Message` object, headers are always returned in the order they " -"appeared in the original message, or were added to the message later. Any " -"header deleted and then re-added are always appended to the end of the " -"header list." -msgstr "" -"Les méthodes suivantes implémentent une interface de type correspondance " -"pour accéder aux en-têtes :rfc:`2822` du message. Notez qu'il existe des " -"différences sémantiques entre ces méthodes et une interface de " -"correspondance normale (c'est-à-dire un dictionnaire). Par exemple, dans un " -"dictionnaire, il n'y a pas de clés en double, mais ici, il peut y avoir des " -"en-têtes de message en double. De plus, dans les dictionnaires, il n'y a pas " -"d'ordre garanti pour les clés renvoyées par :meth:`keys`, mais dans un " -"objet :class:`Message`, les en-têtes sont toujours renvoyés dans l'ordre " -"dans lequel ils sont apparus dans le message d'origine, ou ont été ajoutés " -"au message plus tard. Tout en-tête supprimé puis rajouté est toujours ajouté " -"à la fin de la liste des en-têtes." - -#: library/email.compat32-message.rst:293 -msgid "" -"These semantic differences are intentional and are biased toward maximal " -"convenience." -msgstr "" -"Ces différences sémantiques sont intentionnelles et visent une commodité " -"maximale." - -#: library/email.compat32-message.rst:296 -msgid "" -"Note that in all cases, any envelope header present in the message is not " -"included in the mapping interface." -msgstr "" -"Notez que dans tous les cas, tout en-tête d'enveloppe présent dans le " -"message n'est pas inclus dans l'interface de correspondance." - -#: library/email.compat32-message.rst:299 -msgid "" -"In a model generated from bytes, any header values that (in contravention of " -"the RFCs) contain non-ASCII bytes will, when retrieved through this " -"interface, be represented as :class:`~email.header.Header` objects with a " -"charset of ``unknown-8bit``." -msgstr "" -"Dans un modèle généré à partir d'octets, toutes les valeurs d'en-tête qui " -"(en violation des RFC) contiennent des octets non-ASCII sont, lorsqu'elles " -"sont récupérées via cette interface, représentées comme des " -"objets :class:`~email.header.Header` avec un *charset* à ``unknown-8bit``." - -#: library/email.compat32-message.rst:307 -msgid "Return the total number of headers, including duplicates." -msgstr "Renvoie le nombre total d'en-têtes, y compris les doublons." - -#: library/email.compat32-message.rst:312 -msgid "" -"Return ``True`` if the message object has a field named *name*. Matching is " -"done case-insensitively and *name* should not include the trailing colon. " -"Used for the ``in`` operator, e.g.::" -msgstr "" -"Renvoie ``True`` si l'objet message a un champ nommé *name*. La " -"correspondance est insensible à la casse et *name* ne doit pas inclure les " -"deux-points à la fin. Utilisé pour l'opérateur ``in``, par exemple ::" - -#: library/email.compat32-message.rst:322 -msgid "" -"Return the value of the named header field. *name* should not include the " -"colon field separator. If the header is missing, ``None`` is returned; " -"a :exc:`KeyError` is never raised." -msgstr "" -"Renvoie la valeur du champ d'en-tête désigné. *name* ne doit pas inclure le " -"séparateur de champ deux-points. Si l'en-tête est manquant, ``None`` est " -"renvoyé ; :exc:`KeyError` n'est jamais levée." - -#: library/email.compat32-message.rst:326 -msgid "" -"Note that if the named field appears more than once in the message's " -"headers, exactly which of those field values will be returned is undefined. " -"Use the :meth:`get_all` method to get the values of all the extant named " -"headers." -msgstr "" -"Notez que si le champ désigné apparaît plus d'une fois dans les en-têtes du " -"message, la valeur exacte renvoyée n'est pas définie. Utilisez la " -"méthode :meth:`get_all` pour obtenir les valeurs de tous les en-têtes " -"existants." - -#: library/email.compat32-message.rst:334 -msgid "" -"Add a header to the message with field name *name* and value *val*. The " -"field is appended to the end of the message's existing fields." -msgstr "" -"Ajoute un en-tête au message avec le nom de champ *name* et la valeur *val*. " -"Le champ est ajouté à la fin des champs existants du message." - -#: library/email.compat32-message.rst:337 -msgid "" -"Note that this does *not* overwrite or delete any existing header with the " -"same name. If you want to ensure that the new header is the only one " -"present in the message with field name *name*, delete the field first, e.g.::" -msgstr "" -"Notez que cela n'écrase *pas* ou ne supprime aucun en-tête existant portant " -"le même nom. Si vous voulez vous assurer que le nouvel en-tête est le seul " -"présent dans le message avec le nom de champ *name*, supprimez d'abord le " -"champ, par exemple ::" - -#: library/email.compat32-message.rst:347 -msgid "" -"Delete all occurrences of the field with name *name* from the message's " -"headers. No exception is raised if the named field isn't present in the " -"headers." -msgstr "" -"Supprime toutes les occurrences du champ portant le nom *name* des en-têtes " -"du message. Aucune exception n'est levée si le champ désigné n'est pas " -"présent dans les en-têtes." - -#: library/email.compat32-message.rst:354 -msgid "Return a list of all the message's header field names." -msgstr "Renvoie une liste de tous les noms de champs d'en-tête du message." - -#: library/email.compat32-message.rst:359 -msgid "Return a list of all the message's field values." -msgstr "Renvoie une liste de toutes les valeurs de champ du message." - -#: library/email.compat32-message.rst:364 -msgid "" -"Return a list of 2-tuples containing all the message's field headers and " -"values." -msgstr "" -"Renvoie une liste de couples contenant tous les en-têtes et valeurs de " -"champs associées du message." - -#: library/email.compat32-message.rst:370 -#, fuzzy -msgid "" -"Return the value of the named header field. This is identical " -"to :meth:`~object.__getitem__` except that optional *failobj* is returned if " -"the named header is missing (defaults to ``None``)." -msgstr "" -"Renvoie la valeur du champ d'en-tête désigné. C'est identique " -"à :meth:`__getitem__` sauf que *failobj* est renvoyé si l'en-tête désigné " -"est manquant (facultatif, par défaut à ``None``)." - -#: library/email.compat32-message.rst:374 -msgid "Here are some additional useful methods:" -msgstr "Voici quelques méthodes supplémentaires utiles :" - -#: library/email.compat32-message.rst:379 -msgid "" -"Return a list of all the values for the field named *name*. If there are no " -"such named headers in the message, *failobj* is returned (defaults to " -"``None``)." -msgstr "" -"Renvoie la liste de toutes les valeurs du champ nommé *name*. S'il n'y a pas " -"d'en-têtes de ce nom dans le message, *failobj* est renvoyé (la valeur par " -"défaut est ``None``)." - -#: library/email.compat32-message.rst:386 -msgid "" -"Extended header setting. This method is similar to :meth:`__setitem__` " -"except that additional header parameters can be provided as keyword " -"arguments. *_name* is the header field to add and *_value* is the *primary* " -"value for the header." -msgstr "" -"Définition de paramètres d'en-têtes étendus. Cette méthode est similaire " -"à :meth:`__setitem__` sauf que des paramètres d'en-tête supplémentaires " -"peuvent être fournis en tant qu'arguments nommés. *_name* est le champ d'en-" -"tête à ajouter et *_value* est la valeur *primaire* de l'en-tête." - -#: library/email.compat32-message.rst:391 -msgid "" -"For each item in the keyword argument dictionary *_params*, the key is taken " -"as the parameter name, with underscores converted to dashes (since dashes " -"are illegal in Python identifiers). Normally, the parameter will be added " -"as ``key=\"value\"`` unless the value is ``None``, in which case only the " -"key will be added. If the value contains non-ASCII characters, it can be " -"specified as a three tuple in the format ``(CHARSET, LANGUAGE, VALUE)``, " -"where ``CHARSET`` is a string naming the charset to be used to encode the " -"value, ``LANGUAGE`` can usually be set to ``None`` or the empty string " -"(see :rfc:`2231` for other possibilities), and ``VALUE`` is the string value " -"containing non-ASCII code points. If a three tuple is not passed and the " -"value contains non-ASCII characters, it is automatically encoded " -"in :rfc:`2231` format using a ``CHARSET`` of ``utf-8`` and a ``LANGUAGE`` of " -"``None``." -msgstr "" -"Pour chaque élément du dictionnaire d'arguments nommés *_params*, la clé est " -"prise comme nom de paramètre, avec des traits de soulignement convertis en " -"tirets (puisque les tirets sont illégaux dans les identifiants Python). " -"Normalement, le paramètre est ajouté en tant que ``key=\"value\"`` sauf si " -"la valeur est ``None``, auquel cas seule la clé est ajoutée. Si la valeur " -"contient des caractères non-ASCII, elle peut être spécifiée sous la forme " -"d'un triplet au format ``(CHARSET, LANGUAGE, VALUE)``, où ``CHARSET`` est " -"une chaîne nommant le jeu de caractères à utiliser pour coder la valeur, " -"``LANGUAGE`` peut généralement être défini sur ``None`` ou la chaîne vide " -"(voir la :rfc:`2231` pour d'autres possibilités), et ``VALUE`` est la valeur " -"de chaîne contenant des points de code non-ASCII. Si un triplet n'est pas " -"passé et que la valeur contient des caractères non-ASCII, elle est " -"automatiquement encodée au format :rfc:`2231` en utilisant un ``CHARSET`` à " -"``utf-8`` et un ``LANGUAGE`` à ``None``." - -#: library/email.compat32-message.rst:405 -msgid "Here's an example::" -msgstr "Voici un exemple ::" - -#: library/email.compat32-message.rst:409 -msgid "This will add a header that looks like ::" -msgstr "Cela ajoute un en-tête qui ressemble à ::" - -#: library/email.compat32-message.rst:413 -msgid "An example with non-ASCII characters::" -msgstr "Un exemple avec des caractères non-ASCII ::" - -#: library/email.compat32-message.rst:418 -msgid "Which produces ::" -msgstr "qui produit ::" - -#: library/email.compat32-message.rst:425 -msgid "" -"Replace a header. Replace the first header found in the message that " -"matches *_name*, retaining header order and field name case. If no matching " -"header was found, a :exc:`KeyError` is raised." -msgstr "" -"Remplace un en-tête. Remplace le premier en-tête trouvé dans le message qui " -"correspond à *_name*, en conservant l'ordre des en-têtes et la casse des " -"noms de champs. Si aucun en-tête correspondant n'a été trouvé, " -"une :exc:`KeyError` est levée." - -#: library/email.compat32-message.rst:432 -msgid "" -"Return the message's content type. The returned string is coerced to lower " -"case of the form :mimetype:`maintype/subtype`. If there was " -"no :mailheader:`Content-Type` header in the message the default type as " -"given by :meth:`get_default_type` will be returned. Since according " -"to :rfc:`2045`, messages always have a default " -"type, :meth:`get_content_type` will always return a value." -msgstr "" -"Renvoie le type de contenu du message. La chaîne renvoyée est convertie en " -"minuscules sous la forme :mimetype:`maintype/subtype`. S'il n'y avait pas " -"d'en-tête :mailheader:`Content-Type` dans le message, le type par défaut tel " -"qu'indiqué par :meth:`get_default_type` est renvoyé. Puisque selon " -"la :rfc:`2045`, les messages ont toujours un type par " -"défaut, :meth:`get_content_type` renvoie toujours une valeur." - -#: library/email.compat32-message.rst:439 -msgid "" -":rfc:`2045` defines a message's default type to be :mimetype:`text/plain` " -"unless it appears inside a :mimetype:`multipart/digest` container, in which " -"case it would be :mimetype:`message/rfc822`. If the :mailheader:`Content-" -"Type` header has an invalid type specification, :rfc:`2045` mandates that " -"the default type be :mimetype:`text/plain`." -msgstr "" -"La :rfc:`2045` définit le type par défaut d'un message comme " -"étant :mimetype:`text/plain` sauf s'il apparaît dans un " -"conteneur :mimetype:`multipart/digest`, auquel cas ce " -"serait :mimetype:`message/rfc822`. Si l'en-tête :mailheader:`Content-Type` a " -"une spécification de type invalide, la :rfc:`2045` exige que le type par " -"défaut soit :mimetype:`text/plain`." - -#: library/email.compat32-message.rst:448 -msgid "" -"Return the message's main content type. This is the :mimetype:`maintype` " -"part of the string returned by :meth:`get_content_type`." -msgstr "" -"Renvoie le type de contenu principal du message. C'est la " -"partie :mimetype:`maintype` de la chaîne renvoyée " -"par :meth:`get_content_type`." - -#: library/email.compat32-message.rst:454 -msgid "" -"Return the message's sub-content type. This is the :mimetype:`subtype` part " -"of the string returned by :meth:`get_content_type`." -msgstr "" -"Renvoie le type de sous-contenu du message. C'est la " -"partie :mimetype:`subtype` de la chaîne renvoyée " -"par :meth:`get_content_type`." - -#: library/email.compat32-message.rst:460 -msgid "" -"Return the default content type. Most messages have a default content type " -"of :mimetype:`text/plain`, except for messages that are subparts " -"of :mimetype:`multipart/digest` containers. Such subparts have a default " -"content type of :mimetype:`message/rfc822`." -msgstr "" -"Renvoie le type de contenu par défaut. La plupart des messages ont un type " -"de contenu par défaut de :mimetype:`text/plain`, à l'exception des messages " -"qui sont des sous-parties des conteneurs :mimetype:`multipart/digest`. Ces " -"sous-parties ont un type de contenu par défaut de :mimetype:`message/rfc822`." - -#: library/email.compat32-message.rst:468 -msgid "" -"Set the default content type. *ctype* should either be :mimetype:`text/" -"plain` or :mimetype:`message/rfc822`, although this is not enforced. The " -"default content type is not stored in the :mailheader:`Content-Type` header." -msgstr "" -"Définit le type de contenu par défaut. *ctype* doit être :mimetype:`text/" -"plain` ou :mimetype:`message/rfc822`, bien que cela ne soit pas appliqué. Le " -"type de contenu par défaut n'est pas stocké dans l'en-" -"tête :mailheader:`Content-Type`." - -#: library/email.compat32-message.rst:476 -msgid "" -"Return the message's :mailheader:`Content-Type` parameters, as a list. The " -"elements of the returned list are 2-tuples of key/value pairs, as split on " -"the ``'='`` sign. The left hand side of the ``'='`` is the key, while the " -"right hand side is the value. If there is no ``'='`` sign in the parameter " -"the value is the empty string, otherwise the value is as described " -"in :meth:`get_param` and is unquoted if optional *unquote* is ``True`` (the " -"default)." -msgstr "" -"Renvoie les paramètres :mailheader:`Content-Type` du message, sous forme de " -"liste. Les éléments de la liste renvoyée sont des couples clé-valeur, ayant " -"été séparés sur le signe ``'='``. Le côté gauche du ``'='`` est la clé, " -"tandis que le côté droit est la valeur. S'il n'y a pas de signe ``'='`` dans " -"le paramètre, la valeur est la chaîne vide, sinon la valeur est telle que " -"décrite dans :meth:`get_param` et n'est pas entre guillemets si l'option " -"*unquote* est ``True`` (la valeur par défaut)." - -#: library/email.compat32-message.rst:484 -msgid "" -"Optional *failobj* is the object to return if there is " -"no :mailheader:`Content-Type` header. Optional *header* is the header to " -"search instead of :mailheader:`Content-Type`." -msgstr "" -"*failobj* (facultatif) est l'objet à renvoyer s'il n'y a pas d'en-" -"tête :mailheader:`Content-Type`. *header* (facultatif) est l'en-tête à " -"rechercher au lieu de :mailheader:`Content-Type`." - -#: library/email.compat32-message.rst:488 -#: library/email.compat32-message.rst:526 -#, fuzzy -msgid "" -"This is a legacy method. On the :class:`~email.message.EmailMessage` class " -"its functionality is replaced by the *params* property of the individual " -"header objects returned by the header access methods." -msgstr "" -"Il s'agit d'une ancienne méthode. Dans la " -"classe :class:`~email.emailmessage.EmailMessage`, sa fonctionnalité est " -"remplacée par la propriété *params* des objets d'en-tête individuels " -"renvoyés par les méthodes d'accès aux en-têtes." - -#: library/email.compat32-message.rst:496 -msgid "" -"Return the value of the :mailheader:`Content-Type` header's parameter " -"*param* as a string. If the message has no :mailheader:`Content-Type` " -"header or if there is no such parameter, then *failobj* is returned " -"(defaults to ``None``)." -msgstr "" -"Renvoie la valeur du paramètre *param* de l'en-tête :mailheader:`Content-" -"Type` sous forme de chaîne. Si le message n'a pas d'en-" -"tête :mailheader:`Content-Type` ou s'il n'y a pas un tel paramètre, alors " -"*failobj* est renvoyé (par défaut à ``None``)." - -#: library/email.compat32-message.rst:501 -msgid "" -"Optional *header* if given, specifies the message header to use instead " -"of :mailheader:`Content-Type`." -msgstr "" -"*header* s'il est fourni, spécifie l'en-tête de message à utiliser à la " -"place de :mailheader:`Content-Type`." - -#: library/email.compat32-message.rst:504 -msgid "" -"Parameter keys are always compared case insensitively. The return value can " -"either be a string, or a 3-tuple if the parameter was :rfc:`2231` encoded. " -"When it's a 3-tuple, the elements of the value are of the form ``(CHARSET, " -"LANGUAGE, VALUE)``. Note that both ``CHARSET`` and ``LANGUAGE`` can be " -"``None``, in which case you should consider ``VALUE`` to be encoded in the " -"``us-ascii`` charset. You can usually ignore ``LANGUAGE``." -msgstr "" -"Les clés en paramètre sont toujours comparées sans tenir compte de la casse. " -"La valeur de retour peut être soit une chaîne, soit un triplet si le " -"paramètre a été encodé selon la :rfc:`2231`. Lorsqu'il s'agit d'un triplet, " -"les éléments de la valeur sont de la forme ``(CHARSET, LANGUAGE, VALUE)``. " -"Notez que ``CHARSET`` et ``LANGUAGE`` peuvent être ``None``, vous devriez " -"alors considérer que ``VALUE`` est encodé dans le jeu de caractères ``us-" -"ascii``. Vous pouvez généralement ignorer ``LANGUAGE``." - -#: library/email.compat32-message.rst:512 -msgid "" -"If your application doesn't care whether the parameter was encoded as " -"in :rfc:`2231`, you can collapse the parameter value by " -"calling :func:`email.utils.collapse_rfc2231_value`, passing in the return " -"value from :meth:`get_param`. This will return a suitably decoded Unicode " -"string when the value is a tuple, or the original string unquoted if it " -"isn't. For example::" -msgstr "" -"Si votre application ne se soucie pas de savoir si le paramètre a été encodé " -"conformément à la :rfc:`2231`, vous pouvez réduire la valeur du paramètre en " -"appelant :func:`email.utils.collapse_rfc2231_value`, en transmettant la " -"valeur de retour de :meth:`get_param`. Cela renverra une chaîne Unicode " -"convenablement décodée lorsque la valeur est un *n*-uplet, ou la chaîne " -"d'origine sans guillemets si ce n'est pas le cas. Par exemple ::" - -#: library/email.compat32-message.rst:522 -msgid "" -"In any case, the parameter value (either the returned string, or the " -"``VALUE`` item in the 3-tuple) is always unquoted, unless *unquote* is set " -"to ``False``." -msgstr "" -"Dans tous les cas, la valeur du paramètre (soit la chaîne renvoyée, soit " -"l'élément ``VALUE`` dans le triplet) est toujours sans guillemets, sauf si " -"*unquote* est défini sur ``False``." - -#: library/email.compat32-message.rst:535 -msgid "" -"Set a parameter in the :mailheader:`Content-Type` header. If the parameter " -"already exists in the header, its value will be replaced with *value*. If " -"the :mailheader:`Content-Type` header as not yet been defined for this " -"message, it will be set to :mimetype:`text/plain` and the new parameter " -"value will be appended as per :rfc:`2045`." -msgstr "" -"Définit un paramètre dans l'en-tête :mailheader:`Content-Type`. Si le " -"paramètre existe déjà dans l'en-tête, sa valeur est remplacée par *value*. " -"Si l'en-tête :mailheader:`Content-Type` n'a pas encore été défini pour ce " -"message, il est défini à :mimetype:`text/plain` et la nouvelle valeur du " -"paramètre est ajoutée conformément à la :rfc:`2045`." - -#: library/email.compat32-message.rst:541 -msgid "" -"Optional *header* specifies an alternative header to :mailheader:`Content-" -"Type`, and all parameters will be quoted as necessary unless optional " -"*requote* is ``False`` (the default is ``True``)." -msgstr "" -"L'option *header* spécifie un en-tête alternatif à :mailheader:`Content-" -"Type`, et tous les paramètres seront entre guillemets si nécessaire sauf si " -"l'option *requote* est ``False`` (la valeur par défaut est ``True``)." - -#: library/email.compat32-message.rst:545 -msgid "" -"If optional *charset* is specified, the parameter will be encoded according " -"to :rfc:`2231`. Optional *language* specifies the RFC 2231 language, " -"defaulting to the empty string. Both *charset* and *language* should be " -"strings." -msgstr "" -"Si *charset* est spécifié, le paramètre est encodé selon la :rfc:`2231`. " -"*language* (facultatif) spécifie la langue RFC 2231, par défaut c'est la " -"chaîne vide. *charset* et *language* doivent être des chaînes." - -#: library/email.compat32-message.rst:550 -msgid "" -"If *replace* is ``False`` (the default) the header is moved to the end of " -"the list of headers. If *replace* is ``True``, the header will be updated " -"in place." -msgstr "" -"Si *replace* est ``False`` (valeur par défaut), l'en-tête est déplacé à la " -"fin de la liste des en-têtes. Si *replace* est ``True``, l'en-tête est mis à " -"jour « sur place »." - -# suit un : -#: library/email.compat32-message.rst:554 -msgid "``replace`` keyword was added." -msgstr "l'argument nommé ``replace`` a été ajouté." - -#: library/email.compat32-message.rst:559 -msgid "" -"Remove the given parameter completely from the :mailheader:`Content-Type` " -"header. The header will be re-written in place without the parameter or its " -"value. All values will be quoted as necessary unless *requote* is ``False`` " -"(the default is ``True``). Optional *header* specifies an alternative " -"to :mailheader:`Content-Type`." -msgstr "" -"Supprime complètement le paramètre donné de l'en-tête :mailheader:`Content-" -"Type`. L'en-tête est réécrit « sur place » sans le paramètre ou sa valeur. " -"Toutes les valeurs seront entre guillemets si nécessaire sauf si *requote* " -"est ``False`` (la valeur par défaut est ``True``). L'option *header* " -"spécifie une alternative à :mailheader:`Content-Type`." - -#: library/email.compat32-message.rst:568 -msgid "" -"Set the main type and subtype for the :mailheader:`Content-Type` header. " -"*type* must be a string in the form :mimetype:`maintype/subtype`, otherwise " -"a :exc:`ValueError` is raised." -msgstr "" -"Définit le type principal et le sous-type de l'en-tête :mailheader:`Content-" -"Type`. *type* doit être une chaîne sous la forme :mimetype:`maintype/" -"subtype`, sinon une :exc:`ValueError` est levée." - -#: library/email.compat32-message.rst:572 -msgid "" -"This method replaces the :mailheader:`Content-Type` header, keeping all the " -"parameters in place. If *requote* is ``False``, this leaves the existing " -"header's quoting as is, otherwise the parameters will be quoted (the " -"default)." -msgstr "" -"Cette méthode remplace l'en-tête :mailheader:`Content-Type`, en gardant tous " -"les paramètres en place. Si *requote* est ``False``, cela laisse les " -"guillemets de l'en-tête existant tels quels, sinon les paramètres sont mis " -"entre guillemets (par défaut)." - -#: library/email.compat32-message.rst:577 -msgid "" -"An alternative header can be specified in the *header* argument. When " -"the :mailheader:`Content-Type` header is set a :mailheader:`MIME-Version` " -"header is also added." -msgstr "" -"Un en-tête alternatif peut être spécifié dans l'argument *header*. Lorsque " -"l'en-tête :mailheader:`Content-Type` est défini, un en-" -"tête :mailheader:`MIME-Version` est également ajouté." - -#: library/email.compat32-message.rst:581 -#, fuzzy -msgid "" -"This is a legacy method. On the :class:`~email.message.EmailMessage` class " -"its functionality is replaced by the ``make_`` and ``add_`` methods." -msgstr "" -"Il s'agit d'une ancienne méthode. Dans la " -"classe :class:`~email.emailmessage.EmailMessage` sa fonctionnalité est " -"remplacée par les méthodes ``make_`` et ``add_``." - -#: library/email.compat32-message.rst:588 -msgid "" -"Return the value of the ``filename`` parameter of the :mailheader:`Content-" -"Disposition` header of the message. If the header does not have a " -"``filename`` parameter, this method falls back to looking for the ``name`` " -"parameter on the :mailheader:`Content-Type` header. If neither is found, or " -"the header is missing, then *failobj* is returned. The returned string will " -"always be unquoted as per :func:`email.utils.unquote`." -msgstr "" -"Renvoie la valeur du paramètre ``filename`` de l'en-" -"tête :mailheader:`Content-Disposition` du message. Si l'en-tête n'a pas de " -"paramètre ``filename``, cette méthode revient à rechercher le paramètre " -"``name`` dans l'en-tête :mailheader:`Content-Type`. Si aucun n'est trouvé, " -"ou si l'en-tête est manquant, alors *failobj* est renvoyé. La chaîne " -"renvoyée est toujours sans guillemets comme indiqué " -"par :func:`email.utils.unquote`." - -#: library/email.compat32-message.rst:599 -msgid "" -"Return the value of the ``boundary`` parameter of the :mailheader:`Content-" -"Type` header of the message, or *failobj* if either the header is missing, " -"or has no ``boundary`` parameter. The returned string will always be " -"unquoted as per :func:`email.utils.unquote`." -msgstr "" -"Renvoie la valeur du paramètre ``boundary`` de l'en-" -"tête :mailheader:`Content-Type` du message, ou *failobj* si l'en-tête est " -"manquant ou n'a pas de paramètre ``boundary``. La chaîne renvoyée est " -"toujours sans guillemets comme indiqué par :func:`email.utils.unquote`." - -#: library/email.compat32-message.rst:607 -msgid "" -"Set the ``boundary`` parameter of the :mailheader:`Content-Type` header to " -"*boundary*. :meth:`set_boundary` will always quote *boundary* if " -"necessary. A :exc:`~email.errors.HeaderParseError` is raised if the message " -"object has no :mailheader:`Content-Type` header." -msgstr "" -"Définit le paramètre ``boundary`` de l'en-tête :mailheader:`Content-Type` " -"sur *boundary*. :meth:`set_boundary` met toujours *boundary* entre " -"guillemets si nécessaire. Une :exc:`~email.errors.HeaderParseError` est " -"levée si l'objet message n'a pas d'en-tête :mailheader:`Content-Type`." - -#: library/email.compat32-message.rst:612 -msgid "" -"Note that using this method is subtly different than deleting the " -"old :mailheader:`Content-Type` header and adding a new one with the new " -"boundary via :meth:`add_header`, because :meth:`set_boundary` preserves the " -"order of the :mailheader:`Content-Type` header in the list of headers. " -"However, it does *not* preserve any continuation lines which may have been " -"present in the original :mailheader:`Content-Type` header." -msgstr "" -"Notez que l'utilisation de cette méthode est légèrement différente de la " -"suppression de l'ancien en-tête :mailheader:`Content-Type` et de l'ajout " -"d'un nouveau avec la nouvelle limite via :meth:`add_header`, " -"car :meth:`set_boundary` préserve l'ordre des en-têtes :mailheader:`Content-" -"Type` dans la liste des en-têtes. Cependant, elle ne conserve *pas* les " -"lignes de continuation qui auraient pu être présentes dans l'en-tête " -"original :mailheader:`Content-Type`." - -#: library/email.compat32-message.rst:622 -msgid "" -"Return the ``charset`` parameter of the :mailheader:`Content-Type` header, " -"coerced to lower case. If there is no :mailheader:`Content-Type` header, or " -"if that header has no ``charset`` parameter, *failobj* is returned." -msgstr "" -"Renvoie le paramètre ``charset`` de l'en-tête :mailheader:`Content-Type`, " -"mis en minuscules. S'il n'y a pas d'en-tête :mailheader:`Content-Type`, ou " -"si cet en-tête n'a pas de paramètre ``charset``, *failobj* est renvoyé." - -#: library/email.compat32-message.rst:626 -msgid "" -"Note that this method differs from :meth:`get_charset` which returns " -"the :class:`~email.charset.Charset` instance for the default encoding of the " -"message body." -msgstr "" -"Notez que cette méthode diffère de :meth:`get_charset` qui renvoie " -"l'instance :class:`~email.charset.Charset` avec l'encodage par défaut du " -"corps du message." - -#: library/email.compat32-message.rst:632 -msgid "" -"Return a list containing the character set names in the message. If the " -"message is a :mimetype:`multipart`, then the list will contain one element " -"for each subpart in the payload, otherwise, it will be a list of length 1." -msgstr "" -"Renvoie une liste contenant les noms des jeux de caractères dans le message. " -"Si le message est un :mimetype:`multipart`, alors la liste contient un " -"élément pour chaque sous-partie dans la charge utile, sinon, c'est une liste " -"de longueur 1." - -#: library/email.compat32-message.rst:636 -msgid "" -"Each item in the list will be a string which is the value of the ``charset`` " -"parameter in the :mailheader:`Content-Type` header for the represented " -"subpart. However, if the subpart has no :mailheader:`Content-Type` header, " -"no ``charset`` parameter, or is not of the :mimetype:`text` main MIME type, " -"then that item in the returned list will be *failobj*." -msgstr "" -"Chaque élément de la liste est une chaîne qui est la valeur du paramètre " -"``charset`` dans l'en-tête :mailheader:`Content-Type` pour la sous-partie " -"représentée. Cependant, si la sous-partie n'a pas d'en-" -"tête :mailheader:`Content-Type`, pas de paramètre ``charset``, ou n'est pas " -"du type MIME principal :mimetype:`text`, alors cet élément dans la liste " -"renvoyée est *failobj*." - -#: library/email.compat32-message.rst:646 -msgid "" -"Return the lowercased value (without parameters) of the " -"message's :mailheader:`Content-Disposition` header if it has one, or " -"``None``. The possible values for this method are *inline*, *attachment* or " -"``None`` if the message follows :rfc:`2183`." -msgstr "" -"Renvoie la valeur en minuscules (sans paramètres) de l'en-" -"tête :mailheader:`Content-Disposition` du message s'il en a un, ou ``None``. " -"Les valeurs possibles pour cette méthode sont *inline*, *attachment* ou " -"``None`` si le message suit la :rfc:`2183`." - -#: library/email.compat32-message.rst:655 -msgid "" -"The :meth:`walk` method is an all-purpose generator which can be used to " -"iterate over all the parts and subparts of a message object tree, in depth-" -"first traversal order. You will typically use :meth:`walk` as the iterator " -"in a ``for`` loop; each iteration returns the next subpart." -msgstr "" -"La méthode :meth:`walk` est un générateur polyvalent qui peut être utilisé " -"pour itérer sur toutes les parties et sous-parties d'une arborescence " -"d'objets de message, dans l'ordre de parcours en profondeur d'abord. Vous " -"utiliserez généralement :meth:`walk` comme itérateur dans une boucle " -"``for`` ; chaque itération renvoie la sous-partie suivante." - -#: library/email.compat32-message.rst:660 -msgid "" -"Here's an example that prints the MIME type of every part of a multipart " -"message structure:" -msgstr "" -"Voici un exemple qui imprime le type MIME de chaque partie d'une structure " -"de message en plusieurs parties :" - -#: library/email.compat32-message.rst:686 -msgid "" -"``walk`` iterates over the subparts of any part where :meth:`is_multipart` " -"returns ``True``, even though ``msg.get_content_maintype() == 'multipart'`` " -"may return ``False``. We can see this in our example by making use of the " -"``_structure`` debug helper function:" -msgstr "" -"``walk`` itère sur les sous-parties de toute partie où :meth:`is_multipart` " -"renvoie ``True``, même si ``msg.get_content_maintype() == 'multipart'`` peut " -"renvoyer ``False``. Nous pouvons le voir dans notre exemple en utilisant la " -"fonction d'aide au débogage ``_structure`` :" - -#: library/email.compat32-message.rst:713 -msgid "" -"Here the ``message`` parts are not ``multiparts``, but they do contain " -"subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends into the " -"subparts." -msgstr "" -"Ici, les parties ``message`` ne sont pas des ``multiparts``, mais elles " -"contiennent des sous-parties. ``is_multipart()`` renvoie ``True`` et " -"``walk`` descend dans les sous-parties." - -#: library/email.compat32-message.rst:718 -msgid "" -":class:`Message` objects can also optionally contain two instance " -"attributes, which can be used when generating the plain text of a MIME " -"message." -msgstr "" -"Les objets :class:`Message` peuvent aussi éventuellement contenir deux " -"attributs d'instance, qui peuvent être utilisés lors de la génération du " -"texte brut d'un message MIME." - -#: library/email.compat32-message.rst:724 -msgid "" -"The format of a MIME document allows for some text between the blank line " -"following the headers, and the first multipart boundary string. Normally, " -"this text is never visible in a MIME-aware mail reader because it falls " -"outside the standard MIME armor. However, when viewing the raw text of the " -"message, or when viewing the message in a non-MIME aware reader, this text " -"can become visible." -msgstr "" -"Le format d'un document MIME permet d'insérer du texte entre la ligne vide " -"suivant les en-têtes et la première chaîne de délimitation en plusieurs " -"parties. Normalement, ce texte n'est jamais visible dans un lecteur de " -"courrier compatible MIME car il ne fait pas partie du cadre MIME standard. " -"Toutefois, lors de l'affichage du texte brut du message ou lors de " -"l'affichage du message dans un lecteur non compatible MIME, ce texte peut " -"devenir visible." - -#: library/email.compat32-message.rst:731 -msgid "" -"The *preamble* attribute contains this leading extra-armor text for MIME " -"documents. When the :class:`~email.parser.Parser` discovers some text after " -"the headers but before the first boundary string, it assigns this text to " -"the message's *preamble* attribute. When " -"the :class:`~email.generator.Generator` is writing out the plain text " -"representation of a MIME message, and it finds the message has a *preamble* " -"attribute, it will write this text in the area between the headers and the " -"first boundary. See :mod:`email.parser` and :mod:`email.generator` for " -"details." -msgstr "" -"L'attribut *preamble* contient ce texte hors-cadre de tête pour les " -"documents MIME. Lorsque :class:`~email.parser.Parser` découvre du texte " -"après les en-têtes mais avant la première chaîne de délimitation, il " -"attribue ce texte à l'attribut *preamble* du message. " -"Lorsque :class:`~email.generator.Generator` écrit la représentation en texte " -"brut d'un message MIME, et qu'il trouve que le message a un attribut " -"*preamble*, il écrit ce texte dans la zone entre les en-têtes et la première " -"frontière. Voir :mod:`email.parser` et :mod:`email.generator` pour plus de " -"détails." - -#: library/email.compat32-message.rst:741 -msgid "" -"Note that if the message object has no preamble, the *preamble* attribute " -"will be ``None``." -msgstr "" -"Notez que si l'objet message n'a pas de préambule, l'attribut *preamble* est " -"``None``." - -#: library/email.compat32-message.rst:747 -msgid "" -"The *epilogue* attribute acts the same way as the *preamble* attribute, " -"except that it contains text that appears between the last boundary and the " -"end of the message." -msgstr "" -"L'attribut *epilogue* agit de la même manière que l'attribut *preamble*, " -"sauf qu'il contient du texte qui apparaît entre la dernière limite et la fin " -"du message." - -#: library/email.compat32-message.rst:751 -msgid "" -"You do not need to set the epilogue to the empty string in order for " -"the :class:`~email.generator.Generator` to print a newline at the end of the " -"file." -msgstr "" -"Vous n'avez pas besoin de définir l'épilogue sur la chaîne vide pour " -"que :class:`~email.generator.Generator` imprime une nouvelle ligne à la fin " -"du fichier." - -#: library/email.compat32-message.rst:758 -msgid "" -"The *defects* attribute contains a list of all the problems found when " -"parsing this message. See :mod:`email.errors` for a detailed description of " -"the possible parsing defects." -msgstr "" -"L'attribut *defects* contient une liste de tous les problèmes rencontrés " -"lors de l'analyse de ce message. Voir :mod:`email.errors` pour une " -"description détaillée des défauts d'analyse possibles." diff --git a/library/email.contentmanager.po b/library/email.contentmanager.po deleted file mode 100644 index 88b1e20d37..0000000000 --- a/library/email.contentmanager.po +++ /dev/null @@ -1,412 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-10-29 22:15+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/email.contentmanager.rst:2 -#, fuzzy -msgid ":mod:`!email.contentmanager`: Managing MIME Content" -msgstr ":mod:`email.contentmanager` : gestion du contenu MIME" - -#: library/email.contentmanager.rst:7 -msgid "**Source code:** :source:`Lib/email/contentmanager.py`" -msgstr "**Code source :** :source:`Lib/email/contentmanager.py`" - -#: library/email.contentmanager.rst:11 -msgid "[1]_" -msgstr "[1]_" - -#: library/email.contentmanager.rst:16 -msgid "" -"Base class for content managers. Provides the standard registry mechanisms " -"to register converters between MIME content and other representations, as " -"well as the ``get_content`` and ``set_content`` dispatch methods." -msgstr "" -"Classe mère pour les gestionnaires de contenu. Fournit les mécanismes de " -"registre standard pour enregistrer les convertisseurs entre le contenu MIME " -"et d'autres représentations, ainsi que les méthodes de répartition " -"``get_content`` et ``set_content``." - -#: library/email.contentmanager.rst:23 -msgid "" -"Look up a handler function based on the ``mimetype`` of *msg* (see next " -"paragraph), call it, passing through all arguments, and return the result of " -"the call. The expectation is that the handler will extract the payload from " -"*msg* and return an object that encodes information about the extracted data." -msgstr "" -"Recherche une fonction de gestion en se basant sur le ``mimetype`` de *msg* " -"(voir le paragraphe suivant), l'appelle en lui passant tous les arguments et " -"renvoie le résultat de l'appel. Le gestionnaire doit extraire la charge " -"utile de *msg* et renvoyer un objet qui encode les informations relatives " -"aux données extraites." - -#: library/email.contentmanager.rst:29 -msgid "" -"To find the handler, look for the following keys in the registry, stopping " -"with the first one found:" -msgstr "" -"Pour trouver le gestionnaire, recherche les clés suivantes dans le registre, " -"en s'arrêtant à la première trouvée :" - -#: library/email.contentmanager.rst:32 -msgid "the string representing the full MIME type (``maintype/subtype``)" -msgstr "une chaîne représentant le type MIME complet (``maintype/subtype``) ;" - -#: library/email.contentmanager.rst:33 -msgid "the string representing the ``maintype``" -msgstr "une chaîne représentant le ``maintype`` ;" - -#: library/email.contentmanager.rst:34 -msgid "the empty string" -msgstr "une chaîne vide." - -#: library/email.contentmanager.rst:36 -msgid "" -"If none of these keys produce a handler, raise a :exc:`KeyError` for the " -"full MIME type." -msgstr "" -"Si aucune de ces clés ne produit de gestionnaire, lève une :exc:`KeyError` " -"pour le type MIME complet." - -#: library/email.contentmanager.rst:42 -msgid "" -"If the ``maintype`` is ``multipart``, raise a :exc:`TypeError`; otherwise " -"look up a handler function based on the type of *obj* (see next paragraph), " -"call :meth:`~email.message.EmailMessage.clear_content` on the *msg*, and " -"call the handler function, passing through all arguments. The expectation " -"is that the handler will transform and store *obj* into *msg*, possibly " -"making other changes to *msg* as well, such as adding various MIME headers " -"to encode information needed to interpret the stored data." -msgstr "" -"Si le ``maintype`` est ``multipart``, lève une :exc:`TypeError` ; sinon " -"recherche une fonction de gestion en se basant sur le type de *obj* (voir le " -"paragraphe suivant), " -"appelle :meth:`~email.message.EmailMessage.clear_content` sur le *msg* et " -"appelle la fonction de gestion en lui passant tous les arguments. Le " -"gestionnaire doit transformer et stocker *obj* en *msg*, apportant " -"éventuellement d'autres modifications à *msg* également, comme l'ajout de " -"divers en-têtes MIME pour coder les informations nécessaires à " -"l'interprétation des données stockées." - -#: library/email.contentmanager.rst:51 -msgid "" -"To find the handler, obtain the type of *obj* (``typ = type(obj)``), and " -"look for the following keys in the registry, stopping with the first one " -"found:" -msgstr "" -"Pour trouver le gestionnaire, récupère le type de *obj* (``typ = " -"type(obj)``) et recherche les clés suivantes dans le registre, en s'arrêtant " -"à la première trouvée :" - -#: library/email.contentmanager.rst:55 -msgid "the type itself (``typ``)" -msgstr "le type lui-même (``typ``) ;" - -#: library/email.contentmanager.rst:56 -msgid "" -"the type's fully qualified name (``typ.__module__ + '.' + " -"typ.__qualname__``)." -msgstr "le nom complet du type (``typ.__module__ + '.' + typ.__qualname__``) ;" - -#: library/email.contentmanager.rst:58 -#, fuzzy -msgid "the type's :attr:`qualname ` (``typ.__qualname__``)" -msgstr "le nom qualifié du type (``typ.__qualname__``) ;" - -#: library/email.contentmanager.rst:59 -#, fuzzy -msgid "the type's :attr:`name ` (``typ.__name__``)." -msgstr "le nom du type (``typ.__name__``)." - -#: library/email.contentmanager.rst:61 -#, fuzzy -msgid "" -"If none of the above match, repeat all of the checks above for each of the " -"types in the :term:`MRO` (:attr:`typ.__mro__ `). Finally, if " -"no other key yields a handler, check for a handler for the key ``None``. If " -"there is no handler for ``None``, raise a :exc:`KeyError` for the fully " -"qualified name of the type." -msgstr "" -"Si aucune de ces clés ne correspond, répète toutes les vérifications ci-" -"dessus pour chacun des types en suivant le :term:`MRO` (``typ.__mro__``). " -"Enfin, si aucune clé ne produit de gestionnaire, recherche un gestionnaire " -"pour la clé ``None``. S'il n'y a pas de gestionnaire pour ``None``, lève " -"une :exc:`KeyError` pour le nom complet du type." - -#: library/email.contentmanager.rst:68 -msgid "" -"Also add a :mailheader:`MIME-Version` header if one is not present (see " -"also :class:`.MIMEPart`)." -msgstr "" -"Ajoute également un en-tête :mailheader:`MIME-Version` s'il n'y en a pas " -"(voir aussi :class:`.MIMEPart`)." - -#: library/email.contentmanager.rst:74 -msgid "" -"Record the function *handler* as the handler for *key*. For the possible " -"values of *key*, see :meth:`get_content`." -msgstr "" -"Enregistre la fonction *handler* comme gestionnaire pour *key*. Pour les " -"valeurs possibles de *key*, voir :meth:`get_content`." - -#: library/email.contentmanager.rst:80 -msgid "" -"Record *handler* as the function to call when an object of a type matching " -"*typekey* is passed to :meth:`set_content`. For the possible values of " -"*typekey*, see :meth:`set_content`." -msgstr "" -"Enregistre *handler* comme fonction à appeler lorsqu'un objet d'un type " -"correspondant à *typekey* est passé à :meth:`set_content`. Pour les valeurs " -"possibles de *typekey*, voir :meth:`set_content`." - -#: library/email.contentmanager.rst:86 -msgid "Content Manager Instances" -msgstr "Instances de gestionnaires de contenus" - -#: library/email.contentmanager.rst:88 -msgid "" -"Currently the email package provides only one concrete content " -"manager, :data:`raw_data_manager`, although more may be added in the " -"future. :data:`raw_data_manager` is " -"the :attr:`~email.policy.EmailPolicy.content_manager` provided " -"by :attr:`~email.policy.EmailPolicy` and its derivatives." -msgstr "" -"Actuellement, le paquet *email* ne fournit qu'un seul gestionnaire de " -"contenu concret, :data:`raw_data_manager`, bien que d'autres puissent être " -"ajoutés à l'avenir. :data:`raw_data_manager` est " -"le :attr:`~email.policy.EmailPolicy.content_manager` fourni " -"par :attr:`~email.policy.EmailPolicy` et ses dérivés." - -#: library/email.contentmanager.rst:97 -msgid "" -"This content manager provides only a minimum interface beyond that provided " -"by :class:`~email.message.Message` itself: it deals only with text, raw " -"byte strings, and :class:`~email.message.Message` objects. Nevertheless, it " -"provides significant advantages compared to the base API: ``get_content`` on " -"a text part will return a unicode string without the application needing to " -"manually decode it, ``set_content`` provides a rich set of options for " -"controlling the headers added to a part and controlling the content transfer " -"encoding, and it enables the use of the various ``add_`` methods, thereby " -"simplifying the creation of multipart messages." -msgstr "" -"Ce gestionnaire de contenu ne fournit qu'une interface minimale au-delà de " -"celle fournie par :class:`~email.message.Message` lui-même : il prend " -"seulement en charge le texte, les chaînes d'octets brutes et les " -"objets :class:`~email.message.Message`. Néanmoins, il offre des avantages " -"significatifs par rapport à l'API de base : ``get_content`` sur une partie " -"de texte renvoie une chaîne Unicode sans que l'application ait besoin de la " -"décoder manuellement, ``set_content`` fournit de nombreuses options pour " -"contrôler les en-têtes ajoutés à une partie et l'encodage du transfert de " -"contenu, et il permet l'utilisation des différentes méthodes ``add_``, ce " -"qui simplifie la création de messages en plusieurs parties." - -#: library/email.contentmanager.rst:109 -msgid "" -"Return the payload of the part as either a string (for ``text`` parts), " -"an :class:`~email.message.EmailMessage` object (for ``message/rfc822`` " -"parts), or a ``bytes`` object (for all other non-multipart types). Raise " -"a :exc:`KeyError` if called on a ``multipart``. If the part is a ``text`` " -"part and *errors* is specified, use it as the error handler when decoding " -"the payload to unicode. The default error handler is ``replace``." -msgstr "" -"Renvoie la charge utile de la partie sous la forme d'une chaîne (pour les " -"parties ``text``), d'un objet :class:`~email.message.EmailMessage` (pour les " -"parties ``message/rfc822``) ou d'un objet ``bytes`` (pour tous les autres " -"types à l'exception de *multipart*). Lève une :exc:`KeyError` si cette " -"méthode est appelée sur un ``multipart``. S'il s'agit d'une partie ``text`` " -"et que *errors* est spécifié, ce paramètre est utilisé comme gestionnaire " -"d'erreurs lors du décodage de la charge utile en Unicode. Le gestionnaire " -"d'erreurs par défaut est ``replace``." - -#: library/email.contentmanager.rst:128 -msgid "Add headers and payload to *msg*:" -msgstr "Ajoute des en-têtes et une charge utile à *msg* :" - -#: library/email.contentmanager.rst:130 -msgid "" -"Add a :mailheader:`Content-Type` header with a ``maintype/subtype`` value." -msgstr "" -"Ajoute un en-tête :mailheader:`Content-Type` avec une valeur ``maintype/" -"subtype``." - -#: library/email.contentmanager.rst:133 -msgid "" -"For ``str``, set the MIME ``maintype`` to ``text``, and set the subtype to " -"*subtype* if it is specified, or ``plain`` if it is not." -msgstr "" -"Pour ``str``, définit le ``maintype`` MIME à ``text`` et définit le sous-" -"type à *subtype* s'il est spécifié, ou à ``plain`` s'il ne l'est pas." - -#: library/email.contentmanager.rst:135 -msgid "" -"For ``bytes``, use the specified *maintype* and *subtype*, or raise " -"a :exc:`TypeError` if they are not specified." -msgstr "" -"Pour ``bytes``, utilise les *maintype* et *subtype* spécifiés, ou lève " -"une :exc:`TypeError` s'ils ne sont pas spécifiés." - -#: library/email.contentmanager.rst:137 -msgid "" -"For :class:`~email.message.EmailMessage` objects, set the maintype to " -"``message``, and set the subtype to *subtype* if it is specified or " -"``rfc822`` if it is not. If *subtype* is ``partial``, raise an error " -"(``bytes`` objects must be used to construct ``message/partial`` parts)." -msgstr "" -"Pour les objets :class:`~email.message.EmailMessage`, définit le type " -"principal (*maintype*) à ``message`` et définit le sous-type à *subtype* " -"s'il est spécifié ou à ``rfc822`` s'il ne l'est pas. Si *subtype* est " -"``partial``, lève une erreur (les objets ``bytes`` doivent être utilisés " -"pour construire les parties ``message/partial``)." - -#: library/email.contentmanager.rst:143 -msgid "" -"If *charset* is provided (which is valid only for ``str``), encode the " -"string to bytes using the specified character set. The default is " -"``utf-8``. If the specified *charset* is a known alias for a standard MIME " -"charset name, use the standard charset instead." -msgstr "" -"Si *charset* est fourni (qui n'est valide que pour ``str``), encode la " -"chaîne en octets en utilisant le jeu de caractères spécifié. La valeur par " -"défaut est ``utf-8``. Si le *charset* spécifié est un alias connu pour un " -"nom de jeu de caractères MIME standard, utilise plutôt le jeu de caractères " -"standard." - -#: library/email.contentmanager.rst:148 -msgid "" -"If *cte* is set, encode the payload using the specified content transfer " -"encoding, and set the :mailheader:`Content-Transfer-Encoding` header to that " -"value. Possible values for *cte* are ``quoted-printable``, ``base64``, " -"``7bit``, ``8bit``, and ``binary``. If the input cannot be encoded in the " -"specified encoding (for example, specifying a *cte* of ``7bit`` for an input " -"that contains non-ASCII values), raise a :exc:`ValueError`." -msgstr "" -"Si *cte* est défini, encode la charge utile à l'aide de l'encodage de " -"transfert de contenu spécifié et définit l'en-tête :mailheader:`Content-" -"Transfer-Encoding` à cette valeur. Les valeurs possibles pour *cte* sont " -"``quoted-printable``, ``base64``, ``7bit``, ``8bit`` et ``binary``. Si " -"l'entrée ne peut pas être encodée dans l'encodage spécifié (par exemple, en " -"spécifiant un *cte* de ``7bit`` pour une entrée qui contient des valeurs non-" -"ASCII), lève une :exc:`ValueError`." - -#: library/email.contentmanager.rst:156 -msgid "" -"For ``str`` objects, if *cte* is not set use heuristics to determine the " -"most compact encoding. Prior to encoding, :meth:`str.splitlines` is used to " -"normalize all line boundaries, ensuring that each line of the payload is " -"terminated by the current policy's :data:`~email.policy.Policy.linesep` " -"property (even if the original string did not end with one)." -msgstr "" - -#: library/email.contentmanager.rst:162 -msgid "" -"For ``bytes`` objects, *cte* is taken to be base64 if not set, and the " -"aforementioned newline translation is not performed." -msgstr "" - -#: library/email.contentmanager.rst:164 -msgid "" -"For :class:`~email.message.EmailMessage`, per :rfc:`2046`, raise an error if " -"a *cte* of ``quoted-printable`` or ``base64`` is requested for *subtype* " -"``rfc822``, and for any *cte* other than ``7bit`` for *subtype* ``external-" -"body``. For ``message/rfc822``, use ``8bit`` if *cte* is not specified. " -"For all other values of *subtype*, use ``7bit``." -msgstr "" -"Pour :class:`~email.message.EmailMessage`, selon la :rfc:`2046`, pour le " -"*subtype* ``rfc822``, lève une erreur pour un *cte* valant ``quoted-" -"printable`` ou ``base64``. Pour le *subtype* ``external-body``, lève une " -"erreur pour tout *cte* autre que ``7bit``. Pour ``message/rfc822``, la " -"valeur par défaut de *cte* est ``8bit``. Pour toutes les autres valeurs de " -"*sous-type*, la valeur par défaut de *cte* est ``7bit``." - -# suit un : -#: library/email.contentmanager.rst:171 -msgid "" -"A *cte* of ``binary`` does not actually work correctly yet. The " -"``EmailMessage`` object as modified by ``set_content`` is correct, " -"but :class:`~email.generator.BytesGenerator` does not serialize it correctly." -msgstr "" -"la valeur ``binary`` pour *cte* ne fonctionne pas encore correctement. " -"L'objet ``EmailMessage`` tel que modifié par ``set_content`` est correct, " -"mais :class:`~email.generator.BytesGenerator` ne le sérialise pas " -"correctement." - -#: library/email.contentmanager.rst:176 -msgid "" -"If *disposition* is set, use it as the value of the :mailheader:`Content-" -"Disposition` header. If not specified, and *filename* is specified, add the " -"header with the value ``attachment``. If *disposition* is not specified and " -"*filename* is also not specified, do not add the header. The only valid " -"values for *disposition* are ``attachment`` and ``inline``." -msgstr "" -"Si *disposition* est spécifié, utilise cette valeur pour l'en-" -"tête :mailheader:`Content-Disposition`. S'il n'est pas spécifié et que " -"*filename* est spécifié, utilise la valeur ``attachment`` pour l'en-tête. Si " -"ni *disposition* ni *filename* ne sont spécifiés, n'ajoute pas cet en-tête. " -"Les seules valeurs valides pour *disposition* sont ``attachment`` et " -"``inline``." - -#: library/email.contentmanager.rst:183 -msgid "" -"If *filename* is specified, use it as the value of the ``filename`` " -"parameter of the :mailheader:`Content-Disposition` header." -msgstr "" -"Si *filename* est spécifié, utilise cette valeur pour le paramètre " -"``filename`` de l'en-tête :mailheader:`Content-Disposition`." - -#: library/email.contentmanager.rst:186 -msgid "" -"If *cid* is specified, add a :mailheader:`Content-ID` header with *cid* as " -"its value." -msgstr "" -"Si *cid* est spécifié, ajoute un en-tête :mailheader:`Content-ID` avec cette " -"valeur." - -#: library/email.contentmanager.rst:189 -msgid "" -"If *params* is specified, iterate its ``items`` method and use the resulting " -"``(key, value)`` pairs to set additional parameters on " -"the :mailheader:`Content-Type` header." -msgstr "" -"Si *params* est spécifié, itère sur sa méthode ``items`` et utilise les " -"paires ``(clé, valeur)`` résultantes pour définir des paramètres " -"supplémentaires dans l'en-tête :mailheader:`Content-Type`." - -#: library/email.contentmanager.rst:193 -msgid "" -"If *headers* is specified and is a list of strings of the form ``headername: " -"headervalue`` or a list of ``header`` objects (distinguished from strings by " -"having a ``name`` attribute), add the headers to *msg*." -msgstr "" -"Si *headers* est spécifié et est une liste de chaînes de la forme " -"``headername: headervalue`` ou une liste d'objets ``header`` (distingués des " -"chaînes par l'attribut ``name``), ajoute ces en-têtes à *msg*." - -#: library/email.contentmanager.rst:200 -msgid "Footnotes" -msgstr "Notes" - -#: library/email.contentmanager.rst:201 -msgid "" -"Originally added in 3.4 as a :term:`provisional module `" -msgstr "" -"Initialement ajouté dans 3.4 en tant que :term:`paquet provisoire " -"`." - -#~ msgid "" -#~ "For ``str`` objects, if *cte* is not set use heuristics to determine the " -#~ "most compact encoding." -#~ msgstr "" -#~ "Pour les objets ``str``, si *cte* n'est pas défini, utilise une " -#~ "heuristique pour déterminer l'encodage le plus compact." diff --git a/library/email.encoders.po b/library/email.encoders.po deleted file mode 100644 index 67f150a8c8..0000000000 --- a/library/email.encoders.po +++ /dev/null @@ -1,163 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-10-18 12:35+0200\n" -"Last-Translator: Jean Abou Samra \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.1\n" - -#: library/email.encoders.rst:2 -#, fuzzy -msgid ":mod:`!email.encoders`: Encoders" -msgstr ":mod:`email.encoders` : Encodeurs" - -#: library/email.encoders.rst:7 -msgid "**Source code:** :source:`Lib/email/encoders.py`" -msgstr "**Code source :** :source:`Lib/email/encoders.py`" - -#: library/email.encoders.rst:11 -msgid "" -"This module is part of the legacy (``Compat32``) email API. In the new API " -"the functionality is provided by the *cte* parameter of " -"the :meth:`~email.message.EmailMessage.set_content` method." -msgstr "" -"Ce module fait partie du code patrimonial (``Compat32``) de l'API mail. Dans " -"la nouvelle API la fonctionnalité est fournie par le paramètre *cte* de la " -"méthode :meth:`~email.message.EmailMessage.set_content`." - -#: library/email.encoders.rst:15 -msgid "" -"This module is deprecated in Python 3. The functions provided here should " -"not be called explicitly since the :class:`~email.mime.text.MIMEText` class " -"sets the content type and CTE header using the *_subtype* and *_charset* " -"values passed during the instantiation of that class." -msgstr "" -"Ce module est obsolète en Python 3. Il n'est pas de besoin d'appeler " -"explicitement les fonctions définies ici puisque la " -"classe :class:`~email.mime.text.MIMEText` ajuste le type de contenu et " -"l'entête CTE à l'aide des paramètres *_subtype* et *_charset* de son " -"constructeur." - -#: library/email.encoders.rst:20 -msgid "" -"The remaining text in this section is the original documentation of the " -"module." -msgstr "" -"Le texte restant de cette section est la documentation originale de ce " -"module." - -#: library/email.encoders.rst:22 -msgid "" -"When creating :class:`~email.message.Message` objects from scratch, you " -"often need to encode the payloads for transport through compliant mail " -"servers. This is especially true for :mimetype:`image/\\*` " -"and :mimetype:`text/\\*` type messages containing binary data." -msgstr "" -"Au moment de la création d'objets :class:`~email.message.Message` à la main, " -"il est souvent nécessaire d'encoder les charges utiles pour le transport à " -"travers des serveurs mail conformes. C'est particulièrement vrai pour les " -"messages de type :mimetype:`image/\\*` et :mimetype:`text/\\*` contenant des " -"données binaires." - -#: library/email.encoders.rst:27 -#, fuzzy -msgid "" -"The :mod:`email` package provides some convenient encoders in its :mod:`!" -"encoders` module. These encoders are actually used by " -"the :class:`~email.mime.audio.MIMEAudio` " -"and :class:`~email.mime.image.MIMEImage` class constructors to provide " -"default encodings. All encoder functions take exactly one argument, the " -"message object to encode. They usually extract the payload, encode it, and " -"reset the payload to this newly encoded value. They should also set " -"the :mailheader:`Content-Transfer-Encoding` header as appropriate." -msgstr "" -"Le paquet :mod:`email` fournit quelques encodeurs pratiques dans son " -"module :mod:`encoders`. Ces encodeurs sont d'ailleurs utilisés par les " -"constructeurs des classes :class:`~email.mime.audio.MIMEAudio` " -"et :class:`~email.mime.image.MIMEImage` afin de fournir des encodages par " -"défaut. Toutes les fonctions d'encodage prennent exactement un argument, " -"l'objet message à encoder. Généralement, elles extraient la charge utile, " -"l'encode, puis change la charge utile pour la nouvelle valeur encodée. Elles " -"devraient également assigner l'en-tête :mailheader:`Content-Transfer-" -"Encoding` si besoin." - -#: library/email.encoders.rst:35 -msgid "" -"Note that these functions are not meaningful for a multipart message. They " -"must be applied to individual subparts instead, and will raise " -"a :exc:`TypeError` if passed a message whose type is multipart." -msgstr "" -"À noter que ces fonctions n'ont pas de sens dans le cadre d'un message en " -"plusieurs parties. Elles doivent à la place être appliquées aux sous-parties " -"individuelles, et lèvent :exc:`TypeError` si on leur passe un message en " -"plusieurs parties." - -#: library/email.encoders.rst:39 -msgid "Here are the encoding functions provided:" -msgstr "Voici les fonctions d'encodages fournies :" - -#: library/email.encoders.rst:44 -msgid "" -"Encodes the payload into quoted-printable form and sets " -"the :mailheader:`Content-Transfer-Encoding` header to ``quoted-printable`` " -"[#]_. This is a good encoding to use when most of your payload is normal " -"printable data, but contains a few unprintable characters." -msgstr "" -"Encode la charge utile au format Quoted-Printable, et assigne ``quoted-" -"printable`` [#]_ à l'en-tête :mailheader:`Content-Transfer-Encoding`. C'est " -"un bon encodage à utiliser quand la majorité de la charge utile contient " -"essentiellement des données imprimables, à l'exceptions de quelques " -"caractères." - -#: library/email.encoders.rst:52 -msgid "" -"Encodes the payload into base64 form and sets the :mailheader:`Content-" -"Transfer-Encoding` header to ``base64``. This is a good encoding to use " -"when most of your payload is unprintable data since it is a more compact " -"form than quoted-printable. The drawback of base64 encoding is that it " -"renders the text non-human readable." -msgstr "" -"Encode la charge utile au format *base64*, et assigne ``base64`` à l'en-" -"tête :mailheader:`Content-Transfer-Encoding`. C'est un bon encodage à " -"utiliser quand la majorité de la charge utile est non imprimable puisque " -"c'est une forme plus compacte que *quoted-printable*." - -#: library/email.encoders.rst:61 -msgid "" -"This doesn't actually modify the message's payload, but it does set " -"the :mailheader:`Content-Transfer-Encoding` header to either ``7bit`` or " -"``8bit`` as appropriate, based on the payload data." -msgstr "" -"Ceci ne modifie pas effectivement la charge utile du message, mais va bien " -"en revanche assigner la valeur ``7bit`` ou ``8bit`` à l'en-" -"tête :mailheader:`Content-Transfer-Encoding` selon la nature de la charge " -"utile." - -#: library/email.encoders.rst:68 -msgid "" -"This does nothing; it doesn't even set the :mailheader:`Content-Transfer-" -"Encoding` header." -msgstr "" -"Ceci ne fait rien; et ne va même pas changer la valeur de l'en-" -"tête :mailheader:`Content-Transfer-Encoding`." - -#: library/email.encoders.rst:72 -msgid "Footnotes" -msgstr "Notes" - -#: library/email.encoders.rst:73 -msgid "" -"Note that encoding with :meth:`encode_quopri` also encodes all tabs and " -"space characters in the data." -msgstr "" -"À noter que l'encodage avec :meth:`encode_quopri` encode également tous les " -"caractères tabulation et espace." diff --git a/library/email.errors.po b/library/email.errors.po deleted file mode 100644 index 93d2f6b9bf..0000000000 --- a/library/email.errors.po +++ /dev/null @@ -1,279 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-11-06 21:40+0100\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/email.errors.rst:2 -#, fuzzy -msgid ":mod:`!email.errors`: Exception and Defect classes" -msgstr ":mod:`email.errors` : exceptions et classes pour les anomalies" - -#: library/email.errors.rst:7 -msgid "**Source code:** :source:`Lib/email/errors.py`" -msgstr "**Code source :** :source:`Lib/email/errors.py`" - -#: library/email.errors.rst:11 -#, fuzzy -msgid "" -"The following exception classes are defined in the :mod:`!email.errors` " -"module:" -msgstr "" -"Les classes d'exception suivantes sont définies dans le " -"module :mod:`email.errors` :" - -#: library/email.errors.rst:16 -msgid "" -"This is the base class for all exceptions that the :mod:`email` package can " -"raise. It is derived from the standard :exc:`Exception` class and defines " -"no additional methods." -msgstr "" -"Exception de base, dont héritent toutes les exceptions du " -"paquet :mod:`email`. Cette classe hérite de la classe " -"native :exc:`Exception` et ne définit aucune méthode additionnelle." - -#: library/email.errors.rst:23 -msgid "" -"This is the base class for exceptions raised by " -"the :class:`~email.parser.Parser` class. It is derived " -"from :exc:`MessageError`. This class is also used internally by the parser " -"used by :mod:`~email.headerregistry`." -msgstr "" -"Exception de base pour les exceptions levées par la " -"classe :class:`~email.parser.Parser`. Elle hérite de :exc:`MessageError`. " -"Cette classe est aussi utilisée en interne par l'analyseur " -"de :mod:`~email.headerregistry`." - -#: library/email.errors.rst:31 -msgid "" -"Raised under some error conditions when parsing the :rfc:`5322` headers of a " -"message, this class is derived from :exc:`MessageParseError`. " -"The :meth:`~email.message.EmailMessage.set_boundary` method will raise this " -"error if the content type is unknown when the method is " -"called. :class:`~email.header.Header` may raise this error for certain " -"base64 decoding errors, and when an attempt is made to create a header that " -"appears to contain an embedded header (that is, there is what is supposed to " -"be a continuation line that has no leading whitespace and looks like a " -"header)." -msgstr "" -"Cette exception, dérivée de :exc:`MessageParseError`, est levée sous " -"différentes conditions lors de l'analyse des en-têtes :rfc:`5322` du " -"message. Lorsque la " -"méthode :meth:`~email.message.EmailMessage.set_boundary` est invoquée, elle " -"lève cette erreur si le type du contenu est inconnu. La " -"classe :class:`~email.header.Header` lève cette exception pour certains " -"types d'erreurs provenant du décodage base64. Elle la lève aussi quand un " -"en-tête est créé et qu'il semble contenir un en-tête imbriqué, c'est-à-dire " -"que la ligne qui suit ressemble à un en-tête et ne commence pas par des " -"caractères d'espacement." - -#: library/email.errors.rst:43 -msgid "Deprecated and no longer used." -msgstr "Obsolète, n'est plus utilisé." - -#: library/email.errors.rst:48 -#, fuzzy -msgid "" -"Raised if the :meth:`~email.message.Message.attach` method is called on an " -"instance of a class derived " -"from :class:`~email.mime.nonmultipart.MIMENonMultipart` " -"(e.g. :class:`~email.mime.image.MIMEImage`). :exc:`MultipartConversionError` " -"multiply inherits from :exc:`MessageError` and the built-in :exc:`TypeError`." -msgstr "" -"Cette exception est levée quand le contenu, que la " -"méthode :meth:`add_payload` essaie d'ajouter à " -"l'objet :class:`~email.message.Message`, est déjà un scalaire et que le type " -"principal du message :mailheader:`Content-Type` est manquant ou différent " -"de :mimetype:`multipart`. :exc:`MultipartConversionError` hérite à la fois " -"de :exc:`MessageError` et de :exc:`TypeError`." - -#: library/email.errors.rst:58 -msgid "" -"Raised when an error occurs when the :mod:`~email.generator` outputs headers." -msgstr "" - -#: library/email.errors.rst:64 -msgid "" -"This is the base class for all defects found when parsing email messages. It " -"is derived from :exc:`ValueError`." -msgstr "" - -#: library/email.errors.rst:69 -#, fuzzy -msgid "" -"This is the base class for all defects found when parsing email headers. It " -"is derived from :exc:`MessageDefect`." -msgstr "" -"Exception de base, dont héritent toutes les exceptions du " -"paquet :mod:`email`. Cette classe hérite de la classe " -"native :exc:`Exception` et ne définit aucune méthode additionnelle." - -#: library/email.errors.rst:72 -msgid "" -"Here is the list of the defects that the :class:`~email.parser.FeedParser` " -"can find while parsing messages. Note that the defects are added to the " -"message where the problem was found, so for example, if a message nested " -"inside a :mimetype:`multipart/alternative` had a malformed header, that " -"nested message object would have a defect, but the containing messages would " -"not." -msgstr "" -"Voici la liste des anomalies que peut " -"identifier :class:`~email.parser.FeedParser` pendant l'analyse des messages. " -"Notez que les anomalies sont signalées à l'endroit où elles sont détectées : " -"par exemple, dans le cas d'une malformation de l'en-tête d'un message " -"imbriqué dans un message de type :mimetype:`multipart/alternative`, " -"l'anomalie est signalée sur le message imbriqué seulement." - -#: library/email.errors.rst:78 -msgid "" -"All defect classes are subclassed from :class:`email.errors.MessageDefect`." -msgstr "" -"Toutes les anomalies sont des sous-classes " -"de :class:`email.errors.MessageDefect`." - -#: library/email.errors.rst:82 -#, fuzzy -msgid "" -"A message claimed to be a multipart, but had no :mimetype:`boundary` " -"parameter." -msgstr "" -":class:`NoBoundaryInMultipartDefect` — Un message qui prétend être composite " -"(*multipart* en anglais), mais qui ne contient pas de " -"séparateur :mimetype:`boundary`." - -#: library/email.errors.rst:87 -#, fuzzy -msgid "" -"The start boundary claimed in the :mailheader:`Content-Type` header was " -"never found." -msgstr "" -":class:`StartBoundaryNotFoundDefect` — Le message ne contient pas le " -"séparateur de départ indiqué dans le :mailheader:`Content-Type`." - -#: library/email.errors.rst:92 -#, fuzzy -msgid "" -"A start boundary was found, but no corresponding close boundary was ever " -"found." -msgstr "" -":class:`CloseBoundaryNotFoundDefect` — Le séparateur de départ a été trouvé, " -"mais pas le séparateur de fin correspondant." - -#: library/email.errors.rst:99 -#, fuzzy -msgid "The message had a continuation line as its first header line." -msgstr "" -":class:`FirstHeaderLineIsContinuationDefect` — La première ligne de l'en-" -"tête du message est une ligne de continuation." - -#: library/email.errors.rst:103 -#, fuzzy -msgid "A \"Unix From\" header was found in the middle of a header block." -msgstr "" -":class:`MisplacedEnvelopeHeaderDefect` — Un en-tête *Unix From* est présent " -"à l'intérieur d'un bloc d'en-tête." - -#: library/email.errors.rst:107 -#, fuzzy -msgid "" -"A line was found while parsing headers that had no leading white space but " -"contained no ':'. Parsing continues assuming that the line represents the " -"first line of the body." -msgstr "" -":class:`MissingHeaderBodySeparatorDefect` — Une ligne d'en-tête ne contient " -"pas de caractères d'espacement au début et aucun « : ». L'analyse continue " -"en supposant qu'il s'agit donc de la première ligne du corps du message." - -#: library/email.errors.rst:115 -#, fuzzy -msgid "" -"A header was found that was missing a colon, or was otherwise malformed." -msgstr "" -":class:`MalformedHeaderDefect` -- Un en-tête est mal formé ou il manque un " -"« : »." - -#: library/email.errors.rst:117 -msgid "This defect has not been used for several Python versions." -msgstr "Cette anomalie est obsolète depuis plusieurs versions de Python." - -#: library/email.errors.rst:122 -#, fuzzy -msgid "" -"A message claimed to be a :mimetype:`multipart`, but no subparts were found. " -"Note that when a message has this defect, " -"its :meth:`~email.message.Message.is_multipart` method may return ``False`` " -"even though its content type claims to be :mimetype:`multipart`." -msgstr "" -":class:`MultipartInvariantViolationDefect` — Le message indique être de " -"type :mimetype:`multipart`, mais aucune pièce jointe n'a été trouvée. Notez " -"que, dans ce cas, la méthode :meth:`~email.message.Message.is_multipart` " -"peut renvoyer ``False`` même si le type de contenu est :mimetype:`multipart`." - -#: library/email.errors.rst:129 -#, fuzzy -msgid "" -"When decoding a block of base64 encoded bytes, the padding was not correct. " -"Enough padding is added to perform the decode, but the resulting decoded " -"bytes may be invalid." -msgstr "" -":class:`InvalidBase64PaddingDefect` — Remplissage incorrect d'un bloc " -"d'octets encodés en base64. Des caractères de remplissage ont été ajoutés " -"pour permettre le décodage, mais le résultat du décodage peut être invalide." - -#: library/email.errors.rst:135 -#, fuzzy -msgid "" -"When decoding a block of base64 encoded bytes, characters outside the base64 " -"alphabet were encountered. The characters are ignored, but the resulting " -"decoded bytes may be invalid." -msgstr "" -":class:`InvalidBase64CharactersDefect` — Des caractères n'appartenant pas à " -"l'alphabet base64 ont été rencontrés lors du décodage d'un bloc d'octets " -"encodés en base64. Les caractères ont été ignorés, mais le résultat du " -"décodage peut être invalide." - -#: library/email.errors.rst:141 -#, fuzzy -msgid "" -"When decoding a block of base64 encoded bytes, the number of non-padding " -"base64 characters was invalid (1 more than a multiple of 4). The encoded " -"block was kept as-is." -msgstr "" -":class:`InvalidBase64LengthDefect` — Le nombre de caractères (autres que de " -"remplissage) d'un bloc d'octets encodés en base64 est invalide (1 de plus " -"qu'un multiple de 4). Le bloc encodé n'a pas été modifié." - -#: library/email.errors.rst:147 -#, fuzzy -msgid "" -"When decoding an invalid or unparsable date field. The original value is " -"kept as-is." -msgstr "" -":class:`InvalidDateDefect` — Le champ de date est invalide. La valeur est " -"laissée telle-quelle." - -#~ msgid "" -#~ "Since :meth:`Message.add_payload` is deprecated, this exception is rarely " -#~ "raised in practice. However the exception may also be raised if " -#~ "the :meth:`~email.message.Message.attach` method is called on an instance " -#~ "of a class derived " -#~ "from :class:`~email.mime.nonmultipart.MIMENonMultipart` " -#~ "(e.g. :class:`~email.mime.image.MIMEImage`)." -#~ msgstr "" -#~ "Comme la méthode :meth:`Message.add_payload` est obsolète, cette " -#~ "exception est rarement utilisée. Néanmoins, elle peut être levée si la " -#~ "méthode :meth:`~email.message.Message.attach` est invoquée sur une " -#~ "instance de classe dérivée " -#~ "de :class:`~email.mime.nonmultipart.MIMENonMultipart` " -#~ "(p. ex. :class:`~email.mime.image.MIMEImage`)." diff --git a/library/email.examples.po b/library/email.examples.po deleted file mode 100644 index 4b0c95b89b..0000000000 --- a/library/email.examples.po +++ /dev/null @@ -1,104 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2023-02-17 14:44+0100\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.0.1\n" - -#: library/email.examples.rst:4 -msgid ":mod:`email`: Examples" -msgstr ":mod:`email`: Exemples" - -#: library/email.examples.rst:6 -msgid "" -"Here are a few examples of how to use the :mod:`email` package to read, " -"write, and send simple email messages, as well as more complex MIME messages." -msgstr "" -"Cette page contient quelques exemples de l'utilisation du " -"package :mod:`email` pour lire, écrire, et envoyer de simples messages mail, " -"ainsi que des messages MIME plus complexes." - -#: library/email.examples.rst:9 -msgid "" -"First, let's see how to create and send a simple text message (both the text " -"content and the addresses may contain unicode characters):" -msgstr "" -"Premièrement, regardons comment créer et envoyer un message avec simplement " -"du texte (le contenu textuel et les adresses peuvent tous deux contenir des " -"caractères Unicodes) :" - -#: library/email.examples.rst:15 -msgid "" -"Parsing :rfc:`822` headers can easily be done by the using the classes from " -"the :mod:`~email.parser` module:" -msgstr "" -"Analyser des entêtes :rfc:`822` peut être aisément réalisé en utilisant les " -"classes du module :mod:`~email.parser` :" - -#: library/email.examples.rst:21 -msgid "" -"Here's an example of how to send a MIME message containing a bunch of family " -"pictures that may be residing in a directory:" -msgstr "" -"Voici un exemple de l'envoi d'un message MIME contenant une série de photos " -"de famille qui sont stockés ensemble dans un dossier :" - -#: library/email.examples.rst:27 -msgid "" -"Here's an example of how to send the entire contents of a directory as an " -"email message: [1]_" -msgstr "" -"Voici un exemple d'envoi du contenu d'un dossier entier en tant que message " -"mail : [1]_" - -#: library/email.examples.rst:33 -msgid "" -"Here's an example of how to unpack a MIME message like the one above, into a " -"directory of files:" -msgstr "" -"Voici un exemple de comment décomposer un message MIME comme celui ci-dessus " -"en tant que fichiers dans un dossier :" - -#: library/email.examples.rst:39 -msgid "" -"Here's an example of how to create an HTML message with an alternative plain " -"text version. To make things a bit more interesting, we include a related " -"image in the html part, and we save a copy of what we are going to send to " -"disk, as well as sending it." -msgstr "" -"Voici un exemple de création d'un message HTML avec une version en texte " -"comme alternative. Pour rendre les choses un peu plus intéressantes, nous " -"incluons aussi une image dans la partie HTML, nous sauvons une copie du " -"message sur le disque, et nous l'envoyons." - -#: library/email.examples.rst:47 -msgid "" -"If we were sent the message from the last example, here is one way we could " -"process it:" -msgstr "" -"Si on nous avait envoyé le message de l'exemple précédent, voici la manière " -"avec laquelle nous pourrions le traiter :" - -#: library/email.examples.rst:52 -msgid "Up to the prompt, the output from the above is:" -msgstr "La sortie textuelle du code ci dessus est :" - -#: library/email.examples.rst:66 -msgid "Footnotes" -msgstr "Notes" - -#: library/email.examples.rst:67 -msgid "" -"Thanks to Matthew Dixon Cowles for the original inspiration and examples." -msgstr "" -"Merci à Matthew Dixon Cowles pour l'inspiration originale et les exemples." diff --git a/library/email.generator.po b/library/email.generator.po deleted file mode 100644 index 576a6e3c5c..0000000000 --- a/library/email.generator.po +++ /dev/null @@ -1,498 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-01-18 22:28+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/email.generator.rst:2 -#, fuzzy -msgid ":mod:`!email.generator`: Generating MIME documents" -msgstr ":mod:`email.generator` : génération de documents MIME" - -#: library/email.generator.rst:7 -msgid "**Source code:** :source:`Lib/email/generator.py`" -msgstr "**Code source :** :source:`Lib/email/igenerator.py`" - -#: library/email.generator.rst:11 -#, fuzzy -msgid "" -"One of the most common tasks is to generate the flat (serialized) version of " -"the email message represented by a message object structure. You will need " -"to do this if you want to send your message " -"via :meth:`smtplib.SMTP.sendmail`, or print the message on the console. " -"Taking a message object structure and producing a serialized representation " -"is the job of the generator classes." -msgstr "" -"L'une des tâches les plus courantes consiste à générer la version plate " -"(sérialisée) du message électronique représenté par une structure d'objet " -"message. Vous devez le faire si vous voulez envoyer votre message " -"via :meth:`smtplib.SMTP.sendmail` ou le module :mod:`nntplib`, ou afficher " -"le message sur la console. Prendre une structure d'objet message et produire " -"une représentation sérialisée est le travail des classes génératrices." - -#: library/email.generator.rst:18 -msgid "" -"As with the :mod:`email.parser` module, you aren't limited to the " -"functionality of the bundled generator; you could write one from scratch " -"yourself. However the bundled generator knows how to generate most email in " -"a standards-compliant way, should handle MIME and non-MIME email messages " -"just fine, and is designed so that the bytes-oriented parsing and generation " -"operations are inverses, assuming the same non-" -"transforming :mod:`~email.policy` is used for both. That is, parsing the " -"serialized byte stream via the :class:`~email.parser.BytesParser` class and " -"then regenerating the serialized byte stream using :class:`BytesGenerator` " -"should produce output identical to the input [#]_. (On the other hand, " -"using the generator on an :class:`~email.message.EmailMessage` constructed " -"by program may result in changes to the :class:`~email.message.EmailMessage` " -"object as defaults are filled in.)" -msgstr "" -"Comme avec le module :mod:`email.parser`, vous n'êtes pas limité aux " -"fonctionnalités du générateur fourni ; vous pourriez en écrire un à partir " -"de zéro vous-même. Cependant, le générateur fourni sait comment générer la " -"plupart des e-mails d'une manière conforme aux normes, est conçu pour gérer " -"correctement les e-mails MIME et non MIME, et pour que les opérations (sur " -"des suites d'octets) d'analyse et de génération soient inverses, en " -"supposant que la même :mod:`~email.policy` est utilisée pour les deux. " -"Autrement dit, l'analyse du flux d'octets sérialisé via la " -"classe :class:`~email.parser.BytesParser` puis la régénération du flux " -"d'octets sérialisé à l'aide de :class:`BytesGenerator` devrait produire une " -"sortie identique à l'entrée [#]_ (d'un autre côté, l'utilisation du " -"générateur sur un :class:`~email.message.EmailMessage` construit par " -"programme peut entraîner des modifications de " -"l'objet :class:`~email.message.EmailMessage` car les valeurs par défaut sont " -"renseignées)." - -#: library/email.generator.rst:32 -msgid "" -"The :class:`Generator` class can be used to flatten a message into a text " -"(as opposed to binary) serialized representation, but since Unicode cannot " -"represent binary data directly, the message is of necessity transformed into " -"something that contains only ASCII characters, using the standard email RFC " -"Content Transfer Encoding techniques for encoding email messages for " -"transport over channels that are not \"8 bit clean\"." -msgstr "" -"La classe :class:`Generator` peut être utilisée pour aplatir un message dans " -"une représentation sérialisée textuelle (par opposition à binaire), mais " -"comme Unicode ne peut pas représenter directement des données binaires, le " -"message est nécessairement transformé en quelque chose qui ne contient que " -"des caractères ASCII, en utilisant les techniques standard de codage de " -"transfert de contenu RFC pour le codage des messages électroniques pour le " -"transport sur des canaux qui ne sont pas « complétement 8 bits »." - -#: library/email.generator.rst:39 -msgid "" -"To accommodate reproducible processing of SMIME-signed " -"messages :class:`Generator` disables header folding for message parts of " -"type ``multipart/signed`` and all subparts." -msgstr "" -"Pour s'adapter au traitement reproductible des messages signés " -"SMIME :class:`Generator` ne raccourcit pas les en-têtes pour les parties de " -"message de type ``multipart/signed`` et toutes les sous-parties." - -#: library/email.generator.rst:47 -msgid "" -"Return a :class:`BytesGenerator` object that will write any message provided " -"to the :meth:`flatten` method, or any surrogateescape encoded text provided " -"to the :meth:`write` method, to the :term:`file-like object` *outfp*. " -"*outfp* must support a ``write`` method that accepts binary data." -msgstr "" -"Renvoie un objet :class:`BytesGenerator` qui écrit tout message fourni à la " -"méthode :meth:`flatten`, ou tout texte encodé par *surrogateescape* fourni à " -"la méthode :meth:`write`, dans le :term:`objet simili-fichier ` *outfp*. *outfp* doit disposer d'une méthode ``write`` qui accepte " -"les données binaires." - -#: library/email.generator.rst:153 -msgid "" -"If optional *mangle_from_* is ``True``, put a ``>`` character in front of " -"any line in the body that starts with the exact string ``\"From \"``, that " -"is ``From`` followed by a space at the beginning of a line. *mangle_from_* " -"defaults to the value of the :attr:`~email.policy.Policy.mangle_from_` " -"setting of the *policy* (which is ``True`` for " -"the :data:`~email.policy.compat32` policy and ``False`` for all others). " -"*mangle_from_* is intended for use when messages are stored in Unix mbox " -"format (see :mod:`mailbox` and `WHY THE CONTENT-LENGTH FORMAT IS BAD " -"`_)." -msgstr "" -"Si l'option *mangle_from_* est ``True``, place un caractère ``>`` devant " -"toute ligne du corps commençant par la chaîne exacte ``\"From \"``, c'est-à-" -"dire une ligne commençant par ``From`` suivi par une espace. *mangle_from_* " -"prend par défaut la valeur du " -"paramètre :attr:`~email.policy.Policy.mangle_from_` de la *policy* (qui est " -"``True`` pour la politique :data:`~email.policy.compat32` et ``False`` pour " -"tous les autres). *mangle_from_* est destiné à être utilisé lorsque les " -"messages sont stockés au format Unix *mbox* (voir :mod:`mailbox` et `WHY THE " -"CONTENT-LENGTH FORMAT IS BAD `_)." - -#: library/email.generator.rst:163 -msgid "" -"If *maxheaderlen* is not ``None``, refold any header lines that are longer " -"than *maxheaderlen*, or if ``0``, do not rewrap any headers. If " -"*manheaderlen* is ``None`` (the default), wrap headers and other message " -"lines according to the *policy* settings." -msgstr "" -"Si *maxheaderlen* n'est pas ``None``, raccourcit toutes les lignes d'en-tête " -"qui sont plus longues que *maxheaderlen*, ou si ``0``, ne raccourcit aucun " -"en-tête. Si *manheaderlen* est ``None`` (valeur par défaut), formate les en-" -"têtes et autres lignes de message en fonction des paramètres de *policy*." - -#: library/email.generator.rst:168 -msgid "" -"If *policy* is specified, use that policy to control message generation. If " -"*policy* is ``None`` (the default), use the policy associated with " -"the :class:`~email.message.Message` or :class:`~email.message.EmailMessage` " -"object passed to ``flatten`` to control the message generation. " -"See :mod:`email.policy` for details on what *policy* controls." -msgstr "" -"Si *policy* est spécifiée, utilise cette politique pour contrôler la " -"génération des messages. Si *policy* est ``None`` (par défaut), utilise la " -"politique associée à l'objet :class:`~email.message.Message` " -"ou :class:`~email.message.EmailMessage` passée à ``flatten`` pour contrôler " -"la génération des messages. Voir :mod:`email.policy` pour plus de détails " -"sur ce que *policy* contrôle." - -# suit un : -#: library/email.generator.rst:174 -msgid "Added the *policy* keyword." -msgstr "ajout du mot-clé *policy*." - -# suit un : -#: library/email.generator.rst:176 -msgid "" -"The default behavior of the *mangle_from_* and *maxheaderlen* parameters is " -"to follow the policy." -msgstr "" -"le comportement par défaut des paramètres *mangle_from_* et *maxheaderlen* " -"est de suivre la politique." - -#: library/email.generator.rst:83 -msgid "" -"Print the textual representation of the message object structure rooted at " -"*msg* to the output file specified when the :class:`BytesGenerator` instance " -"was created." -msgstr "" -"Affiche la représentation textuelle de la structure de l'objet message dont " -"la racine est *msg* dans le fichier de sortie spécifié lors de la création " -"de l'instance :class:`BytesGenerator`." - -#: library/email.generator.rst:87 -msgid "" -"If the :mod:`~email.policy` option :attr:`~email.policy.Policy.cte_type` is " -"``8bit`` (the default), copy any headers in the original parsed message that " -"have not been modified to the output with any bytes with the high bit set " -"reproduced as in the original, and preserve the non-" -"ASCII :mailheader:`Content-Transfer-Encoding` of any body parts that have " -"them. If ``cte_type`` is ``7bit``, convert the bytes with the high bit set " -"as needed using an ASCII-compatible :mailheader:`Content-Transfer-Encoding`. " -"That is, transform parts with non-ASCII :mailheader:`Content-Transfer-" -"Encoding` (:mailheader:`Content-Transfer-Encoding: 8bit`) to an ASCII " -"compatible :mailheader:`Content-Transfer-Encoding`, and encode RFC-invalid " -"non-ASCII bytes in headers using the MIME ``unknown-8bit`` character set, " -"thus rendering them RFC-compliant." -msgstr "" -"Si l'option :attr:`~email.policy.Policy.cte_type` de :mod:`~email.policy` " -"est ``8bit`` (valeur par défaut), copie tous les en-têtes du message analysé " -"d'origine qui n'ont pas été modifiés en sortie avec tous les octets dont le " -"bit de poids fort identique à l'original, et conserve " -"le :mailheader:`Content-Transfer-Encoding` non-ASCII de toutes les parties " -"du corps qui en ont. Si ``cte_type`` est ``7bit``, convertit les octets avec " -"le bit de poids fort défini selon les besoins en utilisant " -"un :mailheader:`Content-Transfer-Encoding` compatible ASCII. Autrement dit, " -"transforme les parties non ASCII :mailheader:`Content-Transfer-Encoding` " -"(:mailheader:`Content-Transfer-Encoding: 8bit`) en un :mailheader:`Content-" -"Transfer-Encoding` compatible ASCII, et encode les octets non ASCII non " -"valides de la RFC dans les en-têtes utilisant le jeu de caractères MIME " -"``unknown-8bit``, les rendant ainsi conformes à la RFC." - -#: library/email.generator.rst:104 library/email.generator.rst:197 -msgid "" -"If *unixfrom* is ``True``, print the envelope header delimiter used by the " -"Unix mailbox format (see :mod:`mailbox`) before the first of the :rfc:`5322` " -"headers of the root message object. If the root object has no envelope " -"header, craft a standard one. The default is ``False``. Note that for " -"subparts, no envelope header is ever printed." -msgstr "" -"Si *unixfrom* est ``True``, affiche le délimiteur d'en-tête d'enveloppe " -"utilisé par le format de boîte aux lettres Unix (voir :mod:`mailbox`) avant " -"le premier des en-têtes :rfc:`5322` de l'objet message racine. Si l'objet " -"racine n'a pas d'en-tête d'enveloppe, en crée un standard. La valeur par " -"défaut est ``False``. Notez que pour les sous-parties, aucun en-tête " -"d'enveloppe n'est jamais imprimé." - -#: library/email.generator.rst:110 library/email.generator.rst:203 -msgid "" -"If *linesep* is not ``None``, use it as the separator character between all " -"the lines of the flattened message. If *linesep* is ``None`` (the default), " -"use the value specified in the *policy*." -msgstr "" -"Si *linesep* n'est pas ``None``, l'utilise comme caractère de séparation " -"entre toutes les lignes du message aplati. Si *linesep* est ``None`` (valeur " -"par défaut), utilise la valeur spécifiée dans la *policy*." - -#: library/email.generator.rst:119 -msgid "" -"Return an independent clone of this :class:`BytesGenerator` instance with " -"the exact same option settings, and *fp* as the new *outfp*." -msgstr "" -"Renvoie un clone indépendant de cette instance :class:`BytesGenerator` avec " -"exactement les mêmes paramètres d'option, et *fp* comme nouveau *outfp*." - -#: library/email.generator.rst:125 -msgid "" -"Encode *s* using the ``ASCII`` codec and the ``surrogateescape`` error " -"handler, and pass it to the *write* method of the *outfp* passed to " -"the :class:`BytesGenerator`'s constructor." -msgstr "" -"Encode *s* en utilisant le codec ``ASCII`` et le gestionnaire d'erreurs " -"``surrogateescape``, et le passe à la méthode *write* du *outfp* passé au " -"constructeur de :class:`BytesGenerator`." - -#: library/email.generator.rst:130 -msgid "" -"As a convenience, :class:`~email.message.EmailMessage` provides the " -"methods :meth:`~email.message.EmailMessage.as_bytes` and ``bytes(aMessage)`` " -"(a.k.a. :meth:`~email.message.EmailMessage.__bytes__`), which simplify the " -"generation of a serialized binary representation of a message object. For " -"more detail, see :mod:`email.message`." -msgstr "" -"Par commodité, :class:`~email.message.EmailMessage` fournit les " -"méthodes :meth:`~email.message.EmailMessage.as_bytes` et ``bytes(aMessage)`` " -"(alias :meth:`~email.message .EmailMessage.__bytes__`), qui simplifient la " -"génération d'une représentation binaire sérialisée d'un objet message. Pour " -"plus de détails, voir :mod:`email.message`." - -#: library/email.generator.rst:137 -msgid "" -"Because strings cannot represent binary data, the :class:`Generator` class " -"must convert any binary data in any message it flattens to an ASCII " -"compatible format, by converting them to an ASCII " -"compatible :mailheader:`Content-Transfer_Encoding`. Using the terminology " -"of the email RFCs, you can think of this as :class:`Generator` serializing " -"to an I/O stream that is not \"8 bit clean\". In other words, most " -"applications will want to be using :class:`BytesGenerator`, and " -"not :class:`Generator`." -msgstr "" -"Comme les chaînes ne peuvent pas représenter des données binaires, la " -"classe :class:`Generator` doit convertir toutes les données binaires de tout " -"message qu'elle aplatit en un format compatible ASCII, en les convertissant " -"en un :mailheader:`Content-Transfer_Encoding` compatible ASCII. En utilisant " -"la terminologie des RFC des e-mails, vous pouvez considérer cela comme " -"un :class:`Generator` sérialisant vers un flux d'entrées-sorties qui n'est " -"pas « complètement 8 bits ». En d'autres termes, la plupart des applications " -"voudront utiliser :class:`BytesGenerator` et pas :class:`Generator`." - -#: library/email.generator.rst:148 -msgid "" -"Return a :class:`Generator` object that will write any message provided to " -"the :meth:`flatten` method, or any text provided to the :meth:`write` " -"method, to the :term:`file-like object` *outfp*. *outfp* must support a " -"``write`` method that accepts string data." -msgstr "" -"Renvoie un objet :class:`Generator` qui écrit tout message fourni à la " -"méthode :meth:`flatten`, ou tout texte fourni à la méthode :meth:`write`, " -"dans l':term:`objet simili-fichier ` *outfp*. *outfp* doit " -"prendre en charge une méthode ``write`` qui accepte les données de type " -"chaîne." - -#: library/email.generator.rst:182 -msgid "" -"Print the textual representation of the message object structure rooted at " -"*msg* to the output file specified when the :class:`Generator` instance was " -"created." -msgstr "" -"Affiche la représentation textuelle de la structure de l'objet message dont " -"la racine est *msg* dans le fichier de sortie spécifié lors de la création " -"de l'instance :class:`Generator`." - -#: library/email.generator.rst:186 -msgid "" -"If the :mod:`~email.policy` option :attr:`~email.policy.Policy.cte_type` is " -"``8bit``, generate the message as if the option were set to ``7bit``. (This " -"is required because strings cannot represent non-ASCII bytes.) Convert any " -"bytes with the high bit set as needed using an ASCII-" -"compatible :mailheader:`Content-Transfer-Encoding`. That is, transform " -"parts with non-ASCII :mailheader:`Content-Transfer-Encoding` " -"(:mailheader:`Content-Transfer-Encoding: 8bit`) to an ASCII " -"compatible :mailheader:`Content-Transfer-Encoding`, and encode RFC-invalid " -"non-ASCII bytes in headers using the MIME ``unknown-8bit`` character set, " -"thus rendering them RFC-compliant." -msgstr "" -"Si l'option :mod:`~email.policy` :attr:`~email.policy.Policy.cte_type` est " -"``8bit``, génère le message comme si l'option était définie sur ``7bit`` " -"(c'est nécessaire car les chaînes ne peuvent pas représenter des octets non " -"ASCII). Convertit tous les octets avec le bit de poids fort défini selon les " -"besoins à l'aide d'un :mailheader:`Content-Transfer-Encoding` compatible " -"ASCII. Autrement dit, transforme les parties non ASCII :mailheader:`Content-" -"Transfer-Encoding` (:mailheader:`Content-Transfer-Encoding: 8bit`) en " -"un :mailheader:`Content-Transfer-Encoding` compatible ASCII, et encode les " -"octets non ASCII non valides RFC dans les en-têtes utilisant le jeu de " -"caractères MIME ``unknown-8bit``, les rendant ainsi conformes à la RFC." - -# suit un : -#: library/email.generator.rst:209 -msgid "" -"Added support for re-encoding ``8bit`` message bodies, and the *linesep* " -"argument." -msgstr "" -"ajout de la prise en charge du ré-encodage des corps de message ``8bit`` et " -"de l'argument *linesep*." - -#: library/email.generator.rst:216 -msgid "" -"Return an independent clone of this :class:`Generator` instance with the " -"exact same options, and *fp* as the new *outfp*." -msgstr "" -"Renvoie un clone indépendant de cette instance :class:`Generator` avec " -"exactement les mêmes options, et avec *fp* comme nouveau *outfp*." - -#: library/email.generator.rst:222 -msgid "" -"Write *s* to the *write* method of the *outfp* passed to " -"the :class:`Generator`'s constructor. This provides just enough file-like " -"API for :class:`Generator` instances to be used in the :func:`print` " -"function." -msgstr "" -"Écrit *s* dans la méthode *write* de *outfp* passé au constructeur " -"de :class:`Generator`. Cela fournit une API ressemblant suffisamment au type " -"fichier pour les instances de :class:`Generator` utilisées dans la " -"fonction :func:`print`." - -#: library/email.generator.rst:228 -msgid "" -"As a convenience, :class:`~email.message.EmailMessage` provides the " -"methods :meth:`~email.message.EmailMessage.as_string` and ``str(aMessage)`` " -"(a.k.a. :meth:`~email.message.EmailMessage.__str__`), which simplify the " -"generation of a formatted string representation of a message object. For " -"more detail, see :mod:`email.message`." -msgstr "" -"Par commodité, :class:`~email.message.EmailMessage` fournit les " -"méthodes :meth:`~email.message.EmailMessage.as_string` et ``str(aMessage)`` " -"(alias :meth:`~email.message .EmailMessage.__str__`), qui simplifient la " -"génération d'une représentation sous forme de chaîne formatée d'un objet " -"message. Pour plus de détails, voir :mod:`email.message`." - -#: library/email.generator.rst:235 -#, fuzzy -msgid "" -"The :mod:`!email.generator` module also provides a derived " -"class, :class:`DecodedGenerator`, which is like the :class:`Generator` base " -"class, except that non-\\ :mimetype:`text` parts are not serialized, but are " -"instead represented in the output stream by a string derived from a template " -"filled in with information about the part." -msgstr "" -"Le module :mod:`email.generator` fournit également une classe " -"dérivée, :class:`DecodedGenerator`, qui ressemble à la classe de " -"base :class:`Generator`, sauf que les parties non-\\ :mimetype:`text` ne " -"sont pas sérialisées, mais sont plutôt représentées dans le flux de sortie " -"par une chaîne dérivée d'un modèle rempli d'informations sur la partie " -"concernée." - -#: library/email.generator.rst:244 -msgid "" -"Act like :class:`Generator`, except that for any subpart of the message " -"passed to :meth:`Generator.flatten`, if the subpart is of main " -"type :mimetype:`text`, print the decoded payload of the subpart, and if the " -"main type is not :mimetype:`text`, instead of printing it fill in the string " -"*fmt* using information from the part and print the resulting filled-in " -"string." -msgstr "" -"Agit comme :class:`Generator`, sauf que pour toute sous-partie du message " -"transmise à :meth:`Generator.flatten`, si la sous-partie est de type " -"principal :mimetype:`text`, affiche la charge utile décodée de la sous-" -"partie, et si le type principal n'est pas :mimetype:`text`, au lieu de " -"l'afficher, remplit la chaîne *fmt* en utilisant les informations de la " -"partie et affiche la chaîne remplie résultante." - -#: library/email.generator.rst:251 -msgid "" -"To fill in *fmt*, execute ``fmt % part_info``, where ``part_info`` is a " -"dictionary composed of the following keys and values:" -msgstr "" -"Pour remplir *fmt*, exécute ``fmt % part_info``, où ``part_info`` est un " -"dictionnaire composé des clés et valeurs suivantes :" - -#: library/email.generator.rst:254 -msgid "``type`` -- Full MIME type of the non-\\ :mimetype:`text` part" -msgstr "``type`` – Type MIME complet de la partie non-\\ :mimetype:`text`" - -#: library/email.generator.rst:256 -msgid "``maintype`` -- Main MIME type of the non-\\ :mimetype:`text` part" -msgstr "" -"``maintype`` – Type MIME principal de la partie non-\\ :mimetype:`text`" - -#: library/email.generator.rst:258 -msgid "``subtype`` -- Sub-MIME type of the non-\\ :mimetype:`text` part" -msgstr "``subtype`` – Sous-type MIME de la partie non-\\ :mimetype:`text`" - -#: library/email.generator.rst:260 -msgid "``filename`` -- Filename of the non-\\ :mimetype:`text` part" -msgstr "``filename`` – Nom de fichier de la partie non-\\ :mimetype:`text`" - -#: library/email.generator.rst:262 -msgid "" -"``description`` -- Description associated with the non-\\ :mimetype:`text` " -"part" -msgstr "" -"``description`` – Description associée à la partie non-\\ :mimetype:`text`" - -#: library/email.generator.rst:264 -msgid "" -"``encoding`` -- Content transfer encoding of the non-\\ :mimetype:`text` part" -msgstr "" -"``encoding`` – Encodage du contenu de la partie non-\\ :mimetype:`text`" - -#: library/email.generator.rst:266 -msgid "If *fmt* is ``None``, use the following default *fmt*:" -msgstr "Si *fmt* est ``None``, utilise le *fmt* par défaut suivant :" - -#: library/email.generator.rst:268 -msgid "" -"\"[Non-text (%(type)s) part of message omitted, filename %(filename)s]\"" -msgstr "" -"\"[Non-text (%(type)s) part of message omitted, filename %(filename)s]\"" - -#: library/email.generator.rst:270 -msgid "" -"Optional *_mangle_from_* and *maxheaderlen* are as with " -"the :class:`Generator` base class." -msgstr "" -"*_mangle_from_* et *maxheaderlen* sont optionnels et fonctionnent comme avec " -"la classe mère :class:`Generator`." - -#: library/email.generator.rst:275 -msgid "Footnotes" -msgstr "Notes" - -#: library/email.generator.rst:276 -#, fuzzy -msgid "" -"This statement assumes that you use the appropriate setting for " -"``unixfrom``, and that there are no :mod:`email.policy` settings calling for " -"automatic adjustments (for " -"example, :attr:`~email.policy.EmailPolicy.refold_source` must be ``none``, " -"which is *not* the default). It is also not 100% true, since if the message " -"does not conform to the RFC standards occasionally information about the " -"exact original text is lost during parsing error recovery. It is a goal to " -"fix these latter edge cases when possible." -msgstr "" -"Cette déclaration suppose que vous utilisez le paramètre approprié pour " -"``unixfrom`` et qu'il n'y a pas de paramètres :mod:`policy` entraînant des " -"ajustements automatiques (par " -"exemple, :attr:`~email.policy.Policy.refold_source` doit être ``none``, ce " -"qui n'est *pas* la valeur par défaut). Ce n'est pas non plus vrai à 100 %, " -"car si le message n'est pas conforme aux normes RFC, des informations sur le " -"texte original sont parfois perdues lors de la récupération d'erreur " -"d'analyse. L'objectif est de résoudre ces derniers cas extrêmes lorsque " -"c'est possible." diff --git a/library/email.header.po b/library/email.header.po deleted file mode 100644 index 3854c8ca6c..0000000000 --- a/library/email.header.po +++ /dev/null @@ -1,474 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-03-15 22:51+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/email.header.rst:2 -#, fuzzy -msgid ":mod:`!email.header`: Internationalized headers" -msgstr ":mod:`email.header` : en-têtes internationalisés" - -#: library/email.header.rst:7 -msgid "**Source code:** :source:`Lib/email/header.py`" -msgstr "**Code source :** :source:`Lib/email/headers.py`" - -#: library/email.header.rst:11 -msgid "" -"This module is part of the legacy (``Compat32``) email API. In the current " -"API encoding and decoding of headers is handled transparently by the " -"dictionary-like API of the :class:`~email.message.EmailMessage` class. In " -"addition to uses in legacy code, this module can be useful in applications " -"that need to completely control the character sets used when encoding " -"headers." -msgstr "" -"Ce module fait partie de l'ancienne API de messagerie (``Compat32``). Dans " -"l'API actuelle, l'encodage et le décodage des en-têtes sont gérés de manière " -"transparente par l'API de type dictionnaire de la " -"classe :class:`~email.message.EmailMessage`. En plus des utilisations dans " -"de l'ancien code, ce module peut être utile dans les applications qui " -"doivent contrôler complètement les jeux de caractères utilisés lors de " -"l'encodage des en-têtes." - -#: library/email.header.rst:17 -msgid "" -"The remaining text in this section is the original documentation of the " -"module." -msgstr "" -"Le texte restant de cette section est la documentation originale de ce " -"module." - -#: library/email.header.rst:19 -msgid "" -":rfc:`2822` is the base standard that describes the format of email " -"messages. It derives from the older :rfc:`822` standard which came into " -"widespread use at a time when most email was composed of ASCII characters " -"only. :rfc:`2822` is a specification written assuming email contains only 7-" -"bit ASCII characters." -msgstr "" -"La :rfc:`2822` est la norme de base qui décrit le format des messages " -"électroniques. Elle dérive de l'ancienne norme :rfc:`822` qui s'est " -"généralisée à une époque où la plupart des e-mails étaient composés " -"uniquement de caractères ASCII. La :rfc:`2822` est une spécification écrite " -"en supposant que le courrier électronique ne contient que des caractères " -"ASCII 7 bits." - -#: library/email.header.rst:24 -#, fuzzy -msgid "" -"Of course, as email has been deployed worldwide, it has become " -"internationalized, such that language specific character sets can now be " -"used in email messages. The base standard still requires email messages to " -"be transferred using only 7-bit ASCII characters, so a slew of RFCs have " -"been written describing how to encode email containing non-ASCII characters " -"into :rfc:`2822`\\ -compliant format. These RFCs " -"include :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, and :rfc:`2231`. " -"The :mod:`email` package supports these standards in its :mod:`!" -"email.header` and :mod:`email.charset` modules." -msgstr "" -"Bien sûr, à mesure que le courrier électronique a été déployé dans le monde, " -"il s'est internationalisé, de sorte que des jeux de caractères spécifiques à " -"une langue peuvent désormais être utilisés dans les messages électroniques. " -"La norme de base exige toujours que les messages électroniques soient " -"transférés en utilisant uniquement des caractères ASCII 7 bits, de sorte " -"qu'un grand nombre de RFC décrivent comment encoder les e-mails contenant " -"des caractères non ASCII dans le format conforme à la :rfc:`2822`. Ces RFC " -"incluent la :rfc:`2045`, la :rfc:`2046`, la :rfc:`2047` et la :rfc:`2231`. " -"Le paquet :mod:`email` gère ces normes dans ses modules :mod:`email.header` " -"et :mod:`email.charset`." - -#: library/email.header.rst:33 -#, fuzzy -msgid "" -"If you want to include non-ASCII characters in your email headers, say in " -"the :mailheader:`Subject` or :mailheader:`To` fields, you should use " -"the :class:`Header` class and assign the field in " -"the :class:`~email.message.Message` object to an instance of :class:`Header` " -"instead of using a string for the header value. Import the :class:`Header` " -"class from the :mod:`!email.header` module. For example::" -msgstr "" -"Si vous souhaitez inclure des caractères non-ASCII dans les en-têtes de vos " -"e-mails, par exemple dans les champs :mailheader:`Subject` " -"ou :mailheader:`To`, vous devez utiliser la classe :class:`Header` et " -"affecter le champ dans le :class:`~email.message.Message` à une instance " -"de :class:`Header` au lieu d'utiliser une chaîne pour la valeur de l'en-" -"tête. Importez la classe :class:`Header` du module :mod:`email.header`. Par " -"exemple ::" - -#: library/email.header.rst:50 -msgid "" -"Notice here how we wanted the :mailheader:`Subject` field to contain a non-" -"ASCII character? We did this by creating a :class:`Header` instance and " -"passing in the character set that the byte string was encoded in. When the " -"subsequent :class:`~email.message.Message` instance was flattened, " -"the :mailheader:`Subject` field was properly :rfc:`2047` encoded. MIME-" -"aware mail readers would show this header using the embedded ISO-8859-1 " -"character." -msgstr "" -"Remarquez ici comment nous voulions que le champ :mailheader:`Subject` " -"contienne un caractère non-ASCII : nous avons créé une " -"instance :class:`Header` et transmis le jeu de caractères dans lequel la " -"chaîne d'octets était encodée. Lorsque l'instance " -"suivante :class:`~email.message.Message` a été aplatie, le " -"champ :mailheader:`Subject` était correctement encodé selon la :rfc:`2047`. " -"Les lecteurs de courrier compatibles MIME afficheraient cet en-tête en " -"utilisant le caractère ISO-8859-1 intégré." - -#: library/email.header.rst:57 -msgid "Here is the :class:`Header` class description:" -msgstr "Voici la description de la classe :class:`Header` :" - -#: library/email.header.rst:62 -msgid "" -"Create a MIME-compliant header that can contain strings in different " -"character sets." -msgstr "" -"Crée un en-tête compatible MIME pouvant contenir des chaînes dans différents " -"jeux de caractères." - -#: library/email.header.rst:65 -msgid "" -"Optional *s* is the initial header value. If ``None`` (the default), the " -"initial header value is not set. You can later append to the header " -"with :meth:`append` method calls. *s* may be an instance of :class:`bytes` " -"or :class:`str`, but see the :meth:`append` documentation for semantics." -msgstr "" -"*s* (facultatif) est la valeur d'en-tête initiale. S'il vaut ``None`` " -"(valeur par défaut), la valeur d'en-tête initiale n'est pas définie. Vous " -"pouvez ensuite ajouter des choses à l'en-tête avec des appels de " -"méthode :meth:`append`. *s* peut être une instance de :class:`bytes` " -"ou :class:`str`, mais consultez la documentation :meth:`append` pour la " -"sémantique." - -#: library/email.header.rst:70 -msgid "" -"Optional *charset* serves two purposes: it has the same meaning as the " -"*charset* argument to the :meth:`append` method. It also sets the default " -"character set for all subsequent :meth:`append` calls that omit the " -"*charset* argument. If *charset* is not provided in the constructor (the " -"default), the ``us-ascii`` character set is used both as *s*'s initial " -"charset and as the default for subsequent :meth:`append` calls." -msgstr "" -"L'option *charset* sert à deux fins : elle a la même signification que " -"l'argument *charset* de la méthode :meth:`append`. Elle définit également le " -"jeu de caractères par défaut pour tous les appels suivants :meth:`append` " -"qui omettent l'argument *charset*. Si *charset* n'est pas fourni dans le " -"constructeur (par défaut), le jeu de caractères ``us-ascii`` est utilisé à " -"la fois comme jeu de caractères initial de *s* et comme jeu par défaut pour " -"les appels suivants à :meth:`append`." - -#: library/email.header.rst:77 -#, fuzzy -msgid "" -"The maximum line length can be specified explicitly via *maxlinelen*. For " -"splitting the first line to a shorter value (to account for the field header " -"which isn't included in *s*, e.g. :mailheader:`Subject`) pass in the name of " -"the field in *header_name*. The default *maxlinelen* is 78, and the default " -"value for *header_name* is ``None``, meaning it is not taken into account " -"for the first line of a long, split header." -msgstr "" -"La longueur de ligne maximale peut être spécifiée explicitement via " -"*maxlinelen*. Pour diviser la première ligne en une valeur plus courte (pour " -"tenir compte de l'en-tête de champ qui n'est pas inclus dans *s*, par " -"exemple :mailheader:`Subject`) passez le nom du champ dans *header_name*. La " -"valeur par défaut *maxlinelen* est 76 et la valeur par défaut pour " -"*header_name* est ``None``, ce qui signifie qu'elle n'est pas prise en " -"compte pour la première ligne d'un long en-tête divisé." - -#: library/email.header.rst:84 -msgid "" -"Optional *continuation_ws* must be :rfc:`2822`\\ -compliant folding " -"whitespace, and is usually either a space or a hard tab character. This " -"character will be prepended to continuation lines. *continuation_ws* " -"defaults to a single space character." -msgstr "" -"*continuation_ws* (facultatif) doit être conforme aux caractères de " -"reformatage :rfc:`2822` ; c'est généralement soit une espace, soit un " -"caractère de tabulation fixe. Ce caractère est ajouté aux lignes de " -"continuation. *continuation_ws* utilise par défaut une seule espace." - -#: library/email.header.rst:89 -msgid "" -"Optional *errors* is passed straight through to the :meth:`append` method." -msgstr "" -"*errors* (facultatif) est transmis directement à la méthode :meth:`append`." - -#: library/email.header.rst:94 -msgid "Append the string *s* to the MIME header." -msgstr "Ajoute la chaîne *s* à l'en-tête MIME." - -#: library/email.header.rst:96 -msgid "" -"Optional *charset*, if given, should be a :class:`~email.charset.Charset` " -"instance (see :mod:`email.charset`) or the name of a character set, which " -"will be converted to a :class:`~email.charset.Charset` instance. A value of " -"``None`` (the default) means that the *charset* given in the constructor is " -"used." -msgstr "" -"Le *charset* facultatif, s'il est fourni, doit être une instance " -"de :class:`~email.charset.Charset` (voir :mod:`email.charset`) ou le nom " -"d'un jeu de caractères, qui est converti en une " -"instance :class:`~email.charset.Charset`. Une valeur ``None`` (la valeur par " -"défaut) signifie que le *charset* donné dans le constructeur est utilisé." - -#: library/email.header.rst:102 -msgid "" -"*s* may be an instance of :class:`bytes` or :class:`str`. If it is an " -"instance of :class:`bytes`, then *charset* is the encoding of that byte " -"string, and a :exc:`UnicodeError` will be raised if the string cannot be " -"decoded with that character set." -msgstr "" -"*s* peut être une instance de :class:`bytes` ou :class:`str`. S'il s'agit " -"d'une instance de :class:`bytes`, alors *charset* est l'encodage de cette " -"chaîne d'octets et une :exc:`UnicodeError` est levée si la chaîne ne peut " -"pas être décodée avec ce jeu de caractères." - -#: library/email.header.rst:107 -msgid "" -"If *s* is an instance of :class:`str`, then *charset* is a hint specifying " -"the character set of the characters in the string." -msgstr "" -"Si *s* est une instance de :class:`str`, alors *charset* est une indication " -"spécifiant le jeu de caractères des caractères de la chaîne." - -#: library/email.header.rst:110 -msgid "" -"In either case, when producing an :rfc:`2822`\\ -compliant header " -"using :rfc:`2047` rules, the string will be encoded using the output codec " -"of the charset. If the string cannot be encoded using the output codec, a " -"UnicodeError will be raised." -msgstr "" -"Dans les deux cas, lors de la production d'un en-tête conforme à " -"la :rfc:`2822` à l'aide des règles :rfc:`2047`, la chaîne est encodée à " -"l'aide du codec de sortie du jeu de caractères. Si la chaîne ne peut pas " -"être encodée à l'aide du codec de sortie, une erreur *UnicodeError* est " -"levée." - -#: library/email.header.rst:115 -msgid "" -"Optional *errors* is passed as the errors argument to the decode call if *s* " -"is a byte string." -msgstr "" -"L'option *errors* est transmise comme argument d'erreurs à l'appel de " -"décodage si *s* est une chaîne d'octets." - -#: library/email.header.rst:121 -msgid "" -"Encode a message header into an RFC-compliant format, possibly wrapping long " -"lines and encapsulating non-ASCII parts in base64 or quoted-printable " -"encodings." -msgstr "" -"Encode un en-tête de message dans un format conforme à la RFC, en " -"reformatant éventuellement de longues lignes et en encapsulant des parties " -"non ASCII dans des encodages base64 ou dits *quoted-printable* (c.-à-d. que, " -"par exemple, les caractères non ASCII sont représentés par un signe égal, " -"suivi de son numéro, exprimé en hexadécimal)." - -#: library/email.header.rst:125 -msgid "" -"Optional *splitchars* is a string containing characters which should be " -"given extra weight by the splitting algorithm during normal header " -"wrapping. This is in very rough support of :RFC:`2822`\\'s 'higher level " -"syntactic breaks': split points preceded by a splitchar are preferred " -"during line splitting, with the characters preferred in the order in which " -"they appear in the string. Space and tab may be included in the string to " -"indicate whether preference should be given to one over the other as a split " -"point when other split chars do not appear in the line being split. " -"Splitchars does not affect :RFC:`2047` encoded lines." -msgstr "" -"*splitchars* (facultatif) est une chaîne contenant des caractères auxquels " -"l'algorithme de fractionnement doit donner un poids supplémentaire lors du " -"reformatage normal de l'en-tête. Il s'agit d'une prise en charge très " -"approximative des « ruptures syntaxiques de niveau supérieur » de " -"la :RFC:`2822` : les points de séparation précédés d'un caractère de " -"séparation sont préférés lors de la séparation des lignes, les caractères " -"étant préférés dans l'ordre dans lequel ils apparaissent dans la chaîne. Une " -"espace et une tabulation peuvent être incluses dans la chaîne pour indiquer " -"si la préférence doit être donnée à l'une plutôt qu'à l'autre comme point de " -"partage lorsque d'autres caractères fractionnés n'apparaissent pas dans la " -"ligne fractionnée. *splitchars* n'affecte pas les lignes encodées selon " -"la :RFC:`2047`." - -#: library/email.header.rst:135 -msgid "" -"*maxlinelen*, if given, overrides the instance's value for the maximum line " -"length." -msgstr "" -"*maxlinelen*, s'il est fourni, remplace la valeur de l'instance pour la " -"longueur de ligne maximale." - -#: library/email.header.rst:138 -msgid "" -"*linesep* specifies the characters used to separate the lines of the folded " -"header. It defaults to the most useful value for Python application code " -"(``\\n``), but ``\\r\\n`` can be specified in order to produce headers with " -"RFC-compliant line separators." -msgstr "" -"*linesep* spécifie les caractères utilisés pour séparer les lignes de l'en-" -"tête plié. Il prend par défaut la valeur la plus utile pour le code " -"d'application Python (``\\n``), mais ``\\r\\n`` peut être spécifié afin de " -"produire des en-têtes avec des séparateurs de ligne conformes à la RFC." - -# suit un : -#: library/email.header.rst:143 -msgid "Added the *linesep* argument." -msgstr "ajout de l'argument *linesep*." - -#: library/email.header.rst:147 -msgid "" -"The :class:`Header` class also provides a number of methods to support " -"standard operators and built-in functions." -msgstr "" -"La classe :class:`Header` fournit également un certain nombre de méthodes " -"pour prendre en charge les opérateurs standard et les fonctions intégrées." - -#: library/email.header.rst:152 -msgid "" -"Returns an approximation of the :class:`Header` as a string, using an " -"unlimited line length. All pieces are converted to unicode using the " -"specified encoding and joined together appropriately. Any pieces with a " -"charset of ``'unknown-8bit'`` are decoded as ASCII using the ``'replace'`` " -"error handler." -msgstr "" -"Renvoie une approximation de :class:`Header` sous forme de chaîne, en " -"utilisant une longueur de ligne illimitée. Toutes les parties sont " -"converties en Unicode en utilisant l'encodage spécifié et réunies de manière " -"appropriée. Tous les morceaux avec un *charset* à ``'unknown-8bit'`` sont " -"décodés en ASCII en utilisant le gestionnaire d'erreurs ``'replace'``." - -# suit un : -#: library/email.header.rst:158 -msgid "Added handling for the ``'unknown-8bit'`` charset." -msgstr "ajout de la gestion du jeu de caractères ``'unknown-8bit'``." - -#: library/email.header.rst:164 -msgid "" -"This method allows you to compare two :class:`Header` instances for equality." -msgstr "" -"Cette méthode vous permet de tester l'égalité de deux instances " -"de :class:`Header`." - -#: library/email.header.rst:170 -msgid "" -"This method allows you to compare two :class:`Header` instances for " -"inequality." -msgstr "" -"Cette méthode vous permet de tester l'inégalité de deux instances " -"de :class:`Header`." - -#: library/email.header.rst:173 -#, fuzzy -msgid "" -"The :mod:`!email.header` module also provides the following convenient " -"functions." -msgstr "" -"Le module :mod:`email.header` fournit également les fonctions pratiques " -"suivantes." - -#: library/email.header.rst:178 -msgid "" -"Decode a message header value without converting the character set. The " -"header value is in *header*." -msgstr "" -"Décode une valeur d'en-tête de message sans convertir le jeu de caractères. " -"La valeur de l'en-tête est dans *header*." - -#: library/email.header.rst:181 -msgid "For historical reasons, this function may return either:" -msgstr "" - -#: library/email.header.rst:183 -msgid "" -"A list of pairs containing each of the decoded parts of the header, " -"``(decoded_bytes, charset)``, where *decoded_bytes* is always an instance " -"of :class:`bytes`, and *charset* is either:" -msgstr "" - -#: library/email.header.rst:187 -msgid "A lower case string containing the name of the character set specified." -msgstr "" - -#: library/email.header.rst:189 -msgid "``None`` for non-encoded parts of the header." -msgstr "" - -#: library/email.header.rst:191 -msgid "" -"A list of length 1 containing a pair ``(string, None)``, where *string* is " -"always an instance of :class:`str`." -msgstr "" - -#: library/email.header.rst:194 -msgid "" -"An :exc:`email.errors.HeaderParseError` may be raised when certain decoding " -"errors occur (e.g. a base64 decoding exception)." -msgstr "" - -#: library/email.header.rst:197 -#, fuzzy -msgid "Here are examples:" -msgstr "Voici un exemple ::" - -#: library/email.header.rst:209 -msgid "" -"This function exists for backwards compatibility only. For new code, we " -"recommend using :class:`email.headerregistry.HeaderRegistry`." -msgstr "" - -#: library/email.header.rst:215 -msgid "" -"Create a :class:`Header` instance from a sequence of pairs as returned " -"by :func:`decode_header`." -msgstr "" -"Crée une instance :class:`Header` à partir d'une séquence de paires " -"renvoyées par :func:`decode_header`." - -#: library/email.header.rst:218 -msgid "" -":func:`decode_header` takes a header value string and returns a sequence of " -"pairs of the format ``(decoded_string, charset)`` where *charset* is the " -"name of the character set." -msgstr "" -":func:`decode_header` prend une chaîne de valeur d'en-tête et renvoie une " -"séquence de paires au format ``(decoded_string, charset)`` où *charset* est " -"le nom du jeu de caractères." - -#: library/email.header.rst:222 -msgid "" -"This function takes one of those sequence of pairs and returns " -"a :class:`Header` instance. Optional *maxlinelen*, *header_name*, and " -"*continuation_ws* are as in the :class:`Header` constructor." -msgstr "" -"Cette fonction prend l'une de ces séquences de paires et renvoie une " -"instance :class:`Header`. *maxlinelen*, *header_name* et *continuation_ws* " -"(facultatifs) s'utilisent comme dans le constructeur :class:`Header`." - -#: library/email.header.rst:228 -msgid "" -"This function exists for backwards compatibility only, and is not " -"recommended for use in new code." -msgstr "" - -#~ msgid "" -#~ "This function returns a list of ``(decoded_string, charset)`` pairs " -#~ "containing each of the decoded parts of the header. *charset* is " -#~ "``None`` for non-encoded parts of the header, otherwise a lower case " -#~ "string containing the name of the character set specified in the encoded " -#~ "string." -#~ msgstr "" -#~ "Cette fonction renvoie une liste de paires ``(decoded_string, charset)`` " -#~ "contenant chacune des parties décodées de l'en-tête. *charset* est " -#~ "``None`` pour les parties non encodées de l'en-tête, sinon une chaîne en " -#~ "minuscules contenant le nom du jeu de caractères spécifié dans la chaîne " -#~ "encodée." diff --git a/library/email.headerregistry.po b/library/email.headerregistry.po deleted file mode 100644 index 290ae739c8..0000000000 --- a/library/email.headerregistry.po +++ /dev/null @@ -1,881 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-03-17 22:00+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/email.headerregistry.rst:2 -#, fuzzy -msgid ":mod:`!email.headerregistry`: Custom Header Objects" -msgstr ":mod:`email.headerregistry` : objets d'en-tête personnalisés" - -#: library/email.headerregistry.rst:7 -msgid "**Source code:** :source:`Lib/email/headerregistry.py`" -msgstr "**Code source :** :source:`Lib/email/headerregistry.py`" - -#: library/email.headerregistry.rst:11 -msgid "[1]_" -msgstr "[1]_" - -#: library/email.headerregistry.rst:13 -msgid "" -"Headers are represented by customized subclasses of :class:`str`. The " -"particular class used to represent a given header is determined by " -"the :attr:`~email.policy.EmailPolicy.header_factory` of " -"the :mod:`~email.policy` in effect when the headers are created. This " -"section documents the particular ``header_factory`` implemented by the email " -"package for handling :RFC:`5322` compliant email messages, which not only " -"provides customized header objects for various header types, but also " -"provides an extension mechanism for applications to add their own custom " -"header types." -msgstr "" -"Les en-têtes sont représentés par des sous-classes personnalisées " -"de :class:`str`. La classe particulière utilisée pour représenter un en-tête " -"donné est déterminée par :attr:`~email.policy.EmailPolicy.header_factory` de " -"la :mod:`~email.policy` en vigueur lorsque les en-têtes sont créés. Cette " -"section documente la ``header_factory`` particulière implémentée par le " -"paquet de messagerie pour la gestion des messages électroniques conformes à " -"la :RFC:`5322`, qui fournit non seulement des objets d'en-tête personnalisés " -"pour différents types d'en-tête, mais fournit également un mécanisme " -"d'extension permettant aux applications d'ajouter leurs propres types d'en-" -"tête personnalisés." - -#: library/email.headerregistry.rst:22 -msgid "" -"When using any of the policy objects derived " -"from :data:`~email.policy.EmailPolicy`, all headers are produced " -"by :class:`.HeaderRegistry` and have :class:`.BaseHeader` as their last base " -"class. Each header class has an additional base class that is determined by " -"the type of the header. For example, many headers have the " -"class :class:`.UnstructuredHeader` as their other base class. The " -"specialized second class for a header is determined by the name of the " -"header, using a lookup table stored in the :class:`.HeaderRegistry`. All of " -"this is managed transparently for the typical application program, but " -"interfaces are provided for modifying the default behavior for use by more " -"complex applications." -msgstr "" -"Lors de l'utilisation de l'un des objets de définition de politique dérivés " -"de :data:`~email.policy.EmailPolicy`, tous les en-têtes sont produits " -"par :class:`.HeaderRegistry` et ont :class:`.BaseHeader` comme dernière " -"classe mère. Chaque classe d'en-tête a une classe mère supplémentaire qui " -"est déterminée par le type de l'en-tête. Par exemple, de nombreux en-têtes " -"ont la classe :class:`.UnstructuredHeader` comme autre classe mère. La " -"deuxième classe spécialisée pour un en-tête est déterminée par le nom de " -"l'en-tête, en utilisant un tableau de recherche stocké " -"dans :class:`.HeaderRegistry`. Tout cela est géré de manière transparente " -"pour le programme d'application typique, mais des interfaces sont fournies " -"pour modifier le comportement par défaut pour une utilisation par des " -"applications plus complexes." - -#: library/email.headerregistry.rst:33 -msgid "" -"The sections below first document the header base classes and their " -"attributes, followed by the API for modifying the behavior " -"of :class:`.HeaderRegistry`, and finally the support classes used to " -"represent the data parsed from structured headers." -msgstr "" -"Les sections ci-dessous documentent d'abord les classes mères d'en-tête et " -"leurs attributs, suivies de l'API pour modifier le comportement " -"de :class:`.HeaderRegistry`, et enfin les classes de gestion utilisées pour " -"représenter les données analysées à partir d'en-têtes structurés." - -#: library/email.headerregistry.rst:41 -msgid "" -"*name* and *value* are passed to ``BaseHeader`` from " -"the :attr:`~email.policy.EmailPolicy.header_factory` call. The string value " -"of any header object is the *value* fully decoded to unicode." -msgstr "" -"*name* et *value* sont passés à ``BaseHeader`` à partir de " -"l'appel :attr:`~email.policy.EmailPolicy.header_factory`. La valeur de " -"chaîne de tout objet d'en-tête est la *value* entièrement décodée en Unicode." - -#: library/email.headerregistry.rst:45 -msgid "This base class defines the following read-only properties:" -msgstr "Cette classe mère définit les propriétés en lecture seule suivantes :" - -#: library/email.headerregistry.rst:50 -msgid "" -"The name of the header (the portion of the field before the ':'). This is " -"exactly the value passed in " -"the :attr:`~email.policy.EmailPolicy.header_factory` call for *name*; that " -"is, case is preserved." -msgstr "" -"Nom de l'en-tête (la partie du champ avant le ``:``). C'est exactement la " -"valeur passée dans l'appel :attr:`~email.policy.EmailPolicy.header_factory` " -"pour *name* ; c'est-à-dire que la casse est préservée." - -#: library/email.headerregistry.rst:58 -msgid "" -"A tuple of :exc:`~email.errors.HeaderDefect` instances reporting any RFC " -"compliance problems found during parsing. The email package tries to be " -"complete about detecting compliance issues. See the :mod:`~email.errors` " -"module for a discussion of the types of defects that may be reported." -msgstr "" -"*n*-uplet d'instances :exc:`~email.errors.HeaderDefect` signalant tout " -"problème de conformité avec les RFC détecté lors de l'analyse. Le paquet d'e-" -"mails tente d'être complet en ce qui concerne la détection des problèmes de " -"conformité. Voir le module :mod:`~email.errors` pour une discussion sur les " -"types de défauts qui peuvent être signalés." - -#: library/email.headerregistry.rst:66 -msgid "" -"The maximum number of headers of this type that can have the same ``name``. " -"A value of ``None`` means unlimited. The ``BaseHeader`` value for this " -"attribute is ``None``; it is expected that specialized header classes will " -"override this value as needed." -msgstr "" -"Nombre maximum d'en-têtes de ce type pouvant avoir le même ``name``. Une " -"valeur de ``None`` signifie illimité. La valeur ``BaseHeader`` pour cet " -"attribut est ``None`` ; les classes d'en-tête spécialisées sont censées " -"remplacer cette valeur si nécessaire." - -#: library/email.headerregistry.rst:71 -msgid "" -"``BaseHeader`` also provides the following method, which is called by the " -"email library code and should not in general be called by application " -"programs:" -msgstr "" -"``BaseHeader`` fournit également la méthode suivante, qui est appelée par le " -"code de la bibliothèque de messagerie et ne doit généralement pas être " -"appelée par les programmes d'application :" - -#: library/email.headerregistry.rst:77 -msgid "" -"Return a string containing :attr:`~email.policy.Policy.linesep` characters " -"as required to correctly fold the header according to *policy*. " -"A :attr:`~email.policy.Policy.cte_type` of ``8bit`` will be treated as if it " -"were ``7bit``, since headers may not contain arbitrary binary data. " -"If :attr:`~email.policy.EmailPolicy.utf8` is ``False``, non-ASCII data will " -"be :rfc:`2047` encoded." -msgstr "" -"Renvoie une chaîne contenant les " -"caractères :attr:`~email.policy.Policy.linesep` nécessaires pour remettre en " -"forme correctement l'en-tête conformément à *policy*. " -"Un :attr:`~email.policy.Policy.cte_type` de ``8bit`` est traité comme s'il " -"s'agissait de ``7bit``, car les en-têtes ne peuvent pas contenir de données " -"binaires arbitraires. Si :attr:`~email.policy.EmailPolicy.utf8` est " -"``False``, les données non-ASCII seront encodées selon la :rfc:`2047`." - -#: library/email.headerregistry.rst:85 -msgid "" -"``BaseHeader`` by itself cannot be used to create a header object. It " -"defines a protocol that each specialized header cooperates with in order to " -"produce the header object. Specifically, ``BaseHeader`` requires that the " -"specialized class provide a :func:`classmethod` named ``parse``. This " -"method is called as follows::" -msgstr "" -"``BaseHeader`` seule ne peut pas être utilisée pour créer un objet d'en-" -"tête. Elle définit un protocole avec lequel chaque en-tête spécialisé " -"coopère afin de produire l'objet d'en-tête. Plus précisément, ``BaseHeader`` " -"nécessite que la classe spécialisée fournisse une :func:`classmethod` nommée " -"``parse``. Cette méthode s'appelle comme suit ::" - -#: library/email.headerregistry.rst:93 -#, fuzzy -msgid "" -"``kwds`` is a dictionary containing one pre-initialized key, ``defects``. " -"``defects`` is an empty list. The parse method should append any detected " -"defects to this list. On return, the ``kwds`` dictionary *must* contain " -"values for at least the keys ``decoded``, ``defects`` and ``parse_tree``. " -"``decoded`` should be the string value for the header (that is, the header " -"value fully decoded to unicode). ``parse_tree`` is set to the parse tree " -"obtained from parsing the header. The parse method should assume that " -"*string* may contain content-transfer-encoded parts, but should correctly " -"handle all valid unicode characters as well so that it can parse un-encoded " -"header values." -msgstr "" -"``kwds`` est un dictionnaire contenant une clé pré-initialisée : " -"``defects``. ``defects`` est une liste vide. La méthode d'analyse doit " -"ajouter tous les défauts détectés à cette liste. Au retour, le dictionnaire " -"``kwds`` *doit* contenir des valeurs pour au moins les clés ``decoded`` et " -"``defects``. ``decoded`` doit être la valeur de la chaîne pour l'en-tête " -"(c'est-à-dire la valeur de l'en-tête entièrement décodée en Unicode). La " -"méthode d'analyse doit supposer que *string* peut contenir des parties " -"codées par transfert de contenu, mais doit également gérer correctement tous " -"les caractères Unicode valides afin de pouvoir analyser les valeurs d'en-" -"tête non codées." - -#: library/email.headerregistry.rst:103 -msgid "" -"``BaseHeader``'s ``__new__`` then creates the header instance, and calls its " -"``init`` method. The specialized class only needs to provide an ``init`` " -"method if it wishes to set additional attributes beyond those provided by " -"``BaseHeader`` itself. Such an ``init`` method should look like this::" -msgstr "" -"``__new__`` de ``BaseHeader`` crée ensuite l'instance d'en-tête et appelle " -"sa méthode ``init``. La classe spécialisée n'a besoin de fournir une méthode " -"``init`` que si elle souhaite définir des attributs supplémentaires au-delà " -"de ceux fournis par ``BaseHeader`` lui-même. Une telle méthode ``init`` " -"devrait ressembler à ceci ::" - -#: library/email.headerregistry.rst:112 -msgid "" -"That is, anything extra that the specialized class puts in to the ``kwds`` " -"dictionary should be removed and handled, and the remaining contents of " -"``kw`` (and ``args``) passed to the ``BaseHeader`` ``init`` method." -msgstr "" -"Autrement dit, tout ce que la classe spécialisée ajoute au dictionnaire " -"``kwds`` doit être supprimé et géré, et le contenu restant de ``kw`` (et " -"``args``) est passé à la méthode ``init`` de ``BaseHeader``." - -#: library/email.headerregistry.rst:119 -msgid "" -"An \"unstructured\" header is the default type of header in :rfc:`5322`. Any " -"header that does not have a specified syntax is treated as unstructured. " -"The classic example of an unstructured header is the :mailheader:`Subject` " -"header." -msgstr "" -"Un en-tête « non structuré » est le type d'en-tête par défaut dans " -"la :rfc:`5322`. Tout en-tête qui n'a pas de syntaxe spécifiée est traité " -"comme non structuré. L'exemple classique d'en-tête non structuré est l'en-" -"tête :mailheader:`Subject`." - -#: library/email.headerregistry.rst:124 -msgid "" -"In :rfc:`5322`, an unstructured header is a run of arbitrary text in the " -"ASCII character set. :rfc:`2047`, however, has an :rfc:`5322` compatible " -"mechanism for encoding non-ASCII text as ASCII characters within a header " -"value. When a *value* containing encoded words is passed to the " -"constructor, the ``UnstructuredHeader`` parser converts such encoded words " -"into unicode, following the :rfc:`2047` rules for unstructured text. The " -"parser uses heuristics to attempt to decode certain non-compliant encoded " -"words. Defects are registered in such cases, as well as defects for issues " -"such as invalid characters within the encoded words or the non-encoded text." -msgstr "" -"Dans la :rfc:`5322`, un en-tête non structuré est une séquence de texte " -"arbitraire dans le jeu de caractères ASCII. :rfc:`2047`, cependant, possède " -"un mécanisme compatible :rfc:`5322` pour encoder du texte non-ASCII en tant " -"que caractères ASCII dans une valeur d'en-tête. Lorsqu'une *value* contenant " -"des mots encodés est passée au constructeur, l'analyseur " -"``UnstructuredHeader`` convertit ces mots encodés en Unicode, en suivant les " -"règles de la :rfc:`2047` pour le texte non structuré. L'analyseur utilise " -"des heuristiques pour tenter de décoder certains mots codés non conformes. " -"Des défauts sont enregistrés dans de tels cas, ainsi que des défauts pour " -"des problèmes tels que des caractères non valides dans les mots codés ou le " -"texte non codé." - -#: library/email.headerregistry.rst:134 -msgid "This header type provides no additional attributes." -msgstr "Ce type d'en-tête ne fournit aucun attribut supplémentaire." - -#: library/email.headerregistry.rst:139 -msgid "" -":rfc:`5322` specifies a very specific format for dates within email headers. " -"The ``DateHeader`` parser recognizes that date format, as well as " -"recognizing a number of variant forms that are sometimes found \"in the " -"wild\"." -msgstr "" -"La :rfc:`5322` spécifie un format très spécifique pour les dates dans les en-" -"têtes de courrier électronique. L'analyseur ``DateHeader`` reconnaît ce " -"format de date, ainsi qu'un certain nombre de formes variantes que l'on " -"trouve parfois « dans la nature »." - -#: library/email.headerregistry.rst:144 library/email.headerregistry.rst:186 -msgid "This header type provides the following additional attributes:" -msgstr "Ce type d'en-tête fournit les attributs supplémentaires suivants :" - -#: library/email.headerregistry.rst:148 -msgid "" -"If the header value can be recognized as a valid date of one form or " -"another, this attribute will contain a :class:`~datetime.datetime` instance " -"representing that date. If the timezone of the input date is specified as " -"``-0000`` (indicating it is in UTC but contains no information about the " -"source timezone), then :attr:`.datetime` will be a " -"naive :class:`~datetime.datetime`. If a specific timezone offset is found " -"(including ``+0000``), then :attr:`.datetime` will contain an aware " -"``datetime`` that uses :class:`datetime.timezone` to record the timezone " -"offset." -msgstr "" -"Si la valeur d'en-tête peut être reconnue comme une date valide d'une forme " -"ou d'une autre, cet attribut contient une " -"instance :class:`~datetime.datetime` représentant cette date. Si le fuseau " -"horaire de la date d'entrée est spécifié comme ``-0000`` (indiquant qu'il " -"est en UTC mais ne contient aucune information sur le fuseau horaire " -"source), alors :attr:`.datetime` est une :class:`~datetime.datetime` naïve. " -"Si un décalage de fuseau horaire spécifique est trouvé (y compris " -"``+0000``), alors :attr:`.datetime` contient un ``datetime`` avisé qui " -"utilise :class:`datetime.timezone` pour enregistrer le décalage lié au " -"fuseau horaire." - -#: library/email.headerregistry.rst:158 -msgid "" -"The ``decoded`` value of the header is determined by formatting the " -"``datetime`` according to the :rfc:`5322` rules; that is, it is set to::" -msgstr "" -"La valeur ``decoded`` de l'en-tête est déterminée en formatant le " -"``datetime`` selon les règles de la :rfc:`5322` ; c'est-à-dire qu'elle est " -"définie sur ::" - -#: library/email.headerregistry.rst:163 -msgid "" -"When creating a ``DateHeader``, *value* may be :class:`~datetime.datetime` " -"instance. This means, for example, that the following code is valid and " -"does what one would expect::" -msgstr "" -"Lors de la création d'un ``DateHeader``, *value* peut être une instance " -"de :class:`~datetime.datetime`. Cela signifie, par exemple, que le code " -"suivant est valide et fait ce à quoi on pourrait s'attendre ::" - -#: library/email.headerregistry.rst:169 -msgid "" -"Because this is a naive ``datetime`` it will be interpreted as a UTC " -"timestamp, and the resulting value will have a timezone of ``-0000``. Much " -"more useful is to use the :func:`~email.utils.localtime` function from " -"the :mod:`~email.utils` module::" -msgstr "" -"Comme il s'agit d'un ``datetime`` naïf, il est interprété comme un " -"horodatage UTC et la valeur résultante a un fuseau horaire de ``-0000``. Il " -"est beaucoup plus utile d'utiliser la " -"fonction :func:`~email.utils.localtime` du module :mod:`~email.utils` ::" - -#: library/email.headerregistry.rst:176 -msgid "" -"This example sets the date header to the current time and date using the " -"current timezone offset." -msgstr "" -"Cet exemple définit l'en-tête de date sur l'heure et la date actuelles à " -"l'aide du décalage horaire actuel." - -#: library/email.headerregistry.rst:182 -msgid "" -"Address headers are one of the most complex structured header types. The " -"``AddressHeader`` class provides a generic interface to any address header." -msgstr "" -"Les en-têtes d'adresse sont l'un des types d'en-têtes structurés les plus " -"complexes. La classe ``AddressHeader`` fournit une interface générique à " -"n'importe quel en-tête d'adresse." - -#: library/email.headerregistry.rst:191 -msgid "" -"A tuple of :class:`.Group` objects encoding the addresses and groups found " -"in the header value. Addresses that are not part of a group are represented " -"in this list as single-address ``Groups`` whose :attr:`~.Group.display_name` " -"is ``None``." -msgstr "" -"*n*-uplet d'objets :class:`.Group` encodant les adresses et les groupes " -"trouvés dans la valeur d'en-tête. Les adresses qui ne font pas partie d'un " -"groupe sont représentées dans cette liste comme des ``Groups`` à adresse " -"unique dont :attr:`~.Group.display_name` est ``None``." - -#: library/email.headerregistry.rst:199 -msgid "" -"A tuple of :class:`.Address` objects encoding all of the individual " -"addresses from the header value. If the header value contains any groups, " -"the individual addresses from the group are included in the list at the " -"point where the group occurs in the value (that is, the list of addresses is " -"\"flattened\" into a one dimensional list)." -msgstr "" -"*n*-uplet d'objets :class:`.Address` encodant toutes les adresses " -"individuelles à partir de la valeur d'en-tête. Si la valeur d'en-tête " -"contient des groupes, les adresses individuelles du groupe sont incluses " -"dans la liste au point où le groupe apparaît dans la valeur (c'est-à-dire " -"que la liste d'adresses est « aplatie » en une liste unidimensionnelle)." - -#: library/email.headerregistry.rst:205 -msgid "" -"The ``decoded`` value of the header will have all encoded words decoded to " -"unicode. :class:`~encodings.idna` encoded domain names are also decoded to " -"unicode. The ``decoded`` value is set by :ref:`joining ` " -"the :class:`str` value of the elements of the ``groups`` attribute with ``', " -"'``." -msgstr "" -"La valeur ``decoded`` de l'en-tête a tous les mots codés décodés en Unicode. " -"Les noms de domaine encodés en :class:`~encodings.idna` sont également " -"décodés en Unicode. La valeur ``decoded`` est définie en :ref:`joignant " -"` la valeur :class:`str` des éléments de l'attribut " -"``groups`` avec ``', '``." - -#: library/email.headerregistry.rst:211 -msgid "" -"A list of :class:`.Address` and :class:`.Group` objects in any combination " -"may be used to set the value of an address header. ``Group`` objects whose " -"``display_name`` is ``None`` will be interpreted as single addresses, which " -"allows an address list to be copied with groups intact by using the list " -"obtained from the ``groups`` attribute of the source header." -msgstr "" -"Une liste d'objets :class:`.Address` et :class:`.Group` dans n'importe " -"quelle combinaison peut être utilisée pour définir la valeur d'un en-tête " -"d'adresse. Les objets ``Group`` dont le ``display_name`` est ``None`` sont " -"interprétés comme des adresses uniques, ce qui permet de copier une liste " -"d'adresses avec des groupes intacts en utilisant la liste obtenue à partir " -"de l'attribut ``groups`` de l'en-tête source." - -#: library/email.headerregistry.rst:220 -msgid "" -"A subclass of :class:`.AddressHeader` that adds one additional attribute:" -msgstr "" -"Sous-classe de :class:`.AddressHeader` qui ajoute un attribut " -"supplémentaire :" - -#: library/email.headerregistry.rst:226 -msgid "" -"The single address encoded by the header value. If the header value " -"actually contains more than one address (which would be a violation of the " -"RFC under the default :mod:`~email.policy`), accessing this attribute will " -"result in a :exc:`ValueError`." -msgstr "" -"Adresse unique codée par la valeur d'en-tête. Si la valeur d'en-tête " -"contient en fait plus d'une adresse (ce qui serait une violation de la RFC " -"sous la valeur par défaut :mod:`~email.policy`), l'accès à cet attribut lève " -"une :exc:`ValueError`." - -#: library/email.headerregistry.rst:232 -msgid "" -"Many of the above classes also have a ``Unique`` variant (for example, " -"``UniqueUnstructuredHeader``). The only difference is that in the " -"``Unique`` variant, :attr:`~.BaseHeader.max_count` is set to 1." -msgstr "" -"La plupart des classes ci-dessus ont également une variante ``Unique`` (par " -"exemple, ``UniqueUnstructuredHeader``). La seule différence est que dans la " -"variante ``Unique``, :attr:`~.BaseHeader.max_count` est définie sur 1." - -#: library/email.headerregistry.rst:239 -msgid "" -"There is really only one valid value for the :mailheader:`MIME-Version` " -"header, and that is ``1.0``. For future proofing, this header class " -"supports other valid version numbers. If a version number has a valid value " -"per :rfc:`2045`, then the header object will have non-``None`` values for " -"the following attributes:" -msgstr "" -"Il n'y a vraiment qu'une seule valeur valide pour l'en-" -"tête :mailheader:`MIME-Version`, et c'est ``1.0``. Au cas où, cette classe " -"d'en-tête prend en charge d'autres numéros de version valides. Si un numéro " -"de version a une valeur valide selon la :rfc:`2045`, alors l'objet d'en-tête " -"a des valeurs autres que ``None`` pour les attributs suivants :" - -#: library/email.headerregistry.rst:247 -msgid "" -"The version number as a string, with any whitespace and/or comments removed." -msgstr "Numéro de version sous forme de chaîne, sans espaces ni commentaires." - -#: library/email.headerregistry.rst:252 -msgid "The major version number as an integer" -msgstr "Numéro de version majeure sous forme d'entier" - -#: library/email.headerregistry.rst:256 -msgid "The minor version number as an integer" -msgstr "Numéro de version mineure sous forme d'entier" - -#: library/email.headerregistry.rst:261 -msgid "" -"MIME headers all start with the prefix 'Content-'. Each specific header has " -"a certain value, described under the class for that header. Some can also " -"take a list of supplemental parameters, which have a common format. This " -"class serves as a base for all the MIME headers that take parameters." -msgstr "" -"Les en-têtes MIME commencent tous par le préfixe ``'Content-'``. Chaque en-" -"tête spécifique a une certaine valeur, décrite par la classe de cet en-tête. " -"Certains peuvent également prendre une liste de paramètres supplémentaires, " -"qui ont un format commun. Cette classe sert de base à tous les en-têtes MIME " -"qui prennent des paramètres." - -#: library/email.headerregistry.rst:268 -msgid "A dictionary mapping parameter names to parameter values." -msgstr "" -"Dictionnaire de correspondance entre les noms de paramètres et leurs valeurs." - -#: library/email.headerregistry.rst:270 -msgid "" -"It is now a :class:`frozendict` instead of a :class:`types.MappingProxyType`." -msgstr "" - -#: library/email.headerregistry.rst:277 -msgid "" -"A :class:`ParameterizedMIMEHeader` class that handles " -"the :mailheader:`Content-Type` header." -msgstr "" -"Classe :class:`ParameterizedMIMEHeader` qui gère l'en-" -"tête :mailheader:`Content-Type`." - -#: library/email.headerregistry.rst:282 -msgid "The content type string, in the form ``maintype/subtype``." -msgstr "Chaîne de type de contenu, sous la forme ``maintype/subtype``." - -#: library/email.headerregistry.rst:291 -msgid "" -"A :class:`ParameterizedMIMEHeader` class that handles " -"the :mailheader:`Content-Disposition` header." -msgstr "" -"Classe :class:`ParameterizedMIMEHeader` qui gère l'en-" -"tête :mailheader:`Content-Disposition`." - -#: library/email.headerregistry.rst:296 -msgid "``inline`` and ``attachment`` are the only valid values in common use." -msgstr "" -"``inline`` et ``attachment`` sont les seules valeurs valides couramment " -"utilisées." - -#: library/email.headerregistry.rst:301 -msgid "Handles the :mailheader:`Content-Transfer-Encoding` header." -msgstr "Gère l'en-tête :mailheader:`Content-Transfer-Encoding`." - -#: library/email.headerregistry.rst:305 -msgid "" -"Valid values are ``7bit``, ``8bit``, ``base64``, and ``quoted-printable``. " -"See :rfc:`2045` for more information." -msgstr "" -"Les valeurs valides sont ``7bit``, ``8bit``, ``base64`` et ``quoted-" -"printable``. Voir la :rfc:`2045` pour plus d'informations." - -#: library/email.headerregistry.rst:314 -#, fuzzy -msgid "" -"This is the factory used by :class:`~email.policy.EmailPolicy` by default. " -"``HeaderRegistry`` builds the class used to create a header instance " -"dynamically, using *base_class* and a specialized class retrieved from a " -"registry that it holds. When a given header name does not appear in the " -"registry, the class specified by *default_class* is used as the specialized " -"class. When *use_default_map* is ``True`` (the default), the standard " -"mapping of header names to classes is copied in to the registry during " -"initialization. *base_class* is always the last class in the generated " -"class's :class:`~type.__bases__` list." -msgstr "" -"C'est la fabrique utilisée par :class:`~email.policy.EmailPolicy` par " -"défaut. ``HeaderRegistry`` construit la classe utilisée pour créer " -"dynamiquement une instance d'en-tête, en utilisant *base_class* et une " -"classe spécialisée récupérée à partir d'un registre qu'il contient. " -"Lorsqu'un nom d'en-tête donné n'apparaît pas dans le registre, la classe " -"spécifiée par *default_class* est utilisée comme classe spécialisée. Lorsque " -"*use_default_map* est ``True`` (valeur par défaut), la correspondance " -"standard des noms d'en-tête aux classes est copiée dans le registre lors de " -"l'initialisation. *base_class* est toujours la dernière classe dans la liste " -"``__bases__`` de la classe générée." - -#: library/email.headerregistry.rst:324 -msgid "The default mappings are:" -msgstr "Les correspondances par défaut sont :" - -#: library/email.headerregistry.rst:0 -msgid "subject" -msgstr "subject" - -#: library/email.headerregistry.rst:326 -msgid "UniqueUnstructuredHeader" -msgstr "UniqueUnstructuredHeader" - -#: library/email.headerregistry.rst:0 -msgid "date" -msgstr "date" - -#: library/email.headerregistry.rst:327 library/email.headerregistry.rst:329 -msgid "UniqueDateHeader" -msgstr "UniqueDateHeader" - -#: library/email.headerregistry.rst:0 -msgid "resent-date" -msgstr "resent-date" - -#: library/email.headerregistry.rst:328 -msgid "DateHeader" -msgstr "DateHeader" - -#: library/email.headerregistry.rst:0 -msgid "orig-date" -msgstr "orig-date" - -#: library/email.headerregistry.rst:0 -msgid "sender" -msgstr "sender" - -#: library/email.headerregistry.rst:330 -msgid "UniqueSingleAddressHeader" -msgstr "UniqueSingleAddressHeader" - -#: library/email.headerregistry.rst:0 -msgid "resent-sender" -msgstr "resent-sender" - -#: library/email.headerregistry.rst:331 -msgid "SingleAddressHeader" -msgstr "SingleAddressHeader" - -#: library/email.headerregistry.rst:0 -msgid "to" -msgstr "to" - -#: library/email.headerregistry.rst:332 library/email.headerregistry.rst:334 -#: library/email.headerregistry.rst:336 library/email.headerregistry.rst:338 -#: library/email.headerregistry.rst:340 -msgid "UniqueAddressHeader" -msgstr "UniqueAddressHeader" - -#: library/email.headerregistry.rst:0 -msgid "resent-to" -msgstr "resent-to" - -#: library/email.headerregistry.rst:333 library/email.headerregistry.rst:335 -#: library/email.headerregistry.rst:337 library/email.headerregistry.rst:339 -msgid "AddressHeader" -msgstr "AddressHeader" - -#: library/email.headerregistry.rst:0 -msgid "cc" -msgstr "cc" - -#: library/email.headerregistry.rst:0 -msgid "resent-cc" -msgstr "resent-cc" - -#: library/email.headerregistry.rst:0 -msgid "bcc" -msgstr "bcc" - -#: library/email.headerregistry.rst:0 -msgid "resent-bcc" -msgstr "resent-bcc" - -#: library/email.headerregistry.rst:0 -msgid "from" -msgstr "from" - -#: library/email.headerregistry.rst:0 -msgid "resent-from" -msgstr "resent-from" - -#: library/email.headerregistry.rst:0 -msgid "reply-to" -msgstr "reply-to" - -#: library/email.headerregistry.rst:0 -msgid "mime-version" -msgstr "mime-version" - -#: library/email.headerregistry.rst:341 -msgid "MIMEVersionHeader" -msgstr "MIMEVersionHeader" - -#: library/email.headerregistry.rst:0 -msgid "content-type" -msgstr "content-type" - -#: library/email.headerregistry.rst:342 -msgid "ContentTypeHeader" -msgstr "ContentTypeHeader" - -#: library/email.headerregistry.rst:0 -msgid "content-disposition" -msgstr "content-disposition" - -#: library/email.headerregistry.rst:343 -msgid "ContentDispositionHeader" -msgstr "ContentDispositionHeader" - -#: library/email.headerregistry.rst:0 -msgid "content-transfer-encoding" -msgstr "content-transfer-encoding" - -#: library/email.headerregistry.rst:344 -msgid "ContentTransferEncodingHeader" -msgstr "ContentTransferEncodingHeader" - -#: library/email.headerregistry.rst:0 -msgid "message-id" -msgstr "message-id" - -#: library/email.headerregistry.rst:345 -msgid "MessageIDHeader" -msgstr "MessageIDHeader" - -#: library/email.headerregistry.rst:347 -msgid "``HeaderRegistry`` has the following methods:" -msgstr "``HeaderRegistry`` a les méthodes suivantes :" - -#: library/email.headerregistry.rst:352 -msgid "" -"*name* is the name of the header to be mapped. It will be converted to " -"lower case in the registry. *cls* is the specialized class to be used, " -"along with *base_class*, to create the class used to instantiate headers " -"that match *name*." -msgstr "" -"*name* est le nom de l'en-tête à faire correspondre. Il est converti en " -"minuscules dans le registre. *cls* est la classe spécialisée à utiliser, " -"avec *base_class*, pour créer la classe utilisée pour instancier les en-" -"têtes qui correspondent à *name*." - -#: library/email.headerregistry.rst:360 -msgid "Construct and return a class to handle creating a *name* header." -msgstr "" -"Construit et renvoie une classe pour gérer la création d'un en-tête *name*." - -#: library/email.headerregistry.rst:365 -msgid "" -"Retrieves the specialized header associated with *name* from the registry " -"(using *default_class* if *name* does not appear in the registry) and " -"composes it with *base_class* to produce a class, calls the constructed " -"class's constructor, passing it the same argument list, and finally returns " -"the class instance created thereby." -msgstr "" -"Récupère l'en-tête spécialisé associé à *name* du registre (en utilisant " -"*default_class* si *name* n'apparaît pas dans le registre) et le compose " -"avec *base_class* pour produire une classe, appelle le constructeur de la " -"classe construite, en lui passant la même liste d'arguments, et renvoie " -"enfin l'instance de classe ainsi créée." - -#: library/email.headerregistry.rst:372 -msgid "" -"The following classes are the classes used to represent data parsed from " -"structured headers and can, in general, be used by an application program to " -"construct structured values to assign to specific headers." -msgstr "" -"Les classes suivantes sont les classes utilisées pour représenter les " -"données analysées à partir d'en-têtes structurés et peuvent, en général, " -"être utilisées par un programme d'application pour construire des valeurs " -"structurées à affecter à des en-têtes spécifiques." - -#: library/email.headerregistry.rst:379 -msgid "" -"The class used to represent an email address. The general form of an " -"address is::" -msgstr "" -"Classe utilisée pour représenter une adresse e-mail. La forme générale d'une " -"adresse est :" - -#: library/email.headerregistry.rst:384 -msgid "or::" -msgstr "ou ::" - -#: library/email.headerregistry.rst:388 -msgid "" -"where each part must conform to specific syntax rules spelled out " -"in :rfc:`5322`." -msgstr "" -"où chaque partie doit se conformer à des règles de syntaxe spécifiques " -"énoncées dans la :rfc:`5322`." - -#: library/email.headerregistry.rst:391 -msgid "" -"As a convenience *addr_spec* can be specified instead of *username* and " -"*domain*, in which case *username* and *domain* will be parsed from the " -"*addr_spec*. An *addr_spec* must be a properly RFC quoted string; if it is " -"not ``Address`` will raise an error. Unicode characters are allowed and " -"will be property encoded when serialized. However, per the RFCs, unicode is " -"*not* allowed in the username portion of the address." -msgstr "" -"Pour plus de commodité, *addr_spec* peut être spécifié à la place de " -"*username* et *domain*, *username* et *domain* sont alors analysés à partir " -"de *addr_spec*. Une *addr_spec* doit être une chaîne correctement entre " -"guillemets RFC ; si ce n'est pas le cas, ``Address`` lève une erreur. Les " -"caractères Unicode sont autorisés et sont encodés proprement lors de la " -"sérialisation. Cependant, selon les RFC, l’Unicode n'est *pas* autorisé dans " -"la partie nom d'utilisateur de l'adresse." - -#: library/email.headerregistry.rst:400 -msgid "" -"The display name portion of the address, if any, with all quoting removed. " -"If the address does not have a display name, this attribute will be an empty " -"string." -msgstr "" -"Partie du nom d'affichage de l'adresse, le cas échéant, avec toutes les " -"citations supprimées. Si l'adresse n'a pas de nom d'affichage, cet attribut " -"est une chaîne vide." - -#: library/email.headerregistry.rst:406 -msgid "The ``username`` portion of the address, with all quoting removed." -msgstr "Partie ``username`` de l'adresse, sans guillemets." - -#: library/email.headerregistry.rst:410 -msgid "The ``domain`` portion of the address." -msgstr "Partie ``domain`` de l'adresse." - -#: library/email.headerregistry.rst:414 -msgid "" -"The ``username@domain`` portion of the address, correctly quoted for use as " -"a bare address (the second form shown above). This attribute is not mutable." -msgstr "" -"Partie ``username@domain`` de l'adresse, correctement citée pour une " -"utilisation en tant qu'adresse nue (la deuxième forme illustrée ci-dessus). " -"Cet attribut n'est pas modifiable." - -#: library/email.headerregistry.rst:420 -msgid "" -"The ``str`` value of the object is the address quoted according " -"to :rfc:`5322` rules, but with no Content Transfer Encoding of any non-ASCII " -"characters." -msgstr "" -"La valeur ``str`` de l'objet est l'adresse entre guillemets selon les règles " -"de la :rfc:`5322`, mais sans encodage de contenu pour les caractères non-" -"ASCII." - -#: library/email.headerregistry.rst:424 -msgid "" -"To support SMTP (:rfc:`5321`), ``Address`` handles one special case: if " -"``username`` and ``domain`` are both the empty string (or ``None``), then " -"the string value of the ``Address`` is ``<>``." -msgstr "" -"Pour prendre en charge SMTP (:rfc:`5321`), ``Address`` gère un cas " -"particulier : si ``username`` et ``domain`` sont tous deux la chaîne vide " -"(ou ``None``), alors la valeur de chaîne de ``Address`` est ``<>``." - -#: library/email.headerregistry.rst:431 -msgid "" -"The class used to represent an address group. The general form of an " -"address group is::" -msgstr "" -"Classe utilisée pour représenter un groupe d'adresses. La forme générale " -"d'un groupe d'adresses est :" - -#: library/email.headerregistry.rst:436 -msgid "" -"As a convenience for processing lists of addresses that consist of a mixture " -"of groups and single addresses, a ``Group`` may also be used to represent " -"single addresses that are not part of a group by setting *display_name* to " -"``None`` and providing a list of the single address as *addresses*." -msgstr "" -"Pour faciliter le traitement des listes d'adresses composées d'un mélange de " -"groupes et d'adresses uniques, un ``Group`` peut également être utilisé pour " -"représenter des adresses uniques qui ne font pas partie d'un groupe en " -"définissant *display_name* sur ``None`` et en fournissant une liste de " -"l'adresse unique sous la forme *adresses*." - -#: library/email.headerregistry.rst:443 -msgid "" -"The ``display_name`` of the group. If it is ``None`` and there is exactly " -"one ``Address`` in ``addresses``, then the ``Group`` represents a single " -"address that is not in a group." -msgstr "" -"``display_name`` du groupe. Si c'est ``None`` et qu'il y a exactement une " -"``Adress`` dans ``adresses``, alors le ``Group`` représente une seule " -"adresse qui n'est pas dans un groupe." - -#: library/email.headerregistry.rst:449 -msgid "" -"A possibly empty tuple of :class:`.Address` objects representing the " -"addresses in the group." -msgstr "" -"*n*-uplet éventuellement vide d'objets :class:`.Address` représentant les " -"adresses du groupe." - -#: library/email.headerregistry.rst:454 -msgid "" -"The ``str`` value of a ``Group`` is formatted according to :rfc:`5322`, but " -"with no Content Transfer Encoding of any non-ASCII characters. If " -"``display_name`` is none and there is a single ``Address`` in the " -"``addresses`` list, the ``str`` value will be the same as the ``str`` of " -"that single ``Address``." -msgstr "" -"La valeur ``str`` d'un ``Group`` est formatée selon la :rfc:`5322`, mais " -"sans encodage de contenu pour les caractères non-ASCII. Si ``display_name`` " -"est ``None`` et qu'il y a une seule ``Address`` dans la liste ``addresses``, " -"la valeur ``str`` est la même que la ``str`` de cette seule ``Adress``." - -#: library/email.headerregistry.rst:462 -msgid "Footnotes" -msgstr "Notes" - -#: library/email.headerregistry.rst:463 -msgid "" -"Originally added in 3.3 as a :term:`provisional module `" -msgstr "" -"Ajouté à l'origine dans 3.3 en tant que :term:`paquet provisoire " -"`" diff --git a/library/email.iterators.po b/library/email.iterators.po deleted file mode 100644 index 16e4a50385..0000000000 --- a/library/email.iterators.po +++ /dev/null @@ -1,119 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2019-06-20 19:13+0200\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.0.5\n" - -#: library/email.iterators.rst:2 -#, fuzzy -msgid ":mod:`!email.iterators`: Iterators" -msgstr ":mod:`email.iterators`: Itérateurs" - -#: library/email.iterators.rst:7 -msgid "**Source code:** :source:`Lib/email/iterators.py`" -msgstr "**Code source :** :source:`Lib/email/iterators.py`" - -#: library/email.iterators.rst:11 -#, fuzzy -msgid "" -"Iterating over a message object tree is fairly easy with " -"the :meth:`Message.walk ` method. The :mod:`!" -"email.iterators` module provides some useful higher level iterations over " -"message object trees." -msgstr "" -"Itérer sur l'arborescence d'un objet message est plutôt simple avec la " -"méthode :meth:`Message.walk `. Le " -"module :mod:`email.iterators` fournit des fonctionnalités d'itérations de " -"plus haut niveau sur les arbres d'objets messages." - -#: library/email.iterators.rst:19 -msgid "" -"This iterates over all the payloads in all the subparts of *msg*, returning " -"the string payloads line-by-line. It skips over all the subpart headers, " -"and it skips over any subpart with a payload that isn't a Python string. " -"This is somewhat equivalent to reading the flat text representation of the " -"message from a file using :meth:`~io.TextIOBase.readline`, skipping over all " -"the intervening headers." -msgstr "" -"Cette fonction permet d'itérer sur tous les contenus de tous les éléments de " -"*msg*, en retournant les contenus sous forme de chaînes de caractères ligne " -"par ligne. Il saute les entêtes des sous éléments, et tous les sous éléments " -"dont le contenu n'est pas une chaîne de caractères Python. C'est en quelque " -"sorte équivalent à une lecture plate d'une représentation textuelle du " -"message à partir d'un fichier en utilisant :meth:`~io.TextIOBase.readline`, " -"et en sautant toutes les entêtes intermédiaires." - -#: library/email.iterators.rst:26 -msgid "" -"Optional *decode* is passed through to :meth:`Message.get_payload " -"`." -msgstr "" -"Le paramètre optionnel *decode* est transmis à la " -"méthode :meth:`Message.get_payload `." - -#: library/email.iterators.rst:32 -msgid "" -"This iterates over all the subparts of *msg*, returning only those subparts " -"that match the MIME type specified by *maintype* and *subtype*." -msgstr "" -"Cette fonction permet d'itérer sur tous les sous éléments de *msg*, en " -"retournant seulement les sous éléments qui correspondent au type MIME " -"spécifié par *maintype* et *subtype*." - -#: library/email.iterators.rst:35 -msgid "" -"Note that *subtype* is optional; if omitted, then subpart MIME type matching " -"is done only with the main type. *maintype* is optional too; it defaults " -"to :mimetype:`text`." -msgstr "" -"Notez que le paramètre *subtype* est optionnel ; s'il n'est pas présent, " -"alors le type MIME du sous élément est seulement composé du type principal. " -"*maintype* est également optionnel ; sa valeur par défaut " -"est :mimetype:`text`." - -#: library/email.iterators.rst:39 -msgid "" -"Thus, by default :func:`typed_subpart_iterator` returns each subpart that " -"has a MIME type of :mimetype:`text/\\*`." -msgstr "" -"En conséquence, par défaut, :func:`typed_subpart_iterator` retourne chaque " -"sous élément qui a un type MIME de type :mimetype:`text/\\*`." - -#: library/email.iterators.rst:43 -msgid "" -"The following function has been added as a useful debugging tool. It should " -"*not* be considered part of the supported public interface for the package." -msgstr "" -"La fonction suivante a été ajouté en tant qu'un outil de débogage. Elle *ne " -"devrait pas* être considérée comme une interface publique supportée pour ce " -"paquet." - -#: library/email.iterators.rst:48 -msgid "" -"Prints an indented representation of the content types of the message object " -"structure. For example:" -msgstr "" -"Affiche une représentation indentée des types de contenu de la structure de " -"l'objet message. Par exemple :" - -#: library/email.iterators.rst:81 -msgid "" -"Optional *fp* is a file-like object to print the output to. It must be " -"suitable for Python's :func:`print` function. *level* is used internally. " -"*include_default*, if true, prints the default type as well." -msgstr "" -"Le paramètre optionnel *fp* est un objet fichier-compatible dans lequel on " -"peut écrire le flux de sortie. Il doit être approprié pour la fonction de " -"Python :func:`print`. *level* est utilisé en interne. *include_default*, si " -"vrai, affiche aussi le type par défaut." diff --git a/library/email.message.po b/library/email.message.po deleted file mode 100644 index 4c166aa3ca..0000000000 --- a/library/email.message.po +++ /dev/null @@ -1,1272 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-07-29 23:04+0200\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/email.message.rst:2 -#, fuzzy -msgid ":mod:`!email.message`: Representing an email message" -msgstr ":mod:`email.message` : représentation d'un message électronique" - -#: library/email.message.rst:7 -msgid "**Source code:** :source:`Lib/email/message.py`" -msgstr "**Code source :** :source:`Lib/email/message.py`" - -#: library/email.message.rst:11 -msgid "[1]_" -msgstr "[1]_" - -#: library/email.message.rst:13 -#, fuzzy -msgid "" -"The central class in the :mod:`email` package is the :class:`EmailMessage` " -"class, imported from the :mod:`!email.message` module. It is the base class " -"for the :mod:`email` object model. :class:`EmailMessage` provides the core " -"functionality for setting and querying header fields, for accessing message " -"bodies, and for creating or modifying structured messages." -msgstr "" -"La classe centrale du paquet :mod:`email` est la " -"classe :class:`EmailMessage`, importée du module :mod:`email.message`. C'est " -"la classe mère du modèle d'objet :mod:`email`. :class:`EmailMessage` fournit " -"la fonctionnalité de base pour définir et interroger les champs d'en-tête, " -"pour accéder au corps des messages et pour créer ou modifier des messages " -"structurés." - -#: library/email.message.rst:19 -msgid "" -"An email message consists of *headers* and a *payload* (which is also " -"referred to as the *content*). Headers are :rfc:`5322` or :rfc:`6532` style " -"field names and values, where the field name and value are separated by a " -"colon. The colon is not part of either the field name or the field value. " -"The payload may be a simple text message, or a binary object, or a " -"structured sequence of sub-messages each with their own set of headers and " -"their own payload. The latter type of payload is indicated by the message " -"having a MIME type such as :mimetype:`multipart/\\*` or :mimetype:`message/" -"rfc822`." -msgstr "" -"Un message électronique se compose d'en-têtes (*headers*) et d'une *charge " -"utile* (*payload* en anglais, également appelée *contenu* – *content* en " -"anglais). Les en-têtes sont des noms et valeurs de champ de " -"style :rfc:`5322` ou :rfc:`6532`, où le nom et la valeur du champ sont " -"séparés par deux points. Les deux-points ne font partie ni du nom du champ " -"ni de la valeur du champ. La charge utile peut être un simple message texte, " -"un objet binaire ou une séquence structurée de sous-messages chacun avec son " -"propre ensemble d'en-têtes et sa propre charge utile. Ce dernier type de " -"charge utile est indiqué par le message ayant un type MIME tel " -"que :mimetype:`multipart/\\*` ou :mimetype:`message/rfc822`." - -#: library/email.message.rst:28 -msgid "" -"The conceptual model provided by an :class:`EmailMessage` object is that of " -"an ordered dictionary of headers coupled with a *payload* that represents " -"the :rfc:`5322` body of the message, which might be a list of sub-" -"``EmailMessage`` objects. In addition to the normal dictionary methods for " -"accessing the header names and values, there are methods for accessing " -"specialized information from the headers (for example the MIME content " -"type), for operating on the payload, for generating a serialized version of " -"the message, and for recursively walking over the object tree." -msgstr "" -"Le modèle conceptuel fourni par un objet :class:`EmailMessage` est celui " -"d'un dictionnaire ordonné d'en-têtes couplé à une *charge utile* qui " -"représente le corps :rfc:`5322` du message, qui peut être une liste de sous-" -"objets ``EmailMessage``. En plus des méthodes de dictionnaire normales pour " -"accéder aux noms et valeurs d'en-têtes, il existe des méthodes pour accéder " -"à des informations spécialisées à partir des en-têtes (par exemple le type " -"de contenu MIME), pour agir sur la charge utile, pour générer une version " -"sérialisée du message et pour parcourir récursivement l'arborescence " -"d'objets." - -#: library/email.message.rst:37 -#, fuzzy -msgid "" -"The :class:`EmailMessage` dictionary-like interface is indexed by the header " -"names, which must be ASCII values. The values of the dictionary are strings " -"with some extra methods. Headers are stored and returned in case-preserving " -"form, but field names are matched case-insensitively. The keys are ordered, " -"but unlike a real dict, there can be duplicates. Additional methods are " -"provided for working with headers that have duplicate keys." -msgstr "" -"L'interface de type dictionnaire :class:`EmailMessage` est indexée par les " -"noms d'en-tête, qui doivent être des valeurs ASCII. Les valeurs du " -"dictionnaire sont des chaînes avec quelques méthodes supplémentaires. Les en-" -"têtes sont stockés et renvoyés sous une forme respectant la casse, mais les " -"noms de champ sont mis en correspondance sans tenir compte de la casse. " -"Contrairement à un vrai dictionnaire, il y a un ordre pour les clés et il " -"peut y avoir des clés en double. Des méthodes supplémentaires sont fournies " -"pour travailler avec des en-têtes qui ont des clés en double." - -#: library/email.message.rst:44 -msgid "" -"The *payload* is either a string or bytes object, in the case of simple " -"message objects, or a list of :class:`EmailMessage` objects, for MIME " -"container documents such as :mimetype:`multipart/\\*` and :mimetype:`message/" -"rfc822` message objects." -msgstr "" -"La *charge utile* est soit une chaîne ou un objet d'octets, dans le cas " -"d'objets de message simples, soit une liste d'objets :class:`EmailMessage` " -"pour les documents de conteneur MIME tels que :mimetype:`multipart/\\*` et " -"les objets messages :mimetype:`message/rfc822`." - -#: library/email.message.rst:52 -#, fuzzy -msgid "" -"If *policy* is specified use the rules it specifies to update and serialize " -"the representation of the message. If *policy* is not set, use " -"the :class:`~email.policy.default` policy, which follows the rules of the " -"email RFCs except for line endings (instead of the RFC mandated ``\\r\\n``, " -"it uses the Python standard ``\\n`` line endings). For more information see " -"the :mod:`~email.policy` documentation. [2]_" -msgstr "" -"Si *policy* est spécifiée, Python utilise les règles qu'elle spécifie pour " -"mettre à jour et sérialiser la représentation du message. Si *policy* n'est " -"pas définie, Python utilise la politique :class:`~email.policy.default`, qui " -"suit les règles des RFC de messagerie sauf pour les fins de ligne (au lieu " -"de ``\\r\\n`` indiqués par la RFC, il utilise les fins de ligne standard " -"Python ``\\n``). Pour plus d'informations, consultez la " -"documentation :mod:`~email.policy`." - -#: library/email.message.rst:61 -#, fuzzy -msgid "" -"Return the entire message flattened as a string. When optional *unixfrom* " -"is true, the envelope header is included in the returned string. *unixfrom* " -"defaults to ``False``. For backward compatibility with the " -"base :class:`~email.message.Message` class *maxheaderlen* is accepted, but " -"defaults to ``None``, which means that by default the line length is " -"controlled by the :attr:`~email.policy.Policy.max_line_length` of the " -"policy. The *policy* argument may be used to override the default policy " -"obtained from the message instance. This can be used to control some of the " -"formatting produced by the method, since the specified *policy* will be " -"passed to the :class:`~email.generator.Generator`." -msgstr "" -"Renvoie le message entier aplati sous forme de chaîne. Lorsque l'option " -"*unixfrom* est vraie, l'en-tête de l'enveloppe est inclus dans la chaîne " -"renvoyée. *unixfrom* par défaut est ``False``. Pour la rétrocompatibilité " -"avec la classe mère :class:`~email.message.Message`, la valeur " -"*maxheaderlen* de la classe est acceptée, mais la valeur par défaut est " -"``None``, ce qui signifie que par défaut la longueur de la ligne est " -"contrôlée par l'attribut :attr:`~ email.policy.EmailPolicy.max_line_length` " -"de la politique. L'argument *policy* peut être utilisé pour remplacer la " -"politique par défaut obtenue à partir de l'instance de message. Cela peut " -"être utilisé pour contrôler une partie du formatage produit par la méthode, " -"puisque la *policy* spécifiée sera transmise " -"à :class:`~email.generator.Generator`." - -#: library/email.message.rst:111 -msgid "" -"Flattening the message may trigger changes to the :class:`EmailMessage` if " -"defaults need to be filled in to complete the transformation to a string " -"(for example, MIME boundaries may be generated or modified)." -msgstr "" -"L'aplatissement du message peut déclencher des changements " -"dans :class:`EmailMessage` si les valeurs par défaut doivent être " -"renseignées pour terminer la transformation en chaîne (par exemple, les " -"limites MIME peuvent être générées ou modifiées)." - -#: library/email.message.rst:77 -msgid "" -"Note that this method is provided as a convenience and may not be the most " -"useful way to serialize messages in your application, especially if you are " -"dealing with multiple messages. See :class:`email.generator.Generator` for " -"a more flexible API for serializing messages. Note also that this method is " -"restricted to producing messages serialized as \"7 bit clean\" " -"when :attr:`~email.policy.EmailPolicy.utf8` is ``False``, which is the " -"default." -msgstr "" -"Notez que cette méthode est fournie à titre de commodité et n'est peut-être " -"pas la méthode la plus utile pour sérialiser les messages dans votre " -"application, en particulier si vous traitez plusieurs messages. " -"Voir :class:`email.generator.Generator` pour une API plus flexible pour la " -"sérialisation des messages. Notez également que cette méthode est limitée à " -"la production de messages sérialisés en « 7 bits propres » " -"lorsque :attr:`~email.policy.EmailPolicy.utf8` est ``False``, qui est la " -"valeur par défaut." - -#: library/email.message.rst:85 -msgid "" -"the default behavior when *maxheaderlen* is not specified was changed from " -"defaulting to 0 to defaulting to the value of *max_line_length* from the " -"policy." -msgstr "" -"le comportement par défaut lorsque *maxheaderlen* n'est pas spécifié est " -"passé de la valeur par défaut à 0 à la valeur par défaut de " -"*max_line_length* de la politique." - -#: library/email.message.rst:92 -msgid "" -"Equivalent to ``as_string(policy=self.policy.clone(utf8=True))``. Allows " -"``str(msg)`` to produce a string containing the serialized message in a " -"readable format." -msgstr "" -"Équivalent à ``as_string(policy=self.policy.clone(utf8=True))``. Permet à " -"``str(msg)`` de produire une chaîne contenant le message sérialisé dans un " -"format lisible." - -#: library/email.message.rst:96 -msgid "" -"the method was changed to use ``utf8=True``, thus producing an :rfc:`6531`-" -"like message representation, instead of being a direct alias " -"for :meth:`as_string`." -msgstr "" -"la méthode a été modifiée pour utiliser ``utf8=True``, produisant ainsi une " -"représentation de message semblable à :rfc:`6531`, au lieu d'être un alias " -"direct pour :meth:`as_string`." - -#: library/email.message.rst:103 -msgid "" -"Return the entire message flattened as a bytes object. When optional " -"*unixfrom* is true, the envelope header is included in the returned string. " -"*unixfrom* defaults to ``False``. The *policy* argument may be used to " -"override the default policy obtained from the message instance. This can be " -"used to control some of the formatting produced by the method, since the " -"specified *policy* will be passed to " -"the :class:`~email.generator.BytesGenerator`." -msgstr "" -"Renvoie le message entier aplati en tant qu'objet bytes. Lorsque l'option " -"*unixfrom* est vraie, l'en-tête de l'enveloppe est inclus dans la chaîne " -"renvoyée. *unixfrom* par défaut est ``False``. L'argument *policy* peut être " -"utilisé pour remplacer la politique par défaut obtenue à partir de " -"l'instance de message. Cela peut être utilisé pour contrôler une partie du " -"formatage produit par la méthode, puisque la *policy* spécifiée sera " -"transmise à :class:`~email.generator.BytesGenerator`." - -#: library/email.message.rst:115 -msgid "" -"Note that this method is provided as a convenience and may not be the most " -"useful way to serialize messages in your application, especially if you are " -"dealing with multiple messages. See :class:`email.generator.BytesGenerator` " -"for a more flexible API for serializing messages." -msgstr "" -"Notez que cette méthode est fournie à titre de commodité et n'est peut-être " -"pas la méthode la plus utile pour sérialiser les messages dans votre " -"application, en particulier si vous traitez plusieurs messages. " -"Voir :class:`email.generator.BytesGenerator` pour une API plus flexible pour " -"la sérialisation des messages." - -#: library/email.message.rst:124 -#, fuzzy -msgid "" -"Equivalent to :meth:`.as_bytes`. Allows ``bytes(msg)`` to produce a bytes " -"object containing the serialized message." -msgstr "" -"Équivalent à :meth:`.as_bytes()`. Permet à ``bytes(msg)`` de produire un " -"objet bytes contenant le message sérialisé." - -#: library/email.message.rst:130 -msgid "" -"Return ``True`` if the message's payload is a list of sub-" -"\\ :class:`EmailMessage` objects, otherwise return ``False``. " -"When :meth:`is_multipart` returns ``False``, the payload should be a string " -"object (which might be a CTE encoded binary payload). Note " -"that :meth:`is_multipart` returning ``True`` does not necessarily mean that " -"\"msg.get_content_maintype() == 'multipart'\" will return the ``True``. For " -"example, ``is_multipart`` will return ``True`` when " -"the :class:`EmailMessage` is of type ``message/rfc822``." -msgstr "" -"Renvoie ``True`` si la charge utile du message est une liste " -"d'objets :class:`EmailMessage`, sinon renvoie ``False``. " -"Lorsque :meth:`is_multipart` renvoie ``False``, la charge utile doit être un " -"objet chaîne (qui peut être une charge utile binaire encodée CTE). Notez " -"que :meth:`is_multipart` renvoyant ``True`` ne signifie pas nécessairement " -"que ``msg.get_content_maintype() == 'multipart'`` renvoie ``True``. Par " -"exemple, ``is_multipart`` renvoie ``True`` lorsque le :class:`EmailMessage` " -"est de type ``message/rfc822``." - -#: library/email.message.rst:142 -msgid "" -"Set the message's envelope header to *unixfrom*, which should be a string. " -"(See :class:`~mailbox.mboxMessage` for a brief description of this header.)" -msgstr "" -"Définit l'en-tête de l'enveloppe du message sur *unixfrom*, qui doit être " -"une chaîne (voir :class:`~mailbox.mboxMessage` pour une brève description de " -"cet en-tête)." - -#: library/email.message.rst:149 -msgid "" -"Return the message's envelope header. Defaults to ``None`` if the envelope " -"header was never set." -msgstr "" -"Renvoie l'en-tête de l'enveloppe du message. La valeur par défaut est " -"``None`` si l'en-tête de l'enveloppe n'a jamais été défini." - -#: library/email.message.rst:153 -msgid "" -"The following methods implement the mapping-like interface for accessing the " -"message's headers. Note that there are some semantic differences between " -"these methods and a normal mapping (i.e. dictionary) interface. For " -"example, in a dictionary there are no duplicate keys, but here there may be " -"duplicate message headers. Also, in dictionaries there is no guaranteed " -"order to the keys returned by :meth:`keys`, but in an :class:`EmailMessage` " -"object, headers are always returned in the order they appeared in the " -"original message, or in which they were added to the message later. Any " -"header deleted and then re-added is always appended to the end of the header " -"list." -msgstr "" -"Les méthodes suivantes implémentent l'interface de type correspondance pour " -"accéder aux en-têtes du message. Notez qu'il existe des différences " -"sémantiques entre ces méthodes et une interface de correspondance normale " -"(c'est-à-dire un dictionnaire). Par exemple, dans un dictionnaire, il n'y a " -"pas de clés en double, mais ici, il peut y avoir des en-têtes de message en " -"double. De plus, dans les dictionnaires, il n'y a pas d'ordre garanti pour " -"les clés renvoyées par :meth:`keys`, mais dans un " -"objet :class:`EmailMessage`, les en-têtes sont toujours renvoyés dans " -"l'ordre dans lequel ils sont apparus dans le message d'origine, ou dans " -"lequel ils ont été ajoutés au message plus tard. Tout en-tête supprimé puis " -"rajouté est toujours ajouté à la fin de la liste des en-têtes." - -#: library/email.message.rst:164 -msgid "" -"These semantic differences are intentional and are biased toward convenience " -"in the most common use cases." -msgstr "" -"Ces différences sémantiques sont intentionnelles et privilégient la " -"commodité dans les cas d'utilisation les plus courants." - -#: library/email.message.rst:167 -msgid "" -"Note that in all cases, any envelope header present in the message is not " -"included in the mapping interface." -msgstr "" -"Notez que dans tous les cas, tout en-tête d'enveloppe présent dans le " -"message n'est pas inclus dans l'interface de correspondance." - -#: library/email.message.rst:173 -msgid "Return the total number of headers, including duplicates." -msgstr "Renvoie le nombre total d'en-têtes, y compris les doublons." - -#: library/email.message.rst:178 -msgid "" -"Return ``True`` if the message object has a field named *name*. Matching is " -"done without regard to case and *name* does not include the trailing colon. " -"Used for the ``in`` operator. For example::" -msgstr "" -"Renvoie ``True`` si l'objet message a un champ nommé *name*. La " -"correspondance est effectuée sans tenir compte de la casse et *name* " -"n'inclut pas les deux-points de fin. Utilisé pour l'opérateur ``in``. Par " -"exemple ::" - -#: library/email.message.rst:188 -msgid "" -"Return the value of the named header field. *name* does not include the " -"colon field separator. If the header is missing, ``None`` is returned; " -"a :exc:`KeyError` is never raised." -msgstr "" -"Renvoie la valeur du champ d'en-tête nommé. *name* n'inclut pas le " -"séparateur de champ deux-points. Si l'en-tête est manquant, ``None`` est " -"renvoyée ; :exc:`KeyError` n'est jamais levée." - -#: library/email.message.rst:192 -msgid "" -"Note that if the named field appears more than once in the message's " -"headers, exactly which of those field values will be returned is undefined. " -"Use the :meth:`get_all` method to get the values of all the extant headers " -"named *name*." -msgstr "" -"Notez que si le champ nommé apparaît plus d'une fois dans les en-têtes du " -"message, il n'est pas défini la valeur de quel champ est renvoyée. Utilisez " -"la méthode :meth:`get_all` pour obtenir les valeurs de tous les en-têtes " -"existants nommés *name*." - -#: library/email.message.rst:197 -msgid "" -"Using the standard (non-``compat32``) policies, the returned value is an " -"instance of a subclass of :class:`email.headerregistry.BaseHeader`." -msgstr "" -"En utilisant les politiques standard (non-``compat32``), la valeur renvoyée " -"est une instance d'une sous-classe " -"de :class:`email.headerregistry.BaseHeader`." - -#: library/email.message.rst:203 -msgid "" -"Add a header to the message with field name *name* and value *val*. The " -"field is appended to the end of the message's existing headers." -msgstr "" -"Ajoute un en-tête au message avec le nom de champ *name* et la valeur *val*. " -"Le champ est ajouté à la fin des en-têtes existants du message." - -#: library/email.message.rst:206 -msgid "" -"Note that this does *not* overwrite or delete any existing header with the " -"same name. If you want to ensure that the new header is the only one " -"present in the message with field name *name*, delete the field first, e.g.::" -msgstr "" -"Notez que cela n'écrase *pas* ou ne supprime aucun en-tête existant portant " -"le même nom. Si vous voulez vous assurer que le nouvel en-tête est le seul " -"présent dans le message avec le nom de champ *name*, supprimez d'abord le " -"champ, par exemple ::" - -#: library/email.message.rst:213 -#, fuzzy -msgid "" -"If the :mod:`policy ` defines certain headers to be unique (as " -"the standard policies do), this method may raise a :exc:`ValueError` when an " -"attempt is made to assign a value to such a header when one already exists. " -"This behavior is intentional for consistency's sake, but do not depend on it " -"as we may choose to make such assignments do an automatic deletion of the " -"existing header in the future." -msgstr "" -"Si la :mod:`policy` définit certains en-têtes comme étant uniques (comme le " -"font les politiques standards), cette méthode peut lever " -"une :exc:`ValueError` lorsqu'une tentative est faite pour attribuer une " -"valeur à un tel en-tête alors qu'il en existe déjà un. Ce comportement est " -"intentionnel pour des raisons de cohérence, mais ne vous y fiez pas car " -"Python pourrait choisir de faire en sorte que de telles affectations " -"effectuent une suppression automatique de l'en-tête existant à l'avenir." - -#: library/email.message.rst:223 -msgid "" -"Delete all occurrences of the field with name *name* from the message's " -"headers. No exception is raised if the named field isn't present in the " -"headers." -msgstr "" -"Supprime toutes les occurrences du champ portant le nom *name* des en-têtes " -"du message. Aucune exception n'est levée si le champ nommé n'est pas présent " -"dans les en-têtes." - -#: library/email.message.rst:230 -msgid "Return a list of all the message's header field names." -msgstr "Renvoie une liste de tous les noms de champs d'en-tête du message." - -#: library/email.message.rst:235 -msgid "Return a list of all the message's field values." -msgstr "Renvoie une liste de toutes les valeurs de champ du message." - -#: library/email.message.rst:240 -msgid "" -"Return a list of 2-tuples containing all the message's field headers and " -"values." -msgstr "" -"Renvoie une liste de couples contenant tous les en-têtes et valeurs de champ " -"du message." - -#: library/email.message.rst:246 -#, fuzzy -msgid "" -"Return the value of the named header field. This is identical " -"to :meth:`~object.__getitem__` except that optional *failobj* is returned if " -"the named header is missing (*failobj* defaults to ``None``)." -msgstr "" -"Renvoie la valeur du champ d'en-tête nommé. Identique à :meth:`__getitem__` " -"sauf que l'option *failobj* est renvoyée si l'en-tête nommé est manquant " -"(*failobj* est ``None`` par défaut)." - -#: library/email.message.rst:251 -msgid "Here are some additional useful header related methods:" -msgstr "Voici quelques méthodes supplémentaires utiles liées aux en-têtes :" - -#: library/email.message.rst:256 -msgid "" -"Return a list of all the values for the field named *name*. If there are no " -"such named headers in the message, *failobj* is returned (defaults to " -"``None``)." -msgstr "" -"Renvoie la liste de toutes les valeurs du champ nommé *name*. S'il n'y a pas " -"d'en-têtes nommés de ce type dans le message, *failobj* est renvoyé (la " -"valeur par défaut est ``None``)." - -#: library/email.message.rst:263 -msgid "" -"Extended header setting. This method is similar to :meth:`__setitem__` " -"except that additional header parameters can be provided as keyword " -"arguments. *_name* is the header field to add and *_value* is the *primary* " -"value for the header." -msgstr "" -"Étend les en-têtes. Cette méthode est similaire à :meth:`__setitem__` sauf " -"que des paramètres d'en-tête supplémentaires peuvent être fournis en tant " -"qu'arguments nommés. *_name* est le champ d'en-tête à ajouter et *_value* " -"est la valeur *primaire* de l'en-tête." - -#: library/email.message.rst:268 -msgid "" -"For each item in the keyword argument dictionary *_params*, the key is taken " -"as the parameter name, with underscores converted to dashes (since dashes " -"are illegal in Python identifiers). Normally, the parameter will be added " -"as ``key=\"value\"`` unless the value is ``None``, in which case only the " -"key will be added." -msgstr "" -"Pour chaque élément du dictionnaire d'arguments nommés *_params*, la clé est " -"prise comme nom de paramètre, avec des traits de soulignement convertis en " -"tirets (puisque les tirets sont illégaux dans les identifiants Python). " -"Normalement, le paramètre est ajouté en tant que ``key=\"value\"`` sauf si " -"la valeur est ``None``, auquel cas seule la clé est ajoutée." - -#: library/email.message.rst:274 -msgid "" -"If the value contains non-ASCII characters, the charset and language may be " -"explicitly controlled by specifying the value as a three tuple in the format " -"``(CHARSET, LANGUAGE, VALUE)``, where ``CHARSET`` is a string naming the " -"charset to be used to encode the value, ``LANGUAGE`` can usually be set to " -"``None`` or the empty string (see :rfc:`2231` for other possibilities), and " -"``VALUE`` is the string value containing non-ASCII code points. If a three " -"tuple is not passed and the value contains non-ASCII characters, it is " -"automatically encoded in :rfc:`2231` format using a ``CHARSET`` of ``utf-8`` " -"and a ``LANGUAGE`` of ``None``." -msgstr "" -"Si la valeur contient des caractères non-ASCII, le jeu de caractères et la " -"langue peuvent être explicitement contrôlés en spécifiant la valeur sous la " -"forme d'un triplet au format ``(CHARSET, LANGUAGE, VALUE)``, où ``CHARSET`` " -"est une chaîne nommant le jeu de caractères à utiliser pour encoder la " -"valeur, ``LANGUAGE`` peut généralement être défini sur ``None`` ou sur la " -"chaîne vide (voir :rfc:`2231` pour d'autres possibilités) et ``VALUE`` est " -"la chaîne contenant les valeurs des points de code non-ASCII. Si un triplet " -"n'est pas passé et que la valeur contient des caractères non-ASCII, elle est " -"automatiquement encodée au format :rfc:`2231` en utilisant ``utf-8`` comme " -"``CHARSET`` et ``None`` comme ``LANGUAGE``." - -#: library/email.message.rst:284 -msgid "Here is an example::" -msgstr "Voici un exemple ::" - -#: library/email.message.rst:288 -msgid "This will add a header that looks like ::" -msgstr "Cela ajoute un en-tête qui ressemble à ::" - -#: library/email.message.rst:292 -msgid "An example of the extended interface with non-ASCII characters::" -msgstr "Un exemple d'interface étendue avec des caractères non-ASCII ::" - -#: library/email.message.rst:300 -msgid "" -"Replace a header. Replace the first header found in the message that " -"matches *_name*, retaining header order and field name case of the original " -"header. If no matching header is found, raise a :exc:`KeyError`." -msgstr "" -"Remplace un en-tête. Remplace le premier en-tête trouvé dans le message qui " -"correspond à *_name*, en conservant l'ordre des en-têtes et la casse du nom " -"de champ de l'en-tête d'origine. Si aucun en-tête correspondant n'est " -"trouvé, lève une :exc:`KeyError`." - -#: library/email.message.rst:308 -msgid "" -"Return the message's content type, coerced to lower case of the " -"form :mimetype:`maintype/subtype`. If there is no :mailheader:`Content-" -"Type` header in the message return the value returned " -"by :meth:`get_default_type`. If the :mailheader:`Content-Type` header is " -"invalid, return ``text/plain``." -msgstr "" -"Renvoie le type de contenu du message, contraint en minuscules de la " -"forme :mimetype:`maintype/subtype`. S'il n'y a pas d'en-" -"tête :mailheader:`Content-Type` dans le message, renvoie la valeur renvoyée " -"par :meth:`get_default_type`. Si l'en-tête :mailheader:`Content-Type` n'est " -"pas valide, renvoie ``text/plain``." - -#: library/email.message.rst:314 -msgid "" -"(According to :rfc:`2045`, messages always have a default " -"type, :meth:`get_content_type` will always return a value. :rfc:`2045` " -"defines a message's default type to be :mimetype:`text/plain` unless it " -"appears inside a :mimetype:`multipart/digest` container, in which case it " -"would be :mimetype:`message/rfc822`. If the :mailheader:`Content-Type` " -"header has an invalid type specification, :rfc:`2045` mandates that the " -"default type be :mimetype:`text/plain`.)" -msgstr "" -"(Selon la :rfc:`2045`, les messages ont toujours un type par " -"défaut, :meth:`get_content_type` renvoie toujours une valeur. La :rfc:`2045` " -"définit le type par défaut d'un message comme étant :mimetype:`text/plain` à " -"moins qu'il n'apparaisse dans un conteneur :mimetype:`multipart/digest`, " -"auquel cas ce serait :mimetype:`message/rfc822`. Si l'en-" -"tête :mailheader:`Content-Type` a une spécification de type invalide, " -"la :rfc:`2045` exige que le type par défaut soit :mimetype:`text/plain`.)" - -#: library/email.message.rst:325 -msgid "" -"Return the message's main content type. This is the :mimetype:`maintype` " -"part of the string returned by :meth:`get_content_type`." -msgstr "" -"Renvoie le type de contenu principal du message. C'est la " -"partie :mimetype:`maintype` de la chaîne renvoyée " -"par :meth:`get_content_type`." - -#: library/email.message.rst:331 -msgid "" -"Return the message's sub-content type. This is the :mimetype:`subtype` part " -"of the string returned by :meth:`get_content_type`." -msgstr "" -"Renvoie le type de sous-contenu du message. C'est la " -"partie :mimetype:`subtype` de la chaîne renvoyée " -"par :meth:`get_content_type`." - -#: library/email.message.rst:337 -msgid "" -"Return the default content type. Most messages have a default content type " -"of :mimetype:`text/plain`, except for messages that are subparts " -"of :mimetype:`multipart/digest` containers. Such subparts have a default " -"content type of :mimetype:`message/rfc822`." -msgstr "" -"Renvoie le type de contenu par défaut. La plupart des messages ont un type " -"de contenu :mimetype:`text/plain` par défaut, à l'exception des messages qui " -"sont des sous-parties des conteneurs :mimetype:`multipart/digest`. Ces sous-" -"parties ont un type de contenu par défaut de :mimetype:`message/rfc822`." - -#: library/email.message.rst:345 -msgid "" -"Set the default content type. *ctype* should either be :mimetype:`text/" -"plain` or :mimetype:`message/rfc822`, although this is not enforced. The " -"default content type is not stored in the :mailheader:`Content-Type` header, " -"so it only affects the return value of the ``get_content_type`` methods when " -"no :mailheader:`Content-Type` header is present in the message." -msgstr "" -"Définit le type de contenu par défaut. *ctype* doit être :mimetype:`text/" -"plain` ou :mimetype:`message/rfc822`, bien que cela ne soit pas imposé. Le " -"type de contenu par défaut n'est pas stocké dans l'en-" -"tête :mailheader:`Content-Type`, il n'affecte donc que la valeur de retour " -"des méthodes ``get_content_type`` lorsqu'aucun en-tête :mailheader:`Content-" -"Type` n'est présent dans le message ." - -#: library/email.message.rst:356 -msgid "" -"Set a parameter in the :mailheader:`Content-Type` header. If the parameter " -"already exists in the header, replace its value with *value*. When *header* " -"is ``Content-Type`` (the default) and the header does not yet exist in the " -"message, add it, set its value to :mimetype:`text/plain`, and append the new " -"parameter value. Optional *header* specifies an alternative header " -"to :mailheader:`Content-Type`." -msgstr "" -"Définit un paramètre dans l'en-tête :mailheader:`Content-Type`. Si le " -"paramètre existe déjà dans l'en-tête, remplace sa valeur par *value*. " -"Lorsque *header* est ``Content-Type`` (la valeur par défaut) et que l'en-" -"tête n'existe pas encore dans le message, l'ajoute, définit sa valeur " -"sur :mimetype:`text/plain` et ajoute la nouvelle valeur du paramètre. " -"*header* facultatif spécifie un en-tête alternatif à :mailheader:`Content-" -"Type`." - -#: library/email.message.rst:363 -msgid "" -"If the value contains non-ASCII characters, the charset and language may be " -"explicitly specified using the optional *charset* and *language* " -"parameters. Optional *language* specifies the :rfc:`2231` language, " -"defaulting to the empty string. Both *charset* and *language* should be " -"strings. The default is to use the ``utf8`` *charset* and ``None`` for the " -"*language*." -msgstr "" -"Si la valeur contient des caractères non ASCII, le jeu de caractères et la " -"langue peuvent être explicitement spécifiés à l'aide des paramètres " -"facultatifs *charset* et *language*. L'option *language* spécifie la " -"langue :rfc:`2231`, par défaut la chaîne vide. *charset* et *language* " -"doivent être des chaînes. La valeur par défaut est ``utf8`` pour *charset* " -"et ``None`` pour *language*." - -#: library/email.message.rst:370 -msgid "" -"If *replace* is ``False`` (the default) the header is moved to the end of " -"the list of headers. If *replace* is ``True``, the header will be updated " -"in place." -msgstr "" -"Si *replace* est ``False`` (valeur par défaut), l'en-tête est déplacé à la " -"fin de la liste des en-têtes. Si *replace* est ``True``, l'en-tête est mis à " -"jour sur place." - -#: library/email.message.rst:391 -msgid "" -"Use of the *requote* parameter with :class:`EmailMessage` objects is " -"deprecated." -msgstr "" -"L'utilisation du paramètre *requote* avec les objets :class:`EmailMessage` " -"est obsolète." - -#: library/email.message.rst:377 -#, fuzzy -msgid "" -"Note that existing parameter values of headers may be accessed through " -"the :attr:`~email.headerregistry.ParameterizedMIMEHeader.params` attribute " -"of the header value (for example, ``msg['Content-Type'].params['charset']``)." -msgstr "" -"Notez que les valeurs existantes des paramètres des en-têtes sont " -"accessibles via l'attribut :attr:`~email.headerregistry.BaseHeader.params` " -"de la valeur d'en-tête (par exemple, ``msg['Content-" -"Type'].params['charset' ]``)." - -# suit un : -#: library/email.message.rst:381 -msgid "``replace`` keyword was added." -msgstr "le paramètre nommé ``replace`` a été ajouté." - -#: library/email.message.rst:386 -msgid "" -"Remove the given parameter completely from the :mailheader:`Content-Type` " -"header. The header will be re-written in place without the parameter or its " -"value. Optional *header* specifies an alternative to :mailheader:`Content-" -"Type`." -msgstr "" -"Supprime complètement le paramètre donné de l'en-tête :mailheader:`Content-" -"Type`. L'en-tête est réécrit en place sans le paramètre ou sa valeur. " -"L'option *header* spécifie une alternative à :mailheader:`Content-Type`." - -#: library/email.message.rst:397 -msgid "" -"Return the value of the ``filename`` parameter of the :mailheader:`Content-" -"Disposition` header of the message. If the header does not have a " -"``filename`` parameter, this method falls back to looking for the ``name`` " -"parameter on the :mailheader:`Content-Type` header. If neither is found, or " -"the header is missing, then *failobj* is returned. The returned string will " -"always be unquoted as per :func:`email.utils.unquote`." -msgstr "" -"Renvoie la valeur du paramètre ``filename`` de l'en-" -"tête :mailheader:`Content-Disposition` du message. Si l'en-tête n'a pas de " -"paramètre ``filename``, cette méthode revient à rechercher le paramètre " -"``name`` dans l'en-tête :mailheader:`Content-Type`. Si aucun n'est trouvé, " -"ou si l'en-tête est manquant, alors *failobj* est renvoyé. La chaîne " -"renvoyée est toujours sans guillemets selon :func:`email.utils.unquote`." - -#: library/email.message.rst:408 -msgid "" -"Return the value of the ``boundary`` parameter of the :mailheader:`Content-" -"Type` header of the message, or *failobj* if either the header is missing, " -"or has no ``boundary`` parameter. The returned string will always be " -"unquoted as per :func:`email.utils.unquote`." -msgstr "" -"Renvoie la valeur du paramètre ``boundary`` de l'en-" -"tête :mailheader:`Content-Type` du message, ou *failobj* si l'en-tête est " -"manquant ou n'a pas de paramètre ``boundary``. La chaîne renvoyée est " -"toujours sans guillemets selon :func:`email.utils.unquote`." - -#: library/email.message.rst:416 -msgid "" -"Set the ``boundary`` parameter of the :mailheader:`Content-Type` header to " -"*boundary*. :meth:`set_boundary` will always quote *boundary* if " -"necessary. A :exc:`~email.errors.HeaderParseError` is raised if the message " -"object has no :mailheader:`Content-Type` header." -msgstr "" -"Définit le paramètre ``boundary`` de l'en-tête :mailheader:`Content-Type` " -"sur *boundary*. :meth:`set_boundary` entoure *boundary* de guillemets si " -"nécessaire. Une :exc:`~email.errors.HeaderParseError` est levée si l'objet " -"message n'a pas d'en-tête :mailheader:`Content-Type`." - -#: library/email.message.rst:421 -msgid "" -"Note that using this method is subtly different from deleting the " -"old :mailheader:`Content-Type` header and adding a new one with the new " -"boundary via :meth:`add_header`, because :meth:`set_boundary` preserves the " -"order of the :mailheader:`Content-Type` header in the list of headers." -msgstr "" -"Notez que l'utilisation de cette méthode est légèrement différente de la " -"suppression de l'ancien en-tête :mailheader:`Content-Type` et de l'ajout " -"d'un nouveau avec la nouvelle délimitation via :meth:`add_header`, " -"car :meth:`set_boundary` préserve l'ordre des en-têtes :mailheader:`Content-" -"Type` dans la liste des en-têtes." - -#: library/email.message.rst:430 -msgid "" -"Return the ``charset`` parameter of the :mailheader:`Content-Type` header, " -"coerced to lower case. If there is no :mailheader:`Content-Type` header, or " -"if that header has no ``charset`` parameter, *failobj* is returned." -msgstr "" -"Renvoie le paramètre ``charset`` de l'en-tête :mailheader:`Content-Type`, " -"contraint en minuscules. S'il n'y a pas d'en-tête :mailheader:`Content-" -"Type`, ou si cet en-tête n'a pas de paramètre ``charset``, *failobj* est " -"renvoyé." - -#: library/email.message.rst:437 -msgid "" -"Return a list containing the character set names in the message. If the " -"message is a :mimetype:`multipart`, then the list will contain one element " -"for each subpart in the payload, otherwise, it will be a list of length 1." -msgstr "" -"Renvoie la liste des noms des jeux de caractères dans le message. Si le " -"message est un :mimetype:`multipart`, alors la liste contient un élément " -"pour chaque sous-partie dans la charge utile, sinon c'est une liste de " -"longueur 1." - -#: library/email.message.rst:441 -msgid "" -"Each item in the list will be a string which is the value of the ``charset`` " -"parameter in the :mailheader:`Content-Type` header for the represented " -"subpart. If the subpart has no :mailheader:`Content-Type` header, no " -"``charset`` parameter, or is not of the :mimetype:`text` main MIME type, " -"then that item in the returned list will be *failobj*." -msgstr "" -"Chaque élément de la liste est une chaîne qui est la valeur du paramètre " -"``charset`` dans l'en-tête :mailheader:`Content-Type` pour la sous-partie " -"représentée. Si la sous-partie n'a pas d'en-tête :mailheader:`Content-Type`, " -"pas de paramètre ``charset`` ou n'est pas du type MIME " -"principal :mimetype:`text`, alors cet élément est *failobj* dans la liste " -"renvoyée." - -#: library/email.message.rst:450 -msgid "" -"Return ``True`` if there is a :mailheader:`Content-Disposition` header and " -"its (case insensitive) value is ``attachment``, ``False`` otherwise." -msgstr "" -"Renvoie ``True`` s'il y a un en-tête :mailheader:`Content-Disposition` et " -"que sa valeur (insensible à la casse) est ``attachment``, ``False`` sinon." - -#: library/email.message.rst:453 -msgid "" -"is_attachment is now a method instead of a property, for consistency " -"with :meth:`~email.message.Message.is_multipart`." -msgstr "" -"*is_attachment* est maintenant une méthode au lieu d'une propriété, par " -"souci de cohérence avec :meth:`~email.message.Message.is_multipart`." - -#: library/email.message.rst:460 -msgid "" -"Return the lowercased value (without parameters) of the " -"message's :mailheader:`Content-Disposition` header if it has one, or " -"``None``. The possible values for this method are *inline*, *attachment* or " -"``None`` if the message follows :rfc:`2183`." -msgstr "" -"Renvoie la valeur en minuscules (sans paramètres) de l'en-" -"tête :mailheader:`Content-Disposition` du message s'il en a un, ou ``None``. " -"Les valeurs possibles pour cette méthode sont *inline*, *attachment* ou " -"``None`` si le message respecte la :rfc:`2183`." - -#: library/email.message.rst:468 -msgid "" -"The following methods relate to interrogating and manipulating the content " -"(payload) of the message." -msgstr "" -"Les méthodes suivantes concernent l'interrogation et la manipulation du " -"contenu (charge utile) du message." - -#: library/email.message.rst:474 -msgid "" -"The :meth:`walk` method is an all-purpose generator which can be used to " -"iterate over all the parts and subparts of a message object tree, in depth-" -"first traversal order. You will typically use :meth:`walk` as the iterator " -"in a ``for`` loop; each iteration returns the next subpart." -msgstr "" -"La méthode :meth:`walk` est un générateur polyvalent qui peut être utilisé " -"pour itérer sur toutes les parties et sous-parties d'un arbre d'objets de " -"message, dans l'ordre de parcours en profondeur d'abord. L'utilisation " -"classique est d'itérer avec :meth:`walk` dans une boucle ``for`` ; chaque " -"itération renvoie la sous-partie suivante." - -#: library/email.message.rst:479 -msgid "" -"Here's an example that prints the MIME type of every part of a multipart " -"message structure:" -msgstr "" -"Voici un exemple qui imprime le type MIME de chaque partie d'une structure " -"de message en plusieurs parties :" - -#: library/email.message.rst:500 -msgid "" -"``walk`` iterates over the subparts of any part where :meth:`is_multipart` " -"returns ``True``, even though ``msg.get_content_maintype() == 'multipart'`` " -"may return ``False``. We can see this in our example by making use of the " -"``_structure`` debug helper function:" -msgstr "" -"``walk`` itère sur les sous-parties de toute partie où :meth:`is_multipart` " -"renvoie ``True``, même si ``msg.get_content_maintype() == 'multipart'`` peut " -"renvoyer ``False``. Nous pouvons le voir dans notre exemple en utilisant la " -"fonction d'aide au débogage ``_structure`` :" - -#: library/email.message.rst:528 -msgid "" -"Here the ``message`` parts are not ``multiparts``, but they do contain " -"subparts. ``is_multipart()`` returns ``True`` and ``walk`` descends into the " -"subparts." -msgstr "" -"Ici, les parties ``message`` ne sont pas des ``multiparts``, mais elles " -"contiennent des sous-parties. ``is_multipart()`` renvoie ``True`` et " -"``walk`` descend dans les sous-parties." - -#: library/email.message.rst:535 -msgid "" -"Return the MIME part that is the best candidate to be the \"body\" of the " -"message." -msgstr "" -"Renvoie la partie MIME qui est la meilleure candidate pour être le corps du " -"message." - -#: library/email.message.rst:538 -msgid "" -"*preferencelist* must be a sequence of strings from the set ``related``, " -"``html``, and ``plain``, and indicates the order of preference for the " -"content type of the part returned." -msgstr "" -"*preferencelist* doit être une séquence de chaînes de l'ensemble " -"``related``, ``html`` et ``plain``, et indique l'ordre de préférence pour le " -"type de contenu de la partie renvoyée." - -#: library/email.message.rst:542 -msgid "" -"Start looking for candidate matches with the object on which the " -"``get_body`` method is called." -msgstr "" -"Elle commence par rechercher des correspondances candidates avec l'objet sur " -"lequel la méthode ``get_body`` est appelée." - -#: library/email.message.rst:545 -msgid "" -"If ``related`` is not included in *preferencelist*, consider the root part " -"(or subpart of the root part) of any related encountered as a candidate if " -"the (sub-)part matches a preference." -msgstr "" -"Si ``related`` n'est pas inclus dans *preferencelist*, elle considère la " -"partie racine (ou sous-partie de la partie racine) de tout lien rencontré " -"comme candidat si la (sous-)partie correspond à une préférence." - -#: library/email.message.rst:549 -msgid "" -"When encountering a ``multipart/related``, check the ``start`` parameter and " -"if a part with a matching :mailheader:`Content-ID` is found, consider only " -"it when looking for candidate matches. Otherwise consider only the first " -"(default root) part of the ``multipart/related``." -msgstr "" -"Lorsqu'elle rencontre un ``multipart/related``, elle vérifie le paramètre " -"``start`` et si une partie avec un :mailheader:`Content-ID` correspondant " -"est trouvée, elle la considère uniquement lors de la recherche de " -"correspondances candidates. Sinon, elle ne considère que la première partie " -"(racine par défaut) de ``multipart/related``." - -#: library/email.message.rst:554 -msgid "" -"If a part has a :mailheader:`Content-Disposition` header, only consider the " -"part a candidate match if the value of the header is ``inline``." -msgstr "" -"Si une partie a un en-tête :mailheader:`Content-Disposition`, elle ne " -"considère la partie comme une correspondance candidate que si la valeur de " -"l'en-tête est ``inline``." - -#: library/email.message.rst:557 -msgid "" -"If none of the candidates matches any of the preferences in " -"*preferencelist*, return ``None``." -msgstr "" -"Si aucun des candidats ne correspond à aucune des préférences dans " -"*preferencelist*, elle renvoie ``None``." - -#: library/email.message.rst:560 -msgid "" -"Notes: (1) For most applications the only *preferencelist* combinations that " -"really make sense are ``('plain',)``, ``('html', 'plain')``, and the default " -"``('related', 'html', 'plain')``. (2) Because matching starts with the " -"object on which ``get_body`` is called, calling ``get_body`` on a " -"``multipart/related`` will return the object itself unless *preferencelist* " -"has a non-default value. (3) Messages (or message parts) that do not specify " -"a :mailheader:`Content-Type` or whose :mailheader:`Content-Type` header is " -"invalid will be treated as if they are of type ``text/plain``, which may " -"occasionally cause ``get_body`` to return unexpected results." -msgstr "" -"Remarques : (1) Pour la plupart des applications, les seules combinaisons " -"*preferencelist* qui ont vraiment un sens sont ``('plain',)``, ``('html', " -"'plain')`` et la valeur par défaut ``( 'related', 'html', 'plain')``. (2) " -"Parce que la correspondance commence avec l'objet sur lequel ``get_body`` " -"est appelée, appeler ``get_body`` sur un ``multipart/related`` renvoie " -"l'objet lui-même à moins que *preferencelist* n'ait une valeur autre que " -"celle par défaut. (3) Les messages (ou parties de message) qui ne spécifient " -"pas un :mailheader:`Content-Type` ou dont l'en-tête :mailheader:`Content-" -"Type` est invalide sont traités comme s'ils étaient de type ``text/plain``, " -"ce qui peut occasionnellement amener ``get_body`` à renvoyer des résultats " -"inattendus." - -#: library/email.message.rst:574 -msgid "" -"Return an iterator over all of the immediate sub-parts of the message that " -"are not candidate \"body\" parts. That is, skip the first occurrence of " -"each of ``text/plain``, ``text/html``, ``multipart/related``, or ``multipart/" -"alternative`` (unless they are explicitly marked as attachments " -"via :mailheader:`Content-Disposition: attachment`), and return all remaining " -"parts. When applied directly to a ``multipart/related``, return an iterator " -"over the all the related parts except the root part (ie: the part pointed to " -"by the ``start`` parameter, or the first part if there is no ``start`` " -"parameter or the ``start`` parameter doesn't match the :mailheader:`Content-" -"ID` of any of the parts). When applied directly to a ``multipart/" -"alternative`` or a non-``multipart``, return an empty iterator." -msgstr "" -"Renvoie un itérateur sur toutes les sous-parties immédiates du message qui " -"ne sont pas des parties de « corps » candidates. Autrement dit, elle ignore " -"la première occurrence de chacun des éléments suivants : ``text/plain``, " -"``text/html``, ``multipart/related`` ou ``multipart/alternative`` (sauf " -"s'ils sont explicitement marqués comme pièces jointes " -"via :mailheader:`Content-Disposition: attachment`), et renvoie toutes les " -"parties restantes. Lorsqu'elle est appliquée directement à un ``multipart/" -"related``, renvoie un itérateur sur toutes les parties liées sauf la partie " -"racine (c'est-à-dire la partie pointée par le paramètre ``start``, ou la " -"première partie s'il n'y a pas de paramètre ``start`` ou si le paramètre " -"``start`` ne correspond pas au :mailheader:`Content-ID` de l'une des " -"parties). Lorsqu'elle est appliquée directement à un ``multipart/" -"alternative`` ou à un non-``multipart``, elle renvoie un itérateur vide." - -#: library/email.message.rst:590 -msgid "" -"Return an iterator over all of the immediate sub-parts of the message, which " -"will be empty for a non-``multipart``. (See " -"also :meth:`~email.message.EmailMessage.walk`.)" -msgstr "" -"Renvoie un itérateur sur toutes les sous-parties immédiates du message, qui " -"seront vides pour une non-``multipart`` (voir " -"aussi :meth:`~email.message.EmailMessage.walk`)." - -#: library/email.message.rst:597 -msgid "" -"Call the :meth:`~email.contentmanager.ContentManager.get_content` method of " -"the *content_manager*, passing self as the message object, and passing along " -"any other arguments or keywords as additional arguments. If " -"*content_manager* is not specified, use the ``content_manager`` specified by " -"the current :mod:`~email.policy`." -msgstr "" -"Appelle la méthode :meth:`~email.contentmanager.ContentManager.get_content` " -"du *content_manager*, en passant *self* comme objet message et en passant " -"tout autre argument ou mot-clé comme argument supplémentaire. Si " -"*content_manager* n'est pas spécifié, utilise le ``content_manager`` " -"spécifié par la :mod:`~email.policy` actuelle." - -#: library/email.message.rst:606 -msgid "" -"Call the :meth:`~email.contentmanager.ContentManager.set_content` method of " -"the *content_manager*, passing self as the message object, and passing along " -"any other arguments or keywords as additional arguments. If " -"*content_manager* is not specified, use the ``content_manager`` specified by " -"the current :mod:`~email.policy`." -msgstr "" -"Appelle la méthode :meth:`~email.contentmanager.ContentManager.set_content` " -"du *content_manager*, en passant *self* comme objet message et en passant " -"tout autre argument ou mot-clé comme argument supplémentaire. Si " -"*content_manager* n'est pas spécifié, utilise le ``content_manager`` " -"spécifié par la :mod:`~email.policy` actuelle." - -#: library/email.message.rst:615 -msgid "" -"Convert a non-``multipart`` message into a ``multipart/related`` message, " -"moving any existing :mailheader:`Content-` headers and payload into a (new) " -"first part of the ``multipart``. If *boundary* is specified, use it as the " -"boundary string in the multipart, otherwise leave the boundary to be " -"automatically created when it is needed (for example, when the message is " -"serialized)." -msgstr "" -"Convertit un message non-``multipart`` en un message ``multipart/related``, " -"en déplaçant tous les en-têtes :mailheader:`Content-` existants et la charge " -"utile dans une (nouvelle) première partie du ``multipart``. Si *boundary* " -"est spécifié, elle l'utilise comme chaîne de délimitation dans le " -"*multipart*, sinon elle laisse la délimitation être créée automatiquement " -"lorsque cela est nécessaire (par exemple, lorsque le message est sérialisé)." - -#: library/email.message.rst:625 -msgid "" -"Convert a non-``multipart`` or a ``multipart/related`` into a ``multipart/" -"alternative``, moving any existing :mailheader:`Content-` headers and " -"payload into a (new) first part of the ``multipart``. If *boundary* is " -"specified, use it as the boundary string in the multipart, otherwise leave " -"the boundary to be automatically created when it is needed (for example, " -"when the message is serialized)." -msgstr "" -"Convertit un non-``multipart`` ou un ``multipart/related`` en un ``multipart/" -"alternative``, en déplaçant tous les en-têtes :mailheader:`Content-` " -"existants et la charge utile dans une (nouvelle) première partie du " -"``multipart``. Si *boundary* est spécifiée, l'utilise comme chaîne de " -"délimitation dans le *multipart*, sinon laisse la délimitation être créée " -"automatiquement lorsque cela est nécessaire (par exemple, lorsque le message " -"est sérialisé)." - -#: library/email.message.rst:635 -msgid "" -"Convert a non-``multipart``, a ``multipart/related``, or a ``multipart-" -"alternative`` into a ``multipart/mixed``, moving any " -"existing :mailheader:`Content-` headers and payload into a (new) first part " -"of the ``multipart``. If *boundary* is specified, use it as the boundary " -"string in the multipart, otherwise leave the boundary to be automatically " -"created when it is needed (for example, when the message is serialized)." -msgstr "" -"Convertit un non-``multipart``, un ``multipart/related`` ou un ``multipart-" -"alternative`` en un ``multipart/mixed``, en déplaçant tous les en-" -"têtes :mailheader:`Content-` existants et charge utile dans une (nouvelle) " -"première partie du ``multipart``. Si *boundary* est spécifiée, l'utilise " -"comme chaîne de délimitation dans le *multipart*, sinon elle laisse la " -"délimitation être créée automatiquement lorsque cela est nécessaire (par " -"exemple, lorsque le message est sérialisé)." - -#: library/email.message.rst:645 -msgid "" -"If the message is a ``multipart/related``, create a new message object, pass " -"all of the arguments to its :meth:`set_content` method, " -"and :meth:`~email.message.Message.attach` it to the ``multipart``. If the " -"message is a non-``multipart``, call :meth:`make_related` and then proceed " -"as above. If the message is any other type of ``multipart``, raise " -"a :exc:`TypeError`. If *content_manager* is not specified, use the " -"``content_manager`` specified by the current :mod:`~email.policy`. If the " -"added part has no :mailheader:`Content-Disposition` header, add one with the " -"value ``inline``." -msgstr "" -"Si le message est un ``multipart/related``, crée un nouvel objet message, " -"passe tous les arguments à sa méthode :meth:`set_content` et le joint " -"avec :meth:`~email.message.Message.attach` au ``multipart``. Si le message " -"n'est pas en ``multipart``, appelle :meth:`make_related` puis procède comme " -"ci-dessus. Si le message est un autre type de ``multipart``, lève " -"une :exc:`TypeError`. Si *content_manager* n'est pas spécifié, utilise le " -"``content_manager`` spécifié par la :mod:`~email.policy` actuelle. Si la " -"partie ajoutée n'a pas d'en-tête :mailheader:`Content-Disposition`, en " -"ajoute un avec la valeur ``inline``." - -#: library/email.message.rst:658 -msgid "" -"If the message is a ``multipart/alternative``, create a new message object, " -"pass all of the arguments to its :meth:`set_content` method, " -"and :meth:`~email.message.Message.attach` it to the ``multipart``. If the " -"message is a non-``multipart`` or ``multipart/related``, " -"call :meth:`make_alternative` and then proceed as above. If the message is " -"any other type of ``multipart``, raise a :exc:`TypeError`. If " -"*content_manager* is not specified, use the ``content_manager`` specified by " -"the current :mod:`~email.policy`." -msgstr "" -"Si le message est un ``multipart/alternative``, crée un nouvel objet " -"message, transmet tous les arguments à sa méthode :meth:`set_content` et le " -"joint avec :meth:`~email.message.Message.attach` au ``multipart``. Si le " -"message est non-``multipart`` ou ``multipart/related``, " -"appelle :meth:`make_alternative` puis procède comme ci-dessus. Si le message " -"est un autre type de ``multipart``, lève une :exc:`TypeError`. Si " -"*content_manager* n'est pas spécifié, utilise le ``content_manager`` " -"spécifié par la :mod:`~email.policy` actuelle." - -#: library/email.message.rst:670 -msgid "" -"If the message is a ``multipart/mixed``, create a new message object, pass " -"all of the arguments to its :meth:`set_content` method, " -"and :meth:`~email.message.Message.attach` it to the ``multipart``. If the " -"message is a non-``multipart``, ``multipart/related``, or ``multipart/" -"alternative``, call :meth:`make_mixed` and then proceed as above. If " -"*content_manager* is not specified, use the ``content_manager`` specified by " -"the current :mod:`~email.policy`. If the added part has " -"no :mailheader:`Content-Disposition` header, add one with the value " -"``attachment``. This method can be used both for explicit attachments " -"(:mailheader:`Content-Disposition: attachment`) and ``inline`` attachments " -"(:mailheader:`Content-Disposition: inline`), by passing appropriate options " -"to the ``content_manager``." -msgstr "" -"Si le message est un ``multipart/mixed``, crée un nouvel objet message, " -"passe tous les arguments à sa méthode :meth:`set_content` et le joint " -"avec :meth:`~email.message.Message.attach` au ``multipart``. Si le message " -"n'est pas en ``multipart``, ``multipart/related`` ou ``multipart/" -"alternative``, appelle :meth:`make_mixed` puis procède comme ci-dessus. Si " -"*content_manager* n'est pas spécifié, utilise le ``content_manager`` " -"spécifié par la :mod:`~email.policy` actuelle. Si la partie ajoutée n'a pas " -"d'en-tête :mailheader:`Content-Disposition`, en ajoute un avec la valeur " -"``attachment``. Cette méthode peut être utilisée à la fois pour les pièces " -"jointes explicites (:mailheader:`Content-Disposition:attachment`) et les " -"pièces jointes ``inline`` (:mailheader:`Content-Disposition:inline`), en " -"passant les options appropriées au ``content_manager``." - -#: library/email.message.rst:686 -msgid "Remove the payload and all of the headers." -msgstr "Supprime la charge utile et tous les en-têtes." - -#: library/email.message.rst:691 -#, fuzzy -msgid "" -"Remove the payload and all of the :mailheader:`!Content-` headers, leaving " -"all other headers intact and in their original order." -msgstr "" -"Supprime la charge utile et tous les en-têtes :exc:`Content-`, en laissant " -"tous les autres en-têtes intacts et dans leur ordre d'origine." - -#: library/email.message.rst:695 -msgid ":class:`EmailMessage` objects have the following instance attributes:" -msgstr "" -"Les objets :class:`EmailMessage` ont les attributs d'instance suivants :" - -#: library/email.message.rst:700 -msgid "" -"The format of a MIME document allows for some text between the blank line " -"following the headers, and the first multipart boundary string. Normally, " -"this text is never visible in a MIME-aware mail reader because it falls " -"outside the standard MIME armor. However, when viewing the raw text of the " -"message, or when viewing the message in a non-MIME aware reader, this text " -"can become visible." -msgstr "" -"Le format d'un document MIME permet d'insérer du texte entre la ligne vide " -"suivant les en-têtes et la première chaîne de délimitation en plusieurs " -"parties. Normalement, ce texte n'est jamais visible dans un lecteur de " -"courrier compatible MIME car il ne fait pas partie de l'attirail MIME " -"standard. Toutefois, lors de l'affichage du texte brut du message ou lors de " -"l'affichage du message dans un lecteur non compatible MIME, ce texte peut " -"devenir visible." - -#: library/email.message.rst:707 -msgid "" -"The *preamble* attribute contains this leading extra-armor text for MIME " -"documents. When the :class:`~email.parser.Parser` discovers some text after " -"the headers but before the first boundary string, it assigns this text to " -"the message's *preamble* attribute. When " -"the :class:`~email.generator.Generator` is writing out the plain text " -"representation of a MIME message, and it finds the message has a *preamble* " -"attribute, it will write this text in the area between the headers and the " -"first boundary. See :mod:`email.parser` and :mod:`email.generator` for " -"details." -msgstr "" -"L'attribut *preamble* contient ce texte hors cadre de tête pour les " -"documents MIME. Lorsque :class:`~email.parser.Parser` découvre du texte " -"après les en-têtes mais avant la première chaîne de délimitation, il " -"attribue ce texte à l'attribut *preamble* du message. " -"Lorsque :class:`~email.generator.Generator` écrit la représentation en texte " -"brut d'un message MIME, et qu'il trouve que le message a un attribut " -"*preamble*, il écrit ce texte dans la zone entre les en-têtes et la première " -"limite. Voir :mod:`email.parser` et :mod:`email.generator` pour plus de " -"détails." - -#: library/email.message.rst:717 -msgid "" -"Note that if the message object has no preamble, the *preamble* attribute " -"will be ``None``." -msgstr "" -"Notez que si l'objet message n'a pas de préambule, l'attribut *preamble* est " -"``None``." - -#: library/email.message.rst:723 -msgid "" -"The *epilogue* attribute acts the same way as the *preamble* attribute, " -"except that it contains text that appears between the last boundary and the " -"end of the message. As with the :attr:`~EmailMessage.preamble`, if there is " -"no epilog text this attribute will be ``None``." -msgstr "" -"L'attribut *epilogue* agit de la même manière que l'attribut *preamble*, " -"sauf qu'il contient du texte qui apparaît entre la dernière limite et la fin " -"du message. Comme avec :attr:`~EmailMessage.preamble`, s'il n'y a pas de " -"texte d'épilogue, cet attribut est ``None``." - -#: library/email.message.rst:731 -msgid "" -"The *defects* attribute contains a list of all the problems found when " -"parsing this message. See :mod:`email.errors` for a detailed description of " -"the possible parsing defects." -msgstr "" -"L'attribut *defects* contient une liste de tous les problèmes rencontrés " -"lors de l'analyse de ce message. Voir :mod:`email.errors` pour une " -"description détaillée des défauts d'analyse possibles." - -#: library/email.message.rst:738 -msgid "" -"This class represents a subpart of a MIME message. It is identical " -"to :class:`EmailMessage`, except that no :mailheader:`MIME-Version` headers " -"are added when :meth:`~EmailMessage.set_content` is called, since sub-parts " -"do not need their own :mailheader:`MIME-Version` headers." -msgstr "" -"Cette classe représente une sous-partie d'un message MIME. Elle est " -"identique à :class:`EmailMessage`, sauf qu'aucun en-tête :mailheader:`MIME-" -"Version` n'est ajouté lorsque :meth:`~EmailMessage.set_content` est appelée, " -"car les sous-parties n'ont pas besoin de leurs propres en-" -"têtes :mailheader:`MIME-Version`." - -#: library/email.message.rst:745 -msgid "Footnotes" -msgstr "Notes" - -#: library/email.message.rst:746 -msgid "" -"Originally added in 3.4 as a :term:`provisional module `. Docs for legacy message class moved to :ref:`compat32_message`." -msgstr "" -"Ajouté à l'origine dans 3.4 en tant que :term:`module provisoire `. Les documents pour la classe de message héritée ont été " -"déplacés dans :ref:`compat32_message`." - -#: library/email.message.rst:750 -msgid "" -"The :class:`EmailMessage` class requires a policy that provides a " -"``content_manager`` attribute for content management methods like " -"``set_content()`` and ``get_content()`` to work. The " -"legacy :const:`~email.policy.compat32` policy does not support these methods " -"and should not be used with :class:`EmailMessage`." -msgstr "" diff --git a/library/email.mime.po b/library/email.mime.po deleted file mode 100644 index b1d3eaccfa..0000000000 --- a/library/email.mime.po +++ /dev/null @@ -1,448 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2024-03-15 22:55+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/email.mime.rst:2 -#, fuzzy -msgid ":mod:`!email.mime`: Creating email and MIME objects from scratch" -msgstr ":mod:`email.mime` : création d'objets e-mail et MIME à partir de zéro" - -#: library/email.mime.rst:7 -msgid "**Source code:** :source:`Lib/email/mime/`" -msgstr "**Code source :** :source:`Lib/email/mime/`" - -#: library/email.mime.rst:11 -msgid "" -"This module is part of the legacy (``Compat32``) email API. Its " -"functionality is partially replaced by the :mod:`~email.contentmanager` in " -"the new API, but in certain applications these classes may still be useful, " -"even in non-legacy code." -msgstr "" -"Ce module fait partie de l'ancienne API de messagerie (``Compat32``). Sa " -"fonctionnalité est partiellement remplacée par " -"le :mod:`~email.contentmanager` dans la nouvelle API mais, dans certaines " -"applications, ces classes peuvent toujours être utiles, même dans du code " -"pas si ancien." - -#: library/email.mime.rst:16 -msgid "" -"Ordinarily, you get a message object structure by passing a file or some " -"text to a parser, which parses the text and returns the root message " -"object. However you can also build a complete message structure from " -"scratch, or even individual :class:`~email.message.Message` objects by " -"hand. In fact, you can also take an existing structure and add " -"new :class:`~email.message.Message` objects, move them around, etc. This " -"makes a very convenient interface for slicing-and-dicing MIME messages." -msgstr "" -"Habituellement, vous obtenez une structure d'objet message en passant un " -"fichier ou du texte à un analyseur, qui analyse le texte et renvoie l'objet " -"message racine. Cependant, vous pouvez également créer une structure de " -"message complète à partir de zéro, ou même des objets " -"individuels :class:`~email.message.Message` à la main. En fait, vous pouvez " -"également prendre une structure existante et ajouter de nouveaux " -"objets :class:`~email.message.Message`, les déplacer, etc. Cela crée une " -"interface très pratique pour découper et manipuler chaque morceau de " -"messages MIME." - -#: library/email.mime.rst:24 -msgid "" -"You can create a new object structure by " -"creating :class:`~email.message.Message` instances, adding attachments and " -"all the appropriate headers manually. For MIME messages though, " -"the :mod:`email` package provides some convenient subclasses to make things " -"easier." -msgstr "" -"Vous pouvez créer une nouvelle structure d'objet en créant des " -"instances :class:`~email.message.Message`, en ajoutant manuellement les " -"pièces jointes et tous les en-têtes appropriés. Pour les messages MIME " -"cependant, le paquet :mod:`email` fournit quelques sous-classes pratiques " -"pour faciliter les choses." - -#: library/email.mime.rst:29 -msgid "Here are the classes:" -msgstr "Voici les classes :" - -#: library/email.mime.rst:35 -msgid "Module: :mod:`email.mime.base`" -msgstr "Module : :mod:`email.mime.base`" - -#: library/email.mime.rst:37 -msgid "" -"This is the base class for all the MIME-specific subclasses " -"of :class:`~email.message.Message`. Ordinarily you won't create instances " -"specifically of :class:`MIMEBase`, although you could. :class:`MIMEBase` is " -"provided primarily as a convenient base class for more specific MIME-aware " -"subclasses." -msgstr "" -"C'est la classe mère pour toutes les sous-classes spécifiques à MIME " -"de :class:`~email.message.Message`. Normalement, vous ne créerez pas " -"d'instances spécifiques de :class:`MIMEBase`, bien que cela soit " -"possible. :class:`MIMEBase` est fourni principalement comme une classe mère " -"pratique pour des sous-classes plus spécifiques compatibles MIME." - -#: library/email.mime.rst:43 -msgid "" -"*_maintype* is the :mailheader:`Content-Type` major type " -"(e.g. :mimetype:`text` or :mimetype:`image`), and *_subtype* is " -"the :mailheader:`Content-Type` minor type (e.g. :mimetype:`plain` " -"or :mimetype:`gif`). *_params* is a parameter key/value dictionary and is " -"passed directly to :meth:`Message.add_header " -"`." -msgstr "" -"*_maintype* est le type majeur du :mailheader:`Content-Type` (par " -"exemple :mimetype:`text` ou :mimetype:`image`) et *_subtype* est le type " -"mineur du :mailheader:`Content-Type` (par exemple, :mimetype:`plain` " -"ou :mimetype:`gif`). *_params* est un paramètre dictionnaire clé-valeur et " -"est transmis directement à :meth:`Message.add_header " -"`." - -#: library/email.mime.rst:49 -msgid "" -"If *policy* is specified, (defaults to the :class:`compat32 " -"` policy) it will be passed " -"to :class:`~email.message.Message`." -msgstr "" -"Si *policy* est spécifiée, (par défaut la politique :class:`compat32 " -"`) elle est passée à :class:`~email.message.Message`." - -#: library/email.mime.rst:53 -msgid "" -"The :class:`MIMEBase` class always adds a :mailheader:`Content-Type` header " -"(based on *_maintype*, *_subtype*, and *_params*), and a :mailheader:`MIME-" -"Version` header (always set to ``1.0``)." -msgstr "" -"La classe :class:`MIMEBase` ajoute toujours un en-tête :mailheader:`Content-" -"Type` (basé sur *_maintype*, *_subtype* et *_params*) et un en-" -"tête :mailheader:`MIME-Version` (toujours défini à ``1.0``)." - -# suit un : -#: library/email.mime.rst:104 library/email.mime.rst:169 -#: library/email.mime.rst:225 library/email.mime.rst:259 -msgid "Added *policy* keyword-only parameter." -msgstr "ajout du paramètre nommé *policy*." - -#: library/email.mime.rst:65 -msgid "Module: :mod:`email.mime.nonmultipart`" -msgstr "Module : :mod:`email.mime.nonmultipart`" - -#: library/email.mime.rst:67 -msgid "" -"A subclass of :class:`~email.mime.base.MIMEBase`, this is an intermediate " -"base class for MIME messages that are not :mimetype:`multipart`. The " -"primary purpose of this class is to prevent the use of " -"the :meth:`~email.message.Message.attach` method, which only makes sense " -"for :mimetype:`multipart` messages. " -"If :meth:`~email.message.Message.attach` is called, " -"a :exc:`~email.errors.MultipartConversionError` exception is raised." -msgstr "" -"Sous-classe de :class:`~email.mime.base.MIMEBase`, c'est une classe mère " -"intermédiaire pour les messages MIME qui ne sont pas :mimetype:`multipart`. " -"Le but principal de cette classe est d'empêcher l'utilisation de la " -"méthode :meth:`~email.message.Message.attach`, qui n'a de sens que pour les " -"messages :mimetype:`multipart`. Si :meth:`~email.message.Message.attach` est " -"appelée, une exception :exc:`~email.errors.MultipartConversionError` est " -"levée." - -#: library/email.mime.rst:80 -msgid "Module: :mod:`email.mime.multipart`" -msgstr "Module : :mod:`email.mime.multipart`" - -#: library/email.mime.rst:82 -msgid "" -"A subclass of :class:`~email.mime.base.MIMEBase`, this is an intermediate " -"base class for MIME messages that are :mimetype:`multipart`. Optional " -"*_subtype* defaults to :mimetype:`mixed`, but can be used to specify the " -"subtype of the message. A :mailheader:`Content-Type` header " -"of :mimetype:`multipart/_subtype` will be added to the message object. " -"A :mailheader:`MIME-Version` header will also be added." -msgstr "" -"Sous-classe de :class:`~email.mime.base.MIMEBase`, c'est une classe mère " -"intermédiaire pour les messages MIME qui sont :mimetype:`multipart`. " -"*_subtype* (facultatif) est par défaut :mimetype:`mixed`, mais peut être " -"utilisé pour spécifier le sous-type du message. Un en-" -"tête :mailheader:`Content-Type` de :mimetype:`multipart/_subtype` sera " -"ajouté à l'objet message. Un en-tête :mailheader:`MIME-Version` sera " -"également ajouté." - -#: library/email.mime.rst:89 -msgid "" -"Optional *boundary* is the multipart boundary string. When ``None`` (the " -"default), the boundary is calculated when needed (for example, when the " -"message is serialized)." -msgstr "" -"*boundary* (facultatif) est la chaîne de délimitation en plusieurs parties. " -"Si elle vaut ``None`` (la valeur par défaut), la délimitation est calculée " -"au besoin (par exemple, lorsque le message est sérialisé)." - -#: library/email.mime.rst:93 -msgid "" -"*_subparts* is a sequence of initial subparts for the payload. It must be " -"possible to convert this sequence to a list. You can always attach new " -"subparts to the message by using the :meth:`Message.attach " -"` method." -msgstr "" -"*_subparts* est une séquence de sous-parties initiales pour la charge utile. " -"Il doit être possible de convertir cette séquence en une liste. Vous pouvez " -"toujours joindre de nouvelles sous-parties au message en utilisant la " -"méthode :meth:`Message.attach `." - -#: library/email.mime.rst:131 library/email.mime.rst:200 -#: library/email.mime.rst:254 -msgid "" -"Optional *policy* argument defaults to :class:`compat32 " -"`." -msgstr "" -"L'argument facultatif *policy* est par défaut :class:`compat32 " -"`." - -#: library/email.mime.rst:100 -msgid "" -"Additional parameters for the :mailheader:`Content-Type` header are taken " -"from the keyword arguments, or passed into the *_params* argument, which is " -"a keyword dictionary." -msgstr "" -"Des paramètres supplémentaires pour l'en-tête :mailheader:`Content-Type` " -"sont extraits des arguments nommés ou passés à l'argument *_params*, qui est " -"un dictionnaire de mots-clés." - -#: library/email.mime.rst:113 -msgid "Module: :mod:`email.mime.application`" -msgstr "Module : :mod:`email.mime.application`" - -#: library/email.mime.rst:115 -msgid "" -"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, " -"the :class:`MIMEApplication` class is used to represent MIME message objects " -"of major type :mimetype:`application`. *_data* contains the bytes for the " -"raw application data. Optional *_subtype* specifies the MIME subtype and " -"defaults to :mimetype:`octet-stream`." -msgstr "" -"Sous-classe de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " -"classe :class:`MIMEApplication` est utilisée pour représenter les objets de " -"message MIME de type principal :mimetype:`application`. *_data* contient les " -"octets pour les données d'application brutes. L'option *_subtype* spécifie " -"le sous-type MIME et la valeur par défaut est :mimetype:`octet-stream`." - -#: library/email.mime.rst:121 -msgid "" -"Optional *_encoder* is a callable (i.e. function) which will perform the " -"actual encoding of the data for transport. This callable takes one " -"argument, which is the :class:`MIMEApplication` instance. It should " -"use :meth:`~email.message.Message.get_payload` " -"and :meth:`~email.message.Message.set_payload` to change the payload to " -"encoded form. It should also add any :mailheader:`Content-Transfer-" -"Encoding` or other headers to the message object as necessary. The default " -"encoding is base64. See the :mod:`email.encoders` module for a list of the " -"built-in encoders." -msgstr "" -"*_encoder* (facultatif) est un appelable (c'est-à-dire une fonction) qui " -"effectue le codage réel des données pour le transport. Cet appelable prend " -"un argument, qui est l'instance :class:`MIMEApplication`. Il doit " -"utiliser :meth:`~email.message.Message.get_payload` " -"et :meth:`~email.message.Message.set_payload` pour modifier la charge utile " -"sous forme codée. Il doit également ajouter n'importe " -"quel :mailheader:`Content-Transfer-Encoding` ou d'autres en-têtes à l'objet " -"message si nécessaire. L'encodage par défaut est base64. Voir le " -"module :mod:`email.encoders` pour une liste des encodeurs intégrés." - -#: library/email.mime.rst:167 -msgid "*_params* are passed straight through to the base class constructor." -msgstr "" -"Les *_params* sont transmis directement au constructeur de la classe mère." - -#: library/email.mime.rst:144 -msgid "Module: :mod:`email.mime.audio`" -msgstr "Module : :mod:`email.mime.audio`" - -#: library/email.mime.rst:146 -msgid "" -"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, " -"the :class:`MIMEAudio` class is used to create MIME message objects of major " -"type :mimetype:`audio`. *_audiodata* contains the bytes for the raw audio " -"data. If this data can be decoded as au, wav, aiff, or aifc, then the " -"subtype will be automatically included in the :mailheader:`Content-Type` " -"header. Otherwise you can explicitly specify the audio subtype via the " -"*_subtype* argument. If the minor type could not be guessed and *_subtype* " -"was not given, then :exc:`TypeError` is raised." -msgstr "" -"Sous-classe de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " -"classe :class:`MIMEAudio` est utilisée pour créer des objets de message MIME " -"de type majeur :mimetype:`audio`. *_audiodata* contient les octets pour les " -"données audio brutes. Si ces données peuvent être décodées au format *au*, " -"*wav*, *aiff* ou *aifc*, alors le sous-type est automatiquement inclus dans " -"l'en-tête :mailheader:`Content-Type`. Sinon, vous pouvez spécifier " -"explicitement le sous-type audio via l'argument *_subtype*. Si le type " -"mineur n'a pas pu être deviné et que *_subtype* n'a pas été donné, alors " -"une :exc:`TypeError` est levée." - -#: library/email.mime.rst:155 -msgid "" -"Optional *_encoder* is a callable (i.e. function) which will perform the " -"actual encoding of the audio data for transport. This callable takes one " -"argument, which is the :class:`MIMEAudio` instance. It should " -"use :meth:`~email.message.Message.get_payload` " -"and :meth:`~email.message.Message.set_payload` to change the payload to " -"encoded form. It should also add any :mailheader:`Content-Transfer-" -"Encoding` or other headers to the message object as necessary. The default " -"encoding is base64. See the :mod:`email.encoders` module for a list of the " -"built-in encoders." -msgstr "" -"*_encoder* (facultatif) est un appelable (c'est-à-dire une fonction) qui " -"effectue le codage réel des données audio pour le transport. Cet appelable " -"prend un argument, qui est l'instance :class:`MIMEAudio`. Il doit " -"utiliser :meth:`~email.message.Message.get_payload` " -"et :meth:`~email.message.Message.set_payload` pour modifier la charge utile " -"sous forme codée. Il doit également ajouter n'importe " -"quel :mailheader:`Content-Transfer-Encoding` ou d'autres en-têtes à l'objet " -"message si nécessaire. L'encodage par défaut est base64. Voir le " -"module :mod:`email.encoders` pour une liste des encodeurs intégrés." - -#: library/email.mime.rst:178 -msgid "Module: :mod:`email.mime.image`" -msgstr "Module : :mod:`email.mime.image`" - -#: library/email.mime.rst:180 -msgid "" -"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, " -"the :class:`MIMEImage` class is used to create MIME message objects of major " -"type :mimetype:`image`. *_imagedata* contains the bytes for the raw image " -"data. If this data type can be detected (jpeg, png, gif, tiff, rgb, pbm, " -"pgm, ppm, rast, xbm, bmp, webp, and exr attempted), then the subtype will be " -"automatically included in the :mailheader:`Content-Type` header. Otherwise " -"you can explicitly specify the image subtype via the *_subtype* argument. If " -"the minor type could not be guessed and *_subtype* was not given, " -"then :exc:`TypeError` is raised." -msgstr "" -"Sous-classe de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " -"classe :class:`MIMEImage` est utilisée pour créer des objets de message MIME " -"de type principal :mimetype:`image`. *_imagedata* contient les octets pour " -"les données d'image brutes. Si ce type de données peut être détecté (*jpeg*, " -"*png*, *gif*, *tiff*, *rgb*, *pbm*, *pgm*, *ppm*, *rast*, *xbm*, *bmp*, " -"*webp* et *exr* sont essayés), alors le sous-type est automatiquement inclus " -"dans l'en-tête :mailheader:`Content-Type`. Sinon, vous pouvez spécifier " -"explicitement le sous-type d'image via l'argument *_subtype*. Si le type " -"mineur n'a pas pu être deviné et que *_subtype* n'a pas été donné, alors " -"une :exc:`TypeError` est levée." - -#: library/email.mime.rst:190 -msgid "" -"Optional *_encoder* is a callable (i.e. function) which will perform the " -"actual encoding of the image data for transport. This callable takes one " -"argument, which is the :class:`MIMEImage` instance. It should " -"use :meth:`~email.message.Message.get_payload` " -"and :meth:`~email.message.Message.set_payload` to change the payload to " -"encoded form. It should also add any :mailheader:`Content-Transfer-" -"Encoding` or other headers to the message object as necessary. The default " -"encoding is base64. See the :mod:`email.encoders` module for a list of the " -"built-in encoders." -msgstr "" -"*_encoder* (facultatif) est un appelable (c'est-à-dire une fonction) qui " -"effectue le codage réel des données d'image pour le transport. Cet appelable " -"prend un argument, qui est l'instance :class:`MIMEImage`. Il doit " -"utiliser :meth:`~email.message.Message.get_payload` " -"et :meth:`~email.message.Message.set_payload` pour modifier la charge utile " -"sous forme codée. Il doit également ajouter n'importe " -"quel :mailheader:`Content-Transfer-Encoding` ou d'autres en-têtes à l'objet " -"message si nécessaire. L'encodage par défaut est base64. Voir le " -"module :mod:`email.encoders` pour une liste des encodeurs intégrés." - -#: library/email.mime.rst:202 -msgid "" -"*_params* are passed straight through to " -"the :class:`~email.mime.base.MIMEBase` constructor." -msgstr "" -"Les *_params* sont transmis directement au " -"constructeur :class:`~email.mime.base.MIMEBase`." - -#: library/email.mime.rst:212 -msgid "Module: :mod:`email.mime.message`" -msgstr "Module : :mod:`email.mime.message`" - -#: library/email.mime.rst:214 -msgid "" -"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, " -"the :class:`MIMEMessage` class is used to create MIME objects of main " -"type :mimetype:`message`. *_msg* is used as the payload, and must be an " -"instance of class :class:`~email.message.Message` (or a subclass thereof), " -"otherwise a :exc:`TypeError` is raised." -msgstr "" -"Sous-classe de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " -"classe :class:`MIMEMessage` est utilisée pour créer des objets MIME de type " -"principal :mimetype:`message`. *_msg* est utilisé comme charge utile et doit " -"être une instance de la classe :class:`~email.message.Message` (ou une sous-" -"classe de celle-ci), sinon une :exc:`TypeError` est levée." - -#: library/email.mime.rst:220 -msgid "" -"Optional *_subtype* sets the subtype of the message; it defaults " -"to :mimetype:`rfc822`." -msgstr "" -"L'option *_subtype* définit le sous-type du message ; par défaut " -"c'est :mimetype:`rfc822`." - -#: library/email.mime.rst:232 -msgid "Module: :mod:`email.mime.text`" -msgstr "Module : :mod:`email.mime.text`" - -#: library/email.mime.rst:234 -msgid "" -"A subclass of :class:`~email.mime.nonmultipart.MIMENonMultipart`, " -"the :class:`MIMEText` class is used to create MIME objects of major " -"type :mimetype:`text`. *_text* is the string for the payload. *_subtype* is " -"the minor type and defaults to :mimetype:`plain`. *_charset* is the " -"character set of the text and is passed as an argument to " -"the :class:`~email.mime.nonmultipart.MIMENonMultipart` constructor; it " -"defaults to ``us-ascii`` if the string contains only ``ascii`` code points, " -"and ``utf-8`` otherwise. The *_charset* parameter accepts either a string " -"or a :class:`~email.charset.Charset` instance." -msgstr "" -"Sous-classe de :class:`~email.mime.nonmultipart.MIMENonMultipart`, la " -"classe :class:`MIMEText` est utilisée pour créer des objets MIME de type " -"principal :mimetype:`text`. *_text* est la chaîne de la charge utile. " -"*_subtype* est le type mineur et par défaut est :mimetype:`plain`. " -"*_charset* est le jeu de caractères du texte et est passé en argument au " -"constructeur :class:`~email.mime.nonmultipart.MIMENonMultipart` ; sa valeur " -"par défaut est ``us-ascii`` si la chaîne ne contient que des points de code " -"``ascii``, et ``utf-8`` sinon. Le paramètre *_charset* accepte soit une " -"chaîne soit une instance :class:`~email.charset.Charset`." - -#: library/email.mime.rst:244 -msgid "" -"Unless the *_charset* argument is explicitly set to ``None``, the MIMEText " -"object created will have both a :mailheader:`Content-Type` header with a " -"``charset`` parameter, and a :mailheader:`Content-Transfer-Encoding` " -"header. This means that a subsequent ``set_payload`` call will not result " -"in an encoded payload, even if a charset is passed in the ``set_payload`` " -"command. You can \"reset\" this behavior by deleting the ``Content-Transfer-" -"Encoding`` header, after which a ``set_payload`` call will automatically " -"encode the new payload (and add a new :mailheader:`Content-Transfer-" -"Encoding` header)." -msgstr "" -"À moins que l'argument *_charset* ne soit explicitement défini sur ``None``, " -"l'objet *MIMEText* créé possède à la fois un en-tête :mailheader:`Content-" -"Type` avec un paramètre ``charset`` et un en-tête :mailheader:`Content-" -"Transfer-Encoding`. Cela signifie qu'un appel ultérieur à ``set_payload`` " -"n'entraîne pas l'encodage de la charge utile, même si un jeu de caractères " -"est passé dans la commande ``set_payload``. Vous pouvez « réinitialiser » ce " -"comportement en supprimant l'en-tête ``Content-Transfer-Encoding``, après " -"quoi un appel ``set_payload`` encodera automatiquement la nouvelle charge " -"utile (et ajoutera un nouvel en-tête :mailheader:`Content-Transfer-" -"Encoding`)." - -#: library/email.mime.rst:256 -msgid "*_charset* also accepts :class:`~email.charset.Charset` instances." -msgstr "" -"*_charset* accepte également les instances :class:`~email.charset.Charset`." diff --git a/library/email.parser.po b/library/email.parser.po deleted file mode 100644 index 637bef9fb8..0000000000 --- a/library/email.parser.po +++ /dev/null @@ -1,567 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-01-18 22:43+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/email.parser.rst:2 -#, fuzzy -msgid ":mod:`!email.parser`: Parsing email messages" -msgstr ":mod:`email.parser` : analyser des e-mails" - -#: library/email.parser.rst:7 -msgid "**Source code:** :source:`Lib/email/parser.py`" -msgstr "**Code source :** :source:`Lib/email/parser.py`" - -#: library/email.parser.rst:11 -msgid "" -"Message object structures can be created in one of two ways: they can be " -"created from whole cloth by creating an :class:`~email.message.EmailMessage` " -"object, adding headers using the dictionary interface, and adding payload(s) " -"using :meth:`~email.message.EmailMessage.set_content` and related methods, " -"or they can be created by parsing a serialized representation of the email " -"message." -msgstr "" -"Les instances de messages peuvent être créées de deux façons : elles peuvent " -"être créées de toutes pièces en créant un " -"objet :class:`~email.message.message.EmailMessage`, en ajoutant des en-têtes " -"en utilisant l'interface de dictionnaire, et en ajoutant un ou plusieurs " -"corps de message en " -"utilisant :meth:`~email.message.message.EmailMessage.set_content` et les " -"méthodes associées, ou elles peuvent être créées en analysant une " -"représentation sérialisée de l'e-mail." - -#: library/email.parser.rst:18 -msgid "" -"The :mod:`email` package provides a standard parser that understands most " -"email document structures, including MIME documents. You can pass the " -"parser a bytes, string or file object, and the parser will return to you the " -"root :class:`~email.message.EmailMessage` instance of the object structure. " -"For simple, non-MIME messages the payload of this root object will likely be " -"a string containing the text of the message. For MIME messages, the root " -"object will return ``True`` from " -"its :meth:`~email.message.EmailMessage.is_multipart` method, and the " -"subparts can be accessed via the payload manipulation methods, such " -"as :meth:`~email.message.EmailMessage.get_body`, :meth:`~email.message.EmailMessage.iter_parts`, " -"and :meth:`~email.message.EmailMessage.walk`." -msgstr "" -"Le paquet :mod:`email` fournit un analyseur standard qui comprend la plupart " -"des structures de documents de courrier électronique, y compris les " -"documents MIME. Vous pouvez passer à l'analyseur un objet *bytes*, chaîne ou " -"fichier, et l'analyseur vous renverra l'instance " -"racine :class:`~email.message.EmailMessage` de la structure de l'objet. Pour " -"les messages simples non MIME, la charge utile de cet objet racine sera " -"probablement une chaîne contenant le texte du message. Pour les messages " -"MIME, la méthode :meth:`~email.message.EmailMessage.is_multipart` de l'objet " -"racine renvoie ``True``, et les sous-parties sont accessibles via les " -"méthodes de manipulation de la charge utile, telles que :meth:`~ " -"email.message.EmailMessage.get_body`, :meth:`~email.message.EmailMessage.iter_parts` " -"et :meth:`~email.message.EmailMessage.walk`." - -#: library/email.parser.rst:30 -msgid "" -"There are actually two parser interfaces available for use, " -"the :class:`Parser` API and the incremental :class:`FeedParser` API. " -"The :class:`Parser` API is most useful if you have the entire text of the " -"message in memory, or if the entire message lives in a file on the file " -"system. :class:`FeedParser` is more appropriate when you are reading the " -"message from a stream which might block waiting for more input (such as " -"reading an email message from a socket). The :class:`FeedParser` can " -"consume and parse the message incrementally, and only returns the root " -"object when you close the parser." -msgstr "" -"Il existe en fait deux interfaces d'analyseur disponibles, " -"l'API :class:`Parser` et l'API incrémentale :class:`FeedParser`. " -"L'API :class:`Parser` est plus utile si vous avez le texte entier du message " -"en mémoire ou si le message entier réside dans un fichier sur le système de " -"fichiers. :class:`FeedParser` est plus appropriée lorsque vous lisez le " -"message à partir d'un flux qui peut bloquer en attente d'une entrée " -"supplémentaire (comme la lecture d'un message électronique à partir d'un " -"connecteur réseau). :class:`FeedParser` peut consommer et analyser le " -"message de manière incrémentielle et ne renvoie l'objet racine que lorsque " -"vous fermez l'analyseur." - -#: library/email.parser.rst:39 -#, fuzzy -msgid "" -"Note that the parser can be extended in limited ways, and of course you can " -"implement your own parser completely from scratch. All of the logic that " -"connects the :mod:`email` package's bundled parser and " -"the :class:`~email.message.EmailMessage` class is embodied in " -"the :class:`~email.policy.Policy` class, so a custom parser can create " -"message object trees any way it finds necessary by implementing custom " -"versions of the appropriate :class:`!Policy` methods." -msgstr "" -"Notez que l'analyseur peut être étendu de manière limitée et, bien sûr, vous " -"pouvez implémenter votre propre analyseur complètement à partir de zéro. " -"Toute la logique qui relie l'analyseur intégré au paquet :mod:`email` et la " -"classe :class:`~email.message.EmailMessage` est incarnée dans la " -"classe :mod:`policy`, de sorte qu'un analyseur personnalisé peut créer des " -"arborescences d'objet message comme il le juge nécessaire en implémentant " -"des versions personnalisées des méthodes :mod:`policy` appropriées." - -#: library/email.parser.rst:49 -msgid "FeedParser API" -msgstr "API *FeedParser*" - -#: library/email.parser.rst:51 -msgid "" -"The :class:`BytesFeedParser`, imported from the :mod:`email.feedparser` " -"module, provides an API that is conducive to incremental parsing of email " -"messages, such as would be necessary when reading the text of an email " -"message from a source that can block (such as a socket). " -"The :class:`BytesFeedParser` can of course be used to parse an email message " -"fully contained in a :term:`bytes-like object`, string, or file, but " -"the :class:`BytesParser` API may be more convenient for such use cases. The " -"semantics and results of the two parser APIs are identical." -msgstr "" -":class:`BytesFeedParser`, importée du module :mod:`email.feedparser`, " -"fournit une API propice à l'analyse incrémentielle des messages " -"électroniques, adaptée à la lecture du texte d'un message électronique à " -"partir d'une source qui peut bloquer (comme un " -"connecteur). :class:`BytesFeedParser` peut bien sûr être utilisée pour " -"analyser un message électronique entièrement contenu dans un :term:`objet " -"octets-compatible `, une chaîne ou un fichier, mais " -"l'API :class:`BytesParser` peut être plus pratique dans ces utilisations. La " -"sémantique et les résultats des deux API d'analyseurs sont identiques." - -#: library/email.parser.rst:60 -msgid "" -"The :class:`BytesFeedParser`'s API is simple; you create an instance, feed " -"it a bunch of bytes until there's no more to feed it, then close the parser " -"to retrieve the root message object. The :class:`BytesFeedParser` is " -"extremely accurate when parsing standards-compliant messages, and it does a " -"very good job of parsing non-compliant messages, providing information about " -"how a message was deemed broken. It will populate a message " -"object's :attr:`~email.message.EmailMessage.defects` attribute with a list " -"of any problems it found in a message. See the :mod:`email.errors` module " -"for the list of defects that it can find." -msgstr "" -"L'API de :class:`BytesFeedParser` est simple ; vous créez une instance, " -"l'alimentez d'une suite d'octets jusqu'à ce qu'il n'y en ait plus pour " -"l'alimenter, puis fermez l'analyseur pour récupérer l'objet message " -"racine. :class:`BytesFeedParser` est extrêmement précise lors de l'analyse " -"des messages conformes aux normes, et elle fait un très bon travail " -"d'analyse des messages non conformes, fournissant des informations sur ce " -"qu'elle considère comme non approprié dans un message. Elle remplit " -"l'attribut :attr:`~email.message.EmailMessage.defects` d'un objet message " -"avec une liste de tous les problèmes trouvés dans un message. Voir le " -"module :mod:`email.errors` pour la liste des défauts qu'elle peut trouver." - -#: library/email.parser.rst:70 -msgid "Here is the API for the :class:`BytesFeedParser`:" -msgstr "Voici l’API de :class:`BytesFeedParser` :" - -#: library/email.parser.rst:75 -msgid "" -"Create a :class:`BytesFeedParser` instance. Optional *_factory* is a no-" -"argument callable; if not specified use " -"the :attr:`~email.policy.Policy.message_factory` from the *policy*. Call " -"*_factory* whenever a new message object is needed." -msgstr "" -"Crée une instance :class:`BytesFeedParser`. *_factory* est un appelable " -"facultatif sans argument ; s'il n'est pas spécifié, elle utilise " -"la :attr:`~email.policy.Policy.message_factory` de la *policy*. Elle appelle " -"*_factory* chaque fois qu'un nouvel objet de message est nécessaire." - -#: library/email.parser.rst:80 -msgid "" -"If *policy* is specified use the rules it specifies to update the " -"representation of the message. If *policy* is not set, use " -"the :class:`compat32 ` policy, which maintains " -"backward compatibility with the Python 3.2 version of the email package and " -"provides :class:`~email.message.Message` as the default factory. All other " -"policies provide :class:`~email.message.EmailMessage` as the default " -"*_factory*. For more information on what else *policy* controls, see " -"the :mod:`~email.policy` documentation." -msgstr "" -"Si *policy* est spécifiée, elle utilise les règles spécifiées pour mettre à " -"jour la représentation du message. Si *policy* n'est pas définie, elle " -"utilise la stratégie :class:`compat32 `, qui " -"maintient la rétrocompatibilité avec la version Python 3.2 du paquet de " -"messagerie et fournit :class:`~email.message.Message` comme usine par " -"défaut. Toutes les autres stratégies " -"fournissent :class:`~email.message.EmailMessage` comme *_factory* par " -"défaut. Pour plus d'informations sur ce que *policy* régit, consultez la " -"documentation :mod:`~email.policy`." - -#: library/email.parser.rst:145 -msgid "" -"Note: **The policy keyword should always be specified**; The default will " -"change to :data:`email.policy.default` in a future version of Python." -msgstr "" -"Remarque : **Le paramètre nommé « policy » doit toujours être spécifié** ; " -"La valeur par défaut deviendra :data:`email.policy.default` dans une future " -"version de Python." - -# suit un : -#: library/email.parser.rst:122 -msgid "Added the *policy* keyword." -msgstr "ajout du paramètre nommé *policy*." - -#: library/email.parser.rst:95 -msgid "*_factory* defaults to the policy ``message_factory``." -msgstr "*_factory* utilise par défaut la politique ``message_factory``." - -#: library/email.parser.rst:100 -msgid "" -"Feed the parser some more data. *data* should be a :term:`bytes-like " -"object` containing one or more lines. The lines can be partial and the " -"parser will stitch such partial lines together properly. The lines can have " -"any of the three common line endings: carriage return, newline, or carriage " -"return and newline (they can even be mixed)." -msgstr "" -"Alimente l'analyseur avec plus de données. *data* doit être un :term:`objet " -"octets-compatible ` contenant une ou plusieurs lignes. " -"Les lignes peuvent être partielles et l'analyseur assemble correctement ces " -"lignes partielles. Les lignes peuvent avoir l'une des trois fins de ligne " -"courantes : retour chariot, nouvelle ligne ou retour chariot et nouvelle " -"ligne (elles peuvent même être mélangées)." - -#: library/email.parser.rst:109 -msgid "" -"Complete the parsing of all previously fed data and return the root message " -"object. It is undefined what happens if :meth:`~feed` is called after this " -"method has been called." -msgstr "" -"Termine l'analyse de toutes les données précédemment alimentées et renvoie " -"l'objet message racine. Ce qui se passe si :meth:`~feed` est appelée après " -"l'appel de cette méthode n'est pas défini." - -#: library/email.parser.rst:116 -#, fuzzy -msgid "" -"Works like :class:`BytesFeedParser` except that the input to " -"the :meth:`~BytesFeedParser.feed` method must be a string. This is of " -"limited utility, since the only way for such a message to be valid is for it " -"to contain only ASCII text or, if :attr:`~email.policy.EmailPolicy.utf8` is " -"``True``, no binary attachments." -msgstr "" -"Fonctionne comme :class:`BytesFeedParser` sauf que l'entrée de la " -"méthode :meth:`~BytesFeedParser.feed` doit être une chaîne. Ceci est d'une " -"utilité limitée, car la seule façon pour qu'un tel message soit valide est " -"qu'il ne contienne que du texte ASCII ou, " -"si :attr:`~email.policy.Policy.utf8` vaut ``True``, aucun binaire en pièce " -"jointe." - -#: library/email.parser.rst:126 -msgid "Parser API" -msgstr "API de *Parser*" - -#: library/email.parser.rst:128 -#, fuzzy -msgid "" -"The :class:`BytesParser` class, imported from the :mod:`!email.parser` " -"module, provides an API that can be used to parse a message when the " -"complete contents of the message are available in a :term:`bytes-like " -"object` or file. The :mod:`!email.parser` module also " -"provides :class:`Parser` for parsing strings, and header-only " -"parsers, :class:`BytesHeaderParser` and :class:`HeaderParser`, which can be " -"used if you're only interested in the headers of the " -"message. :class:`BytesHeaderParser` and :class:`HeaderParser` can be much " -"faster in these situations, since they do not attempt to parse the message " -"body, instead setting the payload to the raw body." -msgstr "" -"La classe :class:`BytesParser`, importée du module :mod:`email.parser`, " -"fournit une API qui peut être utilisée pour analyser un message lorsque le " -"contenu complet du message est disponible dans un :term:`objet octets-" -"compatible ` ou un fichier. Le module :mod:`email.parser` " -"fournit également :class:`Parser` pour l'analyse des chaînes et des " -"analyseurs d'en-tête uniquement, :class:`BytesHeaderParser` " -"et :class:`HeaderParser`, qui peuvent être utilisés si vous ne vous " -"intéressez qu'aux en-têtes du message. :class:`BytesHeaderParser` " -"et :class:`HeaderParser` peuvent être beaucoup plus rapides dans ces " -"situations, car ils n'essaient pas d'analyser le corps du message." - -#: library/email.parser.rst:141 -msgid "" -"Create a :class:`BytesParser` instance. The *_class* and *policy* arguments " -"have the same meaning and semantics as the *_factory* and *policy* arguments " -"of :class:`BytesFeedParser`." -msgstr "" -"Crée une instance :class:`BytesParser`. Les arguments *_class* et *policy* " -"ont la même signification et la même sémantique que les arguments *_factory* " -"et *policy* de :class:`BytesFeedParser`." - -#: library/email.parser.rst:148 -msgid "" -"Removed the *strict* argument that was deprecated in 2.4. Added the " -"*policy* keyword." -msgstr "" -"suppression de l'argument *strict* qui était obsolète dans 2.4. Ajout du " -"paramètre nommé *policy*." - -#: library/email.parser.rst:200 library/email.parser.rst:280 -msgid "*_class* defaults to the policy ``message_factory``." -msgstr "*_class* utilise par défaut la politique ``message_factory``." - -#: library/email.parser.rst:156 -#, fuzzy -msgid "" -"Read all the data from the binary file-like object *fp*, parse the resulting " -"bytes, and return the message object. *fp* must support both " -"the :meth:`~io.IOBase.readline` and the :meth:`~io.BufferedIOBase.read` " -"methods." -msgstr "" -"Lit toutes les données de l'objet de type fichier binaire *fp*, analyse les " -"octets résultants et renvoie l'objet message. *fp* doit prendre en charge " -"les méthodes :meth:`~io.IOBase.readline` et :meth:`~io.IOBase.read`." - -#: library/email.parser.rst:161 -#, fuzzy -msgid "" -"The bytes contained in *fp* must be formatted as a block of :rfc:`5322` (or, " -"if :attr:`~email.policy.EmailPolicy.utf8` is ``True``, :rfc:`6532`) style " -"headers and header continuation lines, optionally preceded by an envelope " -"header. The header block is terminated either by the end of the data or by " -"a blank line. Following the header block is the body of the message (which " -"may contain MIME-encoded subparts, including subparts with " -"a :mailheader:`Content-Transfer-Encoding` of ``8bit``)." -msgstr "" -"Les octets contenus dans *fp* doivent être formatés comme un bloc d'en-têtes " -"de style conforme à la :rfc:`5322` (ou, si :attr:`~email.policy.Policy.utf8` " -"est ``True``, à la :rfc:`6532`), éventuellement précédés d'un en-tête " -"d'enveloppe. Le bloc d'en-têtes se termine soit par la fin des données, soit " -"par une ligne blanche. Après le bloc d'en-têtes se trouve le corps du " -"message (qui peut contenir des sous-parties codées MIME, y compris des sous-" -"parties avec un :mailheader:`Content-Transfer-Encoding` de ``8bit``)." - -#: library/email.parser.rst:169 -msgid "" -"Optional *headersonly* is a flag specifying whether to stop parsing after " -"reading the headers or not. The default is ``False``, meaning it parses the " -"entire contents of the file." -msgstr "" -"*headersonly* est un indicateur facultatif spécifiant s'il faut arrêter " -"l'analyse après avoir lu les en-têtes ou non. La valeur par défaut est " -"``False``, ce qui signifie qu'il analyse tout le contenu du fichier." - -#: library/email.parser.rst:176 -msgid "" -"Similar to the :meth:`parse` method, except it takes a :term:`bytes-like " -"object` instead of a file-like object. Calling this method on " -"a :term:`bytes-like object` is equivalent to wrapping *bytes* in " -"a :class:`~io.BytesIO` instance first and calling :meth:`parse`." -msgstr "" -"Semblable à la méthode :meth:`parse`, sauf qu'elle prend un :term:`objet " -"octets-compatible ` au lieu d'un objet de type fichier. " -"Appeler cette méthode sur un :term:`objet octets-compatible ` équivaut à envelopper *bytes* dans une " -"instance :class:`~io.BytesIO` d'abord et à appeler :meth:`parse`." - -#: library/email.parser.rst:221 -msgid "Optional *headersonly* is as with the :meth:`parse` method." -msgstr "" -"L'utilisation de l'option *headersonly* est identique à son utilisation dans " -"la méthode :meth:`parse`." - -#: library/email.parser.rst:188 -msgid "" -"Exactly like :class:`BytesParser`, except that *headersonly* defaults to " -"``True``." -msgstr "" -"Exactement comme :class:`BytesParser`, sauf que *headersonly* par défaut est " -"``True``." - -#: library/email.parser.rst:196 -msgid "" -"This class is parallel to :class:`BytesParser`, but handles string input." -msgstr "" -"Cette classe est semblable à :class:`BytesParser`, mais elle accepte une " -"chaîne en entrée." - -#: library/email.parser.rst:245 library/email.parser.rst:268 -#: library/email.parser.rst:278 -msgid "Removed the *strict* argument. Added the *policy* keyword." -msgstr "" -"suppression de l'argument *strict*. Ajout de l'argument nommé *policy*." - -#: library/email.parser.rst:205 -msgid "" -"Read all the data from the text-mode file-like object *fp*, parse the " -"resulting text, and return the root message object. *fp* must support both " -"the :meth:`~io.TextIOBase.readline` and the :meth:`~io.TextIOBase.read` " -"methods on file-like objects." -msgstr "" -"Lit toutes les données de l'objet de type fichier en mode texte *fp*, " -"analyse le texte résultant et renvoie l'objet message racine. *fp* doit " -"prendre en charge les méthodes :meth:`~io.TextIOBase.readline` " -"et :meth:`~io.TextIOBase.read` sur les objets de type fichier." - -#: library/email.parser.rst:210 -msgid "" -"Other than the text mode requirement, this method operates " -"like :meth:`BytesParser.parse`." -msgstr "" -"Outre l'exigence du mode texte, cette méthode fonctionne " -"comme :meth:`BytesParser.parse`." - -#: library/email.parser.rst:216 -msgid "" -"Similar to the :meth:`parse` method, except it takes a string object instead " -"of a file-like object. Calling this method on a string is equivalent to " -"wrapping *text* in a :class:`~io.StringIO` instance first and " -"calling :meth:`parse`." -msgstr "" -"Similaire à la méthode :meth:`parse`, sauf qu'elle prend un objet chaîne au " -"lieu d'un objet de type fichier. Appeler cette méthode sur une chaîne " -"équivaut à envelopper *text* dans une instance :class:`~io.StringIO` d'abord " -"et à appeler :meth:`parse`." - -#: library/email.parser.rst:226 -msgid "" -"Exactly like :class:`Parser`, except that *headersonly* defaults to ``True``." -msgstr "" -"Exactement comme :class:`Parser`, sauf que *headersonly* par défaut est " -"``True``." - -#: library/email.parser.rst:230 -msgid "" -"Since creating a message object structure from a string or a file object is " -"such a common task, four functions are provided as a convenience. They are " -"available in the top-level :mod:`email` package namespace." -msgstr "" -"Étant donné que la création d'une structure d'objet message à partir d'une " -"chaîne ou d'un objet fichier est une tâche très courante, quatre fonctions " -"sont fournies par commodité. Elles sont disponibles dans l'espace de noms de " -"paquet de niveau supérieur :mod:`email`." - -#: library/email.parser.rst:239 -msgid "" -"Return a message object structure from a :term:`bytes-like object`. This is " -"equivalent to ``BytesParser().parsebytes(s)``. Optional *_class* and " -"*policy* are interpreted as with the :class:`~email.parser.BytesParser` " -"class constructor." -msgstr "" -"Renvoie une structure d'objet message à partir d'un :term:`objet octets-" -"compatible `. C'est équivalent à " -"``BytesParser().parsebytes(s)``. *_class* et *policy* (facultatifs) sont " -"interprétés comme pour le constructeur de " -"classe :class:`~email.parser.BytesParser`." - -#: library/email.parser.rst:252 -msgid "" -"Return a message object structure tree from an open binary :term:`file " -"object`. This is equivalent to ``BytesParser().parse(fp)``. *_class* and " -"*policy* are interpreted as with the :class:`~email.parser.BytesParser` " -"class constructor." -msgstr "" -"Renvoie une arborescence d'objets message à partir d'un :term:`objet fichier " -"` binaire ouvert. C'est équivalent à " -"``BytesParser().parse(fp)``. *_class* et *policy* sont interprétés comme " -"pour le constructeur de classe :class:`~email.parser.BytesParser`." - -#: library/email.parser.rst:264 -msgid "" -"Return a message object structure from a string. This is equivalent to " -"``Parser().parsestr(s)``. *_class* and *policy* are interpreted as with " -"the :class:`~email.parser.Parser` class constructor." -msgstr "" -"Renvoie une structure d'objet message à partir d'une chaîne. C'est " -"équivalent à ``Parser().parsestr(s)``. *_class* et *policy* sont interprétés " -"comme avec le constructeur de classe :class:`~email.parser.Parser`." - -#: library/email.parser.rst:274 -msgid "" -"Return a message object structure tree from an open :term:`file object`. " -"This is equivalent to ``Parser().parse(fp)``. *_class* and *policy* are " -"interpreted as with the :class:`~email.parser.Parser` class constructor." -msgstr "" -"Renvoie une arborescence de structures d'objets messages à partir " -"d'un :term:`objet fichier ` ouvert. C'est équivalent à " -"``Parser().parse(fp)``. *_class* et *policy* sont interprétés comme avec le " -"constructeur de classe :class:`~email.parser.Parser`." - -#: library/email.parser.rst:283 -msgid "" -"Here's an example of how you might use :func:`message_from_bytes` at an " -"interactive Python prompt::" -msgstr "" -"Voici un exemple d'utilisation :func:`message_from_bytes` dans une invite " -"Python interactive ::" - -#: library/email.parser.rst:291 -msgid "Additional notes" -msgstr "Notes complémentaires" - -#: library/email.parser.rst:293 -msgid "Here are some notes on the parsing semantics:" -msgstr "Voici des remarques sur la sémantique d'analyse :" - -#: library/email.parser.rst:295 -msgid "" -"Most non-\\ :mimetype:`multipart` type messages are parsed as a single " -"message object with a string payload. These objects will return ``False`` " -"for :meth:`~email.message.EmailMessage.is_multipart`, " -"and :meth:`~email.message.EmailMessage.iter_parts` will yield an empty list." -msgstr "" -"La plupart des messages de type non-\\ :mimetype:`multipart` sont analysés " -"comme un seul objet de message avec une charge utile de type chaîne. Ces " -"objets renvoient ``False`` " -"pour :meth:`~email.message.EmailMessage.is_multipart` " -"et :meth:`~email.message.EmailMessage.iter_parts` donne une liste vide." - -#: library/email.parser.rst:300 -msgid "" -"All :mimetype:`multipart` type messages will be parsed as a container " -"message object with a list of sub-message objects for their payload. The " -"outer container message will return ``True`` " -"for :meth:`~email.message.EmailMessage.is_multipart`, " -"and :meth:`~email.message.EmailMessage.iter_parts` will yield a list of " -"subparts." -msgstr "" -"Tous les messages de type :mimetype:`multipart` sont analysés comme un objet " -"de message conteneur avec une liste d'objets de sous-messages pour leur " -"charge utile. Le message du conteneur externe renvoie ``True`` " -"pour :meth:`~email.message.EmailMessage.is_multipart` " -"et :meth:`~email.message.EmailMessage.iter_parts` donne une liste de sous-" -"parties." - -#: library/email.parser.rst:306 -msgid "" -"Most messages with a content type of :mimetype:`message/\\*` (such " -"as :mimetype:`message/delivery-status` and :mimetype:`message/rfc822`) will " -"also be parsed as container object containing a list payload of length 1. " -"Their :meth:`~email.message.EmailMessage.is_multipart` method will return " -"``True``. The single element yielded " -"by :meth:`~email.message.EmailMessage.iter_parts` will be a sub-message " -"object." -msgstr "" -"La plupart des messages avec un type de contenu de :mimetype:`message/\\*` " -"(tels que :mimetype:`message/delivery-status` et :mimetype:`message/rfc822`) " -"sont également analysés en tant qu'objet conteneur contenant une charge " -"utile de type « liste de longueur 1 ». Leur " -"méthode :meth:`~email.message.EmailMessage.is_multipart` renvoie ``True``. " -"L'élément unique généré par :meth:`~email.message.EmailMessage.iter_parts` " -"est un objet sous-message." - -#: library/email.parser.rst:313 -msgid "" -"Some non-standards-compliant messages may not be internally consistent about " -"their :mimetype:`multipart`\\ -edness. Such messages may have " -"a :mailheader:`Content-Type` header of type :mimetype:`multipart`, but " -"their :meth:`~email.message.EmailMessage.is_multipart` method may return " -"``False``. If such messages were parsed with " -"the :class:`~email.parser.FeedParser`, they will have an instance of " -"the :class:`~email.errors.MultipartInvariantViolationDefect` class in their " -"*defects* attribute list. See :mod:`email.errors` for details." -msgstr "" -"Certains messages non conformes aux normes peuvent ne pas être cohérents en " -"interne quant à :mimetype:`multipart`. De tels messages peuvent avoir un en-" -"tête :mailheader:`Content-Type` de type :mimetype:`multipart`, mais leur " -"méthode :meth:`~email.message.EmailMessage.is_multipart` peut renvoyer " -"``False``. Si de tels messages ont été analysés avec " -"la :class:`~email.parser.FeedParser`, ils auront une instance de la " -"classe :class:`~email.errors.MultipartInvariantViolationDefect` dans leur " -"liste d'attributs *defects*. Voir :mod:`email.errors` pour plus de détails." diff --git a/library/email.po b/library/email.po deleted file mode 100644 index 86cb7a8b16..0000000000 --- a/library/email.po +++ /dev/null @@ -1,292 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-09-06 21:25+0200\n" -"Last-Translator: Jean Abou Samra \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.1\n" - -#: library/email.rst:2 -#, fuzzy -msgid ":mod:`!email` --- An email and MIME handling package" -msgstr ":mod:`email` — Un paquet de gestion des e-mails et MIME" - -#: library/email.rst:8 -msgid "**Source code:** :source:`Lib/email/__init__.py`" -msgstr "**Code source:** :source:`Lib/email/__init__.py`" - -#: library/email.rst:12 -#, fuzzy -msgid "" -"The :mod:`!email` package is a library for managing email messages. It is " -"specifically *not* designed to do any sending of email messages to SMTP " -"(:rfc:`2821`), NNTP, or other servers; those are functions of modules such " -"as :mod:`smtplib`. The :mod:`!email` package attempts to be as RFC-" -"compliant as possible, supporting :rfc:`5322` and :rfc:`6532`, as well as " -"such MIME-related RFCs " -"as :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, :rfc:`2183`, and :rfc:`2231`." -msgstr "" -"Le paquet :mod:`email` est une bibliothèque pour gérer les e-mails. Il est " -"spécifiquement conçu pour ne pas gérer les envois d'e-mails vers SMTP " -"(:rfc:`2821`), NNTP, ou autres serveurs ; ces fonctions sont du ressort " -"des modules comme :mod:`smtplib` et :mod:`nntplib`. Le paquet :mod:`email` " -"tente de respecter les RFC autant que possible, il gère :rfc:`5322` " -"et :rfc:`6532`, ainsi que les RFCs en rapport avec les MIME " -"comme :rfc:`2045`, :rfc:`2046`, :rfc:`2047`, :rfc:`2183`, et :rfc:`2231`." - -#: library/email.rst:20 -msgid "" -"The overall structure of the email package can be divided into three major " -"components, plus a fourth component that controls the behavior of the other " -"components." -msgstr "" -"Ce paquet peut être divisé entre trois composants majeurs, et un quatrième " -"composant qui contrôle le comportement des trois autres." - -#: library/email.rst:24 -msgid "" -"The central component of the package is an \"object model\" that represents " -"email messages. An application interacts with the package primarily through " -"the object model interface defined in the :mod:`~email.message` sub-module. " -"The application can use this API to ask questions about an existing email, " -"to construct a new email, or to add or remove email subcomponents that " -"themselves use the same object model interface. That is, following the " -"nature of email messages and their MIME subcomponents, the email object " -"model is a tree structure of objects that all provide " -"the :class:`~email.message.EmailMessage` API." -msgstr "" -"Le composant central du paquet est un \"modèle d'objet\" qui représente les " -"messages. Une application interagit avec le paquet, dans un premier temps, à " -"travers l'interface de modèle d'objet définie dans le sous-" -"module :mod:`~email.message`. L'application peut utiliser cette API pour " -"poser des questions à propos d'un mail existant, pour créer un nouvel e-" -"mail, ou ajouter ou retirer des sous-composants d'e-mail qui utilisent la " -"même interface de modèle d'objet. Suivant la nature des messages et leurs " -"sous-composants MIME, le modèle d'objet d'e-mail est une structure " -"arborescente d'objets qui fournit tout à l'API " -"de :class:`~email.message.EmailMessage`." - -#: library/email.rst:34 -msgid "" -"The other two major components of the package are the :mod:`~email.parser` " -"and the :mod:`~email.generator`. The parser takes the serialized version of " -"an email message (a stream of bytes) and converts it into a tree " -"of :class:`~email.message.EmailMessage` objects. The generator takes " -"an :class:`~email.message.EmailMessage` and turns it back into a serialized " -"byte stream. (The parser and generator also handle streams of text " -"characters, but this usage is discouraged as it is too easy to end up with " -"messages that are not valid in one way or another.)" -msgstr "" -"Les deux autres composants majeurs de ce paquet sont " -"l'analyseur (:mod:`~email.parser`) et le " -"générateur (:mod:`~email.generator`). L'analyseur prend la version " -"sérialisée d'un e-mail (un flux d'octets) et le convertit en une " -"arborescence d'objets :class:`~email.message.EmailMessage`. Le générateur " -"prend un objet :class:`~email.message.EmailMessage` et le retransforme en un " -"flux d'octets sérialisé (l'analyseur et le générateur gèrent aussi des " -"suites de caractères textuels, mais cette utilisation est déconseillée car " -"il est très facile de finir avec des messages invalides d'une manière ou " -"d'une autre)." - -#: library/email.rst:43 -msgid "" -"The control component is the :mod:`~email.policy` module. " -"Every :class:`~email.message.EmailMessage`, every :mod:`~email.generator`, " -"and every :mod:`~email.parser` has an associated :mod:`~email.policy` object " -"that controls its behavior. Usually an application only needs to specify " -"the policy when an :class:`~email.message.EmailMessage` is created, either " -"by directly instantiating an :class:`~email.message.EmailMessage` to create " -"a new email, or by parsing an input stream using a :mod:`~email.parser`. " -"But the policy can be changed when the message is serialized using " -"a :mod:`~email.generator`. This allows, for example, a generic email message " -"to be parsed from disk, but to serialize it using standard SMTP settings " -"when sending it to an email server." -msgstr "" -"Le composant de contrôle est le module :mod:`~email.policy`. " -"Chaque :class:`~email.message.EmailMessage`, chaque :mod:`~email.generator` " -"et chaque :mod:`~email.parser` possède un objet associé :mod:`~email.policy` " -"qui contrôle son comportement. Habituellement une application n'a besoin de " -"spécifier la politique que quand un :class:`~email.message.EmailMessage` est " -"créé, soit en instanciant directement " -"un :class:`~email.message.EmailMessage` pour créer un nouvel e-mail, soit " -"lors de l'analyse d'un flux entrant en utilisant un :mod:`~email.parser`. " -"Mais la politique peut être changée quand le message est sérialisé en " -"utilisant un :mod:`~email.generator`. Cela permet, par exemple, d'analyser " -"un message e-mail générique du disque, puis de le sérialiser en utilisant " -"une configuration SMTP standard quand on l'envoie vers un serveur d'e-mail." - -#: library/email.rst:55 -msgid "" -"The email package does its best to hide the details of the various governing " -"RFCs from the application. Conceptually the application should be able to " -"treat the email message as a structured tree of unicode text and binary " -"attachments, without having to worry about how these are represented when " -"serialized. In practice, however, it is often necessary to be aware of at " -"least some of the rules governing MIME messages and their structure, " -"specifically the names and nature of the MIME \"content types\" and how they " -"identify multipart documents. For the most part this knowledge should only " -"be required for more complex applications, and even then it should only be " -"the high level structure in question, and not the details of how those " -"structures are represented. Since MIME content types are used widely in " -"modern internet software (not just email), this will be a familiar concept " -"to many programmers." -msgstr "" -"Le paquet *email* fait son maximum pour cacher les détails des différentes " -"RFCs de référence à l'application. Conceptuellement, l'application doit être " -"capable de traiter l'e-mail comme une arborescence structurée de texte " -"Unicode et de pièces jointes binaires, sans avoir à se préoccuper de leur " -"représentation sérialisée. Dans la pratique, cependant, il est souvent " -"nécessaire d'être conscient d'au moins quelques règles relatives aux " -"messages MIME et à leur structure, en particulier les noms et natures des " -"\"types de contenus\" et comment ils identifient les documents à plusieurs " -"parties. Pour la plupart, cette connaissance devrait seulement être " -"nécessaire pour des applications plus complexes, et même là, il devrait être " -"question des structures de haut niveau et non des détails sur la manière " -"dont elles sont représentées. Comme les types de contenus MIME sont " -"couramment utilisés dans les logiciels internet modernes (et non uniquement " -"les e-mails), les développeurs sont généralement familiers de ce concept." - -#: library/email.rst:68 -#, fuzzy -msgid "" -"The following sections describe the functionality of the :mod:`!email` " -"package. We start with the :mod:`~email.message` object model, which is the " -"primary interface an application will use, and follow that with " -"the :mod:`~email.parser` and :mod:`~email.generator` components. Then we " -"cover the :mod:`~email.policy` controls, which completes the treatment of " -"the main components of the library." -msgstr "" -"La section suivante décrit les fonctionnalités du paquet :mod:`email`. Nous " -"commençons avec le modèle d'objet :mod:`~email.message`, qui est la " -"principale interface qu'une application utilise, et continuons avec les " -"composants :mod:`~email.parser` et :mod:`~email.generator`. Ensuite, nous " -"couvrons les contrôles :mod:`~email.policy`, qui complètent le traitement " -"des principaux composants de la bibliothèque." - -#: library/email.rst:75 -msgid "" -"The next three sections cover the exceptions the package may raise and the " -"defects (non-compliance with the RFCs) that the :mod:`~email.parser` may " -"detect. Then we cover the :mod:`~email.headerregistry` and " -"the :mod:`~email.contentmanager` sub-components, which provide tools for " -"doing more detailed manipulation of headers and payloads, respectively. " -"Both of these components contain features relevant to consuming and " -"producing non-trivial messages, but also document their extensibility APIs, " -"which will be of interest to advanced applications." -msgstr "" -"Les trois prochaines sections couvrent les exceptions que le paquet peut " -"rencontrer et les imperfections (non-respect des RFCs) que le " -"module :mod:`~email.parser` peut détecter. Ensuite nous couvrons les sous-" -"composants :mod:`~email.headerregistry` et :mod:`~email.contentmanager`, qui " -"fournissent des outils pour faire des manipulations plus détaillées des en-" -"têtes et du contenu, respectivement. Les deux composants contiennent des " -"fonctionnalités adaptées pour traiter et produire des messages qui sortent " -"de l'ordinaire, et elles documentent aussi leurs API pour pouvoir les " -"étendre, ce qui ne manquera pas d'intéresser les applications avancées." - -#: library/email.rst:84 -msgid "" -"Following those is a set of examples of using the fundamental parts of the " -"APIs covered in the preceding sections." -msgstr "" -"Ci-dessous se trouve un ensemble d'exemples d'utilisations des éléments " -"fondamentaux des API couvertes dans les sections précédentes." - -#: library/email.rst:87 -msgid "" -"The foregoing represent the modern (unicode friendly) API of the email " -"package. The remaining sections, starting with " -"the :class:`~email.message.Message` class, cover the " -"legacy :data:`~email.policy.compat32` API that deals much more directly with " -"the details of how email messages are represented. " -"The :data:`~email.policy.compat32` API does *not* hide the details of the " -"RFCs from the application, but for applications that need to operate at that " -"level, they can be useful tools. This documentation is also relevant for " -"applications that are still using the :mod:`~email.policy.compat32` API for " -"backward compatibility reasons." -msgstr "" -"Ce que nous venons d'aborder constitue l'API moderne (compatible Unicode) du " -"paquet *email*. Les sections restantes, commençant par la " -"classe :class:`~email.message.Message`, couvrent l'API " -"héritée :data:`~email.policy.compat32` qui traite beaucoup plus directement " -"des détails sur la manière dont les e-mails sont représentés. " -"L'API :data:`~email.policy.compat32` ne cache *pas* les détails des RFCs à " -"l'application, mais pour les applications qui requièrent d'opérer à ce " -"niveau, elle peut être un outil pratique. Cette documentation est aussi " -"pertinente pour les applications qui utilisent toujours " -"l'API :mod:`~email.policy.compat32` pour des raisons de rétrocompatibilité." - -#: library/email.rst:97 -msgid "" -"Docs reorganized and rewritten to promote the " -"new :class:`~email.message.EmailMessage`/:class:`~email.policy.EmailPolicy` " -"API." -msgstr "" -"Documents réorganisés et réécrits pour promouvoir la nouvelle " -"API :class:`~email.message.EmailMessage`/:class:`~email.policy.EmailPolicy`." - -#: library/email.rst:102 -#, fuzzy -msgid "Contents of the :mod:`!email` package documentation:" -msgstr "Contenus de la documentation du paquet :mod:`email` :" - -#: library/email.rst:117 -msgid "Legacy API:" -msgstr "API héritée :" - -#: library/email.rst:132 -msgid "Module :mod:`smtplib`" -msgstr "Module :mod:`smtplib`" - -#: library/email.rst:133 -msgid "SMTP (Simple Mail Transport Protocol) client" -msgstr "Client SMTP (*Simple Mail Transport Protocol*)" - -#: library/email.rst:135 -msgid "Module :mod:`poplib`" -msgstr "Module :mod:`poplib`" - -#: library/email.rst:136 -msgid "POP (Post Office Protocol) client" -msgstr "Client POP (*Post Office Protocol*)" - -#: library/email.rst:138 -msgid "Module :mod:`imaplib`" -msgstr "Module :mod:`imaplib`" - -#: library/email.rst:139 -msgid "IMAP (Internet Message Access Protocol) client" -msgstr "Client IMAP (*Internet Message Access Protocol*)" - -#: library/email.rst:141 -msgid "Module :mod:`mailbox`" -msgstr "Module :mod:`mailbox`" - -#: library/email.rst:142 -msgid "" -"Tools for creating, reading, and managing collections of messages on disk " -"using a variety standard formats." -msgstr "" -"Outils pour créer, lire et gérer des messages regroupés sur disque en " -"utilisant des formats standards variés." - -#~ msgid "Module :mod:`nntplib`" -#~ msgstr "Module :mod:`nntplib`" - -#~ msgid "NNTP (Net News Transport Protocol) client" -#~ msgstr "Client NNTP (*Net News Transport Protocol*)" - -#~ msgid "Module :mod:`smtpd`" -#~ msgstr "Module :mod:`smtpd`" - -#~ msgid "SMTP server framework (primarily useful for testing)" -#~ msgstr "Cadriciel pour serveur SMTP (principalement utile pour tester)" diff --git a/library/email.policy.po b/library/email.policy.po deleted file mode 100644 index 9d2ba0452f..0000000000 --- a/library/email.policy.po +++ /dev/null @@ -1,1163 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-03-17 11:54+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/email.policy.rst:2 -#, fuzzy -msgid ":mod:`!email.policy`: Policy Objects" -msgstr ":mod:`email.policy` : objets de définition de politique" - -#: library/email.policy.rst:9 -msgid "**Source code:** :source:`Lib/email/policy.py`" -msgstr "**Code source :** :source:`Lib/email/policy.py`" - -#: library/email.policy.rst:13 -msgid "" -"The :mod:`email` package's prime focus is the handling of email messages as " -"described by the various email and MIME RFCs. However, the general format " -"of email messages (a block of header fields each consisting of a name " -"followed by a colon followed by a value, the whole block followed by a blank " -"line and an arbitrary 'body'), is a format that has found utility outside of " -"the realm of email. Some of these uses conform fairly closely to the main " -"email RFCs, some do not. Even when working with email, there are times when " -"it is desirable to break strict compliance with the RFCs, such as generating " -"emails that interoperate with email servers that do not themselves follow " -"the standards, or that implement extensions you want to use in ways that " -"violate the standards." -msgstr "" -"Le principal objectif du paquet :mod:`email` est la gestion des messages " -"électroniques comme décrit par les diverses RFC de messagerie et MIME. " -"Cependant, le format général des messages électroniques (un bloc de champs " -"d'en-tête composés chacun d'un nom suivi de deux-points suivi d'une valeur, " -"le bloc entier suivi d'une ligne vide et d'un « corps » arbitraire), est un " -"format qui a trouvé son utilité en dehors du domaine du courrier " -"électronique. Certaines de ces utilisations sont assez conformes aux " -"principales RFC de messagerie, d'autres non. Même lorsque vous travaillez " -"avec des e-mails, il est parfois souhaitable de ne pas respecter strictement " -"les RFC, par exemple en générant des e-mails qui interagissent avec des " -"serveurs de messagerie qui ne respectent pas eux-mêmes les normes ou qui " -"implémentent des extensions que vous souhaitez utiliser d'une manière qui " -"enfreint les normes." - -#: library/email.policy.rst:25 -msgid "" -"Policy objects give the email package the flexibility to handle all these " -"disparate use cases." -msgstr "" -"Les objets de définition de politique donnent au paquet de messagerie la " -"flexibilité nécessaire pour gérer tous ces cas d'utilisation disparates." - -#: library/email.policy.rst:28 -msgid "" -"A :class:`Policy` object encapsulates a set of attributes and methods that " -"control the behavior of various components of the email package during " -"use. :class:`Policy` instances can be passed to various classes and methods " -"in the email package to alter the default behavior. The settable values and " -"their defaults are described below." -msgstr "" -"Un objet :class:`Policy` encapsule un ensemble d'attributs et de méthodes " -"qui contrôlent le comportement de divers composants du paquet de messagerie " -"lors de son utilisation. Les instances :class:`Policy` peuvent être " -"transmises à diverses classes et méthodes dans le paquet de courrier " -"électronique pour modifier le comportement par défaut. Les valeurs réglables " -"et leurs valeurs par défaut sont décrites ci-dessous." - -#: library/email.policy.rst:34 -msgid "" -"There is a default policy used by all classes in the email package. For all " -"of the :mod:`~email.parser` classes and the related convenience functions, " -"and for the :class:`~email.message.Message` class, this is " -"the :class:`Compat32` policy, via its corresponding pre-defined " -"instance :const:`compat32`. This policy provides for complete backward " -"compatibility (in some cases, including bug compatibility) with the pre-" -"Python3.3 version of the email package." -msgstr "" -"Il existe une politique par défaut utilisée par toutes les classes dans le " -"paquet de messagerie. Pour toutes les classes :mod:`~email.parser` et les " -"fonctions pratiques associées, et pour la " -"classe :class:`~email.message.Message`, il s'agit de la " -"politique :class:`Compat32`, via son instance correspondante " -"prédéfinie :const:`compat32`. Cette politique fournit une rétrocompatibilité " -"complète (dans certains cas, y compris la compatibilité des bogues) avec la " -"version pré-Python3.3 du paquet de messagerie." - -#: library/email.policy.rst:41 -msgid "" -"This default value for the *policy* keyword " -"to :class:`~email.message.EmailMessage` is the :class:`EmailPolicy` policy, " -"via its pre-defined instance :data:`~default`." -msgstr "" -"Cette valeur par défaut pour le paramètre nommé *policy* " -"de :class:`~email.message.EmailMessage` est la " -"politique :class:`EmailPolicy`, via son instance prédéfinie :data:`~default`." - -#: library/email.policy.rst:45 -msgid "" -"When a :class:`~email.message.Message` " -"or :class:`~email.message.EmailMessage` object is created, it acquires a " -"policy. If the message is created by a :mod:`~email.parser`, a policy " -"passed to the parser will be the policy used by the message it creates. If " -"the message is created by the program, then the policy can be specified when " -"it is created. When a message is passed to a :mod:`~email.generator`, the " -"generator uses the policy from the message by default, but you can also pass " -"a specific policy to the generator that will override the one stored on the " -"message object." -msgstr "" -"Lorsqu'un objet :class:`~email.message.Message` " -"ou :class:`~email.message.EmailMessage` est créé, il acquiert une politique. " -"Si le message est créé par un :mod:`~email.parser`, la politique transmise à " -"l'analyseur est la politique utilisée par le message qu'il crée. Si le " -"message est créé par le programme, la stratégie peut être spécifiée lors de " -"sa création. Lorsqu'un message est passé à un :mod:`~email.generator`, le " -"générateur utilise la politique du message par défaut, mais vous pouvez " -"également passer une politique spécifique au générateur qui remplace celle " -"stockée sur l'objet message." - -#: library/email.policy.rst:54 -msgid "" -"The default value for the *policy* keyword for the :mod:`email.parser` " -"classes and the parser convenience functions **will be changing** in a " -"future version of Python. Therefore you should **always specify explicitly " -"which policy you want to use** when calling any of the classes and functions " -"described in the :mod:`~email.parser` module." -msgstr "" -"La valeur par défaut du paramètre nommé *policy* pour les " -"classes :mod:`email.parser` et les fonctions pratiques de l'analyseur **va " -"changer** dans une future version de Python. Par conséquent, vous devez " -"**toujours spécifier explicitement la stratégie que vous souhaitez " -"utiliser** lors de l'appel de l'une des classes et fonctions décrites dans " -"le module :mod:`~email.parser`." - -#: library/email.policy.rst:60 -msgid "" -"The first part of this documentation covers the features of :class:`Policy`, " -"an :term:`abstract base class` that defines the features that are common to " -"all policy objects, including :const:`compat32`. This includes certain hook " -"methods that are called internally by the email package, which a custom " -"policy could override to obtain different behavior. The second part " -"describes the concrete classes :class:`EmailPolicy` and :class:`Compat32`, " -"which implement the hooks that provide the standard behavior and the " -"backward compatible behavior and features, respectively." -msgstr "" -"La première partie de cette documentation couvre les fonctionnalités " -"de :class:`Policy`, une :term:`classe abstraite ` " -"qui définit les fonctionnalités communes à tous les objets de stratégie, y " -"compris :const:`compat32`. Cela inclut certaines méthodes automatiques " -"(*hooks* en anglais) appelées en interne par le paquet de messagerie, qu'une " -"stratégie personnalisée peut remplacer pour obtenir un comportement " -"différent. La deuxième partie décrit les classes " -"concrètes :class:`EmailPolicy` et :class:`Compat32`, qui implémentent les " -"points d'entrée automatiques qui fournissent respectivement le comportement " -"standard et le comportement et les fonctionnalités rétrocompatibles." - -#: library/email.policy.rst:69 -msgid "" -":class:`Policy` instances are immutable, but they can be cloned, accepting " -"the same keyword arguments as the class constructor and returning a " -"new :class:`Policy` instance that is a copy of the original but with the " -"specified attributes values changed." -msgstr "" -"Les instances :class:`Policy` sont immuables, mais elles peuvent être " -"clonées, en acceptant les mêmes arguments nommés que le constructeur de " -"classe et en renvoyant une nouvelle instance :class:`Policy` qui est une " -"copie de l'original mais avec les valeurs d'attributs spécifiées modifiées." - -#: library/email.policy.rst:74 -msgid "" -"As an example, the following code could be used to read an email message " -"from a file on disk and pass it to the system ``sendmail`` program on a Unix " -"system:" -msgstr "" -"Par exemple, le code suivant peut être utilisé pour lire un message " -"électronique à partir d'un fichier sur le disque et le transmettre au " -"programme système ``sendmail`` sur un système Unix :" - -#: library/email.policy.rst:111 -msgid "" -"Here we are telling :class:`~email.generator.BytesGenerator` to use the RFC " -"correct line separator characters when creating the binary string to feed " -"into ``sendmail's`` ``stdin``, where the default policy would use ``\\n`` " -"line separators." -msgstr "" -"Ici, nous disons à :class:`~email.generator.BytesGenerator` d'utiliser les " -"caractères de séparation de ligne corrects de la RFC lors de la création de " -"la chaîne binaire à fournir à ``stdin`` de ``sendmail``, où la politique par " -"défaut utiliserait ``\\n`` comme séparateur de ligne." - -#: library/email.policy.rst:116 -msgid "" -"Some email package methods accept a *policy* keyword argument, allowing the " -"policy to be overridden for that method. For example, the following code " -"uses the :meth:`~email.message.Message.as_bytes` method of the *msg* object " -"from the previous example and writes the message to a file using the native " -"line separators for the platform on which it is running::" -msgstr "" -"Certaines méthodes du paquet de messagerie acceptent un argument nommé " -"*policy*, permettant à la politique d'être remplacée pour cette méthode. Par " -"exemple, le code suivant utilise la " -"méthode :meth:`~email.message.Message.as_bytes` de l'objet *msg* de " -"l'exemple précédent et écrit le message dans un fichier en utilisant les " -"séparateurs de ligne natifs de la plate-forme sur laquelle il est en cours " -"d'exécution ::" - -#: library/email.policy.rst:127 -msgid "" -"Policy objects can also be combined using the addition operator, producing a " -"policy object whose settings are a combination of the non-default values of " -"the summed objects::" -msgstr "" -"Les objets de stratégie peuvent également être combinés à l'aide de " -"l'opérateur d'addition, produisant un objet de stratégie dont les paramètres " -"sont une combinaison des objets additionnées (en ne prenant en compte que " -"les paramètres données explicitement) ::" - -#: library/email.policy.rst:135 -msgid "" -"This operation is not commutative; that is, the order in which the objects " -"are added matters. To illustrate::" -msgstr "" -"Cette opération n'est pas commutative ; c'est-à-dire que l'ordre dans lequel " -"les objets sont ajoutés est important. Pour illustrer ::" - -#: library/email.policy.rst:150 -msgid "" -"This is the :term:`abstract base class` for all policy classes. It provides " -"default implementations for a couple of trivial methods, as well as the " -"implementation of the immutability property, the :meth:`clone` method, and " -"the constructor semantics." -msgstr "" -"C'est la :term:`classe abstraite ` pour toutes les " -"classes de définition de politique. Elle fournit des implémentations par " -"défaut pour quelques méthodes triviales, ainsi que l'implémentation de la " -"propriété d'immutabilité, la méthode :meth:`clone` et la sémantique du " -"constructeur." - -#: library/email.policy.rst:155 -msgid "" -"The constructor of a policy class can be passed various keyword arguments. " -"The arguments that may be specified are any non-method properties on this " -"class, plus any additional non-method properties on the concrete class. A " -"value specified in the constructor will override the default value for the " -"corresponding attribute." -msgstr "" -"Le constructeur d'une classe de définition de politique peut recevoir divers " -"arguments nommés. Les arguments qui peuvent être spécifiés sont toutes les " -"propriétés qui ne sont pas des méthodes sur cette classe, plus toutes les " -"propriétés qui ne sont pas des méthodes supplémentaires sur la classe " -"concrète. Une valeur spécifiée dans le constructeur remplace la valeur par " -"défaut de l'attribut correspondant." - -#: library/email.policy.rst:161 -msgid "" -"This class defines the following properties, and thus values for the " -"following may be passed in the constructor of any policy class:" -msgstr "" -"Cette classe définit les propriétés suivantes, et ainsi les valeurs des " -"éléments suivants peuvent être passées dans le constructeur de n'importe " -"quelle classe de définition de politique :" - -#: library/email.policy.rst:167 -msgid "" -"The maximum length of any line in the serialized output, not counting the " -"end of line character(s). Default is 78, per :rfc:`5322`. A value of ``0`` " -"or :const:`None` indicates that no line wrapping should be done at all." -msgstr "" -"La longueur maximale de toute ligne dans la sortie sérialisée, sans compter " -"le(s) caractère(s) de fin de ligne. La valeur par défaut est 78, selon " -"la :rfc:`5322`. Une valeur de ``0`` ou :const:`None` indique qu'aucun retour " -"à la ligne ne doit être fait." - -#: library/email.policy.rst:175 -msgid "" -"The string to be used to terminate lines in serialized output. The default " -"is ``\\n`` because that's the internal end-of-line discipline used by " -"Python, though ``\\r\\n`` is required by the RFCs." -msgstr "" -"La chaîne à utiliser pour terminer les lignes dans la sortie sérialisée. La " -"valeur par défaut est ``\\n`` car c'est la définition interne de fin de " -"ligne utilisée par Python, bien que ``\\r\\n`` soit requis par les RFC." - -#: library/email.policy.rst:182 -msgid "" -"Controls the type of Content Transfer Encodings that may be or are required " -"to be used. The possible values are:" -msgstr "" -"Contrôle le type d'encodage de contenu qui peut ou doit être utilisé. Les " -"valeurs possibles sont :" - -#: library/email.policy.rst:188 -msgid "``7bit``" -msgstr "``7bit``" - -#: library/email.policy.rst:188 -msgid "" -"all data must be \"7 bit clean\" (ASCII-only). This means that where " -"necessary data will be encoded using either quoted-printable or base64 " -"encoding." -msgstr "" -"toutes les données doivent être « complétement 7 bits » (ASCII uniquement). " -"Cela signifie que si nécessaire, les données seront encodées à l'aide de " -"l'encodage *quoted-printable* ou *base64*." - -#: library/email.policy.rst:192 -msgid "``8bit``" -msgstr "``8bit``" - -#: library/email.policy.rst:192 -msgid "" -"data is not constrained to be 7 bit clean. Data in headers is still " -"required to be ASCII-only and so will be encoded (see :meth:`fold_binary` " -"and :attr:`~EmailPolicy.utf8` below for exceptions), but body parts may use " -"the ``8bit`` CTE." -msgstr "" -"les données ne sont pas contraintes d'être uniquement sur 7 bits. Les " -"données dans les en-têtes doivent toujours être en ASCII uniquement et " -"seront donc encodées (voir :meth:`fold_binary` et :attr:`~EmailPolicy.utf8` " -"ci-dessous pour les exceptions), mais les parties du corps peuvent utiliser " -"le ``8bit`` CTE." - -#: library/email.policy.rst:198 -msgid "" -"A ``cte_type`` value of ``8bit`` only works with ``BytesGenerator``, not " -"``Generator``, because strings cannot contain binary data. If a " -"``Generator`` is operating under a policy that specifies ``cte_type=8bit``, " -"it will act as if ``cte_type`` is ``7bit``." -msgstr "" -"Une valeur ``cte_type`` de ``8bit`` ne fonctionne qu'avec " -"``BytesGenerator``, et pas avec ``Generator`` car les chaînes ne peuvent " -"pas contenir de données binaires. Si un ``Generator`` fonctionne sous une " -"politique qui spécifie ``cte_type=8bit``, il agit comme si ``cte_type`` " -"était ``7bit``." - -#: library/email.policy.rst:206 -msgid "" -"If :const:`True`, any defects encountered will be raised as errors. " -"If :const:`False` (the default), defects will be passed to " -"the :meth:`register_defect` method." -msgstr "" -"Si :const:`True`, tous les défauts rencontrés sont signalés comme des " -"erreurs. Si :const:`False` (la valeur par défaut), les défauts sont passés à " -"la méthode :meth:`register_defect`." - -#: library/email.policy.rst:213 -msgid "" -"If :const:`True`, lines starting with *\"From \"* in the body are escaped by " -"putting a ``>`` in front of them. This parameter is used when the message is " -"being serialized by a generator. Default: :const:`False`." -msgstr "" -"Si :const:`True`, les lignes commençant par *\"From \"* dans le corps sont " -"échappées en mettant un ``>`` devant elles. Ce paramètre est utilisé lorsque " -"le message est sérialisé par un générateur. Par défaut, vaut :const:`False`." - -#: library/email.policy.rst:223 -msgid "" -"A factory function for constructing a new empty message object. Used by the " -"parser when building messages. Defaults to ``None``, in which " -"case :class:`~email.message.Message` is used." -msgstr "" -"Une fonction de fabrique pour construire un nouvel objet de message vide. " -"Utilisé par l'analyseur lors de la construction des messages. La valeur par " -"défaut est ``None``, :class:`~email.message.Message` est alors utilisé." - -#: library/email.policy.rst:232 -msgid "" -"If ``True`` (the default), the generator will " -"raise :exc:`~email.errors.HeaderWriteError` instead of writing a header that " -"is improperly folded or delimited, such that it would be parsed as multiple " -"headers or joined with adjacent data. Such headers can be generated by " -"custom header classes or bugs in the ``email`` module." -msgstr "" - -#: library/email.policy.rst:239 -msgid "" -"As it's a security feature, this defaults to ``True`` even in " -"the :class:`~email.policy.Compat32` policy. For backwards compatible, but " -"unsafe, behavior, it must be set to ``False`` explicitly." -msgstr "" - -#: library/email.policy.rst:247 -msgid "" -"The following :class:`Policy` method is intended to be called by code using " -"the email library to create policy instances with custom settings:" -msgstr "" -"La méthode :class:`Policy` suivante est destinée à être appelée par le code " -"à l'aide de la bibliothèque de messagerie pour créer des instances de " -"stratégie avec des paramètres personnalisés :" - -#: library/email.policy.rst:253 -msgid "" -"Return a new :class:`Policy` instance whose attributes have the same values " -"as the current instance, except where those attributes are given new values " -"by the keyword arguments." -msgstr "" -"Renvoie une nouvelle instance de :class:`Policy` dont les attributs ont les " -"mêmes valeurs que l'instance actuelle, sauf si ces attributs reçoivent de " -"nouvelles valeurs par les arguments nommés." - -#: library/email.policy.rst:258 -msgid "" -"The remaining :class:`Policy` methods are called by the email package code, " -"and are not intended to be called by an application using the email package. " -"A custom policy must implement all of these methods." -msgstr "" -"Les méthodes :class:`Policy` restantes sont appelées par le code du paquet " -"de messagerie et ne sont pas destinées à être appelées par une application " -"utilisant le paquet de messagerie. Une stratégie personnalisée doit " -"implémenter toutes ces méthodes." - -#: library/email.policy.rst:265 -#, fuzzy -msgid "" -"Handle a *defect* found on *obj*. When the email package calls this method, " -"*defect* will always be a subclass of :class:`~email.errors.MessageDefect`." -msgstr "" -"Gère un *defect* trouvé sur *obj*. Lorsque le paquet de messagerie appelle " -"cette méthode, *defect* est toujours une sous-classe " -"de :class:`~email.errors.Defect`." - -#: library/email.policy.rst:269 -msgid "" -"The default implementation checks the :attr:`raise_on_defect` flag. If it " -"is ``True``, *defect* is raised as an exception. If it is ``False`` (the " -"default), *obj* and *defect* are passed to :meth:`register_defect`." -msgstr "" -"L'implémentation par défaut vérifie le drapeau :attr:`raise_on_defect`. Si " -"c'est ``True``, *defect* est levé comme une exception. Si c'est ``False`` " -"(par défaut), *obj* et *defect* sont passés à :meth:`register_defect`." - -#: library/email.policy.rst:276 -#, fuzzy -msgid "" -"Register a *defect* on *obj*. In the email package, *defect* will always be " -"a subclass of :class:`~email.errors.MessageDefect`." -msgstr "" -"Enregistre un *defect* sur *obj*. Dans le paquet de messagerie, *defect* " -"sera toujours une sous-classe de :class:`~email.errors.Defect`." - -#: library/email.policy.rst:279 -msgid "" -"The default implementation calls the ``append`` method of the ``defects`` " -"attribute of *obj*. When the email package calls :attr:`handle_defect`, " -"*obj* will normally have a ``defects`` attribute that has an ``append`` " -"method. Custom object types used with the email package (for example, " -"custom ``Message`` objects) should also provide such an attribute, otherwise " -"defects in parsed messages will raise unexpected errors." -msgstr "" -"L'implémentation par défaut appelle la méthode ``append`` de l'attribut " -"``defects`` de *obj*. Lorsque le paquet de courrier électronique " -"appelle :attr:`handle_defect`, *obj* a normalement un attribut ``defects`` " -"qui a une méthode ``append``. Les types d'objets personnalisés utilisés avec " -"le paquet de messagerie (par exemple, les objets ``Message`` personnalisés) " -"doivent également fournir un tel attribut, sinon les défauts dans les " -"messages analysés généreront des erreurs inattendues." - -#: library/email.policy.rst:289 -msgid "Return the maximum allowed number of headers named *name*." -msgstr "Renvoie le nombre maximal autorisé d'en-têtes nommés *name*." - -#: library/email.policy.rst:291 -msgid "" -"Called when a header is added to an :class:`~email.message.EmailMessage` " -"or :class:`~email.message.Message` object. If the returned value is not " -"``0`` or ``None``, and there are already a number of headers with the name " -"*name* greater than or equal to the value returned, a :exc:`ValueError` is " -"raised." -msgstr "" -"Appelé lorsqu'un en-tête est ajouté à un " -"objet :class:`~email.message.EmailMessage` " -"ou :class:`~email.message.Message`. Si la valeur renvoyée n'est pas ``0`` ou " -"``None``, et qu'il y a déjà un certain nombre d'en-têtes avec le nom *name* " -"supérieur ou égal à la valeur renvoyée, une :exc:`ValueError` est levée." - -#: library/email.policy.rst:297 -msgid "" -"Because the default behavior of ``Message.__setitem__`` is to append the " -"value to the list of headers, it is easy to create duplicate headers without " -"realizing it. This method allows certain headers to be limited in the " -"number of instances of that header that may be added to a ``Message`` " -"programmatically. (The limit is not observed by the parser, which will " -"faithfully produce as many headers as exist in the message being parsed.)" -msgstr "" -"Parce que le comportement par défaut de ``Message.__setitem__`` est " -"d'ajouter la valeur à la liste des en-têtes, il est facile de créer des en-" -"têtes en double sans s'en rendre compte. Cette méthode permet à certains en-" -"têtes d'être limités dans le nombre d'instances de cet en-tête qui peuvent " -"être ajoutées à un ``Message`` par programme (la limite n'est pas respectée " -"par l'analyseur, qui produit fidèlement autant d'en-têtes qu'il en existe " -"dans le message analysé)." - -#: library/email.policy.rst:305 -msgid "The default implementation returns ``None`` for all header names." -msgstr "" -"L'implémentation par défaut renvoie ``None`` pour tous les noms d'en-tête." - -#: library/email.policy.rst:310 -msgid "" -"The email package calls this method with a list of strings, each string " -"ending with the line separation characters found in the source being " -"parsed. The first line includes the field header name and separator. All " -"whitespace in the source is preserved. The method should return the " -"``(name, value)`` tuple that is to be stored in the ``Message`` to represent " -"the parsed header." -msgstr "" -"Le paquet de courrier électronique appelle cette méthode avec une liste de " -"chaînes, chaque chaîne se terminant par les caractères de séparation de " -"ligne trouvés dans la source analysée. La première ligne comprend le nom de " -"l'en-tête de champ et le séparateur. Tous les espaces blancs dans la source " -"sont préservés. La méthode doit renvoyer le couple ``(name, value)`` qui " -"doit être stocké dans le ``Message`` pour représenter l'en-tête analysé." - -#: library/email.policy.rst:317 -msgid "" -"If an implementation wishes to retain compatibility with the existing email " -"package policies, *name* should be the case preserved name (all characters " -"up to the '``:``' separator), while *value* should be the unfolded value " -"(all line separator characters removed, but whitespace kept intact), " -"stripped of leading whitespace." -msgstr "" -"Si une implémentation souhaite conserver la compatibilité avec les " -"politiques de paquet de messagerie existantes, *name* doit être le nom " -"préservé de la casse (tous les caractères jusqu'au séparateur ``:``), tandis " -"que *value* doit être la valeur dépliée (c.-à-d. tous les caractères de " -"séparation de ligne supprimés, mais les espaces blancs conservés intacts), " -"dépouillés des espaces blancs de tête." - -#: library/email.policy.rst:323 -msgid "*sourcelines* may contain surrogateescaped binary data." -msgstr "" -"*sourcelines* peut contenir des données binaires échappées de substitution." - -#: library/email.policy.rst:341 library/email.policy.rst:357 -msgid "There is no default implementation" -msgstr "Il n'y a pas d'implémentation par défaut" - -#: library/email.policy.rst:330 -msgid "" -"The email package calls this method with the name and value provided by the " -"application program when the application program is modifying a ``Message`` " -"programmatically (as opposed to a ``Message`` created by a parser). The " -"method should return the ``(name, value)`` tuple that is to be stored in the " -"``Message`` to represent the header." -msgstr "" -"Le paquet de courrier électronique appelle cette méthode avec le nom et la " -"valeur fournis par le programme d'application lorsque le programme " -"d'application modifie un ``Message`` par programme (par opposition à un " -"``Message`` créé par un analyseur). La méthode doit renvoyer le couple " -"``(name, value)`` qui doit être stocké dans le ``Message`` pour représenter " -"l'en-tête." - -#: library/email.policy.rst:336 -msgid "" -"If an implementation wishes to retain compatibility with the existing email " -"package policies, the *name* and *value* should be strings or string " -"subclasses that do not change the content of the passed in arguments." -msgstr "" -"Si une implémentation souhaite conserver la compatibilité avec les " -"politiques existantes du paquet de messagerie, le *name* et la *value* " -"doivent être des chaînes ou des sous-classes de chaînes qui ne modifient pas " -"le contenu des arguments transmis." - -#: library/email.policy.rst:346 -msgid "" -"The email package calls this method with the *name* and *value* currently " -"stored in the ``Message`` when that header is requested by the application " -"program, and whatever the method returns is what is passed back to the " -"application as the value of the header being retrieved. Note that there may " -"be more than one header with the same name stored in the ``Message``; the " -"method is passed the specific name and value of the header destined to be " -"returned to the application." -msgstr "" -"Le paquet de courrier électronique appelle cette méthode avec le *name* et " -"la *value* actuellement stockés dans le ``Message`` lorsque cet en-tête est " -"demandé par le programme d'application, et tout ce que la méthode renvoie " -"est ce qui est renvoyé à l'application comme valeur de l'en-tête récupéré. " -"Notez qu'il peut y avoir plus d'un en-tête avec le même nom stocké dans le " -"``Message`` ; la méthode reçoit le nom et la valeur spécifiques de l'en-tête " -"destiné à être renvoyé à l'application." - -#: library/email.policy.rst:354 -msgid "" -"*value* may contain surrogateescaped binary data. There should be no " -"surrogateescaped binary data in the value returned by the method." -msgstr "" -"*value* peut contenir des données binaires de substitution échappées. Il ne " -"doit pas y avoir de données binaires échappées de substitution dans la " -"valeur renvoyée par la méthode." - -#: library/email.policy.rst:362 -msgid "" -"The email package calls this method with the *name* and *value* currently " -"stored in the ``Message`` for a given header. The method should return a " -"string that represents that header \"folded\" correctly (according to the " -"policy settings) by composing the *name* with the *value* and " -"inserting :attr:`linesep` characters at the appropriate places. " -"See :rfc:`5322` for a discussion of the rules for folding email headers." -msgstr "" -"Le paquet de courrier électronique appelle cette méthode avec le *name* et " -"la *value* actuellement stockés dans le ``Message`` pour un en-tête donné. " -"La méthode doit renvoyer une chaîne qui représente correctement cet en-tête " -"« plié » (selon les paramètres de la politique) en mettant en forme le " -"couple *name* - *value* et en insérant les caractères :attr:`linesep` aux " -"endroits appropriés. Voir :rfc:`5322` pour une discussion sur les règles de " -"mise en forme (« pliage » ou *folding* en anglais) des en-têtes de courrier " -"électronique." - -#: library/email.policy.rst:369 -msgid "" -"*value* may contain surrogateescaped binary data. There should be no " -"surrogateescaped binary data in the string returned by the method." -msgstr "" -"*value* peut contenir des données binaires de substitution échappées. Il ne " -"doit pas y avoir de données binaires échappées de substitution dans la " -"chaîne renvoyée par la méthode." - -#: library/email.policy.rst:375 -msgid "" -"The same as :meth:`fold`, except that the returned value should be a bytes " -"object rather than a string." -msgstr "" -"Identique à :meth:`fold`, sauf que la valeur renvoyée doit être un objet " -"bytes plutôt qu'une chaîne." - -#: library/email.policy.rst:378 -msgid "" -"*value* may contain surrogateescaped binary data. These could be converted " -"back into binary data in the returned bytes object." -msgstr "" -"*value* peut contenir des données binaires de substitution échappées. Celles-" -"ci pourraient être reconverties en données binaires dans l'objet bytes " -"renvoyé." - -#: library/email.policy.rst:385 -msgid "" -"This concrete :class:`Policy` provides behavior that is intended to be fully " -"compliant with the current email RFCs. These include (but are not limited " -"to) :rfc:`5322`, :rfc:`2047`, and the current MIME RFCs." -msgstr "" -"Cette :class:`Policy` concrète fournit un comportement destiné à être " -"entièrement conforme aux RFC de messagerie actuelles. Ce qui inclut (mais " -"n'est pas limité à) la :rfc:`5322`, la :rfc:`2047` et les RFC MIME actuelles." - -#: library/email.policy.rst:389 -msgid "" -"This policy adds new header parsing and folding algorithms. Instead of " -"simple strings, headers are ``str`` subclasses with attributes that depend " -"on the type of the field. The parsing and folding algorithm fully " -"implement :rfc:`2047` and :rfc:`5322`." -msgstr "" -"Cette politique ajoute de nouveaux algorithmes d'analyse d'en-tête et de " -"mise en forme (« pliage »). Au lieu de simples chaînes, les en-têtes sont " -"des sous-classes ``str`` avec des attributs qui dépendent du type du champ. " -"L'algorithme d'analyse et de pliage implémente entièrement la :rfc:`2047` et " -"la :rfc:`5322`." - -#: library/email.policy.rst:394 -msgid "" -"The default value for the :attr:`~email.policy.Policy.message_factory` " -"attribute is :class:`~email.message.EmailMessage`." -msgstr "" -"La valeur par défaut de " -"l'attribut :attr:`~email.policy.Policy.message_factory` " -"est :class:`~email.message.EmailMessage`." - -#: library/email.policy.rst:397 -msgid "" -"In addition to the settable attributes listed above that apply to all " -"policies, this policy adds the following additional attributes:" -msgstr "" -"Outre les attributs définissables répertoriés ci-dessus qui s'appliquent à " -"toutes les règles, cette règle ajoute les attributs supplémentaires " -"suivants :" - -#: library/email.policy.rst:400 -msgid "[1]_" -msgstr "[1]_" - -#: library/email.policy.rst:405 -#, fuzzy -msgid "" -"If ``False``, follow :rfc:`5322`, supporting non-ASCII characters in headers " -"by encoding them as :rfc:`2047` \"encoded words\". If ``True``, " -"follow :rfc:`6532` and use ``utf-8`` encoding for headers. Messages " -"formatted in this way may be passed to SMTP servers that support the " -"``SMTPUTF8`` extension (:rfc:`6531`)." -msgstr "" -"Si c'est ``False``, suit la :rfc:`5322`, en prenant en charge les caractères " -"non-ASCII dans les en-têtes en les encodant comme des « mots encodés ». Si " -"c'est ``True``, suit la :rfc:`6532` et utilise l'encodage ``utf-8`` pour les " -"en-têtes. Les messages formatés de cette manière peuvent être transmis aux " -"serveurs SMTP qui gèrent l'extension ``SMTPUTF8`` (:rfc:`6531`)." - -#: library/email.policy.rst:411 -msgid "" -"When ``False``, the generator will " -"raise :exc:`~email.errors.HeaderWriteError` if any header includes non-ASCII " -"characters in a context where :rfc:`2047` does not permit encoded words. " -"This particularly applies to mailboxes (\"addr-spec\") with non-ASCII " -"characters, which can be created via :class:`~email.headerregistry.Address`. " -"To use a mailbox with a non-ASCII domain name with ``utf8=False``, first " -"encode the domain using the third-party :pypi:`idna` or :pypi:`uts46` module " -"or with :mod:`encodings.idna`. It is not possible to use a non-ASCII " -"username (\"local-part\") in a mailbox when ``utf8=False``." -msgstr "" - -#: library/email.policy.rst:422 -msgid "" -"Can trigger the raising of :exc:`~email.errors.HeaderWriteError`. (Earlier " -"versions incorrectly applied :rfc:`2047` in certain contexts, mostly notably " -"in addr-specs.)" -msgstr "" - -#: library/email.policy.rst:429 -msgid "" -"If the value for a header in the ``Message`` object originated from " -"a :mod:`~email.parser` (as opposed to being set by a program), this " -"attribute indicates whether or not a generator should refold that value when " -"transforming the message back into serialized form. The possible values are:" -msgstr "" -"Si la valeur d'un en-tête dans l'objet ``Message`` provient " -"d'un :mod:`~email.parser` (au lieu d'être définie par un programme), cet " -"attribut indique si un générateur doit ou non remettre en forme cette valeur " -"lorsqu'il retransforme le message sous forme sérialisée. Les valeurs " -"possibles sont :" - -#: library/email.policy.rst:436 -msgid "``none``" -msgstr "``none``" - -#: library/email.policy.rst:436 -msgid "all source values use original folding" -msgstr "" -"toutes les valeurs sources utilisent la mise en forme (*folding* en anglais) " -"d'origine" - -#: library/email.policy.rst:438 -msgid "``long``" -msgstr "``long``" - -#: library/email.policy.rst:438 -msgid "" -"source values that have any line that is longer than ``max_line_length`` " -"will be refolded" -msgstr "" -"les valeurs sources dont une ligne est plus longue que ``max_line_length`` " -"sont remises en forme" - -#: library/email.policy.rst:441 -msgid "``all``" -msgstr "``all``" - -#: library/email.policy.rst:441 -msgid "all values are refolded." -msgstr "toutes les valeurs sont remises en forme." - -#: library/email.policy.rst:444 -msgid "The default is ``long``." -msgstr "La valeur par défaut est ``long``." - -#: library/email.policy.rst:449 -msgid "" -"A callable that takes two arguments, ``name`` and ``value``, where ``name`` " -"is a header field name and ``value`` is an unfolded header field value, and " -"returns a string subclass that represents that header. A default " -"``header_factory`` (see :mod:`~email.headerregistry`) is provided that " -"supports custom parsing for the various address and date :RFC:`5322` header " -"field types, and the major MIME header field stypes. Support for additional " -"custom parsing will be added in the future." -msgstr "" -"Appelable qui prend deux arguments, ``name`` et ``value``, où ``name`` est " -"un nom de champ d'en-tête et ``value`` est une valeur de champ d'en-tête " -"dépliée (c-à-d. sans retours à la ligne de mise en forme), et renvoie une " -"sous-classe de chaîne qui représente cet en-tête. Un ``header_factory`` par " -"défaut (voir :mod:`~email.headerregistry`) est fourni qui prend en charge " -"l'analyse personnalisée pour les divers types de champs d'en-tête d'adresse " -"et de date :RFC:`5322`, et les principaux types de champs d'en-tête MIME. La " -"prise en charge d'une analyse personnalisée supplémentaire sera ajoutée à " -"l'avenir." - -#: library/email.policy.rst:460 -msgid "" -"An object with at least two methods: get_content and set_content. When " -"the :meth:`~email.message.EmailMessage.get_content` " -"or :meth:`~email.message.EmailMessage.set_content` method of " -"an :class:`~email.message.EmailMessage` object is called, it calls the " -"corresponding method of this object, passing it the message object as its " -"first argument, and any arguments or keywords that were passed to it as " -"additional arguments. By default ``content_manager`` is set " -"to :data:`~email.contentmanager.raw_data_manager`." -msgstr "" -"Objet avec au moins deux méthodes : *get_content* et *set_content*. Lorsque " -"la méthode :meth:`~email.message.EmailMessage.get_content` " -"ou :meth:`~email.message.EmailMessage.set_content` d'un " -"objet :class:`~email.message.EmailMessage` est appelée, elle appelle la " -"méthode correspondante de cet objet, en lui transmettant l'objet message " -"comme premier argument, et tous les arguments positionnels ou nommés qui lui " -"ont été transmis comme arguments supplémentaires. Par défaut, " -"``content_manager`` est défini " -"sur :data:`~email.contentmanager.raw_data_manager`." - -#: library/email.policy.rst:630 -msgid "" -"The class provides the following concrete implementations of the abstract " -"methods of :class:`Policy`:" -msgstr "" -"La classe fournit les implémentations concrètes suivantes des méthodes " -"abstraites de :class:`Policy` :" - -#: library/email.policy.rst:478 -msgid "" -"Returns the value of the :attr:`~email.headerregistry.BaseHeader.max_count` " -"attribute of the specialized class used to represent the header with the " -"given name." -msgstr "" -"Renvoie la valeur de " -"l'attribut :attr:`~email.headerregistry.BaseHeader.max_count` de la classe " -"spécialisée utilisée pour représenter l'en-tête avec le nom donné." - -#: library/email.policy.rst:636 -msgid "" -"The name is parsed as everything up to the '``:``' and returned unmodified. " -"The value is determined by stripping leading whitespace off the remainder of " -"the first line, joining all subsequent lines together, and stripping any " -"trailing carriage return or linefeed characters." -msgstr "" -"Le nom est analysé comme le reste jusqu'au ``:`` et renvoyé sans " -"modification. La valeur est déterminée en supprimant les espaces blancs de " -"début du reste de la première ligne, en joignant toutes les lignes suivantes " -"et en supprimant tous les caractères de retour chariot ou de saut de ligne " -"de fin." - -#: library/email.policy.rst:494 -msgid "" -"The name is returned unchanged. If the input value has a ``name`` attribute " -"and it matches *name* ignoring case, the value is returned unchanged. " -"Otherwise the *name* and *value* are passed to ``header_factory``, and the " -"resulting header object is returned as the value. In this case a " -"``ValueError`` is raised if the input value contains CR or LF characters." -msgstr "" -"Le nom est renvoyé tel quel. Si la valeur d'entrée a un attribut ``name`` et " -"qu'elle correspond à *name* sans tenir compte de la casse, la valeur est " -"renvoyée inchangée. Sinon, le *name* et la *value* sont passés à " -"``header_factory``, et l'objet d'en-tête résultant est renvoyé comme valeur. " -"Dans ce cas, une ``ValueError`` est levée si la valeur d'entrée contient des " -"caractères CR ou LF." - -#: library/email.policy.rst:504 -msgid "" -"If the value has a ``name`` attribute, it is returned to unmodified. " -"Otherwise the *name*, and the *value* with any CR or LF characters removed, " -"are passed to the ``header_factory``, and the resulting header object is " -"returned. Any surrogateescaped bytes get turned into the unicode unknown-" -"character glyph." -msgstr "" -"Si la valeur a un attribut ``name``, elle est renvoyée sans modification. " -"Sinon, le *name* et la *value* sans les caractères CR ou LF sont passés à " -"``header_factory``, et l'objet d'en-tête résultant est renvoyé. Tous les " -"octets échappés de substitution sont transformés en glyphe Unicode de " -"caractère inconnu." - -#: library/email.policy.rst:513 -msgid "" -"Header folding is controlled by the :attr:`refold_source` policy setting. A " -"value is considered to be a 'source value' if and only if it does not have a " -"``name`` attribute (having a ``name`` attribute means it is a header object " -"of some sort). If a source value needs to be refolded according to the " -"policy, it is converted into a header object by passing the *name* and the " -"*value* with any CR and LF characters removed to the ``header_factory``. " -"Folding of a header object is done by calling its ``fold`` method with the " -"current policy." -msgstr "" -"La mise en forme d'en-tête est contrôlée par le paramètre de " -"politique :attr:`refold_source`. Une valeur est considérée comme une " -"« valeur source » si et seulement si elle n'a pas d'attribut ``name`` (avoir " -"un attribut ``name`` signifie qu'il s'agit d'un objet d'en-tête quelconque). " -"Si une valeur source doit être mise en forme conformément à la politique, " -"elle est convertie en un objet d'en-tête en passant le *name* et la *value* " -"avec tous les caractères CR et LF supprimés à ``header_factory``. La mise en " -"forme multi-lignes d'un objet d'en-tête (« pliage » ou *folding* en anglais) " -"se fait en appelant sa méthode ``fold`` avec la politique actuelle." - -#: library/email.policy.rst:522 -msgid "" -"Source values are split into lines using :meth:`~str.splitlines`. If the " -"value is not to be refolded, the lines are rejoined using the ``linesep`` " -"from the policy and returned. The exception is lines containing non-ascii " -"binary data. In that case the value is refolded regardless of the " -"``refold_source`` setting, which causes the binary data to be CTE encoded " -"using the ``unknown-8bit`` charset." -msgstr "" -"Les valeurs sources sont divisées en lignes en " -"utilisant :meth:`~str.splitlines`. Si la valeur ne doit pas être remise en " -"forme, les lignes sont jointes en utilisant le caractère ``linesep`` de la " -"politique et renvoyées. L'exception concerne les lignes contenant des " -"données binaires non ASCII. Dans ce cas, la valeur est remise en forme quel " -"que soit le paramètre ``refold_source``, ce qui entraîne le codage CTE des " -"données binaires à l'aide du jeu de caractères ``unknown-8bit``." - -#: library/email.policy.rst:532 -msgid "" -"The same as :meth:`fold` if :attr:`~Policy.cte_type` is ``7bit``, except " -"that the returned value is bytes." -msgstr "" -"Identique à :meth:`fold` si :attr:`~Policy.cte_type` vaut ``7bit``, sauf que " -"la valeur renvoyée est de type *bytes*." - -#: library/email.policy.rst:535 -msgid "" -"If :attr:`~Policy.cte_type` is ``8bit``, non-ASCII binary data is converted " -"back into bytes. Headers with binary data are not refolded, regardless of " -"the ``refold_header`` setting, since there is no way to know whether the " -"binary data consists of single byte characters or multibyte characters." -msgstr "" -"Si :attr:`~Policy.cte_type` est ``8bit``, les données binaires non-ASCII " -"sont reconverties en octets. Les en-têtes contenant des données binaires ne " -"sont pas remises en forme, quel que soit le paramètre ``refold_header``, " -"puisqu'il n'y a aucun moyen de savoir si les données binaires sont " -"constituées de caractères à un seul octet ou de caractères à plusieurs " -"octets." - -#: library/email.policy.rst:542 -msgid "" -"The following instances of :class:`EmailPolicy` provide defaults suitable " -"for specific application domains. Note that in the future the behavior of " -"these instances (in particular the ``HTTP`` instance) may be adjusted to " -"conform even more closely to the RFCs relevant to their domains." -msgstr "" -"Les instances suivantes de :class:`EmailPolicy` fournissent des valeurs par " -"défaut adaptées à des domaines d'application spécifiques. Notez qu'à " -"l'avenir, le comportement de ces instances (en particulier l'instance " -"``HTTP``) pourra être ajusté pour se conformer encore plus étroitement aux " -"RFC relatives à leurs domaines." - -#: library/email.policy.rst:550 -msgid "" -"An instance of ``EmailPolicy`` with all defaults unchanged. This policy " -"uses the standard Python ``\\n`` line endings rather than the RFC-correct " -"``\\r\\n``." -msgstr "" -"Une instance de ``EmailPolicy`` avec toutes les valeurs par défaut " -"inchangées. Cette politique utilise les fins de ligne standard Python " -"``\\n`` plutôt que le ``\\r\\n`` conforme à la RFC." - -#: library/email.policy.rst:557 -msgid "" -"Suitable for serializing messages in conformance with the email RFCs. Like " -"``default``, but with ``linesep`` set to ``\\r\\n``, which is RFC compliant." -msgstr "" -"Convient pour la sérialisation des messages conformément aux RFC des e-" -"mails. Comme ``default``, mais avec ``linesep`` défini sur ``\\r\\n``, ce " -"qui est conforme à la RFC." - -#: library/email.policy.rst:564 -msgid "" -"The same as ``SMTP`` except that :attr:`~EmailPolicy.utf8` is ``True``. " -"Useful for serializing messages to a message store without using encoded " -"words in the headers. Should only be used for SMTP transmission if the " -"sender or recipient addresses have non-ASCII characters " -"(the :meth:`smtplib.SMTP.send_message` method handles this automatically)." -msgstr "" -"Identique à ``SMTP`` sauf que :attr:`~EmailPolicy.utf8` vaut ``True``. Utile " -"pour sérialiser des messages dans une banque de messages sans utiliser de " -"mots encodés dans les en-têtes. Ne doit être utilisée pour la transmission " -"SMTP que si les adresses de l'expéditeur ou du destinataire contiennent des " -"caractères non ASCII (la méthode :meth:`smtplib.SMTP.send_message` gère cela " -"automatiquement)." - -#: library/email.policy.rst:573 -msgid "" -"Suitable for serializing headers with for use in HTTP traffic. Like " -"``SMTP`` except that ``max_line_length`` is set to ``None`` (unlimited)." -msgstr "" -"Convient pour la sérialisation des en-têtes à utiliser dans le trafic HTTP. " -"Comme ``SMTP`` sauf que ``max_line_length`` est défini sur ``None`` " -"(illimité)." - -#: library/email.policy.rst:579 -msgid "" -"Convenience instance. The same as ``default`` except that " -"``raise_on_defect`` is set to ``True``. This allows any policy to be made " -"strict by writing::" -msgstr "" -"Exemple de commodité. Identique à ``default`` sauf que ``raise_on_defect`` " -"est défini sur ``True``. Cela permet de rendre stricte toute politique en " -"écrivant ::" - -#: library/email.policy.rst:586 -msgid "" -"With all of these :class:`EmailPolicies <.EmailPolicy>`, the effective API " -"of the email package is changed from the Python 3.2 API in the following " -"ways:" -msgstr "" -"Avec toutes ces :class:`EmailPolicies <.EmailPolicy>`, l'API effective du " -"paquet de messagerie est modifiée par rapport à l'API Python 3.2 de la " -"manière suivante :" - -#: library/email.policy.rst:589 -msgid "" -"Setting a header on a :class:`~email.message.Message` results in that header " -"being parsed and a header object created." -msgstr "" -"Définir un en-tête sur un :class:`~email.message.Message` entraîne l'analyse " -"de cet en-tête et la création d'un objet d'en-tête." - -#: library/email.policy.rst:592 -msgid "" -"Fetching a header value from a :class:`~email.message.Message` results in " -"that header being parsed and a header object created and returned." -msgstr "" -"La récupération d'une valeur d'en-tête à partir " -"d'un :class:`~email.message.Message` entraîne l'analyse de cet en-tête ainsi " -"que la création et le renvoi d'un objet d'en-tête." - -#: library/email.policy.rst:596 -msgid "" -"Any header object, or any header that is refolded due to the policy " -"settings, is folded using an algorithm that fully implements the RFC folding " -"algorithms, including knowing where encoded words are required and allowed." -msgstr "" -"Tout objet d'en-tête, ou tout en-tête qui est remis en forme en raison des " -"paramètres de politique, est mis en forme à l'aide d'un algorithme qui " -"implémente entièrement les algorithmes de pliage de la RFC, notamment en " -"sachant où les mots encodés sont requis et autorisés." - -#: library/email.policy.rst:601 -msgid "" -"From the application view, this means that any header obtained through " -"the :class:`~email.message.EmailMessage` is a header object with extra " -"attributes, whose string value is the fully decoded unicode value of the " -"header. Likewise, a header may be assigned a new value, or a new header " -"created, using a unicode string, and the policy will take care of converting " -"the unicode string into the correct RFC encoded form." -msgstr "" -"Du point de vue de l'application, cela signifie que tout en-tête obtenu " -"via :class:`~email.message.EmailMessage` est un objet d'en-tête avec des " -"attributs supplémentaires, dont la valeur de chaîne est la valeur Unicode " -"entièrement décodée de l'en-tête. De même, un en-tête peut se voir attribuer " -"une nouvelle valeur, ou un nouvel en-tête créé, à l'aide d'une chaîne " -"Unicode, et la politique se chargera de convertir la chaîne Unicode dans la " -"forme encodée RFC correcte." - -#: library/email.policy.rst:608 -msgid "" -"The header objects and their attributes are described " -"in :mod:`~email.headerregistry`." -msgstr "" -"Les objets d'en-tête et leurs attributs sont décrits " -"dans :mod:`~email.headerregistry`." - -#: library/email.policy.rst:615 -#, fuzzy -msgid "" -"This concrete :class:`Policy` is the backward compatibility policy. It " -"replicates the behavior of the email package in Python 3.2. The :mod:`!" -"policy` module also defines an instance of this class, :const:`compat32`, " -"that is used as the default policy. Thus the default behavior of the email " -"package is to maintain compatibility with Python 3.2." -msgstr "" -"Cette :class:`Policy` concrète est la politique de rétrocompatibilité. Elle " -"reproduit le comportement du paquet de courrier électronique dans Python " -"3.2. Le module :mod:`~email.policy` définit également une instance de cette " -"classe, :const:`compat32`, qui est utilisée comme politique par défaut. " -"Ainsi, le comportement par défaut du paquet de messagerie est de maintenir " -"la compatibilité avec Python 3.2." - -#: library/email.policy.rst:621 -msgid "" -"The following attributes have values that are different from " -"the :class:`Policy` default:" -msgstr "" -"Les attributs suivants ont des valeurs différentes de la valeur par défaut " -"de :class:`Policy` :" - -#: library/email.policy.rst:627 -msgid "The default is ``True``." -msgstr "La valeur par défaut est ``True``." - -#: library/email.policy.rst:644 -msgid "The name and value are returned unmodified." -msgstr "Le nom et la valeur sont renvoyés sans modification." - -#: library/email.policy.rst:649 -msgid "" -"If the value contains binary data, it is converted into " -"a :class:`~email.header.Header` object using the ``unknown-8bit`` charset. " -"Otherwise it is returned unmodified." -msgstr "" -"Si la valeur contient des données binaires, elle est convertie en un " -"objet :class:`~email.header.Header` en utilisant le jeu de caractères " -"``unknown-8bit``. Sinon, elle est renvoyée sans modification." - -#: library/email.policy.rst:656 -msgid "" -"Headers are folded using the :class:`~email.header.Header` folding " -"algorithm, which preserves existing line breaks in the value, and wraps each " -"resulting line to the ``max_line_length``. Non-ASCII binary data are CTE " -"encoded using the ``unknown-8bit`` charset." -msgstr "" -"Les en-têtes sont mis en forme à l'aide de l'algorithme de " -"pliage :class:`~email.header.Header`, qui préserve les sauts de ligne " -"existants dans la valeur et encapsule chaque ligne résultante dans la " -"``max_line_length``. Les données binaires non-ASCII sont codées en CTE à " -"l'aide du jeu de caractères ``unknown-8bit``." - -#: library/email.policy.rst:664 -msgid "" -"Headers are folded using the :class:`~email.header.Header` folding " -"algorithm, which preserves existing line breaks in the value, and wraps each " -"resulting line to the ``max_line_length``. If ``cte_type`` is ``7bit``, non-" -"ascii binary data is CTE encoded using the ``unknown-8bit`` charset. " -"Otherwise the original source header is used, with its existing line breaks " -"and any (RFC invalid) binary data it may contain." -msgstr "" -"Les en-têtes sont mis en forme à l'aide de l'algorithme de " -"pliage :class:`~email.header.Header`, qui préserve les sauts de ligne " -"existants dans la valeur et encapsule chaque ligne résultante dans la " -"``max_line_length``. Si ``cte_type`` est ``7bit``, les données binaires non-" -"ASCII sont encodées en CTE en utilisant le jeu de caractères " -"``unknown-8bit``. Sinon, l'en-tête source d'origine est utilisé, avec ses " -"sauts de ligne existants et toutes les données binaires (non conformes à la " -"RFC) qu'il peut contenir." - -#: library/email.policy.rst:674 -msgid "" -"An instance of :class:`Compat32`, providing backward compatibility with the " -"behavior of the email package in Python 3.2." -msgstr "" -"Instance de :class:`Compat32`, offrant une rétrocompatibilité avec le " -"comportement du paquet de messagerie dans Python 3.2." - -#: library/email.policy.rst:679 -msgid "" -"The :const:`compat32` policy should not be used as a policy " -"for :class:`~email.message.EmailMessage` objects, and should only be used to " -"serialize messages that were created using the :const:`compat32` policy." -msgstr "" - -#: library/email.policy.rst:686 -msgid "Footnotes" -msgstr "Notes" - -#: library/email.policy.rst:687 -msgid "" -"Originally added in 3.3 as a :term:`provisional feature `." -msgstr "" -"Initialement ajouté dans 3.3 en tant que :term:`paquet provisoire " -"`." - -# suit un : -#~ msgid "The *mangle_from_* parameter." -#~ msgstr "le paramètre *mangle_from_*." diff --git a/library/email.utils.po b/library/email.utils.po deleted file mode 100644 index 32b7458f3c..0000000000 --- a/library/email.utils.po +++ /dev/null @@ -1,390 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-03-15 22:58+0100\n" -"Last-Translator: Christophe Nanteuil \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 3.2.2\n" - -#: library/email.utils.rst:2 -#, fuzzy -msgid ":mod:`!email.utils`: Miscellaneous utilities" -msgstr ":mod:`email.utils` : utilitaires divers" - -#: library/email.utils.rst:7 -msgid "**Source code:** :source:`Lib/email/utils.py`" -msgstr "**Code source :** :source:`Lib/email/utils.py`" - -#: library/email.utils.rst:11 -#, fuzzy -msgid "" -"There are a couple of useful utilities provided in the :mod:`!email.utils` " -"module:" -msgstr "" -"Il y a quelques utilitaires utiles fournis dans le " -"module :mod:`email.utils` :" - -#: library/email.utils.rst:16 -#, fuzzy -msgid "" -"Return local time as an aware datetime object. If called without arguments, " -"return current time. Otherwise *dt* argument should be " -"a :class:`~datetime.datetime` instance, and it is converted to the local " -"time zone according to the system time zone database. If *dt* is naive " -"(that is, ``dt.tzinfo`` is ``None``), it is assumed to be in local time." -msgstr "" -"Renvoie l'heure locale en tant qu'objet *datetime* avisé. S'il est appelé " -"sans arguments, renvoie l'heure actuelle. Sinon, l'argument *dt* doit être " -"une instance :class:`~datetime.datetime`, et il est converti dans le fuseau " -"horaire local en fonction de la base de données des fuseaux horaires du " -"système. Si *dt* est naïf (c'est-à-dire que ``dt.tzinfo`` vaut ``None``), il " -"est supposé être en heure locale. Dans ce cas, une valeur positive ou nulle " -"pour *isdst* amène ``localtime`` à supposer initialement que l'heure d'été " -"est ou n'est pas (respectivement) en vigueur pour l'heure spécifiée. Une " -"valeur négative pour *isdst* fait que ``localtime`` tente de deviner si " -"l'heure d'été est en vigueur pour l'heure spécifiée." - -#: library/email.utils.rst:24 -msgid "The *isdst* parameter." -msgstr "" - -#: library/email.utils.rst:29 -msgid "" -"Returns a string suitable for an :rfc:`2822`\\ " -"-compliant :mailheader:`Message-ID` header. Optional *idstring* if given, " -"is a string used to strengthen the uniqueness of the message id. Optional " -"*domain* if given provides the portion of the msgid after the '@'. The " -"default is the local hostname. It is not normally necessary to override " -"this default, but may be useful certain cases, such as a constructing " -"distributed system that uses a consistent domain name across multiple hosts." -msgstr "" -"Renvoie une chaîne adaptée à un en-tête :mailheader:`Message-ID` " -"compatible :rfc:`2822`. *idstring*, s'il est fourni, est une chaîne utilisée " -"pour renforcer l'unicité de l'identifiant du message. Le *domain* " -"facultatif, s'il est fourni, fournit la partie du *msgid* après le '@'. La " -"valeur par défaut est le nom d'hôte local. Il n'est normalement pas " -"nécessaire de remplacer cette valeur par défaut, mais cela peut être utile " -"dans certains cas, comme la construction d'un système distribué qui utilise " -"un nom de domaine cohérent sur plusieurs hôtes." - -# suit un : -#: library/email.utils.rst:37 -msgid "Added the *domain* keyword." -msgstr "ajout du mot-clé *domaine*." - -#: library/email.utils.rst:41 -msgid "" -"The remaining functions are part of the legacy (``Compat32``) email API. " -"There is no need to directly use these with the new API, since the parsing " -"and formatting they provide is done automatically by the header parsing " -"machinery of the new API." -msgstr "" -"Les fonctions restantes font partie de l'ancienne API de messagerie " -"(``Compat32``). Il n'est pas nécessaire de les utiliser directement avec la " -"nouvelle API, car l'analyse et le formatage qu'elles fournissent sont " -"effectués automatiquement par le mécanisme d'analyse d'en-tête de la " -"nouvelle API." - -#: library/email.utils.rst:49 -msgid "" -"Return a new string with backslashes in *str* replaced by two backslashes, " -"and double quotes replaced by backslash-double quote." -msgstr "" -"Renvoie une nouvelle chaîne avec les barres obliques inverses (*backslash*) " -"dans *str* remplacées par deux barres obliques inverses et les guillemets " -"doubles remplacés par des guillemets doubles échappés par une barre oblique " -"inverse." - -#: library/email.utils.rst:55 -msgid "" -"Return a new string which is an *unquoted* version of *str*. If *str* ends " -"and begins with double quotes, they are stripped off. Likewise if *str* " -"ends and begins with angle brackets, they are stripped off." -msgstr "" -"Renvoie une nouvelle chaîne qui est une version *sans guillemets* de *str*. " -"Si *str* se termine et commence par des guillemets doubles, ils sont " -"supprimés. De même, si *str* est encadrée par des chevrons mathématiques, " -"ils sont supprimés." - -#: library/email.utils.rst:62 -msgid "" -"Parse address -- which should be the value of some address-containing field " -"such as :mailheader:`To` or :mailheader:`Cc` -- into its constituent " -"*realname* and *email address* parts. Returns a tuple of that information, " -"unless the parse fails, in which case a 2-tuple of ``('', '')`` is returned." -msgstr "" -"Analyse l'adresse – qui devrait être la valeur d'un champ contenant une " -"adresse tel que :mailheader:`To` ou :mailheader:`Cc` – dans ses parties " -"constituantes *realname* et *email address*. Renvoie un *n*-uplet de cette " -"information, sauf si l'analyse échoue, alors un couple ``('', '')`` est " -"renvoyé." - -#: library/email.utils.rst:95 -msgid "" -"If *strict* is true, use a strict parser which rejects malformed inputs." -msgstr "" - -#: library/email.utils.rst:107 -msgid "Add *strict* optional parameter and reject malformed inputs by default." -msgstr "" - -#: library/email.utils.rst:75 -msgid "" -"The inverse of :meth:`parseaddr`, this takes a 2-tuple of the form " -"``(realname, email_address)`` and returns the string value suitable for " -"a :mailheader:`To` or :mailheader:`Cc` header. If the first element of " -"*pair* is false, then the second element is returned unmodified." -msgstr "" -"L'inverse de :meth:`parseaddr`, elle prend un couple de la forme " -"``(realname, email_address)`` et renvoie la valeur de chaîne appropriée pour " -"un en-tête :mailheader:`To` ou :mailheader:`Cc`. Si le premier élément de " -"*pair* s'évalue à faux, alors le deuxième élément est renvoyé sans " -"modification." - -#: library/email.utils.rst:80 -msgid "" -"Optional *charset* is the character set that will be used in the :rfc:`2047` " -"encoding of the ``realname`` if the ``realname`` contains non-ASCII " -"characters. Can be an instance of :class:`str` or " -"a :class:`~email.charset.Charset`. Defaults to ``utf-8``." -msgstr "" -"Le *charset* optionnel est le jeu de caractères qui est utilisé dans " -"l'encodage :rfc:`2047` du ``realname`` si le ``realname`` contient des " -"caractères non-ASCII. Cela peut être une instance de :class:`str` ou " -"un :class:`~email.charset.Charset`. La valeur par défaut est ``utf-8``." - -# suit un : -#: library/email.utils.rst:85 -msgid "Added the *charset* option." -msgstr "ajout de l'option *charset*." - -#: library/email.utils.rst:91 -#, fuzzy -msgid "" -"This method returns a list of 2-tuples of the form returned by " -"``parseaddr()``. *fieldvalues* is a sequence of header field values as might " -"be returned by :meth:`Message.get_all `." -msgstr "" -"Cette méthode renvoie une liste de couples de la forme renvoyée par " -"``parseaddr()``. *fieldvalues* est une séquence de valeurs de champ d'en-" -"tête pouvant être renvoyée par :meth:`Message.get_all " -"`. Voici un exemple simple qui récupère tous " -"les destinataires d'un message ::" - -#: library/email.utils.rst:97 -msgid "Here's a simple example that gets all the recipients of a message::" -msgstr "" - -#: library/email.utils.rst:113 -msgid "" -"Attempts to parse a date according to the rules in :rfc:`2822`. however, " -"some mailers don't follow that format as specified, so :func:`parsedate` " -"tries to guess correctly in such cases. *date* is a string containing " -"an :rfc:`2822` date, such as ``\"Mon, 20 Nov 1995 19:12:08 -0500\"``. If " -"it succeeds in parsing the date, :func:`parsedate` returns a 9-tuple that " -"can be passed directly to :func:`time.mktime`; otherwise ``None`` will be " -"returned. Note that indexes 6, 7, and 8 of the result tuple are not usable." -msgstr "" -"Tente d'analyser une date selon les règles de la :rfc:`2822`. Cependant, " -"certains expéditeurs ne suivent pas ce format comme spécifié, " -"donc :func:`parsedate` fait son possible dans de tels cas. *date* est une " -"chaîne contenant une date :rfc:`2822`, telle que ``\"Mon, 20 Nov 1995 " -"19:12:08 -0500\"``. Si elle réussit à analyser la date, :func:`parsedate` " -"renvoie un 9-uplet qui peut être passé directement à :func:`time.mktime` ; " -"sinon ``None`` est renvoyé. Notez que les indices 6, 7 et 8 du *n*-uplet " -"résultat ne sont pas utilisables." - -#: library/email.utils.rst:124 -msgid "" -"Performs the same function as :func:`parsedate`, but returns either ``None`` " -"or a 10-tuple; the first 9 elements make up a tuple that can be passed " -"directly to :func:`time.mktime`, and the tenth is the offset of the date's " -"timezone from UTC (which is the official term for Greenwich Mean Time) " -"[#]_. If the input string has no timezone, the last element of the tuple " -"returned is ``0``, which represents UTC. Note that indexes 6, 7, and 8 of " -"the result tuple are not usable." -msgstr "" -"Effectue la même fonction que :func:`parsedate`, mais renvoie soit ``None`` " -"ou un 10-uplet ; les 9 premiers éléments constituent un *n*-uplet qui peut " -"être passé directement à :func:`time.mktime`, et le dixième est le décalage " -"du fuseau horaire de la date par rapport à UTC (qui est le terme officiel " -"pour *Greenwich Mean Time*) [#]_. Si la chaîne d'entrée n'a pas de fuseau " -"horaire, le dernier élément du *n*-uplet renvoyé est ``0``, qui représente " -"l'UTC. Notez que les indices 6, 7 et 8 du *n*-uplet résultat ne sont pas " -"utilisables." - -#: library/email.utils.rst:134 -msgid "" -"The inverse of :func:`format_datetime`. Performs the same function " -"as :func:`parsedate`, but on success returns a :mod:`~datetime.datetime`; " -"otherwise ``ValueError`` is raised if *date* contains an invalid value such " -"as an hour greater than 23 or a timezone offset not between -24 and 24 " -"hours. If the input date has a timezone of ``-0000``, the ``datetime`` will " -"be a naive ``datetime``, and if the date is conforming to the RFCs it will " -"represent a time in UTC but with no indication of the actual source timezone " -"of the message the date comes from. If the input date has any other valid " -"timezone offset, the ``datetime`` will be an aware ``datetime`` with the " -"corresponding a :class:`~datetime.timezone` :class:`~datetime.tzinfo`." -msgstr "" -"L'inverse de :func:`format_datetime`. Effectue la même fonction " -"que :func:`parsedate` mais, en cas de succès, renvoie " -"un :mod:`~datetime.datetime` ; sinon une ``ValueError`` est levée si *date* " -"contient une valeur invalide telle qu'une heure supérieure à 23 ou un " -"décalage de fuseau horaire non compris entre −24 et 24 heures. Si la date " -"d'entrée a un fuseau horaire de ``-0000``, le ``datetime`` sera un " -"``datetime`` naïf, et si la date est conforme aux RFC, elle représentera une " -"heure en UTC mais sans indication du fuseau horaire source réel du message " -"d'où provient la date. Si la date d'entrée a un autre décalage de fuseau " -"horaire valide, le ``datetime`` sera un ``datetime`` avisé avec " -"le :class:`~datetime.timezone` :class:`~datetime.tzinfo` adéquat." - -#: library/email.utils.rst:150 -msgid "" -"Turn a 10-tuple as returned by :func:`parsedate_tz` into a UTC timestamp " -"(seconds since the Epoch). If the timezone item in the tuple is ``None``, " -"assume local time." -msgstr "" -"Transforme un 10-uplet renvoyé par :func:`parsedate_tz` en un horodatage UTC " -"(en secondes depuis *Epoch*). Si l'élément de fuseau horaire dans le *n*-" -"uplet est ``None``, elle considère que l'heure est locale." - -#: library/email.utils.rst:157 -msgid "Returns a date string as per :rfc:`2822`, e.g.::" -msgstr "Renvoie une chaîne de date conforme à la :rfc:`2822`, par exemple ::" - -#: library/email.utils.rst:161 -#, fuzzy -msgid "" -"Optional *timeval* if given is a floating-point time value as accepted " -"by :func:`time.gmtime` and :func:`time.localtime`, otherwise the current " -"time is used." -msgstr "" -"*timeval*, s'il est fourni, est une valeur de temps à virgule flottante " -"telle qu'acceptée par :func:`time.gmtime` et :func:`time.localtime`, sinon " -"l'heure actuelle est utilisée." - -#: library/email.utils.rst:165 -msgid "" -"Optional *localtime* is a flag that when ``True``, interprets *timeval*, and " -"returns a date relative to the local timezone instead of UTC, properly " -"taking daylight savings time into account. The default is ``False`` meaning " -"UTC is used." -msgstr "" -"L'option *localtime* est un indicateur qui, lorsqu'il est ``True``, " -"interprète *timeval* et renvoie une date relative au fuseau horaire local au " -"lieu de UTC, en tenant correctement compte de l'heure d'été. La valeur par " -"défaut est ``False``, ce qui signifie que l'UTC est utilisée." - -#: library/email.utils.rst:170 -msgid "" -"Optional *usegmt* is a flag that when ``True``, outputs a date string with " -"the timezone as an ascii string ``GMT``, rather than a numeric ``-0000``. " -"This is needed for some protocols (such as HTTP). This only applies when " -"*localtime* is ``False``. The default is ``False``." -msgstr "" -"L'option *usegmt* est un indicateur qui, lorsqu'il est ``True``, affiche une " -"chaîne de date avec le fuseau horaire sous la forme de la chaîne ASCII " -"``GMT``, plutôt qu'un ``-0000`` numérique. C'est nécessaire pour certains " -"protocoles (tels que HTTP). Cela ne s'applique que lorsque *localtime* est " -"``False``. La valeur par défaut est ``False``." - -#: library/email.utils.rst:178 -msgid "" -"Like ``formatdate``, but the input is a :mod:`datetime` instance. If it is " -"a naive datetime, it is assumed to be \"UTC with no information about the " -"source timezone\", and the conventional ``-0000`` is used for the timezone. " -"If it is an aware ``datetime``, then the numeric timezone offset is used. If " -"it is an aware timezone with offset zero, then *usegmt* may be set to " -"``True``, in which case the string ``GMT`` is used instead of the numeric " -"timezone offset. This provides a way to generate standards conformant HTTP " -"date headers." -msgstr "" -"Comme ``formatdate``, mais l'entrée est une instance :mod:`datetime`. S'il " -"s'agit d'un groupe date-heure naïf, il est considéré être « UTC sans " -"information sur le fuseau horaire source », et le ``-0000`` conventionnel " -"est utilisé pour le fuseau horaire. S'il s'agit d'un ``datetime`` avisé, " -"alors le décalage numérique du fuseau horaire est utilisé. S'il s'agit d'un " -"groupe date-heure avisé avec un décalage de fuseau horaire de zéro, alors " -"*usegmt* peut être défini sur ``True``, la chaîne ``GMT`` est alors utilisée " -"à la place du décalage numérique du fuseau horaire. Cela fournit un moyen de " -"générer des en-têtes de date HTTP conformes aux normes." - -#: library/email.utils.rst:192 -msgid "Decode the string *s* according to :rfc:`2231`." -msgstr "Décode la chaîne *s* selon la :rfc:`2231`." - -#: library/email.utils.rst:197 -msgid "" -"Encode the string *s* according to :rfc:`2231`. Optional *charset* and " -"*language*, if given is the character set name and language name to use. If " -"neither is given, *s* is returned as-is. If *charset* is given but " -"*language* is not, the string is encoded using the empty string for " -"*language*." -msgstr "" -"Encode la chaîne *s* selon la :rfc:`2231`. *charset* et *language*, s'ils " -"sont fournis, indiquent le jeu de caractères et le nom de la langue à " -"utiliser. Si aucun n'est donné, *s* est renvoyé telle quelle. Si *charset* " -"est donné mais que *language* ne l'est pas, la chaîne est encodée en " -"utilisant la chaîne vide pour *language*." - -#: library/email.utils.rst:205 -msgid "" -"When a header parameter is encoded in :rfc:`2231` " -"format, :meth:`Message.get_param ` may " -"return a 3-tuple containing the character set, language, and " -"value. :func:`collapse_rfc2231_value` turns this into a unicode string. " -"Optional *errors* is passed to the *errors* argument " -"of :class:`str`'s :func:`~str.encode` method; it defaults to ``'replace'``. " -"Optional *fallback_charset* specifies the character set to use if the one in " -"the :rfc:`2231` header is not known by Python; it defaults to ``'us-ascii'``." -msgstr "" -"Lorsqu'un paramètre d'en-tête est encodé au " -"format :rfc:`2231`, :meth:`Message.get_param " -"` peut renvoyer un triplet contenant le jeu " -"de caractères, la langue et la valeur. :func:`collapse_rfc2231_value` " -"transforme cela en une chaîne Unicode. *errors* (facultatif) est passé à " -"l'argument *errors* de la méthode :func:`~str.encode` de :class:`str` ; sa " -"valeur par défaut est ``'replace'``. *fallback_charset* (facultatif) " -"spécifie le jeu de caractères à utiliser si celui de l'en-tête :rfc:`2231` " -"n'est pas connu de Python ; sa valeur par défaut est ``'us-ascii'``." - -#: library/email.utils.rst:214 -msgid "" -"For convenience, if the *value* passed to :func:`collapse_rfc2231_value` is " -"not a tuple, it should be a string and it is returned unquoted." -msgstr "" -"Pour plus de commodité, si la *valeur* transmise " -"à :func:`collapse_rfc2231_value` n'est pas un *n*-uplet, ce doit être une " -"chaîne et elle est renvoyée sans guillemets." - -#: library/email.utils.rst:220 -msgid "" -"Decode parameters list according to :rfc:`2231`. *params* is a sequence of " -"2-tuples containing elements of the form ``(content-type, string-value)``." -msgstr "" -"Décode la liste des paramètres selon la :rfc:`2231`. *params* est une " -"séquence de couples contenant des éléments de la forme ``(content-type, " -"string-value)``." - -#: library/email.utils.rst:225 -msgid "Footnotes" -msgstr "Notes" - -#: library/email.utils.rst:226 -msgid "" -"Note that the sign of the timezone offset is the opposite of the sign of the " -"``time.timezone`` variable for the same timezone; the latter variable " -"follows the POSIX standard while this module follows :rfc:`2822`." -msgstr "" -"Notez que le signe du décalage horaire est l'opposé du signe de la variable " -"``time.timezone`` pour le même fuseau horaire ; cette dernière variable suit " -"la norme POSIX tandis que ce module suit la :rfc:`2822`." diff --git a/library/ensurepip.po b/library/ensurepip.po deleted file mode 100644 index ac110338c1..0000000000 --- a/library/ensurepip.po +++ /dev/null @@ -1,310 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-10-17 12:41+0200\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/ensurepip.rst:2 -#, fuzzy -msgid ":mod:`!ensurepip` --- Bootstrapping the ``pip`` installer" -msgstr ":mod:`ensurepip` — Amorçage de l'installateur ``pip``" - -#: library/ensurepip.rst:10 -msgid "**Source code:** :source:`Lib/ensurepip`" -msgstr "" - -#: library/ensurepip.rst:14 -#, fuzzy -msgid "" -"The :mod:`!ensurepip` package provides support for bootstrapping the ``pip`` " -"installer into an existing Python installation or virtual environment. This " -"bootstrapping approach reflects the fact that ``pip`` is an independent " -"project with its own release cycle, and the latest available stable version " -"is bundled with maintenance and feature releases of the CPython reference " -"interpreter." -msgstr "" -"Le module :mod:`ensurepip` met en place l'installateur ``pip`` dans un " -"environnement Python, classique ou virtuel. Ce principe d'amorçage a été " -"choisi car ``pip`` est un projet séparé de Python avec son propre cycle de " -"versions. Il permet en particulier d'embarquer la version la plus récente de " -"``pip`` dans les mises à jour de maintenance de l'interpréteur CPython comme " -"dans les nouvelles versions principales." - -#: library/ensurepip.rst:21 -msgid "" -"In most cases, end users of Python shouldn't need to invoke this module " -"directly (as ``pip`` should be bootstrapped by default), but it may be " -"needed if installing ``pip`` was skipped when installing Python (or when " -"creating a virtual environment) or after explicitly uninstalling ``pip``." -msgstr "" -"Dans la plupart des cas, il n'est pas nécessaire de recourir à ce module. " -"``pip`` est le plus souvent déjà installé pour vous. Cependant, " -"``ensurepip`` peut s'avérer utile si l'installation de ``pip`` a été sautée " -"au moment de l'installation de Python (ou en créant un environnement " -"virtuel), ou bien si ``pip`` a été désinstallé par l'utilisateur." - -#: library/ensurepip.rst:29 -msgid "" -"This module *does not* access the internet. All of the components needed to " -"bootstrap ``pip`` are included as internal parts of the package." -msgstr "" -"Ce module n'accède *pas* au réseau. Tout ce qu'il faut pour amorcer ``pip`` " -"est compris dans le paquet." - -#: includes/optional-module.rst:1 -msgid "" -"This is an :term:`optional module`. If it is missing from your copy of " -"CPython, look for documentation from your distributor (that is, whoever " -"provided Python to you). If you are the distributor, see :ref:`optional-" -"module-requirements`." -msgstr "" - -#: library/ensurepip.rst:37 -msgid ":ref:`installing-index`" -msgstr ":ref:`installing-index`" - -#: library/ensurepip.rst:38 -msgid "The end user guide for installing Python packages" -msgstr "Guide de l'utilisateur final pour installer des paquets Python" - -#: library/ensurepip.rst:40 -msgid ":pep:`453`: Explicit bootstrapping of pip in Python installations" -msgstr "" -":pep:`453` : Amorçage explicite de pip dans les installations de Python" - -#: library/ensurepip.rst:41 -msgid "The original rationale and specification for this module." -msgstr "" -"Les motivations pour l'ajout de ce module et sa spécification d'origine" - -#: includes/wasm-mobile-notavail.rst:3 -msgid "Availability" -msgstr "Disponibilité" - -#: includes/wasm-mobile-notavail.rst:5 -msgid "" -"This module is not supported on :ref:`mobile platforms ` or :ref:`WebAssembly platforms `." -msgstr "" - -#: library/ensurepip.rst:48 -#, fuzzy -msgid "Command-line interface" -msgstr "Interface en ligne de commande" - -#: library/ensurepip.rst:52 -msgid "" -"The command line interface is invoked using the interpreter's ``-m`` switch." -msgstr "" -"On fait appel à l'interface en ligne de commande à l'aide de l'option ``-m`` " -"de l'interpréteur." - -#: library/ensurepip.rst:54 -msgid "The simplest possible invocation is::" -msgstr "L'invocation la plus simple est ::" - -#: library/ensurepip.rst:58 -msgid "" -"This invocation will install ``pip`` if it is not already installed, but " -"otherwise does nothing. To ensure the installed version of ``pip`` is at " -"least as recent as the one available in ``ensurepip``, pass the ``--" -"upgrade`` option::" -msgstr "" -"Cette commande installe ``pip`` s'il n'est pas déjà présent. Sinon, elle ne " -"fait rien. Pour s'assurer que la version de ``pip`` est au moins aussi " -"récente que celle embarquée dans ``ensurepip``, passer l'option ``--" -"upgrade`` ::" - -#: library/ensurepip.rst:65 -msgid "" -"By default, ``pip`` is installed into the current virtual environment (if " -"one is active) or into the system site packages (if there is no active " -"virtual environment). The installation location can be controlled through " -"two additional command line options:" -msgstr "" -"``pip`` est installé par défaut dans l'environnement virtuel courant, s'il y " -"en a un, ou bien dans le dossier ``site-packages`` du système. L'emplacement " -"d'installation se règle à travers deux options :" - -#: library/ensurepip.rst:72 -#, fuzzy -msgid "" -"Installs ``pip`` relative to the given root directory rather than the root " -"of the currently active virtual environment (if any) or the default root for " -"the current Python installation." -msgstr "" -"``--root `` : installe ``pip`` sur un chemin relatif à la racine " -"*dossier* au lieu de la racine de l'environnement virtuel ou la racine par " -"défaut de l'installation de Python." - -#: library/ensurepip.rst:78 -#, fuzzy -msgid "" -"Installs ``pip`` into the user site packages directory rather than globally " -"for the current Python installation (this option is not permitted inside an " -"active virtual environment)." -msgstr "" -"``--user`` : installe ``pip`` dans le dossier ``site-packages`` propre à " -"l'utilisateur au lieu du dossier global de l'installation de Python. Cette " -"option n'est pas valide dans un environnement virtuel." - -#: library/ensurepip.rst:82 -msgid "" -"By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " -"stands for the version of Python used to invoke ``ensurepip``). The scripts " -"installed can be controlled through two additional command line options:" -msgstr "" -"Par défaut, les commandes ``pipX`` et ``pipX.Y`` sont créées (où X.Y est la " -"version de Python avec laquelle ``ensurepip`` est utilisé). Cela se contrôle " -"par deux options supplémentaires :" - -#: library/ensurepip.rst:89 -#, fuzzy -msgid "" -"If an alternate installation is requested, the ``pipX`` script will *not* be " -"installed." -msgstr "" -"``--altinstall`` : dans ce mode d'« installation parallèle », seule la " -"commande ``pipX.Y`` est ajoutée, et pas la commande ``pipX``." - -#: library/ensurepip.rst:94 -#, fuzzy -msgid "" -"If a \"default pip\" installation is requested, the ``pip`` script will be " -"installed in addition to the two regular scripts." -msgstr "" -"``--default-pip`` : ce mode d'« installation de la version par défaut » crée " -"la commande ``pip`` en plus de ``pipX`` et ``pipX.Y``." - -#: library/ensurepip.rst:97 -msgid "" -"Providing both of the script selection options will trigger an exception." -msgstr "Combiner ces deux options conduit à une exception." - -#: library/ensurepip.rst:100 -msgid "Module API" -msgstr "API du module" - -#: library/ensurepip.rst:102 -#, fuzzy -msgid ":mod:`!ensurepip` exposes two functions for programmatic use:" -msgstr "" -"Le module :mod:`ensurepip` définit deux fonctions pour utilisation dans les " -"programmes :" - -#: library/ensurepip.rst:106 -msgid "" -"Returns a string specifying the available version of pip that will be " -"installed when bootstrapping an environment." -msgstr "" -"Renvoie, sous forme de chaîne, la version de ``pip`` qui serait installée " -"par ``ensurepip``." - -#: library/ensurepip.rst:113 -msgid "Bootstraps ``pip`` into the current or designated environment." -msgstr "" -"Amorce ``pip`` dans l'environnement courant ou un environnement spécifique." - -#: library/ensurepip.rst:115 -msgid "" -"*root* specifies an alternative root directory to install relative to. If " -"*root* is ``None``, then installation uses the default install location for " -"the current environment." -msgstr "" -"Passer *root* permet de changer la racine du chemin d'installation. Si " -"*root* vaut ``None`` (la valeur par défaut), l'installation se fait dans la " -"racine par défaut pour l'environnement courant." - -#: library/ensurepip.rst:119 -msgid "" -"*upgrade* indicates whether or not to upgrade an existing installation of an " -"earlier version of ``pip`` to the available version." -msgstr "" -"*upgrade* indique s'il faut ou non effectuer la mise à jour d'une éventuelle " -"version plus ancienne de ``pip`` déjà installée vers la version embarquée " -"dans ``ensurepip``." - -#: library/ensurepip.rst:122 -msgid "" -"*user* indicates whether to use the user scheme rather than installing " -"globally." -msgstr "" -"Si *user* vaut vrai, ``pip`` est mis dans des chemins qui le rendent " -"disponible pour cet utilisateur uniquement, et non pour tous les " -"utilisateurs de l'installation de Python." - -#: library/ensurepip.rst:125 -msgid "" -"By default, the scripts ``pipX`` and ``pipX.Y`` will be installed (where X.Y " -"stands for the current version of Python)." -msgstr "" -"Par défaut, les commandes créées sont ``pipX`` et ``pipX.Y`` (où X.Y est la " -"version de Python)." - -#: library/ensurepip.rst:128 -msgid "If *altinstall* is set, then ``pipX`` will *not* be installed." -msgstr "Si *altinstall* vaut vrai, ``pipX`` n'est pas créée." - -#: library/ensurepip.rst:130 -msgid "" -"If *default_pip* is set, then ``pip`` will be installed in addition to the " -"two regular scripts." -msgstr "" -"Si *default_pip* vaut vrai, la commande ``pip`` est créée en plus des deux " -"autres." - -#: library/ensurepip.rst:133 -msgid "" -"Setting both *altinstall* and *default_pip* will trigger :exc:`ValueError`." -msgstr "" -"Le fait de combiner *altinstall* et *default_pip* lève " -"l'exception :exc:`ValueError`." - -#: library/ensurepip.rst:136 -msgid "" -"*verbosity* controls the level of output to :data:`sys.stdout` from the " -"bootstrapping operation." -msgstr "" -"*verbosity* règle le niveau de verbosité des messages émis " -"sur :data:`sys.stdout` pendant l'amorçage." - -#: library/ensurepip.rst:139 -msgid "" -"Raises an :ref:`auditing event ` ``ensurepip.bootstrap`` with " -"argument ``root``." -msgstr "" -"Cette fonction lève un :ref:`événement d'audit ` " -"``ensurepip.bootstrap`` avec l'argument ``root``." - -#: library/ensurepip.rst:143 -msgid "" -"The bootstrapping process has side effects on both ``sys.path`` and " -"``os.environ``. Invoking the command line interface in a subprocess instead " -"allows these side effects to be avoided." -msgstr "" -"Le processus d'amorçage a des effets de bord sur ``sys.path`` et " -"``os.environ``. Pour les éviter, on peut appeler l'interface en ligne de " -"commande dans un sous-processus." - -#: library/ensurepip.rst:149 -msgid "" -"The bootstrapping process may install additional modules required by " -"``pip``, but other software should not assume those dependencies will always " -"be present by default (as the dependencies may be removed in a future " -"version of ``pip``)." -msgstr "" -"L'amorçage peut installer des modules supplémentaires qui sont requis pour " -"``pip``. Les autres programmes ne doivent pas prendre pour acquise la " -"présence de ces modules, car ``pip`` pourrait dans une version future se " -"passer de ces dépendances." diff --git a/library/enum.po b/library/enum.po deleted file mode 100644 index 6a07c6595a..0000000000 --- a/library/enum.po +++ /dev/null @@ -1,2471 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-01-07 22:57+0100\n" -"Last-Translator: Antoine Wecxsteen\n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.2.1\n" - -#: library/enum.rst:2 -#, fuzzy -msgid ":mod:`!enum` --- Support for enumerations" -msgstr ":mod:`enum` — Énumérations" - -#: library/enum.rst:9 -msgid "**Source code:** :source:`Lib/enum.py`" -msgstr "**Code source :** :source:`Lib/enum.py`" - -#: library/enum.rst:11 -msgid "Important" -msgstr "" - -#: library/enum.rst:13 -msgid "" -"This page contains the API reference information. For tutorial information " -"and discussion of more advanced topics, see" -msgstr "" -"Cette page contient les informations de référence de l'API. Pour des " -"informations sur le didacticiel et une discussion sur des sujets plus " -"avancés, reportez-vous à" - -#: library/enum.rst:16 -msgid ":ref:`Basic Tutorial `" -msgstr ":ref:`Tutoriel de base `" - -#: library/enum.rst:17 -msgid ":ref:`Advanced Tutorial `" -msgstr ":ref:`Tutoriel avancé `" - -#: library/enum.rst:18 -msgid ":ref:`Enum Cookbook `" -msgstr ":ref:`Recettes pour les énumérations `" - -#: library/enum.rst:22 -msgid "An enumeration:" -msgstr "Une énumération :" - -#: library/enum.rst:24 -msgid "is a set of symbolic names (members) bound to unique values" -msgstr "" -"est un ensemble de noms symboliques (appelés membres) liés à des valeurs " -"uniques," - -#: library/enum.rst:25 -#, fuzzy -msgid "" -"can be iterated over to return its canonical (i.e. non-alias) members in " -"definition order" -msgstr "" -"peut être utilisée comme itérable et renvoie ses membres dans l'ordre de " -"définition," - -#: library/enum.rst:27 -msgid "uses *call* syntax to return members by value" -msgstr "utilise la syntaxe *d'appel* pour renvoyer les valeurs de ses membres," - -#: library/enum.rst:28 -msgid "uses *index* syntax to return members by name" -msgstr "utilise la syntaxe *d'indiçage* pour renvoyer les noms de ses membres." - -#: library/enum.rst:30 -msgid "" -"Enumerations are created either by using :keyword:`class` syntax, or by " -"using function-call syntax::" -msgstr "" -"Les énumérations sont créées soit en utilisant la syntaxe :keyword:`class`, " -"soit en utilisant la syntaxe d'appel de fonction ::" - -#: library/enum.rst:44 -msgid "" -"Even though we can use :keyword:`class` syntax to create Enums, Enums are " -"not normal Python classes. See :ref:`How are Enums different? ` for more details." -msgstr "" -"Même si on peut utiliser la syntaxe :keyword:`class` pour créer des " -"énumérations, les *Enums* ne sont pas des vraies classes Python. " -"Lisez :ref:`En quoi les énumérations sont-elles différentes ? ` pour plus de détails." - -#: library/enum.rst:48 -msgid "Nomenclature" -msgstr "Nomenclature" - -#: library/enum.rst:50 -#, fuzzy -msgid "The class :class:`!Color` is an *enumeration* (or *enum*)" -msgstr "La classe :class:`Color` est une *énumération* (ou une *enum*)." - -#: library/enum.rst:51 -#, fuzzy -msgid "" -"The attributes :attr:`!Color.RED`, :attr:`!Color.GREEN`, etc., are " -"*enumeration members* (or *members*) and are functionally constants." -msgstr "" -"Les attributs :attr:`Color.RED`, :attr:`Color.GREEN`, etc., sont les " -"*membres de l'énumération* (ou *membres*) et sont fonctionnellement des " -"constantes." - -#: library/enum.rst:53 -#, fuzzy -msgid "" -"The enum members have *names* and *values* (the name of :attr:`!Color.RED` " -"is ``RED``, the value of :attr:`!Color.BLUE` is ``3``, etc.)" -msgstr "" -"Les membres de l’énumération ont chacun un *nom* et une *valeur* ; le nom " -"de :attr:`Color.RED` est ``RED``, la valeur de :attr:`Color.BLUE` est ``3``, " -"etc." - -#: library/enum.rst:60 -#, fuzzy -msgid "Module contents" -msgstr "Contenu du module" - -#: library/enum.rst:62 -msgid ":class:`EnumType`" -msgstr ":class:`EnumType`" - -#: library/enum.rst:64 -msgid "The ``type`` for Enum and its subclasses." -msgstr "Le ``type`` d'*Enum* et de ses sous-classes." - -#: library/enum.rst:66 -msgid ":class:`Enum`" -msgstr ":class:`Enum`" - -#: library/enum.rst:68 -msgid "Base class for creating enumerated constants." -msgstr "Classe mère pour créer une énumération de constantes." - -#: library/enum.rst:70 -msgid ":class:`IntEnum`" -msgstr ":class:`IntEnum`" - -#: library/enum.rst:72 -msgid "" -"Base class for creating enumerated constants that are also subclasses " -"of :class:`int`. (`Notes`_)" -msgstr "" -"Classe mère pour créer une énumération de constantes qui sont également des " -"sous-classes de :class:`int` (`notes`_)." - -#: library/enum.rst:75 -msgid ":class:`StrEnum`" -msgstr ":class:`StrEnum`" - -#: library/enum.rst:77 -msgid "" -"Base class for creating enumerated constants that are also subclasses " -"of :class:`str`. (`Notes`_)" -msgstr "" -"Classe mère pour créer une énumération de constantes qui sont également des " -"sous-classes de :class:`str` (`notes`_)." - -#: library/enum.rst:80 -msgid ":class:`Flag`" -msgstr ":class:`Flag`" - -#: library/enum.rst:82 -msgid "" -"Base class for creating enumerated constants that can be combined using the " -"bitwise operations without losing their :class:`Flag` membership." -msgstr "" -"Classe mère pour créer une énumération de constantes pouvant être combinées " -"avec des opérateurs de comparaison bit-à-bit, sans perdre leur qualité " -"de :class:`Flag`." - -#: library/enum.rst:85 -msgid ":class:`IntFlag`" -msgstr ":class:`IntFlag`" - -#: library/enum.rst:87 -msgid "" -"Base class for creating enumerated constants that can be combined using the " -"bitwise operators without losing their :class:`IntFlag` " -"membership. :class:`IntFlag` members are also subclasses of :class:`int`. " -"(`Notes`_)" -msgstr "" -"Classe mère pour créer une énumération de constantes pouvant être combinées " -"avec des opérateurs de comparaison bit-à-bit, sans perdre leur qualité " -"de :class:`IntFlag`. Les membres de :class:`IntFlag` sont aussi des sous-" -"classes de :class:`int` (`notes`_)." - -#: library/enum.rst:91 -#, fuzzy -msgid ":class:`ReprEnum`" -msgstr ":class:`Enum`" - -#: library/enum.rst:93 -#, fuzzy -msgid "" -"Used by :class:`IntEnum`, :class:`StrEnum`, and :class:`IntFlag` to keep " -"the :class:`str() ` of the mixed-in type." -msgstr ":class:`IntEnum`, :class:`StrEnum` et :class:`IntFlag`" - -#: library/enum.rst:96 -msgid ":class:`EnumCheck`" -msgstr ":class:`EnumCheck`" - -#: library/enum.rst:98 -msgid "" -"An enumeration with the values ``CONTINUOUS``, ``NAMED_FLAGS``, and " -"``UNIQUE``, for use with :func:`verify` to ensure various constraints are " -"met by a given enumeration." -msgstr "" -"Énumération avec les valeurs ``CONTINUOUS``, ``NAMED_FLAGS`` et ``UNIQUE``, " -"à utiliser avec :func:`verify` pour s'assurer que diverses contraintes sont " -"satisfaites par une énumération donnée." - -#: library/enum.rst:102 -msgid ":class:`FlagBoundary`" -msgstr ":class:`FlagBoundary`" - -#: library/enum.rst:104 -msgid "" -"An enumeration with the values ``STRICT``, ``CONFORM``, ``EJECT``, and " -"``KEEP`` which allows for more fine-grained control over how invalid values " -"are dealt with in an enumeration." -msgstr "" -"Énumération avec les valeurs ``STRICT``, ``CONFORM``, ``EJECT`` et ``KEEP`` " -"qui permet un contrôle plus précis sur la façon dont les valeurs invalides " -"sont traitées dans une énumération." - -#: library/enum.rst:108 -#, fuzzy -msgid ":class:`EnumDict`" -msgstr ":class:`Enum`" - -#: library/enum.rst:110 -msgid "A subclass of :class:`dict` for use when subclassing :class:`EnumType`." -msgstr "" - -#: library/enum.rst:112 -msgid ":class:`auto`" -msgstr ":class:`auto`" - -#: library/enum.rst:114 -msgid "" -"Instances are replaced with an appropriate value for Enum " -"members. :class:`StrEnum` defaults to the lower-cased version of the member " -"name, while other Enums default to 1 and increase from there." -msgstr "" -"Les instances sont remplacées par une valeur appropriée pour les membres de " -"l'énumération. :class:`StrEnum` utilise par défaut la version minuscule du " -"nom du membre, tandis que les autres énumérations utilisent 1 par défaut et " -"puis augmentent." - -#: library/enum.rst:118 -msgid ":func:`~enum.property`" -msgstr ":func:`~enum.property`" - -#: library/enum.rst:120 -#, fuzzy -msgid "" -"Allows :class:`Enum` members to have attributes without conflicting with " -"member names. The ``value`` and ``name`` attributes are implemented this " -"way." -msgstr "" -"Permet aux membres d'une :class:`Enum` d'avoir des attributs sans entrer en " -"conflit avec les noms des membres." - -#: library/enum.rst:124 -msgid ":func:`unique`" -msgstr ":func:`unique`" - -#: library/enum.rst:126 -msgid "" -"Enum class decorator that ensures only one name is bound to any one value." -msgstr "" -"Décorateur de classe qui garantit qu'une valeur ne puisse être associée qu'à " -"un seul nom." - -#: library/enum.rst:128 -msgid ":func:`verify`" -msgstr ":func:`verify`" - -#: library/enum.rst:130 -msgid "" -"Enum class decorator that checks user-selectable constraints on an " -"enumeration." -msgstr "" -"Décorateur de classe qui vérifie des contraintes personnalisées pour une " -"énumération." - -#: library/enum.rst:133 -msgid ":func:`member`" -msgstr ":func:`member`" - -#: library/enum.rst:135 -msgid "Make ``obj`` a member. Can be used as a decorator." -msgstr "Fait de ``obj`` un membre. Peut être utilisé comme décorateur." - -#: library/enum.rst:137 -msgid ":func:`nonmember`" -msgstr ":func:`nonmember`" - -#: library/enum.rst:139 -msgid "Do not make ``obj`` a member. Can be used as a decorator." -msgstr "" -"Fait que ``obj`` n'est pas un membre. Peut être utilisé comme décorateur." - -#: library/enum.rst:141 -#, fuzzy -msgid ":func:`global_enum`" -msgstr ":func:`nonmember`" - -#: library/enum.rst:143 -msgid "" -"Modify the :class:`str() ` and :func:`repr` of an enum to show its " -"members as belonging to the module instead of its class, and export the enum " -"members to the global namespace." -msgstr "" - -#: library/enum.rst:147 -msgid ":func:`show_flag_values`" -msgstr "" - -#: library/enum.rst:149 -msgid "Return a list of all power-of-two integers contained in a flag." -msgstr "" - -#: library/enum.rst:151 -#, fuzzy -msgid ":func:`enum.bin`" -msgstr ":func:`member`" - -#: library/enum.rst:1076 -msgid "" -"Like built-in :func:`bin`, except negative values are represented in two's " -"complement, and the leading bit always indicates sign (``0`` implies " -"positive, ``1`` implies negative)." -msgstr "" - -#: library/enum.rst:158 -msgid "``Flag``, ``IntFlag``, ``auto``" -msgstr "``Flag``, ``IntFlag``, ``auto``" - -#: library/enum.rst:159 -msgid "" -"``StrEnum``, ``EnumCheck``, ``ReprEnum``, ``FlagBoundary``, ``property``, " -"``member``, ``nonmember``, ``global_enum``, ``show_flag_values``" -msgstr "" - -#: library/enum.rst:160 -msgid "``EnumDict``" -msgstr "" - -#: library/enum.rst:165 -#, fuzzy -msgid "Data types" -msgstr "Types de données" - -#: library/enum.rst:170 -msgid "" -"*EnumType* is the :term:`metaclass` for *enum* enumerations. It is possible " -"to subclass *EnumType* -- see :ref:`Subclassing EnumType ` for details." -msgstr "" -"*EnumType* est la :term:`métaclasse ` pour les énumérations. Il " -"est possible de sous-classer *EnumType* ­— voir :ref:`Sous-classer EnumType " -"` pour plus de détails." - -#: library/enum.rst:174 -#, fuzzy -msgid "" -"``EnumType`` is responsible for setting the correct :meth:`!" -"__repr__`, :meth:`!__str__`, :meth:`!__format__`, and :meth:`!__reduce__` " -"methods on the final *enum*, as well as creating the enum members, properly " -"handling duplicates, providing iteration over the enum class, etc." -msgstr "" -"*EnumType* est chargé de définir les méthodes " -"correctes :meth:`__repr__`, :meth:`__str__`, :meth:`__format__` " -"et :meth:`__reduce__` sur l'énumération finale, ainsi que de créer les " -"membres de l'énumération, de gérer correctement les doublons, de fournir une " -"itération sur la classe *enum*, etc." - -#: library/enum.rst:181 -msgid "" -"Before 3.11 ``EnumType`` was called ``EnumMeta``, which is still available " -"as an alias." -msgstr "" - -#: library/enum.rst:185 -msgid "This method is called in two different ways:" -msgstr "Cette méthode peut être appelée de deux manières différentes :" - -#: library/enum.rst:187 -msgid "to look up an existing member:" -msgstr "pour chercher un membre existant :" - -#: library/enum.rst:0 -msgid "cls" -msgstr "cls" - -#: library/enum.rst:195 -msgid "The enum class being called." -msgstr "Classe de l'énumération concernée." - -#: library/enum.rst:0 -msgid "value" -msgstr "value" - -#: library/enum.rst:190 -msgid "The value to lookup." -msgstr "Valeur à chercher." - -#: library/enum.rst:192 -#, fuzzy -msgid "" -"to use the ``cls`` enum to create a new enum (only if the existing enum does " -"not have any members):" -msgstr "" -"pour utiliser l'énumération ``cls`` afin de créer une nouvelle énumération :" - -#: library/enum.rst:196 -msgid "The name of the new Enum to create." -msgstr "Nom de la nouvelle énumération à créer." - -#: library/enum.rst:0 -msgid "names" -msgstr "names" - -#: library/enum.rst:197 -msgid "The names/values of the members for the new Enum." -msgstr "Couples nom-valeur des membres de la nouvelle énumération." - -#: library/enum.rst:0 -msgid "module" -msgstr "module" - -#: library/enum.rst:198 -msgid "The name of the module the new Enum is created in." -msgstr "Nom du module dans lequel la classe *Enum* se trouve." - -#: library/enum.rst:0 -msgid "qualname" -msgstr "qualname" - -#: library/enum.rst:199 -msgid "The actual location in the module where this Enum can be found." -msgstr "Position dans le module où la classe *Enum* se trouve." - -#: library/enum.rst:0 -msgid "type" -msgstr "type" - -#: library/enum.rst:200 -msgid "A mix-in type for the new Enum." -msgstr "Type à mélanger pour la nouvelle énumération." - -#: library/enum.rst:0 -msgid "start" -msgstr "start" - -#: library/enum.rst:201 -#, fuzzy -msgid "The first integer value for the Enum (used by :class:`auto`)." -msgstr "Première valeur entière de l'énumération (utilisé par :class:`auto`)" - -#: library/enum.rst:0 -msgid "boundary" -msgstr "boundary" - -#: library/enum.rst:202 -#, fuzzy -msgid "" -"How to handle out-of-range values from bit operations (:class:`Flag` only)." -msgstr "" -"Définit la gestion les valeurs hors plage des opérations bit-à-bit " -"(:class:`Flag` uniquement)" - -#: library/enum.rst:206 -msgid "Returns ``True`` if member belongs to the ``cls``::" -msgstr "Renvoie ``True`` si le membre appartient à ``cls`` ::" - -#: library/enum.rst:216 -#, fuzzy -msgid "" -"Before Python 3.12, a ``TypeError`` is raised if a non-Enum-member is used " -"in a containment check." -msgstr "" -"Dans Python 3.12, il sera possible de vérifier les valeurs des membres et " -"pas seulement les membres ; en attendant, une ``TypeError`` est levée si un " -"membre non-Enum est utilisé dans une vérification d'appartenance." - -#: library/enum.rst:221 -msgid "" -"Returns ``['__class__', '__doc__', '__members__', '__module__']`` and the " -"names of the members in *cls*::" -msgstr "" -"Renvoie ``['__class__', '__doc__', '__members__', '__module__']`` et les " -"noms des membres de *cls* ::" - -#: library/enum.rst:229 -#, fuzzy -msgid "" -"Returns the Enum member in *cls* matching *name*, or raises " -"a :exc:`KeyError`::" -msgstr "" -"Renvoie le membre de l'énumération *cls* correspondant à *name* ou lève " -"une :exc:`KeyError` ::" - -#: library/enum.rst:236 -msgid "Returns each member in *cls* in definition order::" -msgstr "Renvoie chaque membre de *cls* dans l'ordre de définition ::" - -#: library/enum.rst:243 -#, fuzzy -msgid "Returns the number of members in *cls*::" -msgstr "Renvoie le nombre de membres de *cls* ::" - -#: library/enum.rst:250 -msgid "Returns a mapping of every enum name to its member, including aliases" -msgstr "" - -#: library/enum.rst:254 -msgid "Returns each member in *cls* in reverse definition order::" -msgstr "Renvoie chaque membre de *cls* dans l'ordre inverse de définition ::" - -#: library/enum.rst:262 -msgid "*Enum* is the base class for all *enum* enumerations." -msgstr "*Enum* est la classe mère de toutes les énumérations." - -#: library/enum.rst:266 -msgid "The name used to define the ``Enum`` member::" -msgstr "Le nom utilisé pour définir le membre de l'``Enum`` ::" - -#: library/enum.rst:273 -msgid "The value given to the ``Enum`` member::" -msgstr "La valeur attribuée au membre de l'``Enum`` ::" - -#: library/enum.rst:298 -#, fuzzy -msgid "Value of the member, can be set in :meth:`~Enum.__new__`." -msgstr "" -"``_value_`` — valeur du membre ; il est possible d'y accéder et de la " -"modifier dans ``__new__``" - -#: library/enum.rst:280 -msgid "Enum member values" -msgstr "Valeurs des membres d'une *Enum*" - -#: library/enum.rst:282 -#, fuzzy -msgid "" -"Member values can be anything: :class:`int`, :class:`str`, etc. If the " -"exact value is unimportant you may use :class:`auto` instances and an " -"appropriate value will be chosen for you. See :class:`auto` for the details." -msgstr "" -"La valeur d'un membre peut être de n'importe quel " -"type : :class:`int`, :class:`str`, etc. Si la valeur exacte n'a pas " -"d'importance, utilisez des instances de :class:`auto` et une valeur " -"appropriée sera choisie pour vous. Soyez vigilant si vous " -"mélangez :class:`auto` avec d'autres valeurs." - -#: library/enum.rst:287 -msgid "" -"While mutable/unhashable values, such as :class:`dict`, :class:`list` or a " -"mutable :class:`~dataclasses.dataclass`, can be used, they will have a " -"quadratic performance impact during creation relative to the total number of " -"mutable/unhashable values in the enum." -msgstr "" - -#: library/enum.rst:294 -#, fuzzy -msgid "Name of the member." -msgstr "``_name_`` — nom du membre" - -#: library/enum.rst:302 -#, fuzzy -msgid "" -"No longer used, kept for backward compatibility. (class attribute, removed " -"during class creation)." -msgstr "" -"``_order_`` — utilisée en Python 2 ou 3 pour s'assurer que l'ordre des " -"membres est cohérent dans les différentes versions de Python (attribut de " -"classe, supprimé durant la création de la classe)" - -#: library/enum.rst:305 -#, fuzzy -msgid "" -"The :attr:`~Enum._order_` attribute can be provided to help keep Python 2 / " -"Python 3 code in sync. It will be checked against the actual order of the " -"enumeration and raise an error if the two do not match::" -msgstr "" -"Pour faciliter la transition de Python 2 en Python 3, " -"l'attribut :attr:`_order_` peut être défini. Il sera comparé au véritable " -"ordre de l'énumération et lève une erreur si les deux ne correspondent pas ::" - -#: library/enum.rst:322 -#, fuzzy -msgid "" -"In Python 2 code the :attr:`~Enum._order_` attribute is necessary as " -"definition order is lost before it can be recorded." -msgstr "" -"En Python 2, l'attribut :attr:`_order_` est indispensable car l'ordre de la " -"définition est perdu avant de pouvoir être enregistré." - -#: library/enum.rst:329 -msgid "" -"``_ignore_`` is only used during creation and is removed from the " -"enumeration once creation is complete." -msgstr "" -"``_ignore_`` n'est utilisé que lors de la création et est supprimé de " -"l'énumération une fois la création terminée." - -#: library/enum.rst:332 -msgid "" -"``_ignore_`` is a list of names that will not become members, and whose " -"names will also be removed from the completed enumeration. " -"See :ref:`TimePeriod ` for an example." -msgstr "" -"``_ignore_`` est une liste de noms qui ne deviendront pas membres et qui " -"seront également supprimés de l'énumération terminée. Voir :ref:`Intervalle " -"de temps ` pour un exemple." - -#: library/enum.rst:340 -msgid "" -"Returns ``['__class__', '__doc__', '__module__', 'name', 'value']`` and any " -"public methods defined on *self.__class__*::" -msgstr "" -"Renvoie ``['__class__', '__doc__', '__module__', 'name', 'value']`` et " -"toutes les méthodes publiques définies pour *self.__class__* ::" - -#: library/enum.rst:0 -msgid "name" -msgstr "name" - -#: library/enum.rst:362 -msgid "The name of the member being defined (e.g. 'RED')." -msgstr "Nom du membre en cours de définition (par ex. ``RED``)." - -#: library/enum.rst:363 -msgid "The start value for the Enum; the default is 1." -msgstr "Valeur de départ pour l'énumération ; 1 par défaut." - -#: library/enum.rst:0 -msgid "count" -msgstr "count" - -#: library/enum.rst:364 -msgid "The number of members currently defined, not including this one." -msgstr "" -"Nombre de membres actuellement définis, le membre actuel n'étant pas inclus." - -#: library/enum.rst:0 -msgid "last_values" -msgstr "last_values" - -#: library/enum.rst:365 -msgid "A list of the previous values." -msgstr "Liste des valeurs précédentes." - -#: library/enum.rst:367 -#, fuzzy -msgid "" -"A *staticmethod* that is used to determine the next value returned " -"by :class:`auto`." -msgstr "" -"Méthode statique utilisée pour déterminer la prochaine valeur à renvoyer " -"par :class:`auto` ::" - -#: library/enum.rst:371 -#, fuzzy -msgid "" -"For standard :class:`Enum` classes the next value chosen is the highest " -"value seen incremented by one." -msgstr "" -"Pour les classes standard :class:`Enum`, la valeur suivante choisie est la " -"dernière valeur vue incrémentée de un." - -#: library/enum.rst:374 -#, fuzzy -msgid "" -"For :class:`Flag` classes the next value chosen will be the next highest " -"power-of-two." -msgstr "" -"Pour les classes :class:`Flag`, la valeur suivante choisie est la puissance " -"de deux la plus élevée suivante, quelle que soit la dernière valeur vue." - -#: library/enum.rst:377 -msgid "This method may be overridden, e.g.::" -msgstr "" - -#: library/enum.rst:391 -msgid "" -"Prior versions would use the last seen value instead of the highest value." -msgstr "" - -#: library/enum.rst:396 -msgid "" -"By default, does nothing. If multiple values are given in the member " -"assignment, those values become separate arguments to ``__init__``; e.g." -msgstr "" - -#: library/enum.rst:403 -msgid "" -"``Weekday.__init__()`` would be called as ``Weekday.__init__(self, 1, " -"'Mon')``" -msgstr "" - -#: library/enum.rst:407 -msgid "" -"A *classmethod* that is used to further configure subsequent subclasses. By " -"default, does nothing." -msgstr "" -"Méthode de classe utilisée pour personnaliser davantage les sous-classes à " -"venir. Ne fait rien par défaut." - -#: library/enum.rst:412 -msgid "" -"A *classmethod* for looking up values not found in *cls*. By default it " -"does nothing, but can be overridden to implement custom search behavior::" -msgstr "" -"Méthode de classe pour chercher des valeurs non trouvées dans *cls*. Ne fait " -"rien par défaut mais peut être surchargée pour implémenter un comportement " -"personnalisé de recherche ::" - -#: library/enum.rst:436 -msgid "" -"By default, doesn't exist. If specified, either in the enum class " -"definition or in a mixin class (such as ``int``), all values given in the " -"member assignment will be passed; e.g." -msgstr "" - -#: library/enum.rst:444 -msgid "" -"results in the call ``int('1a', 16)`` and a value of ``26`` for the member." -msgstr "" - -#: library/enum.rst:448 -msgid "" -"When writing a custom ``__new__``, do not use ``super().__new__`` -- call " -"the appropriate ``__new__`` instead." -msgstr "" - -#: library/enum.rst:453 -msgid "" -"Returns the string used for *repr()* calls. By default, returns the *Enum* " -"name, member name, and value, but can be overridden::" -msgstr "" -"Renvoie la chaîne utilisée pour les appels à *repr()*. Par défaut, renvoie " -"le nom de l'énumération, le nom du membre et sa valeur, mais peut être " -"surchargée ::" - -#: library/enum.rst:470 -msgid "" -"Returns the string used for *str()* calls. By default, returns the *Enum* " -"name and member name, but can be overridden::" -msgstr "" -"Renvoie la chaîne utilisée pour les appels à *str()*. Par défaut, renvoie le " -"nom *Enum* et le nom du membre, mais peut être remplacé ::" - -#: library/enum.rst:486 -#, fuzzy -msgid "" -"Returns the string used for *format()* and *f-string* calls. By default, " -"returns :meth:`__str__` return value, but can be overridden::" -msgstr "" -"Renvoie la chaîne utilisée pour les appels à *format()* et *f-string*. Par " -"défaut, renvoie la valeur renvoyée par :meth:`__str__`, mais peut être " -"remplacé ::" - -#: library/enum.rst:502 -msgid "" -"Using :class:`auto` with :class:`Enum` results in integers of increasing " -"value, starting with ``1``." -msgstr "" -"L'utilisation de :class:`auto` avec :class:`Enum` donne des nombres entiers " -"de valeur croissante, en commençant par ``1``." - -#: library/enum.rst:505 -msgid "Added :ref:`enum-dataclass-support`." -msgstr "" - -#: library/enum.rst:509 -msgid "Adds a new name as an alias to an existing member::" -msgstr "" - -#: library/enum.rst:515 -msgid "" -"Raises a :exc:`NameError` if the name is already assigned to a different " -"member." -msgstr "" - -#: library/enum.rst:521 -msgid "Adds a new value as an alias to an existing member::" -msgstr "" - -#: library/enum.rst:527 -msgid "" -"Raises a :exc:`ValueError` if the value is already linked with a different " -"member." -msgstr "" - -#: library/enum.rst:528 -msgid "See :ref:`multi-value-enum` for an example." -msgstr "" - -#: library/enum.rst:535 -#, fuzzy -msgid "" -"*IntEnum* is the same as :class:`Enum`, but its members are also integers " -"and can be used anywhere that an integer can be used. If any integer " -"operation is performed with an *IntEnum* member, the resulting value loses " -"its enumeration status." -msgstr "" -"*IntEnum* est identique à *Enum*, mais ses membres sont également des " -"entiers et peuvent être utilisés partout où un entier peut être utilisé. Si " -"une opération sur un entier est effectuée avec un membre *IntEnum*, la " -"valeur résultante perd son statut de membre d'énumération." - -#: library/enum.rst:556 -msgid "" -"Using :class:`auto` with :class:`IntEnum` results in integers of increasing " -"value, starting with ``1``." -msgstr "" -"L'utilisation de :class:`auto` avec :class:`IntEnum` donne des entiers de " -"valeur croissante, en commençant par ``1``." - -#: library/enum.rst:559 -#, fuzzy -msgid "" -":meth:`~object.__str__` is now :meth:`!int.__str__` to better support the " -"*replacement of existing constants* use-case. :meth:`~object.__format__` was " -"already :meth:`!int.__format__` for that same reason." -msgstr "" -":meth:`__str__` est maintenant :func:`int.__str__` pour mieux prendre en " -"charge le cas d'utilisation du *remplacement de constantes " -"existantes*. :meth:`__format__` était déjà :func:`int.__format__` pour la " -"même raison." - -#: library/enum.rst:566 -#, fuzzy -msgid "" -"*StrEnum* is the same as :class:`Enum`, but its members are also strings and " -"can be used in most of the same places that a string can be used. The result " -"of any string operation performed on or with a *StrEnum* member is not part " -"of the enumeration." -msgstr "" -"*StrEnum* est identique à *Enum*, mais ses membres sont également des " -"chaînes et peuvent être utilisés dans la plupart des endroits où une chaîne " -"peut être utilisée. Le résultat de toute opération de chaîne effectuée sur " -"ou avec un membre *StrEnum* ne fait pas partie de l'énumération." - -#: library/enum.rst:587 -#, fuzzy -msgid "" -"There are places in the stdlib that check for an exact :class:`str` instead " -"of a :class:`str` subclass (i.e. ``type(unknown) == str`` instead of " -"``isinstance(unknown, str)``), and in those locations you will need to use " -"``str(MyStrEnum.MY_MEMBER)``." -msgstr "" -"Il y a des endroits dans la bibliothèque standard qui vérifient s'ils ont " -"affaire à une sous-classe :class:`str` exacte au lieu d'une sous-" -"classe :class:`str` (c'est-à-dire ``type(unknown) == str`` au lieu de " -"``isinstance(str, unknown)``) et, dans ce cas, vous devez utiliser " -"``str(StrEnum.member)``." - -#: library/enum.rst:594 -msgid "" -"Using :class:`auto` with :class:`StrEnum` results in the lower-cased member " -"name as the value." -msgstr "" -"L'utilisation de :class:`auto` avec :class:`StrEnum` donne le nom du membre " -"en minuscule comme valeur." - -#: library/enum.rst:599 -#, fuzzy -msgid "" -":meth:`~object.__str__` is :meth:`!str.__str__` to better support the " -"*replacement of existing constants* use-case. :meth:`~object.__format__` is " -"likewise :meth:`!str.__format__` for that same reason." -msgstr "" -":meth:`__str__` est :func:`str.__str__` pour mieux prendre en charge le cas " -"d'utilisation de *remplacement de constantes existantes*. :meth:`__format__` " -"est également :func:`str.__format__` pour la même raison." - -#: library/enum.rst:607 -#, fuzzy -msgid "" -"``Flag`` is the same as :class:`Enum`, but its members support the bitwise " -"operators ``&`` (*AND*), ``|`` (*OR*), ``^`` (*XOR*), and ``~`` (*INVERT*); " -"the results of those operations are (aliases of) members of the enumeration." -msgstr "" -"Les membres *Flag* prennent en charge les opérateurs bit-à-bit ``&`` (*ET*), " -"``|`` (*OU*), ``^`` (*OU EXCLUSIF*) et ``~`` (*NON*) ; les résultats de ces " -"opérations sont membres de l'énumération." - -#: library/enum.rst:613 -msgid "Returns *True* if value is in self::" -msgstr "Renvoie *True* si la valeur est dans *self* ::" - -#: library/enum.rst:634 -#, fuzzy -msgid "Returns all contained non-alias members::" -msgstr "Renvoie tous les membres ::" - -#: library/enum.rst:645 -msgid "Returns number of members in flag::" -msgstr "Renvoie le nombre de membres de *Flag* ::" - -#: library/enum.rst:656 -msgid "Returns *True* if any members in flag, *False* otherwise::" -msgstr "" -"Renvoie *True* s'il y a un membre dans les bits de *Flag*, *False* sinon ::" - -#: library/enum.rst:668 -msgid "Returns current flag binary or'ed with other::" -msgstr "Renvoie le *OU* logique entre le membre et *other* ::" - -#: library/enum.rst:675 -msgid "Returns current flag binary and'ed with other::" -msgstr "Renvoie le *ET* logique entre le membre et *other* ::" - -#: library/enum.rst:684 -msgid "Returns current flag binary xor'ed with other::" -msgstr "Renvoie le *OU Exclusif* logique entre le membre et *other* ::" - -#: library/enum.rst:693 -#, fuzzy -msgid "Returns all the flags in *type(self)* that are not in *self*::" -msgstr "" -"Renvoie tous les membres de *type(self)* qui ne sont pas dans *self* " -"(opération logique sur les bits) ::" - -#: library/enum.rst:704 -msgid "" -"Function used to format any remaining unnamed numeric values. Default is " -"the value's repr; common choices are :func:`hex` and :func:`oct`." -msgstr "" -"Fonction utilisée pour formater toutes les valeurs numériques sans nom " -"restantes. La valeur par défaut est la représentation de la valeur ; les " -"choix courants sont :func:`hex` et :func:`oct`." - -#: library/enum.rst:709 -msgid "" -"Using :class:`auto` with :class:`Flag` results in integers that are powers " -"of two, starting with ``1``." -msgstr "" -"L'utilisation de :class:`auto` avec :class:`Flag` donne des entiers qui sont " -"des puissances de deux, en commençant par ``1``." - -#: library/enum.rst:712 -#, fuzzy -msgid "The *repr()* of zero-valued flags has changed. It is now:" -msgstr "La *repr()* des membres de valeur zéro a changé. C'est maintenant ::" - -#: library/enum.rst:720 -#, fuzzy -msgid "" -"``IntFlag`` is the same as :class:`Flag`, but its members are also integers " -"and can be used anywhere that an integer can be used." -msgstr "" -"*IntFlag* est identique à *Flag*, mais ses membres sont également des " -"entiers et peuvent être utilisés partout où un entier peut être utilisé." - -#: library/enum.rst:734 -msgid "" -"If any integer operation is performed with an *IntFlag* member, the result " -"is not an *IntFlag*::" -msgstr "" -"Si une opération sur un entier est effectuée avec un membre d'un *IntFlag*, " -"le résultat n'est pas un *IntFlag* ::" - -#: library/enum.rst:740 -#, fuzzy -msgid "If a :class:`Flag` operation is performed with an *IntFlag* member and:" -msgstr "Si une opération *Flag* est effectuée avec un membre *IntFlag* et :" - -#: library/enum.rst:742 -msgid "the result is a valid *IntFlag*: an *IntFlag* is returned" -msgstr "le résultat est un *IntFlag* valide : un *IntFlag* est renvoyé ;" - -#: library/enum.rst:743 -#, fuzzy -msgid "" -"the result is not a valid *IntFlag*: the result depends on " -"the :class:`FlagBoundary` setting" -msgstr "" -"le résultat n'est pas un *IntFlag* valide : le résultat dépend du paramètre " -"*FlagBoundary*." - -#: library/enum.rst:745 -#, fuzzy -msgid "The :func:`repr` of unnamed zero-valued flags has changed. It is now::" -msgstr "" -"La *repr()* des *intflag* sans nom à valeur nulle a changé. C'est " -"maintenant :" - -#: library/enum.rst:752 -msgid "" -"Using :class:`auto` with :class:`IntFlag` results in integers that are " -"powers of two, starting with ``1``." -msgstr "" -"L'utilisation de :class:`auto` avec :class:`IntFlag` donne des entiers qui " -"sont des puissances de deux, en commençant par ``1``." - -#: library/enum.rst:757 -#, fuzzy -msgid "" -":meth:`~object.__str__` is now :meth:`!int.__str__` to better support the " -"*replacement of existing constants* use-case. :meth:`~object.__format__` " -"was already :meth:`!int.__format__` for that same reason." -msgstr "" -":meth:`__str__` est maintenant :func:`int.__str__` pour mieux prendre en " -"charge le cas d'utilisation du *remplacement de constantes " -"existantes*. :meth:`__format__` était déjà :func:`int.__format__` pour la " -"même raison." - -#: library/enum.rst:761 -msgid "" -"Inversion of an :class:`!IntFlag` now returns a positive value that is the " -"union of all flags not in the given flag, rather than a negative value. This " -"matches the existing :class:`Flag` behavior." -msgstr "" - -#: library/enum.rst:767 -#, fuzzy -msgid "" -":class:`!ReprEnum` uses the :meth:`repr() ` of :class:`Enum`, " -"but the :class:`str() ` of the mixed-in data type:" -msgstr ":class:`IntEnum`, :class:`StrEnum` et :class:`IntFlag` :" - -#: library/enum.rst:770 -#, fuzzy -msgid ":meth:`!int.__str__` for :class:`IntEnum` and :class:`IntFlag`" -msgstr ":class:`IntEnum`, :class:`StrEnum` et :class:`IntFlag`" - -#: library/enum.rst:771 -msgid ":meth:`!str.__str__` for :class:`StrEnum`" -msgstr "" - -#: library/enum.rst:773 -msgid "" -"Inherit from :class:`!ReprEnum` to keep the :class:`str() " -"` / :func:`format` of the mixed-in data type instead of using " -"the :class:`Enum`-default :meth:`str() `." -msgstr "" - -#: library/enum.rst:782 -msgid "" -"*EnumCheck* contains the options used by the :func:`verify` decorator to " -"ensure various constraints; failed constraints result in a :exc:`ValueError`." -msgstr "" -"*EnumCheck* contient les options utilisées par le décorateur :func:`verify` " -"pour assurer diverses contraintes ; si une contrainte n'est pas validée, " -"une :exc:`ValueError` est levée." - -#: library/enum.rst:787 -msgid "Ensure that each value has only one name::" -msgstr "Assure que chaque valeur n'a qu'un seul nom ::" - -#: library/enum.rst:803 -msgid "" -"Ensure that there are no missing values between the lowest-valued member and " -"the highest-valued member::" -msgstr "" -"Assure qu'il n'y a pas de valeurs manquantes entre le membre ayant la valeur " -"la plus faible et le membre ayant la valeur la plus élevée ::" - -#: library/enum.rst:818 -#, fuzzy -msgid "" -"Ensure that any flag groups/masks contain only named flags -- useful when " -"values are specified instead of being generated by :func:`auto`::" -msgstr "" -"Assure que tous les groupes/masques sont possibles en n'utilisant que des " -"membres nommés — utile lorsque des valeurs sont spécifiées au lieu d'être " -"générées par :func:`auto` ::" - -#: library/enum.rst:835 -msgid "" -"CONTINUOUS and NAMED_FLAGS are designed to work with integer-valued members." -msgstr "" -"CONTINUOUS et NAMED_FLAGS sont conçus pour fonctionner avec des membres à " -"valeur entière." - -#: library/enum.rst:841 -#, fuzzy -msgid "" -"``FlagBoundary`` controls how out-of-range values are handled " -"in :class:`Flag` and its subclasses." -msgstr "" -"*FlagBoundary* contrôle la façon dont les valeurs hors plage sont gérées " -"dans *Flag* et ses sous-classes." - -#: library/enum.rst:846 -#, fuzzy -msgid "" -"Out-of-range values cause a :exc:`ValueError` to be raised. This is the " -"default for :class:`Flag`::" -msgstr "" -"Les valeurs hors plage provoquent la levée d'une :exc:`ValueError`. C'est la " -"valeur par défaut pour :class:`Flag` ::" - -#: library/enum.rst:864 -#, fuzzy -msgid "" -"Out-of-range values have invalid values removed, leaving a " -"valid :class:`Flag` value::" -msgstr "" -"Les valeurs hors plage, invalides, sont supprimées laissant une valeur " -"*Flag* valide ::" - -#: library/enum.rst:878 -#, fuzzy -msgid "" -"Out-of-range values lose their :class:`Flag` membership and revert " -"to :class:`int`." -msgstr "" -"Les valeurs hors plage perdent leur appartenance à *Flag* et reviennent " -"à :class:`int`. C'est la valeur par défaut pour :class:`IntFlag` ::" - -#: library/enum.rst:891 -#, fuzzy -msgid "" -"Out-of-range values are kept, and the :class:`Flag` membership is kept. This " -"is the default for :class:`IntFlag`::" -msgstr "" -"Les valeurs hors plage sont conservées et l'appartenance *Flag* est " -"conservée. C'est utilisé pour certains drapeaux de la bibliothèque standard :" - -#: library/enum.rst:907 -msgid "" -"*EnumDict* is a subclass of :class:`dict` that is used as the namespace for " -"defining enum classes (see :ref:`prepare`). It is exposed to allow " -"subclasses of :class:`EnumType` with advanced behavior like having multiple " -"values per member. It should be called with the name of the enum class being " -"created, otherwise private names and internal classes will not be handled " -"correctly." -msgstr "" - -#: library/enum.rst:914 -msgid "" -"Note that only the :class:`~collections.abc.MutableMapping` interface " -"(:meth:`~object.__setitem__` and :meth:`~dict.update`) is overridden. It may " -"be possible to bypass the checks using other :class:`!dict` operations " -"like :meth:`|= `." -msgstr "" - -#: library/enum.rst:921 -#, fuzzy -msgid "A list of member names." -msgstr "Liste des valeurs précédentes." - -#: library/enum.rst:930 -msgid "Supported ``__dunder__`` names" -msgstr "Noms de la forme ``__dunder__`` disponibles" - -#: library/enum.rst:932 -#, fuzzy -msgid "" -":attr:`~EnumType.__members__` is a read-only ordered mapping of " -"``member_name``:``member`` items. It is only available on the class." -msgstr "" -":attr:`__members__` est un dictionnaire en lecture seule ordonné d'éléments " -"``nom_du_membre`` : ``membre``. Il n'est disponible que depuis la classe." - -#: library/enum.rst:935 -#, fuzzy -msgid "" -":meth:`~Enum.__new__`, if specified, must create and return the enum " -"members; it is also a very good idea to set the " -"member's :attr:`~Enum._value_` appropriately. Once all the members are " -"created it is no longer used." -msgstr "" -"La méthode :meth:`__new__`, si elle est définie, doit créer et renvoyer les " -"membres de l'énumération ; affecter correctement l'attribut :attr:`_value_` " -"du membre est également conseillé. Une fois que tous les membres ont été " -"créés, cette méthode n'est plus utilisée." - -#: library/enum.rst:941 -msgid "Supported ``_sunder_`` names" -msgstr "Noms de la forme ``_sunder_`` disponibles" - -#: library/enum.rst:943 -#, fuzzy -msgid ":attr:`~Enum._name_` -- name of the member" -msgstr "``_name_`` — nom du membre" - -#: library/enum.rst:944 -#, fuzzy -msgid ":attr:`~Enum._value_` -- value of the member; can be set in ``__new__``" -msgstr "" -"``_value_`` — valeur du membre ; il est possible d'y accéder et de la " -"modifier dans ``__new__``" - -#: library/enum.rst:945 -#, fuzzy -msgid "" -":meth:`~Enum._missing_` -- a lookup function used when a value is not found; " -"may be overridden" -msgstr "" -"``_missing_`` — fonction de recherche appelée quand la valeur n'est pas " -"trouvée ; elle peut être redéfinie" - -#: library/enum.rst:947 -#, fuzzy -msgid "" -":attr:`~Enum._ignore_` -- a list of names, either as a :class:`list` or " -"a :class:`str`, that will not be transformed into members, and will be " -"removed from the final class" -msgstr "" -"``_ignore_`` — liste de noms, sous la forme d'une :func:`list` ou " -"d'une :func:`str`, qui ne sont pas convertis en membres et sont supprimés de " -"la classe résultante" - -#: library/enum.rst:950 -#, fuzzy -msgid "" -":attr:`~Enum._order_` -- no longer used, kept for backward compatibility " -"(class attribute, removed during class creation)" -msgstr "" -"``_order_`` — utilisée en Python 2 ou 3 pour s'assurer que l'ordre des " -"membres est cohérent dans les différentes versions de Python (attribut de " -"classe, supprimé durant la création de la classe)" - -#: library/enum.rst:953 -#, fuzzy -msgid "" -":meth:`~Enum._generate_next_value_` -- used to get an appropriate value for " -"an enum member; may be overridden" -msgstr "" -"``_generate_next_value_`` — utilisée pour obtenir une valeur appropriée à " -"affecter à un membre de l’énumération ; elle peut être redéfinie" - -#: library/enum.rst:956 -msgid "" -":meth:`~Enum._add_alias_` -- adds a new name as an alias to an existing " -"member." -msgstr "" - -#: library/enum.rst:958 -msgid "" -":meth:`~Enum._add_value_alias_` -- adds a new value as an alias to an " -"existing member." -msgstr "" - -#: library/enum.rst:961 -msgid "" -"While ``_sunder_`` names are generally reserved for the further development " -"of the :class:`Enum` class and can not be used, some are explicitly allowed:" -msgstr "" - -#: library/enum.rst:964 -msgid "" -"``_repr_*`` (e.g. ``_repr_html_``), as used in `IPython's rich display`_" -msgstr "" - -#: library/enum.rst:966 -msgid "``_missing_``, ``_order_``, ``_generate_next_value_``" -msgstr "``_missing_``, ``_order_``, ``_generate_next_value_``" - -#: library/enum.rst:967 -msgid "``_ignore_``" -msgstr "``_ignore_``" - -#: library/enum.rst:968 -msgid "``_add_alias_``, ``_add_value_alias_``, ``_repr_*``" -msgstr "" - -#: library/enum.rst:974 -#, fuzzy -msgid "Utilities and decorators" -msgstr "Utilitaires et décorateurs" - -#: library/enum.rst:978 -#, fuzzy -msgid "" -"*auto* can be used in place of a value. If used, the *Enum* machinery will " -"call an :class:`Enum`'s :meth:`~Enum._generate_next_value_` to get an " -"appropriate value. For :class:`Enum` and :class:`IntEnum` that appropriate " -"value will be the highest value seen plus one; for :class:`Flag` " -"and :class:`IntFlag` it will be the first power-of-two greater than the " -"highest value seen; for :class:`StrEnum` it will be the lower-cased version " -"of the member's name. Care must be taken if mixing *auto()* with manually " -"specified values." -msgstr "" -"*auto* peut être utilisée à la place d'une valeur. Si elle est utilisée, le " -"fonctionnement interne d'*Enum* appelle :meth:`_generate_next_value_` pour " -"obtenir une valeur appropriée. Pour *Enum* et *IntEnum*, cette valeur " -"appropriée est la dernière valeur plus un ; pour *Flag* et *IntFlag*, c'est " -"la première puissance de deux supérieure à la plus grande valeur ; pour " -"*StrEnum*, c'est le nom du membre en minuscules." - -#: library/enum.rst:986 -msgid "" -"*auto* instances are only resolved when at the top level of an assignment, " -"either by itself or as part of a tuple:" -msgstr "" - -#: library/enum.rst:989 -msgid "``FIRST = auto()`` will work (auto() is replaced with ``1``);" -msgstr "" - -#: library/enum.rst:990 -msgid "" -"``SECOND = auto(), -2`` will work (auto is replaced with ``2``, so ``2, -2`` " -"is used to create the ``SECOND`` enum member;" -msgstr "" - -#: library/enum.rst:992 -msgid "" -"``THIRD = [auto(), -3]`` will *not* work (``[, -3]`` is used " -"to create the ``THIRD`` enum member)" -msgstr "" - -#: library/enum.rst:997 -msgid "" -"In prior versions, ``auto()`` had to be the only thing on the assignment " -"line to work properly." -msgstr "" - -#: library/enum.rst:1000 -msgid "" -"``_generate_next_value_`` can be overridden to customize the values used by " -"*auto*." -msgstr "" -"``_generate_next_value_`` peut être surchargée pour personnaliser les " -"valeurs produites par *auto*." - -#: library/enum.rst:1003 -msgid "" -"In version 3.13 the default ``_generate_next_value_`` will always return the " -"highest member value incremented by 1, and will fail if any member is an " -"incompatible type." -msgstr "" - -#: library/enum.rst:1009 -msgid "" -"A decorator similar to the built-in *property*, but specifically for " -"enumerations. It allows member attributes to have the same names as members " -"themselves." -msgstr "" -"Décorateur similaire au *property* natif, mais spécifique aux énumérations. " -"Il permet aux attributs de membre d'avoir les mêmes noms que les membres eux-" -"mêmes." - -#: library/enum.rst:1013 -#, fuzzy -msgid "" -"The *property* and the member must be defined in separate classes; for " -"example, the *value* and *name* attributes are defined in the *Enum* class, " -"and *Enum* subclasses can define members with the names ``value`` and " -"``name``." -msgstr "" -"*property* et le membre doivent être définis dans des classes distinctes ; " -"par exemple, les attributs *value* et *name* sont définis dans la classe " -"*Enum*, et les sous-classes d'*Enum* peuvent définir des membres avec les " -"noms ``value`` et ``name``." - -#: library/enum.rst:1022 -#, fuzzy -msgid "" -"A :keyword:`class` decorator specifically for enumerations. It searches an " -"enumeration's :attr:`~EnumType.__members__`, gathering any aliases it finds; " -"if any are found :exc:`ValueError` is raised with the details::" -msgstr "" -"Décorateur de :keyword:`classe ` spécifique aux énumérations. Il " -"examine l'attribut :attr:`__members__` d'une énumération et recherche des " -"synonymes ; s'il en trouve, l'exception :exc:`ValueError` est levée avec des " -"détails ::" - -#: library/enum.rst:1040 -msgid "" -"A :keyword:`class` decorator specifically for enumerations. Members " -"from :class:`EnumCheck` are used to specify which constraints should be " -"checked on the decorated enumeration." -msgstr "" -"Décorateur de :keyword:`classe ` spécifique aux énumérations. Utilisé " -"pour spécifier quelles contraintes doivent être vérifiées par les membres de " -"l':class:`EnumCheck` décorée." - -#: library/enum.rst:1048 -msgid "A decorator for use in enums: its target will become a member." -msgstr "" -"Décorateur à utiliser dans les énumérations : sa cible devient un membre." - -#: library/enum.rst:1054 -msgid "A decorator for use in enums: its target will not become a member." -msgstr "" -"Décorateur à utiliser dans les énumérations : sa cible ne devient pas un " -"membre." - -#: library/enum.rst:1060 -msgid "" -"A decorator to change the :class:`str() ` and :func:`repr` of an enum " -"to show its members as belonging to the module instead of its class. Should " -"only be used when the enum members are exported to the module global " -"namespace (see :class:`re.RegexFlag` for an example)." -msgstr "" - -#: library/enum.rst:1070 -msgid "Return a list of all power-of-two integers contained in a flag *value*." -msgstr "" - -#: library/enum.rst:1091 -msgid "Notes" -msgstr "Notes" - -#: library/enum.rst:1093 -msgid ":class:`IntEnum`, :class:`StrEnum`, and :class:`IntFlag`" -msgstr ":class:`IntEnum`, :class:`StrEnum` et :class:`IntFlag`" - -#: library/enum.rst:1095 -msgid "" -"These three enum types are designed to be drop-in replacements for existing " -"integer- and string-based values; as such, they have extra limitations:" -msgstr "" -"Ces trois types d'énumération sont conçus pour remplacer directement les " -"valeurs existantes basées sur des entiers et des chaînes ; en tant que tels, " -"ils ont des limitations supplémentaires :" - -#: library/enum.rst:1098 -msgid "``__str__`` uses the value and not the name of the enum member" -msgstr "``__str__`` utilise la valeur et pas le nom du membre de l'énumération" - -#: library/enum.rst:1100 -msgid "" -"``__format__``, because it uses ``__str__``, will also use the value of the " -"enum member instead of its name" -msgstr "" -"``__format__``, parce qu'elle fait appel à ``__str__``, utilise également la " -"valeur du membre de l'énumération au lieu de son nom" - -#: library/enum.rst:1103 -msgid "" -"If you do not need/want those limitations, you can either create your own " -"base class by mixing in the ``int`` or ``str`` type yourself::" -msgstr "" -"Si ces limitations ne vous conviennent pas, vous pouvez créer votre propre " -"classe mère en mélangeant vous-même le type ``int`` ou ``str`` ::" - -#: library/enum.rst:1110 -msgid "or you can reassign the appropriate :meth:`str`, etc., in your enum::" -msgstr "" -"ou vous pouvez réassigner la :meth:`str` appropriée, etc., dans votre " -"énumération ::" - -#~ msgid "" -#~ "Returns the Enum member in *cls* matching *name*, or raises " -#~ "an :exc:`AttributeError`::" -#~ msgstr "" -#~ "Renvoie le membre de l'énumération *cls* correspondant à *name* ou lève " -#~ "une :exc:`AttributeError` ::" - -#, fuzzy -#~ msgid "used to create the ``SECOND`` enum member;" -#~ msgstr "Le nom utilisé pour définir le membre de l'``Enum`` ::" - -#~ msgid "" -#~ ":meth:`__str__` is now :func:`int.__str__` to better support the " -#~ "*replacement of existing constants* use-case. :meth:`__format__` was " -#~ "already :func:`int.__format__` for that same reason." -#~ msgstr "" -#~ ":meth:`__str__` est maintenant :func:`int.__str__` pour mieux prendre en " -#~ "charge le cas d'utilisation du *remplacement de constantes " -#~ "existantes*. :meth:`__format__` était déjà :func:`int.__format__` pour la " -#~ "même raison." - -#~ msgid "``StrEnum``, ``EnumCheck``, ``FlagBoundary``, ``property``" -#~ msgstr "``StrEnum``, ``EnumCheck``, ``FlagBoundary``, ``property``" - -#~ msgid "``member``, ``nonmember``" -#~ msgstr "``member``, ``nonmember``" - -#~ msgid "" -#~ "An enumeration is a set of symbolic names (members) bound to unique, " -#~ "constant values. Within an enumeration, the members can be compared by " -#~ "identity, and the enumeration itself can be iterated over." -#~ msgstr "" -#~ "Une énumération est un ensemble de noms symboliques, appelés *membres*, " -#~ "liés à des valeurs constantes et uniques. Au sein d'une énumération, les " -#~ "membres peuvent être comparés et il est possible d'itérer sur " -#~ "l'énumération elle-même." - -#~ msgid "Case of Enum Members" -#~ msgstr "Convention de nommage pour les membres d'une **Enum**" - -#~ msgid "" -#~ "Because Enums are used to represent constants we recommend using " -#~ "UPPER_CASE names for enum members, and will be using that style in our " -#~ "examples." -#~ msgstr "" -#~ "Puisque les **Enums** sont utilisées pour représenter des constantes, il " -#~ "est recommandé d'utiliser des majuscules (format " -#~ "``MAJUSCULE_AVEC_SOULIGNÉS``) pour leurs membres. Cette convention de " -#~ "style sera utilisée dans les exemples." - -#~ msgid "" -#~ "This module defines four enumeration classes that can be used to define " -#~ "unique sets of names and " -#~ "values: :class:`Enum`, :class:`IntEnum`, :class:`Flag`, " -#~ "and :class:`IntFlag`. It also defines one decorator, :func:`unique`, and " -#~ "one helper, :class:`auto`." -#~ msgstr "" -#~ "Ce module définit quatre classes d'énumération qui permettent de définir " -#~ "des ensembles uniques de noms et de " -#~ "valeurs : :class:`Enum`, :class:`IntEnum`, :class:`Flag` " -#~ "et :class:`IntFlag`. Il fournit également un décorateur, :func:`unique`, " -#~ "ainsi qu'une classe utilitaire, :class:`auto`." - -#~ msgid "" -#~ "Base class for creating enumerated constants. See section `Functional " -#~ "API`_ for an alternate construction syntax." -#~ msgstr "" -#~ "Classe de base pour créer une énumération de constantes. Voir la section " -#~ "`API par fonction`_ pour une syntaxe alternative de construction." - -#~ msgid "Creating an Enum" -#~ msgstr "Création d'une *Enum*" - -#~ msgid "" -#~ "Enumerations are created using the :keyword:`class` syntax, which makes " -#~ "them easy to read and write. An alternative creation method is described " -#~ "in `Functional API`_. To define an enumeration, subclass :class:`Enum` " -#~ "as follows::" -#~ msgstr "" -#~ "Une énumération est créée comme une :keyword:`class`, ce qui la rend " -#~ "facile à lire et à écrire. Une autre méthode de création est décrite dans " -#~ "`API par fonction`_. Pour définir une énumération, il faut hériter " -#~ "de :class:`Enum` de la manière suivante ::" - -#~ msgid "Enumeration members have human readable string representations::" -#~ msgstr "" -#~ "Les membres d'une énumération ont une représentation en chaîne de " -#~ "caractères compréhensible par un humain ::" - -#~ msgid "...while their ``repr`` has more information::" -#~ msgstr "… tandis que leur ``repr`` contient plus d'informations ::" - -#~ msgid "" -#~ "The *type* of an enumeration member is the enumeration it belongs to::" -#~ msgstr "" -#~ "Le *type* d'un membre est l'énumération auquel ce membre appartient ::" - -#~ msgid "" -#~ "Enum members also have a property that contains just their item name::" -#~ msgstr "Les membres ont également un attribut qui contient leur nom ::" - -#~ msgid "" -#~ "Enumeration members are hashable, so they can be used in dictionaries and " -#~ "sets::" -#~ msgstr "" -#~ "Les membres d'une énumération sont hachables, ils peuvent ainsi être " -#~ "utilisés dans des dictionnaires ou des ensembles ::" - -#~ msgid "Programmatic access to enumeration members and their attributes" -#~ msgstr "Accès dynamique aux membres et à leurs attributs" - -#~ msgid "" -#~ "Sometimes it's useful to access members in enumerations programmatically " -#~ "(i.e. situations where ``Color.RED`` won't do because the exact color is " -#~ "not known at program-writing time). ``Enum`` allows such access::" -#~ msgstr "" -#~ "Il est parfois utile de pouvoir accéder dynamiquement aux membres d'une " -#~ "énumération (p. ex. dans des situations où il ne suffit pas d'utiliser " -#~ "``Color.RED`` car la couleur précise n'est pas connue à l'écriture du " -#~ "programme). ``Enum`` permet de tels accès ::" - -#~ msgid "If you want to access enum members by *name*, use item access::" -#~ msgstr "" -#~ "Pour accéder aux membres par leur *nom*, utilisez l'accès par " -#~ "indexation ::" - -#~ msgid "" -#~ "If you have an enum member and need its :attr:`name` or :attr:`value`::" -#~ msgstr "" -#~ "Pour obtenir l'attribut :attr:`name` ou :attr:`value` d'un membre ::" - -#~ msgid "Duplicating enum members and values" -#~ msgstr "Duplication de membres et de valeurs" - -#~ msgid "Having two enum members with the same name is invalid::" -#~ msgstr "" -#~ "Il n'est pas possible d'avoir deux membres du même nom dans un *enum* ::" - -#~ msgid "" -#~ "However, two enum members are allowed to have the same value. Given two " -#~ "members A and B with the same value (and A defined first), B is an alias " -#~ "to A. By-value lookup of the value of A and B will return A. By-name " -#~ "lookup of B will also return A::" -#~ msgstr "" -#~ "Cependant deux membres peuvent avoir la même valeur. Si deux membres A et " -#~ "B ont la même valeur (et que A est défini en premier), B sera un alias de " -#~ "A. Un accès par valeur avec la valeur commune à A et B renverra A. Un " -#~ "accès à B par nom renverra aussi A ::" - -#~ msgid "" -#~ "Attempting to create a member with the same name as an already defined " -#~ "attribute (another member, a method, etc.) or attempting to create an " -#~ "attribute with the same name as a member is not allowed." -#~ msgstr "" -#~ "Il est interdit de créer un membre avec le même nom qu'un attribut déjà " -#~ "défini (un autre membre, une méthode, etc.) ou de créer un attribut avec " -#~ "le nom d'un membre." - -#~ msgid "Ensuring unique enumeration values" -#~ msgstr "Coercition d'unicité des valeurs d'une énumération" - -#~ msgid "" -#~ "By default, enumerations allow multiple names as aliases for the same " -#~ "value. When this behavior isn't desired, the following decorator can be " -#~ "used to ensure each value is used only once in the enumeration:" -#~ msgstr "" -#~ "Par défaut, les énumérations autorisent les alias de nom pour une même " -#~ "valeur. Quand ce comportement n'est pas désiré, il faut utiliser le " -#~ "décorateur suivant pour s'assurer que chaque valeur n'est utilisée qu'une " -#~ "seule fois au sein de l'énumération :" - -#~ msgid "Using automatic values" -#~ msgstr "Valeurs automatiques" - -#~ msgid "If the exact value is unimportant you can use :class:`auto`::" -#~ msgstr "" -#~ "Si la valeur exacte n'a pas d'importance, vous pouvez " -#~ "utiliser :class:`auto` ::" - -#~ msgid "" -#~ "The values are chosen by :func:`_generate_next_value_`, which can be " -#~ "overridden::" -#~ msgstr "" -#~ "Les valeurs sont déterminées par :func:`_generate_next_value_`, qui peut " -#~ "être redéfinie ::" - -#~ msgid "" -#~ "The goal of the default :meth:`_generate_next_value_` method is to " -#~ "provide the next :class:`int` in sequence with the last :class:`int` " -#~ "provided, but the way it does this is an implementation detail and may " -#~ "change." -#~ msgstr "" -#~ "La méthode :meth:`_generate_next_value_` doit renvoyer le " -#~ "prochain :class:`int` de la séquence à partir du dernier :class:`int` " -#~ "fourni, mais l'implémentation de cette fonction peut changer." - -#~ msgid "" -#~ "The :meth:`_generate_next_value_` method must be defined before any " -#~ "members." -#~ msgstr "" -#~ "La méthode :meth:`_generate_next_value_` doit être définie avant tout " -#~ "membre." - -#~ msgid "Iteration" -#~ msgstr "Itération" - -#~ msgid "Iterating over the members of an enum does not provide the aliases::" -#~ msgstr "" -#~ "Itérer sur les membres d'une énumération ne parcourt pas les alias ::" - -#~ msgid "" -#~ "The special attribute ``__members__`` is a read-only ordered mapping of " -#~ "names to members. It includes all names defined in the enumeration, " -#~ "including the aliases::" -#~ msgstr "" -#~ "L'attribut spécial ``__members__`` est un dictionnaire en lecture seule " -#~ "ordonné qui fait correspondre les noms aux membres. Il inclut tous les " -#~ "noms définis dans l'énumération, alias compris ::" - -#~ msgid "" -#~ "The ``__members__`` attribute can be used for detailed programmatic " -#~ "access to the enumeration members. For example, finding all the aliases::" -#~ msgstr "" -#~ "L'attribut ``__members__`` peut servir à accéder dynamiquement aux " -#~ "membres de l'énumération. Par exemple, pour trouver tous les alias ::" - -#~ msgid "Comparisons" -#~ msgstr "Comparaisons" - -#~ msgid "Enumeration members are compared by identity::" -#~ msgstr "Les membres d'une énumération sont comparés par identité ::" - -#~ msgid "" -#~ "Ordered comparisons between enumeration values are *not* supported. Enum " -#~ "members are not integers (but see `IntEnum`_ below)::" -#~ msgstr "" -#~ "Les comparaisons d'ordre entre les valeurs d'une énumération n'existent " -#~ "*pas* ; les membres d'un *enum* ne sont pas des entiers (voir cependant " -#~ "`IntEnum`_ ci-dessous) ::" - -#~ msgid "Equality comparisons are defined though::" -#~ msgstr "A contrario, les comparaisons d'égalité existent ::" - -#~ msgid "" -#~ "Comparisons against non-enumeration values will always compare not equal " -#~ "(again, :class:`IntEnum` was explicitly designed to behave differently, " -#~ "see below)::" -#~ msgstr "" -#~ "Les comparaisons avec des valeurs ne provenant pas d'énumérations sont " -#~ "toujours fausses (ici encore, :class:`IntEnum` a été conçue pour " -#~ "fonctionner différemment, voir ci-dessous) ::" - -#~ msgid "Allowed members and attributes of enumerations" -#~ msgstr "Membres et attributs autorisés dans une énumération" - -#~ msgid "" -#~ "The examples above use integers for enumeration values. Using integers " -#~ "is short and handy (and provided by default by the `Functional API`_), " -#~ "but not strictly enforced. In the vast majority of use-cases, one " -#~ "doesn't care what the actual value of an enumeration is. But if the " -#~ "value *is* important, enumerations can have arbitrary values." -#~ msgstr "" -#~ "Les exemples précédents utilisent des entiers pour énumérer les valeurs. " -#~ "C'est un choix concis et pratique (et implémenté par défaut dans l'`API " -#~ "par fonction`_), mais ce n'est pas une obligation. Dans la majorité des " -#~ "cas, il importe peu de connaître la valeur réelle d'une énumération. Il " -#~ "est toutefois possible de donner une valeur arbitraire aux énumérations, " -#~ "si cette valeur est *vraiment* significative." - -#~ msgid "" -#~ "Enumerations are Python classes, and can have methods and special methods " -#~ "as usual. If we have this enumeration::" -#~ msgstr "" -#~ "Les énumérations sont des classes Python et peuvent donc avoir des " -#~ "méthodes et des méthodes spéciales. L'énumération suivante ::" - -#~ msgid "Then::" -#~ msgstr "Amène ::" - -#~ msgid "" -#~ "The rules for what is allowed are as follows: names that start and end " -#~ "with a single underscore are reserved by enum and cannot be used; all " -#~ "other attributes defined within an enumeration will become members of " -#~ "this enumeration, with the exception of special methods " -#~ "(:meth:`__str__`, :meth:`__add__`, etc.), descriptors (methods are also " -#~ "descriptors), and variable names listed in :attr:`_ignore_`." -#~ msgstr "" -#~ "Les règles pour ce qui est autorisé sont les suivantes : les noms qui " -#~ "commencent et finissent avec un seul tiret bas sont réservés par *enum* " -#~ "et ne peuvent pas être utilisés ; tous les autres attributs définis dans " -#~ "l'énumération en deviendront des membres, à l'exception des méthodes " -#~ "spéciales (:meth:`__str__`, :meth:`__add__`, etc.), des descripteurs (les " -#~ "méthodes sont aussi des descripteurs) et des noms de variable listés " -#~ "dans :attr:`_ignore_`." - -#~ msgid "" -#~ "Note: if your enumeration defines :meth:`__new__` and/" -#~ "or :meth:`__init__` then any value(s) given to the enum member will be " -#~ "passed into those methods. See `Planet`_ for an example." -#~ msgstr "" -#~ "Remarque : si votre énumération définit :meth:`__new__` " -#~ "ou :meth:`__init__`, alors les valeurs affectées aux membres seront " -#~ "passées à ces méthodes. Voir `Planet`_ pour exemple." - -#~ msgid "Restricted Enum subclassing" -#~ msgstr "Restrictions sur l'héritage" - -#~ msgid "" -#~ "A new :class:`Enum` class must have one base Enum class, up to one " -#~ "concrete data type, and as many :class:`object`-based mixin classes as " -#~ "needed. The order of these base classes is::" -#~ msgstr "" -#~ "Une nouvelle classe :class:`Enum` doit avoir une classe *Enum* de base, " -#~ "au plus un type de données concret et autant de classes de mélange " -#~ "(basées sur :class:`object`) que nécessaire. L'ordre de ces classes de " -#~ "base est le suivant ::" - -#~ msgid "" -#~ "Also, subclassing an enumeration is allowed only if the enumeration does " -#~ "not define any members. So this is forbidden::" -#~ msgstr "" -#~ "Hériter d'une énumération n'est permis que si cette énumération ne " -#~ "définit aucun membre. Le code suivant n'est pas autorisé ::" - -#~ msgid "But this is allowed::" -#~ msgstr "Mais celui-ci est correct ::" - -#~ msgid "" -#~ "Allowing subclassing of enums that define members would lead to a " -#~ "violation of some important invariants of types and instances. On the " -#~ "other hand, it makes sense to allow sharing some common behavior between " -#~ "a group of enumerations. (See `OrderedEnum`_ for an example.)" -#~ msgstr "" -#~ "Autoriser l'héritage d'*enums* définissant des membres violerait des " -#~ "invariants sur les types et les instances. D'un autre côté, il est " -#~ "logique d'autoriser un groupe d'énumérations à partager un comportement " -#~ "commun (voir par exemple `OrderedEnum`_)." - -#~ msgid "Pickling" -#~ msgstr "Sérialisation" - -#~ msgid "Enumerations can be pickled and unpickled::" -#~ msgstr "Les énumérations peuvent être sérialisées et déserialisées ::" - -#~ msgid "" -#~ "The usual restrictions for pickling apply: picklable enums must be " -#~ "defined in the top level of a module, since unpickling requires them to " -#~ "be importable from that module." -#~ msgstr "" -#~ "Les restrictions habituelles de sérialisation s'appliquent : les *enums* " -#~ "à sérialiser doivent être déclarés dans l'espace de nom de haut niveau du " -#~ "module, car la déserialisation nécessite que ces *enums* puissent être " -#~ "importés depuis ce module." - -#~ msgid "" -#~ "With pickle protocol version 4 it is possible to easily pickle enums " -#~ "nested in other classes." -#~ msgstr "" -#~ "Depuis la version 4 du protocole de *pickle*, il est possible de " -#~ "sérialiser facilement des *enums* imbriqués dans d'autres classes." - -#~ msgid "" -#~ "It is possible to modify how Enum members are pickled/unpickled by " -#~ "defining :meth:`__reduce_ex__` in the enumeration class." -#~ msgstr "" -#~ "Redéfinir la méthode :meth:`__reduce_ex__` permet de modifier la " -#~ "sérialisation ou la dé-sérialisation des membres d'une énumération." - -#~ msgid "Functional API" -#~ msgstr "API par fonction" - -#~ msgid "" -#~ "The :class:`Enum` class is callable, providing the following functional " -#~ "API::" -#~ msgstr "" -#~ "La :class:`Enum` est appelable et implémente l'API par fonction " -#~ "suivante ::" - -#~ msgid "" -#~ "The semantics of this API resemble :class:`~collections.namedtuple`. The " -#~ "first argument of the call to :class:`Enum` is the name of the " -#~ "enumeration." -#~ msgstr "" -#~ "La sémantique de cette API est similaire " -#~ "à :class:`~collections.namedtuple`. Le premier argument de l'appel " -#~ "à :class:`Enum` est le nom de l'énumération." - -#~ msgid "" -#~ "The second argument is the *source* of enumeration member names. It can " -#~ "be a whitespace-separated string of names, a sequence of names, a " -#~ "sequence of 2-tuples with key/value pairs, or a mapping (e.g. dictionary) " -#~ "of names to values. The last two options enable assigning arbitrary " -#~ "values to enumerations; the others auto-assign increasing integers " -#~ "starting with 1 (use the ``start`` parameter to specify a different " -#~ "starting value). A new class derived from :class:`Enum` is returned. In " -#~ "other words, the above assignment to :class:`Animal` is equivalent to::" -#~ msgstr "" -#~ "Le second argument est la *source* des noms des membres de l'énumération. " -#~ "Il peut être une chaîne de caractères contenant les noms séparés par des " -#~ "espaces, une séquence de noms, une séquence de couples clé / valeur ou un " -#~ "dictionnaire (p. ex. un *dict*) de valeurs indexées par des noms. Les " -#~ "deux dernières options permettent d'affecter des valeurs arbitraires aux " -#~ "énumérations ; les autres affectent automatiquement des entiers en " -#~ "commençant par 1 (le paramètre ``start`` permet de changer la valeur de " -#~ "départ). Ceci renvoie une nouvelle classe dérivée de :class:`Enum`. En " -#~ "d'autres termes, la déclaration de :class:`Animal` ci-dessus équivaut à ::" - -#~ msgid "" -#~ "The reason for defaulting to ``1`` as the starting number and not ``0`` " -#~ "is that ``0`` is ``False`` in a boolean sense, but enum members all " -#~ "evaluate to ``True``." -#~ msgstr "" -#~ "La valeur de départ par défaut est ``1`` et non ``0`` car ``0`` au sens " -#~ "booléen vaut ``False`` alors que tous les membres d'une *enum* valent " -#~ "``True``." - -#~ msgid "" -#~ "Pickling enums created with the functional API can be tricky as frame " -#~ "stack implementation details are used to try and figure out which module " -#~ "the enumeration is being created in (e.g. it will fail if you use a " -#~ "utility function in separate module, and also may not work on IronPython " -#~ "or Jython). The solution is to specify the module name explicitly as " -#~ "follows::" -#~ msgstr "" -#~ "La sérialisation d'énumérations créées avec l'API en fonction peut être " -#~ "source de problèmes, car celle-ci repose sur des détails d'implémentation " -#~ "de l'affichage de la pile d'appel pour tenter de déterminer dans quel " -#~ "module l'énumération est créée (p. ex. elle échouera avec les fonctions " -#~ "utilitaires provenant d'un module séparé et peut ne pas fonctionner avec " -#~ "IronPython ou Jython). La solution consiste à préciser explicitement le " -#~ "nom du module comme ceci ::" - -#~ msgid "" -#~ "If ``module`` is not supplied, and Enum cannot determine what it is, the " -#~ "new Enum members will not be unpicklable; to keep errors closer to the " -#~ "source, pickling will be disabled." -#~ msgstr "" -#~ "Si ``module`` n'est pas fourni et que *Enum* ne peut pas le deviner, les " -#~ "nouveaux membres de *l'Enum* ne seront pas déserialisables ; pour garder " -#~ "les erreurs au plus près de leur origine, la sérialisation sera " -#~ "désactivée." - -#~ msgid "" -#~ "The new pickle protocol 4 also, in some circumstances, relies " -#~ "on :attr:`~definition.__qualname__` being set to the location where " -#~ "pickle will be able to find the class. For example, if the class was " -#~ "made available in class SomeData in the global scope::" -#~ msgstr "" -#~ "Le nouveau protocole version 4 de *pickle* se base lui aussi, dans " -#~ "certains cas, sur le fait que :attr:`~definition.__qualname__` pointe sur " -#~ "l'endroit où *pickle* peut trouver la classe. Par exemple, si la classe " -#~ "était disponible depuis la classe *SomeData* dans l'espace de nom de plus " -#~ "haut niveau ::" - -#~ msgid "The complete signature is::" -#~ msgstr "La signature complète est la suivante ::" - -#~ msgid "What the new Enum class will record as its name." -#~ msgstr "Le nom de la la nouvelle classe *Enum*." - -#~ msgid "" -#~ "The Enum members. This can be a whitespace or comma separated string " -#~ "(values will start at 1 unless otherwise specified)::" -#~ msgstr "" -#~ "Les membres de l'énumération. Une chaîne de caractères séparés par des " -#~ "espaces ou des virgules (la valeur de départ est fixée à 1, sauf si " -#~ "spécifiée autrement) ::" - -#~ msgid "or an iterator of names::" -#~ msgstr "ou un itérateur sur les noms ::" - -#~ msgid "or an iterator of (name, value) pairs::" -#~ msgstr "ou un itérateur sur les *n*-uplets (nom, valeur) ::" - -#~ msgid "or a mapping::" -#~ msgstr "ou une correspondance ::" - -#~ msgid "where in module new Enum class can be found." -#~ msgstr "localisation de la nouvelle classe *Enum* dans le module." - -#~ msgid "type to mix in to new Enum class." -#~ msgstr "le type à mélanger dans la nouvelle classe *Enum*." - -#~ msgid "number to start counting at if only names are passed in." -#~ msgstr "index de départ si uniquement des noms sont passés." - -#~ msgid "The *start* parameter was added." -#~ msgstr "Ajout du paramètre *start*." - -#~ msgid "" -#~ "The first variation of :class:`Enum` that is provided is also a subclass " -#~ "of :class:`int`. Members of an :class:`IntEnum` can be compared to " -#~ "integers; by extension, integer enumerations of different types can also " -#~ "be compared to each other::" -#~ msgstr "" -#~ "La première version dérivée de :class:`Enum` qui existe est aussi une " -#~ "sous-classe de :class:`int`. Les membres de :class:`IntEnum` peuvent être " -#~ "comparés à des entiers et, par extension, les comparaisons entre des " -#~ "énumérations entières de type différent sont possibles ::" - -#~ msgid "" -#~ "However, they still can't be compared to standard :class:`Enum` " -#~ "enumerations::" -#~ msgstr "" -#~ "Elles ne peuvent cependant toujours pas être comparées à des énumérations " -#~ "standards de :class:`Enum` ::" - -#~ msgid "" -#~ ":class:`IntEnum` values behave like integers in other ways you'd expect::" -#~ msgstr "" -#~ "Les valeurs de :class:`IntEnum` se comportent comme des entiers, comme on " -#~ "pouvait s'y attendre ::" - -#~ msgid "IntFlag" -#~ msgstr "IntFlag" - -#~ msgid "" -#~ "The next variation of :class:`Enum` provided, :class:`IntFlag`, is also " -#~ "based on :class:`int`. The difference being :class:`IntFlag` members can " -#~ "be combined using the bitwise operators (&, \\|, ^, ~) and the result is " -#~ "still an :class:`IntFlag` member. However, as the name " -#~ "implies, :class:`IntFlag` members also subclass :class:`int` and can be " -#~ "used wherever an :class:`int` is used. Any operation on " -#~ "an :class:`IntFlag` member besides the bit-wise operations will lose " -#~ "the :class:`IntFlag` membership." -#~ msgstr "" -#~ "La version dérivée suivante de :class:`Enum` est :class:`IntFlag`. Elle " -#~ "est aussi basée sur :class:`int`, à la différence près que les membres " -#~ "de :class:`IntFlag` peuvent être combinés en utilisant les opérateurs bit-" -#~ "à-bit (&, \\|, ^, ~) et que le résultat reste un membre " -#~ "de :class:`IntFlag`. Cependant, comme le nom l'indique, les membres d'une " -#~ "classe :class:`IntFlag` héritent aussi de :class:`int` et peuvent être " -#~ "utilisés là où un :class:`int` est utilisé. Toute opération sur un membre " -#~ "d'une classe :class:`IntFlag`, autre qu'un opérateur bit-à-bit lui fait " -#~ "perdre sa qualité de :class:`IntFlag`." - -#~ msgid "It is also possible to name the combinations::" -#~ msgstr "Il est aussi possible de nommer les combinaisons ::" - -#~ msgid "" -#~ "Another important difference between :class:`IntFlag` and :class:`Enum` " -#~ "is that if no flags are set (the value is 0), its boolean evaluation " -#~ "is :data:`False`::" -#~ msgstr "" -#~ "Une autre différence importante entre :class:`IntFlag` et :class:`Enum` " -#~ "est que, si aucune option n'est activée (la valeur vaut 0), son " -#~ "évaluation booléenne est :data:`False` ::" - -#~ msgid "" -#~ "Because :class:`IntFlag` members are also subclasses of :class:`int` they " -#~ "can be combined with them::" -#~ msgstr "" -#~ "Comme les membres d'une classe :class:`IntFlag` héritent aussi " -#~ "de :class:`int`, ils peuvent être combinés avec eux ::" - -#~ msgid "Flag" -#~ msgstr "Option" - -#~ msgid "" -#~ "The last variation is :class:`Flag`. " -#~ "Like :class:`IntFlag`, :class:`Flag` members can be combined using the " -#~ "bitwise operators (&, \\|, ^, ~). Unlike :class:`IntFlag`, they cannot " -#~ "be combined with, nor compared against, any other :class:`Flag` " -#~ "enumeration, nor :class:`int`. While it is possible to specify the " -#~ "values directly it is recommended to use :class:`auto` as the value and " -#~ "let :class:`Flag` select an appropriate value." -#~ msgstr "" -#~ "La dernière version dérivée est la classe :class:`Flag`. " -#~ "Comme :class:`IntFlag`, les membres d'une classe :class:`Flag` peuvent " -#~ "être combinés en utilisant les opérateurs de comparaison bit-à-bit. " -#~ "Cependant, à la différence de :class:`IntFlag`, ils ne peuvent ni être " -#~ "combinés, ni être comparés avec une autre énumération :class:`Flag`, ni " -#~ "avec :class:`int`. Bien qu'il soit possible de définir directement les " -#~ "valeurs, il est recommandé d'utiliser :class:`auto` comme valeur et de " -#~ "laisser :class:`Flag` choisir une valeur appropriée." - -#~ msgid "" -#~ "Like :class:`IntFlag`, if a combination of :class:`Flag` members results " -#~ "in no flags being set, the boolean evaluation is :data:`False`::" -#~ msgstr "" -#~ "Comme avec :class:`IntFlag`, si une combinaison de membres d'une " -#~ "classe :class:`Flag` n'active aucune option, l'évaluation booléenne de la " -#~ "comparaison est :data:`False` ::" - -#~ msgid "" -#~ "Individual flags should have values that are powers of two (1, 2, 4, " -#~ "8, ...), while combinations of flags won't::" -#~ msgstr "" -#~ "Les options de base doivent avoir des puissances de deux pour valeurs (1, " -#~ "2, 4, 8, ...) mais pas les combinaisons ::" - -#~ msgid "" -#~ "Giving a name to the \"no flags set\" condition does not change its " -#~ "boolean value::" -#~ msgstr "" -#~ "Donner un nom à la valeur « aucune option activée » ne change pas sa " -#~ "valeur booléenne ::" - -#~ msgid "" -#~ "For the majority of new code, :class:`Enum` and :class:`Flag` are " -#~ "strongly recommended, since :class:`IntEnum` and :class:`IntFlag` break " -#~ "some semantic promises of an enumeration (by being comparable to " -#~ "integers, and thus by transitivity to other unrelated " -#~ "enumerations). :class:`IntEnum` and :class:`IntFlag` should be used only " -#~ "in cases where :class:`Enum` and :class:`Flag` will not do; for example, " -#~ "when integer constants are replaced with enumerations, or for " -#~ "interoperability with other systems." -#~ msgstr "" -#~ "Dans la plupart des cas, il est fortement recommandé " -#~ "d'utiliser :class:`Enum` et :class:`Flag` pour écrire du code nouveau, " -#~ "car :class:`IntEnum` et :class:`IntFlag` violent certains principes " -#~ "sémantiques d'une énumération (en pouvant être comparées à des entiers et " -#~ "donc, par transitivité, à d'autres énumérations). :class:`IntEnum` " -#~ "et :class:`IntFlag` ne doivent être utilisées que dans les cas " -#~ "où :class:`Enum` et :class:`Flag` ne suffisent pas ; par exemple quand " -#~ "des constantes entières sont remplacées par des énumérations, ou pour " -#~ "l’interopérabilité avec d'autres systèmes." - -#~ msgid "Others" -#~ msgstr "Autres" - -#~ msgid "" -#~ "While :class:`IntEnum` is part of the :mod:`enum` module, it would be " -#~ "very simple to implement independently::" -#~ msgstr "" -#~ "Bien que :class:`IntEnum` fasse partie du module :mod:`enum`, elle serait " -#~ "très simple à implémenter hors de ce module ::" - -#~ msgid "" -#~ "This demonstrates how similar derived enumerations can be defined; for " -#~ "example a :class:`StrEnum` that mixes in :class:`str` instead " -#~ "of :class:`int`." -#~ msgstr "" -#~ "Ceci montre comment définir des énumérations dérivées similaires ; par " -#~ "exemple une classe :class:`StrEnum` qui dériverait de :class:`str` au " -#~ "lieu de :class:`int`." - -#~ msgid "Some rules:" -#~ msgstr "Quelques règles :" - -#~ msgid "" -#~ "When subclassing :class:`Enum`, mix-in types must appear " -#~ "before :class:`Enum` itself in the sequence of bases, as in " -#~ "the :class:`IntEnum` example above." -#~ msgstr "" -#~ "Pour hériter de :class:`Enum`, les types de mélange doivent être placés " -#~ "avant la classe :class:`Enum` elle-même dans la liste des classes de " -#~ "base, comme dans l'exemple de :class:`IntEnum` ci-dessus." - -#~ msgid "" -#~ "While :class:`Enum` can have members of any type, once you mix in an " -#~ "additional type, all the members must have values of that type, " -#~ "e.g. :class:`int` above. This restriction does not apply to mix-ins " -#~ "which only add methods and don't specify another type." -#~ msgstr "" -#~ "Même si une classe :class:`Enum` peut avoir des membres de n'importe quel " -#~ "type, dès qu'un type est spécifié à la déclaration de la classe, alors " -#~ "tous les membres doivent être de ce type, p. ex. :class:`int` ci-dessus. " -#~ "Cette restriction ne s'applique pas aux classes dérivées qui n'ajoutent " -#~ "que des méthodes supplémentaires sans spécifier un type de données." - -#~ msgid "" -#~ "When another data type is mixed in, the :attr:`value` attribute is *not " -#~ "the same* as the enum member itself, although it is equivalent and will " -#~ "compare equal." -#~ msgstr "" -#~ "Quand un autre type de données est mélangé, l'attribut :attr:`value` " -#~ "n'est *pas* identique au membre de l'énumération lui-même, bien qu'ils " -#~ "soient équivalents et égaux en comparaison." - -#~ msgid "" -#~ "%-style formatting: `%s` and `%r` call the :class:`Enum` " -#~ "class's :meth:`__str__` and :meth:`__repr__` respectively; other codes " -#~ "(such as `%i` or `%h` for IntEnum) treat the enum member as its mixed-in " -#~ "type." -#~ msgstr "" -#~ "Formatage de style *%* : `%s` et `%r` appellent respectivement les " -#~ "méthodes :meth:`__str__` et :meth:`__repr__` de la classe :class:`Enum` ; " -#~ "les autres codes, comme `%i` ou `%h` pour *IntEnum*, s'appliquent au " -#~ "membre comme si celui-ci était converti en son type de mélange." - -#~ msgid "" -#~ ":ref:`Formatted string literals `, :meth:`str.format`, " -#~ "and :func:`format` will use the mixed-in type's :meth:`__format__` " -#~ "unless :meth:`__str__` or :meth:`__format__` is overridden in the " -#~ "subclass, in which case the overridden methods or :class:`Enum` methods " -#~ "will be used. Use the !s and !r format codes to force usage of " -#~ "the :class:`Enum` class's :meth:`__str__` and :meth:`__repr__` methods." -#~ msgstr "" -#~ "Les :ref:`chaînes littérales formatées ` : :meth:`str.format` " -#~ "et :func:`format` appellent la méthode :meth:`__format__` du type dérivé " -#~ "à moins que :meth:`__str__` ou :meth:`__format__` soit surchargée dans la " -#~ "sous-classe, auquel cas les méthodes surchargées ou celles de la " -#~ "classe :class:`Enum` seront utilisées. Pour appeler les " -#~ "méthodes :meth:`__str__` ou :meth:`__repr__` de la classe :class:`Enum`, " -#~ "il faut utiliser les codes de formatage ``!s`` ou ``!r``." - -#~ msgid "When to use :meth:`__new__` vs. :meth:`__init__`" -#~ msgstr "Quand utiliser :meth:`__new__` ou :meth:`__init__`" - -#~ msgid "" -#~ ":meth:`__new__` must be used whenever you want to customize the actual " -#~ "value of the :class:`Enum` member. Any other modifications may go in " -#~ "either :meth:`__new__` or :meth:`__init__`, with :meth:`__init__` being " -#~ "preferred." -#~ msgstr "" -#~ ":meth:`__new__` doit être utilisé dès que vous souhaitez personnaliser la " -#~ "valeur effective des membres d'un :class:`Enum`. Tout autre modification " -#~ "peut autant aller dans :meth:`__new__` que dans :meth:`__init__`, mais " -#~ "l'usage de :meth:`__init__` est recommandé." - -#~ msgid "" -#~ "For example, if you want to pass several items to the constructor, but " -#~ "only want one of them to be the value::" -#~ msgstr "" -#~ "Par exemple, si vous voulez passer plusieurs éléments au constructeur, " -#~ "mais qu'un seul d'entre eux soit la valeur ::" - -#~ msgid "Interesting examples" -#~ msgstr "Exemples intéressants" - -#~ msgid "" -#~ "While :class:`Enum`, :class:`IntEnum`, :class:`IntFlag`, " -#~ "and :class:`Flag` are expected to cover the majority of use-cases, they " -#~ "cannot cover them all. Here are recipes for some different types of " -#~ "enumerations that can be used directly, or as examples for creating one's " -#~ "own." -#~ msgstr "" -#~ "Bien que :class:`Enum`, :class:`IntEnum`, :class:`IntFlag` " -#~ "et :class:`Flag` soient conçues pour répondre à la majorité des besoins, " -#~ "elles ne peuvent répondre à tous. Voici quelques recettes d'énumération " -#~ "qui peuvent être réutilisées telles quelles, ou peuvent servir d'exemple " -#~ "pour développer vos propres énumérations." - -#~ msgid "Omitting values" -#~ msgstr "Omettre les valeurs" - -#~ msgid "" -#~ "In many use-cases one doesn't care what the actual value of an " -#~ "enumeration is. There are several ways to define this type of simple " -#~ "enumeration:" -#~ msgstr "" -#~ "Dans de nombreux cas, la valeur réelle de l'énumération n'a pas " -#~ "d'importance. Il y a plusieurs façons de définir ce type d'énumération " -#~ "simple :" - -#~ msgid "use instances of :class:`auto` for the value" -#~ msgstr "affecter des instances de :class:`auto` aux valeurs" - -#~ msgid "use instances of :class:`object` as the value" -#~ msgstr "affecter des instances de :class:`object` aux valeurs" - -#~ msgid "use a descriptive string as the value" -#~ msgstr "affecter des chaînes de caractères aux valeurs pour les décrire" - -#~ msgid "" -#~ "use a tuple as the value and a custom :meth:`__new__` to replace the " -#~ "tuple with an :class:`int` value" -#~ msgstr "" -#~ "affecter un *n*-uplet aux valeurs et définir une méthode :meth:`__new__` " -#~ "pour remplacer les *n*-uplets avec un :class:`int`" - -#~ msgid "" -#~ "Using any of these methods signifies to the user that these values are " -#~ "not important, and also enables one to add, remove, or reorder members " -#~ "without having to renumber the remaining members." -#~ msgstr "" -#~ "Utiliser une de ces méthodes indique à l'utilisateur que les valeurs " -#~ "n'ont pas d'importance. Cela permet aussi d'ajouter, de supprimer ou de " -#~ "ré-ordonner les membres sans avoir à ré-énumérer les membres existants." - -#~ msgid "" -#~ "Whichever method you choose, you should provide a :meth:`repr` that also " -#~ "hides the (unimportant) value::" -#~ msgstr "" -#~ "Quelle que soit la méthode choisie, il faut fournir une " -#~ "méthode :meth:`repr` qui masque les valeurs (pas importantes de toute " -#~ "façon) ::" - -#~ msgid "Using :class:`auto` would look like::" -#~ msgstr "On utilise :class:`auto` de la manière suivante ::" - -#~ msgid "Using :class:`object`" -#~ msgstr "Avec :class:`object`" - -#~ msgid "Using :class:`object` would look like::" -#~ msgstr "On utilise :class:`object` de la manière suivante ::" - -#~ msgid "Using a descriptive string" -#~ msgstr "Avec une chaîne de caractères de description" - -#~ msgid "Using a string as the value would look like::" -#~ msgstr "On utilise une chaîne de caractères de la manière suivante ::" - -#~ msgid "Using a custom :meth:`__new__`" -#~ msgstr "Avec une méthode ad-hoc :meth:`__new__`" - -#~ msgid "Using an auto-numbering :meth:`__new__` would look like::" -#~ msgstr "" -#~ "On utilise une méthode :meth:`__new__` d'énumération de la manière " -#~ "suivante ::" - -#~ msgid "" -#~ "To make a more general purpose ``AutoNumber``, add ``*args`` to the " -#~ "signature::" -#~ msgstr "" -#~ "Pour définir un ``AutoNumber`` plus générique, ajoutez ``*args`` à la " -#~ "signature ::" - -#~ msgid "" -#~ "Then when you inherit from ``AutoNumber`` you can write your own " -#~ "``__init__`` to handle any extra arguments::" -#~ msgstr "" -#~ "Ainsi, quand vous héritez d'``AutoNumber``, vous pouvez définir " -#~ "``__init__`` pour gérer tout argument supplémentaire ::" - -#~ msgid "" -#~ "The :meth:`__new__` method, if defined, is used during creation of the " -#~ "Enum members; it is then replaced by Enum's :meth:`__new__` which is used " -#~ "after class creation for lookup of existing members." -#~ msgstr "" -#~ "La méthode :meth:`__new__`, si définie, est appelée à la création des " -#~ "membres de l'énumération ; elle est ensuite remplacée par la " -#~ "méthode :meth:`__new__` de *Enum*, qui est utilisée après la création de " -#~ "la classe pour la recherche des membres existants." - -#~ msgid "OrderedEnum" -#~ msgstr "OrderedEnum" - -#~ msgid "" -#~ "An ordered enumeration that is not based on :class:`IntEnum` and so " -#~ "maintains the normal :class:`Enum` invariants (such as not being " -#~ "comparable to other enumerations)::" -#~ msgstr "" -#~ "Une énumération ordonnée qui n'est pas basée sur :class:`IntEnum` et qui, " -#~ "par conséquent, respecte les invariants classiques de :class:`Enum` " -#~ "(comme par exemple l'impossibilité de pouvoir être comparée à d'autres " -#~ "énumérations) ::" - -#~ msgid "DuplicateFreeEnum" -#~ msgstr "DuplicateFreeEnum" - -#~ msgid "" -#~ "Raises an error if a duplicate member name is found instead of creating " -#~ "an alias::" -#~ msgstr "" -#~ "Lève une erreur si un membre est dupliqué, plutôt que de créer un alias ::" - -#~ msgid "" -#~ "This is a useful example for subclassing Enum to add or change other " -#~ "behaviors as well as disallowing aliases. If the only desired change is " -#~ "disallowing aliases, the :func:`unique` decorator can be used instead." -#~ msgstr "" -#~ "Cet exemple d'héritage de *Enum* est intéressant pour ajouter ou modifier " -#~ "des comportements comme interdire les alias. Si vous ne souhaitez " -#~ "qu'interdire les alias, il suffit d'utiliser le décorateur :func:`unique`." - -#~ msgid "Planet" -#~ msgstr "Planet" - -#~ msgid "" -#~ "If :meth:`__new__` or :meth:`__init__` is defined the value of the enum " -#~ "member will be passed to those methods::" -#~ msgstr "" -#~ "Si :meth:`__new__` ou :meth:`__init__` sont définies, la valeur du membre " -#~ "de l'énumération sera passée à ces méthodes ::" - -#~ msgid "TimePeriod" -#~ msgstr "TimePeriod" - -#~ msgid "An example to show the :attr:`_ignore_` attribute in use::" -#~ msgstr "Exemple d'utilisation de l'attribut :attr:`_ignore_` ::" - -#~ msgid "How are Enums different?" -#~ msgstr "En quoi les *Enums* sont différentes ?" - -#~ msgid "" -#~ "Enums have a custom metaclass that affects many aspects of both derived " -#~ "Enum classes and their instances (members)." -#~ msgstr "" -#~ "Les *enums* ont une métaclasse spéciale qui affecte de nombreux aspects " -#~ "des classes dérivées de *Enum* et de leurs instances (membres)." - -#~ msgid "Enum Classes" -#~ msgstr "Classes *Enum*" - -#~ msgid "" -#~ "The :class:`EnumMeta` metaclass is responsible for providing " -#~ "the :meth:`__contains__`, :meth:`__dir__`, :meth:`__iter__` and other " -#~ "methods that allow one to do things with an :class:`Enum` class that fail " -#~ "on a typical class, such as `list(Color)` or `some_enum_var in " -#~ "Color`. :class:`EnumMeta` is responsible for ensuring that various other " -#~ "methods on the final :class:`Enum` class are correct (such " -#~ "as :meth:`__new__`, :meth:`__getnewargs__`, :meth:`__str__` " -#~ "and :meth:`__repr__`)." -#~ msgstr "" -#~ "La métaclasse :class:`EnumMeta` se charge de fournir les " -#~ "méthodes :meth:`__contains__`, :meth:`__dir__`, :meth:`__iter__` etc. qui " -#~ "permettent de faire des opérations sur une classe :class:`Enum` qui ne " -#~ "fonctionneraient pas sur une classe standard, comme `list(Color)` ou " -#~ "`some_enum_var in Color`. :class:`EnumMeta` garantit que les autres " -#~ "méthodes de la classe finale :class:`Enum` sont correctes " -#~ "(comme :meth:`__new__`, :meth:`__getnewargs__`, :meth:`__str__` " -#~ "et :meth:`__repr__`)." - -#~ msgid "Enum Members (aka instances)" -#~ msgstr "Membres d'Enum (c.-à-d. instances)" - -#~ msgid "" -#~ "The most interesting thing about Enum members is that they are " -#~ "singletons. :class:`EnumMeta` creates them all while it is creating " -#~ "the :class:`Enum` class itself, and then puts a custom :meth:`__new__` in " -#~ "place to ensure that no new ones are ever instantiated by returning only " -#~ "the existing member instances." -#~ msgstr "" -#~ "Il est intéressant de souligner que les membres d'une *Enum* sont des " -#~ "singletons. La classe :class:`EnumMeta` les crée tous au moment de la " -#~ "création de la classe :class:`Enum` elle-même et implémente une " -#~ "méthode :meth:`__new__` spécifique. Cette méthode renvoie toujours les " -#~ "instances de membres déjà existantes pour être sûr de ne jamais en " -#~ "instancier de nouvelles." - -#~ msgid "Finer Points" -#~ msgstr "Aspects approfondis" - -#~ msgid "_Private__names" -#~ msgstr "_Noms__privés" - -#~ msgid "" -#~ ":ref:`Private names ` will be normal attributes in " -#~ "Python 3.11 instead of either an error or a member (depending on if the " -#~ "name ends with an underscore). Using these names in 3.10 will issue " -#~ "a :exc:`DeprecationWarning`." -#~ msgstr "" -#~ "Les :ref:`noms privés ` seront des attributs " -#~ "habituels avec Python 3.11 et non plus des erreurs ou membres (selon si " -#~ "le nom termine par tiret bas ou non). Utiliser ces noms avec Python 3.10 " -#~ "lèvera un :exc:`DeprecationWarning`." - -#~ msgid "``Enum`` member type" -#~ msgstr "Type des membres de ``Enum``" - -#~ msgid "" -#~ ":class:`Enum` members are instances of their :class:`Enum` class, and are " -#~ "normally accessed as ``EnumClass.member``. Under certain circumstances " -#~ "they can also be accessed as ``EnumClass.member.member``, but you should " -#~ "never do this as that lookup may fail or, worse, return something besides " -#~ "the :class:`Enum` member you are looking for (this is another good reason " -#~ "to use all-uppercase names for members)::" -#~ msgstr "" -#~ "Les membres de :class:`Enum` sont des instances de leur " -#~ "classe :class:`Enum`. On y accède normalement par ``ClasseEnum.membre``. " -#~ "Dans certains cas, on peut également y accéder par " -#~ "``ClasseEnum.membre.membre``, mais ceci est fortement déconseillé car " -#~ "cette indirection est susceptible d'échouer, ou pire, de ne pas renvoyer " -#~ "le membre de la classe :class:`Enum` désiré (c'est une autre bonne raison " -#~ "pour définir tous les noms des membres en majuscules) ::" - -#~ msgid "This behavior is deprecated and will be removed in 3.11." -#~ msgstr "Ce comportement est obsolète et sera retiré en 3.11." - -#~ msgid "Boolean value of ``Enum`` classes and members" -#~ msgstr "Valeur booléenne des classes ``Enum`` et de leurs membres" - -#~ msgid "" -#~ ":class:`Enum` members that are mixed with non-:class:`Enum` types (such " -#~ "as :class:`int`, :class:`str`, etc.) are evaluated according to the mixed-" -#~ "in type's rules; otherwise, all members evaluate as :data:`True`. To " -#~ "make your own Enum's boolean evaluation depend on the member's value add " -#~ "the following to your class::" -#~ msgstr "" -#~ "Les membres d'une classe :class:`Enum` mélangée avec un type non dérivé " -#~ "de :class:`Enum` (comme :class:`int`, :class:`str`, etc.) sont évalués " -#~ "selon les règles du type de mélange. Sinon, tous les membres " -#~ "valent :data:`True`. Pour faire dépendre l'évaluation booléenne de votre " -#~ "propre *Enum* de la valeur du membre, il faut ajouter le code suivant à " -#~ "votre classe ::" - -#~ msgid ":class:`Enum` classes always evaluate as :data:`True`." -#~ msgstr "Les classes :class:`Enum` valent toujours :data:`True`." - -#~ msgid "``Enum`` classes with methods" -#~ msgstr "Classes ``Enum`` avec des méthodes" - -#~ msgid "" -#~ "If you give your :class:`Enum` subclass extra methods, like the `Planet`_ " -#~ "class above, those methods will show up in a :func:`dir` of the member, " -#~ "but not of the class::" -#~ msgstr "" -#~ "Si votre classe :class:`Enum` contient des méthodes supplémentaires, " -#~ "comme la classe `Planet`_ ci-dessus, elles s'afficheront avec un appel " -#~ "à :func:`dir` sur le membre, mais pas avec un appel sur la classe ::" - -#~ msgid "Combining members of ``Flag``" -#~ msgstr "Combinaison de membres de ``Flag``" - -#~ msgid "" -#~ "If a combination of Flag members is not named, the :func:`repr` will " -#~ "include all named flags and all named combinations of flags that are in " -#~ "the value::" -#~ msgstr "" -#~ "Si une valeur issue de la combinaison de membres de *Flag* n'est pas " -#~ "associée explicitement à un membre, la fonction :func:`repr` inclut tous " -#~ "les membres et toutes les combinaisons de membres présents dans cette " -#~ "valeur ::" - -#~ msgid "" -#~ "In 3.11 unnamed combinations of flags will only produce the canonical " -#~ "flag members (aka single-value flags). So ``Color(7)`` will produce " -#~ "something like ````." -#~ msgstr "" -#~ "En 3.11, les combinaisons non-nommées de ``Flag`` ne renverront que les " -#~ "*flags* canoniques (*flags* associés à une unique valeur). Donc " -#~ "``Color(7)`` renverra ````." diff --git a/library/errno.po b/library/errno.po deleted file mode 100644 index c96af1a285..0000000000 --- a/library/errno.po +++ /dev/null @@ -1,812 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2019-06-10 15:48+0200\n" -"Last-Translator: Dylan Gouin \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2\n" - -#: library/errno.rst:2 -#, fuzzy -msgid ":mod:`!errno` --- Standard errno system symbols" -msgstr ":mod:`errno` — Symboles du système *errno* standard" - -#: library/errno.rst:9 -#, fuzzy -msgid "" -"This module makes available standard ``errno`` system symbols. The value of " -"each symbol is the corresponding integer value. The names and descriptions " -"are borrowed from :file:`linux/include/errno.h`, which should be all-" -"inclusive." -msgstr "" -"Ce module met à disposition des symboles du système standard ``errno``. La " -"valeur de chaque symbole est la valeur entière correspondante. Les noms et " -"les descriptions sont empruntés à :file:`linux/include/errno.h`, qui devrait " -"être assez exhaustif." - -#: library/errno.rst:17 -msgid "" -"Dictionary providing a mapping from the errno value to the string name in " -"the underlying system. For instance, ``errno.errorcode[errno.EPERM]`` maps " -"to ``'EPERM'``." -msgstr "" -"Dictionnaire associant la valeur *errno* au nom de chaîne dans le système " -"sous-jacent. Par exemple, ``errno.errorcode[errno.EPERM]`` correspond à " -"``'EPERM'``." - -#: library/errno.rst:21 -msgid "" -"To translate a numeric error code to an error message, " -"use :func:`os.strerror`." -msgstr "" -"Pour traduire un code d'erreur en message d'erreur, " -"utilisez :func:`os.strerror`." - -#: library/errno.rst:23 -msgid "" -"Of the following list, symbols that are not used on the current platform are " -"not defined by the module. The specific list of defined symbols is " -"available as ``errno.errorcode.keys()``. Symbols available can include:" -msgstr "" -"De la liste suivante, les symboles qui ne sont pas utilisés dans la " -"plateforme actuelle ne sont pas définis par le module. La liste spécifique " -"des symboles définis est disponible comme ``errno.errorcode.keys()``. Les " -"symboles disponibles font partie de cette liste :" - -#: library/errno.rst:30 -#, fuzzy -msgid "" -"Operation not permitted. This error is mapped to the " -"exception :exc:`PermissionError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:36 -#, fuzzy -msgid "" -"No such file or directory. This error is mapped to the " -"exception :exc:`FileNotFoundError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:42 -#, fuzzy -msgid "" -"No such process. This error is mapped to the " -"exception :exc:`ProcessLookupError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:48 -#, fuzzy -msgid "" -"Interrupted system call. This error is mapped to the " -"exception :exc:`InterruptedError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:54 -msgid "I/O error" -msgstr "Erreur d'entrée-sortie" - -#: library/errno.rst:59 -msgid "No such device or address" -msgstr "Dispositif ou adresse inexistant" - -#: library/errno.rst:64 -msgid "Arg list too long" -msgstr "Liste d'arguments trop longue" - -#: library/errno.rst:69 -msgid "Exec format error" -msgstr "Erreur de format d'exécution" - -#: library/errno.rst:74 -msgid "Bad file number" -msgstr "Mauvais descripteur de fichier" - -#: library/errno.rst:79 -#, fuzzy -msgid "" -"No child processes. This error is mapped to the " -"exception :exc:`ChildProcessError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:85 -#, fuzzy -msgid "" -"Try again. This error is mapped to the exception :exc:`BlockingIOError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:90 -msgid "Out of memory" -msgstr "Mémoire insuffisante" - -#: library/errno.rst:95 -#, fuzzy -msgid "" -"Permission denied. This error is mapped to the " -"exception :exc:`PermissionError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:101 -msgid "Bad address" -msgstr "Mauvaise adresse" - -#: library/errno.rst:106 -msgid "Block device required" -msgstr "Dispositif de bloc requis" - -#: library/errno.rst:111 -msgid "Device or resource busy" -msgstr "Dispositif ou ressource occupé" - -#: library/errno.rst:116 -#, fuzzy -msgid "" -"File exists. This error is mapped to the exception :exc:`FileExistsError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:122 -msgid "Cross-device link" -msgstr "Lien inapproprié" - -#: library/errno.rst:127 -msgid "No such device" -msgstr "Dispositif inexistant" - -#: library/errno.rst:132 -#, fuzzy -msgid "" -"Not a directory. This error is mapped to the " -"exception :exc:`NotADirectoryError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:138 -#, fuzzy -msgid "" -"Is a directory. This error is mapped to the " -"exception :exc:`IsADirectoryError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:144 -msgid "Invalid argument" -msgstr "Argument invalide" - -#: library/errno.rst:149 -msgid "File table overflow" -msgstr "Plus de descripteur de fichier disponible" - -#: library/errno.rst:154 -msgid "Too many open files" -msgstr "Trop de fichiers ouverts" - -#: library/errno.rst:159 -msgid "Not a typewriter" -msgstr "Opération de contrôle d'entrée-sortie invalide" - -#: library/errno.rst:164 -msgid "Text file busy" -msgstr "Fichier texte occupé" - -#: library/errno.rst:169 -msgid "File too large" -msgstr "Fichier trop grand" - -#: library/errno.rst:174 -msgid "No space left on device" -msgstr "Plus de place sur le dispositif" - -#: library/errno.rst:179 -msgid "Illegal seek" -msgstr "Recherche invalide" - -#: library/errno.rst:184 -msgid "Read-only file system" -msgstr "Système de fichiers en lecture seule" - -#: library/errno.rst:189 -msgid "Too many links" -msgstr "Trop de liens symboliques" - -#: library/errno.rst:194 -#, fuzzy -msgid "" -"Broken pipe. This error is mapped to the exception :exc:`BrokenPipeError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:200 -msgid "Math argument out of domain of func" -msgstr "Argument mathématique hors du domaine de définition de la fonction" - -#: library/errno.rst:205 -msgid "Math result not representable" -msgstr "Résultat mathématique non représentable" - -#: library/errno.rst:210 -msgid "Resource deadlock would occur" -msgstr "Un interblocage se produirait sur cette ressource" - -#: library/errno.rst:215 -msgid "File name too long" -msgstr "Nom de fichier trop long" - -#: library/errno.rst:220 -msgid "No record locks available" -msgstr "Plus de verrou de fichier disponible" - -#: library/errno.rst:225 -msgid "Function not implemented" -msgstr "Fonction non implémentée" - -#: library/errno.rst:230 -msgid "Directory not empty" -msgstr "Dossier non vide" - -#: library/errno.rst:235 -msgid "Too many symbolic links encountered" -msgstr "Trop de liens symboliques trouvés" - -#: library/errno.rst:240 -#, fuzzy -msgid "" -"Operation would block. This error is mapped to the " -"exception :exc:`BlockingIOError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:246 -msgid "No message of desired type" -msgstr "Pas de message du type voulu" - -#: library/errno.rst:251 -msgid "Identifier removed" -msgstr "Identifiant supprimé" - -#: library/errno.rst:256 -msgid "Channel number out of range" -msgstr "Le numéro de canal est hors des limites" - -#: library/errno.rst:261 -msgid "Level 2 not synchronized" -msgstr "Le niveau 2 n'est pas synchronisé" - -#: library/errno.rst:266 -msgid "Level 3 halted" -msgstr "Niveau 3 stoppé" - -#: library/errno.rst:271 -msgid "Level 3 reset" -msgstr "Niveau 3 réinitialisé" - -#: library/errno.rst:276 -msgid "Link number out of range" -msgstr "Le numéro du lien est hors des limites" - -#: library/errno.rst:281 -msgid "Protocol driver not attached" -msgstr "Le pilote de protocole n'est pas attaché" - -#: library/errno.rst:286 -msgid "No CSI structure available" -msgstr "Pas de structure *CSI* disponible" - -#: library/errno.rst:291 -msgid "Level 2 halted" -msgstr "Niveau 2 stoppé" - -#: library/errno.rst:296 -msgid "Invalid exchange" -msgstr "Échange invalide" - -#: library/errno.rst:301 -msgid "Invalid request descriptor" -msgstr "Descripteur de requête invalide" - -#: library/errno.rst:306 -msgid "Exchange full" -msgstr "Échange complet" - -#: library/errno.rst:311 -msgid "No anode" -msgstr "Pas de *anode*" - -#: library/errno.rst:316 -msgid "Invalid request code" -msgstr "Code de requête invalide" - -#: library/errno.rst:321 -msgid "Invalid slot" -msgstr "*Slot* invalide" - -#: library/errno.rst:326 -msgid "File locking deadlock error" -msgstr "Interblocage lors du verrouillage de fichier" - -#: library/errno.rst:331 -msgid "Bad font file format" -msgstr "Mauvais format de fichier de police" - -#: library/errno.rst:336 -msgid "Device not a stream" -msgstr "Le périphérique n'est pas un flux" - -#: library/errno.rst:341 -msgid "No data available" -msgstr "Pas de donnée disponible" - -#: library/errno.rst:346 -msgid "Timer expired" -msgstr "Délai maximal atteint" - -#: library/errno.rst:351 -msgid "Out of streams resources" -msgstr "Pas assez de ressources de type flux" - -#: library/errno.rst:356 -msgid "Machine is not on the network" -msgstr "Machine hors réseau" - -#: library/errno.rst:361 -msgid "Package not installed" -msgstr "Paquet non installé" - -#: library/errno.rst:366 -msgid "Object is remote" -msgstr "L'objet est distant" - -#: library/errno.rst:371 -msgid "Link has been severed" -msgstr "Lien coupé" - -#: library/errno.rst:376 -msgid "Advertise error" -msgstr "Erreur d'annonce" - -#: library/errno.rst:381 -msgid "Srmount error" -msgstr "Erreur *Srmount*" - -#: library/errno.rst:386 -msgid "Communication error on send" -msgstr "Erreur de communication lors de l'envoi" - -#: library/errno.rst:391 -msgid "Protocol error" -msgstr "Erreur de protocole" - -#: library/errno.rst:396 -msgid "Multihop attempted" -msgstr "Transfert à sauts multiples essayé" - -#: library/errno.rst:401 -msgid "RFS specific error" -msgstr "erreur spécifique *RFS*" - -#: library/errno.rst:406 -msgid "Not a data message" -msgstr "Pas un message de données" - -#: library/errno.rst:411 -msgid "Value too large for defined data type" -msgstr "Valeur trop grande pour être stockée dans ce type de donnée" - -#: library/errno.rst:416 -msgid "Name not unique on network" -msgstr "Nom non-unique dans le réseau" - -#: library/errno.rst:421 -msgid "File descriptor in bad state" -msgstr "Descripteur de fichier en mauvais état" - -#: library/errno.rst:426 -msgid "Remote address changed" -msgstr "Adresse distante changée" - -#: library/errno.rst:431 -msgid "Can not access a needed shared library" -msgstr "Accès impossible à une bibliothèque partagée nécessaire" - -#: library/errno.rst:436 -msgid "Accessing a corrupted shared library" -msgstr "Accès à une bibliothèque partagée corrompue" - -#: library/errno.rst:441 -msgid ".lib section in a.out corrupted" -msgstr "Section *.lib* de *a.out* corrompue" - -#: library/errno.rst:446 -msgid "Attempting to link in too many shared libraries" -msgstr "Tentative de liaison entre trop de bibliothèques partagées" - -#: library/errno.rst:451 -msgid "Cannot exec a shared library directly" -msgstr "Impossible d'exécuter directement une bibliothèque partagée" - -#: library/errno.rst:456 -msgid "Illegal byte sequence" -msgstr "Séquence de *bytes* illégale" - -#: library/errno.rst:461 -msgid "Interrupted system call should be restarted" -msgstr "Appel système interrompu qui devrait être relancé" - -#: library/errno.rst:466 -msgid "Streams pipe error" -msgstr "Erreur d’enchaînement de flux" - -#: library/errno.rst:471 -msgid "Too many users" -msgstr "Trop d'utilisateurs" - -#: library/errno.rst:476 -msgid "Socket operation on non-socket" -msgstr "" -"Opération d'interface de connexion alors que ce n'est pas une interface de " -"connexion" - -#: library/errno.rst:481 -msgid "Destination address required" -msgstr "Adresse de destination obligatoire" - -#: library/errno.rst:486 -msgid "Message too long" -msgstr "Message trop long" - -#: library/errno.rst:491 -msgid "Protocol wrong type for socket" -msgstr "Mauvais type de protocole pour ce connecteur" - -#: library/errno.rst:496 -msgid "Protocol not available" -msgstr "Protocole pas disponible" - -#: library/errno.rst:501 -msgid "Protocol not supported" -msgstr "Protocole non géré" - -#: library/errno.rst:506 -msgid "Socket type not supported" -msgstr "Type de connecteur non géré" - -#: library/errno.rst:511 -msgid "Operation not supported on transport endpoint" -msgstr "Opération non gérée par cette fin de lien" - -#: library/errno.rst:516 -#, fuzzy -msgid "Operation not supported" -msgstr "Opération interdite" - -#: library/errno.rst:523 -msgid "Protocol family not supported" -msgstr "Famille de protocole non gérée" - -#: library/errno.rst:528 -msgid "Address family not supported by protocol" -msgstr "Famille d'adresses non gérée par ce protocole" - -#: library/errno.rst:533 -msgid "Address already in use" -msgstr "Adresse déjà utilisée" - -#: library/errno.rst:538 -msgid "Cannot assign requested address" -msgstr "Impossible d'assigner l'adresse demandée" - -#: library/errno.rst:543 -msgid "Network is down" -msgstr "Le réseau est désactivé" - -#: library/errno.rst:548 -msgid "Network is unreachable" -msgstr "Réseau inaccessible" - -#: library/errno.rst:553 -msgid "Network dropped connection because of reset" -msgstr "Connexion annulée par le réseau" - -#: library/errno.rst:558 -#, fuzzy -msgid "" -"Software caused connection abort. This error is mapped to the " -"exception :exc:`ConnectionAbortedError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:564 -#, fuzzy -msgid "" -"Connection reset by peer. This error is mapped to the " -"exception :exc:`ConnectionResetError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:570 -msgid "No buffer space available" -msgstr "Plus d'espace tampon disponible" - -#: library/errno.rst:575 -msgid "Transport endpoint is already connected" -msgstr "L'interface de connexion est déjà connectée" - -#: library/errno.rst:580 -msgid "Transport endpoint is not connected" -msgstr "L'interface de connexion n'est pas connectée" - -#: library/errno.rst:585 -#, fuzzy -msgid "" -"Cannot send after transport endpoint shutdown. This error is mapped to the " -"exception :exc:`BrokenPipeError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:591 -msgid "Too many references: cannot splice" -msgstr "Trop de descripteurs : impossible d'effectuer la liaison" - -#: library/errno.rst:596 -#, fuzzy -msgid "" -"Connection timed out. This error is mapped to the " -"exception :exc:`TimeoutError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:602 -#, fuzzy -msgid "" -"Connection refused. This error is mapped to the " -"exception :exc:`ConnectionRefusedError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:608 -msgid "Host is down" -msgstr "Hôte éteint" - -#: library/errno.rst:613 -msgid "No route to host" -msgstr "Pas de route vers l'hôte" - -#: library/errno.rst:618 -msgid "Memory page has hardware error." -msgstr "" - -#: library/errno.rst:625 -#, fuzzy -msgid "" -"Operation already in progress. This error is mapped to the " -"exception :exc:`BlockingIOError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:631 -#, fuzzy -msgid "" -"Operation now in progress. This error is mapped to the " -"exception :exc:`BlockingIOError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:637 -msgid "Stale NFS file handle" -msgstr "Descripteur de fichier NFS corrompu" - -#: library/errno.rst:642 -msgid "Structure needs cleaning" -msgstr "La structure a besoin d'être nettoyée" - -#: library/errno.rst:647 -msgid "Not a XENIX named type file" -msgstr "N'est pas un fichier nommé du type *XENIX*" - -#: library/errno.rst:652 -msgid "No XENIX semaphores available" -msgstr "Pas de sémaphore *XENIX* disponible" - -#: library/errno.rst:657 -msgid "Is a named type file" -msgstr "Est un fichier nommé" - -#: library/errno.rst:662 -msgid "Remote I/O error" -msgstr "Erreur d'entrées-sorties distante" - -#: library/errno.rst:667 -msgid "Quota exceeded" -msgstr "Quota dépassé" - -#: library/errno.rst:671 -msgid "Interface output queue is full" -msgstr "" - -#: library/errno.rst:678 -msgid "No medium found" -msgstr "" - -#: library/errno.rst:683 -msgid "Wrong medium type" -msgstr "" - -#: library/errno.rst:688 -#, fuzzy -msgid "Required key not available" -msgstr "Protocole pas disponible" - -#: library/errno.rst:693 -#, fuzzy -msgid "Key has expired" -msgstr "Délai maximal atteint" - -#: library/errno.rst:698 -#, fuzzy -msgid "Key has been revoked" -msgstr "Lien coupé" - -#: library/errno.rst:703 -msgid "Key was rejected by service" -msgstr "" - -#: library/errno.rst:708 -#, fuzzy -msgid "Operation not possible due to RF-kill" -msgstr "Opération interdite" - -#: library/errno.rst:713 -msgid "Locked lock was unmapped" -msgstr "" - -#: library/errno.rst:718 -msgid "Facility is not active" -msgstr "" - -#: library/errno.rst:723 -#, fuzzy -msgid "Authentication error" -msgstr "Erreur de communication lors de l'envoi" - -#: library/errno.rst:730 -msgid "Bad CPU type in executable" -msgstr "" - -#: library/errno.rst:737 -#, fuzzy -msgid "Bad executable (or shared library)" -msgstr "Impossible d'exécuter directement une bibliothèque partagée" - -#: library/errno.rst:744 -msgid "Malformed Mach-o file" -msgstr "" - -#: library/errno.rst:751 -#, fuzzy -msgid "Device error" -msgstr "Erreur d'annonce" - -#: library/errno.rst:758 -msgid "Inappropriate file type or format" -msgstr "" - -#: library/errno.rst:765 -msgid "Need authenticator" -msgstr "" - -#: library/errno.rst:772 -msgid "Attribute not found" -msgstr "" - -#: library/errno.rst:779 -msgid "Policy not found" -msgstr "" - -#: library/errno.rst:786 -#, fuzzy -msgid "Too many processes" -msgstr "Trop d'utilisateurs" - -#: library/errno.rst:793 -msgid "Bad procedure for program" -msgstr "" - -#: library/errno.rst:800 -msgid "Program version wrong" -msgstr "" - -#: library/errno.rst:807 -#, fuzzy -msgid "RPC prog. not avail" -msgstr "Protocole pas disponible" - -#: library/errno.rst:814 -msgid "Device power is off" -msgstr "" - -#: library/errno.rst:821 -msgid "RPC struct is bad" -msgstr "" - -#: library/errno.rst:828 -msgid "RPC version wrong" -msgstr "" - -#: library/errno.rst:835 -msgid "Shared library version mismatch" -msgstr "" - -#: library/errno.rst:842 -#, fuzzy -msgid "" -"Capabilities insufficient. This error is mapped to the " -"exception :exc:`PermissionError`." -msgstr "Cette erreur est associée à l'exception :exc:`InterruptedError`." - -#: library/errno.rst:845 -msgid "Availability" -msgstr "Disponibilité" - -#: library/errno.rst:852 -#, fuzzy -msgid "Operation canceled" -msgstr "Opération interdite" - -#: library/errno.rst:859 -msgid "Owner died" -msgstr "" - -#: library/errno.rst:866 -#, fuzzy -msgid "State not recoverable" -msgstr "Résultat mathématique non représentable" - -#~ msgid "No such file or directory" -#~ msgstr "Fichier ou répertoire inexistant" - -#~ msgid "No such process" -#~ msgstr "Processus inexistant" - -#~ msgid "Interrupted system call." -#~ msgstr "Appel système interrompu" - -#~ msgid "No child processes" -#~ msgstr "Pas de processus fils" - -#~ msgid "Try again" -#~ msgstr "Ressource temporairement indisponible (réessayez)" - -#~ msgid "Permission denied" -#~ msgstr "Autorisation refusée" - -#~ msgid "File exists" -#~ msgstr "Fichier déjà existant" - -#~ msgid "Not a directory" -#~ msgstr "Pas un répertoire" - -#~ msgid "Is a directory" -#~ msgstr "Est un répertoire" - -#~ msgid "Broken pipe" -#~ msgstr "Tube brisé" - -#~ msgid "Operation would block" -#~ msgstr "L'opération bloquerait" - -#~ msgid "Software caused connection abort" -#~ msgstr "Connexion abandonnée" - -#~ msgid "Connection reset by peer" -#~ msgstr "Connexion réinitialisée" - -#~ msgid "Cannot send after transport endpoint shutdown" -#~ msgstr "Impossible d'envoyer après l'arrêt du point final du transport" - -#~ msgid "Connection timed out" -#~ msgstr "Délai maximal de connexion écoulé" - -#~ msgid "Connection refused" -#~ msgstr "Connexion refusée" - -#~ msgid "Operation already in progress" -#~ msgstr "Connexion déjà en cours" - -#~ msgid "Operation now in progress" -#~ msgstr "Opération en cours" diff --git a/library/exceptions.po b/library/exceptions.po deleted file mode 100644 index ccf08dc892..0000000000 --- a/library/exceptions.po +++ /dev/null @@ -1,1777 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-11-21 21:57+0100\n" -"Last-Translator: Yannick Gingras \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 3.2.1\n" - -#: library/exceptions.rst:4 -msgid "Built-in Exceptions" -msgstr "Exceptions natives" - -#: library/exceptions.rst:10 -msgid "" -"In Python, all exceptions must be instances of a class that derives " -"from :class:`BaseException`. In a :keyword:`try` statement with " -"an :keyword:`except` clause that mentions a particular class, that clause " -"also handles any exception classes derived from that class (but not " -"exception classes from which *it* is derived). Two exception classes that " -"are not related via subclassing are never equivalent, even if they have the " -"same name." -msgstr "" -"En python, une exception est une instance d'une classe héritée " -"de :class:`BaseException`. Dans un bloc :keyword:`try`, la " -"clause :keyword:`except` traite non seulement la classe d'exception qu'elle " -"mentionne, mais aussi toutes les classes dérivées de cette classe " -"(contrairement à ses classes mères). Deux classes qui ne sont pas liées par " -"héritage ne sont jamais équivalentes, même si elles ont le même nom." - -#: library/exceptions.rst:19 -#, fuzzy -msgid "" -"The built-in exceptions listed in this chapter can be generated by the " -"interpreter or built-in functions. Except where mentioned, they have an " -"\"associated value\" indicating the detailed cause of the error. This may " -"be a string or a tuple of several items of information (e.g., an error code " -"and a string explaining the code). The associated value is usually passed " -"as arguments to the exception class's constructor." -msgstr "" -"Les exceptions natives présentes ci-dessous peuvent être levées par " -"l'interpréteur ou par les fonctions natives. Sauf mention contraire, une " -"\"valeur associée\" indique la cause de l'erreur. Cela peut être une chaîne " -"ou un *n*-uplet contenant plusieurs éléments d'information (e.g., un code " -"d'erreur ou un message explicatif). Cette valeur associée est généralement " -"donnée en argument du constructeur de la classe." - -#: library/exceptions.rst:26 -msgid "" -"User code can raise built-in exceptions. This can be used to test an " -"exception handler or to report an error condition \"just like\" the " -"situation in which the interpreter raises the same exception; but beware " -"that there is nothing to prevent user code from raising an inappropriate " -"error." -msgstr "" -"Du code utilisateur peut lever des exceptions natives. Cela peut être " -"utilisé pour tester un gestionnaire d'exception ou pour rapporter une " -"condition d'erreur \"comme si\" c'était l'interpréteur qui levait cette " -"exception ; mais attention car rien n'empêche du code utilisateur de lever " -"une erreur inappropriée." - -#: library/exceptions.rst:31 -msgid "" -"The built-in exception classes can be subclassed to define new exceptions; " -"programmers are encouraged to derive new exceptions from " -"the :exc:`Exception` class or one of its subclasses, and not " -"from :exc:`BaseException`. More information on defining exceptions is " -"available in the Python Tutorial under :ref:`tut-userexceptions`." -msgstr "" -"Les classes d'exception natives peuvent être héritées pour définir de " -"nouvelles exceptions ; les programmeurs sont encouragés à faire dériver les " -"nouvelles exceptions de la classe :exc:`Exception` ou d'une de ses sous-" -"classes, et non de :exc:`BaseException`. Plus d'informations sur la " -"définition des exceptions sont disponibles dans le Tutoriel Python au " -"chapitre :ref:`tut-userexceptions`." - -#: library/exceptions.rst:39 -msgid "Exception context" -msgstr "Contexte des exceptions" - -#: library/exceptions.rst:46 -msgid "" -"Three attributes on exception objects provide information about the context " -"in which the exception was raised:" -msgstr "" - -#: library/exceptions.rst:53 -#, fuzzy -msgid "" -"When raising a new exception while another exception is already being " -"handled, the new exception's :attr:`!__context__` attribute is automatically " -"set to the handled exception. An exception may be handled when " -"an :keyword:`except` or :keyword:`finally` clause, or a :keyword:`with` " -"statement, is used." -msgstr "" -"Quand une exception est levée pendant qu'une autre exception est déjà en " -"traitement, l'attribut :attr:`__context__` de la nouvelle exception est " -"automatiquement affecté à l'exception qui est en cours de traitement. Une " -"exception peut être traitée quand une clause :keyword:`except` " -"ou :keyword:`finally`, ou une instruction :keyword:`with` est utilisée." - -#: library/exceptions.rst:59 -msgid "" -"This implicit exception context can be supplemented with an explicit cause " -"by using :keyword:`!from` with :keyword:`raise`::" -msgstr "" -"Ce contexte implicite d'exception peut être complété par une cause explicite " -"en utilisant :keyword:`!from` avec :keyword:`raise` ::" - -#: library/exceptions.rst:65 -#, fuzzy -msgid "" -"The expression following :keyword:`from` must be an exception or " -"``None``. It will be set as :attr:`!__cause__` on the raised exception. " -"Setting :attr:`!__cause__` also implicitly sets the :attr:`!" -"__suppress_context__` attribute to ``True``, so that using ``raise new_exc " -"from None`` effectively replaces the old exception with the new one for " -"display purposes (e.g. converting :exc:`KeyError` to :exc:`AttributeError`), " -"while leaving the old exception available in :attr:`!__context__` for " -"introspection when debugging." -msgstr "" -"L'expression suivant :keyword:`from` doit être une exception ou " -"``None``. Elle sera assignée en tant que :attr:`__cause__` dans l'exception " -"levée. Changer :attr:`__cause__` change aussi implicitement " -"l'attribut :attr:`__suppress_context__` à ``True``, de sorte que " -"l'utilisation de ``raise new_exc from None`` remplace bien l'ancienne " -"exception avec la nouvelle à des fins d'affichage (par exemple, " -"convertir :exc:`KeyError` en :exc:`AttributeError`), tout en laissant " -"l'ancienne exception disponible dans :attr:`__context__` pour introspection " -"lors du débogage." - -#: library/exceptions.rst:74 -#, fuzzy -msgid "" -"The default traceback display code shows these chained exceptions in " -"addition to the traceback for the exception itself. An explicitly chained " -"exception in :attr:`!__cause__` is always shown when present. An implicitly " -"chained exception in :attr:`!__context__` is shown only if :attr:`!" -"__cause__` is :const:`None` and :attr:`!__suppress_context__` is false." -msgstr "" -"Le code d'affichage par défaut de la trace d'appels montre ces exceptions " -"chaînées en plus de la trace de l'exception elle-même. Si elle est présente, " -"une exception chaînée explicitement dans :attr:`__cause__` est toujours " -"affichée. Une exception implicitement chaînée dans :attr:`__context__` n'est " -"affichée que si :attr:`__cause__` est :const:`None` " -"et :attr:`__suppress_context__` est faux." - -#: library/exceptions.rst:80 -msgid "" -"In either case, the exception itself is always shown after any chained " -"exceptions so that the final line of the traceback always shows the last " -"exception that was raised." -msgstr "" -"Dans les deux cas, l'exception elle-même est toujours affichée après toutes " -"les exceptions enchaînées, de sorte que la dernière ligne de la trace " -"d'appels montre toujours la dernière exception qui a été levée." - -#: library/exceptions.rst:86 -msgid "Inheriting from built-in exceptions" -msgstr "Hériter des exceptions natives" - -#: library/exceptions.rst:88 -msgid "" -"User code can create subclasses that inherit from an exception type. It's " -"recommended to only subclass one exception type at a time to avoid any " -"possible conflicts between how the bases handle the ``args`` attribute, as " -"well as due to possible memory layout incompatibilities." -msgstr "" -"Le code de l'utilisateur peut créer des sous-classes qui dérivent d'un type " -"d'exception. Il est recommandé de ne dériver que d'un seul type d'exception " -"à la fois pour éviter des conflits possibles dans la façon dont les classes " -"mères traitent l'argument ``args`` ainsi que des incompatibilités " -"potentielles avec l'utilisation de la mémoire." - -#: library/exceptions.rst:95 -msgid "" -"Most built-in exceptions are implemented in C for efficiency, " -"see: :source:`Objects/exceptions.c`. Some have custom memory layouts which " -"makes it impossible to create a subclass that inherits from multiple " -"exception types. The memory layout of a type is an implementation detail and " -"might change between Python versions, leading to new conflicts in the " -"future. Therefore, it's recommended to avoid subclassing multiple exception " -"types altogether." -msgstr "" -"La majorité des exceptions natives sont implémentées en C pour des raisons " -"d'efficacité, voir :source:`Objects/exceptions.c`. L'architecture interne de " -"certaines est telle que cela rend impossible la création de sous-classes qui " -"dérivent de plusieurs types d'exceptions. L'agencement de la mémoire est un " -"détail d'implémentation qui est sujet à changement d'une version de Python à " -"l'autre, ce qui peut poser conflit dans le futur. Il est donc déconseillé de " -"dériver de plusieurs types d'exceptions." - -#: library/exceptions.rst:105 -msgid "Base classes" -msgstr "Classes mères" - -#: library/exceptions.rst:107 -msgid "" -"The following exceptions are used mostly as base classes for other " -"exceptions." -msgstr "" -"Les exceptions suivantes sont utilisées principalement en tant que classes " -"mères pour d'autres exceptions." - -#: library/exceptions.rst:111 -msgid "" -"The base class for all built-in exceptions. It is not meant to be directly " -"inherited by user-defined classes (for that, use :exc:`Exception`). " -"If :func:`str` is called on an instance of this class, the representation of " -"the argument(s) to the instance are returned, or the empty string when there " -"were no arguments." -msgstr "" -"La classe mère pour toutes les exceptions natives. Elle n'est pas vouée à " -"être héritée directement par des classes utilisateur (pour cela, " -"utilisez :exc:`Exception`). Si :func:`str` est appelée sur une instance de " -"cette classe, la représentation du ou des argument(s) de l'instance est " -"retournée, ou la chaîne vide s'il n'y avait pas d'arguments." - -#: library/exceptions.rst:119 -msgid "" -"The tuple of arguments given to the exception constructor. Some built-in " -"exceptions (like :exc:`OSError`) expect a certain number of arguments and " -"assign a special meaning to the elements of this tuple, while others are " -"usually called only with a single string giving an error message." -msgstr "" -"Le *n*-uplet d'arguments donné au constructeur d'exception. Certaines " -"exceptions natives (comme :exc:`OSError`) attendent un certain nombre " -"d'arguments et attribuent une signification spéciale aux éléments de ce *n*-" -"uplet, alors que d'autres ne sont généralement appelées qu'avec une seule " -"chaîne de caractères rendant un message d'erreur." - -#: library/exceptions.rst:126 -msgid "" -"This method sets *tb* as the new traceback for the exception and returns the " -"exception object. It was more commonly used before the exception chaining " -"features of :pep:`3134` became available. The following example shows how " -"we can convert an instance of ``SomeException`` into an instance of " -"``OtherException`` while preserving the traceback. Once raised, the current " -"frame is pushed onto the traceback of the ``OtherException``, as would have " -"happened to the traceback of the original ``SomeException`` had we allowed " -"it to propagate to the caller. ::" -msgstr "" -"Cette méthode affecte *tb* comme la nouvelle trace d'appels de l'exception " -"et renvoie l'objet exception. Elle était utilisée de façon plus courante " -"avant que la fonctionnalité de chaînage des exceptions de la :pep:`3134` " -"devienne disponible. L'exemple suivant démontre comment convertir une " -"instance de ``SomeException`` en une instance de ``OtherException`` tout en " -"préservant la pile d'appels. Une fois l'exception levée, le cadre courant " -"est empilé sur la trace d'appels de ``OtherException``, comme cela se serait " -"produit pour la trace d'appels de ``SomeException`` si on l'avait laissée se " -"propager jusqu'à l'appelant ::" - -#: library/exceptions.rst:143 -msgid "" -"A writable field that holds the :ref:`traceback object ` " -"associated with this exception. See also: :ref:`raise`." -msgstr "" - -#: library/exceptions.rst:149 -msgid "" -"Add the string ``note`` to the exception's notes which appear in the " -"standard traceback after the exception string. A :exc:`TypeError` is raised " -"if ``note`` is not a string." -msgstr "" - -#: library/exceptions.rst:157 -msgid "" -"A list of the notes of this exception, which were added " -"with :meth:`add_note`. This attribute is created when :meth:`add_note` is " -"called." -msgstr "" - -#: library/exceptions.rst:165 -msgid "" -"All built-in, non-system-exiting exceptions are derived from this class. " -"All user-defined exceptions should also be derived from this class." -msgstr "" -"Toutes les exceptions natives, qui n'entraînent pas une sortie du système " -"dérivent de cette classe. Toutes les exceptions définies par l'utilisateur " -"devraient également être dérivées de cette classe." - -#: library/exceptions.rst:171 -msgid "" -"The base class for those built-in exceptions that are raised for various " -"arithmetic " -"errors: :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:`FloatingPointError`." -msgstr "" -"La classe mère pour les exceptions natives qui sont levées pour diverses " -"erreurs " -"arithmétiques : :exc:`OverflowError`, :exc:`ZeroDivisionError`, :exc:`FloatingPointError`." - -#: library/exceptions.rst:178 -msgid "" -"Raised when a :ref:`buffer ` related operation cannot be " -"performed." -msgstr "" -"Levée lorsqu'une opération liée à un :ref:`tampon ` ne peut " -"pas être exécutée." - -#: library/exceptions.rst:184 -msgid "" -"The base class for the exceptions that are raised when a key or index used " -"on a mapping or sequence is invalid: :exc:`IndexError`, :exc:`KeyError`. " -"This can be raised directly by :func:`codecs.lookup`." -msgstr "" -"La classe mère pour les exceptions qui sont levées lorsqu'une clé ou un " -"index utilisé sur un tableau de correspondances ou une séquence est " -"invalide : :exc:`IndexError`, :exc:`KeyError`. Peut être levée directement " -"par :func:`codecs.lookup`." - -#: library/exceptions.rst:190 -msgid "Concrete exceptions" -msgstr "Exceptions concrètes" - -#: library/exceptions.rst:192 -msgid "The following exceptions are the exceptions that are usually raised." -msgstr "Les exceptions suivantes sont celles qui sont habituellement levées." - -#: library/exceptions.rst:198 -msgid "Raised when an :keyword:`assert` statement fails." -msgstr "Levée lorsqu'une instruction :keyword:`assert` échoue." - -#: library/exceptions.rst:203 -msgid "" -"Raised when an attribute reference (see :ref:`attribute-references`) or " -"assignment fails. (When an object does not support attribute references or " -"attribute assignments at all, :exc:`TypeError` is raised.)" -msgstr "" -"Levée lorsqu'une référence ou une assignation d'attribut " -"(voir :ref:`attribute-references`) échoue. (Lorsqu'un objet ne supporte pas " -"du tout la référence ou l'assignation d'attribut, :exc:`TypeError` est " -"levé.)" - -#: library/exceptions.rst:207 -msgid "" -"The optional *name* and *obj* keyword-only arguments set the corresponding " -"attributes:" -msgstr "" - -#: library/exceptions.rst:212 -#, fuzzy -msgid "The name of the attribute that was attempted to be accessed." -msgstr "Le nom de l'encodage qui a provoqué l'erreur." - -#: library/exceptions.rst:216 -msgid "The object that was accessed for the named attribute." -msgstr "" - -#: library/exceptions.rst:218 -msgid "Added the :attr:`name` and :attr:`obj` attributes." -msgstr "Ajout des attributs :attr:`name` et :attr:`obj`." - -#: library/exceptions.rst:223 -#, fuzzy -msgid "" -"Raised when the :func:`input` function hits an end-of-file condition (EOF) " -"without reading any data. (Note: the :meth:`io.TextIOBase.read` " -"and :meth:`io.IOBase.readline` methods return an empty string when they hit " -"EOF.)" -msgstr "" -"Levée lorsque la fonction :func:`input` atteint une condition de fin de " -"fichier (EOF) sans lire aucune donnée. (N.B. : les " -"méthodes :meth:`io.IOBase.read` et :meth:`io.IOBase.readline` retournent une " -"chaîne vide lorsqu'elles atteignent EOF.)" - -#: library/exceptions.rst:230 -msgid "Not currently used." -msgstr "N’est pas utilisé pour le moment." - -#: library/exceptions.rst:235 -msgid "" -"Raised when a :term:`generator` or :term:`coroutine` is closed; " -"see :meth:`generator.close` and :meth:`coroutine.close`. It directly " -"inherits from :exc:`BaseException` instead of :exc:`Exception` since it is " -"technically not an error." -msgstr "" -"Levée lorsqu'un :term:`generator` ou une :term:`coroutine` est fermé, " -"voir :meth:`generator.close` et :meth:`coroutine.close`. Elle hérite " -"directement de :exc:`BaseException` au lieu de :exc:`Exception` puisqu'il ne " -"s'agit pas techniquement d'une erreur." - -#: library/exceptions.rst:243 -msgid "" -"Raised when the :keyword:`import` statement has troubles trying to load a " -"module. Also raised when the \"from list\" in ``from ... import`` has a " -"name that cannot be found." -msgstr "" -"Levée lorsque l'instruction :keyword:`import` a des problèmes pour essayer " -"de charger un module. Également levée lorsque Python ne trouve pas un nom " -"dans ``from ... import``." - -#: library/exceptions.rst:247 -msgid "" -"The optional *name* and *path* keyword-only arguments set the corresponding " -"attributes:" -msgstr "" - -#: library/exceptions.rst:252 -#, fuzzy -msgid "The name of the module that was attempted to be imported." -msgstr "Le nom de l'encodage qui a provoqué l'erreur." - -#: library/exceptions.rst:256 -msgid "The path to any file which triggered the exception." -msgstr "" - -#: library/exceptions.rst:258 -msgid "Added the :attr:`name` and :attr:`path` attributes." -msgstr "Ajout des attributs :attr:`name` et :attr:`path`." - -#: library/exceptions.rst:263 -msgid "" -"A subclass of :exc:`ImportError` which is raised by :keyword:`import` when a " -"module could not be located. It is also raised when ``None`` is found " -"in :data:`sys.modules`." -msgstr "" -"Une sous-classe de :exc:`ImportError` qui est levée par :keyword:`import` " -"lorsqu'un module n'a pas pu être localisé. Elle est généralement levée quand " -"``None`` est trouvé dans :data:`sys.modules`." - -#: library/exceptions.rst:271 -msgid "" -"A subclass of :exc:`ImportError` which is raised when a lazy import fails " -"because it (directly or indirectly) tries to import itself." -msgstr "" - -#: library/exceptions.rst:278 -msgid "" -"Raised when a sequence subscript is out of range. (Slice indices are " -"silently truncated to fall in the allowed range; if an index is not an " -"integer, :exc:`TypeError` is raised.)" -msgstr "" -"Levée lorsqu'un indice de séquence est hors de la plage. (Les indices de " -"tranches (*slices*) sont tronqués silencieusement pour tomber dans la plage " -"autorisée ; si un indice n'est pas un entier, :exc:`TypeError` est levée.)" - -#: library/exceptions.rst:287 -msgid "" -"Raised when a mapping (dictionary) key is not found in the set of existing " -"keys." -msgstr "" -"Levée lorsqu'une clef (de dictionnaire) n'est pas trouvée dans l'ensemble " -"des clefs existantes." - -#: library/exceptions.rst:294 -msgid "" -"Raised when the user hits the interrupt key (normally :kbd:`Control-C` " -"or :kbd:`Delete`). During execution, a check for interrupts is made " -"regularly. The exception inherits from :exc:`BaseException` so as to not be " -"accidentally caught by code that catches :exc:`Exception` and thus prevent " -"the interpreter from exiting." -msgstr "" -"Levée lorsque l'utilisateur appuie sur la touche d'interruption " -"(normalement :kbd:`Control-C` or :kbd:`Delete`). Pendant l'exécution, un " -"contrôle des interruptions est effectué régulièrement. L'exception hérite " -"de :exc:`BaseException` afin de ne pas être accidentellement interceptée par " -"du code qui intercepte :exc:`Exception` et ainsi empêcher l'interpréteur de " -"quitter." - -#: library/exceptions.rst:302 -msgid "" -"Catching a :exc:`KeyboardInterrupt` requires special consideration. Because " -"it can be raised at unpredictable points, it may, in some circumstances, " -"leave the running program in an inconsistent state. It is generally best to " -"allow :exc:`KeyboardInterrupt` to end the program as quickly as possible or " -"avoid raising it entirely. (See :ref:`handlers-and-exceptions`.)" -msgstr "" -"Attraper une :exc:`KeyboardInterrupt` demande une considération " -"particulière. Comme elle peut être levée à des moments imprévisibles, elle " -"peut dans certains cas laisser le programme en cours d'exécution dans un " -"état incohérent. Il est généralement préférable de " -"laisser :exc:`KeyboardInterrupt` arrêter le programme aussi rapidement que " -"possible ou d'éviter catégoriquement de la lever (voir :ref:`handlers-and-" -"exceptions`)." - -#: library/exceptions.rst:312 -msgid "" -"Raised when an operation runs out of memory but the situation may still be " -"rescued (by deleting some objects). The associated value is a string " -"indicating what kind of (internal) operation ran out of memory. Note that " -"because of the underlying memory management architecture " -"(C's :c:func:`malloc` function), the interpreter may not always be able to " -"completely recover from this situation; it nevertheless raises an exception " -"so that a stack traceback can be printed, in case a run-away program was the " -"cause." -msgstr "" -"Levée lorsqu'une opération est à court de mémoire mais que la situation peut " -"encore être rattrapée (en supprimant certains objets). La valeur associée " -"est une chaîne de caractères indiquant quel type d'opération (interne) est à " -"court de mémoire. À noter qu'en raison de l'architecture interne de gestion " -"de la mémoire (la fonction :c:func:`malloc` du C), l'interpréteur peut ne " -"pas toujours être capable de rattraper cette situation ; il lève néanmoins " -"une exception pour qu'une pile d'appels puisse être affichée, dans le cas où " -"un programme en cours d'exécution en était la cause." - -#: library/exceptions.rst:323 -msgid "" -"Raised when a local or global name is not found. This applies only to " -"unqualified names. The associated value is an error message that includes " -"the name that could not be found." -msgstr "" -"Levée lorsqu'un nom local ou global n'est pas trouvé. Ceci ne s'applique " -"qu'aux noms non qualifiés. La valeur associée est un message d'erreur qui " -"inclut le nom qui n'a pas pu être trouvé." - -#: library/exceptions.rst:327 -msgid "The optional *name* keyword-only argument sets the attribute:" -msgstr "" - -#: library/exceptions.rst:331 -#, fuzzy -msgid "The name of the variable that was attempted to be accessed." -msgstr "Le nom de l'encodage qui a provoqué l'erreur." - -#: library/exceptions.rst:333 -msgid "Added the :attr:`name` attribute." -msgstr "Ajout de l'attribut :attr:`name`." - -#: library/exceptions.rst:339 -msgid "" -"This exception is derived from :exc:`RuntimeError`. In user defined base " -"classes, abstract methods should raise this exception when they require " -"derived classes to override the method, or while the class is being " -"developed to indicate that the real implementation still needs to be added." -msgstr "" -"Cette exception est dérivée de :exc:`RuntimeError`. Dans les classes mères " -"définies par l'utilisateur, les méthodes abstraites devraient lever cette " -"exception lorsqu'elles nécessitent des classes dérivées pour remplacer la " -"méthode, ou lorsque la classe est en cours de développement pour indiquer " -"que l'implémentation concrète doit encore être ajoutée." - -#: library/exceptions.rst:346 -msgid "" -"It should not be used to indicate that an operator or method is not meant to " -"be supported at all -- in that case either leave the operator / method " -"undefined or, if a subclass, set it to :data:`None`." -msgstr "" -"Elle ne devrait pas être utilisée pour indiquer qu'un opérateur ou qu'une " -"méthode n'est pas destiné à être pris en charge du tout – dans ce cas, " -"évitez de définir l'opérateur ou la méthode, ou s'il s'agit d'une sous-" -"classe, assignez-le à :data:`None`." - -#: library/exceptions.rst:352 -#, fuzzy -msgid "" -":exc:`!NotImplementedError` and :data:`!NotImplemented` are not " -"interchangeable. This exception should only be used as described above; " -"see :data:`NotImplemented` for details on correct usage of the built-in " -"constant." -msgstr "" -"``NotImplementedError`` et ``NotImplemented`` ne sont pas interchangeables, " -"même s'ils ont des noms et des objectifs similaires. " -"Voir :data:`NotImplemented` pour des détails sur la façon de les utiliser." - -#: library/exceptions.rst:363 -msgid "" -"This exception is raised when a system function returns a system-related " -"error, including I/O failures such as \"file not found\" or \"disk full\" " -"(not for illegal argument types or other incidental errors)." -msgstr "" -"Cette exception est levée lorsqu'une fonction système retourne une erreur " -"liée au système, incluant les erreurs entrées-sorties telles que \"fichier " -"non trouvé\" ou \"disque plein\" (pas pour les types d'arguments illégaux ou " -"d'autres erreurs accidentelles)." - -#: library/exceptions.rst:367 -msgid "" -"The second form of the constructor sets the corresponding attributes, " -"described below. The attributes default to :const:`None` if not specified. " -"For backwards compatibility, if three arguments are passed, " -"the :attr:`~BaseException.args` attribute contains only a 2-tuple of the " -"first two constructor arguments." -msgstr "" -"La deuxième forme du constructeur définit les attributs correspondants, " -"décrits ci-dessous. Les attributs par défaut sont :const:`None` si non " -"spécifiés. Pour la rétrocompatibilité, si trois arguments sont passés, " -"l'attribut :attr:`~BaseException.args` contient seulement une paire avec les " -"valeurs des deux premiers arguments du constructeur." - -#: library/exceptions.rst:373 -msgid "" -"The constructor often actually returns a subclass of :exc:`OSError`, as " -"described in `OS exceptions`_ below. The particular subclass depends on the " -"final :attr:`.errno` value. This behaviour only occurs when " -"constructing :exc:`OSError` directly or via an alias, and is not inherited " -"when subclassing." -msgstr "" -"Le constructeur retourne souvent une sous-classe d':exc:`OSError`, comme " -"décrit dans `OS exceptions`_ ci-dessous. La sous-classe particulière dépend " -"de la valeur finale d':attr:`.errno`. Ce comportement ne se produit que lors " -"de la construction d':exc:`OSError` directement ou via un alias, et n'est " -"pas hérité lors du sous-classement." - -#: library/exceptions.rst:381 -msgid "A numeric error code from the C variable :c:data:`errno`." -msgstr "Code d'erreur numérique de la variable C :c:data:`errno`." - -#: library/exceptions.rst:385 -msgid "" -"Under Windows, this gives you the native Windows error code. " -"The :attr:`.errno` attribute is then an approximate translation, in POSIX " -"terms, of that native error code." -msgstr "" -"Sous Windows, cela donne le code d'erreur Windows natif. " -"L'attribut :attr:`.errno` est alors une traduction approximative, en termes " -"POSIX, de ce code d'erreur natif." - -#: library/exceptions.rst:389 -msgid "" -"Under Windows, if the *winerror* constructor argument is an integer, " -"the :attr:`.errno` attribute is determined from the Windows error code, and " -"the *errno* argument is ignored. On other platforms, the *winerror* " -"argument is ignored, and the :attr:`winerror` attribute does not exist." -msgstr "" -"Sous Windows, si l'argument du constructeur *winerror* est un entier, " -"l'attribut :attr:`.errno` est déterminé à partir du code d'erreur Windows, " -"et l'argument *errno* est ignoré. Sur d'autres plateformes, l'argument " -"*winerror* est ignoré, et l'attribut :attr:`winerror` n'existe pas." - -#: library/exceptions.rst:397 -#, fuzzy -msgid "" -"The corresponding error message, as provided by the operating system. It is " -"formatted by the C functions :c:func:`!perror` under POSIX, and :c:func:`!" -"FormatMessage` under Windows." -msgstr "" -"Le message d'erreur correspondant, tel que fourni par le système " -"d'exploitation. Il est formaté par les fonctions C :c:func:`perror` sous " -"POSIX, et :c:func:`FormatMessage` sous Windows." - -#: library/exceptions.rst:405 -msgid "" -"For exceptions that involve a file system path (such as :func:`open` " -"or :func:`os.unlink`), :attr:`filename` is the file name passed to the " -"function. For functions that involve two file system paths (such " -"as :func:`os.rename`), :attr:`filename2` corresponds to the second file name " -"passed to the function." -msgstr "" -"Pour les exceptions qui font référence à un chemin d'accès au système de " -"fichiers (comme :func:`open` ou :func:`os.unlink`), :attr:`filename` est le " -"nom du fichier transmis à la fonction. Pour les fonctions qui font référence " -"à deux chemins d'accès au système de fichiers " -"(comme :func:`os.rename`), :attr:`filename2` correspond au deuxième nom de " -"fichier passé à la fonction." - -#: library/exceptions.rst:412 -#, fuzzy -msgid "" -":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket.error`, :exc:`select.error` " -"and :exc:`!mmap.error` have been merged into :exc:`OSError`, and the " -"constructor may return a subclass." -msgstr "" -":exc:`EnvironmentError`, :exc:`IOError`, :exc:`WindowsError`, :exc:`socket.error`, :exc:`select.error` " -"et :exc:`mmap.error` ont fusionnées en :exc:`OSError`, et le constructeur " -"peut renvoyer une sous-classe." - -#: library/exceptions.rst:418 -msgid "" -"The :attr:`filename` attribute is now the original file name passed to the " -"function, instead of the name encoded to or decoded from " -"the :term:`filesystem encoding and error handler`. Also, the *filename2* " -"constructor argument and attribute was added." -msgstr "" -"L'attribut :attr:`filename` est maintenant le nom du fichier originel passé " -"à la fonction, au lieu du nom encodé ou décodé à partir " -"du :term:`gestionnaire d'encodage et d'erreur du système de fichiers " -"`. De plus, l'argument du " -"constructeur et attribut *filename2* a été ajouté." - -#: library/exceptions.rst:427 -#, fuzzy -msgid "" -"Raised when the result of an arithmetic operation is too large to be " -"represented. This cannot occur for integers (which would rather " -"raise :exc:`MemoryError` than give up). However, for historical reasons, " -"OverflowError is sometimes raised for integers that are outside a required " -"range. Because of the lack of standardization of floating-point exception " -"handling in C, most floating-point operations are not checked." -msgstr "" -"Levée lorsque le résultat d'une opération arithmétique est trop grand pour " -"être représenté. Cela ne peut pas se produire pour les entiers (qui " -"préfèrent lever :exc:`MemoryError` plutôt que d'abandonner). Cependant, pour " -"des raisons historiques, ``OverflowError`` est parfois levée pour des " -"entiers qui sont en dehors d'une plage requise. En raison de l'absence de " -"normalisation de la gestion des exceptions de virgule flottante en C, la " -"plupart des opérations en virgule flottante ne sont pas vérifiées." - -#: library/exceptions.rst:437 -#, fuzzy -msgid "" -"This exception is derived from :exc:`RuntimeError`. It is raised when an " -"operation is blocked during interpreter shutdown also known as :term:`Python " -"finalization `." -msgstr "" -"Cette exception est dérivée de :exc:`RuntimeError`. Elle est levée lorsque " -"l'interpréteur détecte que la profondeur de récursivité maximale " -"(voir :func:`sys.getrecursionlimit`) est dépassée." - -#: library/exceptions.rst:441 -msgid "" -"Examples of operations which can be blocked with " -"a :exc:`PythonFinalizationError` during the Python finalization:" -msgstr "" - -#: library/exceptions.rst:444 -msgid "Creating a new Python thread." -msgstr "" - -#: library/exceptions.rst:445 -msgid ":meth:`Joining ` a running daemon thread." -msgstr "" - -#: library/exceptions.rst:446 -msgid ":func:`os.fork`," -msgstr "" - -#: library/exceptions.rst:447 -msgid "" -"acquiring a lock such as :class:`threading.Lock`, when it is known that the " -"operation would otherwise deadlock." -msgstr "" - -#: library/exceptions.rst:450 -msgid "See also the :func:`sys.is_finalizing` function." -msgstr "" - -#: library/exceptions.rst:470 -msgid "Previously, a plain :exc:`RuntimeError` was raised." -msgstr "Auparavant, une simple :exc:`RuntimeError` était levée." - -#: library/exceptions.rst:457 -msgid ":meth:`threading.Thread.join` can now raise this exception." -msgstr "" - -#: library/exceptions.rst:461 -msgid "" -"This exception may be raised when acquiring :meth:`threading.Lock` " -"or :meth:`threading.RLock`." -msgstr "" - -#: library/exceptions.rst:466 -msgid "" -"This exception is derived from :exc:`RuntimeError`. It is raised when the " -"interpreter detects that the maximum recursion depth " -"(see :func:`sys.getrecursionlimit`) is exceeded." -msgstr "" -"Cette exception est dérivée de :exc:`RuntimeError`. Elle est levée lorsque " -"l'interpréteur détecte que la profondeur de récursivité maximale " -"(voir :func:`sys.getrecursionlimit`) est dépassée." - -#: library/exceptions.rst:476 -msgid "" -"This exception is raised when a weak reference proxy, created by " -"the :func:`weakref.proxy` function, is used to access an attribute of the " -"referent after it has been garbage collected. For more information on weak " -"references, see the :mod:`weakref` module." -msgstr "" -"Cette exception est levée lorsqu'un pointeur faible d'un objet proxy, créé " -"par la fonction :func:`weakref.proxy`, est utilisé pour accéder à un " -"attribut du référent après qu'il ait été récupéré par le ramasse-miettes. " -"Pour plus d'informations sur les pointeurs faibles, voir le " -"module :mod:`weakref`." - -#: library/exceptions.rst:484 -msgid "" -"Raised when an error is detected that doesn't fall in any of the other " -"categories. The associated value is a string indicating what precisely went " -"wrong." -msgstr "" -"Levée lorsqu'une erreur qui n'appartient à aucune des autres catégories est " -"détectée. La valeur associée est une chaîne de caractères indiquant " -"précisément ce qui s'est mal passé." - -#: library/exceptions.rst:491 -msgid "" -"Raised by built-in function :func:`next` and " -"an :term:`iterator`\\'s :meth:`~iterator.__next__` method to signal that " -"there are no further items produced by the iterator." -msgstr "" -"Levée par la fonction native :func:`next` et la " -"méthode :meth:`~iterator.__next__` d'un :term:`iterator` (itérateur) pour " -"signaler qu'il n'y a pas d'autres éléments produits par l'itérateur." - -#: library/exceptions.rst:497 -#, fuzzy -msgid "" -"The exception object has a single attribute :attr:`!value`, which is given " -"as an argument when constructing the exception, and defaults " -"to :const:`None`." -msgstr "" -"L'objet exception a un unique attribut :attr:`value`, qui est donné en " -"argument lors de la construction de l'exception, et vaut :const:`None` par " -"défaut." - -#: library/exceptions.rst:501 -msgid "" -"When a :term:`generator` or :term:`coroutine` function returns, a " -"new :exc:`StopIteration` instance is raised, and the value returned by the " -"function is used as the :attr:`value` parameter to the constructor of the " -"exception." -msgstr "" -"Lorsqu'une fonction de type :term:`generator` ou :term:`coroutine` retourne " -"une valeur, une nouvelle instance de :exc:`StopIteration` est levée, et la " -"valeur retournée par la fonction est passée au paramètre :attr:`value` du " -"constructeur de l'exception." - -#: library/exceptions.rst:506 -msgid "" -"If a generator code directly or indirectly raises :exc:`StopIteration`, it " -"is converted into a :exc:`RuntimeError` (retaining the :exc:`StopIteration` " -"as the new exception's cause)." -msgstr "" -"Si le code d'un générateur lève, directement ou indirectement, " -"une :exc:`StopIteration`, elle est convertie en :exc:`RuntimeError` (en " -"conservant :exc:`StopIteration` comme cause de la nouvelle exception)." - -#: library/exceptions.rst:510 -msgid "" -"Added ``value`` attribute and the ability for generator functions to use it " -"to return a value." -msgstr "" -"Ajout de l'attribut ``value`` et de la possibilité pour les fonctions de " -"générateur de l'utiliser pour retourner une valeur." - -#: library/exceptions.rst:514 -msgid "" -"Introduced the RuntimeError transformation via ``from __future__ import " -"generator_stop``, see :pep:`479`." -msgstr "" -"Introduit la transformation des erreurs ``RuntimeError`` via ``from " -"__future__ import generator_stop``, cf. :pep:`479`." - -#: library/exceptions.rst:518 -msgid "" -"Enable :pep:`479` for all code by default: a :exc:`StopIteration` error " -"raised in a generator is transformed into a :exc:`RuntimeError`." -msgstr "" -"Active :pep:`479` pour tout le code par défaut : quand une " -"erreur :exc:`StopIteration` est levée dans un générateur elle est " -"transformée en une :exc:`RuntimeError`." - -#: library/exceptions.rst:524 -#, fuzzy -msgid "" -"Must be raised by :meth:`~object.__anext__` method of an :term:`asynchronous " -"iterator` object to stop the iteration." -msgstr "" -"Doit être levée par la méthode :meth:`__anext__` d'un " -"objet :term:`asynchronous iterator` pour arrêter l'itération." - -#: library/exceptions.rst:531 -msgid "" -"Raised when the parser encounters a syntax error. This may occur in " -"an :keyword:`import` statement, in a call to the built-in " -"functions :func:`compile`, :func:`exec`, or :func:`eval`, or when reading " -"the initial script or standard input (also interactively)." -msgstr "" -"Levée lorsque l'analyseur syntaxique rencontre une erreur de syntaxe. Cela " -"peut se produire dans une instruction :keyword:`import`, dans un appel aux " -"fonctions natives :func:`compile`, :func:`exec` ou :func:`eval`, ou lors de " -"la lecture du script initial ou de l'entrée standard (également de manière " -"interactive)." - -#: library/exceptions.rst:537 -msgid "" -"The :func:`str` of the exception instance returns only the error message. " -"Details is a tuple whose members are also available as separate attributes." -msgstr "" -"La conversion en chaîne avec :func:`str` de l'instance de l'exception ne " -"renvoie que le message d'erreur. L'argument ``details`` est un *n*-uplet " -"dont les membres sont disponibles en tant qu'attributs séparés." - -#: library/exceptions.rst:542 -msgid "The name of the file the syntax error occurred in." -msgstr "Le nom du fichier dans lequel l'erreur de syntaxe a été rencontrée." - -#: library/exceptions.rst:546 -msgid "" -"Which line number in the file the error occurred in. This is 1-indexed: the " -"first line in the file has a ``lineno`` of 1." -msgstr "" -"Le numéro de la ligne dans le fichier où l'erreur s'est produite. L'indiçage " -"commence à 1 : ``lineno`` vaut 1 pour la première ligne du fichier." - -#: library/exceptions.rst:551 -msgid "" -"The column in the line where the error occurred. This is 1-indexed: the " -"first character in the line has an ``offset`` of 1." -msgstr "" -"La colonne dans la ligne où l'erreur s'est produite. L'indiçage commence à " -"1 : ``offset`` vaut 1 pour le premier caractère de la ligne." - -#: library/exceptions.rst:556 -msgid "The source code text involved in the error." -msgstr "Le texte du code source impliqué dans l'erreur." - -#: library/exceptions.rst:560 -msgid "" -"Which line number in the file the error occurred ends in. This is 1-indexed: " -"the first line in the file has a ``lineno`` of 1." -msgstr "" -"Le numéro de la dernière ligne produisant l'erreur. L'indiçage commence à " -"1 : ``lineno`` vaut 1 pour la première ligne du fichier." - -#: library/exceptions.rst:565 -msgid "" -"The column in the end line where the error occurred finishes. This is 1-" -"indexed: the first character in the line has an ``offset`` of 1." -msgstr "" -"Le numéro de la dernière colonne (de la dernière ligne) produisant l'erreur. " -"L'indiçage commence à 1 : ``offset`` vaut 1 pour le premier caractère de la " -"ligne." - -#: library/exceptions.rst:568 -msgid "" -"For errors in f-string fields, the message is prefixed by \"f-string: \" and " -"the offsets are offsets in a text constructed from the replacement " -"expression. For example, compiling f'Bad {a b} field' results in this args " -"attribute: ('f-string: ...', ('', 1, 2, '(a b)\\n', 1, 5))." -msgstr "" -"Pour les erreurs dans les chaînes de formatage *f-strings*, le message " -"commence par « f-string: » et les champs *offset* sont les décalages dans un " -"texte construit à partir de l’expression de remplacement. Par exemple, " -"compiler ``f'Bad {a b} field'`` produit cet attribut *args* : ``('f-" -"string: ...', ('', 1, 2, '(a b)\\n', 1, 5)).``" - -#: library/exceptions.rst:573 -msgid "Added the :attr:`end_lineno` and :attr:`end_offset` attributes." -msgstr "Ajout des attributs :attr:`end_lineno` et :attr:`end_offset`." - -#: library/exceptions.rst:578 -msgid "" -"Base class for syntax errors related to incorrect indentation. This is a " -"subclass of :exc:`SyntaxError`." -msgstr "" -"Classe mère pour les erreurs de syntaxe liées à une indentation incorrecte. " -"C'est une sous-classe de :exc:`SyntaxError`." - -#: library/exceptions.rst:584 -msgid "" -"Raised when indentation contains an inconsistent use of tabs and spaces. " -"This is a subclass of :exc:`IndentationError`." -msgstr "" -"Levée lorsqu'une indentation contient une utilisation incohérente des " -"tabulations et des espaces. C'est une sous-classe de :exc:`IndentationError`." - -#: library/exceptions.rst:590 -#, fuzzy -msgid "" -"Raised when the interpreter finds an internal error, but the situation does " -"not look so serious to cause it to abandon all hope. The associated value is " -"a string indicating what went wrong (in low-level terms). " -"In :term:`CPython`, this could be raised by incorrectly using Python's C " -"API, such as returning a ``NULL`` value without an exception set." -msgstr "" -"Levée lorsque l'interpréteur trouve une erreur interne, mais que la " -"situation ne semble pas si grave au point de lui faire abandonner tout " -"espoir. La valeur associée est une chaîne de caractères indiquant l'erreur " -"qui est survenue (en termes bas niveau)." - -#: library/exceptions.rst:596 -#, fuzzy -msgid "" -"If you're confident that this exception wasn't your fault, or the fault of a " -"package you're using, you should report this to the author or maintainer of " -"your Python interpreter. Be sure to report the version of the Python " -"interpreter (``sys.version``; it is also printed at the start of an " -"interactive Python session), the exact error message (the exception's " -"associated value) and if possible the source of the program that triggered " -"the error." -msgstr "" -"Vous devriez le signaler à l'auteur ou au responsable de votre interpréteur " -"Python. Assurez-vous de signaler la version de l'interpréteur " -"(``sys.version`` ; elle est également affichée au lancement d'une session " -"interactive), le message d'erreur exact (la valeur associée à l'exception) " -"et si possible le code source du programme qui a déclenché l'erreur." - -#: library/exceptions.rst:607 -#, fuzzy -msgid "" -"This exception is raised by the :func:`sys.exit` function. It inherits " -"from :exc:`BaseException` instead of :exc:`Exception` so that it is not " -"accidentally caught by code that catches :exc:`Exception`. This allows the " -"exception to properly propagate up and cause the interpreter to exit. When " -"it is not handled, the Python interpreter exits; no stack traceback is " -"printed. The constructor accepts the same optional argument passed " -"to :func:`sys.exit`. If the value is an integer, it specifies the system " -"exit status (passed to C's :c:func:`!exit` function); if it is ``None``, the " -"exit status is zero; if it has another type (such as a string), the object's " -"value is printed and the exit status is one." -msgstr "" -"Cette exception est levée par la fonction :func:`sys.exit`. Elle hérite " -"de :exc:`BaseException` au lieu d':exc:`Exception` pour ne pas qu'elle soit " -"interceptée accidentellement par du code qui intercepte :exc:`Exception`. " -"Cela permet à l'exception de se propager correctement et de faire quitter " -"l'interpréteur. Lorsqu'elle n'est pas gérée, l'interpréteur Python quitte ; " -"aucune trace d'appels n'est affichée. Le constructeur accepte le même " -"argument optionnel passé à :func:`sys.exit`. Si la valeur est un entier, " -"elle spécifie l'état de sortie du système (passé à la fonction " -"C :c:func:`exit`) ; si elle est ``None``, l'état de sortie est zéro ; si " -"elle a un autre type (comme une chaîne de caractères), la valeur de l'objet " -"est affichée et l'état de sortie est un." - -#: library/exceptions.rst:618 -msgid "" -"A call to :func:`sys.exit` is translated into an exception so that clean-up " -"handlers (:keyword:`finally` clauses of :keyword:`try` statements) can be " -"executed, and so that a debugger can execute a script without running the " -"risk of losing control. The :func:`os._exit` function can be used if it is " -"absolutely positively necessary to exit immediately (for example, in the " -"child process after a call to :func:`os.fork`)." -msgstr "" -"Un appel à :func:`sys.exit` est traduit en une exception pour que les " -"gestionnaires de nettoyage (les clauses :keyword:`finally` des " -"instructions :keyword:`try`) puissent être exécutés, et pour qu'un débogueur " -"puisse exécuter un script sans courir le risque de perdre le contrôle. La " -"fonction :func:`os._exit` peut être utilisée s'il est absolument nécessaire " -"de sortir immédiatement (par exemple, dans le processus enfant après un " -"appel à :func:`os.fork`)." - -#: library/exceptions.rst:627 -msgid "" -"The exit status or error message that is passed to the constructor. " -"(Defaults to ``None``.)" -msgstr "" -"L'état de sortie ou le message d'erreur passé au constructeur. (``None`` par " -"défaut.)" - -#: library/exceptions.rst:633 -msgid "" -"Raised when an operation or function is applied to an object of " -"inappropriate type. The associated value is a string giving details about " -"the type mismatch." -msgstr "" -"Levée lorsqu'une opération ou fonction est appliquée à un objet d'un type " -"inapproprié. La valeur associée est une chaîne de caractères donnant des " -"détails sur le type d'inadéquation." - -#: library/exceptions.rst:636 -msgid "" -"This exception may be raised by user code to indicate that an attempted " -"operation on an object is not supported, and is not meant to be. If an " -"object is meant to support a given operation but has not yet provided an " -"implementation, :exc:`NotImplementedError` is the proper exception to raise." -msgstr "" -"Cette exception peut être levée par du code utilisateur pour indiquer qu'une " -"tentative d'opération sur un objet n'est pas prise en charge, et n'est pas " -"censée l'être. Si un objet est destiné à prendre en charge une opération " -"donnée mais n'a pas encore fourni une implémentation, " -"lever :exc:`NotImplementedError` est plus approprié." - -#: library/exceptions.rst:641 -msgid "" -"Passing arguments of the wrong type (e.g. passing a :class:`list` when " -"an :class:`int` is expected) should result in a :exc:`TypeError`, but " -"passing arguments with the wrong value (e.g. a number outside expected " -"boundaries) should result in a :exc:`ValueError`." -msgstr "" -"Le passage d'arguments du mauvais type (e.g. passer une :class:`list` quand " -"un :class:`int` est attendu) devrait résulter en un :exc:`TypeError`, mais " -"le passage d'arguments avec la mauvaise valeur (e.g. un nombre en dehors des " -"limites attendues) devrait résulter en une :exc:`ValueError`." - -#: library/exceptions.rst:648 -msgid "" -"Raised when a reference is made to a local variable in a function or method, " -"but no value has been bound to that variable. This is a subclass " -"of :exc:`NameError`." -msgstr "" -"Levée lorsqu'une référence est faite à une variable locale dans une fonction " -"ou une méthode, mais qu'aucune valeur n'a été liée à cette variable. C'est " -"une sous-classe de :exc:`NameError`." - -#: library/exceptions.rst:655 -msgid "" -"Raised when a Unicode-related encoding or decoding error occurs. It is a " -"subclass of :exc:`ValueError`." -msgstr "" -"Levée lorsqu'une erreur d'encodage ou de décodage liée à Unicode se produit. " -"C'est une sous-classe de :exc:`ValueError`." - -#: library/exceptions.rst:658 -msgid "" -":exc:`UnicodeError` has attributes that describe the encoding or decoding " -"error. For example, ``err.object[err.start:err.end]`` gives the particular " -"invalid input that the codec failed on." -msgstr "" -":exc:`UnicodeError` a des attributs qui décrivent l'erreur d'encodage ou de " -"décodage. Par exemple, ``err.object[err.start:err.end]`` donne l'entrée " -"particulière invalide sur laquelle le codec a échoué." - -#: library/exceptions.rst:664 -msgid "The name of the encoding that raised the error." -msgstr "Le nom de l'encodage qui a provoqué l'erreur." - -#: library/exceptions.rst:668 -msgid "A string describing the specific codec error." -msgstr "Une chaîne de caractères décrivant l'erreur de codec spécifique." - -#: library/exceptions.rst:672 -msgid "The object the codec was attempting to encode or decode." -msgstr "L'objet que le codec essayait d'encoder ou de décoder." - -#: library/exceptions.rst:676 -msgid "The first index of invalid data in :attr:`object`." -msgstr "Le premier index des données invalides dans :attr:`object`." - -#: library/exceptions.rst:685 -msgid "" -"This value should not be negative as it is interpreted as an absolute offset " -"but this constraint is not enforced at runtime." -msgstr "" - -#: library/exceptions.rst:683 -msgid "The index after the last invalid data in :attr:`object`." -msgstr "L'index après la dernière donnée invalide dans :attr:`object`." - -#: library/exceptions.rst:691 -msgid "" -"Raised when a Unicode-related error occurs during encoding. It is a " -"subclass of :exc:`UnicodeError`." -msgstr "" -"Levée lorsqu'une erreur liée à Unicode se produit durant l'encodage. C'est " -"une sous-classe d':exc:`UnicodeError`." - -#: library/exceptions.rst:697 -msgid "" -"Raised when a Unicode-related error occurs during decoding. It is a " -"subclass of :exc:`UnicodeError`." -msgstr "" -"Levée lorsqu'une erreur liée à Unicode se produit durant le décodage. C'est " -"une sous-classe d':exc:`UnicodeError`." - -#: library/exceptions.rst:703 -msgid "" -"Raised when a Unicode-related error occurs during translating. It is a " -"subclass of :exc:`UnicodeError`." -msgstr "" -"Levée lorsqu'une erreur liée à Unicode se produit durant la traduction. " -"C'est une sous-classe d':exc:`UnicodeError`." - -#: library/exceptions.rst:709 -msgid "" -"Raised when an operation or function receives an argument that has the right " -"type but an inappropriate value, and the situation is not described by a " -"more precise exception such as :exc:`IndexError`." -msgstr "" -"Levée lorsqu'une opération ou fonction native reçoit un argument qui possède " -"le bon type mais une valeur inappropriée, et que la situation n'est pas " -"décrite par une exception plus précise telle que :exc:`IndexError`." - -#: library/exceptions.rst:716 -msgid "" -"Raised when the second argument of a division or modulo operation is zero. " -"The associated value is a string indicating the type of the operands and the " -"operation." -msgstr "" -"Levée lorsque le second argument d'une opération de division ou d'un modulo " -"est zéro. La valeur associée est une chaîne indiquant le type des opérandes " -"et de l'opération." - -#: library/exceptions.rst:721 -msgid "" -"The following exceptions are kept for compatibility with previous versions; " -"starting from Python 3.3, they are aliases of :exc:`OSError`." -msgstr "" -"Les exceptions suivantes sont conservées pour la compatibilité avec les " -"anciennes versions ; depuis Python 3.3, ce sont des alias d':exc:`OSError`." - -#: library/exceptions.rst:730 -msgid "Only available on Windows." -msgstr "Seulement disponible sous Windows." - -#: library/exceptions.rst:734 -msgid "OS exceptions" -msgstr "Exceptions système" - -#: library/exceptions.rst:736 -msgid "" -"The following exceptions are subclasses of :exc:`OSError`, they get raised " -"depending on the system error code." -msgstr "" -"Les exceptions suivantes sont des sous-classes d':exc:`OSError`, elles sont " -"levées en fonction du code d'erreur système." - -#: library/exceptions.rst:741 -#, fuzzy -msgid "" -"Raised when an operation would block on an object (e.g. socket) set for non-" -"blocking operation. Corresponds " -"to :c:data:`errno` :py:const:`~errno.EAGAIN`, :py:const:`~errno.EALREADY`, :py:const:`~errno.EWOULDBLOCK` " -"and :py:const:`~errno.EINPROGRESS`." -msgstr "" -"Levée lorsqu'une opération bloque sur un objet (par exemple un connecteur) " -"configuré pour une opération non-bloquante. Correspond " -"à :c:data:`errno` :py:data:`~errno.EAGAIN`, :py:data:`~errno.EALREADY`, :py:data:`~errno.EWOULDBLOCK` " -"et :py:data:`~errno.EINPROGRESS`." - -#: library/exceptions.rst:746 -msgid "" -"In addition to those of :exc:`OSError`, :exc:`BlockingIOError` can have one " -"more attribute:" -msgstr "" -"En plus de ceux de :exc:`OSError`, :exc:`BlockingIOError` peut avoir un " -"attribut de plus :" - -#: library/exceptions.rst:751 -#, fuzzy -msgid "" -"An integer containing the number of **bytes** written to the stream before " -"it blocked. This attribute is available when using the buffered I/O classes " -"from the :mod:`io` module." -msgstr "" -"Un nombre entier contenant le nombre de caractères écrits dans le flux avant " -"qu'il ne soit bloqué. Cet attribut est disponible lors de l'utilisation des " -"classes tampon entrées-sorties du module :mod:`io`." - -#: library/exceptions.rst:757 -#, fuzzy -msgid "" -"Raised when an operation on a child process failed. Corresponds " -"to :c:data:`errno` :py:const:`~errno.ECHILD`." -msgstr "" -"Levée lorsqu'une opération sur un processus enfant a échoué. Correspond " -"à :c:data:`errno` :py:data:`~errno.ECHILD`." - -#: library/exceptions.rst:762 -msgid "A base class for connection-related issues." -msgstr "Classe mère pour les problèmes de connexion." - -#: library/exceptions.rst:764 -msgid "" -"Subclasses " -"are :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :exc:`ConnectionRefusedError` " -"and :exc:`ConnectionResetError`." -msgstr "" -"Les sous-classes " -"sont :exc:`BrokenPipeError`, :exc:`ConnectionAbortedError`, :exc:`ConnectionRefusedError` " -"et :exc:`ConnectionResetError`." - -#: library/exceptions.rst:769 -#, fuzzy -msgid "" -"A subclass of :exc:`ConnectionError`, raised when trying to write on a pipe " -"while the other end has been closed, or trying to write on a socket which " -"has been shutdown for writing. Corresponds " -"to :c:data:`errno` :py:const:`~errno.EPIPE` and :py:const:`~errno.ESHUTDOWN`." -msgstr "" -"Une sous-classe de :exc:`ConnectionError`, levé en essayant d'écrire sur un " -"*pipe* alors que l'autre extrémité a été fermée, ou en essayant d'écrire sur " -"un connecteur (*socket* en anglais) qui a été fermé pour l'écriture. " -"Correspond à :c:data:`errno` :py:data:`~errno.EPIPE` " -"et :py:data:`~errno.ESHUTDOWN`." - -#: library/exceptions.rst:776 -#, fuzzy -msgid "" -"A subclass of :exc:`ConnectionError`, raised when a connection attempt is " -"aborted by the peer. Corresponds " -"to :c:data:`errno` :py:const:`~errno.ECONNABORTED`." -msgstr "" -"Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une tentative de " -"connexion est interrompue par le pair. Correspond " -"à :c:data:`errno` :py:data:`~errno.ECONNABORTED`." - -#: library/exceptions.rst:782 -#, fuzzy -msgid "" -"A subclass of :exc:`ConnectionError`, raised when a connection attempt is " -"refused by the peer. Corresponds " -"to :c:data:`errno` :py:const:`~errno.ECONNREFUSED`." -msgstr "" -"Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une tentative de " -"connexion est refusée par le pair. Correspond " -"à :c:data:`errno` :py:data:`~errno.ECONNREFUSED`." - -#: library/exceptions.rst:788 -#, fuzzy -msgid "" -"A subclass of :exc:`ConnectionError`, raised when a connection is reset by " -"the peer. Corresponds to :c:data:`errno` :py:const:`~errno.ECONNRESET`." -msgstr "" -"Une sous-classe de :exc:`ConnectionError`, levée lorsqu'une connexion est " -"réinitialisée par le pair. Correspond " -"à :c:data:`errno` :py:data:`~errno.ECONNRESET`." - -#: library/exceptions.rst:794 -#, fuzzy -msgid "" -"Raised when trying to create a file or directory which already exists. " -"Corresponds to :c:data:`errno` :py:const:`~errno.EEXIST`." -msgstr "" -"Levée pendant la tentative de création d'un fichier ou d'un répertoire qui " -"existe déjà. Correspond à :c:data:`errno` :py:data:`~errno.EEXIST`." - -#: library/exceptions.rst:799 -#, fuzzy -msgid "" -"Raised when a file or directory is requested but doesn't exist. Corresponds " -"to :c:data:`errno` :py:const:`~errno.ENOENT`." -msgstr "" -"Levée lorsqu'un fichier ou répertoire est demandé mais n'existe pas. " -"Correspond à :c:data:`errno` :py:data:`~errno.ENOENT`." - -#: library/exceptions.rst:804 -#, fuzzy -msgid "" -"Raised when a system call is interrupted by an incoming signal. Corresponds " -"to :c:data:`errno` :py:const:`~errno.EINTR`." -msgstr "" -"Levée lorsqu'un appel système est interrompu par un signal entrant. " -"Correspond à :c:data:`errno` :py:data:`~errno.EINTR`." - -#: library/exceptions.rst:807 -msgid "" -"Python now retries system calls when a syscall is interrupted by a signal, " -"except if the signal handler raises an exception (see :pep:`475` for the " -"rationale), instead of raising :exc:`InterruptedError`." -msgstr "" -"Python relance maintenant les appels système lorsqu'ils sont interrompus par " -"un signal, sauf si le gestionnaire de signal lève une exception " -"(voir :pep:`475` pour les raisons), au lieu de lever :exc:`InterruptedError`." - -#: library/exceptions.rst:814 -#, fuzzy -msgid "" -"Raised when a file operation (such as :func:`os.remove`) is requested on a " -"directory. Corresponds to :c:data:`errno` :py:const:`~errno.EISDIR`." -msgstr "" -"Levée lorsqu'une opération sur un fichier (comme :func:`os.remove`) est " -"demandée sur un répertoire. Correspond " -"à :c:data:`errno` :py:data:`~errno.EISDIR`." - -#: library/exceptions.rst:820 -#, fuzzy -msgid "" -"Raised when a directory operation (such as :func:`os.listdir`) is requested " -"on something which is not a directory. On most POSIX platforms, it may also " -"be raised if an operation attempts to open or traverse a non-directory file " -"as if it were a directory. Corresponds " -"to :c:data:`errno` :py:const:`~errno.ENOTDIR`." -msgstr "" -"Levée lorsqu'une opération sur un répertoire (comme :func:`os.listdir`) est " -"demandée sur autre chose qu'un répertoire. Sur la majorité des plateformes " -"*POSIX*, elle est aussi levée quand une opération tente d'ouvrir ou de " -"traverser un fichier qui n'est pas un répertoire comme s'il en était un. " -"Correspond à :c:data:`errno` :py:data:`~errno.ENOTDIR`." - -#: library/exceptions.rst:828 -#, fuzzy -msgid "" -"Raised when trying to run an operation without the adequate access rights - " -"for example filesystem permissions. Corresponds " -"to :c:data:`errno` :py:const:`~errno.EACCES`, :py:const:`~errno.EPERM`, " -"and :py:const:`~errno.ENOTCAPABLE`." -msgstr "" -"Levée lorsqu'on essaye d'exécuter une opération sans les droits d'accès " -"adéquats — par exemple les permissions du système de fichiers. Correspond " -"à :c:data:`errno` :py:data:`~errno.EACCES` et :py:data:`~errno.EPERM`." - -#: library/exceptions.rst:833 -msgid "" -"WASI's :py:const:`~errno.ENOTCAPABLE` is now mapped " -"to :exc:`PermissionError`." -msgstr "" - -#: library/exceptions.rst:839 -#, fuzzy -msgid "" -"Raised when a given process doesn't exist. Corresponds " -"to :c:data:`errno` :py:const:`~errno.ESRCH`." -msgstr "" -"Levée lorsqu'un processus donné n'existe pas. Correspond " -"à :c:data:`errno` :py:data:`~errno.ESRCH`." - -#: library/exceptions.rst:844 -#, fuzzy -msgid "" -"Raised when a system function timed out at the system level. Corresponds " -"to :c:data:`errno` :py:const:`~errno.ETIMEDOUT`." -msgstr "" -"Levée lorsqu'une fonction système a expiré au niveau système. Correspond " -"à :c:data:`errno` :py:data:`~errno.ETIMEDOUT`." - -#: library/exceptions.rst:847 -msgid "All the above :exc:`OSError` subclasses were added." -msgstr "Toutes les sous-classes d':exc:`OSError` ci-dessus ont été ajoutées." - -#: library/exceptions.rst:853 -msgid ":pep:`3151` - Reworking the OS and IO exception hierarchy" -msgstr ":pep:`3151` -- Refonte de la hiérarchie des exceptions système et IO" - -#: library/exceptions.rst:859 -msgid "Warnings" -msgstr "Avertissements" - -#: library/exceptions.rst:861 -msgid "" -"The following exceptions are used as warning categories; see " -"the :ref:`warning-categories` documentation for more details." -msgstr "" -"Les exceptions suivantes sont utilisées comme catégories d'avertissement ; " -"voir :mod:`warning-categories` pour plus d'informations." - -#: library/exceptions.rst:866 -msgid "Base class for warning categories." -msgstr "Classe mère pour les catégories d'avertissement." - -#: library/exceptions.rst:871 -msgid "Base class for warnings generated by user code." -msgstr "Classe mère pour les avertissements générés par du code utilisateur." - -#: library/exceptions.rst:876 -msgid "" -"Base class for warnings about deprecated features when those warnings are " -"intended for other Python developers." -msgstr "" -"Classe mère pour les avertissements sur les fonctionnalités obsolètes, " -"lorsque ces avertissements sont destinés aux autres développeurs Python." - -#: library/exceptions.rst:879 -msgid "" -"Ignored by the default warning filters, except in the ``__main__`` module " -"(:pep:`565`). Enabling the :ref:`Python Development Mode ` shows " -"this warning." -msgstr "" -"Ignoré par les filtres d'avertissements par défaut, sauf dans le module " -"``__main__`` (:pep:`565`). Activer le :ref:`mode de développement de Python " -"` affiche cet avertissement." - -#: library/exceptions.rst:899 -msgid "The deprecation policy is described in :pep:`387`." -msgstr "La politique relative à l'obsolescence est décrite dans la :pep:`387`." - -#: library/exceptions.rst:888 -msgid "" -"Base class for warnings about features which are obsolete and expected to be " -"deprecated in the future, but are not deprecated at the moment." -msgstr "" -"Classe mère pour les avertissements d'obsolescence programmée. Ils indiquent " -"que la fonctionnalité peut encore être utilisée actuellement, mais qu'elle " -"sera supprimée dans le futur." - -#: library/exceptions.rst:892 -msgid "" -"This class is rarely used as emitting a warning about a possible upcoming " -"deprecation is unusual, and :exc:`DeprecationWarning` is preferred for " -"already active deprecations." -msgstr "" -"Cette classe est rarement utilisée car émettre un avertissement à propos " -"d’une obsolescence à venir est inhabituel, et :exc:`DeprecationWarning` est " -"préféré pour les obsolescences actuelles." - -#: library/exceptions.rst:925 library/exceptions.rst:952 -msgid "" -"Ignored by the default warning filters. Enabling the :ref:`Python " -"Development Mode ` shows this warning." -msgstr "" -"Ignoré par les filtres d'avertissements par défaut. Activer le :ref:`mode de " -"développement de Python ` affiche cet avertissement." - -#: library/exceptions.rst:904 -msgid "Base class for warnings about dubious syntax." -msgstr "Classe mère pour les avertissements sur de la syntaxe douteuse." - -#: library/exceptions.rst:906 -msgid "" -"This warning is typically emitted when compiling Python source code, and " -"usually won't be reported when running already compiled code." -msgstr "" - -#: library/exceptions.rst:912 -msgid "Base class for warnings about dubious runtime behavior." -msgstr "" -"Classe mère pour les avertissements sur les comportements d'exécution " -"douteux." - -#: library/exceptions.rst:917 -msgid "" -"Base class for warnings about deprecated features when those warnings are " -"intended for end users of applications that are written in Python." -msgstr "" -"Classe mère pour les avertissements à propos de fonctionnalités qui seront " -"obsolètes dans le futur quand ces avertissements destinés aux utilisateurs " -"finaux des applications écrites en Python." - -#: library/exceptions.rst:923 -msgid "Base class for warnings about probable mistakes in module imports." -msgstr "" -"Classe mère pour les avertissements sur des erreurs probables dans les " -"importations de modules." - -#: library/exceptions.rst:931 -msgid "Base class for warnings related to Unicode." -msgstr "Classe mère pour les avertissements liés à l'Unicode." - -#: library/exceptions.rst:936 -msgid "Base class for warnings related to encodings." -msgstr "Classe mère pour les avertissements liés à l'encodage des chaînes." - -#: library/exceptions.rst:938 -msgid "See :ref:`io-encoding-warning` for details." -msgstr "Voir :ref:`io-encoding-warning` pour plus d'informations." - -#: library/exceptions.rst:945 -msgid "" -"Base class for warnings related to :class:`bytes` and :class:`bytearray`." -msgstr "" -"Classe mère pour les avertissements liés à :class:`bytes` " -"et :class:`bytearray`." - -#: library/exceptions.rst:950 -msgid "Base class for warnings related to resource usage." -msgstr "" -"Classe mère pour les avertissements liés à l'utilisation des ressources." - -#: library/exceptions.rst:961 -#, fuzzy -msgid "Exception groups" -msgstr "Hiérarchie des exceptions" - -#: library/exceptions.rst:963 -msgid "" -"The following are used when it is necessary to raise multiple unrelated " -"exceptions. They are part of the exception hierarchy so they can be handled " -"with :keyword:`except` like all other exceptions. In addition, they are " -"recognised by :keyword:`except*`, which matches their subgroups " -"based on the types of the contained exceptions." -msgstr "" - -#: library/exceptions.rst:972 -msgid "" -"Both of these exception types wrap the exceptions in the sequence ``excs``. " -"The ``msg`` parameter must be a string. The difference between the two " -"classes is that :exc:`BaseExceptionGroup` extends :exc:`BaseException` and " -"it can wrap any exception, while :exc:`ExceptionGroup` " -"extends :exc:`Exception` and it can only wrap subclasses " -"of :exc:`Exception`. This design is so that ``except Exception`` catches " -"an :exc:`ExceptionGroup` but not :exc:`BaseExceptionGroup`." -msgstr "" - -#: library/exceptions.rst:980 -msgid "" -"The :exc:`BaseExceptionGroup` constructor returns an :exc:`ExceptionGroup` " -"rather than a :exc:`BaseExceptionGroup` if all contained exceptions " -"are :exc:`Exception` instances, so it can be used to make the selection " -"automatic. The :exc:`ExceptionGroup` constructor, on the other hand, raises " -"a :exc:`TypeError` if any contained exception is not an :exc:`Exception` " -"subclass." -msgstr "" - -#: library/exceptions.rst:987 -msgid "" -"Exception groups are :ref:`generic ` over the type of their " -"contained exceptions." -msgstr "" - -#: library/exceptions.rst:992 -msgid "" -"The ``excs`` parameter may be any sequence, but lists and tuples are " -"specifically processed more efficiently here. For optimal performance, pass " -"a tuple as ``excs``." -msgstr "" - -#: library/exceptions.rst:998 -msgid "The ``msg`` argument to the constructor. This is a read-only attribute." -msgstr "" - -#: library/exceptions.rst:1002 -msgid "" -"A tuple of the exceptions in the ``excs`` sequence given to the constructor. " -"This is a read-only attribute." -msgstr "" - -#: library/exceptions.rst:1007 -msgid "" -"Returns an exception group that contains only the exceptions from the " -"current group that match *condition*, or ``None`` if the result is empty." -msgstr "" - -#: library/exceptions.rst:1010 -msgid "" -"The condition can be an exception type or tuple of exception types, in which " -"case each exception is checked for a match using the same check that is used " -"in an ``except`` clause. The condition can also be a callable (other than a " -"type object) that accepts an exception as its single argument and returns " -"true for the exceptions that should be in the subgroup." -msgstr "" - -#: library/exceptions.rst:1016 -msgid "" -"The nesting structure of the current exception is preserved in the result, " -"as are the values of " -"its :attr:`message`, :attr:`~BaseException.__traceback__`, :attr:`~BaseException.__cause__`, :attr:`~BaseException.__context__` " -"and :attr:`~BaseException.__notes__` fields. Empty nested groups are omitted " -"from the result." -msgstr "" - -#: library/exceptions.rst:1023 -msgid "" -"The condition is checked for all exceptions in the nested exception group, " -"including the top-level and any nested exception groups. If the condition is " -"true for such an exception group, it is included in the result in full." -msgstr "" - -#: library/exceptions.rst:1027 -msgid "``condition`` can be any callable which is not a type object." -msgstr "" - -#: library/exceptions.rst:1032 -msgid "" -"Like :meth:`subgroup`, but returns the pair ``(match, rest)`` where " -"``match`` is ``subgroup(condition)`` and ``rest`` is the remaining non-" -"matching part." -msgstr "" - -#: library/exceptions.rst:1038 -msgid "" -"Returns an exception group with the same :attr:`message`, but which wraps " -"the exceptions in ``excs``." -msgstr "" - -#: library/exceptions.rst:1041 -msgid "" -"This method is used by :meth:`subgroup` and :meth:`split`, which are used in " -"various contexts to break up an exception group. A subclass needs to " -"override it in order to make :meth:`subgroup` and :meth:`split` return " -"instances of the subclass rather than :exc:`ExceptionGroup`." -msgstr "" - -#: library/exceptions.rst:1047 -msgid "" -":meth:`subgroup` and :meth:`split` copy " -"the :attr:`~BaseException.__traceback__`, :attr:`~BaseException.__cause__`, :attr:`~BaseException.__context__` " -"and :attr:`~BaseException.__notes__` fields from the original exception " -"group to the one returned by :meth:`derive`, so these fields do not need to " -"be updated by :meth:`derive`." -msgstr "" - -#: library/exceptions.rst:1080 -msgid "" -"Note that :exc:`BaseExceptionGroup` defines :meth:`~object.__new__`, so " -"subclasses that need a different constructor signature need to override that " -"rather than :meth:`~object.__init__`. For example, the following defines an " -"exception group subclass which accepts an exit_code and constructs the " -"group's message from it. ::" -msgstr "" - -#: library/exceptions.rst:1095 -msgid "" -"Like :exc:`ExceptionGroup`, any subclass of :exc:`BaseExceptionGroup` which " -"is also a subclass of :exc:`Exception` can only wrap instances " -"of :exc:`Exception`." -msgstr "" - -#: library/exceptions.rst:1103 -msgid "Exception hierarchy" -msgstr "Hiérarchie des exceptions" - -#: library/exceptions.rst:1105 -msgid "The class hierarchy for built-in exceptions is:" -msgstr "La hiérarchie de classes pour les exceptions natives est la suivante :" - -#~ msgid "" -#~ "The :attr:`name` and :attr:`obj` attributes can be set using keyword-only " -#~ "arguments to the constructor. When set they represent the name of the " -#~ "attribute that was attempted to be accessed and the object that was " -#~ "accessed for said attribute, respectively." -#~ msgstr "" -#~ "Les attributs :attr:`name` et :attr:`obj` peuvent être définis uniquement " -#~ "à l'aide d'arguments nommés passés au constructeur. Lorsqu'ils sont " -#~ "définis, ils représentent respectivement le nom de l'attribut pour lequel " -#~ "il y a eu une tentative d'accès et l'objet qui a été accédé pour cet " -#~ "attribut." - -#~ msgid "" -#~ "The :attr:`name` attribute can be set using a keyword-only argument to " -#~ "the constructor. When set it represent the name of the variable that was " -#~ "attempted to be accessed." -#~ msgstr "" -#~ "L'attribut :attr:`name` doit être défini uniquement à l'aide d'un " -#~ "argument nommé passé au constructeur. Lorsqu'il est défini, il représente " -#~ "le nom de la variable pour laquelle il y a eu une tentative d'accès." - -#~ msgid "statement" -#~ msgstr "instruction" - -#~ msgid "try" -#~ msgstr "try" - -#, fuzzy -#~ msgid "except" -#~ msgstr "Exceptions système" - -#~ msgid "raise" -#~ msgstr "raise" - -#, fuzzy -#~ msgid "exception" -#~ msgstr "Exceptions système" - -#, fuzzy -#~ msgid "chaining" -#~ msgstr "Avertissements" - -#~ msgid "__cause__ (exception attribute)" -#~ msgstr "``__cause__`` (attribut d’exception)" - -#~ msgid "__context__ (exception attribute)" -#~ msgstr "``__context__`` (attribut d’exception)" - -#~ msgid "assert" -#~ msgstr "assert" - -#~ msgid "module" -#~ msgstr "module" - -#~ msgid "" -#~ "The :attr:`name` and :attr:`path` attributes can be set using keyword-" -#~ "only arguments to the constructor. When set they represent the name of " -#~ "the module that was attempted to be imported and the path to any file " -#~ "which triggered the exception, respectively." -#~ msgstr "" -#~ "Les attributs :attr:`name` et :attr:`path` peuvent être définis " -#~ "uniquement à l'aide d'arguments nommés passés au constructeur. Lorsqu'ils " -#~ "sont définis, ils représentent respectivement le nom du module qui a été " -#~ "tenté d'être importé et le chemin d'accès au fichier qui a déclenché " -#~ "l'exception." - -#~ msgid "" -#~ "When raising (or re-raising) an exception in an :keyword:`except` " -#~ "or :keyword:`finally` clause :attr:`__context__` is automatically set to " -#~ "the last exception caught; if the new exception is not handled the " -#~ "traceback that is eventually displayed will include the originating " -#~ "exception(s) and the final exception." -#~ msgstr "" -#~ "En levant (ou levant à nouveau) une exception dans une " -#~ "clause :keyword:`except` ou :keyword:`finally`, :attr:`__context__` est " -#~ "automatiquement assigné à la dernière exception interceptée ; si la " -#~ "nouvelle exception n'est pas gérée, la trace d'appels affichée inclut la " -#~ "ou les exception(s) d'origine et l'exception finale." - -#~ msgid "" -#~ "This method sets *tb* as the new traceback for the exception and returns " -#~ "the exception object. It is usually used in exception handling code like " -#~ "this::" -#~ msgstr "" -#~ "Cette méthode définit *tb* en tant que nouvelle trace d'appels pour " -#~ "l'exception et retourne l'objet exception. Elle est généralement utilisée " -#~ "dans du code de gestion d'exceptions comme ceci ::" - -#~ msgid "" -#~ "Instances of this class have " -#~ "attributes :attr:`filename`, :attr:`lineno`, :attr:`offset` " -#~ "and :attr:`text` for easier access to the details. :func:`str` of the " -#~ "exception instance returns only the message." -#~ msgstr "" -#~ "Les instances de cette classe ont des " -#~ "attributs :attr:`filename`, :attr:`lineno`, :attr:`offset` " -#~ "et :attr:`text` pour accéder plus facilement aux détails. La " -#~ "représentation :func:`str` de l'instance de l'exception retourne " -#~ "seulement le message." - -#~ msgid "" -#~ "Base class for warnings related to resource usage. Ignored by the default " -#~ "warning filters." -#~ msgstr "" -#~ "Classe de base pour les avertissements liés à l'utilisation de " -#~ "ressources. Ignorée par les filtres d’avertissements par défaut." diff --git a/library/faulthandler.po b/library/faulthandler.po deleted file mode 100644 index 0347fe0c8b..0000000000 --- a/library/faulthandler.po +++ /dev/null @@ -1,321 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: library/faulthandler.rst:2 -msgid ":mod:`!faulthandler` --- Dump the Python traceback" -msgstr "" - -#: library/faulthandler.rst:11 -msgid "" -"This module contains functions to dump Python tracebacks explicitly, on a " -"fault, after a timeout, or on a user signal. " -"Call :func:`faulthandler.enable` to install fault handlers for " -"the :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :const:`~signal.SIGABRT`, :const:`~signal.SIGBUS`, " -"and :const:`~signal.SIGILL` signals. You can also enable them at startup by " -"setting the :envvar:`PYTHONFAULTHANDLER` environment variable or by using " -"the :option:`-X` ``faulthandler`` command line option." -msgstr "" - -#: library/faulthandler.rst:19 -msgid "" -"The fault handler is compatible with system fault handlers like Apport or " -"the Windows fault handler. The module uses an alternative stack for signal " -"handlers if the :c:func:`!sigaltstack` function is available. This allows it " -"to dump the traceback even on a stack overflow." -msgstr "" - -#: library/faulthandler.rst:24 -msgid "" -"The fault handler is called on catastrophic cases and therefore can only use " -"signal-safe functions (e.g. it cannot allocate memory on the heap). Because " -"of this limitation traceback dumping is minimal compared to normal Python " -"tracebacks:" -msgstr "" - -#: library/faulthandler.rst:29 -msgid "" -"Only ASCII is supported. The ``backslashreplace`` error handler is used on " -"encoding." -msgstr "" - -#: library/faulthandler.rst:31 -msgid "Each string is limited to 500 characters." -msgstr "" - -#: library/faulthandler.rst:32 -msgid "" -"Only the filename, the function name and the line number are displayed. (no " -"source code)" -msgstr "" - -#: library/faulthandler.rst:34 -msgid "" -"It is limited to 100 frames per thread, and 100 threads (configurable via " -"*max_threads*)." -msgstr "" - -#: library/faulthandler.rst:36 -msgid "The order is reversed: the most recent call is shown first." -msgstr "" - -#: library/faulthandler.rst:38 -msgid "" -"By default, the Python traceback is written to :data:`sys.stderr`. To see " -"tracebacks, applications must be run in the terminal. A log file can " -"alternatively be passed to :func:`faulthandler.enable`." -msgstr "" - -#: library/faulthandler.rst:42 -msgid "" -"The module is implemented in C, so tracebacks can be dumped on a crash or " -"when Python is deadlocked." -msgstr "" - -#: library/faulthandler.rst:45 -msgid "" -"The :ref:`Python Development Mode ` " -"calls :func:`faulthandler.enable` at Python startup." -msgstr "" - -#: library/faulthandler.rst:50 -msgid "Module :mod:`pdb`" -msgstr "" - -#: library/faulthandler.rst:51 -msgid "Interactive source code debugger for Python programs." -msgstr "" - -#: library/faulthandler.rst:53 -msgid "Module :mod:`traceback`" -msgstr "" - -#: library/faulthandler.rst:54 -msgid "" -"Standard interface to extract, format and print stack traces of Python " -"programs." -msgstr "" - -#: library/faulthandler.rst:57 -msgid "Dumping the traceback" -msgstr "" - -#: library/faulthandler.rst:61 -msgid "" -"Dump the tracebacks of all threads into *file*. If *all_threads* is " -"``False``, dump only the current thread. *max_threads* caps the number of " -"threads dumped." -msgstr "" - -#: library/faulthandler.rst:65 -msgid "" -":func:`traceback.print_tb`, which can be used to print a traceback object." -msgstr "" - -#: library/faulthandler.rst:126 library/faulthandler.rst:204 -msgid "Added support for passing file descriptor to this function." -msgstr "" - -#: library/faulthandler.rst:143 library/faulthandler.rst:207 -msgid "Added the *max_threads* keyword argument." -msgstr "" - -#: library/faulthandler.rst:75 -msgid "Dumping the C stack" -msgstr "" - -#: library/faulthandler.rst:81 -msgid "Dump the C stack trace of the current thread into *file*." -msgstr "" - -#: library/faulthandler.rst:83 -msgid "" -"If the Python build does not support it or the operating system does not " -"provide a stack trace, then this prints an error in place of a dumped C " -"stack." -msgstr "" - -#: library/faulthandler.rst:90 -msgid "C Stack Compatibility" -msgstr "" - -#: library/faulthandler.rst:92 -msgid "" -"If the system does not support the C-level :manpage:`backtrace(3)` " -"or :manpage:`dladdr1(3)`, then C stack dumps will not work. An error will be " -"printed instead of the stack." -msgstr "" - -#: library/faulthandler.rst:96 -msgid "" -"Additionally, some compilers do not support :term:`CPython's ` " -"implementation of C stack dumps. As a result, a different error may be " -"printed instead of the stack, even if the operating system supports dumping " -"stacks." -msgstr "" - -#: library/faulthandler.rst:102 -msgid "" -"Dumping C stacks can be arbitrarily slow, depending on the DWARF level of " -"the binaries in the call stack." -msgstr "" - -#: library/faulthandler.rst:106 -msgid "Fault handler state" -msgstr "" - -#: library/faulthandler.rst:110 -msgid "" -"Enable the fault handler: install handlers for " -"the :const:`~signal.SIGSEGV`, :const:`~signal.SIGFPE`, :const:`~signal.SIGABRT`, :const:`~signal.SIGBUS` " -"and :const:`~signal.SIGILL` signals to dump the Python traceback. If " -"*all_threads* is ``True``, produce tracebacks for every running thread. " -"Otherwise, dump only the current thread." -msgstr "" - -#: library/faulthandler.rst:117 -msgid "" -"The *file* must be kept open until the fault handler is disabled: " -"see :ref:`issue with file descriptors `." -msgstr "" - -#: library/faulthandler.rst:120 -msgid "" -"If *c_stack* is ``True``, then the C stack trace is printed after the Python " -"traceback, unless the system does not support it. See :func:`dump_c_stack` " -"for more information on compatibility." -msgstr "" - -#: library/faulthandler.rst:124 -msgid "" -"*max_threads* caps the number of threads dumped when a fatal signal fires." -msgstr "" - -#: library/faulthandler.rst:129 -msgid "On Windows, a handler for Windows exception is also installed." -msgstr "" - -#: library/faulthandler.rst:132 -msgid "" -"The dump now mentions if a garbage collector collection is running if " -"*all_threads* is true." -msgstr "" - -#: library/faulthandler.rst:136 -msgid "" -"Only the current thread is dumped if the :term:`GIL` is disabled to prevent " -"the risk of data races." -msgstr "" - -#: library/faulthandler.rst:140 -msgid "The dump now displays the C stack trace if *c_stack* is true." -msgstr "" - -#: library/faulthandler.rst:148 -msgid "" -"Disable the fault handler: uninstall the signal handlers installed " -"by :func:`enable`." -msgstr "" - -#: library/faulthandler.rst:153 -msgid "Check if the fault handler is enabled." -msgstr "" - -#: library/faulthandler.rst:157 -msgid "Dumping the tracebacks after a timeout" -msgstr "" - -#: library/faulthandler.rst:161 -msgid "" -"Dump the tracebacks of all threads, after a timeout of *timeout* seconds, or " -"every *timeout* seconds if *repeat* is ``True``. If *exit* is ``True``, " -"call :c:func:`!_exit` with status=1 after dumping the tracebacks. " -"(Note :c:func:`!_exit` exits the process immediately, which means it doesn't " -"do any cleanup like flushing file buffers.) If the function is called twice, " -"the new call replaces previous parameters and resets the timeout. The timer " -"has a sub-second resolution. *max_threads* caps the number of threads dumped." -msgstr "" - -#: library/faulthandler.rst:169 -msgid "" -"The *file* must be kept open until the traceback is dumped " -"or :func:`cancel_dump_traceback_later` is called: see :ref:`issue with file " -"descriptors `." -msgstr "" - -#: library/faulthandler.rst:173 -msgid "This function is implemented using a watchdog thread." -msgstr "" - -#: library/faulthandler.rst:178 -msgid "This function is now always available." -msgstr "" - -#: library/faulthandler.rst:186 -msgid "Cancel the last call to :func:`dump_traceback_later`." -msgstr "" - -#: library/faulthandler.rst:190 -msgid "Dumping the traceback on a user signal" -msgstr "" - -#: library/faulthandler.rst:194 -msgid "" -"Register a user signal: install a handler for the *signum* signal to dump " -"the traceback of all threads, or of the current thread if *all_threads* is " -"``False``, into *file*. Call the previous handler if chain is ``True``. " -"*max_threads* caps the number of threads dumped." -msgstr "" - -#: library/faulthandler.rst:199 -msgid "" -"The *file* must be kept open until the signal is unregistered " -"by :func:`unregister`: see :ref:`issue with file descriptors `." -msgstr "" - -#: library/faulthandler.rst:216 -msgid "Not available on Windows." -msgstr "" - -#: library/faulthandler.rst:212 -msgid "" -"Unregister a user signal: uninstall the handler of the *signum* signal " -"installed by :func:`register`. Return ``True`` if the signal was registered, " -"``False`` otherwise." -msgstr "" - -#: library/faulthandler.rst:222 -msgid "Issue with file descriptors" -msgstr "" - -#: library/faulthandler.rst:224 -msgid "" -":func:`enable`, :func:`dump_traceback_later` and :func:`register` keep the " -"file descriptor of their *file* argument. If the file is closed and its file " -"descriptor is reused by a new file, or if :func:`os.dup2` is used to replace " -"the file descriptor, the traceback will be written into a different file. " -"Call these functions again each time that the file is replaced." -msgstr "" - -#: library/faulthandler.rst:232 -msgid "Example" -msgstr "Exemple" - -#: library/faulthandler.rst:234 -msgid "" -"Example of a segmentation fault on Linux with and without enabling the fault " -"handler:" -msgstr "" diff --git a/library/fcntl.po b/library/fcntl.po deleted file mode 100644 index bcacdbb3c8..0000000000 --- a/library/fcntl.po +++ /dev/null @@ -1,356 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2017-08-10 00:59+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" - -#: library/fcntl.rst:2 -msgid ":mod:`!fcntl` --- The ``fcntl`` and ``ioctl`` system calls" -msgstr "" - -#: library/fcntl.rst:13 -msgid "" -"This module performs file and I/O control on file descriptors. It is an " -"interface to the :c:func:`fcntl` and :c:func:`ioctl` Unix routines. See " -"the :manpage:`fcntl(2)` and :manpage:`ioctl(2)` Unix manual pages for full " -"details." -msgstr "" - -#: library/fcntl.rst:18 -msgid "Availability" -msgstr "Disponibilité" - -#: library/fcntl.rst:20 -msgid "" -"All functions in this module take a file descriptor *fd* as their first " -"argument. This can be an integer file descriptor, such as returned by " -"``sys.stdin.fileno()``, or an :class:`io.IOBase` object, such as " -"``sys.stdin`` itself, which provides a :meth:`~io.IOBase.fileno` that " -"returns a genuine file descriptor." -msgstr "" - -#: library/fcntl.rst:26 -msgid "" -"Operations in this module used to raise an :exc:`IOError` where they now " -"raise an :exc:`OSError`." -msgstr "" - -#: library/fcntl.rst:30 -msgid "" -"The :mod:`!fcntl` module now contains ``F_ADD_SEALS``, ``F_GET_SEALS``, and " -"``F_SEAL_*`` constants for sealing of :func:`os.memfd_create` file " -"descriptors." -msgstr "" - -#: library/fcntl.rst:35 -msgid "" -"On macOS, the :mod:`!fcntl` module exposes the ``F_GETPATH`` constant, which " -"obtains the path of a file from a file descriptor. On Linux(>=3.15), " -"the :mod:`!fcntl` module exposes the ``F_OFD_GETLK``, ``F_OFD_SETLK`` and " -"``F_OFD_SETLKW`` constants, which are used when working with open file " -"description locks." -msgstr "" - -#: library/fcntl.rst:42 -msgid "" -"On Linux >= 2.6.11, the :mod:`!fcntl` module exposes the ``F_GETPIPE_SZ`` " -"and ``F_SETPIPE_SZ`` constants, which allow to check and modify a pipe's " -"size respectively." -msgstr "" - -#: library/fcntl.rst:47 -msgid "" -"On FreeBSD, the :mod:`!fcntl` module exposes the ``F_DUP2FD`` and " -"``F_DUP2FD_CLOEXEC`` constants, which allow to duplicate a file descriptor, " -"the latter setting ``FD_CLOEXEC`` flag in addition." -msgstr "" - -#: library/fcntl.rst:52 -msgid "" -"On Linux >= 4.5, the :mod:`!fcntl` module exposes the ``FICLONE`` and " -"``FICLONERANGE`` constants, which allow to share some data of one file with " -"another file by reflinking on some filesystems (e.g., btrfs, OCFS2, and " -"XFS). This behavior is commonly referred to as \"copy-on-write\"." -msgstr "" - -#: library/fcntl.rst:58 -msgid "" -"On Linux >= 2.6.32, the :mod:`!fcntl` module exposes the ``F_GETOWN_EX``, " -"``F_SETOWN_EX``, ``F_OWNER_TID``, ``F_OWNER_PID``, ``F_OWNER_PGRP`` " -"constants, which allow to direct I/O availability signals to a specific " -"thread, process, or process group. On Linux >= 4.13, the :mod:`!fcntl` " -"module exposes the ``F_GET_RW_HINT``, ``F_SET_RW_HINT``, " -"``F_GET_FILE_RW_HINT``, ``F_SET_FILE_RW_HINT``, and ``RWH_WRITE_LIFE_*`` " -"constants, which allow to inform the kernel about the relative expected " -"lifetime of writes on a given inode or via a particular open file " -"description. On Linux >= 5.1 and NetBSD, the :mod:`!fcntl` module exposes " -"the ``F_SEAL_FUTURE_WRITE`` constant for use with ``F_ADD_SEALS`` and " -"``F_GET_SEALS`` operations. On FreeBSD, the :mod:`!fcntl` module exposes the " -"``F_READAHEAD``, ``F_ISUNIONSTACK``, and ``F_KINFO`` constants. On macOS and " -"FreeBSD, the :mod:`!fcntl` module exposes the ``F_RDAHEAD`` constant. On " -"NetBSD and AIX, the :mod:`!fcntl` module exposes the ``F_CLOSEM`` constant. " -"On NetBSD, the :mod:`!fcntl` module exposes the ``F_MAXFD`` constant. On " -"macOS and NetBSD, the :mod:`!fcntl` module exposes the ``F_GETNOSIGPIPE`` " -"and ``F_SETNOSIGPIPE`` constant." -msgstr "" - -#: library/fcntl.rst:79 -msgid "" -"On Linux >= 6.1, the :mod:`!fcntl` module exposes the ``F_DUPFD_QUERY`` to " -"query a file descriptor pointing to the same file." -msgstr "" - -#: library/fcntl.rst:83 -msgid "The module defines the following functions:" -msgstr "Le module définit les fonctions suivantes :" - -#: library/fcntl.rst:88 -msgid "" -"Perform the operation *cmd* on file descriptor *fd* (file objects providing " -"a :meth:`~io.IOBase.fileno` method are accepted as well). The values used " -"for *cmd* are operating system dependent, and are available as constants in " -"the :mod:`!fcntl` module, using the same names as used in the relevant C " -"header files. The argument *arg* can either be an integer value, " -"a :term:`bytes-like object`, or a string. The type and size of *arg* must " -"match the type and size of the argument of the operation as specified in the " -"relevant C documentation." -msgstr "" - -#: library/fcntl.rst:97 -msgid "" -"When *arg* is an integer, the function returns the integer return value of " -"the C :c:func:`fcntl` call." -msgstr "" - -#: library/fcntl.rst:100 -msgid "" -"When the argument is bytes-like object, it represents a binary structure, " -"for example, created by :func:`struct.pack`. A string value is encoded to " -"binary using the UTF-8 encoding. The binary data is copied to a buffer whose " -"address is passed to the C :c:func:`fcntl` call. The return value after a " -"successful call is the contents of the buffer, converted to a :class:`bytes` " -"object. The length of the returned object will be the same as the length of " -"the *arg* argument." -msgstr "" - -#: library/fcntl.rst:109 -msgid "If the :c:func:`fcntl` call fails, an :exc:`OSError` is raised." -msgstr "" - -#: library/fcntl.rst:161 -msgid "" -"If the type or size of *arg* does not match the type or size of the " -"operation's argument (for example, if an integer is passed when a pointer is " -"expected, or the information returned in the buffer by the operating system " -"is larger than the size of *arg*), this is most likely to result in a " -"segmentation violation or a more subtle data corruption." -msgstr "" - -#: library/fcntl.rst:119 -msgid "" -"Raises an :ref:`auditing event ` ``fcntl.fcntl`` with arguments " -"``fd``, ``cmd``, ``arg``." -msgstr "" - -#: library/fcntl.rst:121 -msgid "" -"Add support of arbitrary :term:`bytes-like objects `, not " -"only :class:`bytes`." -msgstr "" - -#: library/fcntl.rst:125 -msgid "The size of bytes-like objects is no longer limited to 1024 bytes." -msgstr "" - -#: library/fcntl.rst:131 -msgid "" -"This function is identical to the :func:`~fcntl.fcntl` function, except that " -"the argument handling is even more complicated." -msgstr "" - -#: library/fcntl.rst:134 -msgid "" -"The *request* parameter is limited to values that can fit in 32-bits or 64-" -"bits, depending on the platform. Additional constants of interest for use as " -"the *request* argument can be found in the :mod:`termios` module, under the " -"same names as used in the relevant C header files." -msgstr "" - -#: library/fcntl.rst:140 -msgid "" -"The parameter *arg* can be an integer, a :term:`bytes-like object`, or a " -"string. The type and size of *arg* must match the type and size of the " -"argument of the operation as specified in the relevant C documentation." -msgstr "" - -#: library/fcntl.rst:145 -msgid "" -"If *arg* does not support the read-write buffer interface or the " -"*mutate_flag* is false, behavior is as for the :func:`~fcntl.fcntl` function." -msgstr "" - -#: library/fcntl.rst:149 -msgid "" -"If *arg* supports the read-write buffer interface (like :class:`bytearray`) " -"and *mutate_flag* is true (the default), then the buffer is (in effect) " -"passed to the underlying :c:func:`!ioctl` system call, the latter's return " -"code is passed back to the calling Python, and the buffer's new contents " -"reflect the action of the :c:func:`ioctl`. This is a slight simplification, " -"because if the supplied buffer is less than 1024 bytes long it is first " -"copied into a static buffer 1024 bytes long which is then passed " -"to :func:`ioctl` and copied back into the supplied buffer." -msgstr "" - -#: library/fcntl.rst:158 -msgid "" -"If the :c:func:`ioctl` call fails, an :exc:`OSError` exception is raised." -msgstr "" - -#: library/fcntl.rst:168 -msgid "An example::" -msgstr "Un exemple ::" - -#: library/fcntl.rst:181 -msgid "" -"Raises an :ref:`auditing event ` ``fcntl.ioctl`` with arguments " -"``fd``, ``request``, ``arg``." -msgstr "" - -#: library/fcntl.rst:183 -msgid "" -"The GIL is always released during a system call. System calls failing with " -"EINTR are automatically retried." -msgstr "" - -#: library/fcntl.rst:187 -msgid "" -"The size of not mutated bytes-like objects is no longer limited to 1024 " -"bytes." -msgstr "" - -#: library/fcntl.rst:193 -msgid "" -"Perform the lock operation *operation* on file descriptor *fd* (file objects " -"providing a :meth:`~io.IOBase.fileno` method are accepted as well). See the " -"Unix manual :manpage:`flock(2)` for details. (On some systems, this " -"function is emulated using :c:func:`fcntl`.)" -msgstr "" - -#: library/fcntl.rst:198 -msgid "" -"If the :c:func:`flock` call fails, an :exc:`OSError` exception is raised." -msgstr "" - -#: library/fcntl.rst:200 -msgid "" -"Raises an :ref:`auditing event ` ``fcntl.flock`` with arguments " -"``fd``, ``operation``." -msgstr "" - -#: library/fcntl.rst:205 -msgid "" -"This is essentially a wrapper around the :func:`~fcntl.fcntl` locking calls. " -"*fd* is the file descriptor (file objects providing " -"a :meth:`~io.IOBase.fileno` method are accepted as well) of the file to lock " -"or unlock, and *cmd* is one of the following values:" -msgstr "" - -#: library/fcntl.rst:212 -msgid "Release an existing lock." -msgstr "" - -#: library/fcntl.rst:216 -msgid "Acquire a shared lock." -msgstr "" - -#: library/fcntl.rst:220 -msgid "Acquire an exclusive lock." -msgstr "" - -#: library/fcntl.rst:224 -msgid "" -"Bitwise OR with any of the other three ``LOCK_*`` constants to make the " -"request non-blocking." -msgstr "" - -#: library/fcntl.rst:227 -msgid "" -"If :const:`!LOCK_NB` is used and the lock cannot be acquired, " -"an :exc:`OSError` will be raised and the exception will have an *errno* " -"attribute set to :const:`~errno.EACCES` or :const:`~errno.EAGAIN` (depending " -"on the operating system; for portability, check for both values). On at " -"least some systems, :const:`!LOCK_EX` can only be used if the file " -"descriptor refers to a file opened for writing." -msgstr "" - -#: library/fcntl.rst:234 -msgid "" -"*len* is the number of bytes to lock, *start* is the byte offset at which " -"the lock starts, relative to *whence*, and *whence* is as " -"with :func:`io.IOBase.seek`, specifically:" -msgstr "" - -#: library/fcntl.rst:238 -msgid "``0`` -- relative to the start of the file (:const:`os.SEEK_SET`)" -msgstr "" - -#: library/fcntl.rst:239 -msgid "``1`` -- relative to the current buffer position (:const:`os.SEEK_CUR`)" -msgstr "" - -#: library/fcntl.rst:240 -msgid "``2`` -- relative to the end of the file (:const:`os.SEEK_END`)" -msgstr "" - -#: library/fcntl.rst:242 -msgid "" -"The default for *start* is 0, which means to start at the beginning of the " -"file. The default for *len* is 0 which means to lock to the end of the " -"file. The default for *whence* is also 0." -msgstr "" - -#: library/fcntl.rst:246 -msgid "" -"Raises an :ref:`auditing event ` ``fcntl.lockf`` with arguments " -"``fd``, ``cmd``, ``len``, ``start``, ``whence``." -msgstr "" - -#: library/fcntl.rst:248 -msgid "Examples (all on a SVR4 compliant system)::" -msgstr "" - -#: library/fcntl.rst:258 -msgid "" -"Note that in the first example the return value variable *rv* will hold an " -"integer value; in the second example it will hold a :class:`bytes` object. " -"The structure lay-out for the *lockdata* variable is system dependent --- " -"therefore using the :func:`flock` call may be better." -msgstr "" - -#: library/fcntl.rst:266 -msgid "Module :mod:`os`" -msgstr "Module :mod:`os`" - -#: library/fcntl.rst:267 -msgid "" -"If the locking flags :const:`~os.O_SHLOCK` and :const:`~os.O_EXLOCK` are " -"present in the :mod:`os` module (on BSD only), the :func:`os.open` function " -"provides an alternative to the :func:`lockf` and :func:`flock` functions." -msgstr "" - -#~ msgid "UNIX" -#~ msgstr "UNIX" - -#~ msgid "I/O control" -#~ msgstr "contrôle des entrées-sorties" diff --git a/library/filecmp.po b/library/filecmp.po deleted file mode 100644 index 3ff73c9e8d..0000000000 --- a/library/filecmp.po +++ /dev/null @@ -1,308 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-24 10:39+0200\n" -"Last-Translator: Jules Lasne \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" - -#: library/filecmp.rst:2 -#, fuzzy -msgid ":mod:`!filecmp` --- File and Directory Comparisons" -msgstr ":mod:`filecmp` – Comparaisons de fichiers et de répertoires" - -#: library/filecmp.rst:7 -msgid "**Source code:** :source:`Lib/filecmp.py`" -msgstr "**Code source :** :source:`Lib/filecmp.py`" - -#: library/filecmp.rst:11 -#, fuzzy -msgid "" -"The :mod:`!filecmp` module defines functions to compare files and " -"directories, with various optional time/correctness trade-offs. For " -"comparing files, see also the :mod:`difflib` module." -msgstr "" -"Le module :mod:`filecmp` définit les fonctions permettant de comparer les " -"fichiers et les répertoires, avec différents compromis optionnels durée / " -"exactitude. Pour comparer des fichiers, voir aussi le module :mod:`difflib`." - -#: library/filecmp.rst:15 -#, fuzzy -msgid "The :mod:`!filecmp` module defines the following functions:" -msgstr "Le module :mod:`filecmp` définit les fonctions suivantes :" - -#: library/filecmp.rst:20 -msgid "" -"Compare the files named *f1* and *f2*, returning ``True`` if they seem " -"equal, ``False`` otherwise." -msgstr "" -"Compare les fichiers nommés *f1* et *f2* , renvoie ``True`` s’ils semblent " -"égaux, ``False`` sinon." - -#: library/filecmp.rst:23 -#, fuzzy -msgid "" -"If *shallow* is true and the :func:`os.stat` signatures (file type, size, " -"and modification time) of both files are identical, the files are taken to " -"be equal." -msgstr "" -"Si *shallow* est vrai, les fichiers avec des signatures :func:`os.stat()` " -"identiques sont considérés comme égaux. Sinon, le contenu des fichiers est " -"comparé." - -#: library/filecmp.rst:27 -msgid "" -"Otherwise, the files are treated as different if their sizes or contents " -"differ." -msgstr "" - -#: library/filecmp.rst:29 -msgid "" -"Note that no external programs are called from this function, giving it " -"portability and efficiency." -msgstr "" -"Notez qu'aucun programme externe n'est appelé à partir de cette fonction, ce " -"qui lui confère des qualités de portabilité et d'efficacité." - -#: library/filecmp.rst:32 -msgid "" -"This function uses a cache for past comparisons and the results, with cache " -"entries invalidated if the :func:`os.stat` information for the file " -"changes. The entire cache may be cleared using :func:`clear_cache`." -msgstr "" -"Cette fonction utilise un cache pour les comparaisons antérieures et les " -"résultats, les entrées du cache étant invalidées si les " -"informations :func:`os.stat` du fichier sont modifiées. La totalité du cache " -"peut être effacée avec :func:`clear_cache`." - -#: library/filecmp.rst:39 -msgid "" -"Compare the files in the two directories *dir1* and *dir2* whose names are " -"given by *common*." -msgstr "" -"Compare les fichiers des deux répertoires *dir1* et *dir2* dont les noms " -"sont donnés par *common*." - -#: library/filecmp.rst:42 -msgid "" -"Returns three lists of file names: *match*, *mismatch*, *errors*. *match* " -"contains the list of files that match, *mismatch* contains the names of " -"those that don't, and *errors* lists the names of files which could not be " -"compared. Files are listed in *errors* if they don't exist in one of the " -"directories, the user lacks permission to read them or if the comparison " -"could not be done for some other reason." -msgstr "" -"Renvoie trois listes de noms de fichiers : *match* , *mismatch*, *errors*. " -"*match* contient la liste des fichiers qui correspondent, *mismatch* " -"contient les noms de ceux qui ne correspondent pas et *errors* répertorie " -"les noms des fichiers qui n'ont pas pu être comparés. Les fichiers sont " -"répertoriés dans *errors* s'ils n'existent pas dans l'un des répertoires, si " -"l'utilisateur ne dispose pas de l'autorisation nécessaire pour les lire ou " -"si la comparaison n'a pas pu être effectuée pour une autre raison." - -#: library/filecmp.rst:49 -msgid "" -"The *shallow* parameter has the same meaning and default value as " -"for :func:`filecmp.cmp`." -msgstr "" -"Le paramètre *shallow* a la même signification et la même valeur par défaut " -"que pour :func:`filecmp.cmp`." - -#: library/filecmp.rst:52 -msgid "" -"For example, ``cmpfiles('a', 'b', ['c', 'd/e'])`` will compare ``a/c`` with " -"``b/c`` and ``a/d/e`` with ``b/d/e``. ``'c'`` and ``'d/e'`` will each be in " -"one of the three returned lists." -msgstr "" -"Par exemple, ``cmpfiles('a', 'b', ['c', 'd/e'])`` compare ``a/c`` et ``b/" -"c`` et ``a/d/e`` avec ``b/d/e``. ``'c'`` et ``'d/e'`` seront chacun dans " -"l'une des trois listes renvoyées." - -#: library/filecmp.rst:59 -msgid "" -"Clear the filecmp cache. This may be useful if a file is compared so quickly " -"after it is modified that it is within the mtime resolution of the " -"underlying filesystem." -msgstr "" -"Efface le cache *filecmp*. Cela peut être utile si un fichier est comparé " -"juste après avoir été modifié (dans un délai inférieur à la résolution " -"*mtime* du système de fichiers sous-jacent)." - -#: library/filecmp.rst:69 -msgid "The :class:`dircmp` class" -msgstr "La classe :class:`dircmp`" - -#: library/filecmp.rst:73 -#, fuzzy -msgid "" -"Construct a new directory comparison object, to compare the directories *a* " -"and *b*. *ignore* is a list of names to ignore, and defaults " -"to :const:`filecmp.DEFAULT_IGNORES`. *hide* is a list of names to hide, and " -"defaults to ``[os.curdir, os.pardir]``." -msgstr "" -"Construit un nouvel objet de comparaison de répertoires, pour comparer les " -"répertoires *a* et *b*. *ignore* est une liste de noms à ignorer, par défaut " -"à :attr:`filecmp.DEFAULT_IGNORES`. *hide* est une liste de noms à cacher, " -"par défaut à ``[os.curdir, os.pardir]``." - -#: library/filecmp.rst:78 -#, fuzzy -msgid "" -"The :class:`dircmp` class compares files by doing *shallow* comparisons as " -"described for :func:`filecmp.cmp` by default using the *shallow* parameter." -msgstr "" -"La classe :class:`dircmp` compare les fichiers en faisant des comparaisons " -"*superficielles* comme décrit pour :func:`filecmp.cmp`." - -#: library/filecmp.rst:84 -msgid "Added the *shallow* parameter." -msgstr "" - -#: library/filecmp.rst:86 -msgid "The :class:`dircmp` class provides the following methods:" -msgstr "La classe :class:`dircmp` fournit les méthodes suivantes :" - -#: library/filecmp.rst:90 -msgid "Print (to :data:`sys.stdout`) a comparison between *a* and *b*." -msgstr "Affiche (sur :data:`sys.stdout`) une comparaison entre *a* et *b*." - -#: library/filecmp.rst:94 -msgid "" -"Print a comparison between *a* and *b* and common immediate subdirectories." -msgstr "" -"Affiche une comparaison entre *a* et *b* et les sous-répertoires immédiats " -"communs." - -#: library/filecmp.rst:99 -msgid "" -"Print a comparison between *a* and *b* and common subdirectories " -"(recursively)." -msgstr "" -"Affiche une comparaison entre a et b et les sous-répertoires communs " -"(récursivement)." - -#: library/filecmp.rst:102 -msgid "" -"The :class:`dircmp` class offers a number of interesting attributes that may " -"be used to get various bits of information about the directory trees being " -"compared." -msgstr "" -"La classe :class:`dircmp` offre un certain nombre d'attributs intéressants " -"qui peuvent être utilisés pour obtenir diverses informations sur les " -"arborescences de répertoires comparées." - -#: library/filecmp.rst:106 -#, fuzzy -msgid "" -"Note that via :meth:`~object.__getattr__` hooks, all attributes are computed " -"lazily, so there is no speed penalty if only those attributes which are " -"lightweight to compute are used." -msgstr "" -"Notez que, via les points d'ancrage :meth:`__getattr__`, tous les attributs " -"sont calculés de manière paresseuse. Il n'y a donc pas de pénalité en " -"vitesse si seuls les attributs rapides à calculer sont utilisés." - -#: library/filecmp.rst:113 -msgid "The directory *a*." -msgstr "Le répertoire *a*." - -#: library/filecmp.rst:118 -msgid "The directory *b*." -msgstr "Le répertoire *b*." - -#: library/filecmp.rst:123 -msgid "Files and subdirectories in *a*, filtered by *hide* and *ignore*." -msgstr "" -"Fichiers et sous-répertoires dans *a* , filtrés par *hide* et *ignore*." - -#: library/filecmp.rst:128 -msgid "Files and subdirectories in *b*, filtered by *hide* and *ignore*." -msgstr "" -"Fichiers et sous-répertoires dans *b* , filtrés par *hide* et *ignore*." - -#: library/filecmp.rst:133 -msgid "Files and subdirectories in both *a* and *b*." -msgstr "Fichiers et sous-répertoires à la fois dans *a* et *b*." - -#: library/filecmp.rst:138 -msgid "Files and subdirectories only in *a*." -msgstr "Fichiers et sous-répertoires uniquement dans *a*." - -#: library/filecmp.rst:143 -msgid "Files and subdirectories only in *b*." -msgstr "Fichiers et sous-répertoires uniquement dans *b*." - -#: library/filecmp.rst:148 -msgid "Subdirectories in both *a* and *b*." -msgstr "Sous-répertoires à la fois dans *a* et *b*." - -#: library/filecmp.rst:153 -msgid "Files in both *a* and *b*." -msgstr "Fichiers à la fois dans *a* et *b*." - -#: library/filecmp.rst:158 -msgid "" -"Names in both *a* and *b*, such that the type differs between the " -"directories, or names for which :func:`os.stat` reports an error." -msgstr "" -"Noms dans *a* et *b* , tels que le type diffère entre les répertoires, ou " -"noms pour lesquels :func:`os.stat` signale une erreur." - -#: library/filecmp.rst:164 -msgid "" -"Files which are identical in both *a* and *b*, using the class's file " -"comparison operator." -msgstr "" -"Fichiers identiques dans *a* et *b*, en utilisant l'opérateur de comparaison " -"de fichiers de la classe." - -#: library/filecmp.rst:170 -msgid "" -"Files which are in both *a* and *b*, whose contents differ according to the " -"class's file comparison operator." -msgstr "" -"Fichiers figurant à la fois dans *a* et dans *b* , dont le contenu diffère " -"en fonction de l'opérateur de comparaison de fichiers de la classe." - -#: library/filecmp.rst:176 -msgid "Files which are in both *a* and *b*, but could not be compared." -msgstr "" -"Fichiers à la fois dans *a* et dans *b* , mais ne pouvant pas être comparés." - -#: library/filecmp.rst:181 -#, fuzzy -msgid "" -"A dictionary mapping names in :attr:`common_dirs` to :class:`dircmp` " -"instances (or MyDirCmp instances if this instance is of type MyDirCmp, a " -"subclass of :class:`dircmp`)." -msgstr "" -"Un dictionnaire faisant correspondre les noms dans :attr:`common_dirs` vers " -"des objets :class:`dircmp`." - -#: library/filecmp.rst:185 -msgid "" -"Previously entries were always :class:`dircmp` instances. Now entries are " -"the same type as *self*, if *self* is a subclass of :class:`dircmp`." -msgstr "" - -#: library/filecmp.rst:194 -msgid "List of directories ignored by :class:`dircmp` by default." -msgstr "Liste des répertoires ignorés par défaut par :class:`dircmp`." - -#: library/filecmp.rst:197 -msgid "" -"Here is a simplified example of using the ``subdirs`` attribute to search " -"recursively through two directories to show common different files::" -msgstr "" -"Voici un exemple simplifié d'utilisation de l'attribut ``subdirs`` pour " -"effectuer une recherche récursive dans deux répertoires afin d'afficher des " -"fichiers communs différents ::" diff --git a/library/fileformats.po b/library/fileformats.po deleted file mode 100644 index b3450fe984..0000000000 --- a/library/fileformats.po +++ /dev/null @@ -1,27 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -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: 2017-09-24 21:35+0200\n" -"Last-Translator: FULL NAME \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" - -#: library/fileformats.rst:5 -msgid "File Formats" -msgstr "Formats de fichiers" - -#: library/fileformats.rst:7 -msgid "" -"The modules described in this chapter parse various miscellaneous file " -"formats that aren't markup languages and are not related to e-mail." -msgstr "" -"Les modules décrits dans ce chapitre lisent divers formats de fichier qui ne " -"sont ni des langages balisés ni relatifs aux e-mails." diff --git a/library/fileinput.po b/library/fileinput.po deleted file mode 100644 index 43673b47ff..0000000000 --- a/library/fileinput.po +++ /dev/null @@ -1,423 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-09-19 23:19+0200\n" -"Last-Translator: Jean Abou Samra \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.1\n" - -#: library/fileinput.rst:2 -#, fuzzy -msgid ":mod:`!fileinput` --- Iterate over lines from multiple input streams" -msgstr ":mod:`fileinput` — Parcourt les lignes provenant de plusieurs entrées" - -#: library/fileinput.rst:7 -msgid "**Source code:** :source:`Lib/fileinput.py`" -msgstr "**Code source :** :source:`Lib/fileinput.py`" - -#: library/fileinput.rst:11 -msgid "" -"This module implements a helper class and functions to quickly write a loop " -"over standard input or a list of files. If you just want to read or write " -"one file see :func:`open`." -msgstr "" -"Ce module offre une classe auxiliaire et des fonctions pour lire facilement " -"l'entrée standard ou bien les fichiers d'une liste. Si vous n'avez besoin de " -"lire ou écrire qu'un seul fichier, il suffit de :func:`open`." - -#: library/fileinput.rst:15 -msgid "The typical use is::" -msgstr "Ce module s'utilise le plus couramment comme ceci ::" - -#: library/fileinput.rst:21 -msgid "" -"This iterates over the lines of all files listed in ``sys.argv[1:]``, " -"defaulting to ``sys.stdin`` if the list is empty. If a filename is ``'-'``, " -"it is also replaced by ``sys.stdin`` and the optional arguments *mode* and " -"*openhook* are ignored. To specify an alternative list of filenames, pass " -"it as the first argument to :func:`.input`. A single file name is also " -"allowed." -msgstr "" -"Ce code traite une à une les lignes des fichiers de ``sys.argv[1:]``. Si " -"cette liste est vide (pas d'argument en ligne de commande), il lit l'entrée " -"standard. Le nom de fichier ``'-'`` est équivalent à l'entrée standard (les " -"arguments facultatifs *mode* et *openhook* sont ignorés dans ce cas). On " -"peut aussi passer la liste des fichiers comme argument à :func:`.input`, " -"voire un nom de fichier unique." - -#: library/fileinput.rst:27 -msgid "" -"All files are opened in text mode by default, but you can override this by " -"specifying the *mode* parameter in the call to :func:`.input` " -"or :class:`FileInput`. If an I/O error occurs during opening or reading a " -"file, :exc:`OSError` is raised." -msgstr "" -"Par défaut, tous les fichiers sont ouverts en mode texte. On peut changer ce " -"comportement à l'aide du paramètre *mode* de la fonction :func:`.input` ou " -"du constructeur de :class:`FileInput`. Si une erreur d'entrée-sortie se " -"produit durant l'ouverture ou la lecture d'un fichier, " -"l'exception :exc:`OSError` est levée." - -#: library/fileinput.rst:32 -msgid ":exc:`IOError` used to be raised; it is now an alias of :exc:`OSError`." -msgstr "" -":exc:`IOError` était levée auparavant, elle est devenue un alias " -"de :exc:`OSError`." - -#: library/fileinput.rst:35 -msgid "" -"If ``sys.stdin`` is used more than once, the second and further use will " -"return no lines, except perhaps for interactive use, or if it has been " -"explicitly reset (e.g. using ``sys.stdin.seek(0)``)." -msgstr "" -"Si ``sys.stdin`` apparaît plus d'une fois dans la liste, toutes les lignes " -"sont consommées dès la première fois, sauf éventuellement en cas d'usage " -"interactif ou si le flux d'entrée standard a été modifié dans l'intervalle " -"(par exemple avec ``sys.stdin.seek(0)``)." - -#: library/fileinput.rst:39 -msgid "" -"Empty files are opened and immediately closed; the only time their presence " -"in the list of filenames is noticeable at all is when the last file opened " -"is empty." -msgstr "" -"Les fichiers vides sont ouverts et refermés immédiatement. Ils ne sont pas " -"détectables dans la liste des fichiers, sauf éventuellement dans le cas où " -"le dernier fichier est vide." - -#: library/fileinput.rst:43 -msgid "" -"Lines are returned with any newlines intact, which means that the last line " -"in a file may not have one." -msgstr "" -"Les caractères de saut de ligne sont préservés, donc toutes les lignes se " -"terminent par un saut de ligne, sauf éventuellement la dernière ligne d'un " -"fichier." - -#: library/fileinput.rst:46 -#, fuzzy -msgid "" -"You can control how files are opened by providing an opening hook via the " -"*openhook* parameter to :func:`fileinput.input` or :func:`FileInput`. The " -"hook must be a function that takes two arguments, *filename* and *mode*, and " -"returns an accordingly opened file-like object. If *encoding* and/or " -"*errors* are specified, they will be passed to the hook as additional " -"keyword arguments. This module provides a :func:`hook_compressed` to support " -"compressed files." -msgstr "" -"Le paramètre *openhook* donne le contrôle sur la manière dont les fichiers " -"sont ouverts par :func:`fileinput.input` ou :class:`FileInput()`. Il s'agit " -"d'un point d'entrée automatique (*hook* en anglais). S'il est précisé, sa " -"valeur doit être une fonction, qui est appelée avec les arguments *filename* " -"et *mode* pour renvoyer un objet fichier-compatible ouvert selon *mode*. Ce " -"module contient deux fonctions prédéfinies qui peuvent être passées pour " -"*openhook*." - -#: library/fileinput.rst:53 -msgid "The following function is the primary interface of this module:" -msgstr "La fonction suivante constitue l'interface principale du module :" - -#: library/fileinput.rst:58 -msgid "" -"Create an instance of the :class:`FileInput` class. The instance will be " -"used as global state for the functions of this module, and is also returned " -"to use during iteration. The parameters to this function will be passed " -"along to the constructor of the :class:`FileInput` class." -msgstr "" -"Crée une instance de :class:`FileInput`, qui devient l'état global pour " -"toutes les fonctions du module. Elle est également renvoyée afin que " -"l'utilisateur puisse la parcourir comme un objet itérable. Tous les " -"paramètres de cette fonction sont transmis au constructeur " -"de :class:`FileInput`." - -#: library/fileinput.rst:63 -msgid "" -"The :class:`FileInput` instance can be used as a context manager in " -"the :keyword:`with` statement. In this example, *input* is closed after " -"the :keyword:`!with` statement is exited, even if an exception occurs::" -msgstr "" -"Les instances de :class:`FileInput` peuvent s'utiliser comme gestionnaires " -"de contexte, avec l'instruction :keyword:`with`. Dans le code suivant, " -"*input* est fermé lorsque le bloc :keyword:`!with` se termine, y compris si " -"une exception l'a interrompu ::" - -#: library/fileinput.rst:167 -msgid "Can be used as a context manager." -msgstr "prise en charge du protocole de gestionnaire de contexte." - -#: library/fileinput.rst:74 -msgid "The keyword parameters *mode* and *openhook* are now keyword-only." -msgstr "les paramètres *mode* et *openhook* doivent être nommés." - -#: library/fileinput.rst:173 library/fileinput.rst:207 -#, fuzzy -msgid "The keyword-only parameter *encoding* and *errors* are added." -msgstr "" -"les paramètres *mode* et *openhook* doivent impérativement être nommés." - -#: library/fileinput.rst:81 -msgid "" -"The following functions use the global state created " -"by :func:`fileinput.input`; if there is no active state, :exc:`RuntimeError` " -"is raised." -msgstr "" -"Toutes les fonctions suivantes font appel à l'état global du module mis en " -"place par :func:`fileinput.input`. L'absence de cet état déclenche " -"l'exception :exc:`RuntimeError`." - -#: library/fileinput.rst:87 -msgid "" -"Return the name of the file currently being read. Before the first line has " -"been read, returns ``None``." -msgstr "" -"Renvoie le nom du fichier en train d'être lu, ou ``None`` avant la lecture " -"de la toute première ligne." - -#: library/fileinput.rst:93 -msgid "" -"Return the integer \"file descriptor\" for the current file. When no file is " -"opened (before the first line and between files), returns ``-1``." -msgstr "" -"Renvoie le descripteur de fichier (sous forme d'entier) utilisé pour lire le " -"fichier courant. Si aucun fichier n'est ouvert (avant la première ligne et " -"entre les fichiers), le résultat est ``-1``." - -#: library/fileinput.rst:99 -msgid "" -"Return the cumulative line number of the line that has just been read. " -"Before the first line has been read, returns ``0``. After the last line of " -"the last file has been read, returns the line number of that line." -msgstr "" -"Renvoie le numéro de la ligne qui vient d'être lue, en commençant par la " -"première ligne du premier fichier. Avant cette toute première ligne, renvoie " -"``0``. Après la dernière ligne du dernier fichier, renvoie le numéro de " -"cette ligne." - -#: library/fileinput.rst:106 -msgid "" -"Return the line number in the current file. Before the first line has been " -"read, returns ``0``. After the last line of the last file has been read, " -"returns the line number of that line within the file." -msgstr "" -"Renvoie le numéro de ligne relatif au fichier courant. Avant la toute " -"première ligne, renvoie ``0``. Après la toute dernière ligne, renvoie le " -"numéro de cette ligne par rapport à son fichier source." - -#: library/fileinput.rst:113 -msgid "" -"Return ``True`` if the line just read is the first line of its file, " -"otherwise return ``False``." -msgstr "" -"Renvoie ``True`` ou ``False`` selon que la ligne qui vient d'être lue est la " -"première du fichier." - -#: library/fileinput.rst:119 -msgid "" -"Return ``True`` if the last line was read from ``sys.stdin``, otherwise " -"return ``False``." -msgstr "" -"``True`` ou ``False`` selon que la dernière ligne lue provenait de " -"``sys.stdin`` ou non." - -#: library/fileinput.rst:125 -msgid "" -"Close the current file so that the next iteration will read the first line " -"from the next file (if any); lines not read from the file will not count " -"towards the cumulative line count. The filename is not changed until after " -"the first line of the next file has been read. Before the first line has " -"been read, this function has no effect; it cannot be used to skip the first " -"file. After the last line of the last file has been read, this function has " -"no effect." -msgstr "" -"Ferme le fichier courant et laisse la lecture se poursuivre au début du " -"suivant (ou se terminer si c'était le dernier fichier ; dans ce cas cette " -"fonction ne fait rien). Les lignes court-circuitées ne comptent pas dans les " -"numéros des lignes des fichiers suivants. Le nom du fichier courant n'est " -"pas modifié immédiatement, mais seulement après que la première ligne du " -"fichier suivant a été lue. Cette fonction n'a pas d'effet avant la lecture " -"de la première ligne (elle ne peut pas sauter le premier fichier)." - -#: library/fileinput.rst:135 -msgid "Close the sequence." -msgstr "" -"Ferme le fichier courant et termine la lecture en sautant les fichiers " -"suivants." - -#: library/fileinput.rst:137 -msgid "" -"The class which implements the sequence behavior provided by the module is " -"available for subclassing as well:" -msgstr "" -"La classe qui implémente ce comportement du module est publique. On peut en " -"créer des classes filles :" - -#: library/fileinput.rst:143 -#, fuzzy -msgid "" -"Class :class:`FileInput` is the implementation; its " -"methods :meth:`filename`, :meth:`fileno`, :meth:`lineno`, :meth:`filelineno`, :meth:`isfirstline`, :meth:`isstdin`, :meth:`nextfile` " -"and :meth:`close` correspond to the functions of the same name in the " -"module. In addition it is :term:`iterable` and has " -"a :meth:`~io.TextIOBase.readline` method which returns the next input line. " -"The sequence must be accessed in strictly sequential order; random access " -"and :meth:`~io.TextIOBase.readline` cannot be mixed." -msgstr "" -":class:`FileInput` est l'implémentation principale du module. Ses " -"méthodes :meth:`filename`, :meth:`fileno`, :meth:`lineno`, :meth:`filelineno`, :meth:`isfirstline`, :meth:`isstdin`, :meth:`nextfile` " -"et :meth:`close` correspondent aux fonctions du même nom au niveau du " -"module. Elle possède également une méthode :meth:`~io.TextIOBase.readline`, " -"qui lit une nouvelle ligne et la renvoie, ainsi qu'une " -"méthode :meth:`__getitem__` qui permet l'accès à un indice. Il faut lire les " -"éléments de la séquence strictement dans l'ordre (l'accès à un indice " -"arbitraire n'étant pas compatible avec :meth:`~io.TextIOBase.readline`)." - -#: library/fileinput.rst:151 -#, fuzzy -msgid "" -"With *mode* you can specify which file mode will be passed to :func:`open`. " -"It must be one of ``'r'`` and ``'rb'``." -msgstr "" -"Le paramètre *mode* permet de préciser le mode d'ouverture des fichiers. Il " -"est passé directement à :func:`open`. Les valeurs possibles sont ``'r'``, " -"``'rU'``, ``'U'`` et ``'rb'``." - -#: library/fileinput.rst:154 -msgid "" -"The *openhook*, when given, must be a function that takes two arguments, " -"*filename* and *mode*, and returns an accordingly opened file-like object. " -"You cannot use *inplace* and *openhook* together." -msgstr "" -"S'il est fourni, l'argument *openhook* est une fonction. Elle est appelée " -"avec les paramètres *filename* et *mode*, et renvoie un objet fichier-" -"compatible ouvert selon *mode*. Notez que *openhook* et *inplace* sont " -"mutuellement exclusifs." - -#: library/fileinput.rst:158 -msgid "" -"You can specify *encoding* and *errors* that is passed to :func:`open` or " -"*openhook*." -msgstr "" - -#: library/fileinput.rst:160 -msgid "" -"A :class:`FileInput` instance can be used as a context manager in " -"the :keyword:`with` statement. In this example, *input* is closed after " -"the :keyword:`!with` statement is exited, even if an exception occurs::" -msgstr "" -"Les objets :class:`FileInput` peuvent aussi fonctionner comme gestionnaires " -"de contexte dans un bloc :keyword:`with`. Dans l'exemple suivant, *input* " -"est fermé à la fin du bloc :keyword:`!with`, même arrêté par une exception ::" - -#: library/fileinput.rst:170 -msgid "The keyword parameter *mode* and *openhook* are now keyword-only." -msgstr "" -"les paramètres *mode* et *openhook* doivent impérativement être nommés." - -#: library/fileinput.rst:176 -msgid "" -"The ``'rU'`` and ``'U'`` modes and the :meth:`!__getitem__` method have been " -"removed." -msgstr "" - -#: library/fileinput.rst:181 -msgid "" -"**Optional in-place filtering:** if the keyword argument ``inplace=True`` is " -"passed to :func:`fileinput.input` or to the :class:`FileInput` constructor, " -"the file is moved to a backup file and standard output is directed to the " -"input file (if a file of the same name as the backup file already exists, it " -"will be replaced silently). This makes it possible to write a filter that " -"rewrites its input file in place. If the *backup* parameter is given " -"(typically as ``backup='.'``), it specifies the extension " -"for the backup file, and the backup file remains around; by default, the " -"extension is ``'.bak'`` and it is deleted when the output file is closed. " -"In-place filtering is disabled when standard input is read." -msgstr "" -"**Filtrage sur place optionnel :** si ``inplace=True`` est passé " -"à :func:`fileinput.input` ou au constructeur de :class:`FileInput`, chaque " -"fichier d'entrée est déplacé vers une sauvegarde et la sortie standard est " -"redirigée vers le fichier lui-même, ce qui permet d'écrire des filtres qui " -"modifient directement les fichiers existants. Si le paramètre *backup* est " -"fourni, il donne l'extension des fichiers de sauvegarde. Dans ce cas, la " -"sauvegarde est conservée après l'opération. Par défaut, les fichiers de " -"sauvegarde ont l'extension ``'.bak'`` et sont supprimés dès que le fichier " -"de sortie est fermé. Si un fichier existe avec le même nom que la " -"sauvegarde, il est écrasé. Le filtrage sur place ne fait rien pour l'entrée " -"standard." - -#: library/fileinput.rst:193 -msgid "The two following opening hooks are provided by this module:" -msgstr "" -"Les deux fonctions suivantes fournissent des valeurs prédéfinies pour " -"*openhook* :" - -#: library/fileinput.rst:197 -msgid "" -"Transparently opens files compressed with gzip and bzip2 (recognized by the " -"extensions ``'.gz'`` and ``'.bz2'``) using the :mod:`gzip` and :mod:`bz2` " -"modules. If the filename extension is not ``'.gz'`` or ``'.bz2'``, the file " -"is opened normally (ie, using :func:`open` without any decompression)." -msgstr "" -"Ouvre de façon transparente les fichiers compressés avec gzip ou bzip2, à " -"l'aide des modules :mod:`gzip` et :mod:`bz2`. Les fichiers compressés sont " -"reconnus aux extensions ``'.gz'`` et ``'.bz2'``. Tous les fichiers qui n'ont " -"pas l'une de ces deux extensions sont ouverts normalement " -"(avec :func:`open`, sans décompression)." - -#: library/fileinput.rst:202 -msgid "" -"The *encoding* and *errors* values are passed to :class:`io.TextIOWrapper` " -"for compressed files and open for normal files." -msgstr "" - -#: library/fileinput.rst:205 -#, fuzzy -msgid "" -"Usage example: ``fi = " -"fileinput.FileInput(openhook=fileinput.hook_compressed, encoding=\"utf-8\")``" -msgstr "" -"Exemple d'utilisation : ``fi = " -"fileinput.FileInput(openhook=fileinput.hook_compressed)``." - -#: library/fileinput.rst:213 -msgid "" -"Returns a hook which opens each file with :func:`open`, using the given " -"*encoding* and *errors* to read the file." -msgstr "" -"Renvoie une fonction qui ouvre les fichiers en passant à :func:`open` les " -"arguments *encoding* et *errors*. Le résultat peut être exploité à travers " -"le point d'entrée automatique *openhook*." - -#: library/fileinput.rst:216 -msgid "" -"Usage example: ``fi = " -"fileinput.FileInput(openhook=fileinput.hook_encoded(\"utf-8\", " -"\"surrogateescape\"))``" -msgstr "" -"Exemple d'utilisation : ``fi = " -"fileinput.FileInput(openhook=fileinput.hook_encoded(\"utf-8\", " -"\"surrogateescape\"))``." - -#: library/fileinput.rst:220 -msgid "Added the optional *errors* parameter." -msgstr "ajout du paramètre facultatif *errors*." - -#: library/fileinput.rst:223 -msgid "" -"This function is deprecated since :func:`fileinput.input` " -"and :class:`FileInput` now have *encoding* and *errors* parameters." -msgstr "" - -#~ msgid "The ``'rU'`` and ``'U'`` modes." -#~ msgstr "modes ``'rU'`` et ``'U'``." - -#~ msgid "Support for :meth:`__getitem__` method is deprecated." -#~ msgstr "accès à un indice avec :meth:`__getitem__`." diff --git a/library/filesys.po b/library/filesys.po deleted file mode 100644 index 20298fa9ca..0000000000 --- a/library/filesys.po +++ /dev/null @@ -1,67 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-09-28 11:33+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" - -#: library/filesys.rst:5 -msgid "File and Directory Access" -msgstr "Accès aux Fichiers et aux Dossiers" - -#: library/filesys.rst:7 -msgid "" -"The modules described in this chapter deal with disk files and directories. " -"For example, there are modules for reading the properties of files, " -"manipulating paths in a portable way, and creating temporary files. The " -"full list of modules in this chapter is:" -msgstr "" -"Les modules décrits dans ce chapitre servent à accéder aux fichiers et aux " -"dossiers. Des modules, par exemple, pour lire les propriétés des fichiers, " -"manipuler des chemins de manière portable, et créer des fichiers " -"temporaires. La liste exhaustive des modules de ce chapitre est :" - -#: library/filesys.rst:28 -msgid "Module :mod:`os`" -msgstr "Module :mod:`os`" - -#: library/filesys.rst:29 -msgid "" -"Operating system interfaces, including functions to work with files at a " -"lower level than Python :term:`file objects `." -msgstr "" -"Interfaces du système d'exploitation, incluant des fonctions pour travailler " -"avec des fichiers dans un niveau plus bas que les :term:`objets fichiers " -"` de Python." - -#: library/filesys.rst:32 -msgid "Module :mod:`io`" -msgstr "Module :mod:`io`" - -#: library/filesys.rst:33 -msgid "" -"Python's built-in I/O library, including both abstract classes and some " -"concrete classes such as file I/O." -msgstr "" -"Bibliothèque d'entrées/sorties native de Python, incluant des classes " -"abstraites et concrètes tel que les I/O sur les fichiers." - -#: library/filesys.rst:36 -msgid "Built-in function :func:`open`" -msgstr "Fonction native :func:`open`" - -#: library/filesys.rst:37 -msgid "The standard way to open files for reading and writing with Python." -msgstr "" -"Le moyen classique pour ouvrir des fichiers pour les lire ou y écrire avec " -"Python." diff --git a/library/fnmatch.po b/library/fnmatch.po deleted file mode 100644 index 6fffa03e59..0000000000 --- a/library/fnmatch.po +++ /dev/null @@ -1,212 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-04-28 20:16+0200\n" -"Last-Translator: Dimitri Merejkowsky \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.1\n" - -#: library/fnmatch.rst:2 -#, fuzzy -msgid ":mod:`!fnmatch` --- Unix filename pattern matching" -msgstr ":mod:`fnmatch` — Filtrage par motif des noms de fichiers Unix" - -#: library/fnmatch.rst:7 -msgid "**Source code:** :source:`Lib/fnmatch.py`" -msgstr "**Code source :** :source:`Lib/fnmatch.py`" - -#: library/fnmatch.rst:15 -msgid "" -"This module provides support for Unix shell-style wildcards, which are *not* " -"the same as regular expressions (which are documented in the :mod:`re` " -"module). The special characters used in shell-style wildcards are:" -msgstr "" -"Ce module fournit la gestion des caractères de remplacement de style shell " -"Unix, qui ne sont *pas* identiques à ceux utilisés dans les expressions " -"régulières (documentés dans le module :mod:`re`). Les caractères spéciaux " -"utilisés comme caractères de remplacement de style shell sont :" - -#: library/fnmatch.rst:27 -msgid "Pattern" -msgstr "Motif" - -#: library/fnmatch.rst:27 -msgid "Meaning" -msgstr "Signification" - -#: library/fnmatch.rst:29 -msgid "``*``" -msgstr "``*``" - -#: library/fnmatch.rst:29 -msgid "matches everything" -msgstr "reconnaît n'importe quoi" - -#: library/fnmatch.rst:31 -msgid "``?``" -msgstr "``?``" - -#: library/fnmatch.rst:31 -msgid "matches any single character" -msgstr "reconnaît n'importe quel caractère unique" - -#: library/fnmatch.rst:33 -msgid "``[seq]``" -msgstr "``[seq]``" - -#: library/fnmatch.rst:33 -msgid "matches any character in *seq*" -msgstr "reconnaît n'importe quel caractère dans *seq*" - -#: library/fnmatch.rst:35 -msgid "``[!seq]``" -msgstr "``[!seq]``" - -#: library/fnmatch.rst:35 -msgid "matches any character not in *seq*" -msgstr "reconnaît n'importe quel caractère qui n'est pas dans *seq*" - -#: library/fnmatch.rst:38 -msgid "" -"For a literal match, wrap the meta-characters in brackets. For example, " -"``'[?]'`` matches the character ``'?'``." -msgstr "" -"Pour une correspondance littérale, il faut entourer le métacaractère par des " -"crochets. Par exemple, ``'[?]'`` reconnaît le caractère ``'?'``." - -#: library/fnmatch.rst:43 -msgid "" -"Note that the filename separator (``'/'`` on Unix) is *not* special to this " -"module. See module :mod:`glob` for pathname expansion (:mod:`glob` " -"uses :func:`.filter` to match pathname segments). Similarly, filenames " -"starting with a period are not special for this module, and are matched by " -"the ``*`` and ``?`` patterns." -msgstr "" -"Notons que le séparateur de nom de fichiers (``'/'`` sous Unix) n'est *pas* " -"traité de manière spéciale par ce module. Voir le module :mod:`glob` pour la " -"recherche de chemins (:mod:`glob` utilise :func:`.filter` pour reconnaître " -"les composants d'un chemin). De la même manière, les noms de fichiers " -"commençant par un point ne sont pas traités de manière spéciale par ce " -"module, et sont reconnus par les motifs ``*`` et ``?``." - -#: library/fnmatch.rst:49 -msgid "" -"Unless stated otherwise, \"filename string\" and \"pattern string\" either " -"refer to :class:`str` or ``ISO-8859-1`` encoded :class:`bytes` objects. Note " -"that the functions documented below do not allow to mix a :class:`!bytes` " -"pattern with a :class:`!str` filename, and vice-versa." -msgstr "" - -#: library/fnmatch.rst:54 -msgid "" -"Finally, note that :func:`functools.lru_cache` with a *maxsize* of 32768 is " -"used to cache the (typed) compiled regex patterns in the following " -"functions: :func:`fnmatch`, :func:`fnmatchcase`, :func:`.filter`, :func:`.filterfalse`." -msgstr "" - -#: library/fnmatch.rst:61 -#, fuzzy -msgid "" -"Test whether the filename string *name* matches the pattern string *pat*, " -"returning ``True`` or ``False``. Both parameters are case-normalized " -"using :func:`os.path.normcase`. :func:`fnmatchcase` can be used to perform a " -"case-sensitive comparison, regardless of whether that's standard for the " -"operating system." -msgstr "" -"Teste si la chaîne de caractères *filename* correspond au motif *pattern*, " -"en renvoyant :const:`True` ou :const:`False`. La casse de chacun des " -"paramètres peut être normalisée en " -"utilisant :func:`os.path.normcase`. :func:`fnmatchcase` peut être utilisée " -"pour réaliser une comparaison sensible à la casse, indépendamment du système " -"d'exploitation." - -#: library/fnmatch.rst:67 -msgid "" -"This example will print all file names in the current directory with the " -"extension ``.txt``::" -msgstr "" -"Cet exemple affiche tous les noms de fichiers du répertoire courant ayant " -"pour extension ``.txt`` ::" - -#: library/fnmatch.rst:80 -#, fuzzy -msgid "" -"Test whether the filename string *name* matches the pattern string *pat*, " -"returning ``True`` or ``False``; the comparison is case-sensitive and does " -"not apply :func:`os.path.normcase`." -msgstr "" -"Teste si *filename* correspond au motif *pattern*, en " -"renvoyant :const:`True` ou :const:`False` ; la comparaison est sensible à la " -"casse et n'utilise pas la fonction :func:`os.path.normcase`." - -#: library/fnmatch.rst:87 -#, fuzzy -msgid "" -"Construct a list from those elements of the :term:`iterable` of filename " -"strings *names* that match the pattern string *pat*. It is the same as ``[n " -"for n in names if fnmatch(n, pat)]``, but implemented more efficiently." -msgstr "" -"Renvoie un sous-ensemble de la liste *names* correspondant au motif " -"*pattern*. Similaire à ``[n for n in names if fnmatch(n, pattern)]``, mais " -"implémenté plus efficacement." - -#: library/fnmatch.rst:95 -#, fuzzy -msgid "" -"Construct a list from those elements of the :term:`iterable` of filename " -"strings *names* that do not match the pattern string *pat*. It is the same " -"as ``[n for n in names if not fnmatch(n, pat)]``, but implemented more " -"efficiently." -msgstr "" -"Renvoie un sous-ensemble de la liste *names* correspondant au motif " -"*pattern*. Similaire à ``[n for n in names if fnmatch(n, pattern)]``, mais " -"implémenté plus efficacement." - -#: library/fnmatch.rst:105 -#, fuzzy -msgid "" -"Return the shell-style pattern *pat* converted to a regular expression for " -"using with :func:`re.prefixmatch`. The pattern is expected to be " -"a :class:`str`." -msgstr "" -"Renvoie le motif *pattern*, de style shell, converti en une expression " -"régulière utilisable avec :func:`re.match`." - -#: library/fnmatch.rst:109 -msgid "Example:" -msgstr "Exemple :" - -#: library/fnmatch.rst:123 -msgid "Module :mod:`glob`" -msgstr "Module :mod:`glob`" - -#: library/fnmatch.rst:124 -msgid "Unix shell-style path expansion." -msgstr "Recherche de chemins de style shell Unix." - -#~ msgid "module" -#~ msgstr "module" - -#~ msgid "re" -#~ msgstr "``re``" - -#~ msgid "* (asterisk)" -#~ msgstr "* (astérisque)" - -#~ msgid "[] (square brackets)" -#~ msgstr "[] (crochets)" - -#~ msgid "- (minus)" -#~ msgstr "- (moins)" - -#~ msgid "glob" -#~ msgstr "glob" diff --git a/library/fractions.po b/library/fractions.po deleted file mode 100644 index ce20f120f4..0000000000 --- a/library/fractions.po +++ /dev/null @@ -1,352 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-10-18 15:57+0200\n" -"Last-Translator: Loc Cosnier \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1)\n" -"X-Generator: Gtranslator 3.38.0\n" - -#: library/fractions.rst:2 -#, fuzzy -msgid ":mod:`!fractions` --- Rational numbers" -msgstr ":mod:`fractions` — Nombres rationnels" - -#: library/fractions.rst:7 -msgid "**Source code:** :source:`Lib/fractions.py`" -msgstr "**Code source :** :source:`Lib/fractions.py`" - -#: library/fractions.rst:11 -#, fuzzy -msgid "" -"The :mod:`!fractions` module provides support for rational number arithmetic." -msgstr "" -"Le module :mod:`fractions` fournit un support de l'arithmétique des nombres " -"rationnels." - -#: library/fractions.rst:14 -#, fuzzy -msgid "" -"A Fraction instance can be constructed from a pair of rational numbers, from " -"a single number, or from a string." -msgstr "" -"Une instance de *Fraction* peut être construite depuis une paire d'entiers, " -"depuis un autre nombre rationnel, ou depuis une chaîne de caractères." - -#: library/fractions.rst:23 -msgid "" -"The first version requires that *numerator* and *denominator* are instances " -"of :class:`numbers.Rational` and returns a new :class:`Fraction` instance " -"with a value equal to ``numerator/denominator``. If *denominator* is zero, " -"it raises a :exc:`ZeroDivisionError`." -msgstr "" - -#: library/fractions.rst:28 -#, fuzzy -msgid "" -"The second version requires that *number* is an instance " -"of :class:`numbers.Rational` or has the :meth:`!as_integer_ratio` method " -"(this includes :class:`float` and :class:`decimal.Decimal`). It returns " -"a :class:`Fraction` instance with exactly the same value. Assumed, that " -"the :meth:`!as_integer_ratio` method returns a pair of coprime integers and " -"last one is positive. Note that due to the usual issues with binary point " -"(see :ref:`tut-fp-issues`), the argument to ``Fraction(1.1)`` is not exactly " -"equal to 11/10, and so ``Fraction(1.1)`` does *not* return ``Fraction(11, " -"10)`` as one might expect. (But see the documentation for " -"the :meth:`limit_denominator` method below.)" -msgstr "" -"La première version demande que *numerator* et *denominator* soient des " -"instance de :class:`numbers.Rational` et renvoie une instance " -"de :class:`Fraction` valant ``numerator/denominator``. Si *denominator* " -"vaut :const:`0`, une :exc:`ZeroDivisionError` est levée. La seconde version " -"demande que *other_fraction* soit une instance de :class:`numbers.Rational` " -"et renvoie une instance de :class:`Fraction` avec la même valeur. Les deux " -"versions suivantes acceptent un :class:`float` ou une instance " -"de :class:`decimal.Decimal`, et renvoient une instance de :class:`Fraction` " -"avec exactement la même valeur. Notez que les problèmes usuels des virgules " -"flottantes binaires (voir :ref:`tut-fp-issues`) font que ``Fraction(1.1)`` " -"n'est pas exactement égal à 11/10, et donc ``Fraction(1.1)`` ne renvoie " -"*pas* ``Fraction(11, 10)`` comme on pourrait le penser. (Mais référez-vous à " -"la documentation de la méthode :meth:`limit_denominator` ci-dessous.) La " -"dernière version du constructeur attend une chaîne de caractères ou Unicode. " -"La représentation habituelle de cette forme est ::" - -#: library/fractions.rst:40 -msgid "" -"The last version of the constructor expects a string. The usual form for " -"this instance is::" -msgstr "" - -#: library/fractions.rst:45 -#, fuzzy -msgid "" -"where the optional ``sign`` may be either '+' or '-' and ``numerator`` and " -"``denominator`` (if present) are strings of decimal digits (underscores may " -"be used to delimit digits as with integral literals in code). In addition, " -"any string that represents a finite value and is accepted by " -"the :class:`float` constructor is also accepted by the :class:`Fraction` " -"constructor. In either form the input string may also have leading and/or " -"trailing whitespace. Here are some examples::" -msgstr "" -"où le ``sign`` optionnel peut être soit ``+`` soit ``-``, et ``numerator`` " -"et ``denominator`` (si présent) sont des chaînes de chiffres décimaux. De " -"plus, toute chaîne qui représente une valeur finie et acceptée par le " -"constructeur de :class:`float` est aussi acceptée par celui " -"de :class:`Fraction`. Dans ces deux formes, la chaîne d'entrée peut aussi " -"contenir des espaces en début ou en fin de chaîne. Voici quelques exemples ::" - -#: library/fractions.rst:80 -#, fuzzy -msgid "" -"The :class:`Fraction` class inherits from the abstract base " -"class :class:`numbers.Rational`, and implements all of the methods and " -"operations from that class. :class:`Fraction` instances " -"are :term:`hashable`, and should be treated as immutable. In " -"addition, :class:`Fraction` has the following properties and methods:" -msgstr "" -"La classe :class:`Fraction` hérite de la classe " -"abstraite :class:`numbers.Rational`, et implémente toutes les méthodes et " -"opérations de cette classe. Les instances de :class:`Fraction` sont " -"hachables, et doivent être traitées comme immuables. En plus de " -"cela, :class:`Fraction` possède les propriétés et méthodes suivantes :" - -#: library/fractions.rst:86 -msgid "" -"The :class:`Fraction` constructor now accepts :class:`float` " -"and :class:`decimal.Decimal` instances." -msgstr "" -"Le constructeur de :class:`Fraction` accepte maintenant des instances " -"de :class:`float` et :class:`decimal.Decimal`." - -#: library/fractions.rst:90 -#, fuzzy -msgid "" -"The :func:`math.gcd` function is now used to normalize the *numerator* and " -"*denominator*. :func:`math.gcd` always returns an :class:`int` type. " -"Previously, the GCD type depended on *numerator* and *denominator*." -msgstr "" -"La fonction :func:`math.gcd` est maintenant utilisée pour normaliser le " -"*numerator* et le *denominator*. :func:`math.gcd` renvoie toujours un " -"type :class:`int`. Auparavant, le type du PGCD dépendait du *numerator* et " -"du *denominator*." - -#: library/fractions.rst:95 -msgid "" -"Underscores are now permitted when creating a :class:`Fraction` instance " -"from a string, following :PEP:`515` rules." -msgstr "" - -#: library/fractions.rst:99 -msgid "" -":class:`Fraction` implements ``__int__`` now to satisfy " -"``typing.SupportsInt`` instance checks." -msgstr "" - -#: library/fractions.rst:103 -msgid "" -"Space is allowed around the slash for string inputs: ``Fraction('2 / 3')``." -msgstr "" - -#: library/fractions.rst:106 -msgid "" -":class:`Fraction` instances now support float-style formatting, with " -"presentation types ``\"e\"``, ``\"E\"``, ``\"f\"``, ``\"F\"``, ``\"g\"``, " -"``\"G\"`` and ``\"%\"\"``." -msgstr "" - -#: library/fractions.rst:111 -msgid "" -"Formatting of :class:`Fraction` instances without a presentation type now " -"supports fill, alignment, sign handling, minimum width and grouping." -msgstr "" - -#: library/fractions.rst:115 -#, fuzzy -msgid "" -"The :class:`Fraction` constructor now accepts any objects with the :meth:`!" -"as_integer_ratio` method." -msgstr "" -"Le constructeur de :class:`Fraction` accepte maintenant des instances " -"de :class:`float` et :class:`decimal.Decimal`." - -#: library/fractions.rst:121 -msgid "Numerator of the Fraction in lowest term." -msgstr "Numérateur de la fraction irréductible." - -#: library/fractions.rst:125 -#, fuzzy -msgid "Denominator of the Fraction in lowest terms. Guaranteed to be positive." -msgstr "Dénominateur de la fraction irréductible." - -#: library/fractions.rst:131 -#, fuzzy -msgid "" -"Return a tuple of two integers, whose ratio is equal to the original " -"Fraction. The ratio is in lowest terms and has a positive denominator." -msgstr "" -"Renvoie un *n*-uplet de deux entiers, dont le quotient est égal à la " -"fraction et dont le dénominateur est positif." - -#: library/fractions.rst:139 -msgid "Return ``True`` if the Fraction is an integer." -msgstr "" - -#: library/fractions.rst:145 -msgid "" -"Alternative constructor which only accepts instances of :class:`float` " -"or :class:`numbers.Integral`. Beware that ``Fraction.from_float(0.3)`` is " -"not the same value as ``Fraction(3, 10)``." -msgstr "" -"Ce constructeur alternatif accepte (uniquement) des nombres à virgule " -"flottante, de classe :class:`float`, ou plus généralement des instances " -"de :class:`numbers.Integral`. Attention, ``Fraction.from_float(0.3)`` est " -"différent de ``Fraction(3, 10)``." - -#: library/fractions.rst:151 -msgid "" -"From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " -"directly from a :class:`float`." -msgstr "" -"Depuis Python 3.2, vous pouvez aussi construire une instance " -"de :class:`Fraction` directement depuis un :class:`float`." - -#: library/fractions.rst:157 -msgid "" -"Alternative constructor which only accepts instances " -"of :class:`decimal.Decimal` or :class:`numbers.Integral`." -msgstr "" -"Ce constructeur alternatif accepte (uniquement) les instances " -"de :class:`decimal.Decimal` ou :class:`numbers.Integral`." - -#: library/fractions.rst:162 -msgid "" -"From Python 3.2 onwards, you can also construct a :class:`Fraction` instance " -"directly from a :class:`decimal.Decimal` instance." -msgstr "" -"Depuis Python 3.2, vous pouvez aussi construire une instance " -"de :class:`Fraction` directement depuis une instance " -"de :class:`decimal.Decimal`." - -#: library/fractions.rst:169 -msgid "" -"Alternative constructor which only accepts instances " -"of :class:`numbers.Integral`, :class:`numbers.Rational`, :class:`float` " -"or :class:`decimal.Decimal`, and objects with the :meth:`!as_integer_ratio` " -"method, but not strings." -msgstr "" - -#: library/fractions.rst:179 -msgid "" -"Finds and returns the closest :class:`Fraction` to ``self`` that has " -"denominator at most max_denominator. This method is useful for finding " -"rational approximations to a given floating-point number:" -msgstr "" -"Trouve et renvoie la :class:`Fraction` la plus proche de ``self`` qui a au " -"plus *max_denominator* comme dénominateur. Cette méthode est utile pour " -"trouver des approximations rationnelles de nombres flottants donnés :" - -#: library/fractions.rst:187 -msgid "or for recovering a rational number that's represented as a float:" -msgstr "ou pour retrouver un nombre rationnel représenté par un flottant :" - -#: library/fractions.rst:200 -msgid "" -"Returns the greatest :class:`int` ``<= self``. This method can also be " -"accessed through the :func:`math.floor` function:" -msgstr "" -"Renvoie le plus grand :class:`int` ``<= self``. Cette méthode peut aussi " -"être utilisée à travers la fonction :func:`math.floor` :" - -#: library/fractions.rst:210 -msgid "" -"Returns the least :class:`int` ``>= self``. This method can also be " -"accessed through the :func:`math.ceil` function." -msgstr "" -"Renvoie le plus petit :class:`int` ``>= self``. Cette méthode peut aussi " -"être utilisée à travers la fonction :func:`math.ceil`." - -#: library/fractions.rst:217 -msgid "" -"The first version returns the nearest :class:`int` to ``self``, rounding " -"half to even. The second version rounds ``self`` to the nearest multiple of " -"``Fraction(1, 10**ndigits)`` (logically, if ``ndigits`` is negative), again " -"rounding half toward even. This method can also be accessed through " -"the :func:`round` function." -msgstr "" -"La première version renvoie l':class:`int` le plus proche de ``self``, " -"arrondissant les demis au nombre pair le plus proche. La seconde version " -"arrondit ``self`` au plus proche multiple de ``Fraction(1, 10**ndigits)`` " -"(logiquement, si ``ndigits`` est négatif), arrondissant toujours les demis " -"au nombre pair le plus proche. Cette méthode peut aussi être utilisée à via " -"la fonction :func:`round`." - -#: library/fractions.rst:225 -msgid "" -"Provides support for formatting of :class:`Fraction` instances via " -"the :meth:`str.format` method, the :func:`format` built-in function, " -"or :ref:`Formatted string literals `." -msgstr "" - -#: library/fractions.rst:229 -msgid "" -"If the ``format_spec`` format specification string does not end with one of " -"the presentation types ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, ``'G'`` " -"or ``'%'`` then formatting follows the general rules for fill, alignment, " -"sign handling, minimum width, and grouping as described in the :ref:`format " -"specification mini-language `. The \"alternate form\" flag " -"``'#'`` is supported: if present, it forces the output string to always " -"include an explicit denominator, even when the value being formatted is an " -"exact integer. The zero-fill flag ``'0'`` is not supported." -msgstr "" - -#: library/fractions.rst:239 -msgid "" -"If the ``format_spec`` format specification string ends with one of the " -"presentation types ``'e'``, ``'E'``, ``'f'``, ``'F'``, ``'g'``, ``'G'`` or " -"``'%'`` then formatting follows the rules outlined for the :class:`float` " -"type in the :ref:`formatspec` section." -msgstr "" - -#: library/fractions.rst:244 -msgid "Here are some examples::" -msgstr "Voici quelques exemples ::" - -#: library/fractions.rst:268 -msgid "Module :mod:`numbers`" -msgstr "Module :mod:`numbers`" - -#: library/fractions.rst:269 -msgid "The abstract base classes making up the numeric tower." -msgstr "Les classes abstraites représentant la hiérarchie des nombres." - -#~ msgid "" -#~ "This class method constructs a :class:`Fraction` representing the exact " -#~ "value of *dec*, which must be a :class:`decimal.Decimal` instance." -#~ msgstr "" -#~ "Cette méthode de classe construit un objet :class:`Fraction` représentant " -#~ "la valeur exacte de *dec*, qui doit être de type :class:`decimal.Decimal`." - -#~ msgid "" -#~ "Return the greatest common divisor of the integers *a* and *b*. If " -#~ "either *a* or *b* is nonzero, then the absolute value of ``gcd(a, b)`` is " -#~ "the largest integer that divides both *a* and *b*. ``gcd(a,b)`` has the " -#~ "same sign as *b* if *b* is nonzero; otherwise it takes the sign of *a*. " -#~ "``gcd(0, 0)`` returns ``0``." -#~ msgstr "" -#~ "Renvoie le plus grand diviseur commun (PGCD) des entiers *a* et *b*. Si " -#~ "*a* et *b* sont tous deux non nuls, alors la valeur absolue de ``gcd(a, " -#~ "b)`` est le plus grand entier qui divise à la fois *a* et *b*. " -#~ "``gcd(a,b)`` a le même signe que *b* si *b* n'est pas nul ; autrement il " -#~ "prend le signe de *a*. ``gcd(0, 0)`` renvoie ``0``." - -#~ msgid "Use :func:`math.gcd` instead." -#~ msgstr "Utilisez plutôt :func:`math.gcd`." diff --git a/library/frameworks.po b/library/frameworks.po deleted file mode 100644 index 7a30d61e50..0000000000 --- a/library/frameworks.po +++ /dev/null @@ -1,51 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: 2017-11-07 22:57+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/frameworks.rst:7 -#, fuzzy -msgid "Program frameworks" -msgstr "Cadriciels d'applications" - -#: library/frameworks.rst:9 -msgid "" -"This chapter is no longer maintained, and the modules it contained have been " -"moved to their respective topical documentation." -msgstr "" - -#: library/frameworks.rst:11 -msgid ":mod:`cmd` — :doc:`Command Line Interface Libraries <./cmdlinelibs>`" -msgstr "" - -#: library/frameworks.rst:12 -msgid ":mod:`shlex` — :doc:`Unix Specific Services <./unix>`" -msgstr "" - -#: library/frameworks.rst:13 -msgid ":mod:`turtle` — :doc:`Graphical User Interfaces with Tk <./tk>`" -msgstr "" - -#~ msgid "" -#~ "The modules described in this chapter are frameworks that will largely " -#~ "dictate the structure of your program. Currently the modules described " -#~ "here are all oriented toward writing command-line interfaces." -#~ msgstr "" -#~ "Les modules décrits dans ce chapitre sont des cadriciels (*frameworks*, " -#~ "en anglais) qui encadreront la structure de vos programmes. Actuellement " -#~ "tous les modules décrits ici sont destinés à écrire des interfaces en " -#~ "ligne de commande." - -#~ msgid "The full list of modules described in this chapter is:" -#~ msgstr "La liste complète des modules décrits dans ce chapitre est :" diff --git a/library/ftplib.po b/library/ftplib.po deleted file mode 100644 index 29de1a5b3d..0000000000 --- a/library/ftplib.po +++ /dev/null @@ -1,597 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2023-04-09 16:01+0200\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.0.1\n" - -#: library/ftplib.rst:2 -#, fuzzy -msgid ":mod:`!ftplib` --- FTP protocol client" -msgstr ":mod:`ftplib` — Le protocole client FTP" - -#: library/ftplib.rst:7 -msgid "**Source code:** :source:`Lib/ftplib.py`" -msgstr "**Code source :** :source:`Lib/ftplib.py`" - -#: library/ftplib.rst:15 -msgid "" -"This module defines the class :class:`FTP` and a few related items. " -"The :class:`FTP` class implements the client side of the FTP protocol. You " -"can use this to write Python programs that perform a variety of automated " -"FTP jobs, such as mirroring other FTP servers. It is also used by the " -"module :mod:`urllib.request` to handle URLs that use FTP. For more " -"information on FTP (File Transfer Protocol), see internet :rfc:`959`." -msgstr "" -"Ce module définit la classe :class:`FTP` et quelques éléments associés. La " -"classe :class:`FTP` implémente le côté client du protocole FTP. Vous pouvez " -"l'utiliser pour écrire des programmes Python qui effectuent diverses tâches " -"automatisées telles que la synchronisation d'autres serveurs FTP. Il est " -"aussi utilisé par le module :mod:`urllib.request` pour gérer les URL qui " -"utilisent FTP. Pour plus d'informations sur FTP (File Transfer Protocol), " -"voir la :rfc:`959`." - -#: library/ftplib.rst:22 -msgid "The default encoding is UTF-8, following :rfc:`2640`." -msgstr "L'encodage par défaut est UTF-8, voir la :rfc:`2640`." - -#: includes/wasm-notavail.rst:3 -msgid "Availability" -msgstr "Disponibilité" - -#: includes/wasm-notavail.rst:5 -msgid "" -"This module does not work or is not available on WebAssembly. See :ref:`wasm-" -"availability` for more information." -msgstr "" - -#: library/ftplib.rst:26 -#, fuzzy -msgid "Here's a sample session using the :mod:`!ftplib` module::" -msgstr "Voici un exemple de session utilisant le module :mod:`ftplib` ::" - -#: library/ftplib.rst:51 -msgid "Reference" -msgstr "Référence" - -#: library/ftplib.rst:56 -msgid "FTP objects" -msgstr "" - -#: library/ftplib.rst:87 -#, fuzzy -msgid "Return a new instance of the :class:`FTP` class." -msgstr "Voici un exemple de session utilisant la classe :class:`FTP_TLS` ::" - -#: library/ftplib.rst:0 -msgid "Parameters" -msgstr "Paramètres" - -#: library/ftplib.rst:461 -msgid "" -"The hostname to connect to. If given, :code:`connect(host)` is implicitly " -"called by the constructor." -msgstr "" - -#: library/ftplib.rst:465 -msgid "" -"|param_doc_user| If given, :code:`login(host, passwd, acct)` is implicitly " -"called by the constructor." -msgstr "" - -#: library/ftplib.rst:212 library/ftplib.rst:470 -msgid "|param_doc_passwd|" -msgstr "" - -#: library/ftplib.rst:215 library/ftplib.rst:473 -msgid "|param_doc_acct|" -msgstr "" - -#: library/ftplib.rst:104 -msgid "" -"A timeout in seconds for blocking operations like :meth:`connect` (default: " -"the global default timeout setting)." -msgstr "" - -#: library/ftplib.rst:183 library/ftplib.rst:488 -msgid "|param_doc_source_address|" -msgstr "" - -#: library/ftplib.rst:492 -msgid "|param_doc_encoding|" -msgstr "" - -#: library/ftplib.rst:116 -msgid "The :class:`FTP` class supports the :keyword:`with` statement, e.g.:" -msgstr "" -"La classe :class:`FTP` peut s'utiliser avec l'instruction :keyword:`with`, " -"p. ex. :" - -#: library/ftplib.rst:130 -msgid "Support for the :keyword:`with` statement was added." -msgstr "La prise en charge de l'instruction :keyword:`with` a été ajoutée." - -#: library/ftplib.rst:189 -msgid "*source_address* parameter was added." -msgstr "" - -#: library/ftplib.rst:505 -msgid "" -"If the *timeout* parameter is set to be zero, it will raise " -"a :class:`ValueError` to prevent the creation of a non-blocking socket. The " -"*encoding* parameter was added, and the default was changed from Latin-1 to " -"UTF-8 to follow :rfc:`2640`." -msgstr "" - -#: library/ftplib.rst:142 -msgid "" -"Several :class:`!FTP` methods are available in two flavors: one for handling " -"text files and another for binary files. The methods are named for the " -"command which is used followed by ``lines`` for the text version or " -"``binary`` for the binary version." -msgstr "" - -#: library/ftplib.rst:147 -msgid ":class:`FTP` instances have the following methods:" -msgstr "" -"Les instances de la classe :class:`FTP` possèdent les méthodes suivantes :" - -#: library/ftplib.rst:151 -msgid "" -"Set the instance's debugging level as an :class:`int`. This controls the " -"amount of debugging output printed. The debug levels are:" -msgstr "" - -#: library/ftplib.rst:155 -msgid "``0`` (default): No debug output." -msgstr "" - -#: library/ftplib.rst:156 -msgid "" -"``1``: Produce a moderate amount of debug output, generally a single line " -"per request." -msgstr "" - -#: library/ftplib.rst:158 -msgid "" -"``2`` or higher: Produce the maximum amount of debugging output, logging " -"each line sent and received on the control connection." -msgstr "" - -#: library/ftplib.rst:163 -msgid "" -"Connect to the given host and port. This function should be called only once " -"for each instance; it should not be called if a *host* argument was given " -"when the :class:`FTP` instance was created. All other :class:`!FTP` methods " -"can only be called after a connection has successfully been made." -msgstr "" - -#: library/ftplib.rst:170 -msgid "The host to connect to." -msgstr "" - -#: library/ftplib.rst:173 -msgid "" -"The TCP port to connect to (default: ``21``, as specified by the FTP " -"protocol specification). It is rarely needed to specify a different port " -"number." -msgstr "" - -#: library/ftplib.rst:178 -msgid "" -"A timeout in seconds for the connection attempt (default: the global default " -"timeout setting)." -msgstr "" - -#: library/ftplib.rst:187 -msgid "" -"Raises an :ref:`auditing event ` ``ftplib.connect`` with arguments " -"``self``, ``host``, ``port``." -msgstr "" - -#: library/ftplib.rst:195 -msgid "" -"Return the welcome message sent by the server in reply to the initial " -"connection. (This message sometimes contains disclaimers or help " -"information that may be relevant to the user.)" -msgstr "" - -#: library/ftplib.rst:202 -msgid "" -"Log on to the connected FTP server. This function should be called only once " -"for each instance, after a connection has been established; it should not be " -"called if the *host* and *user* arguments were given when the :class:`FTP` " -"instance was created. Most FTP commands are only allowed after the client " -"has logged in." -msgstr "" - -#: library/ftplib.rst:209 -msgid "|param_doc_user|" -msgstr "" - -#: library/ftplib.rst:221 -msgid "" -"Abort a file transfer that is in progress. Using this does not always work, " -"but it's worth a try." -msgstr "" - -#: library/ftplib.rst:227 -msgid "" -"Send a simple command string to the server and return the response string." -msgstr "" - -#: library/ftplib.rst:238 -msgid "" -"Raises an :ref:`auditing event ` ``ftplib.sendcmd`` with arguments " -"``self``, ``cmd``." -msgstr "" - -#: library/ftplib.rst:234 -msgid "" -"Send a simple command string to the server and handle the response. Return " -"the response string if the response code corresponds to success (codes in " -"the range 200--299). Raise :exc:`error_reply` otherwise." -msgstr "" - -#: library/ftplib.rst:243 -msgid "Retrieve a file in binary transfer mode." -msgstr "" - -#: library/ftplib.rst:245 -msgid "An appropriate ``RETR`` command: :samp:`\"RETR {filename}\"`." -msgstr "" - -#: library/ftplib.rst:248 -msgid "" -"A single parameter callable that is called for each block of data received, " -"with its single argument being the data as :class:`bytes`." -msgstr "" - -#: library/ftplib.rst:254 -msgid "" -"The maximum chunk size to read on the low-level :class:`~socket.socket` " -"object created to do the actual transfer. This also corresponds to the " -"largest size of data that will be passed to *callback*. Defaults to ``8192``." -msgstr "" - -#: library/ftplib.rst:308 -msgid "" -"A ``REST`` command to be sent to the server. See the documentation for the " -"*rest* parameter of the :meth:`transfercmd` method." -msgstr "" - -#: library/ftplib.rst:268 -msgid "" -"Retrieve a file or directory listing in the encoding specified by the " -"*encoding* parameter at initialization. *cmd* should be an appropriate " -"``RETR`` command (see :meth:`retrbinary`) or a command such as ``LIST`` or " -"``NLST`` (usually just the string ``'LIST'``). ``LIST`` retrieves a list of " -"files and information about those files. ``NLST`` retrieves a list of file " -"names. The *callback* function is called for each line with a string " -"argument containing the line with the trailing CRLF stripped. The default " -"*callback* prints the line to :data:`sys.stdout`." -msgstr "" - -#: library/ftplib.rst:281 -msgid "" -"Enable \"passive\" mode if *val* is true, otherwise disable passive mode. " -"Passive mode is on by default." -msgstr "" - -#: library/ftplib.rst:287 -msgid "Store a file in binary transfer mode." -msgstr "" - -#: library/ftplib.rst:289 -msgid "An appropriate ``STOR`` command: :samp:`\"STOR {filename}\"`." -msgstr "" - -#: library/ftplib.rst:292 -msgid "" -"A file object (opened in binary mode) which is read until EOF, using " -"its :meth:`~io.RawIOBase.read` method in blocks of size *blocksize* to " -"provide the data to be stored." -msgstr "" - -#: library/ftplib.rst:298 -msgid "The read block size. Defaults to ``8192``." -msgstr "" - -#: library/ftplib.rst:302 -msgid "" -"A single parameter callable that is called for each block of data sent, with " -"its single argument being the data as :class:`bytes`." -msgstr "" - -#: library/ftplib.rst:312 -msgid "The *rest* parameter was added." -msgstr "" - -#: library/ftplib.rst:318 -msgid "" -"Store a file in line mode. *cmd* should be an appropriate ``STOR`` command " -"(see :meth:`storbinary`). Lines are read until EOF from the :term:`file " -"object` *fp* (opened in binary mode) using its :meth:`~io.IOBase.readline` " -"method to provide the data to be stored. *callback* is an optional single " -"parameter callable that is called on each line after it is sent." -msgstr "" - -#: library/ftplib.rst:327 -msgid "" -"Initiate a transfer over the data connection. If the transfer is active, " -"send an ``EPRT`` or ``PORT`` command and the transfer command specified by " -"*cmd*, and accept the connection. If the server is passive, send an " -"``EPSV`` or ``PASV`` command, connect to it, and start the transfer " -"command. Either way, return the socket for the connection." -msgstr "" - -#: library/ftplib.rst:333 -msgid "" -"If optional *rest* is given, a ``REST`` command is sent to the server, " -"passing *rest* as an argument. *rest* is usually a byte offset into the " -"requested file, telling the server to restart sending the file's bytes at " -"the requested offset, skipping over the initial bytes. Note however that " -"the :meth:`transfercmd` method converts *rest* to a string with the " -"*encoding* parameter specified at initialization, but no check is performed " -"on the string's contents. If the server does not recognize the ``REST`` " -"command, an :exc:`error_reply` exception will be raised. If this happens, " -"simply call :meth:`transfercmd` without a *rest* argument." -msgstr "" - -#: library/ftplib.rst:346 -msgid "" -"Like :meth:`transfercmd`, but returns a tuple of the data connection and the " -"expected size of the data. If the expected size could not be computed, " -"``None`` will be returned as the expected size. *cmd* and *rest* means the " -"same thing as in :meth:`transfercmd`." -msgstr "" - -#: library/ftplib.rst:354 -msgid "" -"List a directory in a standardized format by using ``MLSD`` command " -"(:rfc:`3659`). If *path* is omitted the current directory is assumed. " -"*facts* is a list of strings representing the type of information desired " -"(e.g. ``[\"type\", \"size\", \"perm\"]``). Return a generator object " -"yielding a tuple of two elements for every file found in path. First " -"element is the file name, the second one is a dictionary containing facts " -"about the file name. Content of this dictionary might be limited by the " -"*facts* argument but server is not guaranteed to return all requested facts." -msgstr "" - -#: library/ftplib.rst:368 -msgid "" -"Return a list of file names as returned by the ``NLST`` command. The " -"optional *argument* is a directory to list (default is the current server " -"directory). Multiple arguments can be used to pass non-standard options to " -"the ``NLST`` command." -msgstr "" -"Renvoie une liste de noms de fichiers comme celle que renvoie la commande " -"``NLST``. Le paramètre optionnel *argument* est une liste de dossiers (la " -"valeur par défaut est le répertoire courant du serveur). Plusieurs " -"paramètres peuvent être utilisés pour passer des paramètres non standards à " -"la commande ``NLST``." - -#: library/ftplib.rst:385 -msgid "If your server supports the command, :meth:`mlsd` offers a better API." -msgstr "" -"La commande :meth:`mlsd` offre une meilleure API si votre serveur sait la " -"gérer." - -#: library/ftplib.rst:378 -#, fuzzy -msgid "" -"Produce a directory listing as returned by the ``LIST`` command, printing it " -"to standard output. The optional *argument* is a directory to list (default " -"is the current server directory). Multiple arguments can be used to pass " -"non-standard options to the ``LIST`` command. If the last argument is a " -"function, it is used as a *callback* function as for :meth:`retrlines`; the " -"default prints to :data:`sys.stdout`. This method returns ``None``." -msgstr "" -"Renvoie une liste de noms de fichiers comme celle que renvoie la commande " -"``NLST``. Le paramètre optionnel *argument* est une liste de dossiers (la " -"valeur par défaut est le répertoire courant du serveur). Plusieurs " -"paramètres peuvent être utilisés pour passer des paramètres non standards à " -"la commande ``NLST``." - -#: library/ftplib.rst:390 -msgid "Rename file *fromname* on the server to *toname*." -msgstr "" -"Renomme le fichier portant le nom *fromname* en *toname* sur le serveur." - -#: library/ftplib.rst:395 -msgid "" -"Remove the file named *filename* from the server. If successful, returns " -"the text of the response, otherwise raises :exc:`error_perm` on permission " -"errors or :exc:`error_reply` on other errors." -msgstr "" - -#: library/ftplib.rst:402 -msgid "Set the current directory on the server." -msgstr "" - -#: library/ftplib.rst:407 -msgid "Create a new directory on the server." -msgstr "Crée un nouveau dossier sur le serveur." - -#: library/ftplib.rst:412 -msgid "Return the pathname of the current directory on the server." -msgstr "Renvoie le chemin d'accès au répertoire courant sur le serveur." - -#: library/ftplib.rst:417 -msgid "Remove the directory named *dirname* on the server." -msgstr "Supprime le dossier portant le nom *dirname* sur le serveur." - -#: library/ftplib.rst:422 -msgid "" -"Request the size of the file named *filename* on the server. On success, " -"the size of the file is returned as an integer, otherwise ``None`` is " -"returned. Note that the ``SIZE`` command is not standardized, but is " -"supported by many common server implementations." -msgstr "" - -#: library/ftplib.rst:430 -msgid "" -"Send a ``QUIT`` command to the server and close the connection. This is the " -"\"polite\" way to close a connection, but it may raise an exception if the " -"server responds with an error to the ``QUIT`` command. This implies a call " -"to the :meth:`close` method which renders the :class:`FTP` instance useless " -"for subsequent calls (see below)." -msgstr "" - -#: library/ftplib.rst:439 -msgid "" -"Close the connection unilaterally. This should not be applied to an already " -"closed connection such as after a successful call to :meth:`~FTP.quit`. " -"After this call the :class:`FTP` instance should not be used any more (after " -"a call to :meth:`close` or :meth:`~FTP.quit` you cannot reopen the " -"connection by issuing another :meth:`login` method)." -msgstr "" - -#: library/ftplib.rst:447 -msgid "FTP_TLS objects" -msgstr "" - -#: library/ftplib.rst:452 -msgid "" -"An :class:`FTP` subclass which adds TLS support to FTP as described " -"in :rfc:`4217`. Connect to port 21 implicitly securing the FTP control " -"connection before authenticating." -msgstr "" - -#: library/ftplib.rst:458 -msgid "" -"The user must explicitly secure the data connection by calling " -"the :meth:`prot_p` method." -msgstr "" - -#: library/ftplib.rst:476 -msgid "" -"An SSL context object which allows bundling SSL configuration options, " -"certificates and private keys into a single, potentially long-lived, " -"structure. Please read :ref:`ssl-security` for best practices." -msgstr "" - -#: library/ftplib.rst:483 -msgid "" -"A timeout in seconds for blocking operations like :meth:`~FTP.connect` " -"(default: the global default timeout setting)." -msgstr "" - -#: library/ftplib.rst:497 -msgid "Added the *source_address* parameter." -msgstr "" - -#: library/ftplib.rst:500 -msgid "" -"The class now supports hostname check " -"with :attr:`ssl.SSLContext.check_hostname` and *Server Name Indication* " -"(see :const:`ssl.HAS_SNI`)." -msgstr "" - -#: library/ftplib.rst:511 -msgid "The deprecated *keyfile* and *certfile* parameters have been removed." -msgstr "" - -#: library/ftplib.rst:514 -msgid "Here's a sample session using the :class:`FTP_TLS` class::" -msgstr "Voici un exemple de session utilisant la classe :class:`FTP_TLS` ::" - -#: library/ftplib.rst:524 -msgid "" -":class:`!FTP_TLS` class inherits from :class:`FTP`, defining these " -"additional methods and attributes:" -msgstr "" - -#: library/ftplib.rst:529 -#, fuzzy -msgid "Set up a secure control connection by using TLS." -msgstr "Établit une connexion de données sécurisée." - -#: library/ftplib.rst:531 -msgid "" -"The method now supports hostname check " -"with :attr:`ssl.SSLContext.check_hostname` and *Server Name Indication* " -"(see :const:`ssl.HAS_SNI`)." -msgstr "" - -#: library/ftplib.rst:538 -msgid "" -"Revert control channel back to plaintext. This can be useful to take " -"advantage of firewalls that know how to handle NAT with non-secure FTP " -"without opening fixed ports." -msgstr "" - -#: library/ftplib.rst:546 -#, fuzzy -msgid "Set up secure data connection by using TLS." -msgstr "Établit une connexion de données sécurisée." - -#: library/ftplib.rst:550 -msgid "Set up clear text data connection." -msgstr "Établit une connexion de données non sécurisées." - -#: library/ftplib.rst:554 -msgid "Module variables" -msgstr "" - -#: library/ftplib.rst:558 -msgid "Exception raised when an unexpected reply is received from the server." -msgstr "Exception levée lorsqu'une réponse inattendue est reçue du serveur." - -#: library/ftplib.rst:563 -msgid "" -"Exception raised when an error code signifying a temporary error (response " -"codes in the range 400--499) is received." -msgstr "" -"Exception levée lorsqu'un code d'erreur signifiant une erreur temporaire " -"(code de réponse dans l'intervalle 400-499) est reçu." - -#: library/ftplib.rst:569 -msgid "" -"Exception raised when an error code signifying a permanent error (response " -"codes in the range 500--599) is received." -msgstr "" -"Exception levée lorsqu'un code d'erreur signifiant une erreur permanente " -"(code de réponse dans l'intervalle 500-599) est reçu." - -#: library/ftplib.rst:575 -msgid "" -"Exception raised when a reply is received from the server that does not fit " -"the response specifications of the File Transfer Protocol, i.e. begin with a " -"digit in the range 1--5." -msgstr "" -"Exception levée lorsqu'une réponse reçue du serveur ne correspond pas aux à " -"la spécification de File Transfer Protocol, c.-à-d. qu'elle doit commencer " -"par un chiffre dans l'intervalle 1-5." - -#: library/ftplib.rst:582 -msgid "" -"The set of all exceptions (as a tuple) that methods of :class:`FTP` " -"instances may raise as a result of problems with the FTP connection (as " -"opposed to programming errors made by the caller). This set includes the " -"four exceptions listed above as well as :exc:`OSError` and :exc:`EOFError`." -msgstr "" - -#: library/ftplib.rst:590 -msgid "Module :mod:`netrc`" -msgstr "" - -#: library/ftplib.rst:591 -msgid "" -"Parser for the :file:`.netrc` file format. The file :file:`.netrc` is " -"typically used by FTP clients to load user authentication information before " -"prompting the user." -msgstr "" - -#~ msgid "The module defines the following items:" -#~ msgstr "Le module définit les éléments suivants :" diff --git a/library/functional.po b/library/functional.po deleted file mode 100644 index 617de83bbb..0000000000 --- a/library/functional.po +++ /dev/null @@ -1,32 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -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-02-15 00:43+0100\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" - -#: library/functional.rst:3 -msgid "Functional Programming Modules" -msgstr "Modules de programmation fonctionnelle" - -#: library/functional.rst:5 -msgid "" -"The modules described in this chapter provide functions and classes that " -"support a functional programming style, and general operations on callables." -msgstr "" -"Les modules décrits dans ce chapitre fournissent des fonctions et des " -"classes permettant d'adopter un style fonctionnel, ainsi que des " -"manipulations sur des appelables." - -#: library/functional.rst:8 -msgid "The following modules are documented in this chapter:" -msgstr "Les modules suivants sont documentés dans ce chapitre :" diff --git a/library/functions.po b/library/functions.po deleted file mode 100644 index 3cae274143..0000000000 --- a/library/functions.po +++ /dev/null @@ -1,4506 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2024-11-03 21:36+0100\n" -"Last-Translator: Édith Viau \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"Plural-Forms: nplurals=2; plural=(n > 1);\n" -"X-Generator: Poedit 3.0.1\n" - -#: library/functions.rst:11 -msgid "Built-in Functions" -msgstr "Fonctions natives" - -#: library/functions.rst:7 -msgid "" -"The Python interpreter has a number of functions and types built into it " -"that are always available. They are listed here in alphabetical order." -msgstr "" -"L'interpréteur Python propose quelques fonctions et types natifs qui sont " -"toujours disponibles. Ils sont listés ici par ordre alphabétique." - -#: library/functions.rst:13 -msgid "**A**" -msgstr "**A**" - -#: library/functions.rst:14 -msgid ":func:`abs`" -msgstr ":func:`abs`" - -#: library/functions.rst:15 -msgid ":func:`aiter`" -msgstr ":func:`aiter`" - -#: library/functions.rst:16 -msgid ":func:`all`" -msgstr ":func:`all`" - -#: library/functions.rst:17 -msgid ":func:`anext`" -msgstr ":func:`anext`" - -#: library/functions.rst:18 -msgid ":func:`any`" -msgstr ":func:`any`" - -#: library/functions.rst:19 -msgid ":func:`ascii`" -msgstr ":func:`ascii`" - -#: library/functions.rst:21 -msgid "**B**" -msgstr "**B**" - -#: library/functions.rst:22 -msgid ":func:`bin`" -msgstr ":func:`bin`" - -#: library/functions.rst:23 -msgid ":func:`bool`" -msgstr ":func:`bool`" - -#: library/functions.rst:24 -msgid ":func:`breakpoint`" -msgstr ":func:`breakpoint`" - -#: library/functions.rst:25 -msgid "|func-bytearray|_" -msgstr "|func-bytearray|_" - -#: library/functions.rst:26 -msgid "|func-bytes|_" -msgstr "|func-bytes|_" - -#: library/functions.rst:28 -msgid "**C**" -msgstr "**C**" - -#: library/functions.rst:29 -msgid ":func:`callable`" -msgstr ":func:`callable`" - -#: library/functions.rst:30 -msgid ":func:`chr`" -msgstr ":func:`chr`" - -#: library/functions.rst:31 -msgid ":func:`classmethod`" -msgstr ":func:`classmethod`" - -#: library/functions.rst:32 -msgid ":func:`compile`" -msgstr ":func:`compile`" - -#: library/functions.rst:33 -msgid ":func:`complex`" -msgstr ":func:`complex`" - -#: library/functions.rst:35 -msgid "**D**" -msgstr "**D**" - -#: library/functions.rst:36 -msgid ":func:`delattr`" -msgstr ":func:`delattr`" - -#: library/functions.rst:37 -msgid "|func-dict|_" -msgstr "|func-dict|_" - -#: library/functions.rst:38 -msgid ":func:`dir`" -msgstr ":func:`dir`" - -#: library/functions.rst:39 -msgid ":func:`divmod`" -msgstr ":func:`divmod`" - -#: library/functions.rst:13 -msgid "**E**" -msgstr "**E**" - -#: library/functions.rst:14 -msgid ":func:`enumerate`" -msgstr ":func:`enumerate`" - -#: library/functions.rst:15 -msgid ":func:`eval`" -msgstr ":func:`eval`" - -#: library/functions.rst:16 -msgid ":func:`exec`" -msgstr ":func:`exec`" - -#: library/functions.rst:18 -msgid "**F**" -msgstr "**F**" - -#: library/functions.rst:19 -msgid ":func:`filter`" -msgstr ":func:`filter`" - -#: library/functions.rst:20 -msgid ":func:`float`" -msgstr ":func:`float`" - -#: library/functions.rst:21 -msgid ":func:`format`" -msgstr ":func:`format`" - -#: library/functions.rst:22 -#, fuzzy -msgid "|func-frozendict|_" -msgstr "|func-frozenset|_" - -#: library/functions.rst:23 -msgid "|func-frozenset|_" -msgstr "|func-frozenset|_" - -#: library/functions.rst:25 -msgid "**G**" -msgstr "**G**" - -#: library/functions.rst:26 -msgid ":func:`getattr`" -msgstr ":func:`getattr`" - -#: library/functions.rst:27 -msgid ":func:`globals`" -msgstr ":func:`globals`" - -#: library/functions.rst:29 -msgid "**H**" -msgstr "**H**" - -#: library/functions.rst:30 -msgid ":func:`hasattr`" -msgstr ":func:`hasattr`" - -#: library/functions.rst:31 -msgid ":func:`hash`" -msgstr ":func:`hash`" - -#: library/functions.rst:32 -msgid ":func:`help`" -msgstr ":func:`help`" - -#: library/functions.rst:33 -msgid ":func:`hex`" -msgstr ":func:`hex`" - -#: library/functions.rst:35 -msgid "**I**" -msgstr "**I**" - -#: library/functions.rst:36 -msgid ":func:`id`" -msgstr ":func:`id`" - -#: library/functions.rst:37 -msgid ":func:`input`" -msgstr ":func:`input`" - -#: library/functions.rst:38 -msgid ":func:`int`" -msgstr ":func:`int`" - -#: library/functions.rst:39 -msgid ":func:`isinstance`" -msgstr ":func:`isinstance`" - -#: library/functions.rst:40 -msgid ":func:`issubclass`" -msgstr ":func:`issubclass`" - -#: library/functions.rst:41 -msgid ":func:`iter`" -msgstr ":func:`iter`" - -#: library/functions.rst:13 -msgid "**L**" -msgstr "**L**" - -#: library/functions.rst:14 -msgid ":func:`len`" -msgstr ":func:`len`" - -#: library/functions.rst:15 -msgid "|func-list|_" -msgstr "|func-list|_" - -#: library/functions.rst:16 -msgid ":func:`locals`" -msgstr ":func:`locals`" - -#: library/functions.rst:18 -msgid "**M**" -msgstr "**M**" - -#: library/functions.rst:19 -msgid ":func:`map`" -msgstr ":func:`map`" - -#: library/functions.rst:20 -msgid ":func:`max`" -msgstr ":func:`max`" - -#: library/functions.rst:21 -msgid "|func-memoryview|_" -msgstr "|func-memoryview|_" - -#: library/functions.rst:22 -msgid ":func:`min`" -msgstr ":func:`min`" - -#: library/functions.rst:24 -msgid "**N**" -msgstr "**N**" - -#: library/functions.rst:25 -msgid ":func:`next`" -msgstr ":func:`next`" - -#: library/functions.rst:27 -msgid "**O**" -msgstr "**O**" - -#: library/functions.rst:28 -msgid ":func:`object`" -msgstr ":func:`object`" - -#: library/functions.rst:29 -msgid ":func:`oct`" -msgstr ":func:`oct`" - -#: library/functions.rst:30 -msgid ":func:`open`" -msgstr ":func:`open`" - -#: library/functions.rst:31 -msgid ":func:`ord`" -msgstr ":func:`ord`" - -#: library/functions.rst:33 -msgid "**P**" -msgstr "**P**" - -#: library/functions.rst:34 -msgid ":func:`pow`" -msgstr ":func:`pow`" - -#: library/functions.rst:35 -msgid ":func:`print`" -msgstr ":func:`print`" - -#: library/functions.rst:36 -msgid ":func:`property`" -msgstr ":func:`property`" - -#: library/functions.rst:13 -msgid "**R**" -msgstr "**R**" - -#: library/functions.rst:14 -msgid "|func-range|_" -msgstr "|func-range|_" - -#: library/functions.rst:15 -msgid ":func:`repr`" -msgstr ":func:`repr`" - -#: library/functions.rst:16 -msgid ":func:`reversed`" -msgstr ":func:`reversed`" - -#: library/functions.rst:17 -msgid ":func:`round`" -msgstr ":func:`round`" - -#: library/functions.rst:19 -msgid "**S**" -msgstr "**S**" - -#: library/functions.rst:20 -msgid "|func-set|_" -msgstr "|func-set|_" - -#: library/functions.rst:21 -msgid ":func:`setattr`" -msgstr ":func:`setattr`" - -#: library/functions.rst:22 -#, fuzzy -msgid ":func:`sentinel`" -msgstr ":func:`isinstance`" - -#: library/functions.rst:23 -msgid ":func:`slice`" -msgstr ":func:`slice`" - -#: library/functions.rst:24 -msgid ":func:`sorted`" -msgstr ":func:`sorted`" - -#: library/functions.rst:25 -msgid ":func:`staticmethod`" -msgstr ":func:`staticmethod`" - -#: library/functions.rst:26 -msgid "|func-str|_" -msgstr "|func-str|_" - -#: library/functions.rst:27 -msgid ":func:`sum`" -msgstr ":func:`sum`" - -#: library/functions.rst:28 -msgid ":func:`super`" -msgstr ":func:`super`" - -#: library/functions.rst:30 -msgid "**T**" -msgstr "**T**" - -#: library/functions.rst:31 -msgid "|func-tuple|_" -msgstr "|func-tuple|_" - -#: library/functions.rst:32 -msgid ":func:`type`" -msgstr ":func:`type`" - -#: library/functions.rst:34 -msgid "**V**" -msgstr "**V**" - -#: library/functions.rst:35 -msgid ":func:`vars`" -msgstr ":func:`vars`" - -#: library/functions.rst:37 -msgid "**Z**" -msgstr "**Z**" - -#: library/functions.rst:38 -msgid ":func:`zip`" -msgstr ":func:`zip`" - -#: library/functions.rst:40 -msgid "**_**" -msgstr "**_**" - -#: library/functions.rst:41 -msgid ":func:`__import__`" -msgstr ":func:`__import__`" - -#: library/functions.rst:61 -msgid "" -"Return the absolute value of a number. The argument may be an integer, a " -"floating-point number, or an object implementing :meth:`~object.__abs__`. If " -"the argument is a complex number, its magnitude is returned." -msgstr "" -"Renvoie la valeur absolue d'un nombre. L'argument peut être un nombre " -"entier, un nombre à virgule flottante, ou tout objet " -"définissant :meth:`~object.__abs__`. Si l'argument est un nombre complexe, " -"son module est renvoyé." - -#: library/functions.rst:69 -msgid "" -"Return an :term:`asynchronous iterator` for an :term:`asynchronous " -"iterable`. Equivalent to calling ``x.__aiter__()``." -msgstr "" -"Renvoie un :term:`itérateur asynchrone ` pour " -"l':term:`itérable asynchrone ` donné. Équivaut à " -"appeler ``x.__aiter__()``." - -#: library/functions.rst:72 -msgid "Note: Unlike :func:`iter`, :func:`aiter` has no 2-argument variant." -msgstr "" -"Remarque : contrairement à :func:`iter`, :func:`aiter` n'a pas de variante à " -"2 arguments." - -#: library/functions.rst:78 -msgid "" -"Return ``True`` if all elements of the *iterable* are true (or if the " -"iterable is empty). Equivalent to::" -msgstr "" -"Renvoie ``True`` si tous les éléments de *iterable* sont vrais (ou s'il est " -"vide). Équivaut à ::" - -#: library/functions.rst:91 -msgid "" -"When awaited, return the next item from the given :term:`asynchronous " -"iterator`, or *default* if given and the iterator is exhausted." -msgstr "" -"Lorsqu'il est attendu, renvoie l'élément suivant à partir de " -"l':term:`itérateur asynchrone ` donné, ou *default* " -"s'il est fourni et que l'itérateur est épuisé." - -#: library/functions.rst:94 -msgid "" -"This is the async variant of the :func:`next` builtin, and behaves similarly." -msgstr "" -"Il s'agit de la variante asynchrone de la fonction native :func:`next` et " -"elle se comporte de la même manière." - -#: library/functions.rst:97 -msgid "" -"This calls the :meth:`~object.__anext__` method of *async_iterator*, " -"returning an :term:`awaitable`. Awaiting this returns the next value of the " -"iterator. If *default* is given, it is returned if the iterator is " -"exhausted, otherwise :exc:`StopAsyncIteration` is raised." -msgstr "" -"Renvoie un :term:`attendable ` en appelant la " -"méthode :meth:`~object.__anext__` de *async_iterator*. L'attente renvoie la " -"prochaine valeur de l'itérateur. Si *default* est fourni, il est renvoyé si " -"l'itérateur est épuisé, sinon :exc:`StopAsyncIteration` est levée." - -#: library/functions.rst:106 -msgid "" -"Return ``True`` if any element of the *iterable* is true. If the iterable " -"is empty, return ``False``. Equivalent to::" -msgstr "" -"Renvoie ``True`` si au moins un élément de *iterable* est vrai. ``False`` " -"est renvoyé dans le cas où *iterable* est vide. Équivaut à ::" - -#: library/functions.rst:118 -msgid "" -"As :func:`repr`, return a string containing a printable representation of an " -"object, but escape the non-ASCII characters in the string returned " -"by :func:`repr` using ``\\x``, ``\\u``, or ``\\U`` escapes. This generates " -"a string similar to that returned by :func:`repr` in Python 2." -msgstr "" -"Renvoie, tout comme :func:`repr`, une chaîne contenant une représentation " -"d'un objet destinée à l'affichage, mais en transformant les caractères non " -"ASCII renvoyés par :func:`repr` par l'utilisation de séquences d'échappement " -"``\\x``, ``\\u`` ou ``\\U``. Cela génère une chaîne similaire à ce que " -"renvoie :func:`repr` dans Python 2." - -#: library/functions.rst:126 -#, fuzzy -msgid "" -"Convert an integer number to a binary string prefixed with \"0b\". The " -"result is a valid Python expression. If *integer* is not a " -"Python :class:`int` object, it has to define an :meth:`~object.__index__` " -"method that returns an integer. Some examples:" -msgstr "" -"Convertit un nombre entier en binaire dans une chaîne avec le préfixe " -"\"0b\". Le résultat est une expression Python valide. Si *x* n'est pas " -"un :class:`int`, il doit définir une méthode :meth:`__index__` donnant un " -"nombre entier. Voici quelques exemples :" - -#: library/functions.rst:136 -msgid "" -"If the prefix \"0b\" is desired or not, you can use either of the following " -"ways." -msgstr "" -"Vous pouvez contrôler l'affichage du préfixe ``\"0b\"`` à l'aide d'un des " -"moyens suivants." - -#: library/functions.rst:143 -msgid "" -"See also :func:`enum.bin` to represent negative values as twos-complement." -msgstr "" - -#: library/functions.rst:986 library/functions.rst:1370 -msgid "See also :func:`format` for more information." -msgstr "Voir aussi :func:`format` pour plus d'informations." - -#: library/functions.rst:150 -msgid "" -"Return a Boolean value, i.e. one of ``True`` or ``False``. The argument is " -"converted using the standard :ref:`truth testing procedure `. If the " -"argument is false or omitted, this returns ``False``; otherwise, it returns " -"``True``. The :class:`bool` class is a subclass of :class:`int` " -"(see :ref:`typesnumeric`). It cannot be subclassed further. Its only " -"instances are ``False`` and ``True`` (see :ref:`typebool`)." -msgstr "" -"Renvoie une valeur booléenne, c'est-à-dire soit ``True``, soit ``False``. " -"L'argument est converti en utilisant la :ref:`procédure standard " -"d'évaluation de valeur de vérité `. Si l'argument est faux, ou omis, " -"elle renvoie ``False``, sinon, elle renvoie ``True``. La " -"classe :class:`bool` hérite de la classe :class:`int` " -"(voir :ref:`typesnumeric`). Il n'est pas possible d'en hériter. Ses seules " -"instances sont ``False`` et ``True`` (voir :ref:`typebool`)." - -#: library/functions.rst:836 -msgid "The parameter is now positional-only." -msgstr "Le paramètre est désormais un argument exclusivement positionnel." - -#: library/functions.rst:165 -msgid "" -"This function drops you into the debugger at the call site. Specifically, " -"it calls :func:`sys.breakpointhook`, passing ``args`` and ``kws`` straight " -"through. By default, ``sys.breakpointhook()`` calls :func:`pdb.set_trace` " -"expecting no arguments. In this case, it is purely a convenience function " -"so you don't have to explicitly import :mod:`pdb` or type as much code to " -"enter the debugger. However, :func:`sys.breakpointhook` can be set to some " -"other function and :func:`breakpoint` will automatically call that, allowing " -"you to drop into the debugger of choice. If :func:`sys.breakpointhook` is " -"not accessible, this function will raise :exc:`RuntimeError`." -msgstr "" -"Cette fonction vous place dans le débogueur lorsqu'elle est appelée. Plus " -"précisément, elle appelle :func:`sys.breakpointhook`, en lui passant les " -"arguments ``args`` et ``kws``. Par défaut, ``sys.breakpointhook()`` " -"appelle :func:`pdb.set_trace` qui n'attend aucun argument. Dans ce cas, " -"c'est purement une fonction de commodité donc vous n'avez pas à importer " -"explicitement :mod:`pdb` ou à taper plus de code pour entrer dans le " -"débogueur. Cependant, il est possible d'affecter une autre fonction " -"à :func:`sys.breakpointhook`, que :func:`breakpoint` appellera " -"automatiquement, vous permettant ainsi de basculer dans le débogueur de " -"votre choix. Si :func:`sys.breakpointhook` n'est pas accessible, cette " -"fonction lève :exc:`RuntimeError`." - -#: library/functions.rst:177 -msgid "" -"By default, the behavior of :func:`breakpoint` can be changed with " -"the :envvar:`PYTHONBREAKPOINT` environment variable. " -"See :func:`sys.breakpointhook` for usage details." -msgstr "" -"Par défaut, le comportement de la fonction :func:`breakpoint` peut être " -"changé par la variable d'environnement :envvar:`PYTHONBREAKPOINT`. " -"Voir :func:`sys.breakpointhook` pour plus de détails." - -#: library/functions.rst:181 -msgid "" -"Note that this is not guaranteed if :func:`sys.breakpointhook` has been " -"replaced." -msgstr "" -"Notez que ceci n'est plus garanti si la fonction :func:`sys.breakpointhook` " -"a été remplacée." - -#: library/functions.rst:184 -msgid "" -"Raises an :ref:`auditing event ` ``builtins.breakpoint`` with " -"argument ``breakpointhook``." -msgstr "" -"Lève un :ref:`évènement d'audit ` ``builtins.breakpoint`` avec " -"l'argument ``breakpointhook``." - -#: library/functions.rst:193 -msgid "" -"Return a new array of bytes. The :class:`bytearray` class is a mutable " -"sequence of integers in the range 0 <= x < 256. It has most of the usual " -"methods of mutable sequences, described in :ref:`typesseq-mutable`, as well " -"as most methods that the :class:`bytes` type has, see :ref:`bytes-methods`." -msgstr "" -"Renvoie un nouveau tableau d'octets. La classe :class:`bytearray` est une " -"séquence mutable de nombres entiers dans l'intervalle 0 ≤ x < 256. Il " -"possède la plupart des méthodes des séquences variables, décrites " -"dans :ref:`typesseq-mutable`, ainsi que la plupart des méthodes de la " -"classe :class:`bytes`, voir :ref:`bytes-methods`." - -#: library/functions.rst:198 -msgid "" -"The optional *source* parameter can be used to initialize the array in a few " -"different ways:" -msgstr "" -"Le paramètre optionnel *source* peut être utilisé pour initialiser le " -"tableau de plusieurs façons :" - -# énumération -#: library/functions.rst:201 -msgid "" -"If it is a *string*, you must also give the *encoding* (and optionally, " -"*errors*) parameters; :func:`bytearray` then converts the string to bytes " -"using :meth:`str.encode`." -msgstr "" -"si c'est une *chaîne*, vous devez aussi donner le paramètre *encoding* pour " -"l'encodage (et éventuellement *errors*). La fonction :func:`bytearray` " -"convertit ensuite la chaîne en octets *via* la méthode :meth:`str.encode` ;" - -# énumération -#: library/functions.rst:205 -msgid "" -"If it is an *integer*, the array will have that size and will be initialized " -"with null bytes." -msgstr "" -"si c'est un *entier*, le tableau a cette taille et est initialisé d'octets " -"*null* ;" - -# énumération -#: library/functions.rst:208 -msgid "" -"If it is an object conforming to the :ref:`buffer interface " -"`, a read-only buffer of the object will be used to " -"initialize the bytes array." -msgstr "" -"si c'est un objet conforme à :ref:`l'interface tampon `, un " -"tampon en lecture seule de l'objet est utilisé pour initialiser le tableau ;" - -# énumération -#: library/functions.rst:211 -msgid "" -"If it is an *iterable*, it must be an iterable of integers in the range ``0 " -"<= x < 256``, which are used as the initial contents of the array." -msgstr "" -"si c'est un *itérable*, il doit itérer sur des nombres entier dans " -"l'intervalle ``0 <= x < 256``, qui sont utilisés pour initialiser le contenu " -"du tableau." - -#: library/functions.rst:214 -msgid "Without an argument, an array of size 0 is created." -msgstr "Sans argument, un tableau vide est créé." - -#: library/functions.rst:216 -msgid "See also :ref:`binaryseq` and :ref:`typebytearray`." -msgstr "Voir :ref:`binaryseq` et :ref:`typebytearray`." - -#: library/functions.rst:224 -msgid "" -"Return a new \"bytes\" object which is an immutable sequence of integers in " -"the range ``0 <= x < 256``. :class:`bytes` is an immutable version " -"of :class:`bytearray` -- it has the same non-mutating methods and the same " -"indexing and slicing behavior." -msgstr "" -"Renvoie un nouvel objet *bytes*, qui est une séquence immuable de nombres " -"entiers dans l'intervalle ``0 <= x < 256``. Un :class:`bytes` est une " -"version immuable de :class:`bytearray` — avec les mêmes méthodes d'accès, et " -"le même comportement lors de l'indexation ou du découpage." - -#: library/functions.rst:229 -msgid "" -"Accordingly, constructor arguments are interpreted as for :func:`bytearray`." -msgstr "" -"En conséquence, les arguments du constructeur sont les mêmes que " -"pour :func:`bytearray`." - -#: library/functions.rst:231 -msgid "Bytes objects can also be created with literals, see :ref:`strings`." -msgstr "" -"Les objets *bytes* peuvent aussi être créés à partir de littéraux, " -"voir :ref:`strings`." - -#: library/functions.rst:233 -msgid "See also :ref:`binaryseq`, :ref:`typebytes`, and :ref:`bytes-methods`." -msgstr "" -"Voir aussi :ref:`binaryseq`, :ref:`typebytes`, et :ref:`bytes-methods`." - -#: library/functions.rst:238 -msgid "" -"Return :const:`True` if the *object* argument appears " -"callable, :const:`False` if not. If this returns ``True``, it is still " -"possible that a call fails, but if it is ``False``, calling *object* will " -"never succeed. Note that classes are callable (calling a class returns a new " -"instance); instances are callable if their class has " -"a :meth:`~object.__call__` method." -msgstr "" -"Renvoie :const:`True` si l'argument *object* semble être appelable, " -"sinon :const:`False`. Lorsqu'elle renvoie ``True``, il est toujours possible " -"qu'un appel échoue. Cependant, lorsqu'elle renvoie ``False``, il n'est " -"jamais possible d'appeler *object*. Notez qu'une classe est toujours " -"appelable (appeler une classe donne une nouvelle instance) ; une instance " -"n'est appelable que si sa classe définit une " -"méthode :meth:`~object.__call__`." - -# suit un : -#: library/functions.rst:244 -msgid "" -"This function was first removed in Python 3.0 and then brought back in " -"Python 3.2." -msgstr "" -"cette fonction a d'abord été supprimée avec Python 3.0 puis elle a été " -"remise dans Python 3.2." - -#: library/functions.rst:251 -#, fuzzy -msgid "" -"Return the string representing a character with the specified Unicode code " -"point. For example, ``chr(97)`` returns the string ``'a'``, while " -"``chr(8364)`` returns the string ``'€'``. This is the inverse of :func:`ord`." -msgstr "" -"Renvoie la chaîne représentant un caractère dont le code de caractère " -"Unicode est le nombre entier *i*. Par exemple, ``chr(97)`` renvoie la chaîne " -"de caractères ``'a'``, tandis que ``chr(8364)`` renvoie ``'€'``. Il s'agit " -"de la réciproque de :func:`ord`." - -#: library/functions.rst:255 -#, fuzzy -msgid "" -"The valid range for the argument is from 0 through 1,114,111 (0x10FFFF in " -"base 16). :exc:`ValueError` will be raised if it is outside that range." -msgstr "" -"L'intervalle valide pour cet argument est de ``0`` à ``1114111`` " -"(``0x10FFFF`` en base 16). Une exception :exc:`ValueError` est levée si *i* " -"est en dehors de l'intervalle." - -#: library/functions.rst:261 -msgid "Transform a method into a class method." -msgstr "Transforme une méthode en méthode de classe." - -#: library/functions.rst:263 -msgid "" -"A class method receives the class as an implicit first argument, just like " -"an instance method receives the instance. To declare a class method, use " -"this idiom::" -msgstr "" -"Une méthode de classe reçoit implicitement la classe en premier argument, " -"tout comme une méthode d'instance reçoit l'instance. Voici comment déclarer " -"une méthode de classe ::" - -#: library/functions.rst:271 -msgid "" -"The ``@classmethod`` form is a function :term:`decorator` -- " -"see :ref:`function` for details." -msgstr "" -"La forme ``@classmethod`` est un :term:`décorateur ` de fonction " -"— consultez :ref:`function` pour plus de détails." - -#: library/functions.rst:274 -msgid "" -"A class method can be called either on the class (such as ``C.f()``) or on " -"an instance (such as ``C().f()``). The instance is ignored except for its " -"class. If a class method is called for a derived class, the derived class " -"object is passed as the implied first argument." -msgstr "" -"Elle peut être appelée soit sur la classe (comme ``C.f()``) ou sur une " -"instance (comme ``C().f()``). L'instance est ignorée, sauf pour déterminer " -"sa classe. Si la méthode est appelée sur une instance de classe fille, c'est " -"la classe fille qui sera donnée en premier argument implicite." - -#: library/functions.rst:279 -msgid "" -"Class methods are different than C++ or Java static methods. If you want " -"those, see :func:`staticmethod` in this section. For more information on " -"class methods, see :ref:`types`." -msgstr "" -"Les méthodes de classe sont différentes des méthodes statiques du C++ ou du " -"Java. Si ce sont elles dont vous avez besoin, regardez du côté " -"de :func:`staticmethod` dans cette section. Voir aussi :ref:`types`." - -# suit un : -#: library/functions.rst:283 -msgid "" -"Class methods can now wrap other :term:`descriptors ` such " -"as :func:`property`." -msgstr "" -"les méthodes de classe peuvent encapsuler d'autres :term:`descripteurs " -"` comme :func:`property`." - -# suit un : -#: library/functions.rst:287 -msgid "" -"Class methods now inherit the method attributes " -"(:attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__` " -"and :attr:`~function.__annotations__`) and have a new ``__wrapped__`` " -"attribute." -msgstr "" -"les méthodes de classe héritent dorénavant des attributs des méthodes " -"(:attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__` " -"et :attr:`~function.__annotations__`) et ont un nouvel attribut " -"``__wrapped__``." - -# suit un : -#: library/functions.rst:294 -msgid "" -"Class methods can no longer wrap other :term:`descriptors ` such " -"as :func:`property`." -msgstr "" -"les méthodes de classe ne peuvent plus encapsuler " -"d'autres :term:`descripteurs ` comme :func:`property`." - -#: library/functions.rst:303 -msgid "" -"Compile the *source* into a code or AST object. Code objects can be " -"executed by :func:`exec` or :func:`eval`. *source* can either be a normal " -"string, a byte string, or an AST object. Refer to the :mod:`ast` module " -"documentation for information on how to work with AST objects." -msgstr "" -"Compile *source* en un objet code ou objet AST. Les objets code peuvent être " -"exécutés par :func:`exec` ou :func:`eval`. *source* peut être une chaîne, " -"une chaîne d'octets, ou un objet AST. Consultez la documentation du " -"module :mod:`ast` pour des informations sur la manipulation d'objets AST." - -#: library/functions.rst:308 -msgid "" -"The *filename* argument should give the file from which the code was read; " -"pass some recognizable value if it wasn't read from a file (``''`` " -"is commonly used)." -msgstr "" -"L'argument *filename* doit désigner le fichier depuis lequel le code a été " -"lu. Donnez quelque chose de reconnaissable lorsqu'il n'a pas été lu depuis " -"un fichier (typiquement ``\"\"``)." - -#: library/functions.rst:312 -msgid "" -"The *mode* argument specifies what kind of code must be compiled; it can be " -"``'exec'`` if *source* consists of a sequence of statements, ``'eval'`` if " -"it consists of a single expression, or ``'single'`` if it consists of a " -"single interactive statement (in the latter case, expression statements that " -"evaluate to something other than ``None`` will be printed)." -msgstr "" -"L'argument *mode* indique quel type de code doit être compilé : ``'exec'`` " -"si *source* est une suite d'instructions, ``'eval'`` pour une seule " -"expression, ou ``'single'`` s'il ne contient qu'une instruction interactive " -"(dans ce dernier cas, les résultats d'expressions donnant autre chose que " -"``None`` sont affichés)." - -#: library/functions.rst:318 -msgid "" -"The optional arguments *flags* and *dont_inherit* control " -"which :ref:`compiler options ` should be activated and " -"which :ref:`future features ` should be allowed. If neither is " -"present (or both are zero) the code is compiled with the same flags that " -"affect the code that is calling :func:`compile`. If the *flags* argument is " -"given and *dont_inherit* is not (or is zero) then the compiler options and " -"the future statements specified by the *flags* argument are used in addition " -"to those that would be used anyway. If *dont_inherit* is a non-zero integer " -"then the *flags* argument is it -- the flags (future features and compiler " -"options) in the surrounding code are ignored." -msgstr "" -"Les arguments optionnels *flags* et *dont_inherit* contrôlent " -"quelles :ref:`options de compilation ` seront activées " -"et quelles :ref:`instructions future ` seront autorisées. Si aucun " -"des deux n'est présent (ou que les deux sont à 0), le code est compilé avec " -"les mêmes paramètres que le code appelant :func:`compile`. Si l'argument " -"*flags* est fourni alors que *dont_inherit* ne l'est pas (ou vaut 0), les " -"options de compilation et les instructions *futures* utilisées sont celles " -"définies par *flags* en plus de celles qui auraient été utilisées. Si " -"*dont_inherit* est un entier différent de zéro, *flags* est utilisé tel quel " -"— les *flags* (instructions futures et options de compilation) valables pour " -"le code encadrant *compile* sont ignorés." - -#: library/functions.rst:329 -msgid "" -"Compiler options and future statements are specified by bits which can be " -"bitwise ORed together to specify multiple options. The bitfield required to " -"specify a given future feature can be found as " -"the :attr:`~__future__._Feature.compiler_flag` attribute on " -"the :class:`~__future__._Feature` instance in the :mod:`__future__` " -"module. :ref:`Compiler flags ` can be found " -"in :mod:`ast` module, with ``PyCF_`` prefix." -msgstr "" -"Les instructions *future* sont contrôlées par des bits, il est ainsi " -"possible d'en activer plusieurs en les combinant avec un *OU* binaire. Les " -"bits requis pour demander une certaine fonctionnalité se trouvent dans " -"l'attribut :attr:`~__future__._Feature.compiler_flag` de la " -"classe :class:`~__future__.Feature` du module :mod:`__future__`. " -"Les :ref:`options du compilateur ` se trouvent dans le " -"module :mod:`ast`, avec le préfixe ``PyCF_``." - -#: library/functions.rst:337 -msgid "" -"The argument *optimize* specifies the optimization level of the compiler; " -"the default value of ``-1`` selects the optimization level of the " -"interpreter as given by :option:`-O` options. Explicit levels are ``0`` (no " -"optimization; ``__debug__`` is true), ``1`` (asserts are removed, " -"``__debug__`` is false) or ``2`` (docstrings are removed too)." -msgstr "" -"L'argument *optimize* indique le niveau d'optimisation du compilateur. La " -"valeur par défaut est ``-1`` qui prend le niveau d'optimisation de " -"l'interpréteur tel que reçu via l'option :option:`-O`. Les niveaux " -"explicites sont : ``0`` (pas d'optimisation, ``__debug__`` est ``True``), " -"``1`` (les ``assert`` sont supprimés, ``__debug__`` est ``False``) ou ``2`` " -"(les chaines de documentation sont également supprimées)." - -#: library/functions.rst:343 -msgid "" -"The optional argument *module* specifies the module name. It is needed to " -"unambiguous :ref:`filter ` syntax warnings by module name." -msgstr "" - -#: library/functions.rst:347 -#, fuzzy -msgid "" -"This function raises :exc:`SyntaxError` or :exc:`ValueError` if the compiled " -"source is invalid." -msgstr "" -"Cette fonction lève une :exc:`SyntaxError` si la source n'est pas valide, " -"et :exc:`ValueError` si la source contient des octets *null*." - -#: library/functions.rst:350 -msgid "" -"If you want to parse Python code into its AST representation, " -"see :func:`ast.parse`." -msgstr "" -"Si vous voulez transformer du code Python en sa représentation AST, " -"voyez :func:`ast.parse`." - -#: library/functions.rst:355 -msgid "" -"Raises an :ref:`auditing event ` ``compile`` with arguments " -"``source`` and ``filename``. This event may also be raised by implicit " -"compilation." -msgstr "" -"Lève un :ref:`évènement d'audit ` ``compile`` avec les arguments " -"``source`` et ``filename``. Cet événement peut également être levé par une " -"compilation implicite." - -# suit un : -#: library/functions.rst:361 -msgid "" -"When compiling a string with multi-line code in ``'single'`` or ``'eval'`` " -"mode, input must be terminated by at least one newline character. This is " -"to facilitate detection of incomplete and complete statements in " -"the :mod:`code` module." -msgstr "" -"lors de la compilation d'une chaîne de plusieurs lignes de code avec les " -"modes ``'single'`` ou ``'eval'``, celles-ci doivent être terminées par au " -"moins un retour à la ligne. Cela permet de faciliter la distinction entre " -"les instructions complètes et incomplètes dans le module :mod:`code`." - -# suit un : -#: library/functions.rst:368 -msgid "" -"It is possible to crash the Python interpreter with a sufficiently large/" -"complex string when compiling to an AST object due to stack depth " -"limitations in Python's AST compiler." -msgstr "" -"il est possible de faire planter l'interpréteur Python avec des chaînes " -"suffisamment grandes ou complexes lors de la compilation d'un objet AST. " -"Ceci est dû à limitation de la profondeur de la pile d'appels." - -# suit un : -#: library/functions.rst:372 -msgid "" -"Allowed use of Windows and Mac newlines. Also, input in ``'exec'`` mode " -"does not have to end in a newline anymore. Added the *optimize* parameter." -msgstr "" -"autorise l'utilisation de retours à la ligne Mac et Windows. Par ailleurs, " -"la chaîne donnée à ``'exec'`` n'a plus besoin de terminer par un retour à la " -"ligne. Ajout du paramètre *optimize*." - -# suit un : -#: library/functions.rst:376 -msgid "" -"Previously, :exc:`TypeError` was raised when null bytes were encountered in " -"*source*." -msgstr "" -"précédemment, l'exception :exc:`TypeError` était levée quand un caractère " -"nul était rencontré dans *source*." - -#: library/functions.rst:380 -msgid "" -"``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` can now be passed in flags to enable " -"support for top-level ``await``, ``async for``, and ``async with``." -msgstr "" -"``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` peut maintenant être passée à *flags* " -"pour permettre une gestion haut niveau de ``await``, ``async for`` et " -"``async with``." - -# suit un : -#: library/functions.rst:384 -#, fuzzy -msgid "Added the *module* parameter." -msgstr "ajout du paramètre *closure*." - -#: library/functions.rst:392 -msgid "" -"Convert a single string or number to a complex number, or create a complex " -"number from real and imaginary parts." -msgstr "" - -#: library/functions.rst:779 library/functions.rst:1042 -msgid "Examples:" -msgstr "Exemples :" - -#: library/functions.rst:416 -msgid "" -"If the argument is a string, it must contain either a real part (in the same " -"format as for :func:`float`) or an imaginary part (in the same format but " -"with a ``'j'`` or ``'J'`` suffix), or both real and imaginary parts (the " -"sign of the imaginary part is mandatory in this case). The string can " -"optionally be surrounded by whitespaces and the round parentheses ``'('`` " -"and ``')'``, which are ignored. The string must not contain whitespace " -"between ``'+'``, ``'-'``, the ``'j'`` or ``'J'`` suffix, and the decimal " -"number. For example, ``complex('1+2j')`` is fine, but ``complex('1 + 2j')`` " -"raises :exc:`ValueError`. More precisely, the input must conform to " -"the :token:`~float:complexvalue` production rule in the following grammar, " -"after parentheses and leading and trailing whitespace characters are removed:" -msgstr "" - -#: library/functions.rst:435 -msgid "" -"If the argument is a number, the constructor serves as a numeric conversion " -"like :class:`int` and :class:`float`. For a general Python object ``x``, " -"``complex(x)`` delegates to ``x.__complex__()``. " -"If :meth:`~object.__complex__` is not defined then it falls back " -"to :meth:`~object.__float__`. If :meth:`!__float__` is not defined then it " -"falls back to :meth:`~object.__index__`." -msgstr "" -"Si l'argument est un nombre, le constructeur le convertit, comme le font les " -"classes :class:`int` et :class:`float`. Pour les autres objets ``x``, " -"``complex(x)`` délègue à ``x.__complex__()``. Si :meth:`~object.__complex__` " -"n'est pas définie, elle délègue à :meth:`~object.__float__`. Si :meth:`!" -"__float__` n'est pas défini, alors elle délègue à :meth:`~object.__index__`." - -#: library/functions.rst:444 -msgid "" -"If two arguments are provided or keyword arguments are used, each argument " -"may be any numeric type (including complex). If both arguments are real " -"numbers, return a complex number with the real component *real* and the " -"imaginary component *imag*. If both arguments are complex numbers, return a " -"complex number with the real component ``real.real-imag.imag`` and the " -"imaginary component ``real.imag+imag.real``. If one of arguments is a real " -"number, only its real component is used in the above expressions." -msgstr "" - -#: library/functions.rst:454 -msgid "" -"See also :meth:`complex.from_number` which only accepts a single numeric " -"argument." -msgstr "" - -#: library/functions.rst:456 -msgid "If all arguments are omitted, returns ``0j``." -msgstr "" - -#: library/functions.rst:458 -msgid "The complex type is described in :ref:`typesnumeric`." -msgstr "Le type complexe est décrit dans :ref:`typesnumeric`." - -# suit un : -#: library/functions.rst:833 library/functions.rst:1090 -msgid "Grouping digits with underscores as in code literals is allowed." -msgstr "" -"les chiffres peuvent être groupés avec des tirets bas comme dans les " -"expressions littérales." - -# suit un : -#: library/functions.rst:463 -msgid "" -"Falls back to :meth:`~object.__index__` if :meth:`~object.__complex__` " -"and :meth:`~object.__float__` are not defined." -msgstr "" -"délègue à :meth:`~object.__index__` si :meth:`~object.__complex__` " -"et :meth:`~object.__float__` ne sont pas définies." - -#: library/functions.rst:467 -msgid "" -"Passing a complex number as the *real* or *imag* argument is now deprecated; " -"it should only be passed as a single positional argument." -msgstr "" - -#: library/functions.rst:474 -msgid "" -"This is a relative of :func:`setattr`. The arguments are an object and a " -"string. The string must be the name of one of the object's attributes. The " -"function deletes the named attribute, provided the object allows it. For " -"example, ``delattr(x, 'foobar')`` is equivalent to ``del x.foobar``. *name* " -"need not be a Python identifier (see :func:`setattr`)." -msgstr "" -"C'est une cousine de :func:`setattr`. Les arguments sont un objet et une " -"chaîne. La chaîne doit être le nom de l'un des attributs de l'objet. La " -"fonction supprime l'attribut nommé, si l'objet l'y autorise. Par exemple " -"``delattr(x, 'foobar')`` est l'équivalent de ``del x.foobar``. *name* n'a " -"pas besoin d'être un identifiant Python (voir :func:`setattr`)." - -#: library/functions.rst:487 -msgid "" -"Create a new dictionary. The :class:`dict` object is the dictionary class. " -"See :class:`dict` and :ref:`typesmapping` for documentation about this class." -msgstr "" -"Crée un nouveau dictionnaire. L'objet :class:`dict` est la classe du " -"dictionnaire. Voir :class:`dict` et :ref:`typesmapping` pour vous documenter " -"sur cette classe." - -#: library/functions.rst:490 -#, fuzzy -msgid "" -"For other containers see the built-" -"in :class:`frozendict`, :class:`list`, :class:`set`, and :class:`tuple` " -"classes, as well as the :mod:`collections` module." -msgstr "" -"D'autres conteneurs existent, " -"comme : :class:`frozenset`, :class:`list`, :class:`tuple`, et :class:`dict`, " -"ainsi que le module :mod:`collections`." - -#: library/functions.rst:497 -msgid "" -"Without arguments, return the list of names in the current local scope. " -"With an argument, attempt to return a list of valid attributes for that " -"object." -msgstr "" -"Sans argument, elle donne la liste des noms dans l'espace de nommage local. " -"Avec un argument, elle essaye de donner une liste d'attributs valides pour " -"cet objet." - -#: library/functions.rst:500 -msgid "" -"If the object has a method named :meth:`~object.__dir__`, this method will " -"be called and must return the list of attributes. This allows objects that " -"implement a custom :func:`~object.__getattr__` " -"or :func:`~object.__getattribute__` function to customize the " -"way :func:`dir` reports their attributes." -msgstr "" -"Si l'objet a une méthode :meth:`~object.__dir__`, elle est appelée et doit " -"donner une liste d'attributs. Cela permet aux objets " -"implémentant :func:`~object.__getattr__` ou :func:`~object.__getattribute__` " -"de personnaliser ce que renvoie :func:`dir`." - -#: library/functions.rst:507 -msgid "" -"If the object does not provide :meth:`~object.__dir__`, the function tries " -"its best to gather information from the object's :attr:`~object.__dict__` " -"attribute, if defined, and from its type object. The resulting list is not " -"necessarily complete and may be inaccurate when the object has a " -"custom :func:`~object.__getattr__`." -msgstr "" -"Si l'objet ne fournit pas de méthode :meth:`~object.__dir__`, la fonction " -"fait de son mieux en rassemblant les informations de " -"l'attribut :attr:`~object.__dict__` de l'objet, s'il est défini, et depuis " -"son type. La liste résultante n'est pas nécessairement complète, et peut " -"être erronée quand l'objet a une :func:`~object.__getattr__` personnalisée." - -#: library/functions.rst:513 -msgid "" -"The default :func:`dir` mechanism behaves differently with different types " -"of objects, as it attempts to produce the most relevant, rather than " -"complete, information:" -msgstr "" -"Le mécanisme par défaut de :func:`dir` se comporte différemment avec " -"différents types d'objets, car elle préfère donner une information " -"pertinente plutôt qu'exhaustive :" - -# énumération -#: library/functions.rst:517 -msgid "" -"If the object is a module object, the list contains the names of the " -"module's attributes." -msgstr "" -"si l'objet est un module, la liste contiendra les noms des attributs du " -"module ;" - -# énumération -#: library/functions.rst:520 -msgid "" -"If the object is a type or class object, the list contains the names of its " -"attributes, and recursively of the attributes of its bases." -msgstr "" -"si l'objet est un type ou une classe, la liste contiendra les noms de ses " -"attributs et, récursivement, des attributs de ses parents ;" - -# énumération -#: library/functions.rst:523 -msgid "" -"Otherwise, the list contains the object's attributes' names, the names of " -"its class's attributes, and recursively of the attributes of its class's " -"base classes." -msgstr "" -"autrement, la liste contient les noms des attributs de l'objet, le nom des " -"attributs de la classe, et récursivement des attributs des parents de la " -"classe." - -#: library/functions.rst:527 -msgid "The resulting list is sorted alphabetically. For example:" -msgstr "La liste donnée est triée par ordre alphabétique, par exemple :" - -# suit un : -#: library/functions.rst:547 -msgid "" -"Because :func:`dir` is supplied primarily as a convenience for use at an " -"interactive prompt, it tries to supply an interesting set of names more than " -"it tries to supply a rigorously or consistently defined set of names, and " -"its detailed behavior may change across releases. For example, metaclass " -"attributes are not in the result list when the argument is a class." -msgstr "" -"étant donné que :func:`dir` est d'abord fournie pour son côté pratique en " -"mode interactif, elle a tendance à fournir un ensemble de noms pertinents " -"plutôt qu'un ensemble exhaustif et rigoureusement défini, son comportement " -"peut aussi changer d'une version à l'autre. Par exemple, les attributs de " -"méta-classes ne sont pas donnés lorsque l'argument est une classe." - -#: library/functions.rst:557 -msgid "" -"Take two (non-complex) numbers as arguments and return a pair of numbers " -"consisting of their quotient and remainder when using integer division. " -"With mixed operand types, the rules for binary arithmetic operators apply. " -"For integers, the result is the same as ``(a // b, a % b)``. For floating-" -"point numbers the result is ``(q, a % b)``, where *q* is usually " -"``math.floor(a / b)`` but may be 1 less than that. In any case ``q * b + a " -"% b`` is very close to *a*, if ``a % b`` is non-zero it has the same sign as " -"*b*, and ``0 <= abs(a % b) < abs(b)``." -msgstr "" -"Prend deux nombres (qui ne sont pas des nombres complexes) et renvoie leur " -"quotient et reste de leur division entière sous forme d'une paire de " -"nombres. Avec des opérandes de types différents, les règles des opérateurs " -"binaires s'appliquent. Pour deux entiers le résultat est le même que ``(a // " -"b, a % b)``. Pour des nombres à virgule flottante le résultat est ``(q, a % " -"b)``, où *q* est généralement ``math.floor(a / b)`` mais peut valoir 1 de " -"moins. Dans tous les cas ``q * b + a % b`` est très proche de *a*. Si ``a % " -"b`` est différent de zéro, il a le même signe que *b* et ``0 <= abs(a % b) < " -"abs(b)``." - -#: library/functions.rst:569 -msgid "" -"Return an enumerate object. *iterable* must be a sequence, " -"an :term:`iterator`, or some other object which supports iteration. " -"The :meth:`~iterator.__next__` method of the iterator returned " -"by :func:`enumerate` returns a tuple containing a count (from *start* which " -"defaults to 0) and the values obtained from iterating over *iterable*." -msgstr "" -"Renvoie un objet énumérant. *iterable* doit être une séquence, " -"un :term:`itérateur `, ou tout autre objet prenant en charge " -"l'itération. La méthode :meth:`~iterator.__next__` de l'itérateur donné " -"par :func:`enumerate` renvoie un *n*-uplet contenant un compte (démarrant à " -"*start*, 0 par défaut) et les valeurs obtenues de l'itération sur *iterable*." - -#: library/functions.rst:581 -msgid "Equivalent to::" -msgstr "Équivalent à ::" - -#: library/functions.rst:0 -msgid "Parameters" -msgstr "Paramètres" - -#: library/functions.rst:593 -msgid "A Python expression." -msgstr "" - -#: library/functions.rst:597 -msgid "The global namespace (default: ``None``)." -msgstr "" - -#: library/functions.rst:601 -msgid "The local namespace (default: ``None``)." -msgstr "" - -#: library/functions.rst:0 -msgid "Returns" -msgstr "Renvoie" - -#: library/functions.rst:605 -msgid "The result of the evaluated expression." -msgstr "" - -#: library/functions.rst:0 -msgid "raises" -msgstr "" - -#: library/functions.rst:606 -msgid "Syntax errors are reported as exceptions." -msgstr "" - -#: library/functions.rst:676 -msgid "" -"This function executes arbitrary code. Calling it with untrusted user-" -"supplied input will lead to security vulnerabilities." -msgstr "" - -#: library/functions.rst:613 -#, fuzzy -msgid "" -"The *source* argument is parsed and evaluated as a Python expression " -"(technically speaking, a condition list) using the *globals* and *locals* " -"mappings as global and local namespace. If the *globals* dictionary is " -"present and does not contain a value for the key ``__builtins__``, a " -"reference to the dictionary of the built-in module :mod:`builtins` is " -"inserted under that key before *source* is parsed. Overriding " -"``__builtins__`` can be used to restrict or change the available names, but " -"this is **not** a security mechanism: the executed code can still access all " -"builtins. If the *locals* mapping is omitted it defaults to the *globals* " -"dictionary. If both mappings are omitted, the source is executed with the " -"*globals* and *locals* in the environment where :func:`eval` is called. " -"Note, *eval()* will only have access to the :term:`nested scopes ` (non-locals) in the enclosing environment if they are already " -"referenced in the scope that is calling :func:`eval` (e.g. via " -"a :keyword:`nonlocal` statement)." -msgstr "" -"L'argument *expression* est analysé et évalué comme une expression Python " -"(techniquement, une *condition list*) en utilisant les dictionnaires " -"*globals* et *locals* comme espaces de nommage global et local. Si le " -"dictionnaire *globals* est présent mais ne contient pas de valeur pour la " -"clé ``__builtins__``, une référence au dictionnaire du " -"module :mod:`builtins` y est insérée avant qu'*expression* ne soit évaluée. " -"Ainsi, vous pouvez contrôler quels objets natifs sont disponibles pour le " -"code à exécuter en insérant votre propre dictionnaire ``__builtins__`` dans " -"*globals* avant de le passer à :func:`eval`. Si le dictionnaire *locals* est " -"omis, sa valeur par défaut est le dictionnaire *globals*. Si les deux " -"dictionnaires sont omis, l'expression est exécutée avec les dictionnaires " -"*globals* et *locals* dans l'environnement où :func:`eval` est appelée. " -"Notez que *eval()* n'a pas accès aux :term:`portées imbriquées ` (non locales) dans l'environnement englobant." - -#: library/functions.rst:630 -#, fuzzy -msgid "Example:" -msgstr "Exemple ::" - -#: library/functions.rst:636 -msgid "" -"This function can also be used to execute arbitrary code objects (such as " -"those created by :func:`compile`). In this case, pass a code object instead " -"of a string. If the code object has been compiled with ``'exec'`` as the " -"*mode* argument, :func:`eval`\\'s return value will be ``None``." -msgstr "" -"Cette fonction peut aussi être utilisée pour exécuter n'importe quel objet " -"code (tels que ceux créés par :func:`compile`). Dans ce cas, donnez un objet " -"code plutôt qu'une chaîne. Si l'objet code a été compilé avec l'argument " -"*mode* à ``'exec'``, :func:`eval` renvoie ``None``." - -#: library/functions.rst:641 -msgid "" -"Hints: dynamic execution of statements is supported by the :func:`exec` " -"function. The :func:`globals` and :func:`locals` functions return the " -"current global and local dictionary, respectively, which may be useful to " -"pass around for use by :func:`eval` or :func:`exec`." -msgstr "" -"Conseils : l'exécution dynamique d'instructions est gérée par la " -"fonction :func:`exec`. Les fonctions :func:`globals` et :func:`locals` " -"renvoient respectivement les dictionnaires globaux et locaux, qui peuvent " -"être utiles lors de l'usage de :func:`eval` et :func:`exec`." - -#: library/functions.rst:646 -msgid "" -"If the given source is a string, then leading and trailing spaces and tabs " -"are stripped." -msgstr "" -"Si la source donnée est une chaîne, les espaces de début et de fin et les " -"tabulations sont supprimées." - -#: library/functions.rst:649 -#, fuzzy -msgid "" -"See :func:`ast.literal_eval` for a function to evaluate strings with " -"expressions containing only literals." -msgstr "" -"Utilisez :func:`ast.literal_eval` si vous avez besoin d'une fonction qui " -"peut évaluer en toute sécurité des chaînes avec des expressions ne contenant " -"que des valeurs littérales." - -#: library/functions.rst:654 library/functions.rst:721 -msgid "" -"Raises an :ref:`auditing event ` ``exec`` with the code object as " -"the argument. Code compilation events may also be raised." -msgstr "" -"Lève un :ref:`évènement d'audit ` ``exec`` avec l'objet de code " -"comme argument. Les événements de compilation de code peuvent également être " -"levés." - -#: library/functions.rst:741 -msgid "The *globals* and *locals* arguments can now be passed as keywords." -msgstr "" - -#: library/functions.rst:745 -msgid "" -"The semantics of the default *locals* namespace have been adjusted as " -"described for the :func:`locals` builtin." -msgstr "" - -#: library/functions.rst:750 -msgid "*globals* can now be a :class:`frozendict`." -msgstr "" - -#: library/functions.rst:679 -#, fuzzy -msgid "" -"This function supports dynamic execution of Python code. *source* must be " -"either a string or a code object. If it is a string, the string is parsed " -"as a suite of Python statements which is then executed (unless a syntax " -"error occurs). [#]_ If it is a code object, it is simply executed. In all " -"cases, the code that's executed is expected to be valid as file input (see " -"the section :ref:`file-input` in the Reference Manual). Be aware that " -"the :keyword:`nonlocal`, :keyword:`yield`, and :keyword:`return` statements " -"may not be used outside of function definitions even within the context of " -"code passed to the :func:`exec` function. The return value is ``None``." -msgstr "" -"Cette fonction permet l'exécution dynamique de code Python. *object* doit " -"être soit une chaîne soit un objet code. Si c'est une chaîne, elle est " -"d'abord analysée en une suite d'instructions Python qui sont ensuite " -"exécutés (sauf erreur de syntaxe) [#]_. Si c'est un objet code, il est " -"simplement exécuté. Dans tous les cas, le code fourni doit être valide selon " -"les mêmes critères que s'il était un script dans un fichier (voir la " -"section :ref:`Fichier d'entrée ` dans le manuel de référence du " -"langage). Gardez en tête que les mots " -"clés :keyword:`nonlocal`, :keyword:`yield` et :keyword:`return` ne peuvent " -"pas être utilisés en dehors d'une fonction, même dans du code passé " -"à :func:`exec`. La fonction renvoie ``None``." - -#: library/functions.rst:690 -#, fuzzy -msgid "" -"In all cases, if the optional parts are omitted, the code is executed in the " -"current scope. If only *globals* is provided, it must be a dictionary (and " -"not a subclass of dictionary), which will be used for both the global and " -"the local variables. If *globals* and *locals* are given, they are used for " -"the global and local variables, respectively. If provided, *locals* can be " -"any mapping object. Remember that at the module level, globals and locals " -"are the same dictionary." -msgstr "" -"Dans tous les cas, si les arguments optionnels sont omis, le code est " -"exécuté dans le contexte actuel. Si seul *globals* est fourni, il doit être " -"un dictionnaire (et pas une sous-classe de dictionnaire) utilisé pour les " -"variables globales et locales. Si les deux sont fournis, ils sont utilisés " -"respectivement pour les variables globales et locales. *locales* peut être " -"n'importe quel objet de correspondance. Souvenez-vous qu'au niveau d'un " -"module, les dictionnaires des locales et des globales ne sont qu'un. Si " -"``exec`` reçoit deux objets distincts dans *globals* et *locals*, le code " -"est exécuté comme s'il était inclus dans une définition de classe." - -#: library/functions.rst:700 -msgid "" -"When ``exec`` gets two separate objects as *globals* and *locals*, the code " -"will be executed as if it were embedded in a class definition. This means " -"functions and classes defined in the executed code will not be able to " -"access variables assigned at the top level (as the \"top level\" variables " -"are treated as class variables in a class definition)." -msgstr "" - -#: library/functions.rst:706 -#, fuzzy -msgid "" -"If the *globals* dictionary does not contain a value for the key " -"``__builtins__``, a reference to the dictionary of the built-in " -"module :mod:`builtins` is inserted under that key. Overriding " -"``__builtins__`` can be used to restrict or change the available names, but " -"this is **not** a security mechanism: the executed code can still access all " -"builtins." -msgstr "" -"Si le dictionnaire *globals* ne contient pas de valeur pour la clé " -"``__builtins__``, une référence au dictionnaire du module :mod:`builtins` y " -"est inséré. Cela vous permet de contrôler quelles fonctions natives sont " -"exposées au code exécuté en insérant votre propre dictionnaire " -"``__builtins__`` dans *globals* avant de le donner à :func:`exec`." - -#: library/functions.rst:713 -#, fuzzy -msgid "" -"The *closure* argument specifies a closure--a tuple of cellvars. It's only " -"valid when the *object* is a code object containing :term:`free (closure) " -"variables `. The length of the tuple must exactly match " -"the length of the code object's :attr:`~codeobject.co_freevars` attribute." -msgstr "" -"L'argument *closure* spécifie une fermeture – un *n*-uplet de variables " -"d'objets cellules (NdT : voir l'API C). Il n'est valide que lorsque *object* " -"est un objet code contenant des variables libres. La taille du *n*-uplet " -"doit correspondre exactement au nombre de variables libres référencées par " -"l'objet code." - -# suit un : -#: library/functions.rst:726 -#, fuzzy -msgid "" -"The built-in functions :func:`globals` and :func:`locals` return the current " -"global and local namespace, respectively, which may be useful to pass around " -"for use as the second and third argument to :func:`exec`." -msgstr "" -"les fonctions natives :func:`globals` et :func:`locals` renvoient " -"respectivement les dictionnaires globaux et locaux, qui peuvent être utiles " -"en deuxième et troisième argument de :func:`exec`." - -# suit un : -#: library/functions.rst:732 -#, fuzzy -msgid "" -"The default *locals* act as described for function :func:`locals` below. " -"Pass an explicit *locals* dictionary if you need to see effects of the code " -"on *locals* after function :func:`exec` returns." -msgstr "" -"la valeur par défaut pour *locals* se comporte comme la " -"fonction :func:`locals` : il est déconseillé de modifier le dictionnaire " -"*locals* par défaut. Donnez un dictionnaire explicitement à *locals* si vous " -"désirez observer l'effet du code sur les variables locales, après " -"que :func:`exec` soit terminée." - -# suit un : -#: library/functions.rst:736 -msgid "Added the *closure* parameter." -msgstr "ajout du paramètre *closure*." - -#: library/functions.rst:755 -msgid "" -"Construct an iterator from those elements of *iterable* for which *function* " -"is true. *iterable* may be either a sequence, a container which supports " -"iteration, or an iterator. If *function* is ``None``, the identity function " -"is assumed, that is, all elements of *iterable* that are false are removed." -msgstr "" -"Construit un itérateur depuis les éléments d'*iterable* pour lesquels " -"*function* renvoie ``True``. *iterable* peut aussi bien être une séquence, " -"un conteneur qui prend en charge l'itération, ou un itérateur. Si *function* " -"est ``None``, la fonction identité est prise, c'est-à-dire que tous les " -"éléments faux d'*iterable* sont supprimés." - -#: library/functions.rst:761 -msgid "" -"Note that ``filter(function, iterable)`` is equivalent to the generator " -"expression ``(item for item in iterable if function(item))`` if function is " -"not ``None`` and ``(item for item in iterable if item)`` if function is " -"``None``." -msgstr "" -"Notez que ``filter(function, iterable)`` est l'équivalent du générateur " -"``(item for item in iterable if function(item))`` si *function* n'est pas " -"``None``, et de ``(item for item in iterable if item)`` si *function* est " -"``None``." - -#: library/functions.rst:766 -msgid "" -"See :func:`itertools.filterfalse` for the complementary function that " -"returns elements of *iterable* for which *function* is false." -msgstr "" -"Voir :func:`itertools.filterfalse` pour la fonction complémentaire qui donne " -"les éléments d'*iterable* pour lesquels *function* renvoie ``False``." - -#: library/functions.rst:777 -#, fuzzy -msgid "Return a floating-point number constructed from a number or a string." -msgstr "" -"Renvoie un nombre a virgule flottante depuis un nombre ou une chaîne *x*." - -#: library/functions.rst:794 -#, fuzzy -msgid "" -"If the argument is a string, it should contain a decimal number, optionally " -"preceded by a sign, and optionally embedded in whitespace. The optional " -"sign may be ``'+'`` or ``'-'``; a ``'+'`` sign has no effect on the value " -"produced. The argument may also be a string representing a NaN (not-a-" -"number), or positive or negative infinity. More precisely, the input must " -"conform to the :token:`~float:floatvalue` production rule in the following " -"grammar, after leading and trailing whitespace characters are removed:" -msgstr "" -"Si l'argument est une chaîne, elle doit contenir un nombre décimal, " -"éventuellement précédé d'un signe, et pouvant être entouré d'espaces. Le " -"signe optionnel peut être ``'+'`` ou ``'-'``. Un signe ``'+'`` n'a pas " -"d'effet sur la valeur produite. L'argument peut aussi être une chaîne " -"représentant un *NaN* (*Not-a-Number* ou *pas un nombre* en français), " -"l'infini positif, ou l'infini négatif. Plus précisément, l'argument doit se " -"conformer à ``floatvalue`` tel que défini la grammaire suivante, après que " -"les espaces en début et fin de chaîne aient été retirées :" - -#: library/functions.rst:815 -#, fuzzy -msgid "" -"Case is not significant, so, for example, \"inf\", \"Inf\", \"INFINITY\", " -"and \"iNfINity\" are all acceptable spellings for positive infinity." -msgstr "" -"Ici ``digit`` est un chiffre décimal Unicode (caractère de la catégorie " -"générale Unicode ``Nd``). La casse n'y est pas significative, donc, par " -"exemple, ``\"inf\"``, ``\"Inf\"``, ``\"INFINITY\"`` et ``\"iNfiNity\"`` sont " -"toutes des orthographes valides pour un infini positif." - -#: library/functions.rst:818 -#, fuzzy -msgid "" -"Otherwise, if the argument is an integer or a floating-point number, a " -"floating-point number with the same value (within Python's floating-point " -"precision) is returned. If the argument is outside the range of a Python " -"float, an :exc:`OverflowError` will be raised." -msgstr "" -"Autrement, si l'argument est un entier ou un nombre à virgule flottante, un " -"nombre à virgule flottante de même valeur (en accord avec la précision des " -"nombres à virgule flottante de Python) est donné. Si l'argument est en " -"dehors de l'intervalle d'un nombre a virgule flottante pour " -"Python, :exc:`OverflowError` est levée." - -#: library/functions.rst:823 -msgid "" -"For a general Python object ``x``, ``float(x)`` delegates to " -"``x.__float__()``. If :meth:`~object.__float__` is not defined then it " -"falls back to :meth:`~object.__index__`." -msgstr "" -"Pour un objet Python général ``x``, ``float(x)`` est délégué à " -"``x.__float__()``. Si :meth:`~object.__float__` n'est pas défini alors il " -"est délégué à :meth:`~object.__index__`." - -#: library/functions.rst:827 -msgid "" -"See also :meth:`float.from_number` which only accepts a numeric argument." -msgstr "" - -#: library/functions.rst:829 -msgid "If no argument is given, ``0.0`` is returned." -msgstr "Sans argument, ``0.0`` est renvoyé." - -#: library/functions.rst:831 -msgid "The float type is described in :ref:`typesnumeric`." -msgstr "Le type *float* est décrit dans :ref:`typesnumeric`." - -# suit un : -#: library/functions.rst:839 -msgid "" -"Falls back to :meth:`~object.__index__` if :meth:`~object.__float__` is not " -"defined." -msgstr "" -"délègue à :meth:`~object.__index__` si :meth:`~object.__float__` n'est pas " -"définie." - -#: library/functions.rst:849 -msgid "" -"Convert a *value* to a \"formatted\" representation, as controlled by " -"*format_spec*. The interpretation of *format_spec* will depend on the type " -"of the *value* argument; however, there is a standard formatting syntax that " -"is used by most built-in types: :ref:`formatspec`." -msgstr "" -"Convertit une valeur en sa représentation « formatée », contrôlée par " -"*format_spec*. L'interprétation de *format_spec* dépend du type de la " -"valeur. Cependant, il existe une syntaxe standard utilisée par la plupart " -"des types natifs : :ref:`formatspec`." - -#: library/functions.rst:854 -msgid "" -"The default *format_spec* is an empty string which usually gives the same " -"effect as calling :func:`str(value) `." -msgstr "" -"Par défaut, *format_spec* est une chaîne vide. Dans ce cas, appeler cette " -"fonction a généralement le même effet qu'appeler :func:`str(value) `." - -#: library/functions.rst:857 -#, fuzzy -msgid "" -"A call to ``format(value, format_spec)`` is translated to " -"``type(value).__format__(value, format_spec)`` which bypasses the instance " -"dictionary when searching for the value's :meth:`~object.__format__` method. " -"A :exc:`TypeError` exception is raised if the method search " -"reaches :mod:`object` and the *format_spec* is non-empty, or if either the " -"*format_spec* or the return value are not strings." -msgstr "" -"Un appel à ``format(value, format_spec)`` est transformé en " -"``type(value).__format__(value, format_spec)``, qui contourne le " -"dictionnaire de l'instance lors de la recherche de la " -"méthode :meth:`__fornat__`. Une exception :exc:`TypeError` est levée si la " -"recherche de la méthode atteint :mod:`object` et que *format_spec* n'est pas " -"vide, ou si *format_spec* ou le résultat ne sont pas des chaînes de " -"caractères." - -#: library/functions.rst:864 -msgid "" -"``object().__format__(format_spec)`` raises :exc:`TypeError` if " -"*format_spec* is not an empty string." -msgstr "" -"``object().__format__(format_spec)`` lève :exc:`TypeError` si *format_spec* " -"n'est pas une chaîne vide." - -#: library/functions.rst:875 -#, fuzzy -msgid "" -"Create a new frozen dictionary. The :class:`frozendict` object is a built-" -"in class. See :class:`frozendict` and :ref:`typesmapping` for documentation " -"about this class." -msgstr "" -"Crée un nouveau dictionnaire. L'objet :class:`dict` est la classe du " -"dictionnaire. Voir :class:`dict` et :ref:`typesmapping` pour vous documenter " -"sur cette classe." - -#: library/functions.rst:878 -#, fuzzy -msgid "" -"For other containers see the built-" -"in :class:`dict`, :class:`list`, :class:`set`, and :class:`tuple` classes, " -"as well as the :mod:`collections` module." -msgstr "" -"Pour les autres conteneurs, voir les classes " -"natives :class:`list`, :class:`set`, et :class:`tuple`, ainsi que le " -"module :mod:`collections`." - -#: library/functions.rst:888 -msgid "" -"Return a new :class:`frozenset` object, optionally with elements taken from " -"*iterable*. ``frozenset`` is a built-in class. See :class:`frozenset` " -"and :ref:`types-set` for documentation about this class." -msgstr "" -"Renvoie un nouveau :class:`frozenset`, dont les objets sont éventuellement " -"tirés d'*iterable*. ``frozenset`` est une classe native. " -"Voir :class:`frozenset` et :ref:`types-set` pour la documentation sur cette " -"classe." - -#: library/functions.rst:892 -msgid "" -"For other containers see the built-" -"in :class:`set`, :class:`list`, :class:`tuple`, and :class:`dict` classes, " -"as well as the :mod:`collections` module." -msgstr "" -"Pour d'autres conteneurs, voyez les classes " -"natives :class:`set`, :class:`list`, :class:`tuple`, et :class:`dict`, ainsi " -"que le module :mod:`collections`." - -#: library/functions.rst:900 -msgid "" -"Return the value of the named attribute of *object*. *name* must be a " -"string. If the string is the name of one of the object's attributes, the " -"result is the value of that attribute. For example, ``getattr(x, " -"'foobar')`` is equivalent to ``x.foobar``. If the named attribute does not " -"exist, *default* is returned if provided, otherwise :exc:`AttributeError` is " -"raised. *name* need not be a Python identifier (see :func:`setattr`)." -msgstr "" -"Renvoie la valeur de l'attribut nommé *name* de l'objet *object*. *name* " -"doit être une chaîne. Si la chaîne est le nom d'un des attributs de l'objet, " -"le résultat est la valeur de cet attribut. Par exemple, ``getattr(x, " -"'foobar')`` est équivalent à ``x.foobar``. Si l'attribut n'existe pas, mais " -"que *default* est fourni, celui-ci est renvoyé. Sinon " -"l'exception :exc:`AttributeError` est levée. *name* n'a pas besoin d'être un " -"identifiant Python (voir :func:`setattr`)." - -# suit un : -#: library/functions.rst:909 -msgid "" -"Since :ref:`private name mangling ` happens at " -"compilation time, one must manually mangle a private attribute's (attributes " -"with two leading underscores) name in order to retrieve it " -"with :func:`getattr`." -msgstr "" -"étant donné que la :ref:`transformation des noms privés ` se produit au moment de la compilation, il faut modifier " -"manuellement le nom d'un attribut privé (attributs avec deux traits de " -"soulignement en tête) afin de le récupérer avec :func:`getattr`." - -#: library/functions.rst:917 -msgid "" -"Return the dictionary implementing the current module namespace. For code " -"within functions, this is set when the function is defined and remains the " -"same regardless of where the function is called." -msgstr "" -"Renvoie le dictionnaire implémentant l'espace de nommage du module actuel. " -"Pour le code dans les fonctions, il est défini lorsque la fonction est " -"définie et reste le même quel que soit le moment où la fonction est appelée." - -#: library/functions.rst:924 -msgid "" -"The arguments are an object and a string. The result is ``True`` if the " -"string is the name of one of the object's attributes, ``False`` if not. " -"(This is implemented by calling ``getattr(object, name)`` and seeing whether " -"it raises an :exc:`AttributeError` or not.)" -msgstr "" -"Les arguments sont : un objet et une chaîne de caractères. Le résultat est " -"``True`` si la chaîne est le nom d'un des attributs de l'objet, sinon " -"``False`` (l'implémentation appelle ``getattr(object, name)`` et regarde si " -"une exception :exc:`AttributeError` a été levée)." - -#: library/functions.rst:932 -msgid "" -"Return the hash value of the object (if it has one). Hash values are " -"integers. They are used to quickly compare dictionary keys during a " -"dictionary lookup. Numeric values that compare equal have the same hash " -"value (even if they are of different types, as is the case for 1 and 1.0)." -msgstr "" -"Renvoie la valeur de hachage d'un objet (s'il en a une). Les valeurs de " -"hachage sont des entiers. Elles sont utilisées pour comparer rapidement des " -"clés de dictionnaire lors de leur recherche. Les valeurs numériques égales " -"ont la même valeur de hachage (même si leurs types sont différents, comme " -"pour ``1`` et ``1.0``)." - -# suit un : -#: library/functions.rst:939 -#, fuzzy -msgid "" -"For objects with custom :meth:`~object.__hash__` methods, note " -"that :func:`hash` truncates the return value based on the bit width of the " -"host machine." -msgstr "" -"pour les objets dont la méthode :meth:`__hash__` est implémentée, notez " -"que :func:`hash` tronque la valeur donnée en fonction du nombre de bits de " -"la machine hôte. Voir :meth:`__hash__ ` pour plus " -"d'information." - -#: library/functions.rst:946 -msgid "" -"Invoke the built-in help system. (This function is intended for interactive " -"use.) If no argument is given, the interactive help system starts on the " -"interpreter console. If the argument is a string, then the string is looked " -"up as the name of a module, function, class, method, keyword, or " -"documentation topic, and a help page is printed on the console. If the " -"argument is any other kind of object, a help page on the object is generated." -msgstr "" -"Invoque le système d'aide natif (cette fonction est destinée à l'usage en " -"mode interactif). Si aucun argument n'est fourni, le système d'aide démarre " -"dans l'interpréteur. Si l'argument est une chaîne, celle-ci est recherchée " -"comme le nom d'un module, d'une fonction, d'une classe, d'une méthode, d'un " -"mot clé, ou d'un sujet de documentation, et une page d'aide est affichée sur " -"la console. Si l'argument est d'un autre type, une page d'aide sur cet objet " -"est générée." - -#: library/functions.rst:953 -msgid "" -"Note that if a slash(/) appears in the parameter list of a function when " -"invoking :func:`help`, it means that the parameters prior to the slash are " -"positional-only. For more info, see :ref:`the FAQ entry on positional-only " -"parameters `." -msgstr "" -"Notez que si une barre oblique (/) apparaît dans la liste des paramètres " -"d'une fonction lorsque vous appelez :func:`help`, cela signifie que les " -"paramètres placés avant la barre oblique sont strictement positionnels. Pour " -"plus d'informations, voir :ref:`La FAQ sur les arguments positionnels `." - -#: library/functions.rst:958 -msgid "" -"This function is added to the built-in namespace by the :mod:`site` module." -msgstr "" -"Cette fonction est ajoutée à l'espace de nommage natif par le " -"module :mod:`site`." - -# suit un : -#: library/functions.rst:960 -msgid "" -"Changes to :mod:`pydoc` and :mod:`inspect` mean that the reported signatures " -"for callables are now more comprehensive and consistent." -msgstr "" -"les changements aux modules :mod:`pydoc` et :mod:`inspect` rendent les " -"signatures des appelables plus compréhensibles et cohérentes." - -#: library/functions.rst:967 -#, fuzzy -msgid "" -"Convert an integer number to a lowercase hexadecimal string prefixed with " -"\"0x\". If *integer* is not a Python :class:`int` object, it has to define " -"an :meth:`~object.__index__` method that returns an integer. Some examples:" -msgstr "" -"Convertit un entier en chaîne hexadécimale préfixée de \"0x\". Si *x* n'est " -"pas un :class:`int`, il doit définir une méthode :meth:`~object.__index__` " -"qui renvoie un entier. Quelques exemples :" - -#: library/functions.rst:976 -msgid "" -"If you want to convert an integer number to an uppercase or lower " -"hexadecimal string with prefix or not, you can use either of the following " -"ways:" -msgstr "" -"Si vous voulez convertir un nombre entier en chaîne hexadécimale, en " -"majuscule ou non, préfixée ou non, vous pouvez utiliser l'une des méthodes " -"suivantes :" - -#: library/functions.rst:988 -msgid "" -"See also :func:`int` for converting a hexadecimal string to an integer using " -"a base of 16." -msgstr "" -"Voir aussi :func:`int` pour convertir une chaîne hexadécimale en un entier " -"(en affectant 16 à l'argument *base*)." - -# suit un : -#: library/functions.rst:993 -msgid "" -"To obtain a hexadecimal string representation for a float, use " -"the :meth:`float.hex` method." -msgstr "" -"pour obtenir une représentation hexadécimale sous forme de chaîne d'un " -"nombre à virgule flottante, utilisez la méthode :meth:`float.hex`." - -#: library/functions.rst:999 -msgid "" -"Return the \"identity\" of an object. This is an integer which is " -"guaranteed to be unique and constant for this object during its lifetime. " -"Two objects with non-overlapping lifetimes may have the same :func:`id` " -"value." -msgstr "" -"Renvoie l'« identité » d'un objet. C'est un nombre entier garanti unique et " -"constant pour cet objet durant sa durée de vie. Deux objets dont les durées " -"de vie ne se chevauchent pas peuvent partager le même :func:`id`." - -# suit un : -#: library/functions.rst:1004 -msgid "This is the address of the object in memory." -msgstr "c'est l'adresse de l'objet en mémoire." - -#: library/functions.rst:1006 -msgid "" -"Raises an :ref:`auditing event ` ``builtins.id`` with argument " -"``id``." -msgstr "" -"Lève un :ref:`évènement d'audit ` ``builtins.id`` avec l'argument " -"``id``." - -#: library/functions.rst:1012 -msgid "" -"If the *prompt* argument is present, it is written to standard output " -"without a trailing newline. The function then reads a line from input, " -"converts it to a string (stripping a trailing newline), and returns that. " -"When EOF is read, :exc:`EOFError` is raised. Example::" -msgstr "" -"Si l'argument *prompt* est donné, il est écrit sur la sortie standard sans " -"le retour à la ligne final. La fonction lit ensuite une ligne sur l'entrée " -"standard et la convertit en chaîne (supprimant le retour à la ligne final) " -"qu'elle renvoie. Lorsque EOF est lu, :exc:`EOFError` est levée. Exemple ::" - -#: library/functions.rst:1022 -msgid "" -"If the :mod:`readline` module was loaded, then :func:`input` will use it to " -"provide elaborate line editing and history features." -msgstr "" -"Si le module :mod:`readline` est chargé, :func:`input` l'utilisera pour " -"fournir des fonctionnalités d'édition et d'historique élaborées." - -#: library/functions.rst:1027 -msgid "" -"Raises an :ref:`auditing event ` ``builtins.input`` with argument " -"``prompt`` before reading input" -msgstr "" -"Lève un :ref:`évènement d'audit ` ``builtins.input`` avec " -"l'argument ``prompt`` avant de lire l'entrée." - -#: library/functions.rst:1032 -msgid "" -"Raises an :ref:`auditing event ` ``builtins.input/result`` with " -"the result after successfully reading input." -msgstr "" -"Lève un :ref:`événement d'audit ` ``builtins.input/result`` avec " -"le résultat après avoir lu avec succès l'entrée." - -#: library/functions.rst:1039 -#, fuzzy -msgid "" -"Return an integer object constructed from a number or a string, or return " -"``0`` if no arguments are given." -msgstr "" -"Renvoie un nombre a virgule flottante depuis un nombre ou une chaîne *x*." - -#: library/functions.rst:1059 -#, fuzzy -msgid "" -"If the argument defines :meth:`~object.__int__`, ``int(x)`` returns " -"``x.__int__()``. If the argument defines :meth:`~object.__index__`, it " -"returns ``x.__index__()``. For floating-point numbers, this truncates " -"towards zero." -msgstr "" -"Renvoie un entier construit depuis un nombre ou une chaîne *x*, ou ``0`` si " -"aucun argument n'est fourni. Si *x* définit une " -"méthode :meth:`~object.__int__`, ``int(x)`` renvoie ``x.__int__()``. Si *x* " -"définit :meth:`~object.__index__`, ``int(x)`` renvoie ``x.__index__()`` Si " -"*x* définit :meth:`~object.__trunc__`, ``int(x)`` renvoie ``x.__trunc__()``. " -"Les nombres à virgule flottante sont tronqués vers zéro." - -#: library/functions.rst:1064 -#, fuzzy -msgid "" -"If the argument is not a number or if *base* is given, then it must be a " -"string, :class:`bytes`, or :class:`bytearray` instance representing an " -"integer in radix *base*. Optionally, the string can be preceded by ``+`` or " -"``-`` (with no space in between), have leading zeros, be surrounded by " -"whitespace, and have single underscores interspersed between digits." -msgstr "" -"Si *x* n'est pas un nombre ou si *base* est fournie, alors *x* doit être une " -"chaîne, une instance :class:`bytes` ou une instance :class:`bytearray` " -"représentant un entier dans la base *base*. Facultativement, la chaîne peut " -"être précédée de ``+`` ou ``-`` (sans espace qui suit), avoir des zéros non " -"significatifs, être entourée de caractères d'espacement et avoir des tirets " -"bas (un seul à la fois) intercalés entre les chiffres." - -#: library/functions.rst:1070 -msgid "" -"A base-n integer string contains digits, each representing a value from 0 to " -"n-1. The values 0--9 can be represented by any Unicode decimal digit. The " -"values 10--35 can be represented by ``a`` to ``z`` (or ``A`` to ``Z``). The " -"default *base* is 10. The allowed bases are 0 and 2--36. Base-2, -8, and -16 " -"strings can be optionally prefixed with ``0b``/``0B``, ``0o``/``0O``, or " -"``0x``/``0X``, as with integer literals in code. For base 0, the string is " -"interpreted in a similar way to an :ref:`integer literal in code " -"`, in that the actual base is 2, 8, 10, or 16 as determined by the " -"prefix. Base 0 also disallows leading zeros: ``int('010', 0)`` is not legal, " -"while ``int('010')`` and ``int('010', 8)`` are." -msgstr "" -"Une chaine représentant un entier en base *n* contient des chiffres, chacun " -"représentant une valeur de 0 à n-1. Les valeurs 0 à 9 peuvent être " -"représentées par n'importe lequel des chiffres décimaux Unicode. Les valeurs " -"de 10 à 35 peuvent être représentées par ``a`` jusqu'à ``z`` (ou ``A`` à " -"``Z``). La *base* par défaut est 10. Les valeurs autorisées pour *base* sont " -"0 et 2 à 36. Les littéraux en base 2, 8, et 16 peuvent être préfixés avec " -"``0b``/``0B``, ``0o``/``0O``, ou ``0x``/``0X`` tout comme les littéraux dans " -"le code. Fournir 0 comme *base* demande d'interpréter exactement comme " -"un :ref:`entier littéral dans du code ` Python, donc la base sera " -"2, 8, 10, ou 16 en fonction du préfixe. Indiquer 0 comme base interdit les " -"zéros en tête, ainsi ``int('010', 0)`` n'est pas légal, alors que " -"``int('010')`` l'est tout comme ``int('010', 8)``." - -#: library/functions.rst:1081 -msgid "The integer type is described in :ref:`typesnumeric`." -msgstr "Le type des entiers est décrit dans :ref:`typesnumeric`." - -# suit un : -#: library/functions.rst:1083 -msgid "" -"If *base* is not an instance of :class:`int` and the *base* object has " -"a :meth:`base.__index__ ` method, that method is called to " -"obtain an integer for the base. Previous versions used :meth:`base.__int__ " -"` instead of :meth:`base.__index__ `." -msgstr "" -"si *base* n'est pas une instance d':class:`int` et que *base* a une " -"méthode :meth:`base.__index__ `, cette méthode est appelée " -"pour obtenir un entier pour cette base. Les versions précédentes " -"utilisaient :meth:`base.__int__ ` au lieu " -"de :meth:`base.__index__ `." - -#: library/functions.rst:1093 -msgid "The first parameter is now positional-only." -msgstr "" - -#: library/functions.rst:1096 -msgid "" -"Falls back to :meth:`~object.__index__` if :meth:`~object.__int__` is not " -"defined." -msgstr "" -"Revient à :meth:`~object.__index__` si :meth:`~object.__int__` n'est pas " -"définie." - -#: library/functions.rst:1099 -#, fuzzy -msgid "" -":class:`int` string inputs and string representations can be limited to help " -"avoid denial of service attacks. A :exc:`ValueError` is raised when the " -"limit is exceeded while converting a string to an :class:`int` or when " -"converting an :class:`int` into a string would exceed the limit. See " -"the :ref:`integer string conversion length limitation ` " -"documentation." -msgstr "" -"les chaînes données à :class:`int` et les représentations de chaîne peuvent " -"être limitées pour aider à éviter les attaques par déni de service. " -"Une :exc:`ValueError` est levée lorsque la limite est dépassée lors de la " -"conversion d'une chaîne *x* en un :class:`int` ou lorsque la conversion " -"d'un :class:`int` en une chaîne dépasserait la limite. Voir la documentation " -"relative à la :ref:`limites de longueur lors de la conversion de chaînes en " -"entiers `." - -# suit un : -#: library/functions.rst:1107 -#, fuzzy -msgid "" -":func:`int` no longer delegates to the :meth:`~object.__trunc__` method." -msgstr "le repli vers :meth:`~object.__trunc__` est obsolète." - -#: library/functions.rst:1112 -msgid "" -"Return ``True`` if the *object* argument is an instance of the *classinfo* " -"argument, or of a (direct, indirect, or :term:`virtual `) subclass thereof. If *object* is not an object of the given type, " -"the function always returns ``False``. If *classinfo* is a tuple of type " -"objects (or recursively, other such tuples) or a :ref:`types-union` of " -"multiple types, return ``True`` if *object* is an instance of any of the " -"types. If *classinfo* is not a type or tuple of types and such tuples, " -"a :exc:`TypeError` exception is raised. :exc:`TypeError` may not be raised " -"for an invalid type if an earlier check succeeds." -msgstr "" -"Renvoie ``True`` si *object* est une instance de *classinfo*, ou d'une de " -"ses classes filles, directe, indirecte, ou :term:`abstraite `. Si *object* n'est pas un objet du type donné, la fonction renvoie " -"toujours ``False``. Si *classinfo* est un *n*-uplet de types (ou " -"récursivement, d'autres *n*-uplets) ou une :ref:`union de types ` différents, renvoie ``True`` si *object* est une instance de " -"n'importe quel de ces types. Si *classinfo* n'est ni un type ni un *n*-uplet " -"de types (et récursivement), une exception :exc:`TypeError` est " -"levée. :exc:`TypeError` ne peut pas être levée pour un type invalide si une " -"des vérifications précédentes réussit." - -#: library/functions.rst:1137 -msgid "*classinfo* can be a :ref:`types-union`." -msgstr "*classinfo* peut être une :ref:`union de types `." - -#: library/functions.rst:1129 -#, fuzzy -msgid "" -"Return ``True`` if *cls* is a subclass (direct, indirect, or :term:`virtual " -"`) of *classinfo*. A class is considered a subclass of " -"itself. *classinfo* may be a tuple of class objects (or recursively, other " -"such tuples) or a :ref:`types-union`, in which case return ``True`` if *cls* " -"is a subclass of any entry in *classinfo*. In any other case, " -"a :exc:`TypeError` exception is raised." -msgstr "" -"Renvoie ``True`` si *class* est une classe fille (directe, indirecte " -"ou :term:`abstraite `) de *classinfo*. Une classe est " -"considérée sous-classe d'elle-même. *classinfo* peut être un *n*-uplet de " -"classes (ou récursivement, d'autres *n*-uplets) ou une :ref:`union de types " -"`, dans ce cas elle renvoie ``True`` si *class* est une sous-" -"classe d'une partie de *classinfo*. Dans tous les autres cas, " -"une :exc:`TypeError` est levée." - -#: library/functions.rst:1144 -#, fuzzy -msgid "" -"Return an :term:`iterator` object. The first argument is interpreted very " -"differently depending on the presence of the second argument. Without a " -"second argument, the single argument must be a collection object which " -"supports the :term:`iterable` protocol (the :meth:`~object.__iter__` " -"method), or it must support the sequence protocol " -"(the :meth:`~object.__getitem__` method with integer arguments starting at " -"``0``). If it does not support either of those protocols, :exc:`TypeError` " -"is raised. If the second argument, *sentinel*, is given, then the first " -"argument must be a callable object. The iterator created in this case will " -"call *callable* with no arguments for each call to " -"its :meth:`~iterator.__next__` method; if the value returned is equal to " -"*sentinel*, :exc:`StopIteration` will be raised, otherwise the value will be " -"returned." -msgstr "" -"Renvoie un objet :term:`itérateur `. La signification du premier " -"argument dépend grandement de la présence du second. Sans cet argument, " -"*object* doit être une collection d'objets prenant en charge le protocole " -"d':term:`itération ` (la méthode :meth:`__iter__`) ou le protocole " -"des séquences (la méthode :meth:`__getitem__`, avec des nombres entiers " -"commençant par ``0`` comme argument). S'il ne gère aucun de ces protocoles, " -"une :exc:`TypeError` est levée. Si le second argument *sentinel* est fourni, " -"*object* doit être appelable. L'itérateur créé dans ce cas appelle *object* " -"sans argument à chaque appel de :meth:`~iterator.__next__`. Si la valeur " -"reçue est égale à *sentinel*, une :exc:`StopIteration` est levée, sinon la " -"valeur est renvoyée." - -#: library/functions.rst:1158 -msgid "See also :ref:`typeiter`." -msgstr "Voir aussi :ref:`typeiter`." - -#: library/functions.rst:1160 -msgid "" -"One useful application of the second form of :func:`iter` is to build a " -"block-reader. For example, reading fixed-width blocks from a binary database " -"file until the end of file is reached::" -msgstr "" -"Une autre application utile de la deuxième forme de :func:`iter` est de " -"construire un lecteur par blocs. Par exemple, lire des blocs de taille fixe " -"d'une base de donnée binaire jusqu'à ce que la fin soit atteinte ::" - -#: library/functions.rst:1172 -msgid "" -"Return the length (the number of items) of an object. The argument may be a " -"sequence (such as a string, bytes, tuple, list, or range) or a collection " -"(such as a dictionary, set, or frozen set)." -msgstr "" -"Renvoie la longueur (nombre d'éléments) d'un objet. L'argument peut être une " -"séquence (telle qu'une chaîne de caractères ou d'octets, un *n*-uplet, une " -"liste ou un intervalle) ou une collection (telle qu'un dictionnaire, un " -"ensemble ou un ensemble figé)." - -#: library/functions.rst:1178 -msgid "" -"``len`` raises :exc:`OverflowError` on lengths larger " -"than :data:`sys.maxsize`, such as :class:`range(2 ** 100) `." -msgstr "" -"``len`` lève une :exc:`OverflowError` sur des longueurs supérieures " -"à :data:`sys.maxsize`, par exemple pour :class:`range(2 ** 100) `." - -#: library/functions.rst:1186 -msgid "" -"Rather than being a function, :class:`list` is actually a mutable sequence " -"type, as documented in :ref:`typesseq-list` and :ref:`typesseq`." -msgstr "" -"Contrairement aux apparences, :class:`list` n'est pas une fonction mais un " -"type séquentiel mutable, comme décrit dans :ref:`typesseq-list` " -"et :ref:`typesseq`." - -#: library/functions.rst:1192 -msgid "" -"Return a mapping object representing the current local symbol table, with " -"variable names as the keys, and their currently bound references as the " -"values." -msgstr "" - -#: library/functions.rst:1196 -msgid "" -"At module scope, as well as when using :func:`exec` or :func:`eval` with a " -"single namespace, this function returns the same namespace " -"as :func:`globals`." -msgstr "" - -#: library/functions.rst:1200 -msgid "" -"At class scope, it returns the namespace that will be passed to the " -"metaclass constructor." -msgstr "" - -#: library/functions.rst:1203 -msgid "" -"When using ``exec()`` or ``eval()`` with separate local and global " -"arguments, it returns the local namespace passed in to the function call." -msgstr "" - -#: library/functions.rst:1206 -msgid "" -"In all of the above cases, each call to ``locals()`` in a given frame of " -"execution will return the *same* mapping object. Changes made through the " -"mapping object returned from ``locals()`` will be visible as assigned, " -"reassigned, or deleted local variables, and assigning, reassigning, or " -"deleting local variables will immediately affect the contents of the " -"returned mapping object." -msgstr "" - -#: library/functions.rst:1213 -msgid "" -"In an :term:`optimized scope` (including functions, generators, and " -"coroutines), each call to ``locals()`` instead returns a fresh dictionary " -"containing the current bindings of the function's local variables and any " -"nonlocal cell references. In this case, name binding changes made via the " -"returned dict are *not* written back to the corresponding local variables or " -"nonlocal cell references, and assigning, reassigning, or deleting local " -"variables and nonlocal cell references does *not* affect the contents of " -"previously returned dictionaries." -msgstr "" - -#: library/functions.rst:1222 -msgid "" -"Calling ``locals()`` as part of a comprehension in a function, generator, or " -"coroutine is equivalent to calling it in the containing scope, except that " -"the comprehension's initialised iteration variables will be included. In " -"other scopes, it behaves as if the comprehension were running as a nested " -"function." -msgstr "" - -#: library/functions.rst:1228 -msgid "" -"Calling ``locals()`` as part of a generator expression is equivalent to " -"calling it in a nested generator function." -msgstr "" - -#: library/functions.rst:1231 -msgid "" -"The behaviour of ``locals()`` in a comprehension has been updated as " -"described in :pep:`709`." -msgstr "" - -#: library/functions.rst:1235 -msgid "" -"As part of :pep:`667`, the semantics of mutating the mapping objects " -"returned from this function are now defined. The behavior " -"in :term:`optimized scopes ` is now as described above. " -"Aside from being defined, the behaviour in other scopes remains unchanged " -"from previous versions." -msgstr "" - -#: library/functions.rst:1245 -#, fuzzy -msgid "" -"Return an iterator that applies *function* to every item of *iterable*, " -"yielding the results. If additional *iterables* arguments are passed, " -"*function* must take that many arguments and is applied to the items from " -"all iterables in parallel. With multiple iterables, the iterator stops when " -"the shortest iterable is exhausted. If *strict* is ``True`` and one of the " -"iterables is exhausted before the others, a :exc:`ValueError` is raised. For " -"cases where the function inputs are already arranged into argument tuples, " -"see :func:`itertools.starmap`." -msgstr "" -"Renvoie un itérateur appliquant *function* à chaque élément de *iterable*, " -"et donnant ses résultats au fur et à mesure avec ``yield``. Si d'autres " -"*iterables* sont fournis, *function* doit prendre autant d'arguments, et est " -"appelée avec les éléments de tous les itérables en parallèle. Avec plusieurs " -"itérables, l'itération s'arrête avec l'itérable le plus court. Pour les cas " -"où les arguments sont déjà rangés sous forme de *n*-uplets, " -"voir :func:`itertools.starmap`." - -# suit un : -#: library/functions.rst:1254 -#, fuzzy -msgid "Added the *strict* parameter." -msgstr "ajout du paramètre *closure*." - -#: library/functions.rst:1262 -msgid "" -"Return the largest item in an iterable or the largest of two or more " -"arguments." -msgstr "" -"Renvoie le plus grand élément d'un itérable, ou l'argument le plus grand " -"parmi au moins deux arguments." - -#: library/functions.rst:1265 -msgid "" -"If one positional argument is provided, it should be an :term:`iterable`. " -"The largest item in the iterable is returned. If two or more positional " -"arguments are provided, the largest of the positional arguments is returned." -msgstr "" -"Si un seul argument positionnel est fourni, il doit être :term:`itérable " -"`. Le plus grand élément de l'itérable est renvoyé. Si au moins " -"deux arguments positionnels sont fournis, l'argument le plus grand sera " -"renvoyé." - -#: library/functions.rst:1308 -msgid "" -"There are two optional keyword-only arguments. The *key* argument specifies " -"a one-argument ordering function like that used for :meth:`list.sort`. The " -"*default* argument specifies an object to return if the provided iterable is " -"empty. If the iterable is empty and *default* is not provided, " -"a :exc:`ValueError` is raised." -msgstr "" -"Elle accepte deux arguments nommés optionnels. L'argument *key* spécifie une " -"fonction à un argument permettant de trier comme pour :meth:`list.sort`. " -"L'argument *default* fournit quant à lui un objet à donner si l'itérable " -"fourni est vide. Si l'itérable est vide et que *default* n'est pas " -"fourni, :exc:`ValueError` est levée." - -#: library/functions.rst:1276 -msgid "" -"If multiple items are maximal, the function returns the first one " -"encountered. This is consistent with other sort-stability preserving tools " -"such as ``sorted(iterable, key=keyfunc, reverse=True)[0]`` and " -"``heapq.nlargest(1, iterable, key=keyfunc)``." -msgstr "" -"Si plusieurs éléments représentent la plus grande valeur, le premier " -"rencontré est renvoyé. C'est cohérent avec d'autres outils préservant une " -"stabilité lors du tri, tels que ``sorted(iterable, key=keyfunc, reverse=True)" -"[0]`` et ``heapq.nlargest(1, iterable, key=keyfunc)``." - -# suit un : -#: library/functions.rst:1319 -#, fuzzy -msgid "Added the *default* keyword-only parameter." -msgstr "l'argument nommé (et seulement donné par son nom) *default*." - -# suit un : -#: library/functions.rst:1322 -msgid "The *key* can be ``None``." -msgstr "l'argument *key* peut être ``None``." - -#: library/functions.rst:1292 -msgid "" -"Return a \"memory view\" object created from the given argument. " -"See :ref:`typememoryview` for more information." -msgstr "" -"Renvoie une « vue mémoire » (*memory view*) créée depuis l'argument. " -"Voir :ref:`typememoryview` pour plus d'informations." - -#: library/functions.rst:1300 -msgid "" -"Return the smallest item in an iterable or the smallest of two or more " -"arguments." -msgstr "" -"Renvoie le plus petit élément d'un itérable ou le plus petit d'au moins deux " -"arguments." - -#: library/functions.rst:1303 -msgid "" -"If one positional argument is provided, it should be an :term:`iterable`. " -"The smallest item in the iterable is returned. If two or more positional " -"arguments are provided, the smallest of the positional arguments is returned." -msgstr "" -"Si un seul argument est fourni, il doit être :term:`itérable `. Le " -"plus petit élément de l'itérable est renvoyé. Si au moins deux arguments " -"positionnels sont fournis, le plus petit argument positionnel est renvoyé." - -#: library/functions.rst:1314 -msgid "" -"If multiple items are minimal, the function returns the first one " -"encountered. This is consistent with other sort-stability preserving tools " -"such as ``sorted(iterable, key=keyfunc)[0]`` and ``heapq.nsmallest(1, " -"iterable, key=keyfunc)``." -msgstr "" -"Si plusieurs éléments sont minimaux, la fonction renvoie le premier " -"rencontré. C'est cohérent avec d'autres outils préservant une stabilité lors " -"du tri, tels que ``sorted(iterable, key=keyfunc)[0]`` et " -"``heapq.nsmallest(1, iterable, key=keyfunc)``." - -#: library/functions.rst:1329 -msgid "" -"Retrieve the next item from the :term:`iterator` by calling " -"its :meth:`~iterator.__next__` method. If *default* is given, it is " -"returned if the iterator is exhausted, otherwise :exc:`StopIteration` is " -"raised." -msgstr "" -"Donne l'élément suivant de l':term:`itérateur ` en appelant sa " -"méthode :meth:`~iterator.__next__`. Si *default* est fourni, il est renvoyé " -"quand l'itérateur est épuisé, sinon une :exc:`StopIteration` est levée." - -#: library/functions.rst:1336 -#, fuzzy -msgid "" -"This is the ultimate base class of all other classes. It has methods that " -"are common to all instances of Python classes. When the constructor is " -"called, it returns a new featureless object. The constructor does not accept " -"any arguments." -msgstr "" -"Renvoie un objet vide. :class:`object` est la classe parente de toutes les " -"classes. Elle possède des méthodes communes à toutes les instances de " -"classes en Python. Cette fonction n'accepte aucun argument." - -#: library/functions.rst:1343 -#, fuzzy -msgid "" -":class:`object` instances do *not* have :attr:`~object.__dict__` attributes, " -"so you can't assign arbitrary attributes to an instance of :class:`object`." -msgstr "" -":class:`object` n'a *pas* d'attribut :attr:`~object.__dict__`, vous ne " -"pouvez donc pas assigner d'attributs arbitraires à une instance " -"d':class:`object`." - -#: library/functions.rst:1350 -#, fuzzy -msgid "" -"Convert an integer number to an octal string prefixed with \"0o\". The " -"result is a valid Python expression. If *integer* is not a " -"Python :class:`int` object, it has to define an :meth:`~object.__index__` " -"method that returns an integer. For example:" -msgstr "" -"Convertit un entier en sa représentation octale dans une chaîne préfixée de " -"\"0o\". Le résultat est une expression Python valide. Si *x* n'est pas un " -"objet :class:`int`, il doit définir une méthode :meth:`~object.__index__` " -"qui donne un entier, par exemple :" - -#: library/functions.rst:1360 -msgid "" -"If you want to convert an integer number to an octal string either with the " -"prefix \"0o\" or not, you can use either of the following ways." -msgstr "" -"Si vous voulez convertir un nombre entier en une chaîne octale, avec ou sans " -"le préfixe ``0o``, vous pouvez utiliser l'une des méthodes suivantes." - -#: library/functions.rst:1377 -msgid "" -"Open *file* and return a corresponding :term:`file object`. If the file " -"cannot be opened, an :exc:`OSError` is raised. See :ref:`tut-files` for more " -"examples of how to use this function." -msgstr "" -"Ouvre *file* et donne un :term:`objet fichier ` correspondant. " -"Si le fichier ne peut pas être ouvert, une :exc:`OSError` est levée. " -"Voir :ref:`tut-files` pour plus d'exemples d'utilisation de cette fonction." - -#: library/functions.rst:1381 -msgid "" -"*file* is a :term:`path-like object` giving the pathname (absolute or " -"relative to the current working directory) of the file to be opened or an " -"integer file descriptor of the file to be wrapped. (If a file descriptor is " -"given, it is closed when the returned I/O object is closed unless *closefd* " -"is set to ``False``.)" -msgstr "" -"*file* est un :term:`objet simili-chemin ` donnant le " -"chemin (absolu ou relatif au répertoire courant) du fichier à ouvrir ou un " -"nombre entier représentant le descripteur de fichier à envelopper (si un " -"descripteur de fichier est donné, il sera fermé en même temps que l'objet " -"d'entrée-sortie renvoyé, sauf si *closefd* est mis à ``False``)." - -#: library/functions.rst:1387 -#, fuzzy -msgid "" -"*mode* is an optional string that specifies the mode in which the file is " -"opened. It defaults to ``'r'`` which means open for reading in text mode. " -"Other common values are ``'w'`` for writing (truncating the file if it " -"already exists), ``'x'`` for exclusive creation, and ``'a'`` for appending " -"(which on *some* Unix systems, means that *all* writes append to the end of " -"the file regardless of the current seek position). In text mode, if " -"*encoding* is not specified the encoding used is platform-" -"dependent: :func:`locale.getencoding` is called to get the current locale " -"encoding. (For reading and writing raw bytes use binary mode and leave " -"*encoding* unspecified.) The available modes are:" -msgstr "" -"*mode* est une chaîne optionnelle permettant de spécifier dans quel mode le " -"fichier est ouvert. Par défaut, *mode* vaut ``'r'`` qui signifie « ouvrir en " -"lecture pour du texte ». ``'w'`` est aussi une valeur classique, permettant " -"d'écrire (en effaçant le contenu du fichier s'il existe), ainsi que ``'x'`` " -"permettant une création exclusive et ``'a'`` pour ajouter à la fin du " -"fichier (ce qui, sur certains systèmes Unix, signifie que *toutes* les " -"écritures seront des ajouts en fin de fichier, sans tenir compte de la " -"position demandée). En mode texte, si *encoding* n'est pas spécifié, " -"l'encodage utilisé dépend de la plate-forme : :func:`locale.getencoding()` " -"est appelée pour obtenir l'encodage courant défini par les paramètres " -"régionaux (pour lire et écrire des octets bruts, utilisez le mode binaire " -"sans préciser *encoding*). Les modes disponibles sont :" - -#: library/functions.rst:1404 -msgid "Character" -msgstr "Caractère" - -#: library/functions.rst:1404 -msgid "Meaning" -msgstr "Signification" - -#: library/functions.rst:1406 -msgid "``'r'``" -msgstr "``'r'``" - -#: library/functions.rst:1406 -msgid "open for reading (default)" -msgstr "ouvre en lecture (par défaut)" - -#: library/functions.rst:1407 -msgid "``'w'``" -msgstr "``'w'``" - -#: library/functions.rst:1407 -msgid "open for writing, truncating the file first" -msgstr "ouvre en écriture, en effaçant le contenu du fichier" - -#: library/functions.rst:1408 -msgid "``'x'``" -msgstr "``'x'``" - -#: library/functions.rst:1408 -msgid "open for exclusive creation, failing if the file already exists" -msgstr "ouvre pour une création exclusive, échouant si le fichier existe déjà" - -#: library/functions.rst:1409 -msgid "``'a'``" -msgstr "``'a'``" - -#: library/functions.rst:1409 -msgid "open for writing, appending to the end of file if it exists" -msgstr "ouvre en écriture, ajoutant à la fin du fichier s'il existe" - -#: library/functions.rst:1410 -msgid "``'b'``" -msgstr "``'b'``" - -#: library/functions.rst:1410 -msgid "binary mode" -msgstr "mode binaire" - -#: library/functions.rst:1411 -msgid "``'t'``" -msgstr "``'t'``" - -#: library/functions.rst:1411 -msgid "text mode (default)" -msgstr "mode texte (par défaut)" - -#: library/functions.rst:1412 -msgid "``'+'``" -msgstr "``'+'``" - -#: library/functions.rst:1412 -msgid "open for updating (reading and writing)" -msgstr "ouvre en modification (lecture et écriture)" - -#: library/functions.rst:1415 -msgid "" -"The default mode is ``'r'`` (open for reading text, a synonym of ``'rt'``). " -"Modes ``'w+'`` and ``'w+b'`` open and truncate the file. Modes ``'r+'`` and " -"``'r+b'`` open the file with no truncation." -msgstr "" -"Le mode par défaut est ``'r'`` (ouverture pour lire du texte, un synonyme " -"pour ``'rt'``). Les modes ``'w+'`` et ``'w+b'`` ouvrent et vident le " -"fichier. Les modes ``'r+'`` et ``'r+b'`` ouvrent le fichier sans le vider." - -#: library/functions.rst:1419 -msgid "" -"As mentioned in the :ref:`io-overview`, Python distinguishes between binary " -"and text I/O. Files opened in binary mode (including ``'b'`` in the *mode* " -"argument) return contents as :class:`bytes` objects without any decoding. " -"In text mode (the default, or when ``'t'`` is included in the *mode* " -"argument), the contents of the file are returned as :class:`str`, the bytes " -"having been first decoded using a platform-dependent encoding or using the " -"specified *encoding* if given." -msgstr "" -"Comme mentionné dans :ref:`io-overview`, Python fait la différence entre les " -"entrées-sorties binaires et textes. Les fichiers ouverts en mode binaire " -"(avec ``'b'`` dans *mode*) donnent leur contenu sous forme de :class:`bytes` " -"sans décodage. En mode texte (par défaut, ou lorsque ``'t'`` est dans le " -"*mode*), le contenu du fichier est donné sous forme de :class:`str`, les " -"octets ayant été décodés au préalable en utilisant un encodage déduit de " -"l'environnement ou *encoding* s'il est donné." - -#: library/functions.rst:1429 -msgid "" -"Python doesn't depend on the underlying operating system's notion of text " -"files; all the processing is done by Python itself, and is therefore " -"platform-independent." -msgstr "" -"Python ne dépend pas de la représentation du fichier texte du système sous-" -"jacent. Tout le traitement est effectué par Python lui-même, et est ainsi " -"indépendant de la plate-forme." - -#: library/functions.rst:1433 -#, fuzzy -msgid "" -"*buffering* is an optional integer used to set the buffering policy. Pass 0 " -"to switch buffering off (only allowed in binary mode), 1 to select line " -"buffering (only usable when writing in text mode), and an integer > 1 to " -"indicate the size in bytes of a fixed-size chunk buffer. Note that " -"specifying a buffer size this way applies for binary buffered I/O, but " -"``TextIOWrapper`` (i.e., files opened with ``mode='r+'``) would have another " -"buffering. To disable buffering in ``TextIOWrapper``, consider using the " -"``write_through`` flag for :func:`io.TextIOWrapper.reconfigure`. When no " -"*buffering* argument is given, the default buffering policy works as follows:" -msgstr "" -"*buffering* est un entier optionnel permettant de configurer l'espace " -"tampon. 0 pour désactiver l'espace tampon (seulement autorisé en mode " -"binaire), 1 pour avoir un tampon travaillant ligne par ligne (seulement " -"disponible en mode texte), ou un entier supérieur à 1 pour donner la taille " -"en octets d'un tampon de taille fixe. Notez que spécifier une taille de " -"tampon de cette manière s'applique aux entrées-sorties binaires avec tampon, " -"mais que ``TextIOWrapper`` (c'est-à-dire, les fichiers ouverts avec " -"``mode='r+'``) a un autre tampon. Pour désactiver la mise en mémoire tampon " -"dans ``TextIOWrapper``, utilisez le drapeau ``write_through`` " -"de :func:`io.TextIOWrapper.reconfigure`. Sans l'argument *buffering*, les " -"comportements par défaut sont les suivants :" - -# énumération -#: library/functions.rst:1443 -#, fuzzy -msgid "" -"Binary files are buffered in fixed-size chunks; the size of the buffer is " -"``max(min(blocksize, 8 MiB), DEFAULT_BUFFER_SIZE)`` when the device block " -"size is available. On most systems, the buffer will typically be 128 " -"kilobytes long." -msgstr "" -"les fichiers binaires sont mis dans un tampon de taille fixe, dont la taille " -"est choisie par une heuristique essayant de déterminer la taille des blocs " -"du système sous-jacent, ou en utilisant par " -"défaut :attr:`io.DEFAULT_BUFFER_SIZE`. Sur de nombreux systèmes, le tampon " -"est de 4096 ou 8192 octets ;" - -# fin d'énumération -#: library/functions.rst:1448 -msgid "" -"\"Interactive\" text files (files for which :meth:`~io.IOBase.isatty` " -"returns ``True``) use line buffering. Other text files use the policy " -"described above for binary files." -msgstr "" -"les fichiers texte « interactifs » (fichiers pour " -"lesquels :meth:`io.IOBase.isatty` renvoie ``True``) utilisent un tampon " -"ligne par ligne. Les autres fichiers textes sont traités comme les fichiers " -"binaires." - -#: library/functions.rst:1452 -msgid "" -"*encoding* is the name of the encoding used to decode or encode the file. " -"This should only be used in text mode. The default encoding is platform " -"dependent (whatever :func:`locale.getencoding` returns), but any :term:`text " -"encoding` supported by Python can be used. See the :mod:`codecs` module for " -"the list of supported encodings." -msgstr "" -"*encoding* est le nom de l'encodage utilisé pour encoder ou décoder le " -"fichier. Il doit seulement être utilisé en mode texte. L'encodage par défaut " -"dépend de la plateforme (ce que renvoie :func:`locale.getencoding`), mais " -"n'importe quel :term:`encodage de texte ` pris en charge par " -"Python peut être utilisé. Voir :mod:`codecs` pour une liste des encodages " -"pris en charge." - -#: library/functions.rst:1458 -#, fuzzy -msgid "" -"*errors* is an optional string that specifies how encoding and decoding " -"errors are to be handled—this cannot be used in binary mode. A variety of " -"standard error handlers are available, though any error handling name that " -"has been registered with :func:`codecs.register_error` is also valid. The " -"standard names can be found in :ref:`error-handlers`." -msgstr "" -"*errors* est une chaîne facultative spécifiant comment les erreurs " -"d'encodage et de décodage sont gérées, ce n'est pas utilisable en mode " -"binaire. De nombreux gestionnaires d'erreurs standards sont disponibles " -"(listés sous :ref:`error-handlers`), aussi, tout nom de gestionnaire " -"d'erreur enregistré avec :func:`codecs.register_error` est aussi un argument " -"valide. Les noms standards sont :" - -#: library/functions.rst:1470 -msgid "" -"*newline* determines how to parse newline characters from the stream. It can " -"be ``None``, ``''``, ``'\\n'``, ``'\\r'``, and ``'\\r\\n'``. It works as " -"follows:" -msgstr "" -"*newline* contrôle comment interpréter les retours à la ligne. Il peut être " -"``None``, ``''``, ``'\\n'``, ``'\\r'``, et ``'\\r\\n'``. Il fonctionne comme " -"suit :" - -#: library/functions.rst:1474 -msgid "" -"When reading input from the stream, if *newline* is ``None``, universal " -"newlines mode is enabled. Lines in the input can end in ``'\\n'``, " -"``'\\r'``, or ``'\\r\\n'``, and these are translated into ``'\\n'`` before " -"being returned to the caller. If it is ``''``, universal newlines mode is " -"enabled, but line endings are returned to the caller untranslated. If it " -"has any of the other legal values, input lines are only terminated by the " -"given string, and the line ending is returned to the caller untranslated." -msgstr "" -"Lors de la lecture, si *newline* est ``None``, le mode *universal newlines* " -"est activé. Les lignes lues peuvent se terminer par ``'\\n'``, ``'\\r'``, ou " -"``'\\r\\n'``, et sont remplacées par ``'\\n'``, avant d'être renvoyées à " -"l'appelant. S'il vaut ``''``, le mode *universal newline* est activé mais " -"les fins de ligne ne sont pas remplacées. S'il a n'importe quelle autre " -"valeur autorisée, les lignes sont seulement terminées par la chaîne donnée, " -"qui est rendue telle quelle." - -#: library/functions.rst:1482 -msgid "" -"When writing output to the stream, if *newline* is ``None``, any ``'\\n'`` " -"characters written are translated to the system default line " -"separator, :data:`os.linesep`. If *newline* is ``''`` or ``'\\n'``, no " -"translation takes place. If *newline* is any of the other legal values, any " -"``'\\n'`` characters written are translated to the given string." -msgstr "" -"Lors de l'écriture, si *newline* est ``None``, chaque ``'\\n'`` est remplacé " -"par le séparateur de lignes par défaut du système :data:`os.linesep`. Si " -"*newline* est ``''`` ou ``'\\n'`` aucun remplacement n'est effectué. Si " -"*newline* est un autre caractère valide, chaque ``'\\n'`` sera remplacé par " -"la chaîne donnée." - -#: library/functions.rst:1488 -msgid "" -"If *closefd* is ``False`` and a file descriptor rather than a filename was " -"given, the underlying file descriptor will be kept open when the file is " -"closed. If a filename is given *closefd* must be ``True`` (the default); " -"otherwise, an error will be raised." -msgstr "" -"Si *closefd* est ``False`` et qu'un descripteur de fichier est fourni plutôt " -"qu'un nom de fichier, le descripteur de fichier sera laissé ouvert lorsque " -"le fichier sera fermé. Si un nom de fichier est donné, *closefd* doit rester " -"``True`` (la valeur par défaut) ; sinon, une erreur est levée." - -#: library/functions.rst:1493 -msgid "" -"A custom opener can be used by passing a callable as *opener*. The " -"underlying file descriptor for the file object is then obtained by calling " -"*opener* with (*file*, *flags*). *opener* must return an open file " -"descriptor (passing :mod:`os.open` as *opener* results in functionality " -"similar to passing ``None``)." -msgstr "" -"Un *opener* personnalisé peut être utilisé en fournissant un appelable comme " -"*opener*. Le descripteur de fichier de cet objet fichier sera alors obtenu " -"en appelant *opener* avec (*file*, *flags*). *opener* doit renvoyer un " -"descripteur de fichier ouvert (fournir :mod:`os.open` en tant qu'*opener* " -"aura le même effet que donner ``None``)." - -#: library/functions.rst:1499 -msgid "The newly created file is :ref:`non-inheritable `." -msgstr "" -"Il n'est :ref:`pas possible d'hériter du descripteur de fichier " -"` nouvellement créé." - -#: library/functions.rst:1501 -msgid "" -"The following example uses the :ref:`dir_fd ` parameter of " -"the :func:`os.open` function to open a file relative to a given directory::" -msgstr "" -"L'exemple suivant utilise le paramètre :ref:`dir_fd ` de la " -"fonction :func:`os.open` pour ouvrir un fichier relatif au dossier courant ::" - -#: library/functions.rst:1514 -msgid "" -"The type of :term:`file object` returned by the :func:`open` function " -"depends on the mode. When :func:`open` is used to open a file in a text " -"mode (``'w'``, ``'r'``, ``'wt'``, ``'rt'``, etc.), it returns a subclass " -"of :class:`io.TextIOBase` (specifically :class:`io.TextIOWrapper`). When " -"used to open a file in a binary mode with buffering, the returned class is a " -"subclass of :class:`io.BufferedIOBase`. The exact class varies: in read " -"binary mode, it returns an :class:`io.BufferedReader`; in write binary and " -"append binary modes, it returns an :class:`io.BufferedWriter`, and in read/" -"write mode, it returns an :class:`io.BufferedRandom`. When buffering is " -"disabled, the raw stream, a subclass " -"of :class:`io.RawIOBase`, :class:`io.FileIO`, is returned." -msgstr "" -"Le type d'\\ :term:`objet fichier ` renvoyé par la " -"fonction :func:`open` dépend du mode. Lorsque :func:`open` est utilisé pour " -"ouvrir un fichier en mode texte (``w``, ``r``, ``wt``, ``rt``, etc.), il " -"renvoie une classe fille de :class:`io.TextIOBase` " -"(spécifiquement : :class:`io.TextIOWrapper`). Lors de l'ouverture d'un " -"fichier en mode binaire avec tampon, la classe renvoyée sera une fille " -"de :class:`io.BufferedIOBase`. La classe exacte varie : en lecture en mode " -"binaire elle renvoie une :class:`io.BufferedReader`, en écriture et ajout en " -"mode binaire c'est une :class:`io.BufferedWriter`, et en lecture-écriture, " -"c'est une :class:`io.BufferedRandom`. Lorsque le tampon est désactivé, le " -"flux brut, une classe fille de :class:`io.RawIOBase`, :class:`io.FileIO` est " -"renvoyée." - -#: library/functions.rst:1535 -msgid "" -"See also the file handling modules, such as :mod:`fileinput`, :mod:`io` " -"(where :func:`open` is " -"declared), :mod:`os`, :mod:`os.path`, :mod:`tempfile`, and :mod:`shutil`." -msgstr "" -"Consultez aussi les modules de gestion de fichiers tels " -"que :mod:`fileinput`, :mod:`io` (où :func:`open` est " -"déclarée), :mod:`os`, :mod:`os.path`, :mod:`tempfile`, et :mod:`shutil`." - -#: library/functions.rst:1539 -#, fuzzy -msgid "" -"Raises an :ref:`auditing event ` ``open`` with arguments ``path``, " -"``mode``, ``flags``." -msgstr "" -"Lève un :ref:`évènement d'audit ` ``open`` avec les arguments " -"``file``, ``mode`` et ``flags``." - -#: library/functions.rst:1541 -msgid "" -"The ``mode`` and ``flags`` arguments may have been modified or inferred from " -"the original call." -msgstr "" -"Les arguments ``mode`` et ``flags`` peuvent avoir été modifiés ou déduits de " -"l'appel original." - -# suit un : -#: library/functions.rst:1546 -msgid "The *opener* parameter was added." -msgstr "ajout du paramètre *opener*." - -# suit un : -#: library/functions.rst:1547 -msgid "The ``'x'`` mode was added." -msgstr "ajout du mode ``'x'``." - -#: library/functions.rst:1548 -msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." -msgstr "" -":exc:`IOError` était normalement levée, elle est maintenant un alias " -"de :exc:`OSError`." - -#: library/functions.rst:1549 -msgid "" -":exc:`FileExistsError` is now raised if the file opened in exclusive " -"creation mode (``'x'``) already exists." -msgstr "" -":exc:`FileExistsError` est maintenant levée si le fichier ouvert en mode " -"création exclusive (``'x'``) existe déjà." - -#: library/functions.rst:1554 -msgid "The file is now non-inheritable." -msgstr "Il n'est plus possible d'hériter de *file*." - -#: library/functions.rst:1558 -msgid "" -"If the system call is interrupted and the signal handler does not raise an " -"exception, the function now retries the system call instead of raising " -"an :exc:`InterruptedError` exception (see :pep:`475` for the rationale)." -msgstr "" -"Si l'appel système est interrompu et que le gestionnaire de signal ne lève " -"aucune exception, la fonction réessaye l'appel système au lieu de lever " -"une :exc:`InterruptedError` (voir la :pep:`475` pour la justification)." - -# suit un : -#: library/functions.rst:1561 -msgid "The ``'namereplace'`` error handler was added." -msgstr "ajout du gestionnaire d'erreurs ``'namereplace'``." - -# suit un : -#: library/functions.rst:1565 -msgid "Support added to accept objects implementing :class:`os.PathLike`." -msgstr "prise en charge des objets implémentant :class:`os.PathLike`." - -#: library/functions.rst:1566 -msgid "" -"On Windows, opening a console buffer may return a subclass " -"of :class:`io.RawIOBase` other than :class:`io.FileIO`." -msgstr "" -"Sous Windows, ouvrir un *buffer* du terminal peut renvoyer une sous-classe " -"de :class:`io.RawIOBase` autre que :class:`io.FileIO`." - -# suit un : -#: library/functions.rst:1569 -msgid "The ``'U'`` mode has been removed." -msgstr "le mode ``'U``` a été enlevé." - -#: library/functions.rst:1574 -msgid "Return the ordinal value of a character." -msgstr "" - -#: library/functions.rst:1576 -#, fuzzy -msgid "" -"If the argument is a one-character string, return the Unicode code point of " -"that character. For example, ``ord('a')`` returns the integer ``97`` and " -"``ord('€')`` (Euro sign) returns ``8364``. This is the inverse " -"of :func:`chr`." -msgstr "" -"Renvoie le nombre entier représentant le code Unicode du caractère " -"représenté par la chaîne donnée. Par exemple, ``ord('a')`` renvoie le nombre " -"entier ``97`` et ``ord('€')`` (symbole euro) renvoie ``8364``. Il s'agit de " -"la réciproque de :func:`chr`." - -#: library/functions.rst:1581 -msgid "" -"If the argument is a :class:`bytes` or :class:`bytearray` object of length " -"1, return its single byte value. For example, ``ord(b'a')`` returns the " -"integer ``97``." -msgstr "" - -#: library/functions.rst:1588 -msgid "" -"Return *base* to the power *exp*; if *mod* is present, return *base* to the " -"power *exp*, modulo *mod* (computed more efficiently than ``pow(base, exp) % " -"mod``). The two-argument form ``pow(base, exp)`` is equivalent to using the " -"power operator: ``base**exp``." -msgstr "" -"Renvoie *base* puissance *exp* et, si *mod* est présent, donne *base* " -"puissance *exp* modulo *mod* (calculé de manière plus efficiente que " -"``pow(base, exp) % mod``). La forme à deux arguments ``pow(base, exp)`` est " -"équivalente à l'opérateur puissance : ``base**exp``." - -#: library/functions.rst:1593 -#, fuzzy -msgid "" -"When arguments are builtin numeric types with mixed operand types, the " -"coercion rules for binary arithmetic operators apply. For :class:`int` " -"operands, the result has the same type as the operands (after coercion) " -"unless the second argument is negative; in that case, all arguments are " -"converted to float and a float result is delivered. For example, ``pow(10, " -"2)`` returns ``100``, but ``pow(10, -2)`` returns ``0.01``. For a negative " -"base of type :class:`int` or :class:`float` and a non-integral exponent, a " -"complex result is delivered. For example, ``pow(-9, 0.5)`` returns a value " -"close to ``3j``. Whereas, for a negative base of type :class:`int` " -"or :class:`float` with an integral exponent, a float result is delivered. " -"For example, ``pow(-9, 2.0)`` returns ``81.0``." -msgstr "" -"Les arguments doivent être de types numériques. Avec des opérandes de " -"différents types, les mêmes règles de coercition que celles des opérateurs " -"arithmétiques binaires s'appliquent. Pour des opérandes de " -"type :class:`int`, le résultat sera de même type que les opérandes (après " -"coercition) sauf si le second argument est négatif, dans ce cas, les " -"arguments sont convertis en ``float``, et le résultat sera un ``float`` " -"aussi. Par exemple, ``pow(10, 2)`` donne ``100``, alors que ``pow(10, -2)`` " -"donne ``0.01``. Pour une base négative de type :class:`int` " -"ou :class:`float` et un exposant non entier, le résultat est complexe. Par " -"exemple, ``pow(-9, 0.5)`` renvoie une valeur proche de ``3j``." - -#: library/functions.rst:1605 -msgid "" -"For :class:`int` operands *base* and *exp*, if *mod* is present, *mod* must " -"also be of integer type and *mod* must be nonzero. If *mod* is present and " -"*exp* is negative, *base* must be relatively prime to *mod*. In that case, " -"``pow(inv_base, -exp, mod)`` is returned, where *inv_base* is an inverse to " -"*base* modulo *mod*." -msgstr "" -"Pour des opérandes *base* et *exp* de type :class:`int`, si *mod* est " -"présent, *mod* doit également être de type entier et *mod* doit être non " -"nul. Si *mod* est présent et que *exp* est négatif, *base* et *mod* doivent " -"être premiers entre eux. Dans ce cas, ``pow(inv_base, -exp, mod)`` est " -"renvoyé, où *inv_base* est un inverse de *base* modulo *mod*." - -#: library/functions.rst:1611 -msgid "Here's an example of computing an inverse for ``38`` modulo ``97``::" -msgstr "Voici un exemple de calcul d'un inverse de ``38`` modulo ``97`` ::" - -# suit un : -#: library/functions.rst:1618 -msgid "" -"For :class:`int` operands, the three-argument form of ``pow`` now allows the " -"second argument to be negative, permitting computation of modular inverses." -msgstr "" -"pour les opérandes :class:`int`, la forme à trois arguments de ``pow`` " -"permet maintenant au deuxième argument d'être négatif, permettant le calcul " -"des inverses modulaires." - -# suit un : -#: library/functions.rst:1623 -msgid "" -"Allow keyword arguments. Formerly, only positional arguments were supported." -msgstr "" -"autorise les arguments nommés. Auparavant, seuls les arguments positionnels " -"étaient autorisés." - -#: library/functions.rst:1630 -msgid "" -"Print *objects* to the text stream *file*, separated by *sep* and followed " -"by *end*. *sep*, *end*, *file*, and *flush*, if present, must be given as " -"keyword arguments." -msgstr "" -"Écrit *objects* dans le flux texte *file*, séparés par *sep* et suivis de " -"*end*. Les arguments *sep*, *end*, *file*, et *flush*, s'ils sont présents, " -"doivent être passés en arguments nommés." - -#: library/functions.rst:1634 -msgid "" -"All non-keyword arguments are converted to strings like :func:`str` does and " -"written to the stream, separated by *sep* and followed by *end*. Both *sep* " -"and *end* must be strings; they can also be ``None``, which means to use the " -"default values. If no *objects* are given, :func:`print` will just write " -"*end*." -msgstr "" -"Tous les arguments positionnels sont convertis en chaîne comme le " -"fait :func:`str`, puis écrits sur le flux, séparés par *sep* et terminés par " -"*end*. *sep* et *end* doivent être des chaînes, ou ``None``, indiquant de " -"prendre les valeurs par défaut. Si aucun *objects* n'est donné :func:`print` " -"écrit seulement *end*." - -#: library/functions.rst:1640 -msgid "" -"The *file* argument must be an object with a ``write(string)`` method; if it " -"is not present or ``None``, :data:`sys.stdout` will be used. Since printed " -"arguments are converted to text strings, :func:`print` cannot be used with " -"binary mode file objects. For these, use ``file.write(...)`` instead." -msgstr "" -"L'argument *file* doit être un objet avec une méthode ``write(string)`` ; " -"s'il n'est pas fourni, ou vaut ``None``, :data:`sys.stdout` est utilisé. " -"Puisque les arguments affichés sont convertis en chaîne, :func:`print` ne " -"peut pas être utilisée avec des fichiers ouverts en mode binaire. Pour ceux-" -"ci utilisez plutôt ``file.write(...)``." - -#: library/functions.rst:1645 -msgid "" -"Output buffering is usually determined by *file*. However, if *flush* is " -"true, the stream is forcibly flushed." -msgstr "" -"Que la sortie utilise un tampon ou non est souvent décidé par *file*. " -"Cependant, si l'argument *flush* est vrai, le tampon du flux est vidé " -"explicitement." - -#: library/functions.rst:1649 -msgid "Added the *flush* keyword argument." -msgstr "ajout de l'argument nommé *flush*." - -#: library/functions.rst:1655 -msgid "Return a property attribute." -msgstr "Renvoie un attribut propriété." - -#: library/functions.rst:1657 -msgid "" -"*fget* is a function for getting an attribute value. *fset* is a function " -"for setting an attribute value. *fdel* is a function for deleting an " -"attribute value. And *doc* creates a docstring for the attribute." -msgstr "" -"*fget* est une fonction permettant d'obtenir la valeur d'un attribut. *fset* " -"est une fonction pour en définir la valeur. *fdel* quant à elle permet de " -"supprimer la valeur d'un attribut, et *doc* crée une chaîne de documentation " -"(*docstring*) pour l'attribut." - -#: library/functions.rst:1661 -msgid "A typical use is to define a managed attribute ``x``::" -msgstr "Une utilisation courante est de définir un attribut managé ``x`` ::" - -#: library/functions.rst:1678 -msgid "" -"If *c* is an instance of *C*, ``c.x`` will invoke the getter, ``c.x = " -"value`` will invoke the setter, and ``del c.x`` the deleter." -msgstr "" -"Si *c* est une instance de *C*, ``c.x`` appelle l'accesseur (*getter* en " -"anglais), ``c.x = value`` invoque le mutateur (*setter*), et ``del x`` le " -"destructeur (*deleter*)." - -#: library/functions.rst:1681 -msgid "" -"If given, *doc* will be the docstring of the property attribute. Otherwise, " -"the property will copy *fget*'s docstring (if it exists). This makes it " -"possible to create read-only properties easily using :func:`property` as " -"a :term:`decorator`::" -msgstr "" -"Si elle est fournie, *doc* est la chaîne de documentation de l'attribut. " -"Autrement la propriété copie celle de *fget* (si elle existe). Cela rend " -"possible la création de propriétés en lecture seule en utilisant " -"simplement :func:`property` comme :term:`décorateur ` ::" - -#: library/functions.rst:1694 -#, fuzzy -msgid "" -"The ``@property`` decorator turns the :meth:`!voltage` method into a " -"\"getter\" for a read-only attribute with the same name, and it sets the " -"docstring for *voltage* to \"Get the current voltage.\"" -msgstr "" -"Le décorateur ``@property`` transforme la méthode :meth:`voltage` en " -"accesseur de l'attribut du même nom, et donne *\"Get the current voltage\"* " -"comme chaîne de documentation de *voltage*." - -#: library/functions.rst:1702 -#, fuzzy -msgid "" -"A property object has ``getter``, ``setter``, and ``deleter`` methods usable " -"as decorators that create a copy of the property with the corresponding " -"accessor function set to the decorated function. This is best explained " -"with an example:" -msgstr "" -"Un objet propriété a les " -"méthodes :attr:`~property.getter`, :attr:`~property.setter` " -"et :attr:`~property.deleter` utilisables comme décorateurs créant une copie " -"de la propriété avec les accesseurs correspondants définis par la fonction " -"de décoration. C'est plus clair avec un exemple ::" - -#: library/functions.rst:1726 -msgid "" -"This code is exactly equivalent to the first example. Be sure to give the " -"additional functions the same name as the original property (``x`` in this " -"case.)" -msgstr "" -"Ce code est l'exact équivalent du premier exemple. Soyez attentifs à bien " -"donner aux fonctions additionnelles le même nom que la propriété (``x`` dans " -"ce cas)." - -#: library/functions.rst:1730 -msgid "" -"The returned property object also has the attributes ``fget``, ``fset``, and " -"``fdel`` corresponding to the constructor arguments." -msgstr "" -"L'objet propriété renvoyé possède aussi les attributs ``fget``, ``fset`` et " -"``fdel`` correspondants aux arguments du constructeur." - -# suit un : -#: library/functions.rst:1733 -msgid "The docstrings of property objects are now writeable." -msgstr "" -"les chaînes de documentation des objets *property* sont maintenant en " -"lecture-écriture." - -#: library/functions.rst:1738 -msgid "" -"Attribute holding the name of the property. The name of the property can be " -"changed at runtime." -msgstr "" - -#: library/functions.rst:1749 -msgid "" -"Rather than being a function, :class:`range` is actually an immutable " -"sequence type, as documented in :ref:`typesseq-range` and :ref:`typesseq`." -msgstr "" -"Contrairement aux apparences, :class:`range` n'est pas une fonction mais un " -"type de séquence immuable, comme décrit dans :ref:`typesseq-range` " -"et :ref:`typesseq`." - -#: library/functions.rst:1755 -#, fuzzy -msgid "" -"Return a string containing a printable representation of an object. For " -"many types, this function makes an attempt to return a string that would " -"yield an object with the same value when passed to :func:`eval`; otherwise, " -"the representation is a string enclosed in angle brackets that contains the " -"name of the type of the object together with additional information often " -"including the name and address of the object. A class can control what this " -"function returns for its instances by defining a :meth:`~object.__repr__` " -"method. If :func:`sys.displayhook` is not accessible, this function will " -"raise :exc:`RuntimeError`." -msgstr "" -"Renvoie une chaîne contenant une représentation affichable de l'objet. Pour " -"de nombreux types, cette fonction essaye de renvoyer une chaîne qui, " -"lorsqu'elle est passée à :func:`eval`, donne à son tour un objet de même " -"valeur ; sinon la représentation sera une chaîne entourée de chevrons " -"contenant le nom du type et quelques informations supplémentaires, souvent " -"le nom et l'adresse de l'objet. Une classe peut contrôler ce que cette " -"fonction renvoie pour ses instances en définissant une " -"méthode :meth:`__repr__`. Si :func:`sys.displayhook` n'est pas accessible, " -"cette fonction lève une :exc:`RuntimeError`." - -#: library/functions.rst:1766 -msgid "This class has a custom representation that can be evaluated::" -msgstr "" - -#: library/functions.rst:1779 -#, fuzzy -msgid "" -"Return a reverse :term:`iterator`. The argument must be an object which has " -"a :meth:`~object.__reversed__` method or supports the sequence protocol " -"(the :meth:`~object.__len__` method and the :meth:`~object.__getitem__` " -"method with integer arguments starting at ``0``)." -msgstr "" -"Renvoie un :term:`itérateur ` inversé. *seq* doit être un objet " -"ayant une méthode :meth:`__reverse__` ou prenant en charge le protocole " -"séquence (la méthode :meth:`__len__` et la méthode :meth:`__getitem__` avec " -"des arguments entiers commençant à zéro)." - -#: library/functions.rst:1787 -msgid "" -"Return *number* rounded to *ndigits* precision after the decimal point. If " -"*ndigits* is omitted or is ``None``, it returns the nearest integer to its " -"input." -msgstr "" -"Renvoie *number* arrondi avec une précision de *ndigits* chiffres après la " -"virgule. Si *ndigits* est omis (ou est ``None``), l'entier le plus proche " -"est renvoyé." - -#: library/functions.rst:1791 -msgid "" -"For the built-in types supporting :func:`round`, values are rounded to the " -"closest multiple of 10 to the power minus *ndigits*; if two multiples are " -"equally close, rounding is done toward the even choice (so, for example, " -"both ``round(0.5)`` and ``round(-0.5)`` are ``0``, and ``round(1.5)`` is " -"``2``). Any integer value is valid for *ndigits* (positive, zero, or " -"negative). The return value is an integer if *ndigits* is omitted or " -"``None``. Otherwise, the return value has the same type as *number*." -msgstr "" -"Pour les types natifs prenant en charge :func:`round`, les valeurs sont " -"arrondies au multiple de 10 puissance moins *ndigits*, si deux multiples " -"sont équidistants, l'arrondi se fait vers la valeur paire (par exemple " -"``round(0.5)`` et ``round(-0.5)`` valent tous les deux ``0``, et " -"``round(1.5)`` vaut ``2``). *ndigits* accepte tout nombre entier (positif, " -"zéro, ou négatif). La valeur renvoyée est un entier si *ndigits* n'est pas " -"donné (ou est ``None``). Sinon elle est du même type que *number*." - -#: library/functions.rst:1800 -msgid "" -"For a general Python object ``number``, ``round`` delegates to " -"``number.__round__``." -msgstr "" -"Pour tout autre objet Python ``number``, ``round`` délègue à " -"``number.__round__``." - -# suit un : -#: library/functions.rst:1805 -msgid "" -"The behavior of :func:`round` for floats can be surprising: for example, " -"``round(2.675, 2)`` gives ``2.67`` instead of the expected ``2.68``. This is " -"not a bug: it's a result of the fact that most decimal fractions can't be " -"represented exactly as a float. See :ref:`tut-fp-issues` for more " -"information." -msgstr "" -"le comportement de :func:`round` avec les nombres à virgule flottante peut " -"être surprenant. Par exemple ``round(2.675, 2)`` donne ``2.67`` au lieu de " -"``2.68``. Ce n'est pas un bogue, mais dû au fait que la plupart des " -"fractions de décimaux ne peuvent pas être représentés exactement en nombre a " -"virgule flottante. Voir :ref:`tut-fp-issues` pour plus d'information." - -#: library/functions.rst:1816 -msgid "" -"Return a new :class:`set` object, optionally with elements taken from " -"*iterable*. ``set`` is a built-in class. See :class:`set` and :ref:`types-" -"set` for documentation about this class." -msgstr "" -"Renvoie un nouvel :class:`ensemble `, dont les éléments sont extraits " -"d'*iterable* s'il est fourni. ``set`` est une classe native. " -"Voir :class:`set` et :ref:`types-set` pour la documentation de cette classe." - -#: library/functions.rst:1820 -msgid "" -"For other containers see the built-" -"in :class:`frozenset`, :class:`list`, :class:`tuple`, and :class:`dict` " -"classes, as well as the :mod:`collections` module." -msgstr "" -"D'autres conteneurs existent, " -"comme : :class:`frozenset`, :class:`list`, :class:`tuple`, et :class:`dict`, " -"ainsi que le module :mod:`collections`." - -#: library/functions.rst:1827 -msgid "" -"This is the counterpart of :func:`getattr`. The arguments are an object, a " -"string, and an arbitrary value. The string may name an existing attribute " -"or a new attribute. The function assigns the value to the attribute, " -"provided the object allows it. For example, ``setattr(x, 'foobar', 123)`` " -"is equivalent to ``x.foobar = 123``." -msgstr "" -"C'est le complément de :func:`getattr`. Les arguments sont : un objet, une " -"chaîne et une valeur de type arbitraire. La chaîne *name* peut désigner un " -"attribut existant ou un nouvel attribut. La fonction assigne la valeur à " -"l'attribut, si l'objet l'autorise. Par exemple, ``setattr(x, 'foobar', " -"123)`` équivaut à ``x.foobar = 123``." - -#: library/functions.rst:1833 -msgid "" -"*name* need not be a Python identifier as defined in :ref:`identifiers` " -"unless the object chooses to enforce that, for example in a " -"custom :meth:`~object.__getattribute__` or via :attr:`~object.__slots__`. An " -"attribute whose name is not an identifier will not be accessible using the " -"dot notation, but is accessible through :func:`getattr` etc.." -msgstr "" -"*name* n'a pas besoin d'être un identifiant Python tel que défini " -"dans :ref:`identifiers` sauf si l'objet choisit de l'imposer, par exemple en " -"personnalisant :meth:`~object.__getattribute__` ou " -"*via* :attr:`~object.__slots__`. Un attribut dont le nom n'est pas un " -"identifiant ne sera pas accessible en utilisant la notation pointée, mais " -"est accessible *via* :func:`getattr` etc." - -# suit un : -#: library/functions.rst:1841 -msgid "" -"Since :ref:`private name mangling ` happens at " -"compilation time, one must manually mangle a private attribute's (attributes " -"with two leading underscores) name in order to set it with :func:`setattr`." -msgstr "" -"étant donné que la :ref:`transformation des noms privés ` se produit au moment de la compilation, il faut modifier " -"manuellement le nom d'un attribut privé (attributs avec deux traits de " -"soulignement en tête) afin de le définir avec :func:`setattr`." - -#: library/functions.rst:1849 -msgid "" -"Return a new unique sentinel object. *name* must be a :class:`str`, and is " -"used by default as the returned object's representation::" -msgstr "" - -#: library/functions.rst:1856 -#, fuzzy -msgid "" -"The optional *repr* argument can be used to specify a different " -"representation::" -msgstr "" -"Le paramètre optionnel *source* peut être utilisé pour initialiser le " -"tableau de plusieurs façons :" - -#: library/functions.rst:1862 -msgid "" -"Sentinel objects are truthy and compare equal only to themselves. They are " -"intended to be compared with the :keyword:`is` operator." -msgstr "" - -#: library/functions.rst:1865 -msgid "``sentinel`` does not support subclassing." -msgstr "" - -#: library/functions.rst:1867 -msgid "Shallow and deep copies of a sentinel object return the object itself." -msgstr "" - -#: library/functions.rst:1869 -msgid "" -"Sentinels are conventionally assigned to a variable with a matching name. " -"Sentinels defined in this way can be used in :term:`type hints `::" -msgstr "" - -#: library/functions.rst:1877 -msgid "" -"Sentinel objects support the :ref:`| ` operator for use in type " -"expressions." -msgstr "" - -#: library/functions.rst:1879 -msgid "" -":mod:`Pickling ` is supported for sentinel objects that are placed " -"in the global scope of a module under a name matching the sentinel's name, " -"and for sentinels placed in class scopes with a name matching " -"the :term:`qualified name` of the sentinel. Other sentinels, such as those " -"defined in a function scope, are not picklable. The identity of the sentinel " -"is preserved after pickling::" -msgstr "" - -#: library/functions.rst:1897 -msgid "Sentinel objects have the following attributes:" -msgstr "" - -#: library/functions.rst:1901 -msgid "The sentinel's name." -msgstr "" - -#: library/functions.rst:1905 -msgid "" -"The name of the module where the sentinel was created. This attribute is " -"writable." -msgstr "" - -#: library/functions.rst:1913 -msgid "" -"Return a :term:`slice` object representing the set of indices specified by " -"``range(start, stop, step)``. The *start* and *step* arguments default to " -"``None``." -msgstr "" - -#: library/functions.rst:1917 -msgid "" -"Slice objects are also generated when :ref:`slicing syntax ` is " -"used. For example: ``a[start:stop:step]`` or ``a[start:stop, i]``." -msgstr "" - -#: library/functions.rst:1920 -msgid "" -"See :func:`itertools.islice` for an alternate version that returns " -"an :term:`iterator`." -msgstr "" - -#: library/functions.rst:1927 -msgid "" -"These read-only attributes are set to the argument values (or their " -"default). They have no other explicit functionality; however, they are used " -"by NumPy and other third-party packages." -msgstr "" - -#: library/functions.rst:1931 -msgid "" -"Slice objects are now :term:`hashable` " -"(provided :attr:`~slice.start`, :attr:`~slice.stop`, and :attr:`~slice.step` " -"are hashable)." -msgstr "" - -#: library/functions.rst:1937 -msgid "Return a new sorted list from the items in *iterable*." -msgstr "Renvoie une nouvelle liste triée depuis les éléments d'*iterable*." - -#: library/functions.rst:1939 -msgid "" -"Has two optional arguments which must be specified as keyword arguments." -msgstr "" -"Possède deux arguments optionnels qui doivent être spécifiés par arguments " -"nommés." - -#: library/functions.rst:1941 -msgid "" -"*key* specifies a function of one argument that is used to extract a " -"comparison key from each element in *iterable* (for example, " -"``key=str.lower``). The default value is ``None`` (compare the elements " -"directly)." -msgstr "" -"*key* spécifie une fonction à un argument utilisée pour extraire une clé de " -"comparaison de chaque élément de l'itérable (par exemple, " -"``key=str.lower``). La valeur par défaut est ``None`` (compare les éléments " -"directement)." - -#: library/functions.rst:1945 -msgid "" -"*reverse* is a boolean value. If set to ``True``, then the list elements " -"are sorted as if each comparison were reversed." -msgstr "" -"*reverse* est une valeur booléenne. Si elle est ``True``, la liste " -"d'éléments est triée comme si toutes les comparaisons étaient inversées." - -#: library/functions.rst:1948 -msgid "" -"Use :func:`functools.cmp_to_key` to convert an old-style *cmp* function to a " -"*key* function." -msgstr "" -"Utilisez :func:`functools.cmp_to_key` pour convertir l'ancienne notation " -"*cmp* en une fonction *key*." - -#: library/functions.rst:1951 -msgid "" -"The built-in :func:`sorted` function is guaranteed to be stable. A sort is " -"stable if it guarantees not to change the relative order of elements that " -"compare equal --- this is helpful for sorting in multiple passes (for " -"example, sort by department, then by salary grade)." -msgstr "" -"La fonction native :func:`sorted` est garantie stable. Un tri est stable " -"s'il garantit de ne pas changer l'ordre relatif des éléments égaux entre " -"eux. C'est utile pour trier en plusieurs passes (par exemple par direction " -"puis par salaire)." - -#: library/functions.rst:1956 -#, fuzzy -msgid "" -"The sort algorithm uses only ``<`` comparisons between items. While " -"defining an :meth:`~object.__lt__` method will suffice for sorting, :PEP:`8` " -"recommends that all six :ref:`rich comparisons ` be " -"implemented. This will help avoid bugs when using the same data with other " -"ordering tools such as :func:`max` that rely on a different underlying " -"method. Implementing all six comparisons also helps avoid confusion for " -"mixed type comparisons which can call the reflected :meth:`~object.__gt__` " -"method." -msgstr "" -"L'algorithme de tri utilise uniquement l'opérateur ``<`` pour comparer les " -"éléments. Alors que la définition d'une méthode :meth:`~object.__lt__` est " -"suffisante pour trier, la :PEP:`8` recommande que les six :ref:`comparaisons " -"riches ` soient implémentées. Cela contribue à éviter les " -"bogues lors de l'utilisation des mêmes données avec d'autres outils de tri " -"(tels que :func:`max`) qui reposent sur une méthode sous-jacente différente. " -"L'implémentation des six comparaisons permet également d'éviter toute " -"confusion lors de comparaisons de types mixtes qui peuvent appeler la " -"méthode :meth:`~object.__gt__`." - -#: library/functions.rst:1965 -msgid "" -"For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." -msgstr "" -"Pour des exemples de tris et un bref tutoriel, consultez :ref:`sortinghowto`." - -#: library/functions.rst:1969 -msgid "Transform a method into a static method." -msgstr "Transforme une méthode en méthode statique." - -#: library/functions.rst:1971 -msgid "" -"A static method does not receive an implicit first argument. To declare a " -"static method, use this idiom::" -msgstr "" -"Une méthode statique ne reçoit pas de premier argument implicitement. Voici " -"comment déclarer une méthode statique ::" - -#: library/functions.rst:1978 -msgid "" -"The ``@staticmethod`` form is a function :term:`decorator` -- " -"see :ref:`function` for details." -msgstr "" -"La forme ``@staticmethod`` est un :term:`décorateur ` de " -"fonction. Consultez :ref:`function` pour plus de détails." - -#: library/functions.rst:1981 -#, fuzzy -msgid "" -"A static method can be called either on the class (such as ``C.f()``) or on " -"an instance (such as ``C().f()``). Moreover, the static " -"method :term:`descriptor` is also callable, so it can be used in the class " -"definition (such as ``f()``)." -msgstr "" -"Une méthode statique peut être appelée sur une classe (par exemple, " -"``C.f()``) comme sur une instance (par exemple, ``C().f()``). De plus, elles " -"peuvent être appelées comme des fonctions habituelles (comme ``f()``)." - -#: library/functions.rst:1986 -msgid "" -"Static methods in Python are similar to those found in Java or C++. Also, " -"see :func:`classmethod` for a variant that is useful for creating alternate " -"class constructors." -msgstr "" -"Les méthodes statiques en Python sont similaires à celles que l'on trouve en " -"Java ou en C++. Consultez :func:`classmethod` pour une variante utile " -"permettant de créer des constructeurs alternatifs." - -#: library/functions.rst:1990 -msgid "" -"Like all decorators, it is also possible to call ``staticmethod`` as a " -"regular function and do something with its result. This is needed in some " -"cases where you need a reference to a function from a class body and you " -"want to avoid the automatic transformation to instance method. For these " -"cases, use this idiom::" -msgstr "" -"Comme pour tous les décorateurs, il est possible d'appeler ``staticmethod`` " -"comme une simple fonction, et faire quelque chose de son résultat. Ça peut " -"être nécessaire dans le cas où vous souhaitez une référence à la fonction " -"depuis le corps d'une classe, et voulez éviter sa transformation en méthode " -"d'instance. Dans ce cas, faites comme suit ::" - -#: library/functions.rst:2002 -msgid "For more information on static methods, see :ref:`types`." -msgstr "" -"Pour plus d'informations sur les méthodes statiques, consultez :ref:`types`." - -# suit un : -#: library/functions.rst:2004 -#, fuzzy -msgid "" -"Static methods now inherit the method attributes " -"(:attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__doc__` " -"and :attr:`~function.__annotations__`), have a new ``__wrapped__`` " -"attribute, and are now callable as regular functions." -msgstr "" -"les méthodes statiques héritent dorénavant des attributs des méthodes " -"(``__module__``, ``__name__``, ``__qualname__``, ``__doc__`` et " -"``__annotations__``), ont un nouvel attribut ``__wrapped__`` et sont " -"maintenant appelables comme les fonctions habituelles." - -#: library/functions.rst:2022 -msgid "" -"Return a :class:`str` version of *object*. See :func:`str` for details." -msgstr "" -"Renvoie une version d'*object* sous forme de :class:`str`. Voir :func:`str` " -"pour plus de détails." - -#: library/functions.rst:2024 -msgid "" -"``str`` is the built-in string :term:`class`. For general information about " -"strings, see :ref:`textseq`." -msgstr "" -"``str`` est la :term:`classe ` native des chaînes de caractères. Pour " -"des informations générales à propos des chaînes, consultez :ref:`textseq`." - -#: library/functions.rst:2030 -msgid "" -"Sums *start* and the items of an *iterable* from left to right and returns " -"the total. The *iterable*'s items are normally numbers, and the start value " -"is not allowed to be a string." -msgstr "" -"Additionne *start* et les éléments d'un *iterable* de gauche à droite et en " -"donne le total. Les éléments de l'*iterable* sont normalement des nombres, " -"et la valeur de *start* ne peut pas être une chaîne de caractères." - -#: library/functions.rst:2034 -#, fuzzy -msgid "" -"For some use cases, there are good alternatives to :func:`sum`. The " -"preferred, fast way to concatenate a sequence of strings is by calling " -"``''.join(sequence)``. To add floating-point values with extended " -"precision, see :func:`math.fsum`\\. To concatenate a series of iterables, " -"consider using :func:`itertools.chain`." -msgstr "" -"Pour certains cas, il existe de bonnes alternatives à :func:`sum`. La bonne " -"méthode, rapide, pour concaténer une séquence de chaînes est d'appeler " -"``''.join(séquence)``. Pour additionner des nombres à virgule flottante avec " -"une meilleure précision, voir :func:`math.fsum`. Pour concaténer une série " -"d'itérables, utilisez plutôt :func:`itertools.chain`." - -# suit un : -#: library/functions.rst:2040 -msgid "The *start* parameter can be specified as a keyword argument." -msgstr "le paramètre *start* peut être passé comme un argument nommé." - -#: library/functions.rst:2043 -msgid "" -"Summation of floats switched to an algorithm that gives higher accuracy and " -"better commutativity on most builds." -msgstr "" - -#: library/functions.rst:2046 -msgid "" -"Added specialization for summation of complexes, using same algorithm as for " -"summation of floats." -msgstr "" - -#: library/functions.rst:2054 -msgid "" -"Return a proxy object that delegates method calls to a parent or sibling " -"class of *type*. This is useful for accessing inherited methods that have " -"been overridden in a class." -msgstr "" -"Renvoie un objet mandataire (*proxy object* en anglais) déléguant les appels " -"de méthode à une classe parente ou sœur de *type*. C'est utile pour accéder " -"aux méthodes héritées qui ont été remplacées dans une classe." - -#: library/functions.rst:2058 -msgid "" -"The *object_or_type* determines the :term:`method resolution order` to be " -"searched. The search starts from the class right after the *type*." -msgstr "" -"*object_or_type* détermine quel :term:`ordre de résolution des méthodes " -"` est utilisé pour la recherche. La recherche " -"commence à partir de la classe qui suit immédiatement le *type*." - -#: library/functions.rst:2062 -#, fuzzy -msgid "" -"For example, if :attr:`~type.__mro__` of *object_or_type* is ``D -> B -> C " -"-> A -> object`` and the value of *type* is ``B``, then :func:`super` " -"searches ``C -> A -> object``." -msgstr "" -"Par exemple, si :attr:`~class.__mro__` de *object_or_type* est ``D -> B -> C " -"-> A -> object`` et la valeur de *type* est ``B``, alors :func:`super` " -"recherche ``C -> A -> object``." - -#: library/functions.rst:2066 -#, fuzzy -msgid "" -"The :attr:`~type.__mro__` attribute of the class corresponding to " -"*object_or_type* lists the method resolution search order used by " -"both :func:`getattr` and :func:`super`. The attribute is dynamic and can " -"change whenever the inheritance hierarchy is updated." -msgstr "" -"L'attribut :attr:`~class.__mro__` de *object_or_type* liste l'ordre de " -"recherche de la méthode de résolution utilisée par :func:`getattr` " -"et :func:`super`. L'attribut est dynamique et peut changer lorsque la " -"hiérarchie d'héritage est modifiée." - -#: library/functions.rst:2071 -msgid "" -"If the second argument is omitted, the super object returned is unbound. If " -"the second argument is an object, ``isinstance(obj, type)`` must be true. " -"If the second argument is a type, ``issubclass(type2, type)`` must be true " -"(this is useful for classmethods)." -msgstr "" -"Si le second argument est omis, l'objet *super* obtenu n'est pas lié. Si le " -"second argument est un objet, ``isinstance(obj, type)`` doit être vrai. Si " -"le second argument est un type, ``issubclass(type2, type)`` doit être vrai " -"(c'est utile pour les méthodes de classe)." - -#: library/functions.rst:2076 -msgid "" -"When called directly within an ordinary method of a class, both arguments " -"may be omitted (\"zero-argument :func:`!super`\"). In this case, *type* will " -"be the enclosing class, and *obj* will be the first argument of the " -"immediately enclosing function (typically ``self``). (This means that zero-" -"argument :func:`!super` will not work as expected within nested functions, " -"including generator expressions, which implicitly create nested functions.)" -msgstr "" - -#: library/functions.rst:2083 -msgid "" -"There are two typical use cases for *super*. In a class hierarchy with " -"single inheritance, *super* can be used to refer to parent classes without " -"naming them explicitly, thus making the code more maintainable. This use " -"closely parallels the use of *super* in other programming languages." -msgstr "" -"Il existe deux autres cas d'usage typiques pour *super*. Dans une hiérarchie " -"de classes à héritage simple, *super* peut être utilisée pour obtenir la " -"classe parente sans avoir à la nommer explicitement, rendant le code plus " -"maintenable. Cet usage se rapproche de l'usage de *super* dans d'autres " -"langages de programmation." - -#: library/functions.rst:2088 -msgid "" -"The second use case is to support cooperative multiple inheritance in a " -"dynamic execution environment. This use case is unique to Python and is not " -"found in statically compiled languages or languages that only support single " -"inheritance. This makes it possible to implement \"diamond diagrams\" where " -"multiple base classes implement the same method. Good design dictates that " -"such implementations have the same calling signature in every case (because " -"the order of calls is determined at runtime, because that order adapts to " -"changes in the class hierarchy, and because that order can include sibling " -"classes that are unknown prior to runtime)." -msgstr "" -"Le second est la gestion d'héritage multiple coopératif dans un " -"environnement d'exécution dynamique. Cet usage est unique à Python, il ne se " -"retrouve ni dans les langages compilés statiquement, ni dans les langages ne " -"gérant que l'héritage simple. Cela rend possible d'implémenter un héritage " -"en diamant dans lequel plusieurs classes parentes implémentent la même " -"méthode. Une bonne conception implique que ces implémentations doivent avoir " -"la même signature lors de leur appel dans tous les cas (parce que l'ordre " -"des appels est déterminée à l'exécution, parce que l'ordre s'adapte aux " -"changements dans la hiérarchie, et parce que l'ordre peut inclure des " -"classes sœurs inconnues avant l'exécution)." - -#: library/functions.rst:2098 -msgid "For both use cases, a typical superclass call looks like this::" -msgstr "" -"Dans tous les cas, un appel typique à une classe parente ressemble à ::" - -#: library/functions.rst:2105 -msgid "" -"In addition to method lookups, :func:`super` also works for attribute " -"lookups. One possible use case for this is calling :term:`descriptors " -"` in a parent or sibling class." -msgstr "" -"En plus de la recherche de méthodes, :func:`super` fonctionne également pour " -"la recherche d'attributs. Un cas d'utilisation possible est l'appel " -"d'un :term:`descripteur ` d'une classe parente ou sœur." - -#: library/functions.rst:2109 -#, fuzzy -msgid "" -"Note that :func:`super` is implemented as part of the binding process for " -"explicit dotted attribute lookups such as ``super().__getitem__(name)``. It " -"does so by implementing its own :meth:`~object.__getattribute__` method for " -"searching classes in a predictable order that supports cooperative multiple " -"inheritance. Accordingly, :func:`super` is undefined for implicit lookups " -"using statements or operators such as ``super()[name]``." -msgstr "" -"Notez que :func:`super` fait partie de l'implémentation du processus de " -"liaison lors de la recherche explicite d'attributs pointés comme " -"``super().__getitem__(name)``. Elle le fait en implémentant sa propre " -"méthode :meth:`__getattribute__` pour rechercher les classes dans un ordre " -"prévisible gérant l'héritage multiple coopératif. En " -"conséquence, :func:`super` n'est pas définie pour les recherches implicites " -"via des instructions ou des opérateurs tels que ``super()[name]``." - -#: library/functions.rst:2117 -msgid "" -"Also note that, aside from the zero argument form, :func:`super` is not " -"limited to use inside methods. The two argument form specifies the " -"arguments exactly and makes the appropriate references. The zero argument " -"form only works inside a class definition, as the compiler fills in the " -"necessary details to correctly retrieve the class being defined, as well as " -"accessing the current instance for ordinary methods." -msgstr "" -"Notez aussi que, en dehors de sa forme sans argument, :func:`super` peut " -"être utilisée en dehors des méthodes. La forme à deux arguments est précise " -"et contient tous les arguments nécessaires, donnant les références " -"appropriées. La forme sans argument fonctionne seulement à l'intérieur d'une " -"définition de classe, puisque c'est le compilateur qui donne les détails " -"nécessaires à propos de la classe en cours de définition, ainsi qu'accéder à " -"l'instance courante pour les méthodes ordinaires." - -#: library/functions.rst:2124 -msgid "" -"For practical suggestions on how to design cooperative classes " -"using :func:`super`, see `guide to using super() `_." -msgstr "" -"Pour des suggestions pratiques sur la conception de classes coopératives " -"utilisant :func:`super`, consultez `guide to using super() `_." - -#: library/functions.rst:2128 -msgid "" -":class:`super` objects are now :mod:`pickleable ` " -"and :mod:`copyable `." -msgstr "" - -#: library/functions.rst:2137 -msgid "" -"Rather than being a function, :class:`tuple` is actually an immutable " -"sequence type, as documented in :ref:`typesseq-tuple` and :ref:`typesseq`." -msgstr "" -"Ce n'est pas une fonction, :class:`tuple` est en fait un type de séquence " -"immuable, comme documenté dans :ref:`typesseq-tuple` et :ref:`typesseq`." - -#: library/functions.rst:2146 -#, fuzzy -msgid "" -"With one argument, return the type of an *object*. The return value is a " -"type object and generally the same object as returned " -"by :attr:`object.__class__`." -msgstr "" -"Avec un argument, renvoie le type d'*object*. La valeur renvoyée est un " -"objet type et généralement la même que la valeur de " -"l'attribut :attr:`object.__class__ `." - -#: library/functions.rst:2150 -msgid "" -"The :func:`isinstance` built-in function is recommended for testing the type " -"of an object, because it takes subclasses into account." -msgstr "" -"La fonction native :func:`isinstance` est recommandée pour tester le type " -"d'un objet, car elle prend en compte l'héritage." - -#: library/functions.rst:2153 -#, fuzzy -msgid "" -"With three arguments, return a new type object. This is essentially a " -"dynamic form of the :keyword:`class` statement. The *name* string is the " -"class name and becomes the :attr:`~type.__name__` attribute. The *bases* " -"tuple contains the base classes and becomes the :attr:`~type.__bases__` " -"attribute; if empty, :class:`object`, the ultimate base of all classes, is " -"added. The *dict* dictionary contains attribute and method definitions for " -"the class body; it may be copied or wrapped before becoming " -"the :attr:`~type.__dict__` attribute. The following two statements create " -"identical :class:`!type` objects:" -msgstr "" -"Avec trois arguments, renvoie un nouveau type. C'est essentiellement une " -"forme dynamique de l'instruction :keyword:`class`. La chaîne *name* est le " -"nom de la classe et deviendra l'attribut :attr:`~definition.__name__`. Le " -"*n*-uplet *bases* contient les classes mères et deviendra " -"l'attribut :attr:`~class.__bases__`. S'il est vide, :class:`object`, la " -"classe mère ultime de toutes les classes, est ajoutée. Le dictionnaire " -"*dict* contient les définitions des attributs et des méthodes du corps de la " -"classe ; il peut être copié ou encapsulé vers un dictionnaire standard pour " -"devenir l'attribut :attr:`~object.__dict__`. Par exemple, les deux " -"instructions suivantes créent deux instances identiques de :class:`type` :" - -#: library/functions.rst:2168 -msgid "See also:" -msgstr "" - -#: library/functions.rst:2170 -msgid "" -":ref:`Documentation on attributes and methods on classes `." -msgstr "" - -#: library/functions.rst:2171 -#, fuzzy -msgid ":ref:`bltin-type-objects`" -msgstr "Voir aussi :ref:`bltin-type-objects`." - -#: library/functions.rst:2173 -msgid "" -"Keyword arguments provided to the three argument form are passed to the " -"appropriate metaclass machinery (usually :meth:`~object.__init_subclass__`) " -"in the same way that keywords in a class definition (besides *metaclass*) " -"would." -msgstr "" -"Les arguments nommés fournis à la forme à trois arguments sont passés au " -"mécanisme de métaclasse approprié " -"(généralement :meth:`~object.__init_subclass__`) de la même manière que les " -"arguments nommés dans une définition de classe (en plus de *metaclass*)." - -#: library/functions.rst:2178 -msgid "See also :ref:`class-customization`." -msgstr "Voir aussi :ref:`class-customization`." - -# suit un : -#: library/functions.rst:2180 -#, fuzzy -msgid "" -"Subclasses of :class:`!type` which don't override ``type.__new__`` may no " -"longer use the one-argument form to get the type of an object." -msgstr "" -"les sous-classes de :class:`type` qui ne redéfinissent pas ``type.__new__`` " -"ne doivent plus utiliser la forme à un argument pour récupérer le type d'un " -"objet." - -#: library/functions.rst:2186 -msgid "*dict* can now be a :class:`frozendict`." -msgstr "" - -#: library/functions.rst:2191 -#, fuzzy -msgid "" -"Return the :attr:`~object.__dict__` attribute for a module, class, instance, " -"or any other object with a :attr:`!__dict__` attribute." -msgstr "" -"Renvoie l'attribut :attr:`~object.__dict__` d'un module, d'une classe, d'une " -"instance ou de n'importe quel objet avec un " -"attribut :attr:`~object.__dict__`." - -#: library/functions.rst:2194 -#, fuzzy -msgid "" -"Objects such as modules and instances have an " -"updateable :attr:`~object.__dict__` attribute; however, other objects may " -"have write restrictions on their :attr:`!__dict__` attributes (for example, " -"classes use a :class:`types.MappingProxyType` to prevent direct dictionary " -"updates)." -msgstr "" -"Certains objets, comme les modules et les instances, ont un " -"attribut :attr:`~object.__dict__` modifiable ; cependant, d'autres objets " -"peuvent avoir des restrictions en écriture sur leurs " -"attributs :attr:`~object.__dict__` (par exemple, les classes utilisent " -"un :class:`types.MappingProxyType` pour éviter les modifications directes du " -"dictionnaire)." - -#: library/functions.rst:2199 -msgid "Without an argument, :func:`vars` acts like :func:`locals`." -msgstr "" - -#: library/functions.rst:2201 -msgid "" -"A :exc:`TypeError` exception is raised if an object is specified but it " -"doesn't have a :attr:`~object.__dict__` attribute (for example, if its class " -"defines the :attr:`~object.__slots__` attribute)." -msgstr "" -"Une exception :exc:`TypeError` est levée si un objet est spécifié mais qu'il " -"n'a pas d'attribut :attr:`~object.__dict__` (par exemple, si sa classe " -"définit l'attribut :attr:`~object.__slots__`)." - -#: library/functions.rst:2207 -msgid "" -"The result of calling this function without an argument has been updated as " -"described for the :func:`locals` builtin." -msgstr "" - -#: library/functions.rst:2213 -msgid "" -"Iterate over several iterables in parallel, producing tuples with an item " -"from each one." -msgstr "" -"Itère sur plusieurs itérables en parallèle, produisant des *n*-uplets avec " -"un élément provenant de chacun." - -#: library/functions.rst:2216 -msgid "Example::" -msgstr "Exemple ::" - -#: library/functions.rst:2225 -msgid "" -"More formally: :func:`zip` returns an iterator of tuples, where the *i*-th " -"tuple contains the *i*-th element from each of the argument iterables." -msgstr "" -"Plus formellement : :func:`zip` renvoie un itérateur de *n*-uplets, où le " -"*i*:sup:`e` *n*-uplet contient le *i*:sup:`e` élément de chacun des " -"itérables passés en arguments." - -#: library/functions.rst:2228 -msgid "" -"Another way to think of :func:`zip` is that it turns rows into columns, and " -"columns into rows. This is similar to `transposing a matrix `_." -msgstr "" -"Une autre façon de voir :func:`zip` est qu'elle transforme les lignes en " -"colonnes et les colonnes en lignes, fournissant la `matrice transposée " -"`_." - -#: library/functions.rst:2232 -msgid "" -":func:`zip` is lazy: The elements won't be processed until the iterable is " -"iterated on, e.g. by a :keyword:`!for` loop or by wrapping in " -"a :class:`list`." -msgstr "" -":func:`zip` est paresseuse : les éléments ne sont traités qu'au moment où " -"l'on itère, par exemple avec une boucle :keyword:`!for` ou en les plaçant " -"dans une :class:`liste `." - -#: library/functions.rst:2236 -msgid "" -"One thing to consider is that the iterables passed to :func:`zip` could have " -"different lengths; sometimes by design, and sometimes because of a bug in " -"the code that prepared these iterables. Python offers three different " -"approaches to dealing with this issue:" -msgstr "" -"Il faut savoir que les itérables passés à :func:`zip` peuvent avoir des " -"longueurs différentes ; parfois par conception, parfois à cause d'un bogue " -"dans le code qui a préparé ces itérables. Python propose trois approches " -"différentes pour traiter ce problème :" - -# énumération -#: library/functions.rst:2241 -msgid "" -"By default, :func:`zip` stops when the shortest iterable is exhausted. It " -"will ignore the remaining items in the longer iterables, cutting off the " -"result to the length of the shortest iterable::" -msgstr "" -"par défaut, :func:`zip` s'arrête lorsque l'itérable le plus court est " -"épuisé. Elle ignore les éléments restants dans les itérables plus longs, " -"coupant le résultat à la longueur de l'itérable le plus court ::" - -#: library/functions.rst:2248 -msgid "" -":func:`zip` is often used in cases where the iterables are assumed to be of " -"equal length. In such cases, it's recommended to use the ``strict=True`` " -"option. Its output is the same as regular :func:`zip`::" -msgstr "" -":func:`zip` est souvent utilisée dans les cas où les itérables sont supposés " -"être de même longueur. Dans ce cas, il est recommandé d'utiliser l'option " -"``strict=True``. Cela produit la même chose que la :func:`zip` habituelle ::" - -#: library/functions.rst:2255 -msgid "" -"Unlike the default behavior, it raises a :exc:`ValueError` if one iterable " -"is exhausted before the others:" -msgstr "" -"Mais, contrairement au comportement par défaut, elle lève " -"une :exc:`ValueError` si un itérable est épuisé avant les autres :" - -#: library/functions.rst:2273 -msgid "" -"Without the ``strict=True`` argument, any bug that results in iterables of " -"different lengths will be silenced, possibly manifesting as a hard-to-find " -"bug in another part of the program." -msgstr "" -"Sans l'argument ``strict=True``, tout bogue entraînant des itérables de " -"longueurs différentes est réduit au silence, se manifestant éventuellement " -"comme un bogue difficile à trouver dans une autre partie du programme." - -# énumération. -#: library/functions.rst:2277 -msgid "" -"Shorter iterables can be padded with a constant value to make all the " -"iterables have the same length. This is done " -"by :func:`itertools.zip_longest`." -msgstr "" -"les itérables plus courts peuvent être remplis avec une valeur constante " -"pour que tous les itérables aient la même longueur. C'est le cas " -"pour :func:`itertools.zip_longest`." - -#: library/functions.rst:2281 -msgid "" -"Edge cases: With a single iterable argument, :func:`zip` returns an iterator " -"of 1-tuples. With no arguments, it returns an empty iterator." -msgstr "" -"Cas extrêmes : avec un seul argument itérable, :func:`zip` renvoie un " -"itérateur de « 1-uplet ». Sans argument, elle renvoie un itérateur vide." - -#: library/functions.rst:2284 -msgid "Tips and tricks:" -msgstr "Trucs et astuces :" - -# suit un : -#: library/functions.rst:2286 -msgid "" -"The left-to-right evaluation order of the iterables is guaranteed. This " -"makes possible an idiom for clustering a data series into n-length groups " -"using ``zip(*[iter(s)]*n, strict=True)``. This repeats the *same* iterator " -"``n`` times so that each output tuple has the result of ``n`` calls to the " -"iterator. This has the effect of dividing the input into n-length chunks." -msgstr "" -"il est garanti que les itérables sont évalués de gauche à droite. Cela rend " -"possible de grouper une séquence de données en groupes de taille *n* via " -"``zip(*[iter(s)]*n, strict=True)``. Cela duplique le *même* itérateur ``n`` " -"fois ; par conséquent le *n*-uplet obtenu contient le résultat de ``n`` " -"appels à l'itérateur. Cela a pour effet de diviser la séquence en morceaux " -"de taille *n*." - -#: library/functions.rst:2292 -msgid "" -":func:`zip` in conjunction with the ``*`` operator can be used to unzip a " -"list::" -msgstr "" -":func:`zip` peut être utilisée conjointement avec l'opérateur ``*`` pour " -"dézipper une liste ::" - -# suit un : -#: library/functions.rst:2303 -msgid "Added the ``strict`` argument." -msgstr "ajout de l'argument ``strict``." - -# suit un : -#: library/functions.rst:2315 -msgid "" -"This is an advanced function that is not needed in everyday Python " -"programming, unlike :func:`importlib.import_module`." -msgstr "" -"c'est une fonction avancée qui n'est pas fréquemment nécessaire, " -"contrairement à :func:`importlib.import_module`." - -#: library/functions.rst:2318 -msgid "" -"This function is invoked by the :keyword:`import` statement. It can be " -"replaced (by importing the :mod:`builtins` module and assigning to " -"``builtins.__import__``) in order to change semantics of the :keyword:`!" -"import` statement, but doing so is **strongly** discouraged as it is usually " -"simpler to use import hooks (see :pep:`302`) to attain the same goals and " -"does not cause issues with code which assumes the default import " -"implementation is in use. Direct use of :func:`__import__` is also " -"discouraged in favor of :func:`importlib.import_module`." -msgstr "" -"Cette fonction est invoquée via l'instruction :keyword:`import`. Elle peut " -"être remplacée (en important le module :mod:`builtins` et en y remplaçant " -"``builtins.__import__``) afin de changer la sémantique de " -"l'instruction :keyword:`!import`, mais c'est extrêmement déconseillé, car il " -"est plus simple d'utiliser des points d'entrée pour les importations " -"(*import hooks*, voir la :pep:`302`) pour le même résultat sans perturber du " -"code s'attendant à trouver l'implémentation par défaut. L'usage direct " -"de :func:`__import__` est aussi déconseillé en faveur " -"de :func:`importlib.import_module`." - -#: library/functions.rst:2327 -msgid "" -"The function imports the module *name*, potentially using the given " -"*globals* and *locals* to determine how to interpret the name in a package " -"context. The *fromlist* gives the names of objects or submodules that should " -"be imported from the module given by *name*. The standard implementation " -"does not use its *locals* argument at all and uses its *globals* only to " -"determine the package context of the :keyword:`import` statement." -msgstr "" -"La fonction importe le module *name*, utilisant potentiellement *globals* et " -"*locals* pour déterminer comment interpréter le nom dans le contexte d'un " -"paquet. *fromlist* donne le nom des objets ou sous-modules qui devraient " -"être importés du module *name*. L'implémentation standard n'utilise pas " -"l'argument *locals* et n'utilise *globals* que pour déterminer le contexte " -"du paquet de l'instruction :keyword:`import`." - -#: library/functions.rst:2334 -msgid "" -"*level* specifies whether to use absolute or relative imports. ``0`` (the " -"default) means only perform absolute imports. Positive values for *level* " -"indicate the number of parent directories to search relative to the " -"directory of the module calling :func:`__import__` (see :pep:`328` for the " -"details)." -msgstr "" -"*level* permet de choisir entre importation absolue ou relative. ``0`` (par " -"défaut) force à effectuer uniquement des importations absolues. Une valeur " -"positive indique le nombre de dossiers parents relativement au dossier du " -"module appelant :func:`__import__` (voir la :pep:`328`)." - -#: library/functions.rst:2340 -msgid "" -"When the *name* variable is of the form ``package.module``, normally, the " -"top-level package (the name up till the first dot) is returned, *not* the " -"module named by *name*. However, when a non-empty *fromlist* argument is " -"given, the module named by *name* is returned." -msgstr "" -"Lorsque la variable *name* est de la forme ``package.module``, normalement, " -"le paquet de plus haut niveau (le nom jusqu'au premier point) est renvoyé, " -"et *pas* le module nommé par *name*. Cependant, lorsqu'un argument " -"*fromlist* est fourni, le module nommé par *name* est renvoyé." - -#: library/functions.rst:2345 -msgid "" -"For example, the statement ``import spam`` results in bytecode resembling " -"the following code::" -msgstr "" -"Par exemple, l'instruction ``import spam`` renvoie un code intermédiaire " -"(*bytecode* en anglais) ressemblant au code suivant ::" - -#: library/functions.rst:2350 -msgid "The statement ``import spam.ham`` results in this call::" -msgstr "L'instruction ``import spam.ham`` appelle ::" - -#: library/functions.rst:2354 -msgid "" -"Note how :func:`__import__` returns the toplevel module here because this is " -"the object that is bound to a name by the :keyword:`import` statement." -msgstr "" -"Notez comment :func:`__import__` renvoie ici le module de plus haut niveau " -"parce que c'est l'objet lié à un nom par l'instruction :keyword:`import`." - -#: library/functions.rst:2357 -msgid "" -"On the other hand, the statement ``from spam.ham import eggs, sausage as " -"saus`` results in ::" -msgstr "" -"En revanche, l'instruction ``from spam.ham import eggs, sausage as saus`` " -"donne ::" - -#: library/functions.rst:2364 -msgid "" -"Here, the ``spam.ham`` module is returned from :func:`__import__`. From " -"this object, the names to import are retrieved and assigned to their " -"respective names." -msgstr "" -"Ici le module ``spam.ham`` est renvoyé par :func:`__import__`. De cet objet, " -"les noms à importer sont récupérés et assignés à leurs noms respectifs." - -#: library/functions.rst:2368 -msgid "" -"If you simply want to import a module (potentially within a package) by " -"name, use :func:`importlib.import_module`." -msgstr "" -"Si vous voulez simplement importer un module (potentiellement dans un " -"paquet) par son nom, utilisez :func:`importlib.import_module`." - -# suit un : -#: library/functions.rst:2371 -msgid "" -"Negative values for *level* are no longer supported (which also changes the " -"default value to 0)." -msgstr "" -"les valeurs négatives pour *level* ne sont plus prises en charge (et sa " -"valeur par défaut est 0)." - -#: library/functions.rst:2375 -msgid "" -"When the command line options :option:`-E` or :option:`-I` are being used, " -"the environment variable :envvar:`PYTHONCASEOK` is now ignored." -msgstr "" -"Quand les options :option:`-E` ou :option:`-I` sont précisées dans la ligne " -"de commande, la variable d'environnement :envvar:`PYTHONCASEOK` est ignorée." - -#: library/functions.rst:2380 -msgid "Footnotes" -msgstr "Notes" - -#: library/functions.rst:2381 -msgid "" -"Note that the parser only accepts the Unix-style end of line convention. If " -"you are reading the code from a file, make sure to use newline conversion " -"mode to convert Windows or Mac-style newlines." -msgstr "" -"Notez que l'analyseur n'accepte que des fin de lignes de style Unix. Si vous " -"lisez le code depuis un fichier, assurez-vous d'utiliser la conversion de " -"retours à la ligne pour convertir les fin de lignes Windows et Mac." - -#~ msgid "" -#~ "``'strict'`` to raise a :exc:`ValueError` exception if there is an " -#~ "encoding error. The default value of ``None`` has the same effect." -#~ msgstr "" -#~ "``'strict'`` pour lever une :exc:`ValueError` si une erreur d'encodage " -#~ "est rencontrée. La valeur par défaut, ``None``, a le même effet." - -#~ msgid "" -#~ "``'ignore'`` ignores errors. Note that ignoring encoding errors can lead " -#~ "to data loss." -#~ msgstr "" -#~ "``'ignore'`` ignore les erreurs. Notez qu'ignorer les erreurs d'encodage " -#~ "peut mener à des pertes de données." - -#~ msgid "" -#~ "``'replace'`` causes a replacement marker (such as ``'?'``) to be " -#~ "inserted where there is malformed data." -#~ msgstr "" -#~ "``'replace'`` insère un marqueur de substitution (tel que ``'?'``) en " -#~ "place des données mal formées." - -#~ msgid "" -#~ "``'surrogateescape'`` will represent any incorrect bytes as low surrogate " -#~ "code units ranging from U+DC80 to U+DCFF. These surrogate code units will " -#~ "then be turned back into the same bytes when the ``surrogateescape`` " -#~ "error handler is used when writing data. This is useful for processing " -#~ "files in an unknown encoding." -#~ msgstr "" -#~ "``'surrogateescape'`` représentera tous les octets incorrects comme des " -#~ "points de code de substitution de l'intervalle bas U+DC80 à U+DCFF. Ces " -#~ "points de code de substitution sont ensuite retransformés dans les mêmes " -#~ "octets lorsque le gestionnaire d'erreurs ``surrogateescape`` est utilisé " -#~ "pour l'écriture des données. C'est utile pour traiter des fichiers d'un " -#~ "encodage inconnu." - -#, fuzzy -#~ msgid "" -#~ "``'xmlcharrefreplace'`` is only supported when writing to a file. " -#~ "Characters not supported by the encoding are replaced with the " -#~ "appropriate XML character reference :samp:`&#{nnn};`." -#~ msgstr "" -#~ "``'xmlcharrefreplace'`` est seulement pris en charge à l'écriture vers un " -#~ "fichier. Les caractères non gérés par l'encodage sont remplacés par une " -#~ "entité XML de la forme ``&#nnn;``." - -#~ msgid "" -#~ "``'backslashreplace'`` replaces malformed data by Python's backslashed " -#~ "escape sequences." -#~ msgstr "" -#~ "``'backslashreplace'`` remplace les données mal formées par des séquences " -#~ "d'échappement Python (utilisant des barres obliques inverses)." - -#~ msgid "" -#~ "``'namereplace'`` (also only supported when writing) replaces unsupported " -#~ "characters with ``\\N{...}`` escape sequences." -#~ msgstr "" -#~ "``'namereplace'`` (aussi supporté lors de l'écriture) remplace les " -#~ "caractères non gérés par des séquences d'échappement ``\\N{...}``." - -#~ msgid "Boolean" -#~ msgstr "booléen" - -#~ msgid "type" -#~ msgstr "type" - -#~ msgid "built-in function" -#~ msgstr "fonction native" - -#~ msgid "exec" -#~ msgstr "exec" - -#~ msgid "NaN" -#~ msgstr "NaN" - -#~ msgid "Infinity" -#~ msgstr "infini" - -#~ msgid "__format__" -#~ msgstr "__format__" - -#~ msgid "string" -#~ msgstr "chaîne de caractères" - -#~ msgid "format() (built-in function)" -#~ msgstr "format() (fonction native)" - -#~ msgid "file object" -#~ msgstr "objet fichier" - -#~ msgid "open() built-in function" -#~ msgstr "open() fonction native" - -#~ msgid "file" -#~ msgstr "fichier" - -#~ msgid "modes" -#~ msgstr "modes" - -#~ msgid "universal newlines" -#~ msgstr "retours à la ligne universels" - -#~ msgid "line-buffered I/O" -#~ msgstr "entrées-sorties avec tampon par ligne" - -#~ msgid "unbuffered I/O" -#~ msgstr "entrées-sorties sans tampon" - -#~ msgid "buffer size, I/O" -#~ msgstr "taille du tampon, entrées-sorties" - -#~ msgid "I/O control" -#~ msgstr "contrôle des entrées-sorties" - -#~ msgid "buffering" -#~ msgstr "mise en tampon" - -#~ msgid "text mode" -#~ msgstr "mode texte" - -#~ msgid "module" -#~ msgstr "module" - -#~ msgid "sys" -#~ msgstr "sys" - -#~ msgid "str() (built-in function)" -#~ msgstr "*str()* (fonction native)" - -#~ msgid "object" -#~ msgstr "objet" - -#~ msgid "statement" -#~ msgstr "instruction" - -#~ msgid "import" -#~ msgstr "import" - -#~ msgid "builtins" -#~ msgstr "builtins" - -#~ msgid "" -#~ "Update and return a dictionary representing the current local symbol " -#~ "table. Free variables are returned by :func:`locals` when it is called in " -#~ "function blocks, but not in class blocks. Note that at the module " -#~ "level, :func:`locals` and :func:`globals` are the same dictionary." -#~ msgstr "" -#~ "Met à jour et renvoie un dictionnaire représentant la table des symboles " -#~ "locaux. Les variables libres sont renvoyées par la " -#~ "fonction :func:`locals` lorsque celle-ci est appelée dans le corps d'une " -#~ "fonction, mais pas dans le corps d'une classe. Notez qu’au niveau d’un " -#~ "module, :func:`locals` et :func:`globals` sont le même dictionnaire." - -#~ msgid "" -#~ "The contents of this dictionary should not be modified; changes may not " -#~ "affect the values of local and free variables used by the interpreter." -#~ msgstr "" -#~ "Le contenu de ce dictionnaire ne doit pas être modifié ; les changements " -#~ "n'affectent pas les valeurs des variables locales ou libres utilisées par " -#~ "l'interpréteur." - -#~ msgid "" -#~ "Without an argument, :func:`vars` acts like :func:`locals`. Note, the " -#~ "locals dictionary is only useful for reads since updates to the locals " -#~ "dictionary are ignored." -#~ msgstr "" -#~ "Sans argument, :func:`vars` se comporte comme :func:`locals`. Notez que " -#~ "le dictionnaire des variables locales n'est utile qu'en lecture, car ses " -#~ "écritures sont ignorées." - -#~ msgid "" -#~ "Raises an :ref:`auditing event ` ``compile`` with arguments " -#~ "``source``, ``filename``." -#~ msgstr "" -#~ "Lève un :ref:`évènement d'audit ` ``compile`` avec les " -#~ "arguments ``source`` et ``filename``." - -#~ msgid "" -#~ "Return a complex number with the value *real* + *imag*\\*1j or convert a " -#~ "string or number to a complex number. If the first parameter is a " -#~ "string, it will be interpreted as a complex number and the function must " -#~ "be called without a second parameter. The second parameter can never be " -#~ "a string. Each argument may be any numeric type (including complex). If " -#~ "*imag* is omitted, it defaults to zero and the constructor serves as a " -#~ "numeric conversion like :class:`int` and :class:`float`. If both " -#~ "arguments are omitted, returns ``0j``." -#~ msgstr "" -#~ "Renvoie un nombre complexe de valeur ``real + imag*1j``, ou convertit une " -#~ "chaîne ou un nombre en nombre complexe. Si le premier paramètre est une " -#~ "chaîne, il sera interprété comme un nombre complexe et la fonction doit " -#~ "être appelée sans second paramètre. Le second paramètre ne peut jamais " -#~ "être une chaîne. Chaque argument peut être de n'importe quel type " -#~ "numérique (même complexe). Si *imag* est omis, sa valeur par défaut est " -#~ "zéro, le constructeur effectue alors une simple conversion numérique " -#~ "comme le font :class:`int` ou :class:`float`. Si aucun argument n'est " -#~ "fourni, renvoie ``0j``." - -# suit un : -#~ msgid "" -#~ "When converting from a string, the string must not contain whitespace " -#~ "around the central ``+`` or ``-`` operator. For example, " -#~ "``complex('1+2j')`` is fine, but ``complex('1 + 2j')`` " -#~ "raises :exc:`ValueError`." -#~ msgstr "" -#~ "lors de la conversion depuis une chaîne, elle ne doit pas contenir " -#~ "d'espaces autour des opérateurs binaires ``+`` ou ``-``. Par exemple " -#~ "``complex('1+2j')`` est correct, mais ``complex('1 + 2j')`` lève " -#~ "une :exc:`ValueError`." - -#~ msgid "" -#~ "The arguments are a string and optional globals and locals. If provided, " -#~ "*globals* must be a dictionary. If provided, *locals* can be any mapping " -#~ "object." -#~ msgstr "" -#~ "Les arguments sont : une chaîne, et optionnellement des locales et des " -#~ "globales. S'il est fourni, *globals* doit être un dictionnaire. S'il est " -#~ "fourni, *locals* peut être n'importe quel objet *mapping*." - -#~ msgid "" -#~ "The return value is the result of the evaluated expression. Syntax errors " -#~ "are reported as exceptions. Example:" -#~ msgstr "" -#~ "La valeur de retour est le résultat de l'expression évaluée. Les erreurs " -#~ "de syntaxe sont signalées comme des exceptions. Exemple :" - -#~ msgid "" -#~ "Raises an :ref:`auditing event ` ``exec`` with argument " -#~ "``code_object``." -#~ msgstr "" -#~ "Lève un :ref:`évènement d'audit ` ``exec`` avec l'argument " -#~ "``code_object``." - -#~ msgid "" -#~ "Raises an :ref:`auditing event ` ``builtins.input`` with " -#~ "argument ``prompt``." -#~ msgstr "" -#~ "Lève un :ref:`évènement d'audit ` ``builtins.input`` avec " -#~ "l'argument ``prompt``." - -#~ msgid "" -#~ "Raises an :ref:`auditing event ` ``builtins.input/result`` with " -#~ "argument ``result``." -#~ msgstr "" -#~ "Lève un :ref:`évènement d'audit ` ``builtins.input/result`` " -#~ "avec l'argument ``result``." - -#~ msgid "" -#~ "Return a :term:`slice` object representing the set of indices specified " -#~ "by ``range(start, stop, step)``. The *start* and *step* arguments " -#~ "default to ``None``. Slice objects have read-only data " -#~ "attributes :attr:`~slice.start`, :attr:`~slice.stop`, " -#~ "and :attr:`~slice.step` which merely return the argument values (or their " -#~ "default). They have no other explicit functionality; however, they are " -#~ "used by NumPy and other third-party packages. Slice objects are also " -#~ "generated when extended indexing syntax is used. For example: " -#~ "``a[start:stop:step]`` or ``a[start:stop, i]``. " -#~ "See :func:`itertools.islice` for an alternate version that returns an " -#~ "iterator." -#~ msgstr "" -#~ "Renvoie une :term:`tranche ` représentant un ensemble d'indices " -#~ "spécifiés par ``range(start, stop, step)``. Les arguments *start* et " -#~ "*step* valent ``None`` par défaut. Les objets « tranches » ont les " -#~ "attributs suivants en lecture " -#~ "seule : :attr:`~slice.start`, :attr:`~slice.stop` et :attr:`~slice.step` " -#~ "qui valent simplement les trois arguments (ou leurs valeurs par défaut). " -#~ "Ils n'ont pas d'autre fonctionnalité explicite, cependant ils sont " -#~ "utilisés par *NumPy* et d'autres paquets. Les objets « tranches » sont " -#~ "aussi générés par la notation par indice étendue. Par exemple " -#~ "``a[start:stop:step]`` ou ``a[start:stop, i]``. " -#~ "Voir :func:`itertools.islice` pour une version alternative renvoyant un " -#~ "itérateur." - -#~ msgid "" -#~ "There is an additional mode character permitted, ``'U'``, which no longer " -#~ "has any effect, and is considered deprecated. It previously " -#~ "enabled :term:`universal newlines` in text mode, which became the default " -#~ "behavior in Python 3.0. Refer to the documentation of the :ref:`newline " -#~ "` parameter for further details." -#~ msgstr "" -#~ "Il y a un mode « caractères » supplémentaire autorisé, ``’U’``, qui n'a " -#~ "plus d'effet, et est considéré comme obsolète. Auparavant, il activait " -#~ "les :term:`retours à la ligne universels ` en mode " -#~ "texte, qui est devenu le comportement par défaut dans Python 3.0. Référez-" -#~ "vous à la documentation du paramètre :ref:`newline ` pour plus de détails." - -#~ msgid "The ``'U'`` mode." -#~ msgstr "Le mode ``'U'``." - -#~ msgid "" -#~ "Make an iterator that aggregates elements from each of the iterables." -#~ msgstr "" -#~ "Construit un itérateur agrégeant les éléments de tous les itérables." - -#~ msgid "" -#~ "Returns an iterator of tuples, where the *i*-th tuple contains the *i*-th " -#~ "element from each of the argument sequences or iterables. The iterator " -#~ "stops when the shortest input iterable is exhausted. With a single " -#~ "iterable argument, it returns an iterator of 1-tuples. With no " -#~ "arguments, it returns an empty iterator. Equivalent to::" -#~ msgstr "" -#~ "Renvoie un itérateur de *n*-uplets, où le *i*\\ :sup:`e` *n*-uplet " -#~ "contient le *i*\\ :sup:`e` élément de chacune des séquences ou itérables " -#~ "fournis. L'itérateur s'arrête lorsque le plus petit itérable fourni est " -#~ "épuisé. Avec un seul argument itérable, elle renvoie un itérateur sur des " -#~ "*n*-uplets d'un élément. Sans argument, elle renvoie un itérateur vide. " -#~ "Équivalent à ::" - -#~ msgid "" -#~ ":func:`zip` should only be used with unequal length inputs when you don't " -#~ "care about trailing, unmatched values from the longer iterables. If " -#~ "those values are important, use :func:`itertools.zip_longest` instead." -#~ msgstr "" -#~ ":func:`zip` ne doit être utilisée avec des itérables de longueurs " -#~ "différentes que lorsque les dernières données des itérables les plus " -#~ "longs peuvent être ignorées. Si ces valeurs sont importantes, utilisez " -#~ "plutôt :func:`itertools.zip_longest`." - -#~ msgid "" -#~ "The optional argument *flags* also controls whether the compiled source " -#~ "is allowed to contain top-level ``await``, ``async for`` and ``async " -#~ "with``. When the bit ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` is set, the " -#~ "return code object has ``CO_COROUTINE`` set in ``co_code``, and can be " -#~ "interactively executed via ``await eval(code_object)``." -#~ msgstr "" -#~ "L'argument optionnel *flags* contrôle également si la source compilée est " -#~ "autorisée à contenir des ``await``, des ``async for`` et des ``async " -#~ "with`` de haut niveau. Lorsque le bit ``ast.PyCF_ALLOW_TOP_LEVEL_AWAIT`` " -#~ "est activé, l'objet code renvoyé a ``CO_COROUTINE`` activé dans " -#~ "``co_code``, et peut être exécuté de manière interactive via ``await " -#~ "eval(code_object)``." - -#~ msgid "For more information on class methods, see :ref:`types`." -#~ msgstr "" -#~ "Pour plus d'informations sur les méthodes de classe, " -#~ "consultez :ref:`types`." diff --git a/library/functools.po b/library/functools.po deleted file mode 100644 index 4a22b7c3c4..0000000000 --- a/library/functools.po +++ /dev/null @@ -1,981 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-10-18 15:58+0200\n" -"Last-Translator: Antoine Wecxsteen\n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.3\n" - -#: library/functools.rst:2 -#, fuzzy -msgid "" -":mod:`!functools` --- Higher-order functions and operations on callable " -"objects" -msgstr "" -":mod:`functools` — Fonctions d'ordre supérieur et opérations sur des objets " -"appelables" - -#: library/functools.rst:7 -msgid "**Source code:** :source:`Lib/functools.py`" -msgstr "**Code source :** :source:`Lib/functools.py`" - -#: library/functools.rst:16 -#, fuzzy -msgid "" -"The :mod:`!functools` module is for higher-order functions: functions that " -"act on or return other functions. In general, any callable object can be " -"treated as a function for the purposes of this module." -msgstr "" -"Le module :mod:`functools` concerne les fonctions d'ordre supérieur : des " -"fonctions qui agissent sur, ou renvoient, d'autres fonctions. En général, " -"tout objet appelable peut être considéré comme une fonction dans la " -"description de ce module." - -#: library/functools.rst:20 -#, fuzzy -msgid "The :mod:`!functools` module defines the following functions:" -msgstr "Le module :mod:`functools` définit les fonctions suivantes :" - -#: library/functools.rst:24 -msgid "" -"Simple lightweight unbounded function cache. Sometimes called `\"memoize\" " -"`_." -msgstr "" -"Fonction de cache très simple et sans limite de taille. Cette technique est " -"parfois appelée `« mémoïsation » `_." - -#: library/functools.rst:27 -#, fuzzy -msgid "" -"Returns the same as ``lru_cache(maxsize=None)``, creating a thin wrapper " -"around a dictionary lookup for the function arguments. Because it never " -"needs to evict old values, this is smaller and faster than :func:`lru_cache` " -"with a size limit." -msgstr "" -"Identique à ``lru_cache(maxsize=None)``. Crée une surcouche légère avec une " -"recherche dans un dictionnaire indexé par les arguments de la fonction. " -"Comme elle ne nettoie jamais les anciennes entrées, elle est plus simple et " -"plus rapide que :func:`lru_cache()` avec une limite." - -#: library/functools.rst:294 -msgid "For example::" -msgstr "Par exemple ::" - -#: library/functools.rst:155 -msgid "" -"The cache is threadsafe so that the wrapped function can be used in multiple " -"threads. This means that the underlying data structure will remain coherent " -"during concurrent updates." -msgstr "" - -#: library/functools.rst:159 -msgid "" -"It is possible for the wrapped function to be called more than once if " -"another thread makes an additional call before the initial call has been " -"completed and cached." -msgstr "" - -#: library/functools.rst:53 -msgid "" -"Call-once behavior is not guaranteed because locks are not held during the " -"function call. Potentially another call with the same arguments could occur " -"while the first call is still running." -msgstr "" - -#: library/functools.rst:62 -msgid "" -"Transform a method of a class into a property whose value is computed once " -"and then cached as a normal attribute for the life of the instance. Similar " -"to :func:`property`, with the addition of caching. Useful for expensive " -"computed properties of instances that are otherwise effectively immutable." -msgstr "" - -#: library/functools.rst:139 library/functools.rst:435 -msgid "Example::" -msgstr "Exemple ::" - -#: library/functools.rst:78 -msgid "" -"The mechanics of :func:`cached_property` are somewhat different " -"from :func:`property`. A regular property blocks attribute writes unless a " -"setter is defined. In contrast, a *cached_property* allows writes." -msgstr "" - -#: library/functools.rst:82 -msgid "" -"The *cached_property* decorator only runs on lookups and only when an " -"attribute of the same name doesn't exist. When it does run, the " -"*cached_property* writes to the attribute with the same name. Subsequent " -"attribute reads and writes take precedence over the *cached_property* method " -"and it works like a normal attribute." -msgstr "" - -#: library/functools.rst:88 -msgid "" -"The cached value can be cleared by deleting the attribute. This allows the " -"*cached_property* method to run again." -msgstr "" - -#: library/functools.rst:91 -msgid "" -"The *cached_property* does not prevent a possible race condition in multi-" -"threaded usage. The getter function could run more than once on the same " -"instance, with the latest run setting the cached value. If the cached " -"property is idempotent or otherwise not harmful to run more than once on an " -"instance, this is fine. If synchronization is needed, implement the " -"necessary locking inside the decorated getter function or around the cached " -"property access." -msgstr "" - -#: library/functools.rst:99 -msgid "" -"Note, this decorator interferes with the operation of :pep:`412` key-sharing " -"dictionaries. This means that instance dictionaries can take more space " -"than usual." -msgstr "" - -#: library/functools.rst:103 -msgid "" -"Also, this decorator requires that the ``__dict__`` attribute on each " -"instance be a mutable mapping. This means it will not work with some types, " -"such as metaclasses (since the ``__dict__`` attributes on type instances are " -"read-only proxies for the class namespace), and those that specify " -"``__slots__`` without including ``__dict__`` as one of the defined slots (as " -"such classes don't provide a ``__dict__`` attribute at all)." -msgstr "" - -#: library/functools.rst:110 -msgid "" -"If a mutable mapping is not available or if space-efficient key sharing is " -"desired, an effect similar to :func:`cached_property` can also be achieved " -"by stacking :func:`property` on top of :func:`lru_cache`. See :ref:`faq-" -"cache-method-calls` for more details on how this differs " -"from :func:`cached_property`." -msgstr "" - -#: library/functools.rst:117 -msgid "" -"Prior to Python 3.12, ``cached_property`` included an undocumented lock to " -"ensure that in multi-threaded usage the getter function was guaranteed to " -"run only once per instance. However, the lock was per-property, not per-" -"instance, which could result in unacceptably high lock contention. In Python " -"3.12+ this locking is removed." -msgstr "" - -#: library/functools.rst:127 -msgid "" -"Transform an old-style comparison function to a :term:`key function`. Used " -"with tools that accept key functions (such " -"as :func:`sorted`, :func:`min`, :func:`max`, :func:`heapq.nlargest`, :func:`heapq.nsmallest`, :func:`itertools.groupby`). " -"This function is primarily used as a transition tool for programs being " -"converted from Python 2 which supported the use of comparison functions." -msgstr "" -"Transforme une fonction de comparaison à l'ancienne en une :term:`fonction " -"clé`. Utilisé avec des outils qui acceptent des fonctions clef " -"(comme :func:`sorted`, :func:`min`, :func:`max`, :func:`heapq.nlargest`, :func:`heapq.nsmallest`, :func:`itertools.groupby`). " -"Cette fonction est destinée au portage de fonctions python 2 utilisant des " -"fonctions de comparaison vers Python 3." - -#: library/functools.rst:134 -#, fuzzy -msgid "" -"A comparison function is any callable that accepts two arguments, compares " -"them, and returns a negative number for less-than, zero for equality, or a " -"positive number for greater-than. A key function is a callable that accepts " -"one argument and returns another value to be used as the sort key." -msgstr "" -"Une fonction de comparaison est un appelable qui prend deux arguments, les " -"compare, et renvoie un nombre négatif pour l'infériorité, zéro pour " -"l'égalité ou un nombre positif pour la supériorité. Une fonction de clé est " -"un appelable qui prend un argument et retourne une autre valeur qui sera " -"utilisée comme clé de tri." - -#: library/functools.rst:143 -msgid "" -"For sorting examples and a brief sorting tutorial, see :ref:`sortinghowto`." -msgstr "" -"Pour des exemples de tris et un bref tutoriel, consultez :ref:`sortinghowto`." - -#: library/functools.rst:151 -msgid "" -"Decorator to wrap a function with a memoizing callable that saves up to the " -"*maxsize* most recent calls. It can save time when an expensive or I/O " -"bound function is periodically called with the same arguments." -msgstr "" -"Décorateur qui englobe une fonction avec un appelable mémoïsant qui " -"enregistre jusqu'à *maxsize* appels récents. Cela peut gagner du temps quand " -"une fonction coûteuse en ressources est souvent appelée avec les mêmes " -"arguments." - -#: library/functools.rst:163 -#, fuzzy -msgid "" -"Since a dictionary is used to cache results, the positional and keyword " -"arguments to the function must be :term:`hashable`." -msgstr "" -"Comme un dictionnaire est utilisé pour mettre en cache les résultats, les " -"arguments positionnels et nommés de la fonction doivent être hachables." - -#: library/functools.rst:166 -#, fuzzy -msgid "" -"Distinct argument patterns may be considered to be distinct calls with " -"separate cache entries. For example, ``f(a=1, b=2)`` and ``f(b=2, a=1)`` " -"differ in their keyword argument order and may have two separate cache " -"entries." -msgstr "" -"Des agencements différents des arguments peuvent être considérés comme des " -"appels différents avec chacun leur propre entrée dans le cache. Par exemple, " -"``f(a=1, b=2)`` et ``f(b=2, a=1)`` n'ont pas leurs arguments dans le même " -"ordre et peuvent donc avoir des entrées distinctes dans le cache." - -#: library/functools.rst:171 -msgid "" -"If *user_function* is specified, it must be a callable. This allows the " -"*lru_cache* decorator to be applied directly to a user function, leaving the " -"*maxsize* at its default value of 128::" -msgstr "" -"Si *user_function* est défini, ce doit être un appelable. Ceci permet à " -"*lru_cache* d'être appliqué directement sur une fonction de l'utilisateur, " -"sans préciser *maxsize* (qui est alors défini à sa valeur par défaut, 128) ::" - -#: library/functools.rst:179 -msgid "" -"If *maxsize* is set to ``None``, the LRU feature is disabled and the cache " -"can grow without bound." -msgstr "" -"Si *maxsize* est à ``None``, la fonctionnalité LRU est désactivée et le " -"cache peut grossir sans limite." - -#: library/functools.rst:182 -#, fuzzy -msgid "" -"If *typed* is set to true, function arguments of different types will be " -"cached separately. If *typed* is false, the implementation will usually " -"regard them as equivalent calls and only cache a single result. (Some types " -"such as *str* and *int* may be cached separately even when *typed* is false.)" -msgstr "" -"Si *typed* est vrai, les arguments de différents types seront mis en cache " -"séparément. Par exemple, ``f(3)`` et ``f(3.0)`` seront considérés comme des " -"appels distincts avec des résultats distincts." - -#: library/functools.rst:188 -msgid "" -"Note, type specificity applies only to the function's immediate arguments " -"rather than their contents. The scalar arguments, ``Decimal(42)`` and " -"``Fraction(42)`` are treated as distinct calls with distinct results. In " -"contrast, the tuple arguments ``('answer', Decimal(42))`` and ``('answer', " -"Fraction(42))`` are treated as equivalent." -msgstr "" - -#: library/functools.rst:194 -#, fuzzy -msgid "" -"The wrapped function is instrumented with a :func:`!cache_parameters` " -"function that returns a new :class:`dict` showing the values for *maxsize* " -"and *typed*. This is for information purposes only. Mutating the values " -"has no effect." -msgstr "" -"La fonction encapsulée est initialisée par la " -"fonction :func:`cache_parameters` qui renvoie un :class:`dict` contenant les " -"valeurs de *maxsize* et de *typed*. Cela ne sert qu'au débogage, changer ces " -"valeurs n'a pas d'incidence." - -#: library/functools.rst:202 -#, fuzzy -msgid "" -"To help measure the effectiveness of the cache and tune the *maxsize* " -"parameter, the wrapped function is instrumented with a :func:`!cache_info` " -"function that returns a :term:`named tuple` showing *hits*, *misses*, " -"*maxsize* and *currsize*." -msgstr "" -"Pour aider à mesurer l'efficacité du cache et ajuster le paramètre " -"*maxsize*, la fonction englobée est surveillée avec une " -"fonction :func:`cache_info` qui renvoie un :term:`named tuple` affichant les " -"*hits*, *misses*, *maxsize* et *currsize*. Dans un environnement " -"*multithread*, les succès et échecs d'appel du cache sont approximatifs." - -#: library/functools.rst:210 -#, fuzzy -msgid "" -"The decorator also provides a :func:`!cache_clear` function for clearing or " -"invalidating the cache." -msgstr "" -"Le décorateur fournit également une fonction :func:`cache_clear` pour vider " -"ou invalider le cache." - -#: library/functools.rst:213 -msgid "" -"The original underlying function is accessible through " -"the :attr:`__wrapped__` attribute. This is useful for introspection, for " -"bypassing the cache, or for rewrapping the function with a different cache." -msgstr "" -"La fonction sous-jacente originale est accessible à travers " -"l'attribut :attr:`__wrapped__`. Ceci est utile pour l'introspection, pour " -"outrepasser le cache, ou pour ré-englober la fonction avec un cache " -"différent." - -#: library/functools.rst:217 -msgid "" -"The cache keeps references to the arguments and return values until they age " -"out of the cache or until the cache is cleared." -msgstr "" - -#: library/functools.rst:220 -msgid "" -"If a method is cached, the ``self`` instance argument is included in the " -"cache. See :ref:`faq-cache-method-calls`" -msgstr "" - -#: library/functools.rst:223 -#, fuzzy -msgid "" -"An `LRU (least recently used) cache `_ works best when the " -"most recent calls are the best predictors of upcoming calls (for example, " -"the most popular articles on a news server tend to change each day). The " -"cache's size limit assures that the cache does not grow without bound on " -"long-running processes such as web servers." -msgstr "" -"Un `cache LRU (*least recently used*) `_ " -"fonctionne de manière optimale lorsque les appels récents sont les prochains " -"appels les plus probables (par exemple, les articles les plus lus d'un " -"serveur d'actualités ont tendance à ne changer que d'un jour à l'autre). La " -"taille limite du cache permet de s'assurer que le cache ne grossisse pas " -"sans limite dans les processus à longue durée de vie comme les serveurs Web." - -#: library/functools.rst:230 -#, fuzzy -msgid "" -"In general, the LRU cache should only be used when you want to reuse " -"previously computed values. Accordingly, it doesn't make sense to cache " -"functions with side-effects, functions that need to create distinct mutable " -"objects on each call (such as generators and async functions), or impure " -"functions such as time() or random()." -msgstr "" -"En général, le cache LRU ne doit être utilisé que quand vous voulez ré-" -"utiliser les valeurs déjà calculées. Ainsi, cela n'a pas de sens de mettre " -"un cache sur une fonction qui a des effets de bord, qui doit créer un objet " -"mutable distinct à chaque appel ou des fonctions *impures* telles que ``!" -"time()`` ou ``!random()``." - -#: library/functools.rst:236 -msgid "Example of an LRU cache for static web content::" -msgstr "Exemple d'un cache LRU pour du contenu web statique ::" - -#: library/functools.rst:255 -msgid "" -"Example of efficiently computing `Fibonacci numbers `_ using a cache to implement a " -"`dynamic programming `_ " -"technique::" -msgstr "" -"Exemple de calcul efficace de `la suite de Fibonacci `_ en utilisant un cache pour " -"implémenter la technique de `programmation dynamique `_ ::" - -#: library/functools.rst:275 -msgid "Added the *typed* option." -msgstr "L'option *typed* a été ajoutée." - -#: library/functools.rst:278 -msgid "Added the *user_function* option." -msgstr "Ajout de l'option *user_function*." - -#: library/functools.rst:281 -#, fuzzy -msgid "Added the function :func:`!cache_parameters`" -msgstr "Ajout de la fonction :func:`cache_parameters`" - -#: library/functools.rst:286 -msgid "" -"Given a class defining one or more rich comparison ordering methods, this " -"class decorator supplies the rest. This simplifies the effort involved in " -"specifying all of the possible rich comparison operations:" -msgstr "" -"A partir d'une classe définissant une ou plusieurs méthodes de comparaison " -"riches, ce décorateur de classe fournit le reste. Ceci simplifie l'effort à " -"fournir dans la spécification de toutes les opérations de comparaison riche :" - -#: library/functools.rst:290 -#, fuzzy -msgid "" -"The class must define one " -"of :meth:`~object.__lt__`, :meth:`~object.__le__`, :meth:`~object.__gt__`, " -"or :meth:`~object.__ge__`. In addition, the class should supply " -"an :meth:`~object.__eq__` method." -msgstr "" -"La classe doit définir au moins une de ces " -"méthodes :meth:`__lt__`, :meth:`__le__`, :meth:`__gt__`, ou :meth:`__ge__`. " -"De plus, la classe doit fournir une méthode :meth:`__eq__`." - -#: library/functools.rst:314 -msgid "" -"While this decorator makes it easy to create well behaved totally ordered " -"types, it *does* come at the cost of slower execution and more complex stack " -"traces for the derived comparison methods. If performance benchmarking " -"indicates this is a bottleneck for a given application, implementing all six " -"rich comparison methods instead is likely to provide an easy speed boost." -msgstr "" -"Même si ce décorateur permet de créer des types ordonnables facilement, cela " -"vient avec un *coût* d'exécution et des traces d'exécution complexes pour " -"les méthodes de comparaison dérivées. Si des tests de performances le " -"révèlent comme un goulot d'étranglement, l'implémentation manuelle des six " -"méthodes de comparaison riches résoudra normalement vos problèmes de " -"rapidité." - -#: library/functools.rst:323 -msgid "" -"This decorator makes no attempt to override methods that have been declared " -"in the class *or its superclasses*. Meaning that if a superclass defines a " -"comparison operator, *total_ordering* will not implement it again, even if " -"the original method is abstract." -msgstr "" - -#: library/functools.rst:330 -#, fuzzy -msgid "" -"Returning ``NotImplemented`` from the underlying comparison function for " -"unrecognised types is now supported." -msgstr "" -"Retourner NotImplemented dans les fonction de comparaison sous-jacentes pour " -"les types non reconnus est maintenant supporté." - -#: library/functools.rst:336 -msgid "" -"A singleton object used as a sentinel to reserve a place for positional " -"arguments when calling :func:`partial` and :func:`partialmethod`." -msgstr "" - -#: library/functools.rst:344 -msgid "" -"Return a new :ref:`partial object` which when called will " -"behave like *func* called with the positional arguments *args* and keyword " -"arguments *keywords*. If more arguments are supplied to the call, they are " -"appended to *args*. If additional keyword arguments are supplied, they " -"extend and override *keywords*. Roughly equivalent to::" -msgstr "" -"Retourne un nouvel :ref:`objet partiel ` qui, quand il est " -"appelé, fonctionne comme *func* appelée avec les arguments positionnels " -"*args* et les arguments nommés *keywords*. Si plus d'arguments sont fournis " -"à l'appel, ils sont ajoutés à *args*. Si plus d'arguments nommés sont " -"fournis, ils étendent et surchargent *keywords*. À peu près équivalent à ::" - -#: library/functools.rst:359 -#, fuzzy -msgid "" -"The :func:`!partial` function is used for partial function application which " -"\"freezes\" some portion of a function's arguments and/or keywords resulting " -"in a new object with a simplified signature. For example, :func:`partial` " -"can be used to create a callable that behaves like the :func:`int` function " -"where the *base* argument defaults to ``2``:" -msgstr "" -":func:`partial` est utilisé pour une application de fonction partielle qui " -"\"gèle\" une portion des arguments et/ou mots-clés d'une fonction donnant un " -"nouvel objet avec une signature simplifiée. Par exemple, :func:`partial` " -"peut être utilisé pour créer un appelable qui se comporte comme la " -"fonction :func:`int` ou l'argument *base* est deux par défaut :" - -#: library/functools.rst:372 -msgid "" -"If :data:`Placeholder` sentinels are present in *args*, they will be filled " -"first when :func:`!partial` is called. This makes it possible to pre-fill " -"any positional argument with a call to :func:`!partial`; without :data:`!" -"Placeholder`, only the chosen number of leading positional arguments can be " -"pre-filled." -msgstr "" - -#: library/functools.rst:377 -msgid "" -"If any :data:`!Placeholder` sentinels are present, all must be filled at " -"call time:" -msgstr "" - -#: library/functools.rst:385 -msgid "" -"Calling ``say_to_world('Hello')`` raises a :exc:`TypeError`, because only " -"one positional argument is provided, but there are two placeholders that " -"must be filled in." -msgstr "" - -#: library/functools.rst:389 -msgid "" -"If :func:`!partial` is applied to an existing :func:`!partial` " -"object, :data:`!Placeholder` sentinels of the input object are filled in " -"with new positional arguments. A placeholder can be retained by inserting a " -"new :data:`!Placeholder` sentinel to the place held by a previous :data:`!" -"Placeholder`:" -msgstr "" - -#: library/functools.rst:409 -msgid "" -":data:`!Placeholder` cannot be passed to :func:`!partial` as a keyword " -"argument." -msgstr "" - -#: library/functools.rst:411 -msgid "Added support for :data:`Placeholder` in positional arguments." -msgstr "" - -#: library/functools.rst:416 -msgid "" -"Return a new :class:`partialmethod` descriptor which behaves " -"like :class:`partial` except that it is designed to be used as a method " -"definition rather than being directly callable." -msgstr "" -"Retourne un nouveau descripteur :class:`partialmethod` qui se comporte " -"comme :class:`partial` sauf qu'il est fait pour être utilisé comme une " -"définition de méthode plutôt que d'être appelé directement." - -#: library/functools.rst:420 -msgid "" -"*func* must be a :term:`descriptor` or a callable (objects which are both, " -"like normal functions, are handled as descriptors)." -msgstr "" -"*func* doit être un :term:`descriptor` ou un appelable (les objets qui sont " -"les deux, comme les fonction normales, sont gérés comme des descripteurs)." - -#: library/functools.rst:423 -#, fuzzy -msgid "" -"When *func* is a descriptor (such as a normal Python " -"function, :func:`classmethod`, :func:`staticmethod`, :func:`~abc.abstractmethod` " -"or another instance of :class:`partialmethod`), calls to ``__get__`` are " -"delegated to the underlying descriptor, and an appropriate :ref:`partial " -"object` returned as the result." -msgstr "" -"Quand *func* est un descripteur (comme une fonction Python " -"normale, :func:`classmethod`, :func:`staticmethod`, :func:`abstractmethod` " -"ou une autre instance de :class:`partialmethod`), les appels à ``__get__`` " -"sont délégués au descripteur sous-jacent, et un :ref:`objet partiel ` approprié est renvoyé comme résultat." - -#: library/functools.rst:429 -msgid "" -"When *func* is a non-descriptor callable, an appropriate bound method is " -"created dynamically. This behaves like a normal Python function when used as " -"a method: the *self* argument will be inserted as the first positional " -"argument, even before the *args* and *keywords* supplied to " -"the :class:`partialmethod` constructor." -msgstr "" -"Quand *func* est un appelable non-descripteur, une méthode liée appropriée " -"est crée dynamiquement. Elle se comporte comme une fonction Python normale " -"quand elle est utilisée comme méthode : l'argument *self* sera inséré comme " -"premier argument positionnel, avant les *args* et *keywords* fournis au " -"constructeur :class:`partialmethod`." - -#: library/functools.rst:460 -#, fuzzy -msgid "" -"Apply *function* of two arguments cumulatively to the items of *iterable*, " -"from left to right, so as to reduce the iterable to a single value. For " -"example, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calculates " -"``((((1+2)+3)+4)+5)``. The left argument, *x*, is the accumulated value and " -"the right argument, *y*, is the update value from the *iterable*. If the " -"optional *initial* is present, it is placed before the items of the iterable " -"in the calculation, and serves as a default when the iterable is empty. If " -"*initial* is not given and *iterable* contains only one item, the first item " -"is returned." -msgstr "" -"Applique *function* avec deux arguments cumulativement aux éléments de " -"*iterable*, de gauche à droite, pour réduire la séquence à une valeur " -"unique. Par exemple, ``reduce(lambda x, y: x+y, [1, 2, 3, 4, 5])`` calcule " -"``((((1+2)+3)+4)+5)``. L'argument de gauche, *x*, est la valeur de cumul et " -"celui de droite, *y*, est la valeur mise à jour depuis *iterable*. Si " -"l'argument optionnel *initializer* est présent, il est placé avant les " -"éléments de la séquence dans le calcul, et sert de valeur par défaut quand " -"la séquence est vide. Si *initializer* n'est pas renseigné et que *iterable* " -"ne contient qu'un élément, le premier élément est renvoyé." - -#: library/functools.rst:469 -msgid "Roughly equivalent to::" -msgstr "À peu près équivalent à ::" - -#: library/functools.rst:483 -msgid "" -"See :func:`itertools.accumulate` for an iterator that yields all " -"intermediate values." -msgstr "" -"Voir :func:`itertools.accumulate` pour un itérateur qui génère toutes les " -"valeurs intermédiaires." - -#: library/functools.rst:486 -msgid "*initial* is now supported as a keyword argument." -msgstr "" - -#: library/functools.rst:491 -msgid "" -"Transform a function into a :term:`single-dispatch ` :term:`generic function`." -msgstr "" -"Transforme une fonction en une :term:`fonction générique ` :term:`single-dispatch `." - -#: library/functools.rst:494 -#, fuzzy -msgid "" -"To define a generic function, decorate it with the ``@singledispatch`` " -"decorator. When defining a function using ``@singledispatch``, note that the " -"dispatch happens on the type of the first argument::" -msgstr "" -"Pour définir une fonction générique, il faut la décorer avec le décorateur " -"``@singledispatch``. Noter que la distribution est effectuée sur le type du " -"premier argument, donc la fonction doit être créée en conséquence ::" - -#: library/functools.rst:508 -#, fuzzy -msgid "" -"To add overloaded implementations to the function, use the :func:`!register` " -"attribute of the generic function, which can be used as a decorator. For " -"functions annotated with types, the decorator will infer the type of the " -"first argument automatically::" -msgstr "" -"Pour ajouter des surcharges d'implémentation à la fonction, utiliser " -"l'attribut :func:`register` de la fonction générique. C'est un décorateur. " -"Pour les fonctions annotées avec des types, le décorateur infère le type du " -"premier argument automatiquement ::" - -#: library/functools.rst:526 -msgid ":class:`typing.Union` can also be used::" -msgstr "" - -#: library/functools.rst:543 -msgid "" -"For code which doesn't use type annotations, the appropriate type argument " -"can be passed explicitly to the decorator itself::" -msgstr "" -"Pour le code qui n’utilise pas les indications de type, le type souhaité " -"peut être passé explicitement en argument au décorateur ::" - -#: library/functools.rst:553 -msgid "" -"For code that dispatches on a collections type (e.g., ``list``), but wants " -"to typehint the items of the collection (e.g., ``list[int]``), the dispatch " -"type should be passed explicitly to the decorator itself with the typehint " -"going into the function definition::" -msgstr "" - -#: library/functools.rst:567 -msgid "" -"At runtime the function will dispatch on an instance of a list regardless of " -"the type contained within the list i.e. ``[1,2,3]`` will be dispatched the " -"same as ``[\"foo\", \"bar\", \"baz\"]``. The annotation provided in this " -"example is for static type checkers only and has no runtime impact." -msgstr "" - -#: library/functools.rst:573 -#, fuzzy -msgid "" -"To enable registering :term:`lambdas` and pre-existing functions, " -"the :func:`~singledispatch.register` attribute can also be used in a " -"functional form::" -msgstr "" -"Pour permettre l'enregistrement de *lambdas* et de fonctions pré-existantes, " -"l'attribut :func:`register` peut être utilisé sous forme fonctionnelle ::" - -#: library/functools.rst:581 -#, fuzzy -msgid "" -"The :func:`~singledispatch.register` attribute returns the undecorated " -"function. This enables decorator stacking, :mod:`pickling`, and the " -"creation of unit tests for each variant independently::" -msgstr "" -"L'attribut :func:`register` renvoie la fonction non décorée ce qui permet " -"d'empiler les décorateurs, la sérialisation, et la création de tests " -"unitaires pour chaque variante indépendamment ::" - -#: library/functools.rst:595 -msgid "" -"When called, the generic function dispatches on the type of the first " -"argument::" -msgstr "" -"Quand elle est appelée, la fonction générique distribue sur le type du " -"premier argument ::" - -#: library/functools.rst:615 -#, fuzzy -msgid "" -"Where there is no registered implementation for a specific type, its method " -"resolution order is used to find a more generic implementation. The original " -"function decorated with ``@singledispatch`` is registered for the " -"base :class:`object` type, which means it is used if no better " -"implementation is found." -msgstr "" -"Quand il n'y a pas d'implémentation enregistrée pour un type spécifique, son " -"ordre de résolution de méthode est utilisé pour trouver une implémentation " -"plus générique. La fonction originale est décorée avec ``@singledispatch`` " -"est enregistrée pour le type d'``object``, et elle sera utilisée si aucune " -"implémentation n'est trouvée." - -#: library/functools.rst:621 -msgid "" -"If an implementation is registered to an :term:`abstract base class`, " -"virtual subclasses of the base class will be dispatched to that " -"implementation::" -msgstr "" - -#: library/functools.rst:636 -#, fuzzy -msgid "" -"To check which implementation the generic function will choose for a given " -"type, use the ``dispatch()`` attribute::" -msgstr "" -"Pour vérifier quelle implémentation la fonction générique choisira pour un " -"type donné, utiliser l'attribut ``dispatch()`` ::" - -#: library/functools.rst:644 -msgid "" -"To access all registered implementations, use the read-only ``registry`` " -"attribute::" -msgstr "" -"Pour accéder à toutes les implémentations enregistrées, utiliser l'attribut " -"en lecture seule ``registry`` ::" - -#: library/functools.rst:658 -#, fuzzy -msgid "" -"The :func:`~singledispatch.register` attribute now supports using type " -"annotations." -msgstr "" -"L’attribut :func:`register` gère l’utilisation des indications de type." - -#: library/functools.rst:661 -#, fuzzy -msgid "" -"The :func:`~singledispatch.register` attribute now " -"supports :class:`typing.Union` as a type annotation." -msgstr "" -"L’attribut :func:`register` gère l’utilisation des indications de type." - -#: library/functools.rst:668 -msgid "" -"Transform a method into a :term:`single-dispatch ` :term:`generic function`." -msgstr "" -"Transforme une méthode en une :term:`fonction générique ` :term:`single-dispatch `." - -#: library/functools.rst:671 -#, fuzzy -msgid "" -"To define a generic method, decorate it with the ``@singledispatchmethod`` " -"decorator. When defining a method using ``@singledispatchmethod``, note that " -"the dispatch happens on the type of the first non-*self* or non-*cls* " -"argument::" -msgstr "" -"Pour définir une fonction générique, il faut la décorer avec le décorateur " -"``@singledispatchmethod``. Notez que la distribution est effectuée sur le " -"type du premier argument non *self* ni *cls*, donc la fonction doit être " -"conçue en conséquence ::" - -#: library/functools.rst:689 -msgid "" -"``@singledispatchmethod`` supports nesting with other decorators such " -"as :deco:`classmethod`. Note that to allow for ``dispatcher.register``, " -"``singledispatchmethod`` must be the *outer most* decorator. Here is the " -"``Negator`` class with the ``neg`` methods bound to the class, rather than " -"an instance of the class::" -msgstr "" - -#: library/functools.rst:711 -msgid "" -"The same pattern can be used for other similar " -"decorators: :deco:`staticmethod`, :deco:`~abc.abstractmethod`, and others." -msgstr "" - -#: library/functools.rst:716 -msgid "Added support of non-:term:`descriptor` callables." -msgstr "" - -#: library/functools.rst:722 -#, fuzzy -msgid "" -"Update a *wrapper* function to look like the *wrapped* function. The " -"optional arguments are tuples to specify which attributes of the original " -"function are assigned directly to the matching attributes on the wrapper " -"function and which attributes of the wrapper function are updated with the " -"corresponding attributes from the original function. The default values for " -"these arguments are the module level constants ``WRAPPER_ASSIGNMENTS`` " -"(which assigns to the wrapper " -"function's :attr:`~function.__module__`, :attr:`~function.__name__`, :attr:`~function.__qualname__`, :attr:`~function.__annotations__`, :attr:`~function.__type_params__`, " -"and :attr:`~function.__doc__`, the documentation string) and " -"``WRAPPER_UPDATES`` (which updates the wrapper " -"function's :attr:`~function.__dict__`, i.e. the instance dictionary)." -msgstr "" -"Met à jour la fonction *wrapper* pour ressembler à la fonction *wrapped*. " -"Les arguments optionnels sont des *n*-uplets pour spécifier quels attributs " -"de la fonction originale sont assignés directement aux attributs " -"correspondants sur la fonction englobante et quels attributs de la fonction " -"englobante sont mis à jour avec les attributs de la fonction originale. Les " -"valeurs par défaut de ces arguments sont les constantes au niveau du module " -"``WRAPPER_ASSIGNMENTS`` (qui assigne ``__module__``, ``__name__``, " -"``__qualname__``, ``__annotations__`` et ``__doc__``, la chaîne de " -"documentation, depuis la fonction englobante) et ``WRAPPER_UPDATES`` (qui " -"met à jour le ``__dict__`` de la fonction englobante, c'est-à-dire le " -"dictionnaire de l'instance)." - -#: library/functools.rst:734 -msgid "" -"To allow access to the original function for introspection and other " -"purposes (e.g. bypassing a caching decorator such as :func:`lru_cache`), " -"this function automatically adds a ``__wrapped__`` attribute to the wrapper " -"that refers to the function being wrapped." -msgstr "" -"Pour autoriser l'accès à la fonction originale pour l'introspection ou à " -"d'autres fins (par ex. outrepasser l'accès à un décorateur de cache " -"comme :func:`lru_cache`), cette fonction ajoute automatiquement un attribut " -"``__wrapped__`` qui référence la fonction englobée." - -#: library/functools.rst:739 -msgid "" -"The main intended use for this function is in :term:`decorator` functions " -"which wrap the decorated function and return the wrapper. If the wrapper " -"function is not updated, the metadata of the returned function will reflect " -"the wrapper definition rather than the original function definition, which " -"is typically less than helpful." -msgstr "" -"La principale utilisation de cette fonction est dans les :term:`décorateurs " -"` qui renvoient une nouvelle fonction. Si la fonction crée n'est " -"pas mise à jour, ses métadonnées refléteront sa définition dans le " -"décorateur, au lieu de la définition originale, métadonnées souvent bien " -"moins utiles." - -#: library/functools.rst:745 -msgid "" -":func:`update_wrapper` may be used with callables other than functions. Any " -"attributes named in *assigned* or *updated* that are missing from the object " -"being wrapped are ignored (i.e. this function will not attempt to set them " -"on the wrapper function). :exc:`AttributeError` is still raised if the " -"wrapper function itself is missing any attributes named in *updated*." -msgstr "" -":func:`update_wrapper` peut être utilisé avec des appelables autres que des " -"fonctions. Tout attribut défini dans *assigned* ou *updated* qui ne sont pas " -"l'objet englobé sont ignorés (cette fonction n'essaiera pas de les définir " -"dans la fonction englobante). :exc:`AttributeError` est toujours levée si le " -"fonction englobante elle même a des attributs non existants dans *updated*." - -#: library/functools.rst:751 -msgid "" -"The ``__wrapped__`` attribute is now automatically added. " -"The :attr:`~function.__annotations__` attribute is now copied by default. " -"Missing attributes no longer trigger an :exc:`AttributeError`." -msgstr "" - -#: library/functools.rst:756 -msgid "" -"The ``__wrapped__`` attribute now always refers to the wrapped function, " -"even if that function defined a ``__wrapped__`` attribute. " -"(see :issue:`17482`)" -msgstr "" -"L'attribut ``__wrapped__`` renvoie toujours la fonction englobée, même si " -"cette fonction définit un attribut ``__wrapped__``. (voir :issue:`17482`)" - -#: library/functools.rst:761 -msgid "" -"The :attr:`~function.__type_params__` attribute is now copied by default." -msgstr "" - -#: library/functools.rst:767 -msgid "" -"This is a convenience function for invoking :func:`update_wrapper` as a " -"function decorator when defining a wrapper function. It is equivalent to " -"``partial(update_wrapper, wrapped=wrapped, assigned=assigned, " -"updated=updated)``. For example::" -msgstr "" -"Ceci est une fonction d'aide pour appeler :func:`update_wrapper` comme " -"décorateur de fonction lors de la définition d'une fonction englobante. " -"C'est équivalent à ``partial(update_wrapper, wrapped=wrapped, " -"assigned=assigned, updated=updated)``. Par exemple ::" - -#: library/functools.rst:793 -#, fuzzy -msgid "" -"Without the use of this decorator factory, the name of the example function " -"would have been ``'wrapper'``, and the docstring of the original :func:`!" -"example` would have been lost." -msgstr "" -"Sans l'utilisation de cette usine à décorateur, le nom de la fonction " -"d'exemple aurait été ``'wrapper'``, et la chaîne de documentation de la " -"fonction :func:`example` originale aurait été perdue." - -#: library/functools.rst:801 -msgid ":class:`partial` Objects" -msgstr "Objets :class:`partial`" - -#: library/functools.rst:803 -msgid "" -":class:`partial` objects are callable objects created by :func:`partial`. " -"They have three read-only attributes:" -msgstr "" -"Les objets :class:`partial` sont des objets appelables créés " -"par :func:`partial`. Ils ont trois attributs en lecture seule :" - -#: library/functools.rst:809 -msgid "" -"A callable object or function. Calls to the :class:`partial` object will be " -"forwarded to :attr:`func` with new arguments and keywords." -msgstr "" -"Un objet ou une fonction appelable. Les appels à l'objet :class:`partial` " -"seront transmis à :attr:`func` avec les nouveaux arguments et mots-clés." - -#: library/functools.rst:815 -msgid "" -"The leftmost positional arguments that will be prepended to the positional " -"arguments provided to a :class:`partial` object call." -msgstr "" -"Les arguments positionnels qui seront ajoutés avant les arguments fournis " -"lors de l'appel d'un objet :class:`partial`." - -#: library/functools.rst:821 -msgid "" -"The keyword arguments that will be supplied when the :class:`partial` object " -"is called." -msgstr "" -"Les arguments nommés qui seront fournis quand l'objet :class:`partial` est " -"appelé." - -#: library/functools.rst:824 -#, fuzzy -msgid "" -":class:`partial` objects are like :ref:`function objects ` in that they are callable, weak referenceable, and can have " -"attributes. There are some important differences. For instance, " -"the :attr:`~definition.__name__` and :attr:`~definition.__doc__` attributes " -"are not created automatically." -msgstr "" -"Les objets :class:`partial` sont comme des objets :class:`function` de par " -"le fait qu'il sont appelables, référençables, et peuvent avoir des " -"attributs. Il y a cependant des différences importantes. Par exemple, les " -"attributs :attr:`~definition.__name__` et :attr:`__doc__` ne sont pas créés " -"automatiquement. De plus, les objets :class:`partial` définis dans les " -"classes se comportent comme des méthodes statiques et ne se transforment pas " -"en méthodes liées durant la recherche d'attributs dans l'instance." - -#, fuzzy -#~ msgid "" -#~ "The :func:`register` attribute now supports :data:`types.UnionType` " -#~ "and :data:`typing.Union` as type annotations." -#~ msgstr "" -#~ "L’attribut :func:`register` gère l’utilisation des indications de type." - -#~ msgid "Automatic addition of the ``__wrapped__`` attribute." -#~ msgstr "Ajout automatique de l'attribut ``__wrapped__``." - -#~ msgid "Copying of the ``__annotations__`` attribute by default." -#~ msgstr "Copie de l'attribut ``__annotations__`` par défaut." - -#~ msgid "Missing attributes no longer trigger an :exc:`AttributeError`." -#~ msgstr "" -#~ "Les attributs manquants ne lèvent plus d'exception :exc:`AttributeError`." diff --git a/library/gc.po b/library/gc.po deleted file mode 100644 index bdcc09094b..0000000000 --- a/library/gc.po +++ /dev/null @@ -1,609 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-09-07 00:51+0200\n" -"Last-Translator: Jean Abou Samra \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.1\n" - -#: library/gc.rst:2 -#, fuzzy -msgid ":mod:`!gc` --- Garbage Collector interface" -msgstr ":mod:`gc` — Interface du ramasse-miettes" - -#: library/gc.rst:9 -msgid "" -"This module provides an interface to the optional garbage collector. It " -"provides the ability to disable the collector, tune the collection " -"frequency, and set debugging options. It also provides access to " -"unreachable objects that the collector found but cannot free. Since the " -"collector supplements the reference counting already used in Python, you can " -"disable the collector if you are sure your program does not create reference " -"cycles. Automatic collection can be disabled by calling ``gc.disable()``. " -"To debug a leaking program call ``gc.set_debug(gc.DEBUG_LEAK)``. Notice that " -"this includes ``gc.DEBUG_SAVEALL``, causing garbage-collected objects to be " -"saved in gc.garbage for inspection." -msgstr "" -"Ce module constitue une interface au ramasse-miettes facultatif. Il permet " -"de désactiver le ramasse-miettes ou de régler la fréquence des passages. Il " -"fournit des options de débogage, et donne aussi accès aux objets qui ne " -"peuvent pas être détruits bien qu'ils aient été détectés comme non " -"référencés. Le ramasse-miettes vient en complément du système de comptage de " -"références, et peut donc être désactivé pour du code qui ne crée aucun cycle " -"de références. On le désactive avec ``gc.disable()``. Pour remonter à la " -"source d'une fuite de mémoire, utilisez ``gc.set_debug(gc.DEBUG_LEAK)``. " -"Notez que ``gc.DEBUG_LEAK`` inclut ``gc.DEBUG_SAVEALL``. Cette dernière " -"option fait que les objets inatteignables, au lieu d'être détruits, sont " -"placés dans la liste ``gc.garbage`` pour pouvoir y être examinés." - -#: library/gc.rst:20 -#, fuzzy -msgid "The :mod:`!gc` module provides the following functions:" -msgstr "Le module :mod:`gc` contient les fonctions suivantes :" - -#: library/gc.rst:25 -msgid "Enable automatic garbage collection." -msgstr "Active le ramasse-miettes." - -#: library/gc.rst:30 -msgid "Disable automatic garbage collection." -msgstr "Désactive le ramasse-miettes." - -#: library/gc.rst:35 -msgid "Return ``True`` if automatic collection is enabled." -msgstr "" -"Renvoie ``True`` ou ``False`` selon que le ramasse-miettes est activé ou non." - -#: library/gc.rst:40 -#, fuzzy -msgid "" -"With no arguments, run a full collection. The optional argument " -"*generation* may be an integer specifying which generation to collect (from " -"0 to 2). A :exc:`ValueError` is raised if the generation number is invalid. " -"The sum of collected objects and uncollectable objects is returned." -msgstr "" -"Déclenche un passage du ramasse-miettes. En l'absence d'argument, un passage " -"complet est effectué. Le paramètre *generation* permet de le limiter à une " -"génération entre 0 et 2. Une exception :exc:`ValueError` est levée si le " -"numéro de la génération n'est pas valide. Cette fonction renvoie le nombre " -"d'objets inatteignables qui ont été détectés." - -#: library/gc.rst:45 -msgid "" -"The free lists maintained for a number of built-in types are cleared " -"whenever a full collection or collection of the highest generation (2) is " -"run. Not all items in some free lists may be freed due to the particular " -"implementation, in particular :class:`float`." -msgstr "" - -#: library/gc.rst:50 -msgid "" -"The effect of calling ``gc.collect()`` while the interpreter is already " -"performing a collection is undefined." -msgstr "" - -#: library/gc.rst:53 -msgid "``generation=1`` performs an increment of collection." -msgstr "" - -#: library/gc.rst:56 -msgid "``generation=1`` performs collection of the middle generation." -msgstr "" - -#: library/gc.rst:62 -msgid "" -"Set the garbage collection debugging flags. Debugging information will be " -"written to ``sys.stderr``. See below for a list of debugging flags which " -"can be combined using bit operations to control debugging." -msgstr "" -"Change les options de débogage du ramasse-miettes, qui activent l'écriture " -"d'informations sur ``sys.stderr``. Une liste d'options se trouve plus bas. " -"Les options peuvent se combiner par les opérateurs bit à bit." - -#: library/gc.rst:69 -msgid "Return the debugging flags currently set." -msgstr "Renvoie les options de débogage actives." - -#: library/gc.rst:74 -#, fuzzy -msgid "" -"Returns a list of all objects tracked by the collector, excluding the list " -"returned. If *generation* is not ``None``, return only the objects tracked " -"by the collector that are in that generation." -msgstr "" -"Renvoie la liste des objets suivis par le ramasse-miettes, à l'exclusion de " -"cette liste elle-même. Le paramètre facultatif *generation* restreint la " -"liste aux objets d'une génération particulière." - -#: library/gc.rst:78 -msgid "New *generation* parameter." -msgstr "ajout du paramètre *generation*." - -#: library/gc.rst:81 -msgid "Generation 1 is removed" -msgstr "" - -#: library/gc.rst:84 -msgid "Generation 1 is reintroduced to maintain GC behavior from 3.13." -msgstr "" - -#: library/gc.rst:87 -msgid "" -"Raises an :ref:`auditing event ` ``gc.get_objects`` with argument " -"``generation``." -msgstr "" -"Lève un :ref:`événement d'audit ` ``gc.get_objects`` avec " -"l'argument ``generation``." - -#: library/gc.rst:91 -msgid "" -"Return a list of three per-generation dictionaries containing collection " -"statistics since interpreter start. The number of keys may change in the " -"future, but currently each dictionary will contain the following items:" -msgstr "" -"Renvoie une liste de trois dictionnaires, un par génération. Ils contiennent " -"des statistiques sur l'action du ramasse-miettes depuis le lancement de " -"l'interpréteur. Les clés actuellement présentes sont les suivantes (d'autres " -"pourraient être ajoutées dans des versions ultérieures) :" - -#: library/gc.rst:96 -msgid "``collections`` is the number of times this generation was collected;" -msgstr "" -"``collections``, le nombre de fois où cette génération a été examinée par le " -"ramasse-miettes ;" - -#: library/gc.rst:98 -msgid "" -"``collected`` is the total number of objects collected inside this " -"generation;" -msgstr "" -"``collected``, le nombre total d'objets qui ont été détruits alors qu'ils " -"étaient dans cette génération ;" - -#: library/gc.rst:101 -#, fuzzy -msgid "" -"``uncollectable`` is the total number of objects which were found to be " -"uncollectable (and were therefore moved to the :data:`garbage` list) inside " -"this generation;" -msgstr "" -"``uncollectable``, le nombre total d'objets qui ont été identifiés comme " -"indestructibles (et donc ajoutés à la liste :data:`garbage`) au sein de " -"cette génération." - -#: library/gc.rst:105 -#, fuzzy -msgid "" -"``candidates`` is the total number of objects in this generation which were " -"considered for collection and traversed;" -msgstr "" -"``collections``, le nombre de fois où cette génération a été examinée par le " -"ramasse-miettes ;" - -#: library/gc.rst:108 -#, fuzzy -msgid "" -"``duration`` is the total time in seconds spent in collections for this " -"generation." -msgstr "" -"``collected``, le nombre total d'objets qui ont été détruits alors qu'ils " -"étaient dans cette génération ;" - -#: library/gc.rst:113 -msgid "Add ``duration`` and ``candidates``." -msgstr "" - -#: library/gc.rst:119 -msgid "" -"Set the garbage collection thresholds (the collection frequency). Setting " -"*threshold0* to zero disables collection." -msgstr "" -"Règle les seuils de déclenchement du ramasse-miettes, qui déterminent sa " -"fréquence de passage. Si *threshold0* est mis à zéro, le ramasse-miettes ne " -"passe jamais." - -#: library/gc.rst:122 -#, fuzzy -msgid "" -"The GC classifies objects into three generations depending on how many " -"collection sweeps they have survived. New objects are placed in the " -"youngest generation (generation ``0``). If an object survives a collection " -"it is moved into the next older generation. Since generation ``2`` is the " -"oldest generation, objects in that generation remain there after a " -"collection. In order to decide when to run, the collector keeps track of " -"the number object allocations and deallocations since the last collection. " -"When the number of allocations minus the number of deallocations exceeds " -"*threshold0*, collection starts. Initially only generation ``0`` is " -"examined. If generation ``0`` has been examined more than *threshold1* " -"times since generation ``1`` has been examined, then generation ``1`` is " -"examined as well. With the third generation, things are a bit more " -"complicated, see `Collecting the oldest generation `_ for more " -"information." -msgstr "" -"Les objets sont répartis en trois générations en fonction du nombre de " -"passages du ramasse-miettes qui les ont laissés intacts. Les objets " -"fraîchement créés sont placés dans la génération la plus jeune, numéro 0. À " -"chaque fois qu'un objet persiste à la suite d'un passage du ramasse-miettes, " -"il monte d'une génération, ceci jusqu'à la génération 2, la plus âgée. Le " -"ramasse-miettes se déclenche en fonction du nombre d'allocations et de " -"destructions depuis le passage précédent : lorsque les allocations moins les " -"destructions font plus que *threshold0*, un passage est initié. Lors des " -"premiers passages, seule la génération 0 est inspectée. La génération 1 est " -"examinée périodiquement, lorsque le nombre de passages sur la génération 0 " -"depuis le dernier passage ayant aussi examiné la génération 1 vient à " -"excéder *threshold1*. Les règles pour la génération 2 sont plus complexes. " -"Pour avoir des détails, voir `Collecting the oldest generation `_ " -"(dans le guide du développeur, en anglais)." - -#: library/gc.rst:136 -msgid "" -"See `Garbage collector design `_ for more information." -msgstr "" - -#: library/gc.rst:138 -msgid "*threshold2* is ignored" -msgstr "" - -#: library/gc.rst:141 -msgid "*threshold2* is restored to match Python 3.13 behavior." -msgstr "" - -#: library/gc.rst:147 -msgid "" -"Return the current collection counts as a tuple of ``(count0, count1, " -"count2)``." -msgstr "" -"Renvoie un triplet des nombres totaux de passages effectués par génération." - -#: library/gc.rst:153 -msgid "" -"Return the current collection thresholds as a tuple of ``(threshold0, " -"threshold1, threshold2)``." -msgstr "" -"Renvoie les seuils de passage sous la forme du triplet ``(threshold0, " -"threshold1, threshold2)``." - -#: library/gc.rst:159 -msgid "" -"Return the list of objects that directly refer to any of objs. This function " -"will only locate those containers which support garbage collection; " -"extension types which do refer to other objects but do not support garbage " -"collection will not be found." -msgstr "" -"Renvoie la liste des objets qui contiennent directement une référence à l'un " -"quelconque des arguments. Il est à noter que cette fonction prend uniquement " -"en compte les objets suivis par le ramasse-miettes, ce qui exclut les " -"instances de certains types d'extension qui contiennent bien des références " -"sans pour autant prendre en charge le ramassage des miettes." - -#: library/gc.rst:164 -msgid "" -"Note that objects which have already been dereferenced, but which live in " -"cycles and have not yet been collected by the garbage collector can be " -"listed among the resulting referrers. To get only currently live objects, " -"call :func:`collect` before calling :func:`get_referrers`." -msgstr "" -"La liste renvoyée peut contenir des objets déjà isolés, mais maintenus en " -"mémoire à cause d'un cycle. Pour les exclure, appelez :func:`collect` juste " -"avant :func:`get_referrers`." - -#: library/gc.rst:170 -msgid "" -"Care must be taken when using objects returned by :func:`get_referrers` " -"because some of them could still be under construction and hence in a " -"temporarily invalid state. Avoid using :func:`get_referrers` for any purpose " -"other than debugging." -msgstr "" -"La manipulation des objets renvoyés par :func:`get_referrers` est hasardeuse " -"car ils risquent d'être encore en cours d'initialisation, donc dans un état " -"temporairement instable. Mieux vaut réserver :func:`get_referrers` au " -"débogage." - -#: library/gc.rst:175 -msgid "" -"Raises an :ref:`auditing event ` ``gc.get_referrers`` with " -"argument ``objs``." -msgstr "" -"Lève un :ref:`événement d'audit ` ``gc.get_referrers`` avec " -"l'argument ``objs``." - -#: library/gc.rst:180 -msgid "" -"Return a list of objects directly referred to by any of the arguments. The " -"referents returned are those objects visited by the arguments' C-" -"level :c:member:`~PyTypeObject.tp_traverse` methods (if any), and may not be " -"all objects actually directly " -"reachable. :c:member:`~PyTypeObject.tp_traverse` methods are supported only " -"by objects that support garbage collection, and are only required to visit " -"objects that may be involved in a cycle. So, for example, if an integer is " -"directly reachable from an argument, that integer object may or may not " -"appear in the result list." -msgstr "" -"Renvoie une liste des objets pointés par les références que contiennent les " -"arguments. Ils sont déterminés en appelant, si présente, la méthode " -"C :c:member:`~PyTypeObject.tp_traverse` de chaque argument, qui visite les " -"objets auxquels cet argument fait référence. Il est à noter " -"que :c:member:`~PyTypeObject.tp_traverse` n'est définie que par les objets " -"qui gèrent le ramassage des miettes, et n'a l'obligation de visiter que les " -"objets qui peuvent potentiellement faire partie d'un cycle. Ainsi, la liste " -"renvoyée par cette fonction ne contient par forcément tous les objets qu'il " -"est possible d'atteindre à partir des arguments. Par exemple, si l'un des " -"arguments contient un entier, ce dernier objet peut être présent ou non dans " -"la liste." - -#: library/gc.rst:188 -msgid "" -"Raises an :ref:`auditing event ` ``gc.get_referents`` with " -"argument ``objs``." -msgstr "" -"Lève un :ref:`événement d'audit ` ``gc.get_referents`` avec " -"l'argument ``objs``." - -#: library/gc.rst:192 -msgid "" -"Returns ``True`` if the object is currently tracked by the garbage " -"collector, ``False`` otherwise. As a general rule, instances of atomic " -"types aren't tracked and instances of non-atomic types (containers, user-" -"defined objects...) are. However, some type-specific optimizations can be " -"present in order to suppress the garbage collector footprint of simple " -"instances (e.g. dicts containing only atomic keys and values)::" -msgstr "" -"Renvoie ``True`` ou ``False`` selon que l'argument est suivi ou non par le " -"ramasse-miettes. En règle générale, les objets atomiques ne sont pas suivis, " -"tandis que les objets non-atomiques, tels que les conteneurs et instances de " -"classes définies par l'utilisateur, le sont. Cependant, certains types " -"présentent des optimisations qui permettent de se passer avantageusement du " -"ramasse-miettes dans les cas simples, comme les dictionnaires dont toutes " -"les clés et valeurs sont atomiques ::" - -#: library/gc.rst:215 -msgid "" -"Returns ``True`` if the given object has been finalized by the garbage " -"collector, ``False`` otherwise. ::" -msgstr "" -"Renvoie ``True`` ou ``False`` selon que l'argument a été finalisé par le " -"ramasse-miettes. ::" - -#: library/gc.rst:236 -msgid "" -"Freeze all the objects tracked by the garbage collector; move them to a " -"permanent generation and ignore them in all the future collections." -msgstr "" - -#: library/gc.rst:239 -msgid "" -"If a process will ``fork()`` without ``exec()``, avoiding unnecessary copy-" -"on-write in child processes will maximize memory sharing and reduce overall " -"memory usage. This requires both avoiding creation of freed \"holes\" in " -"memory pages in the parent process and ensuring that GC collections in child " -"processes won't touch the ``gc_refs`` counter of long-lived objects " -"originating in the parent process. To accomplish both, call ``gc.disable()`` " -"early in the parent process, ``gc.freeze()`` right before ``fork()``, and " -"``gc.enable()`` early in child processes." -msgstr "" - -#: library/gc.rst:253 -msgid "" -"Unfreeze the objects in the permanent generation, put them back into the " -"oldest generation." -msgstr "" - -#: library/gc.rst:261 -msgid "Return the number of objects in the permanent generation." -msgstr "" - -#: library/gc.rst:266 -msgid "" -"The following variables are provided for read-only access (you can mutate " -"the values but should not rebind them):" -msgstr "" -"Les variables suivantes sont publiques, mais elles ne sont pas censées être " -"modifiées (vous pouvez les muter, mais pas les redéfinir) :" - -#: library/gc.rst:271 -msgid "" -"A list of objects which the collector found to be unreachable but could not " -"be freed (uncollectable objects). Starting with Python 3.4, this list " -"should be empty most of the time, except when using instances of C extension " -"types with a non-``NULL`` ``tp_del`` slot." -msgstr "" -"Liste des objets indestructibles, que le ramasse-miettes n'a pas pu éliminer " -"bien qu'ils soient inatteignables. Depuis Python 3.4, cette liste demeure la " -"plupart du temps vide. Elle peut se remplir si le programme fait appel à des " -"types d'extension définis en C avec un champ ``tp_del`` différent de " -"``NULL``." - -#: library/gc.rst:276 -msgid "" -"If :const:`DEBUG_SAVEALL` is set, then all unreachable objects will be added " -"to this list rather than freed." -msgstr "" -"Si :const:`DEBUG_SAVEALL` est actif, tous les objets inatteignables sont " -"ajoutés à cette liste au lieu d'être détruits." - -#: library/gc.rst:279 -msgid "" -"If this list is non-empty at :term:`interpreter shutdown`, " -"a :exc:`ResourceWarning` is emitted, which is silent by default. " -"If :const:`DEBUG_UNCOLLECTABLE` is set, in addition all uncollectable " -"objects are printed." -msgstr "" -"Si cette liste n'est pas vide lors de l':term:`arrêt de l'interpréteur " -"`, un :exc:`ResourceWarning` est émis (les " -"avertissements de ce type sont silencieux par défaut). De plus, " -"si :const:`DEBUG_UNCOLLECTABLE` est actif, tous les objets indestructibles " -"sont affichés." - -#: library/gc.rst:285 -#, fuzzy -msgid "" -"Following :pep:`442`, objects with a :meth:`~object.__del__` method don't " -"end up in :data:`gc.garbage` anymore." -msgstr "" -"en application de la :pep:`442`, les objets qui définissent une " -"méthode :meth:`__del__` ne finissent plus dans :attr:`gc.garbage`." - -#: library/gc.rst:291 -msgid "" -"A list of callbacks that will be invoked by the garbage collector before and " -"after collection. The callbacks will be called with two arguments, *phase* " -"and *info*." -msgstr "" -"Liste de fonctions de rappel lancées par le ramasse-miettes avant et après " -"un passage. Elles prennent deux arguments, *phase* et *info*." - -#: library/gc.rst:295 -msgid "*phase* can be one of two values:" -msgstr "*phase* peut prendre deux valeurs :" - -#: library/gc.rst:297 -msgid "\"start\": The garbage collection is about to start." -msgstr "``\"start\"`` lorsque le passage du ramasse-miettes est imminent." - -#: library/gc.rst:299 -msgid "\"stop\": The garbage collection has finished." -msgstr "" -"``\"stop\"`` lorsque le passage du ramasse-miettes vient de se terminer." - -#: library/gc.rst:301 -msgid "" -"*info* is a dict providing more information for the callback. The following " -"keys are currently defined:" -msgstr "" -"*info* est un dictionnaire qui donne plus d'informations à la fonction de " -"rappel. Les clés suivantes sont actuellement présentes :" - -#: library/gc.rst:304 -msgid "\"generation\": The oldest generation being collected." -msgstr "``\"generation\"``, la génération la plus âgée intégrée à ce passage ;" - -#: library/gc.rst:306 -msgid "" -"\"collected\": When *phase* is \"stop\", the number of objects successfully " -"collected." -msgstr "" -"``\"collected\"`` : si *phase* vaut ``\"stop\"``, le nombre d'objets " -"détruits avec succès ;" - -#: library/gc.rst:309 -msgid "" -"\"uncollectable\": When *phase* is \"stop\", the number of objects that " -"could not be collected and were put in :data:`garbage`." -msgstr "" -"``\"uncollectable\"`` : si *phase* vaut ``\"stop\"``, le nombre d'objets " -"indestructibles ajoutés à :data:`garbage`." - -#: library/gc.rst:312 -#, fuzzy -msgid "" -"\"candidates\": When *phase* is \"stop\", the total number of objects in " -"this generation which were considered for collection and traversed." -msgstr "" -"``\"collected\"`` : si *phase* vaut ``\"stop\"``, le nombre d'objets " -"détruits avec succès ;" - -#: library/gc.rst:315 -#, fuzzy -msgid "" -"\"duration\": When *phase* is \"stop\", the time in seconds spent in the " -"collection." -msgstr "" -"``\"collected\"`` : si *phase* vaut ``\"stop\"``, le nombre d'objets " -"détruits avec succès ;" - -#: library/gc.rst:318 -msgid "" -"Applications can add their own callbacks to this list. The primary use " -"cases are:" -msgstr "" -"Toute application peut ajouter ses propres fonctions de rappel à cette " -"liste. Voici les principales applications :" - -#: library/gc.rst:321 -msgid "" -"Gathering statistics about garbage collection, such as how often various " -"generations are collected, and how long the collection takes." -msgstr "" -"Faire des statistiques sur le passage du ramasse-miettes, par exemple la " -"fréquence à laquelle chaque génération est examinée, ou bien le temps d'un " -"passage ;" - -#: library/gc.rst:325 -msgid "" -"Allowing applications to identify and clear their own uncollectable types " -"when they appear in :data:`garbage`." -msgstr "" -"Identifier les types définis par une application dont les instances " -"s'ajoutent à :data:`garbage` car elles sont indestructibles." - -#: library/gc.rst:330 -msgid "Add \"duration\" and \"candidates\"." -msgstr "" - -#: library/gc.rst:334 -msgid "The following constants are provided for use with :func:`set_debug`:" -msgstr "" -"Les constantes suivantes définissent les options de débogage que l'on peut " -"passer à :func:`set_debug` :" - -#: library/gc.rst:339 -msgid "" -"Print statistics during collection. This information can be useful when " -"tuning the collection frequency." -msgstr "" -"Affiche des statistiques durant les passages du ramasse-miettes. Utile pour " -"pouvoir régler la fréquence des passages." - -#: library/gc.rst:345 -msgid "Print information on collectable objects found." -msgstr "Affiche des informations sur les objets détruits." - -#: library/gc.rst:350 -msgid "" -"Print information of uncollectable objects found (objects which are not " -"reachable but cannot be freed by the collector). These objects will be " -"added to the ``garbage`` list." -msgstr "" -"Affiche des informations sur les objets indestructibles (ceux qui sont " -"ajoutés à la liste ``garbage``, qui sont inatteignables mais dont la mémoire " -"ne peut pas être libérée)." - -#: library/gc.rst:354 -msgid "" -"Also print the contents of the :data:`garbage` list at :term:`interpreter " -"shutdown`, if it isn't empty." -msgstr "" -"Affiche également le contenu de :data:`garbage` à l':term:`arrêt de " -"l'interpréteur `, pour peu que cette liste ne soit pas " -"vide." - -#: library/gc.rst:360 -msgid "" -"When set, all unreachable objects found will be appended to *garbage* rather " -"than being freed. This can be useful for debugging a leaking program." -msgstr "" -"Lorsque cette option est active, les objets inatteignables sont ajoutés à la " -"liste *garbage* au lieu d'être supprimés. Ceci est utile pour déboguer une " -"fuite de mémoire." - -#: library/gc.rst:366 -msgid "" -"The debugging flags necessary for the collector to print information about a " -"leaking program (equal to ``DEBUG_COLLECTABLE | DEBUG_UNCOLLECTABLE | " -"DEBUG_SAVEALL``)." -msgstr "" -"Combinaison des options utiles au débogage d'une fuite de mémoire. Il s'agit " -"d'un raccourci pour ``DEBUG_COLLECTABLE|DEBUG_UNCOLLECTABLE|DEBUG_SAVEALL``." diff --git a/library/getopt.po b/library/getopt.po deleted file mode 100644 index b6a7a8e74a..0000000000 --- a/library/getopt.po +++ /dev/null @@ -1,290 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2025-10-17 09:58+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: library/getopt.rst:2 -#, fuzzy -msgid ":mod:`!getopt` --- C-style parser for command line options" -msgstr "" -":mod:`getopt` – Analyseur de style C pour les options de ligne de commande" - -#: library/getopt.rst:8 -msgid "**Source code:** :source:`Lib/getopt.py`" -msgstr "**Code source :** :source:`Lib/getopt.py`" - -#: library/getopt.rst:12 -msgid "" -"This module is considered feature complete. A more declarative and " -"extensible alternative to this API is provided in the :mod:`optparse` " -"module. Further functional enhancements for command line parameter " -"processing are provided either as third party modules on PyPI, or else as " -"features in the :mod:`argparse` module." -msgstr "" - -#: library/getopt.rst:20 -#, fuzzy -msgid "" -"This module helps scripts to parse the command line arguments in " -"``sys.argv``. It supports the same conventions as the Unix :c:func:`!getopt` " -"function (including the special meanings of arguments of the form '``-``' " -"and '``--``'). Long options similar to those supported by GNU software may " -"be used as well via an optional third argument." -msgstr "" -"Ce module aide les scripts à analyser les arguments de ligne de commande " -"contenus dans ``sys.argv``. Il prend en charge les mêmes conventions que la " -"fonction UNIX :c:func:`getopt` (y compris les significations spéciales des " -"arguments de la forme ``-`` et ``--``). De longues options similaires à " -"celles prises en charge par le logiciel GNU peuvent également être utilisées " -"via un troisième argument facultatif." - -#: library/getopt.rst:26 -#, fuzzy -msgid "" -"Users who are unfamiliar with the Unix :c:func:`!getopt` function should " -"consider using the :mod:`argparse` module instead. Users who are familiar " -"with the Unix :c:func:`!getopt` function, but would like to get equivalent " -"behavior while writing less code and getting better help and error messages " -"should consider using the :mod:`optparse` module. See :ref:`choosing-an-" -"argument-parser` for additional details." -msgstr "" -"Le module :mod:`getopt` est un analyseur pour les options de ligne de " -"commande dont l’API est conçue pour être familière aux utilisateurs de la " -"fonction C :c:func:`getopt`. Les utilisateurs qui ne connaissent pas la " -"fonction :c:func:`getopt` ou qui aimeraient écrire moins de code, obtenir " -"une meilleure aide et de meilleurs messages d’erreur devraient utiliser le " -"module :mod:`argparse`." - -#: library/getopt.rst:33 -msgid "This module provides two functions and an exception:" -msgstr "Ce module fournit deux fonctions et une exception :" - -#: library/getopt.rst:39 -#, fuzzy -msgid "" -"Parses command line options and parameter list. *args* is the argument list " -"to be parsed, without the leading reference to the running program. " -"Typically, this means ``sys.argv[1:]``. *shortopts* is the string of option " -"letters that the script wants to recognize, with options that require an " -"argument followed by a colon (``':'``) and options that accept an optional " -"argument followed by two colons (``'::'``); i.e., the same format that " -"Unix :c:func:`!getopt` uses." -msgstr "" -"Analyse les options de ligne de commande et la liste des paramètres. *args* " -"est la liste d’arguments à analyser, sans la référence principale au " -"programme en cours d’exécution. En général, cela signifie ``sys.argv[1:]`` " -"(donc que le premier argument contenant le nom du programme n’est pas dans " -"la liste). *shortopts* est la chaîne de lettres d’options que le script doit " -"reconnaître, avec des options qui requièrent un argument suivi d’un signe " -"deux-points (``:``, donc le même format que la version Unix " -"de :c:func:`getopt` utilise)." - -#: library/getopt.rst:48 -#, fuzzy -msgid "" -"Unlike GNU :c:func:`!getopt`, after a non-option argument, all further " -"arguments are considered also non-options. This is similar to the way non-" -"GNU Unix systems work." -msgstr "" -"Contrairement au :c:func:`getopt` GNU, après un argument n'appartenant pas à " -"une option, aucun argument ne sera considéré comme appartenant à une option. " -"Ceci est similaire à la façon dont les systèmes UNIX non-GNU fonctionnent." - -#: library/getopt.rst:52 -#, fuzzy -msgid "" -"*longopts*, if specified, must be a list of strings with the names of the " -"long options which should be supported. The leading ``'--'`` characters " -"should not be included in the option name. Long options which require an " -"argument should be followed by an equal sign (``'='``). Long options which " -"accept an optional argument should be followed by an equal sign and question " -"mark (``'=?'``). To accept only long options, *shortopts* should be an empty " -"string. Long options on the command line can be recognized so long as they " -"provide a prefix of the option name that matches exactly one of the accepted " -"options. For example, if *longopts* is ``['foo', 'frob']``, the option ``--" -"fo`` will match as ``--foo``, but ``--f`` will not match uniquely, " -"so :exc:`GetoptError` will be raised." -msgstr "" -"*longopts*, si spécifié, doit être une liste de chaînes avec les noms des " -"options longues qui doivent être prises en charge. Le premier ``'--'`` ne " -"dois pas figurer dans le nom de l’option. Les options longues qui requièrent " -"un argument doivent être suivies d’un signe égal (``'='``). Les arguments " -"facultatifs ne sont pas pris en charge. Pour accepter uniquement les options " -"longues, *shortopts* doit être une chaîne vide. Les options longues sur la " -"ligne de commande peuvent être reconnues tant qu’elles fournissent un " -"préfixe du nom de l’option qui correspond exactement à l’une des options " -"acceptées. Par exemple, si *longopts* est ``['foo', 'frob']``, l’option ``--" -"fo`` correspondra à ``--foo``, mais ``--f`` ne correspondra pas de façon " -"unique, donc :exc:`GetoptError` sera levé." - -#: library/getopt.rst:65 -msgid "" -"The return value consists of two elements: the first is a list of ``(option, " -"value)`` pairs; the second is the list of program arguments left after the " -"option list was stripped (this is a trailing slice of *args*). Each option-" -"and-value pair returned has the option as its first element, prefixed with a " -"hyphen for short options (e.g., ``'-x'``) or two hyphens for long options " -"(e.g., ``'--long-option'``), and the option argument as its second element, " -"or an empty string if the option has no argument. The options occur in the " -"list in the same order in which they were found, thus allowing multiple " -"occurrences. Long and short options may be mixed." -msgstr "" -"La valeur de retour se compose de deux éléments : le premier est une liste " -"de paires ``(option, value)``, la deuxième est la liste des arguments de " -"programme laissés après que la liste d’options est été dépouillée (il s’agit " -"d’une tranche de fin de *args*). Chaque paire option-valeur retournée a " -"l’option comme premier élément, préfixée avec un trait d'union pour les " -"options courtes (par exemple, ``'-x'``) ou deux tirets pour les options " -"longues (par exemple, ``'--long-option'``), et l’argument option comme " -"deuxième élément, ou une chaîne vide si le option n’a aucun argument. Les " -"options se trouvent dans la liste dans l’ordre dans lequel elles ont été " -"trouvées, permettant ainsi plusieurs occurrences. Les options longues et " -"courtes peuvent être mélangées." - -#: library/getopt.rst:75 -msgid "Optional arguments are supported." -msgstr "" - -#: library/getopt.rst:81 -msgid "" -"This function works like :func:`getopt`, except that GNU style scanning mode " -"is used by default. This means that option and non-option arguments may be " -"intermixed. The :func:`getopt` function stops processing options as soon as " -"a non-option argument is encountered." -msgstr "" -"Cette fonction fonctionne comme :func:`getopt`, sauf que le mode de *scan* " -"GNU est utilisé par défaut. Cela signifie que les arguments option et non-" -"option peuvent être **intermixés**. La fonction :func:`getopt` arrête le " -"traitement des options dès qu’un argument de non-option est rencontré." - -#: library/getopt.rst:86 -#, fuzzy -msgid "" -"If the first character of the option string is ``'+'``, or if the " -"environment variable :envvar:`!POSIXLY_CORRECT` is set, then option " -"processing stops as soon as a non-option argument is encountered." -msgstr "" -"Si le premier caractère de la chaîne d’options est ``+``, ou si la variable " -"d’environnement :envvar:`POSIXLY_CORRECT` est définie, le traitement des " -"options s’arrête dès qu’un argument non-option est rencontré." - -#: library/getopt.rst:90 -msgid "" -"If the first character of the option string is ``'-'``, non-option arguments " -"that are followed by options are added to the list of option-and-value pairs " -"as a pair that has ``None`` as its first element and the list of non-option " -"arguments as its second element. The second element of the :func:`!" -"gnu_getopt` result is a list of program arguments after the last option." -msgstr "" - -#: library/getopt.rst:97 -msgid "" -"Support for returning intermixed options and non-option arguments in order." -msgstr "" - -#: library/getopt.rst:103 -#, fuzzy -msgid "" -"This is raised when an unrecognized option is found in the argument list or " -"when an option requiring an argument is given none. The argument to the " -"exception is a string indicating the cause of the error. For long options, " -"an argument given to an option which does not require one will also cause " -"this exception to be raised. The attributes :attr:`!msg` and :attr:`!opt` " -"give the error message and related option; if there is no specific option to " -"which the exception relates, :attr:`!opt` is an empty string." -msgstr "" -"Cette exception est levée lorsqu’une option non reconnue est trouvée dans la " -"liste d’arguments ou lorsqu’une option nécessitant un argument n’en a pas " -"reçu. L’argument de l’exception est une chaîne de caractères indiquant la " -"cause de l’erreur. Pour les options longues, un argument donné à une option " -"qui n’en exige pas un entraîne également le levage de cette exception. Les " -"attributs :attr:`msg` et :attr:`opt` donnent le message d’erreur et l’option " -"connexe. S’il n’existe aucune option spécifique à laquelle l’exception se " -"rapporte, :attr:`opt` est une chaîne vide." - -#: library/getopt.rst:114 -msgid "Alias for :exc:`GetoptError`; for backward compatibility." -msgstr "Alias pour :exc:`GetoptError` ; pour la rétrocompatibilité." - -#: library/getopt.rst:116 -msgid "An example using only Unix style options:" -msgstr "Un exemple utilisant uniquement les options de style UNIX :" - -#: library/getopt.rst:130 -msgid "Using long option names is equally easy:" -msgstr "L’utilisation de noms d’options longs est tout aussi simple :" - -#: library/getopt.rst:145 -msgid "Optional arguments should be specified explicitly:" -msgstr "" - -#: library/getopt.rst:159 -msgid "The order of options and non-option arguments can be preserved:" -msgstr "" - -#: library/getopt.rst:173 -#, fuzzy -msgid "In a script, typical usage is something like this:" -msgstr "Dans un script, l’utilisation typique ressemble à ceci ::" - -#: library/getopt.rst:204 -#, fuzzy -msgid "" -"Note that an equivalent command line interface could be produced with less " -"code and more informative help and error messages by using " -"the :mod:`optparse` module:" -msgstr "" -"Notez qu’une interface de ligne de commande équivalente peut être produite " -"avec moins de code et des messages d’erreur et d’aide plus informatifs à " -"l’aide du module :mod:`argparse` module ::" - -#: library/getopt.rst:218 -#, fuzzy -msgid "" -"A roughly equivalent command line interface for this case can also be " -"produced by using the :mod:`argparse` module:" -msgstr "" -"Notez qu’une interface de ligne de commande équivalente peut être produite " -"avec moins de code et des messages d’erreur et d’aide plus informatifs à " -"l’aide du module :mod:`argparse` module ::" - -#: library/getopt.rst:233 -msgid "" -"See :ref:`choosing-an-argument-parser` for details on how the ``argparse`` " -"version of this code differs in behaviour from the ``optparse`` (and " -"``getopt``) version." -msgstr "" - -#: library/getopt.rst:239 -#, fuzzy -msgid "Module :mod:`optparse`" -msgstr "Module :mod:`argparse`" - -#: library/getopt.rst:240 -#, fuzzy -msgid "Declarative command line option parsing." -msgstr "" -"Option de ligne de commande alternative et bibliothèque d’analyse " -"d’arguments." - -#: library/getopt.rst:242 -msgid "Module :mod:`argparse`" -msgstr "Module :mod:`argparse`" - -#: library/getopt.rst:243 -#, fuzzy -msgid "More opinionated command line option and argument parsing library." -msgstr "" -"Option de ligne de commande alternative et bibliothèque d’analyse " -"d’arguments." diff --git a/library/getpass.po b/library/getpass.po deleted file mode 100644 index 39e046fe7b..0000000000 --- a/library/getpass.po +++ /dev/null @@ -1,172 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-09-28 12:39+0200\n" -"Last-Translator: Paquerette \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" - -#: library/getpass.rst:2 -#, fuzzy -msgid ":mod:`!getpass` --- Portable password input" -msgstr "Saisie de mot de passe portable" - -#: library/getpass.rst:7 -msgid "**Source code:** :source:`Lib/getpass.py`" -msgstr "**Source code:** :source:`Lib/getpass.py`" - -#: includes/wasm-notavail.rst:3 -msgid "Availability" -msgstr "Disponibilité" - -#: includes/wasm-notavail.rst:5 -msgid "" -"This module does not work or is not available on WebAssembly. See :ref:`wasm-" -"availability` for more information." -msgstr "" - -#: library/getpass.rst:13 -#, fuzzy -msgid "The :mod:`!getpass` module provides two functions:" -msgstr "Le module :mod:`getpass` fournit 2 fonctions :" - -#: library/getpass.rst:17 -msgid "" -"Prompt the user for a password without echoing. The user is prompted using " -"the string *prompt*, which defaults to ``'Password: '``. On Unix, the " -"prompt is written to the file-like object *stream* using the replace error " -"handler if needed. *stream* defaults to the controlling terminal (:file:`/" -"dev/tty`) or if that is unavailable to ``sys.stderr`` (this argument is " -"ignored on Windows)." -msgstr "" -"Affiche une demande de mot de passe sans renvoyer d'écho. L'utilisateur est " -"invité en utilisant la string *prompt*, avec en valeur par défaut " -"``'Password: '``. Avec Unix, l'invite est écrite dans l'objet fichier " -"*stream* en utilisant si besoin le *replace error handler*. *stream* sera " -"par défaut le terminal de contrôle (:file:`/dev/tty`), ou si celui ci n'est " -"pas disponible ce sera ``sys.stderr`` (cet argument sera ignoré sur Windows)." - -#: library/getpass.rst:24 -msgid "" -"The *echo_char* argument controls how user input is displayed while typing. " -"If *echo_char* is ``None`` (default), input remains hidden. Otherwise, " -"*echo_char* must be a single printable ASCII character and each typed " -"character is replaced by it. For example, ``echo_char='*'`` will display " -"asterisks instead of the actual input." -msgstr "" - -#: library/getpass.rst:30 -msgid "" -"If echo free input is unavailable getpass() falls back to printing a warning " -"message to *stream* and reading from ``sys.stdin`` and issuing " -"a :exc:`GetPassWarning`." -msgstr "" -"Si aucune saisie en mode sans affichage n'est disponible, ``getpass()`` se " -"résoudra à afficher un message d'avertissement vers *stream*, puis lire " -"l'entrée depuis ``sys.stdin``, en levant une :exc:`GetPassWarning`." - -#: library/getpass.rst:35 -msgid "" -"If you call getpass from within IDLE, the input may be done in the terminal " -"you launched IDLE from rather than the idle window itself." -msgstr "" -"Si vous appelez *getpass* depuis IDLE, la saisie peut être faite dans le " -"terminal depuis lequel IDLE a été lancé, plutôt que dans la fenêtre d'IDLE." - -#: library/getpass.rst:39 -msgid "" -"On Unix systems, when *echo_char* is set, the terminal will be configured to " -"operate in :manpage:`noncanonical mode " -"`. Common terminal control " -"characters are supported:" -msgstr "" - -#: library/getpass.rst:44 -msgid ":kbd:`Ctrl+A` - Move cursor to beginning of line" -msgstr "" - -#: library/getpass.rst:45 -msgid ":kbd:`Ctrl+E` - Move cursor to end of line" -msgstr "" - -#: library/getpass.rst:46 -msgid ":kbd:`Ctrl+K` - Kill (delete) from cursor to end of line" -msgstr "" - -#: library/getpass.rst:47 -msgid ":kbd:`Ctrl+U` - Kill (delete) entire line" -msgstr "" - -#: library/getpass.rst:48 -msgid ":kbd:`Ctrl+W` - Erase previous word" -msgstr "" - -#: library/getpass.rst:49 -msgid ":kbd:`Ctrl+V` - Insert next character literally (quote)" -msgstr "" - -#: library/getpass.rst:50 -msgid ":kbd:`Backspace`/:kbd:`DEL` - Delete character before cursor" -msgstr "" - -#: library/getpass.rst:52 -msgid "" -"These shortcuts work by reading the terminal's configured control character " -"mappings from termios settings." -msgstr "" - -#: library/getpass.rst:55 -msgid "Added the *echo_char* parameter for keyboard feedback." -msgstr "" - -#: library/getpass.rst:58 -msgid "" -"When using non-empty *echo_char* on Unix, keyboard shortcuts (including " -"cursor movement and line editing) are now properly handled using the " -"terminal's control character configuration." -msgstr "" - -#: library/getpass.rst:65 -msgid "A :exc:`UserWarning` subclass issued when password input may be echoed." -msgstr "" -"Une sous classe d'exception :exc:`UserWarning` est levée quand le mot de " -"passe saisi pourrait être affiché." - -#: library/getpass.rst:70 -msgid "Return the \"login name\" of the user." -msgstr "Renvoie le *login name* de l'utilisateur." - -#: library/getpass.rst:72 -#, fuzzy -msgid "" -"This function checks the environment " -"variables :envvar:`LOGNAME`, :envvar:`USER`, :envvar:`!LNAME` " -"and :envvar:`USERNAME`, in order, and returns the value of the first one " -"which is set to a non-empty string. If none are set, the login name from " -"the password database is returned on systems which support the :mod:`pwd` " -"module, otherwise, an :exc:`OSError` is raised." -msgstr "" -"Cette fonction examine les variables " -"d'environnement :envvar:`LOGNAME`, :envvar:`USER`, :envvar:`LNAME` " -"et :envvar:`USERNAME`, dans cet ordre, et renvoie la valeur de la première " -"qui a comme valeur une string non vide. Si aucune des variables n'est " -"renseignée, dans le cas de systèmes qui prennent en charge le " -"module :mod:`pwd`, le *login name* de la base de données des mots de passes " -"est renvoyé, pour les autres systèmes une exception est levée." - -#: library/getpass.rst:79 -#, fuzzy -msgid "In general, this function should be preferred over :func:`os.getlogin`." -msgstr "En général, préférez cette fonction à :func:`os.getlogin()`." - -#: library/getpass.rst:81 -msgid "Previously, various exceptions beyond just :exc:`OSError` were raised." -msgstr "" diff --git a/library/gettext.po b/library/gettext.po deleted file mode 100644 index 6c9154a3de..0000000000 --- a/library/gettext.po +++ /dev/null @@ -1,1204 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-25 10:50+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: library/gettext.rst:2 -#, fuzzy -msgid ":mod:`!gettext` --- Multilingual internationalization services" -msgstr ":mod:`gettext` — Services d'internationalisation multilingue" - -#: library/gettext.rst:7 -msgid "**Source code:** :source:`Lib/gettext.py`" -msgstr "**Code source :** :source:`Lib/gettext.py`" - -#: library/gettext.rst:11 -#, fuzzy -msgid "" -"The :mod:`!gettext` module provides internationalization (I18N) and " -"localization (L10N) services for your Python modules and applications. It " -"supports both the GNU :program:`gettext` message catalog API and a higher " -"level, class-based API that may be more appropriate for Python files. The " -"interface described below allows you to write your module and application " -"messages in one natural language, and provide a catalog of translated " -"messages for running under different natural languages." -msgstr "" -"Le module :mod:`gettext` fournit un service d'internationalisation (*I18N*) " -"et de localisation linguistique (*L10N*) pour vos modules et applications " -"Python. Il est compatible avec l'API du catalogue de messages " -"GNU :program:`gettext` et à un plus haut niveau, avec l'API basée sur les " -"classes qui serait peut-être plus adaptée aux fichiers Python. L'interface " -"décrite ci-dessous vous permet d'écrire les textes de vos modules et " -"applications dans une langue naturelle, puis de fournir un catalogue de " -"traductions pour les lancer ensuite dans d'autres langues naturelles." - -#: library/gettext.rst:19 -msgid "" -"Some hints on localizing your Python modules and applications are also given." -msgstr "" -"Quelques astuces sur la localisation de vos modules et applications Python " -"sont également données." - -#: library/gettext.rst:23 -msgid "GNU :program:`gettext` API" -msgstr "API GNU :program:`gettext`" - -#: library/gettext.rst:25 -#, fuzzy -msgid "" -"The :mod:`!gettext` module defines the following API, which is very similar " -"to the GNU :program:`gettext` API. If you use this API you will affect the " -"translation of your entire application globally. Often this is what you " -"want if your application is monolingual, with the choice of language " -"dependent on the locale of your user. If you are localizing a Python " -"module, or if your application needs to switch languages on the fly, you " -"probably want to use the class-based API instead." -msgstr "" -"Le module :mod:`gettext` définit l'API suivante, qui est très proche de " -"l'API de GNU :program:`gettext`. Si vous utilisez cette API, cela affectera " -"la traduction de toute votre application. C'est souvent le comportement " -"attendu si votre application est monolingue, avec le choix de la langue qui " -"dépend des paramètres linguistiques de l'utilisateur. Si vous localisez un " -"module Python ou si votre application a besoin de changer de langue à la " -"volée, il est plus judicieux d'utiliser l'API basée sur des classes." - -#: library/gettext.rst:36 -#, fuzzy -msgid "" -"Bind the *domain* to the locale directory *localedir*. More " -"concretely, :mod:`!gettext` will look for binary :file:`.mo` files for the " -"given domain using the path (on Unix): :file:`{localedir}/{language}/" -"LC_MESSAGES/{domain}.mo`, where *language* is searched for in the " -"environment " -"variables :envvar:`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES`, " -"and :envvar:`LANG` respectively." -msgstr "" -"Lie *domain* au répertoire *localedir* des localisations. Plus " -"spécifiquement, :mod:`gettext` va chercher les fichiers binaires :file:`.mo` " -"pour un domaine donné, en utilisant le chemin suivant (sous " -"Unix) : :file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`, où " -"*language* est recherché dans l'une des variables d'environnement " -"suivantes : :envvar:`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES` " -"et :envvar:`LANG`." - -#: library/gettext.rst:42 -msgid "" -"If *localedir* is omitted or ``None``, then the current binding for *domain* " -"is returned. [#]_" -msgstr "" -"Si *localedir* n'est pas renseigné ou vaut ``None``, alors le lien actuel de " -"*domain* est renvoyé. [#]_" - -#: library/gettext.rst:48 -msgid "" -"Change or query the current global domain. If *domain* is ``None``, then " -"the current global domain is returned, otherwise the global domain is set to " -"*domain*, which is returned." -msgstr "" -"Change ou interroge le domaine global actuel. Si *domain* vaut ``None``, " -"alors le domaine global actuel est renvoyé. Sinon, le domaine global est " -"positionné à *domain*, puis renvoyé." - -#: library/gettext.rst:56 -#, fuzzy -msgid "" -"Return the localized translation of *message*, based on the current global " -"domain, language, and locale directory. This function is usually aliased " -"as :func:`!_` in the local namespace (see examples below)." -msgstr "" -"Renvoie la traduction localisée de *message*, en se basant sur le domaine " -"global actuel, la langue et le répertoire des localisations. Cette fonction " -"est typiquement renommée :func:`_` dans le namespace courant (voir les " -"exemples ci-dessous)." - -#: library/gettext.rst:63 -msgid "" -"Like :func:`.gettext`, but look the message up in the specified *domain*." -msgstr "" -"Comme :func:`gettext`, mais cherche le message dans le domaine spécifié." - -#: library/gettext.rst:68 -msgid "" -"Like :func:`.gettext`, but consider plural forms. If a translation is found, " -"apply the plural formula to *n*, and return the resulting message (some " -"languages have more than two plural forms). If no translation is found, " -"return *singular* if *n* is 1; return *plural* otherwise." -msgstr "" -"Comme :func:`gettext`, mais prend en compte les formes au pluriel. Si une " -"traduction a été trouvée, utilise la formule pour trouver le pluriel à *n* " -"et renvoie le message généré (quelques langues ont plus de deux formes au " -"pluriel). Si aucune traduction n'a été trouvée, renvoie *singular* si *n* " -"vaut 1, *plural* sinon." - -#: library/gettext.rst:73 -msgid "" -"The Plural formula is taken from the catalog header. It is a C or Python " -"expression that has a free variable *n*; the expression evaluates to the " -"index of the plural in the catalog. See `the GNU gettext documentation " -"`__ for the " -"precise syntax to be used in :file:`.po` files and the formulas for a " -"variety of languages." -msgstr "" -"La formule pour trouver le pluriel est récupérée dans l'entête du " -"catalogue. C'est une expression en C ou en Python qui a une variable libre " -"*n* et qui évalue l'index du pluriel dans le catalogue. Voir `la " -"documentation de GNU gettext `__ pour la syntaxe précise à utiliser dans les " -"fichiers :file:`.po` et pour les formules dans différents langues." - -#: library/gettext.rst:83 -msgid "" -"Like :func:`ngettext`, but look the message up in the specified *domain*." -msgstr "" -"Comme :func:`ngettext`, mais cherche le message dans le domaine spécifié." - -#: library/gettext.rst:91 -msgid "" -"Similar to the corresponding functions without the ``p`` in the prefix (that " -"is, :func:`gettext`, :func:`dgettext`, :func:`ngettext`, :func:`dngettext`), " -"but the translation is restricted to the given message *context*." -msgstr "" -"Semblable aux fonctions correspondantes sans le ``p`` dans le préfixe (c'est-" -"à-dire :func:`gettext`, :func:`dgettext`, :func:`ngettext` " -"et :func:`dngettext`), mais la traduction est limitée au *context* du " -"message donné." - -#: library/gettext.rst:98 -#, fuzzy -msgid "" -"Note that GNU :program:`gettext` also defines a :func:`!dcgettext` method, " -"but this was deemed not useful and so it is currently unimplemented." -msgstr "" -"Notez que GNU :program:`gettext` a aussi une méthode :func:`dcgettext`, mais " -"elle a été considérée comme inutile et donc actuellement marquée comme non " -"implémentée." - -#: library/gettext.rst:101 -msgid "Here's an example of typical usage for this API::" -msgstr "Voici un exemple classique d'utilisation de cette API ::" - -#: library/gettext.rst:112 -msgid "Class-based API" -msgstr "API basée sur les classes" - -#: library/gettext.rst:114 -#, fuzzy -msgid "" -"The class-based API of the :mod:`!gettext` module gives you more flexibility " -"and greater convenience than the GNU :program:`gettext` API. It is the " -"recommended way of localizing your Python applications and modules. :mod:`!" -"gettext` defines a :class:`GNUTranslations` class which implements the " -"parsing of GNU :file:`.mo` format files, and has methods for returning " -"strings. Instances of this class can also install themselves in the built-in " -"namespace as the function :func:`!_`." -msgstr "" -"L'API du module :mod:`gettext` basée sur les classes vous donne plus de " -"flexibilité et est plus pratique que l'API de GNU :program:`gettext`. Son " -"utilisation est recommandée pour localiser vos applications et modules " -"Python. :mod:`!gettext` définit une classe :class:`GNUTranslations` qui " -"analyse syntaxiquement les fichiers au format GNU :file:`.mo`, et qui " -"possède des méthodes pour renvoyer des chaînes de caractères. Les instances " -"de cette classe \"translations\" peuvent également s'installer dans l'espace " -"de nommage natif en tant que fonction :func:`_`." - -#: library/gettext.rst:124 -msgid "" -"This function implements the standard :file:`.mo` file search algorithm. It " -"takes a *domain*, identical to what :func:`textdomain` takes. Optional " -"*localedir* is as in :func:`bindtextdomain`. Optional *languages* is a list " -"of strings, where each string is a language code." -msgstr "" -"Cette fonction implémente l'algorithme standard de recherche de " -"fichier :file:`mo`. Il prend en entrée un *domain*, tout comme la " -"fonction :func:`textdomain`. Le paramètre optionnel *localedir* est le même " -"que celui de :func:`bindtextdomain`. Le paramètre optionnel *langages* est " -"une liste de chaînes de caractères correspondants au code d'une langue." - -#: library/gettext.rst:129 -msgid "" -"If *localedir* is not given, then the default system locale directory is " -"used. [#]_ If *languages* is not given, then the following environment " -"variables are " -"searched: :envvar:`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES`, " -"and :envvar:`LANG`. The first one returning a non-empty value is used for " -"the *languages* variable. The environment variables should contain a colon " -"separated list of languages, which will be split on the colon to produce the " -"expected list of language code strings." -msgstr "" -"Si *localedir* n'est pas renseigné, alors le répertoire de la locale par " -"défaut du système est utilisé. [#]_ Si *languages* n'est pas renseigné, " -"alors les variables d'environnement suivantes sont " -"utilisées : :envvar:`LANGUAGE`, :envvar:`LC_ALL`, :envvar:`LC_MESSAGES` " -"et :envvar:`LANG`. La première à renvoyer une valeur non vide est alors " -"utilisée pour *languages*. Ces variables d'environnement doivent contenir " -"une liste de langues, séparées par des deux-points, qui sera utilisée pour " -"générer la liste des codes de langues attendue." - -#: library/gettext.rst:137 -msgid "" -":func:`find` then expands and normalizes the languages, and then iterates " -"through them, searching for an existing file built of these components:" -msgstr "" -"Recherche avec :func:`find`, découvre et normalise les langues, puis itère " -"sur la liste obtenue afin de trouver un fichier de traduction existant et " -"correspondant :" - -#: library/gettext.rst:140 -msgid ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" -msgstr ":file:`{localedir}/{language}/LC_MESSAGES/{domain}.mo`" - -#: library/gettext.rst:142 -msgid "" -"The first such file name that exists is returned by :func:`find`. If no such " -"file is found, then ``None`` is returned. If *all* is given, it returns a " -"list of all file names, in the order in which they appear in the languages " -"list or the environment variables." -msgstr "" -"Le premier nom de fichier trouvé est renvoyé par :func:`find`. Si aucun " -"fichier n'a été trouvé, alors ``None`` est renvoyé. Si *all* est vrai, est " -"renvoyée la liste de tous les noms de fichiers, dans l'ordre dans lequel ils " -"apparaissent dans *languages* ou dans les variables d'environnement." - -#: library/gettext.rst:150 -#, fuzzy -msgid "" -"Return a ``*Translations`` instance based on the *domain*, *localedir*, and " -"*languages*, which are first passed to :func:`find` to get a list of the " -"associated :file:`.mo` file paths. Instances with identical :file:`.mo` " -"file names are cached. The actual class instantiated is *class_* if " -"provided, otherwise :class:`GNUTranslations`. The class's constructor must " -"take a single :term:`file object` argument." -msgstr "" -"Renvoie une instance de la classe :class:`*Translations` en se basant sur " -"*domain*, *localedir* et *languages*, qui sont d'abord passés en argument " -"de :func:`find` afin d'obtenir une liste de chemin des fichiers :file:`.mo` " -"associés. Les instances avec des noms de fichiers :file:`.mo` identiques " -"sont mises en cache. La classe réellement instanciée est soit *class_* si " -"renseigné, soit une classe :class:`GNUTranslations`. Le constructeur de " -"cette classe doit prendre en argument un seul :term:`file object`. Si " -"renseigné, *codeset* modifiera le jeu de caractères utilisé pour encoder les " -"chaînes de caractères traduites, dans les " -"méthodes :meth:`~NullTranslations.lgettext` " -"et :meth:`~NullTranslations.lngettext`." - -#: library/gettext.rst:157 -msgid "" -"If multiple files are found, later files are used as fallbacks for earlier " -"ones. To allow setting the fallback, :func:`copy.copy` is used to clone each " -"translation object from the cache; the actual instance data is still shared " -"with the cache." -msgstr "" -"Si plusieurs fichiers ont été trouvés, les derniers sont utilisés comme " -"substitut des premiers. Pour rendre possible cette " -"substitution, :func:`copy.copy` est utilisé pour copier chaque objet traduit " -"depuis le cache ; les vraies données de l'instance étant toujours recopiées " -"dans le cache." - -#: library/gettext.rst:162 -msgid "" -"If no :file:`.mo` file is found, this function raises :exc:`OSError` if " -"*fallback* is false (which is the default), and returns " -"a :class:`NullTranslations` instance if *fallback* is true." -msgstr "" -"Si aucun fichier :file:`.mo` n'a été trouvé, soit *fallback* vaut *False* " -"(valeur par défaut) et une exception :exc:`OSError` est levée, soit " -"*fallback* vaut *True* et une instance :class:`NullTranslations` est " -"renvoyée." - -#: library/gettext.rst:166 -#, fuzzy -msgid ":exc:`IOError` used to be raised, it is now an alias of :exc:`OSError`." -msgstr "" -"Avant, c'était l'exception :exc:`IOError` qui était levée, au lieu " -"de :exc:`OSError`." - -#: library/gettext.rst:169 -#, fuzzy -msgid "*codeset* parameter is removed." -msgstr "Le paramètre *codeset*." - -#: library/gettext.rst:174 -#, fuzzy -msgid "" -"This installs the function :func:`!_` in Python's builtins namespace, based " -"on *domain* and *localedir* which are passed to the " -"function :func:`translation`." -msgstr "" -"Positionne la fonction :func:`_` dans l'espace de nommage natif de Python, " -"en se basant sur *domain*, *localedir* et *codeset*, qui sont passés en " -"argument de la fonction :func:`translation`." - -#: library/gettext.rst:177 -msgid "" -"For the *names* parameter, please see the description of the translation " -"object's :meth:`~NullTranslations.install` method." -msgstr "" -"Concernant le paramètre *names*, se référer à la description de la " -"méthode :meth:`~NullTranslations.install`." - -#: library/gettext.rst:180 -#, fuzzy -msgid "" -"As seen below, you usually mark the strings in your application that are " -"candidates for translation, by wrapping them in a call to the :func:`!_` " -"function, like this::" -msgstr "" -"Habituellement, la fonction :func:`_` est appliquée aux chaînes de " -"caractères qui doivent être traduites comme suit ::" - -#: library/gettext.rst:186 -#, fuzzy -msgid "" -"For convenience, you want the :func:`!_` function to be installed in " -"Python's builtins namespace, so it is easily accessible in all modules of " -"your application." -msgstr "" -"Pour plus de confort, il vaut mieux positionner la fonction :func:`_` dans " -"l'espace de nommage natif de Python pour la rendre plus accessible dans tous " -"les modules de votre application." - -#: library/gettext.rst:190 -msgid "*names* is now a keyword-only parameter." -msgstr "*names* est désormais un paramètre à mot-clé uniquement." - -#: library/gettext.rst:194 -msgid "The :class:`NullTranslations` class" -msgstr "La classe :class:`NullTranslations`" - -#: library/gettext.rst:196 -msgid "" -"Translation classes are what actually implement the translation of original " -"source file message strings to translated message strings. The base class " -"used by all translation classes is :class:`NullTranslations`; this provides " -"the basic interface you can use to write your own specialized translation " -"classes. Here are the methods of :class:`!NullTranslations`:" -msgstr "" -"Les classes de traduction implémentent le fait de passer d'une chaîne de " -"caractères du fichier original à traduire à la traduction de celle-ci. La " -"classe de base utilisée est :class:`NullTranslations`. C'est l'interface de " -"base à utiliser lorsque vous souhaitez écrire vos propres classes " -"spécifiques à la traduction. Voici les méthodes de :class:`!" -"NullTranslations` :" - -#: library/gettext.rst:205 -msgid "" -"Takes an optional :term:`file object` *fp*, which is ignored by the base " -"class. Initializes \"protected\" instance variables *_info* and *_charset* " -"which are set by derived classes, as well as *_fallback*, which is set " -"through :meth:`add_fallback`. It then calls ``self._parse(fp)`` if *fp* is " -"not ``None``." -msgstr "" -"Prend un paramètre optionnel un :term:`file object` *fp*, qui est ignoré par " -"la classe de base. Initialise les variables d'instance \"protégées\" " -"*_info* et *_chardet*, définies par des classes dérivées, tout comme " -"*_fallback* qui est définie au travers de :meth:`add_fallback`. Puis " -"appelle ``self._parse(fp)`` si *fp* ne vaut pas ``None``." - -#: library/gettext.rst:213 -msgid "" -"No-op in the base class, this method takes file object *fp*, and reads the " -"data from the file, initializing its message catalog. If you have an " -"unsupported message catalog file format, you should override this method to " -"parse your format." -msgstr "" -"Cette méthode, non exécutée dans la classe de base, prend en paramètre un " -"objet fichier *fp* et lit les données de ce dernier. Si vous avez un " -"catalogue de messages dont le format n'est pas pris en charge, vous devriez " -"surcharger cette méthode pour analyser votre format." - -#: library/gettext.rst:221 -msgid "" -"Add *fallback* as the fallback object for the current translation object. A " -"translation object should consult the fallback if it cannot provide a " -"translation for a given message." -msgstr "" -"Ajoute *fallback* comme objet de substitution pour l'objet de traduction " -"courant. Un objet de traduction devrait interroger cet objet de " -"substitution s'il ne peut fournir une traduction pour un message donné." - -#: library/gettext.rst:228 -msgid "" -"If a fallback has been set, forward :meth:`!gettext` to the fallback. " -"Otherwise, return *message*. Overridden in derived classes." -msgstr "" -"Si un objet de substitution a été défini, transmet :meth:`!gettext` à celui-" -"ci. Sinon, renvoie *message*. Surchargé dans les classes dérivées." - -#: library/gettext.rst:234 -msgid "" -"If a fallback has been set, forward :meth:`!ngettext` to the fallback. " -"Otherwise, return *singular* if *n* is 1; return *plural* otherwise. " -"Overridden in derived classes." -msgstr "" -"Si un objet de substitution a été défini, transmet :meth:`!ngettext` à celui-" -"ci. Sinon, renvoie *singular* si *n* vaut 1, *plural* sinon. Surchargé " -"dans les classes dérivées." - -#: library/gettext.rst:241 -msgid "" -"If a fallback has been set, forward :meth:`pgettext` to the fallback. " -"Otherwise, return the translated message. Overridden in derived classes." -msgstr "" -"Si un objet de substitution a été défini, transmet :meth:`pgettext` à celui-" -"ci. Sinon, renvoie le message traduit. Surchargé dans les classes dérivées." - -#: library/gettext.rst:249 -msgid "" -"If a fallback has been set, forward :meth:`npgettext` to the fallback. " -"Otherwise, return the translated message. Overridden in derived classes." -msgstr "" -"Si un objet de substitution a été défini, transmet :meth:`npgettext` à celui-" -"ci. Sinon, renvoie le message traduit. Surchargé dans les classes dérivées." - -#: library/gettext.rst:257 -#, fuzzy -msgid "" -"Return a dictionary containing the metadata found in the message catalog " -"file." -msgstr "" -"Renvoie l'attribut \"protégé\" :attr:`_info`, dictionnaire contenant les " -"métadonnées trouvées dans le fichier de catalogue de messages." - -#: library/gettext.rst:263 -msgid "Return the encoding of the message catalog file." -msgstr "Renvoie l'encodage du fichier du catalogue de messages." - -#: library/gettext.rst:268 -msgid "" -"This method installs :meth:`.gettext` into the built-in namespace, binding " -"it to ``_``." -msgstr "" -"Cette méthode positionne :meth:`.gettext` dans l'espace de nommage natif, en " -"le liant à ``_``." - -#: library/gettext.rst:271 -#, fuzzy -msgid "" -"If the *names* parameter is given, it must be a sequence containing the " -"names of functions you want to install in the builtins namespace in addition " -"to :func:`!_`. Supported names are ``'gettext'``, ``'ngettext'``, " -"``'pgettext'``, and ``'npgettext'``." -msgstr "" -"Si le paramètre *names* est renseigné, celui-ci doit être une séquence " -"contenant les noms des fonctions que vous souhaitez positionner dans " -"l'espace de nommage natif, en plus de :func:`_`. Les noms pris en charge " -"sont ``'gettext'``, ``'ngettext'``, ``'pgettext'``, ``'npgettext'``, " -"``'lgettext'`` et ``'lngettext'``." - -#: library/gettext.rst:276 -#, fuzzy -msgid "" -"Note that this is only one way, albeit the most convenient way, to make " -"the :func:`!_` function available to your application. Because it affects " -"the entire application globally, and specifically the built-in namespace, " -"localized modules should never install :func:`!_`. Instead, they should use " -"this code to make :func:`!_` available to their module::" -msgstr "" -"Notez que ce n'est là qu'un moyen parmi d'autres, quoique le plus pratique, " -"pour rendre la fonction :func:`_` accessible à votre application. Puisque " -"cela affecte toute l'application, et plus particulièrement l'espace de " -"nommage natif, les modules localisés ne devraient jamais y " -"positionner :func:`_`. Au lieu de cela, ces derniers doivent plutôt " -"utiliser le code suivant pour rendre :func:`_` accessible par leurs " -"modules ::" - -#: library/gettext.rst:286 -#, fuzzy -msgid "" -"This puts :func:`!_` only in the module's global namespace and so only " -"affects calls within this module." -msgstr "" -"Cela met :func:`_` dans l'espace de nommage global du module uniquement et " -"donc n'affectera ses appels que dans ce module." - -#: library/gettext.rst:289 -msgid "Added ``'pgettext'`` and ``'npgettext'``." -msgstr "Ajout de ``'pgettext'`` et ``'npgettext'``." - -#: library/gettext.rst:294 -msgid "The :class:`GNUTranslations` class" -msgstr "La classe :class:`GNUTranslations`" - -#: library/gettext.rst:296 -#, fuzzy -msgid "" -"The :mod:`!gettext` module provides one additional class derived " -"from :class:`NullTranslations`: :class:`GNUTranslations`. This class " -"overrides :meth:`!_parse` to enable reading GNU :program:`gettext` " -"format :file:`.mo` files in both big-endian and little-endian format." -msgstr "" -"Le module :mod:`gettext` fournit une classe supplémentaire qui hérite " -"de :class:`NullTranslations` : :class:`GNUTranslations`. Cette classe " -"surcharge :meth:`_parse` pour permettre de lire les fichiers " -"GNU :program:`gettext` :file:`.mo` au format petit et gros-boutiste." - -#: library/gettext.rst:301 -#, fuzzy -msgid "" -":class:`GNUTranslations` parses optional metadata out of the translation " -"catalog. It is convention with GNU :program:`gettext` to include metadata as " -"the translation for the empty string. This metadata is in :rfc:`822`\\ " -"-style ``key: value`` pairs, and should contain the ``Project-Id-Version`` " -"key. If the key ``Content-Type`` is found, then the ``charset`` property is " -"used to initialize the \"protected\" :attr:`!_charset` instance variable, " -"defaulting to ``None`` if not found. If the charset encoding is specified, " -"then all message ids and message strings read from the catalog are converted " -"to Unicode using this encoding, else ASCII is assumed." -msgstr "" -":class:`GNUTranslations` analyse les métadonnées optionnelles du catalogue " -"de traduction. Il est d'usage avec GNU :program:`gettext` d'utiliser une " -"métadonnée pour traduire la chaîne vide. Cette métadonnée est un ensemble de " -"paires de la forme ``clef: valeur`` comme définie par la :rfc:`822`, et doit " -"contenir la clef ``Project-Id-Version``. Si la clef ``Content-Type`` est " -"trouvée dans une métadonnée, alors la propriété ``charset`` (jeu de " -"caractères) est utilisée pour initialiser la variable d'instance " -"\"protégée\" :attr:`_charset`, sinon cette dernière est positionnée à " -"``None``. Si l'encodage du jeu de caractères est spécifié, tous les messages " -"(identifiants et chaînes de caractères) lus depuis le catalogue sont " -"convertis en chaînes Unicode via cet encodage, ou via l'encodage ASCII si " -"non renseigné." - -#: library/gettext.rst:311 -#, fuzzy -msgid "" -"Since message ids are read as Unicode strings too, all ``*gettext()`` " -"methods will assume message ids as Unicode strings, not byte strings." -msgstr "" -"Et puisque les identifiants des messages sont également lus comme des " -"chaînes Unicode, toutes les méthodes :meth:`*gettext` les considéreront " -"ainsi, et pas comme des chaînes d'octets." - -#: library/gettext.rst:314 -#, fuzzy -msgid "" -"The entire set of key/value pairs are placed into a dictionary and set as " -"the \"protected\" :attr:`!_info` instance variable." -msgstr "" -"La totalité des paires clef / valeur est insérée dans un dictionnaire et " -"représente la variable d'instance \"protégée\" :attr:`_info`." - -#: library/gettext.rst:317 -msgid "" -"If the :file:`.mo` file's magic number is invalid, the major version number " -"is unexpected, or if other problems occur while reading the file, " -"instantiating a :class:`GNUTranslations` class can raise :exc:`OSError`." -msgstr "" -"Si le nombre magique du fichier :file:`.mo` est invalide, le numéro de la " -"version majeure inattendu, ou si d'autres problèmes apparaissent durant la " -"lecture du fichier, instancier une classe :class:`GNUTranslations` peut " -"lever une exception :exc:`OSError`." - -#: library/gettext.rst:323 -msgid "" -"The following methods are overridden from the base class implementation:" -msgstr "" -"Les méthodes suivantes, provenant de l'implémentation de la classe de base, " -"ont été surchargée :" - -#: library/gettext.rst:327 -msgid "" -"Look up the *message* id in the catalog and return the corresponding message " -"string, as a Unicode string. If there is no entry in the catalog for the " -"*message* id, and a fallback has been set, the look up is forwarded to the " -"fallback's :meth:`~NullTranslations.gettext` method. Otherwise, the " -"*message* id is returned." -msgstr "" -"Recherche l'identifiant de *message* dans le catalogue et renvoie le message " -"de la chaîne de caractères correspondante comme une chaîne Unicode. Si " -"aucun identifiant n'a été trouvé pour *message* et qu'un substitut a été " -"défini, la recherche est transmise à la " -"méthode :meth:`~NullTranslations.gettext` du substitut. Sinon, " -"l'identifiant de *message* est renvoyé." - -#: library/gettext.rst:336 -msgid "" -"Do a plural-forms lookup of a message id. *singular* is used as the message " -"id for purposes of lookup in the catalog, while *n* is used to determine " -"which plural form to use. The returned message string is a Unicode string." -msgstr "" -"Effectue une recherche sur les formes plurielles de l'identifiant d'un " -"message. *singular* est utilisé pour la recherche de l'identifiant dans le " -"catalogue, alors que *n* permet de savoir quelle forme plurielle utiliser. " -"La chaîne de caractère du message renvoyée est une chaîne Unicode." - -#: library/gettext.rst:340 -msgid "" -"If the message id is not found in the catalog, and a fallback is specified, " -"the request is forwarded to the " -"fallback's :meth:`~NullTranslations.ngettext` method. Otherwise, when *n* " -"is 1 *singular* is returned, and *plural* is returned in all other cases." -msgstr "" -"Si l'identifiant du message n'est pas trouvé dans le catalogue et qu'un " -"substitut a été spécifié, la requête est transmise à la " -"méthode :meth:`~NullTranslations.ngettext` du substitut. Sinon, est renvoyé " -"*singular* lorsque *n* vaut 1, *plural* dans tous les autres cas." - -#: library/gettext.rst:345 -msgid "Here is an example::" -msgstr "Voici un exemple ::" - -#: library/gettext.rst:357 -msgid "" -"Look up the *context* and *message* id in the catalog and return the " -"corresponding message string, as a Unicode string. If there is no entry in " -"the catalog for the *message* id and *context*, and a fallback has been set, " -"the look up is forwarded to the fallback's :meth:`pgettext` method. " -"Otherwise, the *message* id is returned." -msgstr "" -"Recherche le *contexte* et l'identifiant de *message* dans le catalogue et " -"renvoie le message de la chaîne de caractères correspondante comme une " -"chaîne Unicode. Si aucun identifiant n'a été trouvé pour l'identifiant du " -"*message* et du *context* et qu'un substitut a été défini, la recherche est " -"transmise à la méthode :meth:`pgettext` du substitut. Sinon, l'identifiant " -"de *message* est renvoyé." - -#: library/gettext.rst:368 -msgid "" -"Do a plural-forms lookup of a message id. *singular* is used as the message " -"id for purposes of lookup in the catalog, while *n* is used to determine " -"which plural form to use." -msgstr "" -"Effectue une recherche sur les formes plurielles de l'identifiant d'un " -"message. *singular* est utilisé pour la recherche de l'identifiant dans le " -"catalogue, alors que *n* permet de savoir quelle forme plurielle utiliser." - -#: library/gettext.rst:372 -msgid "" -"If the message id for *context* is not found in the catalog, and a fallback " -"is specified, the request is forwarded to the fallback's :meth:`npgettext` " -"method. Otherwise, when *n* is 1 *singular* is returned, and *plural* is " -"returned in all other cases." -msgstr "" -"Si l'identifiant du message pour le *context* n'est pas trouvé dans le " -"catalogue et qu'un substitut a été spécifié, la requête est transmise à la " -"méthode :meth:`npgettext` du substitut. Sinon, est renvoyé *singular* " -"lorsque *n* vaut 1, *plural* dans tous les autres cas." - -#: library/gettext.rst:381 -msgid "Solaris message catalog support" -msgstr "Support du catalogue de message de Solaris" - -#: library/gettext.rst:383 -msgid "" -"The Solaris operating system defines its own binary :file:`.mo` file format, " -"but since no documentation can be found on this format, it is not supported " -"at this time." -msgstr "" -"Le système d'exploitation Solaris possède son propre format de fichier " -"binaire :file:`.mo`, mais pour l'heure, puisqu'on ne peut trouver de " -"documentation sur ce format, il n'est pas géré." - -#: library/gettext.rst:389 -msgid "The Catalog constructor" -msgstr "Le constructeur *Catalog*" - -#: library/gettext.rst:393 -#, fuzzy -msgid "" -"GNOME uses a version of the :mod:`!gettext` module by James Henstridge, but " -"this version has a slightly different API. Its documented usage was::" -msgstr "" -"GNOME utilise une version du module :mod:`gettext` de James Henstridge, mais " -"qui a une API légèrement différente. D'après la documentation, elle " -"s'utilise ainsi ::" - -#: library/gettext.rst:401 -#, fuzzy -msgid "" -"For compatibility with this older module, the function :func:`!Catalog` is " -"an alias for the :func:`translation` function described above." -msgstr "" -"Pour des raisons de compatibilité avec cet ancien module, la " -"fonction :func:`Catalog` est un alias de la fonction :func:`translation` " -"décrite ci-dessous." - -#: library/gettext.rst:404 -msgid "" -"One difference between this module and Henstridge's: his catalog objects " -"supported access through a mapping API, but this appears to be unused and so " -"is not currently supported." -msgstr "" -"Une différence entre ce module et celui de Henstridge : les objets de son " -"catalogue étaient accessibles depuis un schéma de l'API, mais cela semblait " -"ne pas être utilisé et donc n'est pas pris en charge." - -#: library/gettext.rst:411 -msgid "Internationalizing your programs and modules" -msgstr "Internationaliser vos programmes et modules" - -#: library/gettext.rst:413 -msgid "" -"Internationalization (I18N) refers to the operation by which a program is " -"made aware of multiple languages. Localization (L10N) refers to the " -"adaptation of your program, once internationalized, to the local language " -"and cultural habits. In order to provide multilingual messages for your " -"Python programs, you need to take the following steps:" -msgstr "" -"L'internationalisation (*I18N*) consiste à permettre à un programme de " -"recevoir des traductions dans plusieurs langues. La localisation (*L10N*) " -"consiste à adapter un programme à la langue et aux habitudes culturelles " -"locales, une fois celui-ci internationalisé. Afin de fournir du texte " -"multilingue à votre programme Python, les étapes suivantes sont nécessaires :" - -#: library/gettext.rst:419 -msgid "" -"prepare your program or module by specially marking translatable strings" -msgstr "" -"préparer votre programme ou module en marquant spécifiquement les chaînes à " -"traduire" - -#: library/gettext.rst:421 -msgid "" -"run a suite of tools over your marked files to generate raw messages catalogs" -msgstr "" -"lancer une suite d'outils sur les fichiers contenant des chaînes à traduire " -"pour générer des catalogues de messages brut" - -#: library/gettext.rst:423 -msgid "create language-specific translations of the message catalogs" -msgstr "" -"créer les traductions spécifiques à une langue des catalogues de messages" - -#: library/gettext.rst:425 -#, fuzzy -msgid "" -"use the :mod:`!gettext` module so that message strings are properly " -"translated" -msgstr "" -"utiliser le module :mod:`gettext` pour que les chaînes de caractères soient " -"bien traduites" - -#: library/gettext.rst:427 -#, fuzzy -msgid "" -"In order to prepare your code for I18N, you need to look at all the strings " -"in your files. Any string that needs to be translated should be marked by " -"wrapping it in ``_('...')`` --- that is, a call to the function :func:`_ " -"`. For example::" -msgstr "" -"Afin de préparer votre code à être traduit (*I18N*), vous devrez rechercher " -"toutes les chaînes de caractères de vos fichiers. À chaque chaîne de " -"caractères à traduire doit être appliqué le marqueur ``_('...')``, c'est-à-" -"dire en appelant la fonction :func:`_`. Par exemple ::" - -#: library/gettext.rst:436 -msgid "" -"In this example, the string ``'writing a log message'`` is marked as a " -"candidate for translation, while the strings ``'mylog.txt'`` and ``'w'`` are " -"not." -msgstr "" -"Dans cet exemple, la chaîne ``'writing a log message'`` est maquée comme " -"traduite, contrairement aux chaînes ``'mylog.txt'`` et ``'w'``." - -#: library/gettext.rst:439 -#, fuzzy -msgid "" -"There are a few tools to extract the strings meant for translation. The " -"original GNU :program:`gettext` only supported C or C++ source code but its " -"extended version :program:`xgettext` scans code written in a number of " -"languages, including Python, to find strings marked as translatable. `Babel " -"`__ is a Python internationalization library that " -"includes a :file:`pybabel` script to extract and compile message catalogs. " -"François Pinard's program called :program:`xpot` does a similar job and is " -"available as part of his `po-utils package `__." -msgstr "" -"Il existe quelques outils pour extraire les chaînes de caractères destinées " -"à la traduction. Le programme d'origine GNU :program:`gettext` ne prenait " -"en charge que les codes sources en C ou C++, mais sa version " -"étendue :program:`xgettext` peut lire du code écrit dans de nombreux " -"langages, dont le Python, afin de trouver les chaînes notées comme " -"traduisibles. `Babel `__ est une bibliothèque en " -"Python d'internationalisation, qui inclut un script :file:`pybabel` " -"permettant d'extraire et de compiler des catalogues de messages. Le " -"programme de François Pinard, nommé :program:`xpot`, fait de même et est " -"disponible dans son `paquet po-utils `__." - -#: library/gettext.rst:449 -msgid "" -"(Python also includes pure-Python versions of these programs, " -"called :program:`pygettext.py` and :program:`msgfmt.py`; some Python " -"distributions will install them for you. :program:`pygettext.py` is similar " -"to :program:`xgettext`, but only understands Python source code and cannot " -"handle other programming languages such as C or C++. :program:`pygettext.py` " -"supports a command-line interface similar to :program:`xgettext`; for " -"details on its use, run ``pygettext.py --help``. :program:`msgfmt.py` is " -"binary compatible with GNU :program:`msgfmt`. With these two programs, you " -"may not need the GNU :program:`gettext` package to internationalize your " -"Python applications.)" -msgstr "" -"(Python inclut également des versions en Python de ces " -"programmes, :program:`pygettext.py` et :program:`msgfmt.py`, que certaines " -"distributions Python installeront pour vous. :program:`pygettext.py` est " -"similaire à :program:`xgettext`, mais ne comprend que le code source écrit " -"en Python et ne peut prendre en charge d'autres langages de programmation " -"tels que le C ou C++. :program:`pygettext.py` possède une interface en " -"ligne de commande similaire à celle de :program:`xgettext`. Pour plus de " -"détails sur son utilisation, exécuter ``pygettext.py --" -"help``. :program:`msgfmt.py` est compatible avec GNU :program:`msgfmt`. " -"Avec ces deux programmes, vous ne devriez pas avoir besoin du paquet " -"GNU :program:`gettext` pour internationaliser vos applications en Python.)" - -#: library/gettext.rst:461 -msgid "" -":program:`xgettext`, :program:`pygettext`, and similar tools " -"generate :file:`.po` files that are message catalogs. They are structured " -"human-readable files that contain every marked string in the source code, " -"along with a placeholder for the translated versions of these strings." -msgstr "" -":program:`xgettext`, :program:`pygettext` et d'autres outils similaires " -"génèrent des fichiers :file:`.po` représentant les catalogues de messages. " -"Il s'agit de fichiers structurés et lisibles par un être humain, qui " -"contiennent toutes les chaînes du code source marquées comme traduisible, " -"ainsi que leur traduction à utiliser." - -#: library/gettext.rst:467 -#, fuzzy -msgid "" -"Copies of these :file:`.po` files are then handed over to the individual " -"human translators who write translations for every supported natural " -"language. They send back the completed language-specific versions as " -"a :file:`.po` file that's compiled into a machine-" -"readable :file:`.mo` binary catalog file using the :program:`msgfmt` " -"program. The :file:`.mo` files are used by the :mod:`!gettext` module for " -"the actual translation processing at run-time." -msgstr "" -"Les copies de ces fichiers :file:`.po` sont ensuite remises à des êtres " -"humains qui traduisent le contenu pour chaque langue naturelle prise en " -"charge. Pour chacune des langues, ces derniers renvoient la version " -"complétée sous la forme d'un fichier :file:`.po` qui a été " -"compilé dans un fichier binaire :file:`.mo` représentant le catalogue " -"lisible par une machine à l'aide du programme :program:`msgfmt`. Les " -"fichiers :file:`.mo` sont utilisés par le module :mod:`gettext` pour la " -"traduction lors de l'exécution." - -#: library/gettext.rst:476 -#, fuzzy -msgid "" -"How you use the :mod:`!gettext` module in your code depends on whether you " -"are internationalizing a single module or your entire application. The next " -"two sections will discuss each case." -msgstr "" -"La façon dont vous utilisez le module :mod:`gettext` dans votre code dépend " -"de si vous internationalisez un seul module ou l'ensemble de votre " -"application. Les deux sections suivantes traitent chacune des cas." - -#: library/gettext.rst:482 -msgid "Localizing your module" -msgstr "Localiser votre module" - -#: library/gettext.rst:484 -msgid "" -"If you are localizing your module, you must take care not to make global " -"changes, e.g. to the built-in namespace. You should not use the " -"GNU :program:`gettext` API but instead the class-based API." -msgstr "" -"Si vous localisez votre module, veillez à ne pas faire de changements " -"globaux, e.g. dans l'espace de nommage natif. Vous ne devriez pas utiliser " -"l’API GNU :program:`gettext` mais plutôt celle basée sur les classes." - -#: library/gettext.rst:488 -msgid "" -"Let's say your module is called \"spam\" and the module's various natural " -"language translation :file:`.mo` files reside in :file:`/usr/share/locale` " -"in GNU :program:`gettext` format. Here's what you would put at the top of " -"your module::" -msgstr "" -"Disons que votre module s'appelle \"spam\" et que les fichiers :file:`.mo` " -"de traduction dans les différentes langues naturelles soient dans :file:`/" -"usr/share/locale` au format GNU :program:`gettext`. Voici ce que vous " -"pouvez alors mettre en haut de votre module ::" - -#: library/gettext.rst:499 -msgid "Localizing your application" -msgstr "Localiser votre application" - -#: library/gettext.rst:501 -#, fuzzy -msgid "" -"If you are localizing your application, you can install the :func:`!_` " -"function globally into the built-in namespace, usually in the main driver " -"file of your application. This will let all your application-specific files " -"just use ``_('...')`` without having to explicitly install it in each file." -msgstr "" -"Si vous localisez votre application, vous pouvez positionner la " -"fonction :func:`_` de manière globale dans l'espace de nommage natif, " -"généralement dans le fichier principal de votre application. Cela permettra " -"à tous les fichiers de votre application de n'utiliser que ``_('...')`` sans " -"devoir le redéfinir explicitement dans chaque fichier." - -#: library/gettext.rst:506 -msgid "" -"In the simple case then, you need only add the following bit of code to the " -"main driver file of your application::" -msgstr "" -"Dans ce cas, vous n'aurez à ajouter que le bout de code suivant au fichier " -"principal de votre application ::" - -#: library/gettext.rst:512 -msgid "" -"If you need to set the locale directory, you can pass it into " -"the :func:`install` function::" -msgstr "" -"Si vous avez besoin de définir le dossier des localisations, vous pouvez le " -"mettre en argument de la fonction :func:`install` ::" - -#: library/gettext.rst:520 -msgid "Changing languages on the fly" -msgstr "Changer de langue à la volée" - -#: library/gettext.rst:522 -msgid "" -"If your program needs to support many languages at the same time, you may " -"want to create multiple translation instances and then switch between them " -"explicitly, like so::" -msgstr "" -"Si votre programme a besoin de prendre en charge plusieurs langues en même " -"temps, vous pouvez créer plusieurs instances de traduction, puis basculer " -"entre elles de façon explicite, comme ceci ::" - -#: library/gettext.rst:543 -msgid "Deferred translations" -msgstr "Traductions différées" - -#: library/gettext.rst:545 -msgid "" -"In most coding situations, strings are translated where they are coded. " -"Occasionally however, you need to mark strings for translation, but defer " -"actual translation until later. A classic example is::" -msgstr "" -"Dans la plupart des cas, en programmation, les chaînes de caractères sont " -"traduites à l'endroit où on les écrit. Cependant, il peut arriver que vous " -"ayez besoin de traduire une chaîne de caractères un peu plus loin. Un " -"exemple classique est ::" - -#: library/gettext.rst:558 -msgid "" -"Here, you want to mark the strings in the ``animals`` list as being " -"translatable, but you don't actually want to translate them until they are " -"printed." -msgstr "" -"Ici, vous voulez marquer les chaînes de caractères de la liste ``animals`` " -"comme étant traduisibles, mais ne les traduire qu'au moment de les afficher." - -#: library/gettext.rst:562 -msgid "Here is one way you can handle this situation::" -msgstr "Voici un moyen de gérer ce cas ::" - -#: library/gettext.rst:578 -#, fuzzy -msgid "" -"This works because the dummy definition of :func:`!_` simply returns the " -"string unchanged. And this dummy definition will temporarily override any " -"definition of :func:`!_` in the built-in namespace (until the :keyword:`del` " -"command). Take care, though if you have a previous definition of :func:`!_` " -"in the local namespace." -msgstr "" -"Cela fonctionne car la définition factice de :func:`_` renvoie simplement la " -"chaîne de caractères passée en entrée. Et cette définition factice va " -"temporairement outrepasser toute autre définition de :func:`_` dans l'espace " -"de nommage natif (jusqu'à l'utilisation de la commande :keyword:`del`). " -"Attention toutefois si vous avez déjà une autre définition de :func:`_` dans " -"l'espace de nommage local." - -#: library/gettext.rst:584 -#, fuzzy -msgid "" -"Note that the second use of :func:`!_` will not identify \"a\" as being " -"translatable to the :program:`gettext` program, because the parameter is not " -"a string literal." -msgstr "" -"À noter qu'à la deuxième utilisation de :func:`_`, \"a\" ne sera pas vue " -"comme traduisible par le programme :program:`gettext` car ce n'est pas un " -"chaîne au sens propre." - -#: library/gettext.rst:588 -msgid "Another way to handle this is with the following example::" -msgstr "Voici une autre solution ::" - -#: library/gettext.rst:602 -#, fuzzy -msgid "" -"In this case, you are marking translatable strings with the function :func:`!" -"N_`, which won't conflict with any definition of :func:`!_`. However, you " -"will need to teach your message extraction program to look for translatable " -"strings marked with :func:`!N_`. :program:`xgettext`, :program:`pygettext`, " -"``pybabel extract``, and :program:`xpot` all support this through the use of " -"the :option:`!-k` command-line switch. The choice of :func:`!N_` here is " -"totally arbitrary; it could have just as easily been :func:`!" -"MarkThisStringForTranslation`." -msgstr "" -"Dans ce cas, les chaînes à traduire sont identifiées avec la " -"fonction :func:`N_`, qui n'entre pas en conflit avec définition " -"de :func:`_`. Cependant, il faudra apprendre à votre programme d'extraction " -"de messages à rechercher les chaînes de caractères à traduire parmi celles " -"ayant le marqueur :func:`N_`. :program:`xgettext`, :program:`pygettext`, " -"``pybabel extract`` et :program:`xpot` prennent tous en charge cela grâce à " -"l'option en ligne de commande :option:`!-k`. Le choix du nom :func:`N_` ici " -"est totalement arbitraire et aurait très bien pu " -"être :func:`MarqueurDeTraduction`." - -#: library/gettext.rst:613 -msgid "Acknowledgements" -msgstr "Remerciements" - -#: library/gettext.rst:615 -msgid "" -"The following people contributed code, feedback, design suggestions, " -"previous implementations, and valuable experience to the creation of this " -"module:" -msgstr "" -"Les personnes suivantes ont contribué au code, ont fait des retours, ont " -"participé aux suggestions de conception et aux implémentations précédentes, " -"et ont partagé leur expérience précieuse pour la création de ce module :" - -#: library/gettext.rst:618 -msgid "Peter Funk" -msgstr "Peter Funk" - -#: library/gettext.rst:620 -msgid "James Henstridge" -msgstr "James Henstridge" - -#: library/gettext.rst:622 -msgid "Juan David Ibáñez Palomar" -msgstr "Juan David Ibáñez Palomar" - -#: library/gettext.rst:624 -msgid "Marc-André Lemburg" -msgstr "Marc-André Lemburg" - -#: library/gettext.rst:626 -msgid "Martin von Löwis" -msgstr "Martin von Löwis" - -#: library/gettext.rst:628 -msgid "François Pinard" -msgstr "François Pinard" - -#: library/gettext.rst:630 -msgid "Barry Warsaw" -msgstr "Barry Warsaw" - -#: library/gettext.rst:632 -msgid "Gustavo Niemeyer" -msgstr "Gustavo Niemeyer" - -#: library/gettext.rst:635 -msgid "Footnotes" -msgstr "Notes" - -#: library/gettext.rst:636 -#, fuzzy -msgid "" -"The default locale directory is system dependent; for example, on Red Hat " -"Linux it is :file:`/usr/share/locale`, but on Solaris it is :file:`/usr/lib/" -"locale`. The :mod:`!gettext` module does not try to support these system " -"dependent defaults; instead its default is :file:`{sys.base_prefix}/share/" -"locale` (see :data:`sys.base_prefix`). For this reason, it is always best to " -"call :func:`bindtextdomain` with an explicit absolute path at the start of " -"your application." -msgstr "" -"Le dossier par défaut pour les localisations dépend du système : par " -"exemple, sur RedHat c'est :file:`/usr/share/locale`, mais sur Solaris " -"c'est :file:`/usr/lib/locale`. Le module :mod:`gettext` n'essaie pas de " -"prendre en charge ce paramètre système dépendant du système d'exploitation, " -"mais utilise le dossier :file:`{sys.base_prefix}/share/locale` " -"(voir :data:`sys.base_prefix`). C'est pour cette raison qu'il est toujours " -"préférable d'appeler :func:`bindtextdomain` en donnant explicitement un " -"chemin absolu au début de votre application." - -#: library/gettext.rst:644 -msgid "See the footnote for :func:`bindtextdomain` above." -msgstr "Voir la note de :func:`bindtextdomain` ci-dessus." - -#~ msgid "" -#~ "Bind the *domain* to *codeset*, changing the encoding of byte strings " -#~ "returned by the :func:`lgettext`, :func:`ldgettext`, :func:`lngettext` " -#~ "and :func:`ldngettext` functions. If *codeset* is omitted, then the " -#~ "current binding is returned." -#~ msgstr "" -#~ "Lie *domain* à *codeset*, en changeant l'encodage des chaînes d'octets " -#~ "retournées par les " -#~ "fonctions :func:`lgettext`, :func:`ldgettext`, :func:`lngettext` " -#~ "et :func:`ldngettext`. Si *codeset* n'est pas renseigné, alors le lien " -#~ "actuel est renvoyé." - -#~ msgid "" -#~ "Equivalent to the corresponding functions without the ``l`` prefix " -#~ "(:func:`.gettext`, :func:`dgettext`, :func:`ngettext` " -#~ "and :func:`dngettext`), but the translation is returned as a byte string " -#~ "encoded in the preferred system encoding if no other encoding was " -#~ "explicitly set with :func:`bind_textdomain_codeset`." -#~ msgstr "" -#~ "Équivalent aux fonctions correspondantes non préfixées par ``l`` " -#~ "(:func:`.gettext`, :func:`dgettext`, :func:`ngettext` " -#~ "et :func:`dngettext`), mais la traduction est retournée en tant que " -#~ "chaîne d'octets, encodée avec l'encodage du système si aucun autre n'a " -#~ "été explicitement défini avec :func:`bind_textdomain_codeset`." - -#~ msgid "" -#~ "These functions should be avoided in Python 3, because they return " -#~ "encoded bytes. It's much better to use alternatives which return Unicode " -#~ "strings instead, since most Python applications will want to manipulate " -#~ "human readable text as strings instead of bytes. Further, it's possible " -#~ "that you may get unexpected Unicode-related exceptions if there are " -#~ "encoding problems with the translated strings." -#~ msgstr "" -#~ "Ces fonctions sont à éviter en Python 3 car elles renvoient des octets " -#~ "encodés. Il est préférable d'utiliser des alternatives qui renvoient de " -#~ "l'Unicode, puisque beaucoup d'applications Python voudront manipuler du " -#~ "texte lisible par des humains plutôt que des octets. En outre, il est " -#~ "possible que vous obteniez des exceptions non prévues liées à Unicode " -#~ "s'il y a des soucis d'encodage avec les chaînes de caractères traduites." - -#~ msgid "" -#~ "Equivalent to :meth:`.gettext` and :meth:`.ngettext`, but the translation " -#~ "is returned as a byte string encoded in the preferred system encoding if " -#~ "no encoding was explicitly set with :meth:`set_output_charset`. " -#~ "Overridden in derived classes." -#~ msgstr "" -#~ "Équivalent de :meth:`.gettext` et :meth:`.ngettext`, mais la traduction " -#~ "est renvoyée sous la forme d'une chaîne d'octets, encodée avec l'encodage " -#~ "du système si aucun autre n'a été défini " -#~ "avec :meth:`set_output_charset`. Surchargé dans les classes dérivées." - -#~ msgid "" -#~ "These methods should be avoided in Python 3. See the warning for " -#~ "the :func:`lgettext` function." -#~ msgstr "" -#~ "L'utilisation de ces méthodes doivent être évitée en Python 3. Voir " -#~ "l'avertissement de la fonction :func:`lgettext`." - -#~ msgid "" -#~ "Return the encoding used to return translated messages " -#~ "in :meth:`.lgettext` and :meth:`.lngettext`." -#~ msgstr "" -#~ "Renvoie l'encodage utilisé par :meth:`.lgettext` et :meth:`.lngettext` " -#~ "pour la traduction des messages." - -#~ msgid "Change the encoding used to return translated messages." -#~ msgstr "Modifie l'encodage utilisé pour la traduction des messages." - -#~ msgid "" -#~ "Equivalent to :meth:`.gettext` and :meth:`.ngettext`, but the translation " -#~ "is returned as a byte string encoded in the preferred system encoding if " -#~ "no encoding was explicitly set " -#~ "with :meth:`~NullTranslations.set_output_charset`." -#~ msgstr "" -#~ "Équivalent de :meth:`.gettext` et :meth:`.ngettext`, mais la traduction " -#~ "est renvoyée sous la forme d'une chaîne d'octets, encodée avec l'encodage " -#~ "du système si aucun autre n'a été défini " -#~ "avec :meth:`~NullTranslations.set_output_charset`." diff --git a/library/glob.po b/library/glob.po deleted file mode 100644 index 23f9b88a93..0000000000 --- a/library/glob.po +++ /dev/null @@ -1,308 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-02-11 13:53+0100\n" -"Last-Translator: Arnaud Fréalle \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 3.0\n" - -#: library/glob.rst:2 -#, fuzzy -msgid ":mod:`!glob` --- Unix style pathname pattern expansion" -msgstr ":mod:`glob` — Recherche de chemins de style Unix selon certains motifs" - -#: library/glob.rst:7 -msgid "**Source code:** :source:`Lib/glob.py`" -msgstr "**Code source :** :source:`Lib/glob.py`" - -#: library/glob.rst:21 -#, fuzzy -msgid "" -"The :mod:`!glob` module finds pathnames using pattern matching rules similar " -"to the Unix shell. No tilde expansion is done, but ``*``, ``?``, and " -"character ranges expressed with ``[]`` will be correctly matched. This is " -"done by using the :func:`os.scandir` and :func:`fnmatch.fnmatch` functions " -"in concert, and not by actually invoking a subshell." -msgstr "" -"Le module :mod:`glob` recherche tous les chemins correspondant à un motif " -"particulier selon les règles utilisées par le shell Unix, les résultats sont " -"renvoyés dans un ordre arbitraire. Aucun remplacement du tilde n'est " -"réalisé, mais les caractères ``*``, ``?``, et les caractères ``[]`` " -"exprimant un intervalle sont correctement renvoyés. Cette opération est " -"réalisée en utilisant les fonctions :func:`os.scandir` " -"et :func:`fnmatch.fnmatch` de concert, et sans invoquer une sous-commande. " -"Notons qu'à la différence de :func:`fnmatch.fnmatch`, :mod:`glob` traite les " -"noms de fichiers commençant par un point (``.``) comme des cas spéciaux. " -"(Pour remplacer le tilde et les variables shell, nous vous conseillons " -"d'utiliser les fonctions :func:`os.path.expanduser` " -"et :func:`os.path.expandvars`.)" - -#: library/glob.rst:29 -msgid "" -"The pathnames are returned in no particular order. If you need a specific " -"order, sort the results." -msgstr "" - -#: library/glob.rst:32 -msgid "" -"Files beginning with a dot (``.``) can only be matched by patterns that also " -"start with a dot, unlike :func:`fnmatch.fnmatch` " -"or :func:`pathlib.Path.glob`. For tilde and shell variable expansion, " -"use :func:`os.path.expanduser` and :func:`os.path.expandvars`." -msgstr "" - -#: library/glob.rst:38 -msgid "" -"For a literal match, wrap the meta-characters in brackets. For example, " -"``'[?]'`` matches the character ``'?'``." -msgstr "" -"Pour une correspondance littérale, il faut entourer le métacaractère par des " -"crochets. Par exemple, ``'[?]'`` reconnaît le caractère ``'?'``." - -#: library/glob.rst:41 -msgid "The :mod:`!glob` module defines the following functions:" -msgstr "" - -#: library/glob.rst:47 -#, fuzzy -msgid "" -"Return a possibly empty list of path names that match *pathname*, which must " -"be a string containing a path specification. *pathname* can be either " -"absolute (like :file:`/usr/src/Python-1.5/Makefile`) or relative " -"(like :file:`../../Tools/\\*/\\*.gif`), and can contain shell-style " -"wildcards. Broken symlinks are included in the results (as in the shell). " -"Whether or not the results are sorted depends on the file system. If a file " -"that satisfies conditions is removed or added during the call of this " -"function, whether a path name for that file will be included is unspecified." -msgstr "" -"Renvoie une liste, potentiellement vide, de chemins correspondant au motif " -"*pathname*, qui doit être une chaîne de caractères contenant la " -"spécification du chemin. *pathname* peut être soit absolu (comme :file:`/usr/" -"src/Python-1.5/Makefile`) soit relatif (comme :file:`../../Tools/\\*/" -"\\*.gif`), et contenir un caractère de remplacement de style shell. Les " -"liens symboliques cassés sont aussi inclus dans les résultats (comme pour le " -"shell). Le fait que les résultats soient triés ou non dépend du système de " -"fichiers." - -#: library/glob.rst:56 -#, fuzzy -msgid "" -"If *root_dir* is not ``None``, it should be a :term:`path-like object` " -"specifying the root directory for searching. It has the same effect " -"on :func:`!glob` as changing the current directory before calling it. If " -"*pathname* is relative, the result will contain paths relative to *root_dir*." -msgstr "" -"Si *root_dir* n'est pas ``None``, cela doit être un :term:`objet simili-" -"chemin ` spécifiant le dossier racine de la recherche. " -"Cela a le même effet sur :func:`glob` que de changer le dossier courant " -"avant l'appel de la fonction. Si *pathname* est relatif, les chemins du " -"résultat seront relatifs au *root_dir* ." - -#: library/glob.rst:62 -msgid "" -"This function can support :ref:`paths relative to directory descriptors " -"` with the *dir_fd* parameter." -msgstr "" -"Cette fonction prend en charge les :ref:`chemins relatifs aux descripteurs " -"de dossier ` avec le paramètre *dir_fd*." - -#: library/glob.rst:68 -msgid "" -"If *recursive* is true, the pattern \"``**``\" will match any files and zero " -"or more directories, subdirectories and symbolic links to directories. If " -"the pattern is followed by an :data:`os.sep` or :data:`os.altsep` then files " -"will not match." -msgstr "" -"Si *recursive* est vrai, le motif \"``**``\" reconnaît tous les fichiers, " -"aucun ou plusieurs répertoires, sous-répertoires et liens symboliques aux " -"répertoires. Si le motif est suivi par :data:`os.sep` ou :data:`os.altsep` " -"alors les fichiers ne sont pas inclus dans le résultat." - -#: library/glob.rst:73 -msgid "" -"If *include_hidden* is true, \"``**``\" pattern will match hidden " -"directories." -msgstr "" - -#: library/glob.rst:107 -msgid "" -"Raises an :ref:`auditing event ` ``glob.glob`` with arguments " -"``pathname``, ``recursive``." -msgstr "" -"Lève un :ref:`évènement d'audit ` ``glob.glob`` avec les arguments " -"``pathname``, ``recursive``." - -#: library/glob.rst:108 -msgid "" -"Raises an :ref:`auditing event ` ``glob.glob/2`` with arguments " -"``pathname``, ``recursive``, ``root_dir``, ``dir_fd``." -msgstr "" -"Lève un :ref:`évènement d'audit ` ``glob.glob/2`` avec les " -"arguments ``pathname``, ``recursive``, ``root_dir``, ``dir_fd``." - -#: library/glob.rst:79 -msgid "" -"Using the \"``**``\" pattern in large directory trees may consume an " -"inordinate amount of time." -msgstr "" -"Utiliser le motif \"``**``\" dans de grandes arborescences de dossier peut " -"consommer une quantité de temps démesurée." - -#: library/glob.rst:111 -msgid "" -"This function may return duplicate path names if *pathname* contains " -"multiple \"``**``\" patterns and *recursive* is true." -msgstr "" - -#: library/glob.rst:115 -msgid "" -"Any :exc:`OSError` exceptions raised from scanning the filesystem are " -"suppressed. This includes :exc:`PermissionError` when accessing directories " -"without read permission." -msgstr "" - -#: library/glob.rst:119 -msgid "Support for recursive globs using \"``**``\"." -msgstr "Prise en charge des chemins récursifs utilisant le motif \"``**``\"." - -#: library/glob.rst:122 -msgid "Added the *root_dir* and *dir_fd* parameters." -msgstr "Paramètres *root_dir* et *dir_fd* ajoutés." - -#: library/glob.rst:125 -msgid "Added the *include_hidden* parameter." -msgstr "" - -#: library/glob.rst:104 -msgid "" -"Return an :term:`iterator` which yields the same values as :func:`glob` " -"without actually storing them all simultaneously." -msgstr "" -"Renvoie un :term:`itérateur ` qui produit les mêmes valeurs " -"que :func:`glob`, sans toutes les charger en mémoire simultanément." - -#: library/glob.rst:131 -msgid "" -"Escape all special characters (``'?'``, ``'*'`` and ``'['``). This is useful " -"if you want to match an arbitrary literal string that may have special " -"characters in it. Special characters in drive/UNC sharepoints are not " -"escaped, e.g. on Windows ``escape('//?/c:/Quo vadis?.txt')`` returns ``'//?/" -"c:/Quo vadis[?].txt'``." -msgstr "" -"Échappe tous les caractères spéciaux (``'?'``, ``'*'`` et ``'['``). Cela est " -"utile pour reconnaître une chaîne de caractère littérale arbitraire qui " -"contiendrait ce type de caractères. Les caractères spéciaux dans les disques " -"et répertoires partagés (chemins UNC) ne sont pas échappés, e.g. sous " -"Windows ``escape('//?/c:/Quo vadis?.txt')`` renvoie ``'//?/c:/Quo " -"vadis[?].txt'``." - -#: library/glob.rst:142 -msgid "" -"Convert the given path specification to a regular expression for use " -"with :func:`re.prefixmatch`. The path specification can contain shell-style " -"wildcards." -msgstr "" - -#: library/glob.rst:146 -msgid "For example:" -msgstr "Par exemple :" - -#: library/glob.rst:157 -msgid "" -"Path separators and segments are meaningful to this function, " -"unlike :func:`fnmatch.translate`. By default wildcards do not match path " -"separators, and ``*`` pattern segments match precisely one path segment." -msgstr "" - -#: library/glob.rst:161 -msgid "" -"If *recursive* is true, the pattern segment \"``**``\" will match any number " -"of path segments." -msgstr "" - -#: library/glob.rst:164 -msgid "" -"If *include_hidden* is true, wildcards can match path segments that start " -"with a dot (``.``)." -msgstr "" - -#: library/glob.rst:167 -msgid "" -"A sequence of path separators may be supplied to the *seps* argument. If not " -"given, :data:`os.sep` and :data:`~os.altsep` (if available) are used." -msgstr "" - -#: library/glob.rst:172 -msgid "" -":meth:`pathlib.PurePath.full_match` and :meth:`pathlib.Path.glob` methods, " -"which call this function to implement pattern matching and globbing." -msgstr "" - -#: library/glob.rst:180 -msgid "Examples" -msgstr "Exemples" - -#: library/glob.rst:182 -#, fuzzy -msgid "" -"Consider a directory containing the following " -"files: :file:`1.gif`, :file:`2.txt`, :file:`card.gif` and a " -"subdirectory :file:`sub` which contains only the " -"file :file:`3.txt`. :func:`glob` will produce the following results. " -"Notice how any leading components of the path are preserved. ::" -msgstr "" -"Par exemple, considérons un répertoire contenant les fichiers " -"suivants : :file:`1.gif`, :file:`2.txt`, :file:`card.gif` et un sous-" -"répertoire :file:`sub` contenant seulement le " -"fichier :file:`3.txt`. :func:`glob` produit les résultats suivants. Notons " -"que les composantes principales des chemins sont préservées. ::" - -#: library/glob.rst:200 -msgid "" -"If the directory contains files starting with ``.`` they won't be matched by " -"default. For example, consider a directory containing :file:`card.gif` " -"and :file:`.card.gif`::" -msgstr "" -"Si le répertoire contient des fichiers commençant par ``.``, ils ne sont pas " -"reconnus par défaut. Par exemple, considérons un répertoire " -"contenant :file:`card.gif` et :file:`.card.gif` ::" - -#: library/glob.rst:211 -#, fuzzy -msgid "" -"The :mod:`fnmatch` module offers shell-style filename (not path) expansion." -msgstr "" -"Recherche de noms de fichiers de style shell (ne concerne pas les chemins)" - -#: library/glob.rst:214 -msgid "The :mod:`pathlib` module offers high-level path objects." -msgstr "" -"Le module :mod:`pathlib` offre une représentation objet de haut niveau des " -"chemins." - -#~ msgid "* (asterisk)" -#~ msgstr "* (astérisque)" - -#~ msgid "[] (square brackets)" -#~ msgstr "[] (crochets)" - -#~ msgid "- (minus)" -#~ msgstr "- (moins)" - -#~ msgid ". (dot)" -#~ msgstr ". (point)" - -#~ msgid "**" -#~ msgstr "**" - -#~ msgid "Module :mod:`fnmatch`" -#~ msgstr "Module :mod:`fnmatch`" diff --git a/library/graphlib.po b/library/graphlib.po deleted file mode 100644 index 5d00dcc8b5..0000000000 --- a/library/graphlib.po +++ /dev/null @@ -1,337 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-11-17 10:01+0100\n" -"Last-Translator: Jeffd \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" - -#: library/graphlib.rst:2 -#, fuzzy -msgid "" -":mod:`!graphlib` --- Functionality to operate with graph-like structures" -msgstr "" -":mod:`graphlib` — Fonctionnalités pour travailler avec des structures de " -"type graphe" - -#: library/graphlib.rst:8 -msgid "**Source code:** :source:`Lib/graphlib.py`" -msgstr "**Code source:** :source:`Lib/graphlib.py`" - -#: library/graphlib.rst:20 -#, fuzzy -msgid "" -"Provides functionality to topologically sort a graph of :term:`hashable` " -"nodes." -msgstr "" -"Fournit les fonctionnalités pour trier topologiquement un graphe de nœuds " -"hachables." - -#: library/graphlib.rst:22 -msgid "" -"A topological order is a linear ordering of the vertices in a graph such " -"that for every directed edge u -> v from vertex u to vertex v, vertex u " -"comes before vertex v in the ordering. For instance, the vertices of the " -"graph may represent tasks to be performed, and the edges may represent " -"constraints that one task must be performed before another; in this example, " -"a topological ordering is just a valid sequence for the tasks. A complete " -"topological ordering is possible if and only if the graph has no directed " -"cycles, that is, if it is a directed acyclic graph." -msgstr "" -"L'ordre topologique est un ordre linéaire des sommets d'un graphe afin que " -"pour chaque arête u → v d'un sommet u à un sommet v, cet ordre va placer le " -"sommet u avant le sommet v. Par exemple, les sommets d'un graphe peuvent " -"représenter une tâche à faire et une arête peut représenter la contrainte " -"comme quoi telle tâche doit être réalisée avant telle autre. Dans cet " -"exemple, un ordre topologique est simplement une séquence valide pour ces " -"tâches. Cet ordre n'est possible que si le graphe n'a pas de circuit, c'est-" -"à-dire si c'est un graphe orienté acyclique." - -#: library/graphlib.rst:31 -msgid "" -"If the optional *graph* argument is provided it must be a dictionary " -"representing a directed acyclic graph where the keys are nodes and the " -"values are iterables of all predecessors of that node in the graph (the " -"nodes that have edges that point to the value in the key). Additional nodes " -"can be added to the graph using the :meth:`~TopologicalSorter.add` method." -msgstr "" -"Si l'argument optionnel *graph* est fourni, cela doit être un dictionnaire " -"représentant un graphe acyclique avec comme clés les nœuds et comme valeurs " -"des itérables sur les prédécesseurs de ces nœuds dans le graphe (les nœuds " -"qui ont des arêtes qui pointent vers la valeur de la clé). Les nœuds " -"s'ajoutent en utilisant la méthode :meth:`~TopologicalSorter.add`" - -#: library/graphlib.rst:37 -msgid "" -"In the general case, the steps required to perform the sorting of a given " -"graph are as follows:" -msgstr "" -"De manière générale, les étapes nécessaires pour trier un graphe donné sont " -"les suivantes :" - -#: library/graphlib.rst:40 -msgid "" -"Create an instance of the :class:`TopologicalSorter` with an optional " -"initial graph." -msgstr "" -"créer une instance de la classe :class:`TopologicalSorter` avec " -"éventuellement un graphe initial ;" - -#: library/graphlib.rst:42 -msgid "Add additional nodes to the graph." -msgstr "ajouter d'autres nœuds au graphe ;" - -#: library/graphlib.rst:43 -msgid "Call :meth:`~TopologicalSorter.prepare` on the graph." -msgstr "appeler :meth:`~TopologicalSorter.prepare` sur le graphe ;" - -#: library/graphlib.rst:44 -msgid "" -"While :meth:`~TopologicalSorter.is_active` is ``True``, iterate over the " -"nodes returned by :meth:`~TopologicalSorter.get_ready` and process them. " -"Call :meth:`~TopologicalSorter.done` on each node as it finishes processing." -msgstr "" -"tant que :meth:`~TopologicalSorter.is_active` est à ``True``, itérer sur les " -"nœuds renvoyés par :meth:`~TopologicalSorter.get_ready` pour les traiter. " -"Appeler :meth:`~TopologicalSorter.done` sur chaque nœud une fois le " -"traitement terminé." - -#: library/graphlib.rst:49 -msgid "" -"In case just an immediate sorting of the nodes in the graph is required and " -"no parallelism is involved, the convenience " -"method :meth:`TopologicalSorter.static_order` can be used directly:" -msgstr "" -"Si vous souhaitez simplement trier des nœuds du graphe sans parallélisme, la " -"méthode :meth:`TopologicalSorter.static_order` peut être utilisée " -"directement :" - -#: library/graphlib.rst:60 -msgid "" -"The class is designed to easily support parallel processing of the nodes as " -"they become ready. For instance::" -msgstr "" -"La classe est conçue pour prendre facilement en charge le traitement en " -"parallèle des nœuds quand ils deviennent disponibles. Par exemple ::" - -#: library/graphlib.rst:87 -#, fuzzy -msgid "" -"Add a new node and its predecessors to the graph. Both the *node* and all " -"elements in *predecessors* must be :term:`hashable`." -msgstr "" -"Ajoute un nouveau nœud et son prédécesseur dans le graphe. Le *node* ainsi " -"que tous les éléments dans *predecessors* doivent être hachables." - -#: library/graphlib.rst:90 -msgid "" -"If called multiple times with the same node argument, the set of " -"dependencies will be the union of all dependencies passed in." -msgstr "" -"S'il est appelé plusieurs fois avec le même nœud en tant qu'argument, " -"l'ensemble des dépendances sera l'union de toutes les dépendances qui auront " -"été transmises." - -#: library/graphlib.rst:93 -msgid "" -"It is possible to add a node with no dependencies (*predecessors* is not " -"provided) or to provide a dependency twice. If a node that has not been " -"provided before is included among *predecessors* it will be automatically " -"added to the graph with no predecessors of its own." -msgstr "" -"Il est possible d'ajouter un nœud sans dépendance (*predecessors* n'est pas " -"fourni) ou de fournir une dépendance deux fois. Si un nœud qui n'a jamais " -"été fourni auparavant est inclus dans *predecessors* il sera automatiquement " -"ajouté au graphe sans prédécesseur lui-même." - -#: library/graphlib.rst:98 -msgid "" -"Raises :exc:`ValueError` if called after :meth:`~TopologicalSorter.prepare`." -msgstr "" -"Lève une :exc:`ValueError` si appelée " -"après :meth:`~TopologicalSorter.prepare`." - -#: library/graphlib.rst:102 -msgid "" -"Mark the graph as finished and check for cycles in the graph. If any cycle " -"is detected, :exc:`CycleError` will be raised, " -"but :meth:`~TopologicalSorter.get_ready` can still be used to obtain as many " -"nodes as possible until cycles block more progress. After a call to this " -"function, the graph cannot be modified, and therefore no more nodes can be " -"added using :meth:`~TopologicalSorter.add`." -msgstr "" -"Indique que le graphe est terminé et vérifie les circuits du graphe. Si un " -"circuit est détecté, une :exc:`CycleError` est levée " -"mais :meth:`~TopologicalSorter.get_ready` peut encore être utilisée pour " -"obtenir autant de nœuds que possible avant que les circuits ne bloquent la " -"progression. Après un appel de cette fonction, le graphe ne peut pas être " -"modifié, et donc aucun nœud ne peut être ajouté " -"avec :meth:`~TopologicalSorter.add`." - -#: library/graphlib.rst:109 -msgid "" -"A :exc:`ValueError` will be raised if the sort has been started " -"by :meth:`~.static_order` or :meth:`~.get_ready`." -msgstr "" - -#: library/graphlib.rst:114 -msgid "" -"``prepare()`` can now be called more than once as long as the sort has not " -"started. Previously this raised :exc:`ValueError`." -msgstr "" - -#: library/graphlib.rst:119 -msgid "" -"Returns ``True`` if more progress can be made and ``False`` otherwise. " -"Progress can be made if cycles do not block the resolution and either there " -"are still nodes ready that haven't yet been returned " -"by :meth:`TopologicalSorter.get_ready` or the number of nodes " -"marked :meth:`TopologicalSorter.done` is less than the number that have been " -"returned by :meth:`TopologicalSorter.get_ready`." -msgstr "" -"Renvoie ``True`` si une progression peut être faite et ``False`` dans le cas " -"contraire. La progression est possible si des circuits ne bloquent pas la " -"résolution ou qu'il reste des nœuds prêts qui n'ont pas encore été renvoyés " -"par :meth:`TopologicalSorter.get_ready` ou que le nombre de nœuds " -"marqués :meth:`TopologicalSorter.done` est inférieur au nombre qui a été " -"renvoyé par :meth:`TopologicalSorter.get_ready`." - -#: library/graphlib.rst:126 -#, fuzzy -msgid "" -"The :meth:`~object.__bool__` method of this class defers to this function, " -"so instead of::" -msgstr "" -"La méthode :meth:`~TopologicalSorter.__bool__` de cette classe renvoie à " -"cette fonction donc au lieu de ::" - -#: library/graphlib.rst:132 -msgid "it is possible to simply do::" -msgstr "il est plus simple de faire ::" - -#: library/graphlib.rst:160 -msgid "" -"Raises :exc:`ValueError` if called without " -"calling :meth:`~TopologicalSorter.prepare` previously." -msgstr "" -"Lève une :exc:`ValueError` si l'appel à :meth:`~TopologicalSorter.prepare` " -"n'a pas été fait au préalable." - -#: library/graphlib.rst:142 -msgid "" -"Marks a set of nodes returned by :meth:`TopologicalSorter.get_ready` as " -"processed, unblocking any successor of each node in *nodes* for being " -"returned in the future by a call to :meth:`TopologicalSorter.get_ready`." -msgstr "" -"Marque un ensemble de nœuds renvoyé par :meth:`TopologicalSorter.get_ready` " -"comme traités, permettant aux successeurs de chaque nœud de *nodes* d'être " -"renvoyés lors d'un prochain appel à :meth:`~TopologicalSorter.get_ready`." - -#: library/graphlib.rst:146 -msgid "" -"Raises :exc:`ValueError` if any node in *nodes* has already been marked as " -"processed by a previous call to this method or if a node was not added to " -"the graph by using :meth:`TopologicalSorter.add`, if called without " -"calling :meth:`~TopologicalSorter.prepare` or if node has not yet been " -"returned by :meth:`~TopologicalSorter.get_ready`." -msgstr "" -"Lève une :exc:`ValueError` si n'importe quel nœud dans *nodes* a déjà été " -"marqué comme traité par un précédent appel à cette méthode ou si un nœud n'a " -"pas été ajouté au graphe en utilisant :meth:`TopologicalSorter.add`, si " -"l'appel est fait sans appel à :meth:`~TopologicalSorter.prepare` ou si le " -"nœud n'a pas encore été renvoyé par :meth:`~TopologicalSorter.get_ready`." - -#: library/graphlib.rst:154 -msgid "" -"Returns a ``tuple`` with all the nodes that are ready. Initially it returns " -"all nodes with no predecessors, and once those are marked as processed by " -"calling :meth:`TopologicalSorter.done`, further calls will return all new " -"nodes that have all their predecessors already processed. Once no more " -"progress can be made, empty tuples are returned." -msgstr "" -"Renvoie un *n*-uplet avec tous les nœuds prêts. Renvoie d'abord tous les " -"nœuds sans prédécesseurs, et une fois marqués comme traités avec un appel " -"de :meth:`TopologicalSorter.done`, les autres appels renvoient tous les " -"nouveaux nœuds dont tous les prédécesseurs sont traités. Une fois que la " -"progression n'est plus possible, des tuples vides sont renvoyés." - -#: library/graphlib.rst:165 -#, fuzzy -msgid "" -"Returns an iterator object which will iterate over nodes in a topological " -"order. When using this method, :meth:`~TopologicalSorter.prepare` " -"and :meth:`~TopologicalSorter.done` should not be called. This method is " -"equivalent to::" -msgstr "" -"Renvoie un itérable contenant les nœuds dans un ordre topologique. " -"L'utilisation de cette méthode permet d'éviter l'appel " -"à :meth:`TopologicalSorter.prepare` ou :meth:`TopologicalSorter.done` Cette " -"méthode est équivalente à ::" - -#: library/graphlib.rst:177 -msgid "" -"The particular order that is returned may depend on the specific order in " -"which the items were inserted in the graph. For example:" -msgstr "" -"Le tri obtenu peut dépendre de l'ordre dans lequel les éléments ont été " -"ajoutés dans le graphe. Par exemple :" - -#: library/graphlib.rst:194 -msgid "" -"This is due to the fact that \"0\" and \"2\" are in the same level in the " -"graph (they would have been returned in the same call " -"to :meth:`~TopologicalSorter.get_ready`) and the order between them is " -"determined by the order of insertion." -msgstr "" -"Ceci est dû au fait que \"0\" et \"2\" sont au même niveau dans le graphe " -"(ils auraient été renvoyés dans le même appel " -"à :meth:`~TopologicalSorter.get_ready`) et l'ordre entre eux est déterminé " -"par l'ordre lors de l'insertion." - -#: library/graphlib.rst:200 -msgid "If any cycle is detected, :exc:`CycleError` will be raised." -msgstr "Si un circuit est détecté alors une :exc:`CycleError` est levée." - -#: library/graphlib.rst:206 -msgid "Exceptions" -msgstr "Exceptions" - -#: library/graphlib.rst:207 -#, fuzzy -msgid "The :mod:`!graphlib` module defines the following exception classes:" -msgstr "Le module :mod:`graphlib` définit les classes d'exceptions suivantes :" - -#: library/graphlib.rst:211 -msgid "" -"Subclass of :exc:`ValueError` raised by :meth:`TopologicalSorter.prepare` if " -"cycles exist in the working graph. If multiple cycles exist, only one " -"undefined choice among them will be reported and included in the exception." -msgstr "" -"Une classe héritant de :exc:`ValueError` levée " -"par :meth:`TopologicalSorter.prepare` si un circuit existe dans le graphe " -"courant. Si plusieurs circuits existent, un seul est inclus dans l'exception." - -#: library/graphlib.rst:215 -#, fuzzy -msgid "" -"The detected cycle can be accessed via the second element in " -"the :attr:`~BaseException.args` attribute of the exception instance and " -"consists in a list of nodes, such that each node is, in the graph, an " -"immediate predecessor of the next node in the list. In the reported list, " -"the first and the last node will be the same, to make it clear that it is " -"cyclic." -msgstr "" -"On accède au circuit détecté via le second élément de " -"l'attribut :attr:`~CycleError.args` de l'instance de l'exception. Cet " -"attribut est une liste de nœuds où chaque nœud est, dans le graphe, un " -"prédécesseur immédiat du nœud suivant de la liste. Dans la liste renvoyée, " -"le premier et le dernier nœud sont les mêmes afin de bien indiquer que c'est " -"un circuit." diff --git a/library/grp.po b/library/grp.po deleted file mode 100644 index ffc92aa403..0000000000 --- a/library/grp.po +++ /dev/null @@ -1,151 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n" -"Last-Translator: FULL NAME \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" - -#: library/grp.rst:2 -msgid ":mod:`!grp` --- The group database" -msgstr "" - -#: library/grp.rst:9 -msgid "" -"This module provides access to the Unix group database. It is available on " -"all Unix versions." -msgstr "" - -#: library/grp.rst:12 -msgid "Availability" -msgstr "Disponibilité" - -#: library/grp.rst:14 -msgid "" -"Group database entries are reported as a tuple-like object, whose attributes " -"correspond to the members of the ``group`` structure (Attribute field below, " -"see ````):" -msgstr "" - -#: library/grp.rst:19 -msgid "Index" -msgstr "Index" - -#: library/grp.rst:19 -msgid "Attribute" -msgstr "Attribut" - -#: library/grp.rst:19 -msgid "Meaning" -msgstr "Signification" - -#: library/grp.rst:21 -msgid "0" -msgstr "0" - -#: library/grp.rst:21 -msgid "gr_name" -msgstr "gr_name" - -#: library/grp.rst:21 -msgid "the name of the group" -msgstr "" - -#: library/grp.rst:23 -msgid "1" -msgstr "1" - -#: library/grp.rst:23 -msgid "gr_passwd" -msgstr "gr_passwd" - -#: library/grp.rst:23 -msgid "the (encrypted) group password; often empty" -msgstr "" - -#: library/grp.rst:26 -msgid "2" -msgstr "2" - -#: library/grp.rst:26 -msgid "gr_gid" -msgstr "gr_gid" - -#: library/grp.rst:26 -msgid "the numerical group ID" -msgstr "" - -#: library/grp.rst:28 -msgid "3" -msgstr "3" - -#: library/grp.rst:28 -msgid "gr_mem" -msgstr "gr_mem" - -#: library/grp.rst:28 -msgid "all the group member's user names" -msgstr "" - -#: library/grp.rst:32 -msgid "" -"The gid is an integer, name and password are strings, and the member list is " -"a list of strings. (Note that most users are not explicitly listed as " -"members of the group they are in according to the password database. Check " -"both databases to get complete membership information. Also note that a " -"``gr_name`` that starts with a ``+`` or ``-`` is likely to be a YP/NIS " -"reference and may not be accessible via :func:`getgrnam` " -"or :func:`getgrgid`.)" -msgstr "" - -#: library/grp.rst:39 -msgid "It defines the following items:" -msgstr "" - -#: library/grp.rst:44 -msgid "" -"Return the group database entry for the given numeric group " -"ID. :exc:`KeyError` is raised if the entry asked for cannot be found." -msgstr "" - -#: library/grp.rst:47 -msgid "" -":exc:`TypeError` is raised for non-integer arguments like floats or strings." -msgstr "" - -#: library/grp.rst:52 -msgid "" -"Return the group database entry for the given group name. :exc:`KeyError` is " -"raised if the entry asked for cannot be found." -msgstr "" - -#: library/grp.rst:58 -msgid "Return a list of all available group entries, in arbitrary order." -msgstr "" - -#: library/grp.rst:63 -msgid "Module :mod:`pwd`" -msgstr "Module :mod:`pwd`" - -#: library/grp.rst:64 -#, fuzzy -msgid "An interface to the user database, similar to this." -msgstr "Interface pour la base de données des groupes, similaire à celle-ci." - -#, fuzzy -#~ msgid "Module :mod:`spwd`" -#~ msgstr "Module :mod:`pwd`" - -#, fuzzy -#~ msgid "An interface to the shadow password database, similar to this." -#~ msgstr "" -#~ "Interface pour la base de données (normale) des mots de passe, semblable " -#~ "à ceci." diff --git a/library/gzip.po b/library/gzip.po deleted file mode 100644 index fda3eaf744..0000000000 --- a/library/gzip.po +++ /dev/null @@ -1,557 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2018-10-07 15:03+0200\n" -"Last-Translator: Lomanic \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 1.8.11\n" - -#: library/gzip.rst:2 -#, fuzzy -msgid ":mod:`!gzip` --- Support for :program:`gzip` files" -msgstr ":mod:`gzip` — Support pour les fichiers :program:`gzip`" - -#: library/gzip.rst:7 -msgid "**Source code:** :source:`Lib/gzip.py`" -msgstr "**Code source :** :source:`Lib/gzip.py`" - -#: library/gzip.rst:11 -msgid "" -"This module provides a simple interface to compress and decompress files " -"just like the GNU programs :program:`gzip` and :program:`gunzip` would." -msgstr "" -"Ce module fournit une interface simple pour compresser et décompresser des " -"fichiers tout comme le font les programmes GNU :program:`gzip` " -"et :program:`gunzip`." - -#: includes/optional-module.rst:1 -msgid "" -"This is an :term:`optional module`. If it is missing from your copy of " -"CPython, look for documentation from your distributor (that is, whoever " -"provided Python to you). If you are the distributor, see :ref:`optional-" -"module-requirements`." -msgstr "" - -#: library/gzip.rst:16 -msgid "The data compression is provided by the :mod:`zlib` module." -msgstr "La compression de données est fournie par le module :mod:`zlib`." - -#: library/gzip.rst:18 -#, fuzzy -msgid "" -"The :mod:`!gzip` module provides the :class:`GzipFile` class, as well as " -"the :func:`.open`, :func:`compress` and :func:`decompress` convenience " -"functions. The :class:`GzipFile` class reads and writes :program:`gzip`\\ " -"-format files, automatically compressing or decompressing the data so that " -"it looks like an ordinary :term:`file object`." -msgstr "" -"Le module :mod:`gzip` fournit la classe :class:`GzipFile` ainsi que les " -"fonctions pratiques :func:`.open`, :func:`compress` et :func:`decompress`. " -"La classe :class:`GzipFile` lit et écrit des fichiers au " -"format :program:`gzip`, compressant et décompressant automatiquement les " -"données pour qu'elles aient l'apparence d'un objet :term:`file object` " -"ordinaire." - -#: library/gzip.rst:24 -msgid "" -"Note that additional file formats which can be decompressed by " -"the :program:`gzip` and :program:`gunzip` programs, such as those produced " -"by :program:`compress` and :program:`pack`, are not supported by this module." -msgstr "" -"Notez que les formats de fichier supplémentaires qui peuvent être " -"décompressés par les programmes :program:`gzip` et :program:`gunzip`, comme " -"ceux produits par le programmes :program:`compress` et :program:`pack`, ne " -"sont pas gérés par ce module." - -#: library/gzip.rst:28 -msgid "The module defines the following items:" -msgstr "Le module définit les éléments suivants :" - -#: library/gzip.rst:33 -msgid "" -"Open a gzip-compressed file in binary or text mode, returning a :term:`file " -"object`." -msgstr "" -"Ouvre un fichier compressé en *gzip* en mode binaire ou texte, renvoie un " -"objet :term:`file object`." - -#: library/gzip.rst:36 -msgid "" -"The *filename* argument can be an actual filename (a :class:`str` " -"or :class:`bytes` object), or an existing file object to read from or write " -"to." -msgstr "" -"L'argument *filename* peut être un nom de fichier (un objet :class:`str` " -"ou :class:`bytes`) ou un objet fichier existant que l'on peut lire, ou où " -"l'on peut écrire." - -#: library/gzip.rst:39 -msgid "" -"The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, " -"``'w'``, ``'wb'``, ``'x'`` or ``'xb'`` for binary mode, or ``'rt'``, " -"``'at'``, ``'wt'``, or ``'xt'`` for text mode. The default is ``'rb'``." -msgstr "" -"L'argument *mode* peut-être ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, ``'w'``, " -"``'wb'``, ``'x'`` ou ``'xb'`` pour le mode binaire ou ``'rt'``, ``'at'``, " -"``'wt'``, ou ``'xt'`` pour le mode texte. Le mode par défaut est ``'rb'``." - -#: library/gzip.rst:43 -msgid "" -"The *compresslevel* argument is an integer from 0 to 9, as for " -"the :class:`GzipFile` constructor." -msgstr "" -"L'argument *compresslevel* est un entier de 0 à 9, comme pour le " -"constructeur de la classe :class:`GzipFile`." - -#: library/gzip.rst:46 -msgid "" -"For binary mode, this function is equivalent to the :class:`GzipFile` " -"constructor: ``GzipFile(filename, mode, compresslevel)``. In this case, the " -"*encoding*, *errors* and *newline* arguments must not be provided." -msgstr "" -"En mode binaire, cette fonction est équivalente au constructeur de la " -"classe :class:`GzipFile` : ``GzipFile(filename, mode, compresslevel)``. Dans " -"ce cas, les arguments *encoding*, *errors* et *newline* ne doivent pas être " -"fournis." - -#: library/gzip.rst:50 -msgid "" -"For text mode, a :class:`GzipFile` object is created, and wrapped in " -"an :class:`io.TextIOWrapper` instance with the specified encoding, error " -"handling behavior, and line ending(s)." -msgstr "" -"En mode texte, un objet :class:`GzipFile` est créé et empaqueté dans une " -"instance de :class:`io.TextIOWrapper` avec l'encodage, la gestion d'erreur " -"et les fins de ligne spécifiés." - -#: library/gzip.rst:54 -msgid "" -"Added support for *filename* being a file object, support for text mode, and " -"the *encoding*, *errors* and *newline* arguments." -msgstr "" -"Ajout de la prise en charge de *filename* en tant qu'objet *file*, du mode " -"texte et des arguments *encoding*, *errors* et *newline*." - -#: library/gzip.rst:58 -msgid "Added support for the ``'x'``, ``'xb'`` and ``'xt'`` modes." -msgstr "Ajout de la prise en charge des modes ``'x'``, ``'xb'`` et ``'xt'``." - -#: library/gzip.rst:184 -msgid "Accepts a :term:`path-like object`." -msgstr "Accepte un :term:`path-like object`." - -#: library/gzip.rst:195 library/gzip.rst:225 -msgid "" -"The default compression level was reduced to 6 (down from 9). It is the " -"default level used by most compression tools and a better tradeoff between " -"speed and performance." -msgstr "" - -#: library/gzip.rst:71 -msgid "" -"An exception raised for invalid gzip files. It inherits " -"from :exc:`OSError`. :exc:`EOFError` and :exc:`zlib.error` can also be " -"raised for invalid gzip files." -msgstr "" - -#: library/gzip.rst:79 -#, fuzzy -msgid "" -"Constructor for the :class:`GzipFile` class, which simulates most of the " -"methods of a :term:`file object`, with the exception of " -"the :meth:`~io.IOBase.truncate` method. At least one of *fileobj* and " -"*filename* must be given a non-trivial value." -msgstr "" -"Constructeur de la classe :class:`GzipFile` qui simule la plupart des " -"méthodes d'un objet :term:`file object` à l'exception de la " -"méthode :meth:`truncate`. Au moins un des arguments *fileobj* et *filename* " -"doit avoir une valeur non triviale." - -#: library/gzip.rst:84 -msgid "" -"The new class instance is based on *fileobj*, which can be a regular file, " -"an :class:`io.BytesIO` object, or any other object which simulates a file. " -"It defaults to ``None``, in which case *filename* is opened to provide a " -"file object." -msgstr "" -"La nouvelle instance de classe est basée sur *fileobj* qui peut être un " -"fichier usuel, un objet :class:`io.BytesIO` ou tout autre objet qui simule " -"un fichier. *fileobj* est par défaut à *None*, dans ce cas *filename* est " -"ouvert afin de fournir un objet fichier." - -#: library/gzip.rst:89 -msgid "" -"When *fileobj* is not ``None``, the *filename* argument is only used to be " -"included in the :program:`gzip` file header, which may include the original " -"filename of the uncompressed file. It defaults to the filename of " -"*fileobj*, if discernible; otherwise, it defaults to the empty string, and " -"in this case the original filename is not included in the header." -msgstr "" -"Quand *fileobj* n'est pas à ``None``, l'argument *filename* est uniquement " -"utilisé pour être inclus dans l'entête du fichier :program:`gzip`, qui peut " -"inclure le nom original du fichier décompressé. Il est par défaut défini " -"avec le nom de fichier de *fileobj* s'il est discernable, sinon il est par " -"défaut défini à une chaîne de caractères vide et dans ce cas le nom du " -"fichier orignal n'est pas inclus dans l'entête." - -#: library/gzip.rst:95 -#, fuzzy -msgid "" -"The *mode* argument can be any of ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, " -"``'w'``, ``'wb'``, ``'x'``, or ``'xb'``, depending on whether the file will " -"be read or written. The default is the mode of *fileobj* if discernible; " -"otherwise, the default is ``'rb'``. In future Python releases the mode of " -"*fileobj* will not be used. It is better to always specify *mode* for " -"writing." -msgstr "" -"L'argument *mode* peut-être ``'r'``, ``'rb'``, ``'a'``, ``'ab'``, ``'w'``, " -"``'wb'``, ``'x'``, ou ``'xb'``, selon que le fichier va être lu ou écrit. " -"Par défaut prend la valeur du mode de *fileobj* si discernable ; sinon, la " -"valeur par défaut est ``'rb'``." - -#: library/gzip.rst:101 -msgid "" -"Note that the file is always opened in binary mode. To open a compressed " -"file in text mode, use :func:`.open` (or wrap your :class:`GzipFile` with " -"an :class:`io.TextIOWrapper`)." -msgstr "" -"Notez que le fichier est toujours ouvert en mode binaire. Pour ouvrir un " -"fichier compressé en mode texte, utilisez la fonction :func:`.open` (ou " -"empaquetez votre classe :class:`GzipFile` avec un :class:`io.TextIOWrapper`)." - -#: library/gzip.rst:105 -msgid "" -"The *compresslevel* argument is an integer from ``0`` to ``9`` controlling " -"the level of compression; ``1`` is fastest and produces the least " -"compression, and ``9`` is slowest and produces the most compression. ``0`` " -"is no compression. The default is ``9``." -msgstr "" -"L'argument *compresslevel* est un entier de ``0`` à ``9`` contrôlant le " -"niveau de compression, ``1`` est le plus rapide et produit la compression la " -"plus faible et ``9`` est le plus rapide et produit la compression la plus " -"élevée. ``0`` désactive la compression. Par défaut à ``9``." - -#: library/gzip.rst:110 -msgid "" -"The optional *mtime* argument is the timestamp requested by gzip. The time " -"is in Unix format, i.e., seconds since 00:00:00 UTC, January 1, 1970. Set " -"*mtime* to ``0`` to generate a compressed stream that does not depend on " -"creation time. If *mtime* is omitted or ``None``, the current time is used; " -"however, if the current time is outside the range 00:00:00 UTC, January 1, " -"1970 through 06:28:15 UTC, February 7, 2106, or explicitly passed *mtime* " -"argument is outside the range ``0`` to ``2**32-1``, then the value ``0`` is " -"used instead." -msgstr "" - -#: library/gzip.rst:119 -msgid "" -"See below for the :attr:`mtime` attribute that is set when decompressing." -msgstr "" - -#: library/gzip.rst:121 -#, fuzzy -msgid "" -"Calling a :class:`GzipFile` object's :meth:`!close` method does not close " -"*fileobj*, since you might wish to append more material after the compressed " -"data. This also allows you to pass an :class:`io.BytesIO` object opened for " -"writing as *fileobj*, and retrieve the resulting memory buffer using " -"the :class:`io.BytesIO` object's :meth:`~io.BytesIO.getvalue` method." -msgstr "" -"Appeler la méthode :meth:`close` d'un objet :class:`GzipFile` ne ferme pas " -"*fileobj*, puisque vous pourriez avoir besoin d'ajouter des informations " -"après les données compressées. Cela vous permet aussi de passer un " -"objet :class:`io.BytesIO` ouvert en écriture en tant que *fileobj* et " -"récupérer le tampon mémoire final en utilisant la " -"méthode :meth:`~io.BytesIO.getvalue` de l'objet :class:`io.BytesIO`." - -#: library/gzip.rst:127 -#, fuzzy -msgid "" -":class:`GzipFile` supports the :class:`io.BufferedIOBase` interface, " -"including iteration and the :keyword:`with` statement. Only " -"the :meth:`~io.IOBase.truncate` method isn't implemented." -msgstr "" -":La classe :class:`GzipFile` implémente " -"l'interface :class:`io.BufferedIOBase`, incluant l'itération, la " -"déclaration :keyword:`with`. La méthode :meth:`truncate` est la seule non " -"implémentée." - -#: library/gzip.rst:131 -msgid ":class:`GzipFile` also provides the following method and attribute:" -msgstr "" -"La classe :class:`GzipFile` fournit aussi la méthode et l'attribut suivant :" - -#: library/gzip.rst:135 -#, fuzzy -msgid "" -"Read *n* uncompressed bytes without advancing the file position. The number " -"of bytes returned may be more or less than requested." -msgstr "" -"Lit *n* octets non compressés sans avancer la position dans le fichier. Au " -"plus une seule lecture sur le flux compressé est faite pour satisfaire " -"l'appel. Le nombre d'octets retournés peut être supérieur ou inférieur au " -"nombre demandé." - -#: library/gzip.rst:138 -msgid "" -"While calling :meth:`peek` does not change the file position of " -"the :class:`GzipFile`, it may change the position of the underlying file " -"object (e.g. if the :class:`GzipFile` was constructed with the *fileobj* " -"parameter)." -msgstr "" -"Bien que l'appel à :meth:`peek` ne change pas la position dans le fichier de " -"l'objet :class:`GzipFile`, il peut changer la position de l'objet de fichier " -"sous-jacent (par exemple, si l'instance de :class:`GzipFile` a été " -"construite avec le paramètre *fileobj*)." - -#: library/gzip.rst:147 -msgid "``'rb'`` for reading and ``'wb'`` for writing." -msgstr "" - -#: library/gzip.rst:149 -msgid "In previous versions it was an integer ``1`` or ``2``." -msgstr "" - -#: library/gzip.rst:154 -#, fuzzy -msgid "" -"When decompressing, this attribute is set to the last timestamp in the most " -"recently read header. It is an integer, holding the number of seconds since " -"the Unix epoch (00:00:00 UTC, January 1, 1970). The initial value before " -"reading any headers is ``None``." -msgstr "" -"Lors de la décompression, la valeur du champ de date de dernière " -"modification dans le dernier en-tête lu peut être lue à partir de cet " -"attribut, comme un entier. La valeur initiale avant lecture d'un en-tête est " -"``None``." - -#: library/gzip.rst:161 -msgid "" -"The path to the gzip file on disk, as a :class:`str` or :class:`bytes`. " -"Equivalent to the output of :func:`os.fspath` on the original input path, " -"with no other normalization, resolution or expansion." -msgstr "" - -#: library/gzip.rst:165 -msgid "" -"Support for the :keyword:`with` statement was added, along with the *mtime* " -"constructor argument and :attr:`mtime` attribute." -msgstr "" -"Ajout de la prise en charge du mot-clef :keyword:`with`, ainsi que de " -"l'argument *mtime* du constructeur et de l'attribut :attr:`mtime`." - -#: library/gzip.rst:169 -msgid "Support for zero-padded and unseekable files was added." -msgstr "" -"Ajout de la prise en charge des fichiers non navigables ou commençant par " -"des octets nuls." - -#: library/gzip.rst:172 -msgid "The :meth:`io.BufferedIOBase.read1` method is now implemented." -msgstr "La méthode :meth:`io.BufferedIOBase.read1` est désormais implémentée." - -#: library/gzip.rst:175 -msgid "Added support for the ``'x'`` and ``'xb'`` modes." -msgstr "Ajout de la prise en charge des modes ``'x'`` et ``'xb'``." - -#: library/gzip.rst:178 -msgid "" -"Added support for writing arbitrary :term:`bytes-like objects `. The :meth:`~io.BufferedIOBase.read` method now accepts an argument " -"of ``None``." -msgstr "" -"Ajout de la prise en charge de l'écriture d'objets :term:`bytes-like objects " -"` arbitraires. La méthode :meth:`~io.BufferedIOBase.read` " -"accepte désormais un argument de valeur ``None``." - -#: library/gzip.rst:187 -msgid "" -"Opening :class:`GzipFile` for writing without specifying the *mode* argument " -"is deprecated." -msgstr "" - -#: library/gzip.rst:191 -msgid "" -"Remove the ``filename`` attribute, use the :attr:`~GzipFile.name` attribute " -"instead." -msgstr "" - -#: library/gzip.rst:203 -#, fuzzy -msgid "" -"Compress the *data*, returning a :class:`bytes` object containing the " -"compressed data. *compresslevel* and *mtime* have the same meaning as in " -"the :class:`GzipFile` constructor above, but *mtime* defaults to 0 for " -"reproducible output." -msgstr "" -"Compresse les données *data*, renvoie un objet :class:`bytes` contenant les " -"données compressées. L'argument *compresslevel* a la même signification que " -"dans le constructeur de la classe :class:`GzipFile` ci-dessus." - -#: library/gzip.rst:209 -msgid "Added the *mtime* parameter for reproducible output." -msgstr "" - -#: library/gzip.rst:211 -msgid "" -"Speed is improved by compressing all data at once instead of in a streamed " -"fashion. Calls with *mtime* set to ``0`` are delegated " -"to :func:`zlib.compress` for better speed. In this situation the output may " -"contain a gzip header \"OS\" byte value other than 255 \"unknown\" as " -"supplied by the underlying zlib implementation." -msgstr "" - -#: library/gzip.rst:218 -msgid "" -"The gzip header OS byte is guaranteed to be set to 255 when this function is " -"used as was the case in 3.10 and earlier." -msgstr "" - -#: library/gzip.rst:221 -msgid "" -"The *mtime* parameter now defaults to 0 for reproducible output. For the " -"previous behaviour of using the current time, pass ``None`` to *mtime*." -msgstr "" - -#: library/gzip.rst:232 -msgid "" -"Decompress the *data*, returning a :class:`bytes` object containing the " -"uncompressed data. This function is capable of decompressing multi-member " -"gzip data (multiple gzip blocks concatenated together). When the data is " -"certain to contain only one member the :func:`zlib.decompress` function with " -"*wbits* set to 31 is faster." -msgstr "" - -#: library/gzip.rst:239 -msgid "" -"Speed is improved by decompressing members at once in memory instead of in a " -"streamed fashion." -msgstr "" - -#: library/gzip.rst:246 -msgid "Examples of usage" -msgstr "Exemples d'utilisation" - -#: library/gzip.rst:248 -msgid "Example of how to read a compressed file::" -msgstr "Exemple montrant comment lire un fichier compressé ::" - -#: library/gzip.rst:254 -msgid "Example of how to create a compressed GZIP file::" -msgstr "Exemple montrant comment créer un fichier GZIP ::" - -#: library/gzip.rst:261 -msgid "Example of how to GZIP compress an existing file::" -msgstr "" -"Exemple montrant comment compresser dans un GZIP un fichier existant ::" - -#: library/gzip.rst:269 -msgid "Example of how to GZIP compress a binary string::" -msgstr "" -"Exemple montrant comment compresser dans un GZIP un binaire dans une " -"chaîne ::" - -#: library/gzip.rst:277 -msgid "Module :mod:`zlib`" -msgstr "Module :mod:`zlib`" - -#: library/gzip.rst:278 -msgid "" -"The basic data compression module needed to support the :program:`gzip` file " -"format." -msgstr "" -"Le module de compression de données de base nécessaire pour gérer le format " -"de fichier :program:`gzip`." - -#: library/gzip.rst:281 -msgid "" -"In case gzip (de)compression is a bottleneck, the `python-isal`_ package " -"speeds up (de)compression with a mostly compatible API." -msgstr "" - -#: library/gzip.rst:291 -#, fuzzy -msgid "Command-line interface" -msgstr "Interface en ligne de commande" - -#: library/gzip.rst:293 -msgid "" -"The :mod:`!gzip` module provides a simple command line interface to compress " -"or decompress files." -msgstr "" - -#: library/gzip.rst:296 -msgid "Once executed the :mod:`!gzip` module keeps the input file(s)." -msgstr "" - -#: library/gzip.rst:300 -msgid "" -"Add a new command line interface with a usage. By default, when you will " -"execute the CLI, the default compression level is 6." -msgstr "" - -#: library/gzip.rst:304 -#, fuzzy -msgid "Command-line options" -msgstr "Options de la ligne de commande" - -#: library/gzip.rst:308 -msgid "If *file* is not specified, read from :data:`sys.stdin`." -msgstr "" - -#: library/gzip.rst:312 -msgid "Indicates the fastest compression method (less compression)." -msgstr "" - -#: library/gzip.rst:316 -msgid "Indicates the slowest compression method (best compression)." -msgstr "" - -#: library/gzip.rst:320 -msgid "Decompress the given file." -msgstr "" - -#: library/gzip.rst:324 -msgid "Show the help message." -msgstr "Affiche le message d'aide." - -#~ msgid "" -#~ "The *mtime* argument is an optional numeric timestamp to be written to " -#~ "the last modification time field in the stream when compressing. It " -#~ "should only be provided in compression mode. If omitted or ``None``, the " -#~ "current time is used. See the :attr:`mtime` attribute for more details." -#~ msgstr "" -#~ "L'argument *mtime* est un *timestamp* numérique optionnel à écrire dans " -#~ "le champ de date de dernière modification du flux durant la compression. " -#~ "Il ne doit être défini qu'en mode compression. S'il est omis ou " -#~ "``None``, la date courante est utilisée. Voir l'attribut :attr:`mtime` " -#~ "pour plus de détails." - -#~ msgid "" -#~ "All :program:`gzip` compressed streams are required to contain this " -#~ "timestamp field. Some programs, such as :program:`gunzip`\\ , make use " -#~ "of the timestamp. The format is the same as the return value " -#~ "of :func:`time.time` and the :attr:`~os.stat_result.st_mtime` attribute " -#~ "of the object returned by :func:`os.stat`." -#~ msgstr "" -#~ "Tous les flux compressés en :program:`gzip` doivent contenir ce champ " -#~ "*timestamp*. Certains programmes, comme :program:`gunzip`\\ , utilisent " -#~ "ce *timestamp*. Ce format est le même que la valeur retour " -#~ "de :func:`time.time` et l'attribut :attr:`~os.stat_result.st_mtime` de " -#~ "l'objet retourné par :func:`os.stat`." - -#~ msgid "" -#~ "Decompress the *data*, returning a :class:`bytes` object containing the " -#~ "uncompressed data." -#~ msgstr "" -#~ "Décompresse les données *data*, retourne un objet :class:`bytes` " -#~ "contenant les données décompressées." diff --git a/library/hashlib.po b/library/hashlib.po deleted file mode 100644 index 70f9e6c796..0000000000 --- a/library/hashlib.po +++ /dev/null @@ -1,1323 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-25 10:50+0200\n" -"Last-Translator: Julien Palard \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 3.6\n" - -#: library/hashlib.rst:2 -msgid ":mod:`!hashlib` --- Secure hashes and message digests" -msgstr "" -":mod:`hashlib` — Algorithmes de hachage sécurisés et synthèse de messages" - -#: library/hashlib.rst:7 -msgid "**Source code:** :source:`Lib/hashlib.py`" -msgstr "**Code source :** :source:`Lib/hashlib.py`" - -#: library/hashlib.rst:20 -#, fuzzy -msgid "" -"This module implements a common interface to many different hash algorithms. " -"Included are the FIPS secure hash algorithms SHA224, SHA256, SHA384, SHA512, " -"(defined in `the FIPS 180-4 standard`_), the SHA-3 series (defined in `the " -"FIPS 202 standard`_) as well as the legacy algorithms SHA1 (`formerly part " -"of FIPS`_) and the MD5 algorithm (defined in internet :rfc:`1321`)." -msgstr "" -"Ce module implémente une interface commune à différents algorithmes de " -"hachage sécurisés et de synthèse de messages. Sont inclus les algorithmes " -"standards FIPS de hachage SHA1, SHA224, SHA256, SHA384, et SHA512 (définis " -"dans le `le standard FIPS 180-4 `_), la série SHA-3 " -"(définis dans `le standard FIPS 202 `_), ainsi que " -"l'algorithme MD5 de RSA (défini par la :rfc:`1321`). Les termes " -"« algorithmes de hachage sécurisé » et « algorithme de synthèse de message » " -"sont interchangeables. Les anciens algorithmes étaient appelés « algorithmes " -"de synthèse de messages ». Le terme moderne est « algorithme de hachage " -"sécurisé »." - -#: library/hashlib.rst:28 -msgid "" -"If you want the adler32 or crc32 hash functions, they are available in " -"the :mod:`zlib` module." -msgstr "" -"Si vous préférez utiliser les fonctions de hachage *adler32* ou *crc32*, " -"elles sont disponibles dans le module :mod:`zlib`." - -#: library/hashlib.rst:35 -msgid "Hash algorithms" -msgstr "Algorithmes de hachage" - -#: library/hashlib.rst:37 -msgid "" -"There is one constructor method named for each type of :dfn:`hash`. All " -"return a hash object with the same simple interface. For example: " -"use :func:`sha256` to create a SHA-256 hash object. You can now feed this " -"object with :term:`bytes-like objects ` " -"(normally :class:`bytes`) using the :meth:`update` method. At " -"any point you can ask it for the :dfn:`digest` of the concatenation of the " -"data fed to it so far using the :meth:`digest()` " -"or :meth:`hexdigest()` methods." -msgstr "" -"Il y a un constructeur nommé selon chaque type de calcul d'empreinte " -"(:dfn:`hash`). Tous renvoient un objet haché avec la même interface. Par " -"exemple : utilisez :func:`sha256` pour créer un objet de calcul d'empreinte " -"avec l'algorithme SHA-256. Vous pouvez maintenant utiliser cet objet avec " -"des :term:`objets octets-compatibles ` (normalement " -"des :class:`bytes`) en utilisant la méthode :meth:`update`. À " -"tout moment vous pouvez demander l'empreinte (aussi appelée le :dfn:`digest` " -"ou le condensat) de la concaténation des données fournies en utilisant les " -"méthodes :meth:`digest()` " -"ou :meth:`hexdigest()`." - -# suit un : -#: library/hashlib.rst:45 -msgid "" -"To allow multithreading, the Python :term:`GIL` is released while computing " -"a hash supplied more than 2047 bytes of data at once in its constructor " -"or :meth:`.update` method." -msgstr "" -"pour de meilleures performances avec de multiples fils d'exécution, " -"le :term:`GIL` Python est relâché pour des données dont la taille est " -"supérieure à 2047 octets lors de leur création ou leur mise à jour " -"(méthode :meth:`.update`.)." - -#: library/hashlib.rst:52 -msgid "" -"Constructors for hash algorithms that are always present in this module " -"are :func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :func:`sha512`, :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`, :func:`blake2b`, " -"and :func:`blake2s`. :func:`md5` is normally available as well, though it " -"may be missing or blocked if you are using a rare \"FIPS compliant\" build " -"of Python. These correspond to :data:`algorithms_guaranteed`." -msgstr "" -"Les constructeurs pour les algorithmes de hachage qui sont toujours présents " -"dans ce module " -"sont :func:`sha1`, :func:`sha224`, :func:`sha256`, :func:`sha384`, :func:`sha512`, :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256`, :func:`blake2b`, " -"et :func:`blake2s`. :func:`md5` est normalement disponible aussi, mais il " -"peut être manquant ou bloqué si vous utilisez une forme rare de Python " -"« conforme FIPS ». Cette liste correspond au résultat de la " -"fonction :data:`algorithms_guaranteed`." - -#: library/hashlib.rst:60 -msgid "" -"Additional algorithms may also be available if your Python " -"distribution's :mod:`!hashlib` was linked against a build of OpenSSL that " -"provides others. Others *are not guaranteed available* on all installations " -"and will only be accessible by name via :func:`new`. " -"See :data:`algorithms_available`." -msgstr "" - -#: library/hashlib.rst:67 -msgid "" -"Some algorithms have known hash collision weaknesses (including MD5 and " -"SHA1). Refer to `Attacks on cryptographic hash algorithms`_ and the `hashlib-" -"seealso`_ section at the end of this document." -msgstr "" -"Certains algorithmes ont des faiblesses connues relatives à la collision " -"(MD5 et SHA1 inclus). Se référer à `Fonction de hachage cryptographique`_ et " -"à la section `Voir aussi`_ à la fin du document." - -# suit un : -#: library/hashlib.rst:71 -msgid "" -"SHA3 (Keccak) and SHAKE " -"constructors :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256` " -"were added. :func:`blake2b` and :func:`blake2s` were added." -msgstr "" -"les constructeurs SHA3 (Keccak) et " -"SHAKE :func:`sha3_224`, :func:`sha3_256`, :func:`sha3_384`, :func:`sha3_512`, :func:`shake_128`, :func:`shake_256` " -"ont été ajoutés. :func:`blake2b` et :func:`blake2s` ont été ajoutés." - -# suit un : -#: library/hashlib.rst:79 -msgid "" -"All hashlib constructors take a keyword-only argument *usedforsecurity* with " -"default value ``True``. A false value allows the use of insecure and blocked " -"hashing algorithms in restricted environments. ``False`` indicates that the " -"hashing algorithm is not used in a security context, e.g. as a non-" -"cryptographic one-way compression function." -msgstr "" -"tous les constructeurs de *hashlib* prennent un argument mot-clé uniquement " -"*usedforsecurity* avec la valeur par défaut ``True``. Une valeur fausse " -"permet l'utilisation d'algorithmes de hachage non sécurisés et bloqués dans " -"des environnements restreints. ``False`` indique que l'algorithme de hachage " -"ne sera pas utilisé dans un contexte de sécurité, par exemple en tant que " -"fonction de compression à sens unique non cryptographique." - -#: library/hashlib.rst:86 -msgid "Hashlib now uses SHA3 and SHAKE from OpenSSL if it provides it." -msgstr "*Hashlib* utilise désormais SHA3 et SHAKE d'OpenSSL s'il les fournit." - -#: library/hashlib.rst:89 -msgid "" -"For any of the MD5, SHA1, SHA2, or SHA3 algorithms that the linked OpenSSL " -"does not provide we fall back to a verified implementation from the `HACL\\* " -"project`_." -msgstr "" - -#: library/hashlib.rst:94 -msgid "" -"The undocumented ``string`` keyword parameter in :func:`!_hashlib.new` and " -"hash-named constructors such as :func:`!_md5.md5` is deprecated. Prefer " -"passing the initial data as a positional argument for maximum backwards " -"compatibility." -msgstr "" - -#: library/hashlib.rst:102 -msgid "Usage" -msgstr "Utilisation" - -#: library/hashlib.rst:104 -#, fuzzy -msgid "" -"To obtain the digest of the byte string ``b\"Nobody inspects the spammish " -"repetition\"``::" -msgstr "" -"Par exemple, pour obtenir l'empreinte de la chaîne ``b\"Nobody inspects the " -"spammish repetition\"`` ::" - -#: library/hashlib.rst:116 -msgid "More condensed:" -msgstr "En plus condensé :" - -#: library/hashlib.rst:122 -msgid "Constructors" -msgstr "Constructeurs" - -#: library/hashlib.rst:126 -#, fuzzy -msgid "" -"Is a generic constructor that takes the string *name* of the desired " -"algorithm as its first parameter. It also exists to allow access to the " -"above listed hashes as well as any other algorithms that your OpenSSL " -"library may offer." -msgstr "" -"Constructeur générique qui prend comme premier paramètre le nom de " -"l'algorithme désiré (*name*). Il existe pour permettre l'accès aux " -"algorithmes listés ci-dessus ainsi qu'aux autres algorithmes que votre " -"bibliothèque OpenSSL peut offrir." - -#: library/hashlib.rst:131 -#, fuzzy -msgid "Using :func:`new` with an algorithm name:" -msgstr "En utilisant :func:`new` avec un algorithme fourni par OpenSSL :" - -#: library/hashlib.rst:150 -msgid "" -"Named constructors such as these are faster than passing an algorithm name " -"to :func:`new`." -msgstr "" - -#: library/hashlib.rst:154 -msgid "Attributes" -msgstr "" - -#: library/hashlib.rst:156 -msgid "Hashlib provides the following constant module attributes:" -msgstr "*Hashlib* fournit les constantes de module suivantes :" - -#: library/hashlib.rst:160 -msgid "" -"A set containing the names of the hash algorithms guaranteed to be supported " -"by this module on all platforms. Note that 'md5' is in this list despite " -"some upstream vendors offering an odd \"FIPS compliant\" Python build that " -"excludes it." -msgstr "" -"Ensemble contenant les noms des algorithmes de hachage garantis d'être " -"implémentés par ce module sur toutes les plate-formes. Notez que *md5* est " -"dans cette liste bien que certains éditeurs diffusent une implémentation " -"Python dont la bibliothèque « compatible FIPS » le bloque." - -#: library/hashlib.rst:169 -msgid "" -"A set containing the names of the hash algorithms that are available in the " -"running Python interpreter. These names will be recognized when passed " -"to :func:`new`. :attr:`algorithms_guaranteed` will always be a subset. The " -"same algorithm may appear multiple times in this set under different names " -"(thanks to OpenSSL)." -msgstr "" -"Ensemble contenant les noms des algorithmes de hachage disponibles dans " -"l'interpréteur Python. Ces noms sont reconnus lorsqu'ils sont passés à la " -"fonction :func:`new`. :attr:`algorithms_guaranteed` est toujours un sous-" -"ensemble. Le même algorithme peut apparaître plusieurs fois dans cet " -"ensemble sous un nom différent (grâce à OpenSSL)." - -#: library/hashlib.rst:178 -msgid "Hash Objects" -msgstr "Objets de calcul d'empreinte" - -#: library/hashlib.rst:180 -msgid "" -"The following values are provided as constant attributes of the hash objects " -"returned by the constructors:" -msgstr "" -"Les valeurs suivantes sont fournies en tant qu'attributs constants des " -"objets de calcul d'empreintes renvoyés par les constructeurs :" - -#: library/hashlib.rst:185 -msgid "The size of the resulting hash in bytes." -msgstr "La taille du *hash* résultant en octets." - -#: library/hashlib.rst:189 -msgid "The internal block size of the hash algorithm in bytes." -msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." - -#: library/hashlib.rst:191 -msgid "A hash object has the following attributes:" -msgstr "L'objet de hachage possède les attributs suivants :" - -#: library/hashlib.rst:195 -msgid "" -"The canonical name of this hash, always lowercase and always suitable as a " -"parameter to :func:`new` to create another hash of this type." -msgstr "" -"Le nom canonique de cette fonction de hachage, toujours en minuscule et que " -"vous pouvez toujours transmettre à la fonction :func:`new` pour créer un " -"autre objet de calcul d'empreinte de ce type." - -# suit un : -#: library/hashlib.rst:198 -msgid "" -"The name attribute has been present in CPython since its inception, but " -"until Python 3.4 was not formally specified, so may not exist on some " -"platforms." -msgstr "" -"l'attribut *name* est présent dans CPython depuis sa création, mais n'était " -"pas spécifié formellement jusqu'à Python 3.4, il peut ne pas exister sur " -"certaines plate-formes." - -#: library/hashlib.rst:203 -msgid "A hash object has the following methods:" -msgstr "L'objet de calcul d'empreinte possède les méthodes suivantes :" - -#: library/hashlib.rst:208 -msgid "" -"Update the hash object with the :term:`bytes-like object`. Repeated calls " -"are equivalent to a single call with the concatenation of all the arguments: " -"``m.update(a); m.update(b)`` is equivalent to ``m.update(a+b)``." -msgstr "" -"Met à jour l'objet de hachage avec :term:`bytes-like object`. Les appels " -"répétés sont équivalents à un simple appel avec la concaténation de tous les " -"arguments : ``m.update(a); m.update(b)`` est équivalent à ``m.update(a+b)``." - -#: library/hashlib.rst:216 -msgid "" -"Return the digest of the data passed to the :meth:`update` method so far. " -"This is a bytes object of size :attr:`digest_size` which may contain bytes " -"in the whole range from 0 to 255." -msgstr "" -"Renvoie l'empreinte (le *hash*) des données passées à la " -"méthode :meth:`update`. C'est un objet de type *bytes* de " -"taille :attr:`digest_size` qui contient des octets dans l'intervalle 0 à 255." - -#: library/hashlib.rst:223 -msgid "" -"Like :meth:`digest` except the digest is returned as a string object of " -"double length, containing only hexadecimal digits. This may be used to " -"exchange the value safely in email or other non-binary environments." -msgstr "" -"Comme la méthode :meth:`digest` sauf que l'empreinte renvoyée est une chaîne " -"de caractères dont la longueur est double, contenant seulement des chiffres " -"hexadécimaux. Elle peut être utilisée pour échanger sans risque des valeurs " -"dans les *e-mails* ou dans les environnements non binaires." - -#: library/hashlib.rst:230 -msgid "" -"Return a copy (\"clone\") of the hash object. This can be used to " -"efficiently compute the digests of data sharing a common initial substring." -msgstr "" -"Renvoie une copie (\"clone\") de l'objet de calcul de hachage. Cela peut " -"être utilisé pour calculer efficacement des empreintes de données qui " -"commencent par la même sous-chaine." - -#: library/hashlib.rst:235 -msgid "SHAKE variable length digests" -msgstr "Empreintes de messages de taille variable SHAKE" - -#: library/hashlib.rst:240 -msgid "" -"The :func:`shake_128` and :func:`shake_256` algorithms provide variable " -"length digests with length_in_bits//2 up to 128 or 256 bits of security. As " -"such, their digest methods require a length. Maximum length is not limited " -"by the SHAKE algorithm." -msgstr "" -"Les algorithmes :func:`shake_128` et :func:`shake_256` produisent des " -"empreintes (ou condensats) de longueur variable avec des " -"``longueurs_en_bits // 2`` jusqu'à 128 ou 256 bits. Leurs méthodes de calcul " -"d'empreinte requièrent une longueur. Les longueurs maximales ne sont pas " -"limitées par l'algorithme SHAKE." - -#: library/hashlib.rst:247 -msgid "" -"Return the digest of the data passed to the :meth:`~hash.update` method so " -"far. This is a bytes object of size *length* which may contain bytes in the " -"whole range from 0 to 255." -msgstr "" -"Renvoie l'empreinte des données passées à la méthode :meth:`~hash.update`. " -"C'est un objet de type *bytes* de taille *length* qui contient des octets " -"dans l'intervalle 0 à 255." - -#: library/hashlib.rst:254 -msgid "" -"Like :meth:`digest` except the digest is returned as a string object of " -"double length, containing only hexadecimal digits. This may be used to " -"exchange the value in email or other non-binary environments." -msgstr "" -"Comme la méthode :meth:`digest` sauf que l'empreinte renvoyée est une chaîne " -"de caractères dont la longueur est double, contenant seulement des chiffres " -"hexadécimaux. Elle peut être utilisée pour échanger sans risque des valeurs " -"dans les *e-mails* ou dans les environnements non binaires." - -#: library/hashlib.rst:258 -msgid "Example use:" -msgstr "Exemple :" - -#: library/hashlib.rst:265 -msgid "File hashing" -msgstr "Calcul d'empreinte (ou hachage) de fichiers" - -#: library/hashlib.rst:267 -msgid "" -"The hashlib module provides a helper function for efficient hashing of a " -"file or file-like object." -msgstr "" -"Le module *hashlib* fournit une fonction utilitaire pour calculer " -"efficacement l'empreinte (aussi appelée condensat) d'un fichier ou d'un " -"objet fichier-compatible." - -#: library/hashlib.rst:272 -msgid "" -"Return a digest object that has been updated with contents of file object." -msgstr "" -"Renvoie un objet de calcul d'empreinte qui a été mis à jour avec le contenu " -"de *fileobj*." - -#: library/hashlib.rst:274 -#, fuzzy -msgid "" -"*fileobj* must be a file-like object opened for reading in binary mode. It " -"accepts file objects from builtin :func:`open`, :class:`~io.BytesIO` " -"instances, SocketIO objects from :meth:`socket.socket.makefile`, and " -"similar. *fileobj* must be opened in blocking mode, otherwise " -"a :exc:`BlockingIOError` may be raised." -msgstr "" -"*fileobj* doit être un objet fichier-compatible ouvert en lecture en mode " -"binaire. Sont acceptés les instances d'objets fichiers produites par la " -"fonction native :func:`open`, :class:`~io.BytesIO`, les objets connecteurs " -"produits par :meth:`socket.socket.makefile` et similaires. La fonction peut " -"court-circuiter les entrées-sorties de Python et utiliser directement le " -"descripteur de fichier de :meth:`~io.IOBase.fileno`. Vous devez supposer que " -"*fileobj* est dans un état inconnu après le retour de cette fonction ou si " -"elle a levé une exception. C'est à l'appelant de fermer *fileobj*." - -#: library/hashlib.rst:280 -#, fuzzy -msgid "" -"The function may bypass Python's I/O and use the file descriptor " -"from :meth:`~io.IOBase.fileno` directly. *fileobj* must be assumed to be in " -"an unknown state after this function returns or raises. It is up to the " -"caller to close *fileobj*." -msgstr "" -"*fileobj* doit être un objet fichier-compatible ouvert en lecture en mode " -"binaire. Sont acceptés les instances d'objets fichiers produites par la " -"fonction native :func:`open`, :class:`~io.BytesIO`, les objets connecteurs " -"produits par :meth:`socket.socket.makefile` et similaires. La fonction peut " -"court-circuiter les entrées-sorties de Python et utiliser directement le " -"descripteur de fichier de :meth:`~io.IOBase.fileno`. Vous devez supposer que " -"*fileobj* est dans un état inconnu après le retour de cette fonction ou si " -"elle a levé une exception. C'est à l'appelant de fermer *fileobj*." - -#: library/hashlib.rst:285 -msgid "" -"*digest* must either be a hash algorithm name as a *str*, a hash " -"constructor, or a callable that returns a hash object." -msgstr "" -"*digest* doit être un nom d'algorithme de hachage fourni en tant que *str*, " -"un constructeur de hachage ou un appelable qui renvoie un objet de hachage." - -#: library/hashlib.rst:288 -msgid "Example:" -msgstr "Exemple :" - -#: library/hashlib.rst:309 -msgid "" -"Now raises a :exc:`BlockingIOError` if the file is opened in non-blocking " -"mode. Previously, spurious null bytes were added to the digest." -msgstr "" - -#: library/hashlib.rst:315 -msgid "Key derivation" -msgstr "Dérivation de clé" - -#: library/hashlib.rst:317 -msgid "" -"Key derivation and key stretching algorithms are designed for secure " -"password hashing. Naive algorithms such as ``sha1(password)`` are not " -"resistant against brute-force attacks. A good password hashing function must " -"be tunable, slow, and include a `salt `_." -msgstr "" -"Les algorithmes de dérivation de clés et d'étirement de clés sont conçus " -"pour le hachage sécurisé de mots de passe. Des algorithmes naïfs comme " -"``sha1(password)`` ne sont pas résistants aux attaques par force brute. Une " -"bonne fonction de hachage doit être paramétrable, lente et inclure un " -"`salage `_." - -#: library/hashlib.rst:325 -msgid "" -"The function provides PKCS#5 password-based key derivation function 2. It " -"uses HMAC as pseudorandom function." -msgstr "" -"La fonction fournit une fonction de dérivation conforme à PKCS#5 (*Public " -"Key Cryptographic Standards #5 v2.0*). Elle utilise HMAC comme fonction de " -"génération d'un pseudo-aléa." - -#: library/hashlib.rst:328 -msgid "" -"The string *hash_name* is the desired name of the hash digest algorithm for " -"HMAC, e.g. 'sha1' or 'sha256'. *password* and *salt* are interpreted as " -"buffers of bytes. Applications and libraries should limit *password* to a " -"sensible length (e.g. 1024). *salt* should be about 16 or more bytes from a " -"proper source, e.g. :func:`os.urandom`." -msgstr "" -"La chaîne de caractères *hash_name* est le nom de l'algorithme de hachage " -"désiré pour le HMAC, par exemple ``\"sha1\"`` ou ``\"sha256\"``. *password* " -"et *salt* sont interprétés comme des tampons d'octets. Les applications et " -"bibliothèques doivent limiter *password* à une longueur raisonnable (comme " -"``1024``). *salt* doit être de 16 octets ou plus et provenir d'une source " -"correcte, e.g. :func:`os.urandom`." - -#: library/hashlib.rst:334 -msgid "" -"The number of *iterations* should be chosen based on the hash algorithm and " -"computing power. As of 2022, hundreds of thousands of iterations of SHA-256 " -"are suggested. For rationale as to why and how to choose what is best for " -"your application, read *Appendix A.2.2* of NIST-SP-800-132_. The answers on " -"the `stackexchange pbkdf2 iterations question`_ explain in detail." -msgstr "" -"Le nombre d'*itérations* doit être choisi en fonction de l'algorithme de " -"hachage et de la puissance de calcul. À partir de 2022, des centaines de " -"milliers d'itérations de SHA-256 sont suggérées. Pour savoir pourquoi et " -"comment choisir ce qui convient le mieux à votre application, lisez " -"*l'annexe A.2.2* du NIST-SP-800-132_ (ressource en anglais). Les réponses " -"contenues dans la question sur le site *stackexchange* `nombre d'itérations " -"recommandées lorsqu'on utilise pbkdf2`_ (page en anglais) expliquent tout en " -"détail." - -#: library/hashlib.rst:340 -msgid "" -"*dklen* is the length of the derived key in bytes. If *dklen* is ``None`` " -"then the digest size of the hash algorithm *hash_name* is used, e.g. 64 for " -"SHA-512." -msgstr "" -"*dklen* est la longueur de la clé dérivée. Si *dklen* vaut ``None`` alors " -"Python utilise la taille du condensat produit par l'algorithme de hachage " -"*hash_name*, par exemple 64 pour SHA-512." - -#: library/hashlib.rst:349 -msgid "Function only available when Python is compiled with OpenSSL." -msgstr "" - -#: library/hashlib.rst:353 -msgid "" -"Function now only available when Python is built with OpenSSL. The slow pure " -"Python implementation has been removed." -msgstr "" - -#: library/hashlib.rst:359 -msgid "" -"The function provides scrypt password-based key derivation function as " -"defined in :rfc:`7914`." -msgstr "" -"La fonction fournit la fonction de dérivation de clé *scrypt* comme définie " -"dans la :rfc:`7914`." - -#: library/hashlib.rst:362 -msgid "" -"*password* and *salt* must be :term:`bytes-like objects `. Applications and libraries should limit *password* to a sensible " -"length (e.g. 1024). *salt* should be about 16 or more bytes from a proper " -"source, e.g. :func:`os.urandom`." -msgstr "" -"*password* et *salt* doivent être des :term:`objets octets-compatibles " -"`. Les applications et bibliothèques doivent limiter " -"*password* à une longueur raisonnable (par ex. 1024). *salt* doit être de 16 " -"octets ou plus et provenir d'une source correcte, par ex. :func:`os.urandom`." - -#: library/hashlib.rst:367 -msgid "" -"*n* is the CPU/Memory cost factor, *r* the block size, *p* parallelization " -"factor and *maxmem* limits memory (OpenSSL 1.1.0 defaults to 32 MiB). " -"*dklen* is the length of the derived key in bytes." -msgstr "" -"*n* est le facteur de coût CPU/Mémoire, *r* la taille de bloc, *p* le " -"facteur de parallélisation et *maxmem* limite l'utilisation de la mémoire " -"(OpenSSL 1.1.0 limite à 32 Mio par défaut). *dklen* est la longueur de la " -"clé dérivée en octets." - -#: library/hashlib.rst:377 -msgid "BLAKE2" -msgstr "BLAKE2" - -#: library/hashlib.rst:382 -msgid "" -"BLAKE2_ is a cryptographic hash function defined in :rfc:`7693` that comes " -"in two flavors:" -msgstr "" -"BLAKE2_ est une fonction de hachage cryptographique définie dans " -"la :rfc:`7693` et disponible en deux versions :" - -#: library/hashlib.rst:385 -msgid "" -"**BLAKE2b**, optimized for 64-bit platforms and produces digests of any size " -"between 1 and 64 bytes," -msgstr "" -"**BLAKE2b**, optimisée pour les plates-formes 64 bits et produisant des " -"condensats de toutes tailles entre 1 et 64 octets," - -#: library/hashlib.rst:388 -msgid "" -"**BLAKE2s**, optimized for 8- to 32-bit platforms and produces digests of " -"any size between 1 and 32 bytes." -msgstr "" -"**BLAKE2s**, optimisée pour les plates-formes de 8 à 32 bits et produisant " -"des empreintes de toutes tailles entre 1 et 32 octets." - -#: library/hashlib.rst:391 -msgid "" -"BLAKE2 supports **keyed mode** (a faster and simpler replacement for HMAC_), " -"**salted hashing**, **personalization**, and **tree hashing**." -msgstr "" -"BLAKE2 gère diverses fonctionnalités comme le **keyed mode** (plus rapide et " -"plus simple que HMAC_), **salted hashing**, **personalization** et le **tree " -"hashing**." - -#: library/hashlib.rst:394 -#, fuzzy -msgid "" -"Hash objects from this module follow the API of standard library's :mod:`!" -"hashlib` objects." -msgstr "" -"Les objets de calcul d'empreinte de ce module suivent l'API des objets du " -"module :mod:`hashlib` de la bibliothèque standard." - -#: library/hashlib.rst:399 -msgid "Creating hash objects" -msgstr "Création d'objets de calcul d'empreinte" - -#: library/hashlib.rst:401 -msgid "New hash objects are created by calling constructor functions:" -msgstr "" -"Les nouveaux objets de calcul d'empreinte sont créés en appelant les " -"constructeurs :" - -#: library/hashlib.rst:415 -msgid "" -"These functions return the corresponding hash objects for calculating " -"BLAKE2b or BLAKE2s. They optionally take these general parameters:" -msgstr "" -"Ces fonctions produisent l'objet de calcul d'empreinte correspondant aux " -"algorithmes BLAKE2b ou BLAKE2s. Elles prennent ces paramètres optionnels :" - -#: library/hashlib.rst:418 -msgid "" -"*data*: initial chunk of data to hash, which must be :term:`bytes-like " -"object`. It can be passed only as positional argument." -msgstr "" -"*data* : morceau initial de données à hacher, qui doit être un :term:`objet " -"octets-compatible `. Il ne peut être passé que comme " -"argument positionnel." - -#: library/hashlib.rst:421 -msgid "*digest_size*: size of output digest in bytes." -msgstr "*digest_size* : taille en octets de l'empreinte produite." - -#: library/hashlib.rst:423 -msgid "" -"*key*: key for keyed hashing (up to 64 bytes for BLAKE2b, up to 32 bytes for " -"BLAKE2s)." -msgstr "" -"*key* : clé pour les codes d'authentification de message *keyed hashing* " -"(jusqu'à 64 octets pour BLAKE2b, jusqu'à 32 octets pour BLAKE2s)." - -#: library/hashlib.rst:426 -msgid "" -"*salt*: salt for randomized hashing (up to 16 bytes for BLAKE2b, up to 8 " -"bytes for BLAKE2s)." -msgstr "" -"*salt* : sel pour le hachage randomisé *randomized hashing* (jusqu'à 16 " -"octets pour BLAKE2b, jusqu'à 8 octets pour BLAKE2s)." - -#: library/hashlib.rst:429 -msgid "" -"*person*: personalization string (up to 16 bytes for BLAKE2b, up to 8 bytes " -"for BLAKE2s)." -msgstr "" -"*person* : chaîne de personnalisation (jusqu'à 16 octets pour BLAKE2b, " -"jusqu'à 8 octets pour BLAKE2s)." - -#: library/hashlib.rst:432 -msgid "The following table shows limits for general parameters (in bytes):" -msgstr "" -"Le tableau suivant présente les limites des paramètres généraux (en octets) :" - -#: library/hashlib.rst:435 -msgid "Hash" -msgstr "Hash" - -#: library/hashlib.rst:435 -msgid "digest_size" -msgstr "digest_size" - -#: library/hashlib.rst:435 -msgid "len(key)" -msgstr "len(key)" - -#: library/hashlib.rst:435 -msgid "len(salt)" -msgstr "len(salt)" - -#: library/hashlib.rst:435 -msgid "len(person)" -msgstr "len(person)" - -#: library/hashlib.rst:437 -msgid "BLAKE2b" -msgstr "BLAKE2b" - -#: library/hashlib.rst:437 -msgid "64" -msgstr "64" - -#: library/hashlib.rst:437 -msgid "16" -msgstr "16" - -#: library/hashlib.rst:438 -msgid "BLAKE2s" -msgstr "BLAKE2s" - -#: library/hashlib.rst:438 -msgid "32" -msgstr "32" - -#: library/hashlib.rst:438 -msgid "8" -msgstr "8" - -# suit un : -#: library/hashlib.rst:443 -msgid "" -"BLAKE2 specification defines constant lengths for salt and personalization " -"parameters, however, for convenience, this implementation accepts byte " -"strings of any size up to the specified length. If the length of the " -"parameter is less than specified, it is padded with zeros, thus, for " -"example, ``b'salt'`` and ``b'salt\\x00'`` is the same value. (This is not " -"the case for *key*.)" -msgstr "" -"les spécifications de BLAKE2 définissent des longueurs constantes pour les " -"sel et chaînes de personnalisation. Toutefois, par commodité, cette " -"implémentation accepte des chaînes d'octets de n'importe quelle taille " -"jusqu'à la longueur spécifiée. Si la longueur du paramètre est moindre par " -"rapport à celle spécifiée, il est complété par des zéros. Ainsi, par " -"exemple, ``b'salt'`` et ``b'salt\\x00'`` sont la même valeur (ce n'est pas " -"le cas pour *key*)." - -#: library/hashlib.rst:450 -msgid "These sizes are available as module `constants`_ described below." -msgstr "" -"Ces tailles sont disponibles en tant que `constantes`_ du module et décrites " -"ci-dessous." - -#: library/hashlib.rst:452 -msgid "" -"Constructor functions also accept the following tree hashing parameters:" -msgstr "" -"Les fonctions constructeurs acceptent aussi les paramètres suivants pour le " -"calcul d'empreintes en mode arbre :" - -#: library/hashlib.rst:454 -msgid "*fanout*: fanout (0 to 255, 0 if unlimited, 1 in sequential mode)." -msgstr "" -"*fanout* : *étalement* (0 à 255, 0 si illimité, 1 correspond au mode " -"séquentiel)." - -#: library/hashlib.rst:456 -msgid "" -"*depth*: maximal depth of tree (1 to 255, 255 if unlimited, 1 in sequential " -"mode)." -msgstr "" -"*depth* : profondeur maximale de l'arbre (1 à 255, 255 si illimité, 1 " -"correspond au mode séquentiel)." - -#: library/hashlib.rst:459 -msgid "" -"*leaf_size*: maximal byte length of leaf (0 to ``2**32-1``, 0 if unlimited " -"or in sequential mode)." -msgstr "" -"*leaf_size* : taille maximale en octets d'une feuille (0 à ``2**32-1``, 0 si " -"illimité ou en mode séquentiel)." - -#: library/hashlib.rst:462 -msgid "" -"*node_offset*: node offset (0 to ``2**64-1`` for BLAKE2b, 0 to ``2**48-1`` " -"for BLAKE2s, 0 for the first, leftmost, leaf, or in sequential mode)." -msgstr "" -"*node_offset* : décalage du nœud (0 à ``2**64-1`` pour BLAKE2b, 0 à " -"``2**48-1`` pour BLAKE2s, 0 pour la première feuille la plus à gauche, ou en " -"mode séquentiel)." - -#: library/hashlib.rst:465 -msgid "" -"*node_depth*: node depth (0 to 255, 0 for leaves, or in sequential mode)." -msgstr "" -"*node_depth* : profondeur du nœud (0 à 255, 0 pour les feuilles, ou en mode " -"séquentiel)." - -#: library/hashlib.rst:467 -msgid "" -"*inner_size*: inner digest size (0 to 64 for BLAKE2b, 0 to 32 for BLAKE2s, 0 " -"in sequential mode)." -msgstr "" -"*inner_size* : taille de l'empreinte interne (0 à 64 pour BLAKE2b, 0 à 32 " -"pour BLAKE2s, 0 en mode séquentiel)." - -#: library/hashlib.rst:470 -msgid "" -"*last_node*: boolean indicating whether the processed node is the last one " -"(``False`` for sequential mode)." -msgstr "" -"*last_node* : booléen indiquant si le nœud traité est le dernier (``False`` " -"pour le mode séquentiel)." - -#: library/hashlib.rst:473 -msgid "Explanation of tree mode parameters." -msgstr "Explication des paramètres du mode arbre." - -#: library/hashlib.rst:477 -msgid "" -"See section 2.10 in `BLAKE2 specification `_ for comprehensive review of tree hashing." -msgstr "" -"Voir la section 2.10 dans `BLAKE2 specification `_ pour une approche globale du hachage en mode arbre." - -#: library/hashlib.rst:483 -msgid "Constants" -msgstr "Constantes" - -#: library/hashlib.rst:488 -msgid "Salt length (maximum length accepted by constructors)." -msgstr "Longueur du sel (longueur maximale acceptée par les constructeurs)." - -#: library/hashlib.rst:494 -msgid "" -"Personalization string length (maximum length accepted by constructors)." -msgstr "" -"Longueur de la chaîne de personnalisation (longueur maximale acceptée par " -"les constructeurs)." - -#: library/hashlib.rst:500 -msgid "Maximum key size." -msgstr "Taille maximale de clé." - -#: library/hashlib.rst:506 -msgid "Maximum digest size that the hash function can output." -msgstr "Taille maximale du message que peut fournir la fonction de hachage." - -#: library/hashlib.rst:510 -msgid "Examples" -msgstr "Exemples" - -#: library/hashlib.rst:513 -msgid "Simple hashing" -msgstr "Hachage simple" - -#: library/hashlib.rst:515 -msgid "" -"To calculate hash of some data, you should first construct a hash object by " -"calling the appropriate constructor function (:func:`blake2b` " -"or :func:`blake2s`), then update it with the data by " -"calling :meth:`~hash.update` on the object, and, finally, get the digest out " -"of the object by calling :meth:`~hash.digest` (or :meth:`~hash.hexdigest` " -"for hex-encoded string)." -msgstr "" -"Pour calculer l'empreinte (ou *hash*) d'une quantité de données, vous devez " -"d'abord construire un objet de calcul d'empreinte en appelant la fonction " -"constructeur appropriée (:func:`blake2b` or :func:`blake2s`), ensuite le " -"mettre à jour avec les données en appelant la méthode :meth:`~hash.update` " -"sur l'objet, et, pour finir, récupérer l'empreinte du message en appelant la " -"méthode :meth:`~hash.digest` (ou :meth:`~hash.hexdigest` pour les chaînes " -"hexadécimales)." - -#: library/hashlib.rst:528 -msgid "" -"As a shortcut, you can pass the first chunk of data to update directly to " -"the constructor as the positional argument:" -msgstr "" -"En plus court, vous pouvez passer directement au constructeur, comme " -"argument positionnel, le premier morceau du message pour le mettre " -"directement à jour :" - -#: library/hashlib.rst:535 -msgid "" -"You can call :meth:`hash.update` as many times as you need to iteratively " -"update the hash:" -msgstr "" -"Vous pouvez appeler la méthode :meth:`hash.update` autant de fois que " -"nécessaire pour mettre à jour l'empreinte de manière itérative :" - -#: library/hashlib.rst:549 -msgid "Using different digest sizes" -msgstr "Production de tailles d'empreintes différentes" - -#: library/hashlib.rst:551 -msgid "" -"BLAKE2 has configurable size of digests up to 64 bytes for BLAKE2b and up to " -"32 bytes for BLAKE2s. For example, to replace SHA-1 with BLAKE2b without " -"changing the size of output, we can tell BLAKE2b to produce 20-byte digests:" -msgstr "" -"BLAKE2 permet de configurer la taille des empreintes jusqu'à 64 octets pour " -"BLAKE2b et jusqu'à 32 octets pour BLAKE2s. Par exemple, pour remplacer SHA-1 " -"par BLAKE2b sans changer la taille de la sortie, nous pouvons dire à BLAKE2b " -"de produire une empreinte de 20 octets :" - -#: library/hashlib.rst:565 -msgid "" -"Hash objects with different digest sizes have completely different outputs " -"(shorter hashes are *not* prefixes of longer hashes); BLAKE2b and BLAKE2s " -"produce different outputs even if the output length is the same:" -msgstr "" -"Les objets de calcul d'empreinte initialisés avec des tailles d'empreintes " -"différentes ont des sorties complètement différentes (les condensats courts " -"*ne sont pas* des préfixes de condensats plus longs) ; BLAKE2b et BLAKE2s " -"produisent des sorties différentes même si les longueurs de sortie sont les " -"mêmes :" - -#: library/hashlib.rst:581 -msgid "Keyed hashing" -msgstr "Hachage avec clé – Code d'authentification de message" - -#: library/hashlib.rst:583 -msgid "" -"Keyed hashing can be used for authentication as a faster and simpler " -"replacement for `Hash-based message authentication code `_ (HMAC). BLAKE2 can be securely used in prefix-" -"MAC mode thanks to the indifferentiability property inherited from BLAKE." -msgstr "" -"Le hachage avec clé (*keyed hashing* en anglais) est une alternative plus " -"simple et plus rapide à un `code d’authentification de message de hachage à " -"clé `_ " -"(HMAC). BLAKE2 peut être utilisé de manière sécurisée dans le mode préfixe " -"MAC grâce à la propriété d'indifférentiabilité héritée de BLAKE." - -#: library/hashlib.rst:589 -msgid "" -"This example shows how to get a (hex-encoded) 128-bit authentication code " -"for message ``b'message data'`` with key ``b'pseudorandom key'``::" -msgstr "" -"Cet exemple montre comment obtenir un code d'authentification de message de " -"128 bits (en hexadécimal) pour un message ``b'message data'`` avec la clé " -"``b'pseudorandom key'`` ::" - -#: library/hashlib.rst:599 -msgid "" -"As a practical example, a web application can symmetrically sign cookies " -"sent to users and later verify them to make sure they weren't tampered with::" -msgstr "" -"Comme exemple pratique, une application web peut chiffrer symétriquement les " -"*cookies* envoyés aux utilisateurs et les vérifier plus tard pour être " -"certaine qu'ils n'ont pas été altérés ::" - -#: library/hashlib.rst:628 -msgid "" -"Even though there's a native keyed hashing mode, BLAKE2 can, of course, be " -"used in HMAC construction with :mod:`hmac` module::" -msgstr "" -"Même s'il possède en natif la création de code d'authentification de message " -"(MAC), BLAKE2 peut, bien sûr, être utilisé pour construire un HMAC en " -"combinaison avec le module :mod:`hmac` ::" - -#: library/hashlib.rst:639 -msgid "Randomized hashing" -msgstr "Hachage randomisé" - -#: library/hashlib.rst:641 -msgid "" -"By setting *salt* parameter users can introduce randomization to the hash " -"function. Randomized hashing is useful for protecting against collision " -"attacks on the hash function used in digital signatures." -msgstr "" -"En définissant le paramètre *salt* les utilisateurs peuvent introduire de " -"l'aléatoire dans la fonction de hachage. Le hachage randomisé est utile pour " -"se protéger des attaques par collisions sur les fonctions de hachage " -"utilisées dans les signatures numériques." - -#: library/hashlib.rst:645 -msgid "" -"Randomized hashing is designed for situations where one party, the message " -"preparer, generates all or part of a message to be signed by a second party, " -"the message signer. If the message preparer is able to find cryptographic " -"hash function collisions (i.e., two messages producing the same hash value), " -"then they might prepare meaningful versions of the message that would " -"produce the same hash value and digital signature, but with different " -"results (e.g., transferring $1,000,000 to an account, rather than $10). " -"Cryptographic hash functions have been designed with collision resistance as " -"a major goal, but the current concentration on attacking cryptographic hash " -"functions may result in a given cryptographic hash function providing less " -"collision resistance than expected. Randomized hashing offers the signer " -"additional protection by reducing the likelihood that a preparer can " -"generate two or more messages that ultimately yield the same hash value " -"during the digital signature generation process --- even if it is practical " -"to find collisions for the hash function. However, the use of randomized " -"hashing may reduce the amount of security provided by a digital signature " -"when all portions of the message are prepared by the signer." -msgstr "" -"Le hachage aléatoire est conçu pour les situations où une partie, le " -"préparateur du message, génère tout ou partie d'un message à signer par une " -"seconde partie, le signataire du message. Si le préparateur du message est " -"capable de trouver des collisions sur la fonction cryptographique de hachage " -"(c.-à-d. deux messages produisant la même valeur une fois hachés), alors il " -"peut préparer plusieurs versions du message, ayant un sens, qui produiront " -"les mêmes empreintes et même signature mais avec des résultats différents " -"(par exemple transférer 1 000 000 $ sur un compte plutôt que 10 $). Les " -"fonctions cryptographiques de hachage ont été conçues avec comme but premier " -"de résister aux collisions, mais la concentration actuelle d'attaques sur " -"les fonctions de hachage peut avoir pour conséquence qu'une fonction de " -"hachage donnée soit moins résistante qu'attendu. Le hachage aléatoire offre " -"au signataire une protection supplémentaire en réduisant la probabilité que " -"le préparateur puisse générer deux messages ou plus qui renverront la même " -"empreinte lors du processus de génération de la signature — même s'il existe " -"un moyen pratique de trouver des collisions sur la fonction de hachage. " -"Toutefois, l'utilisation du hachage aléatoire peut réduire le niveau de " -"sécurité fourni par une signature numérique si tous les morceaux du message " -"sont préparés par le signataire." - -#: library/hashlib.rst:664 -msgid "" -"(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_)" -msgstr "" -"(`NIST SP-800-106 \"Randomized Hashing for Digital Signatures\" `_, article en anglais)" - -#: library/hashlib.rst:667 -msgid "" -"In BLAKE2 the salt is processed as a one-time input to the hash function " -"during initialization, rather than as an input to each compression function." -msgstr "" -"Dans BLAKE2, le sel est passé une seule fois lors de l'initialisation de la " -"fonction de hachage, plutôt qu'à chaque appel de la fonction de hachage." - -#: library/hashlib.rst:672 -msgid "" -"*Salted hashing* (or just hashing) with BLAKE2 or any other general-purpose " -"cryptographic hash function, such as SHA-256, is not suitable for hashing " -"passwords. See `BLAKE2 FAQ `_ for more " -"information." -msgstr "" -"*Salted hashing* (ou un hachage simple) avec BLAKE2 ou toute autre fonction " -"de hachage générique, comme SHA-256, ne convient pas pour obscurcir des mots " -"de passe. Voir `la FAQ BLAKE2 `_ (page en anglais) " -"pour plus d'informations." - -#: library/hashlib.rst:695 -msgid "Personalization" -msgstr "Personnalisation" - -#: library/hashlib.rst:697 -msgid "" -"Sometimes it is useful to force hash function to produce different digests " -"for the same input for different purposes. Quoting the authors of the Skein " -"hash function:" -msgstr "" -"Parfois il est utile de forcer une fonction de hachage à produire " -"différentes empreintes de message d'une même entrée pour différentes " -"utilisations. Pour citer les auteurs de la fonction de hachage Skein :" - -#: library/hashlib.rst:701 -msgid "" -"We recommend that all application designers seriously consider doing this; " -"we have seen many protocols where a hash that is computed in one part of the " -"protocol can be used in an entirely different part because two hash " -"computations were done on similar or related data, and the attacker can " -"force the application to make the hash inputs the same. Personalizing each " -"hash function used in the protocol summarily stops this type of attack." -msgstr "" -"Nous recommandons que tous les développeurs d'application considèrent " -"sérieusement de faire cela ; nous avons vu de nombreux protocoles où une " -"empreinte était calculée à un endroit du protocole pour être utilisée à un " -"autre endroit car deux calculs d'empreintes étaient réalisés sur des données " -"similaires ou liées, et qu'un attaquant peut forcer une application à " -"prendre en entrée la même empreinte. Personnaliser chaque fonction de " -"hachage utilisée dans le protocole stoppe immédiatement ce genre d'attaque." - -#: library/hashlib.rst:708 -msgid "" -"(`The Skein Hash Function Family `_, p. 21)" -msgstr "" -"(`The Skein Hash Function Family `_, p. 21, article en anglais)" - -#: library/hashlib.rst:712 -msgid "BLAKE2 can be personalized by passing bytes to the *person* argument::" -msgstr "" -"BLAKE2 peut être personnalisé en passant des *bytes* à l'argument *person* ::" - -#: library/hashlib.rst:726 -msgid "" -"Personalization together with the keyed mode can also be used to derive " -"different keys from a single one." -msgstr "" -"La personnalisation et le *keyed mode* peuvent être utilisés ensemble pour " -"dériver différentes clés à partir d'une seule." - -#: library/hashlib.rst:740 -msgid "Tree mode" -msgstr "Mode Arbre" - -#: library/hashlib.rst:742 -msgid "Here's an example of hashing a minimal tree with two leaf nodes::" -msgstr "" -"L'exemple ci-dessous présente comment hacher un arbre minimal avec deux " -"nœuds terminaux ::" - -#: library/hashlib.rst:748 -msgid "" -"This example uses 64-byte internal digests, and returns the 32-byte final " -"digest::" -msgstr "" -"Cet exemple utilise en interne des empreintes de 64 octets, et produit " -"finalement des empreintes 32 octets ::" - -#: library/hashlib.rst:778 -msgid "Credits" -msgstr "Crédits" - -#: library/hashlib.rst:780 -msgid "" -"BLAKE2_ was designed by *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " -"Wilcox-O'Hearn*, and *Christian Winnerlein* based on SHA-3_ finalist BLAKE_ " -"created by *Jean-Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, and " -"*Raphael C.-W. Phan*." -msgstr "" -"BLAKE2_ a été conçu par *Jean-Philippe Aumasson*, *Samuel Neves*, *Zooko " -"Wilcox-O'Hearn*, et *Christian Winnerlein*. Il est basé la version BLAKE_ " -"qui a participé à la finale de la compétition du NIST SHA-3_ créée par *Jean-" -"Philippe Aumasson*, *Luca Henzen*, *Willi Meier*, et *Raphael C.-W. Phan*." - -#: library/hashlib.rst:785 -msgid "" -"It uses core algorithm from ChaCha_ cipher designed by *Daniel J. " -"Bernstein*." -msgstr "" -"Il utilise le cœur de l'algorithme de chiffrement de ChaCha_ conçu par " -"*Daniel J. Bernstein*." - -#: library/hashlib.rst:787 -msgid "" -"The stdlib implementation is based on pyblake2_ module. It was written by " -"*Dmitry Chestnykh* based on C implementation written by *Samuel Neves*. The " -"documentation was copied from pyblake2_ and written by *Dmitry Chestnykh*." -msgstr "" -"L'implémentation dans la bibliothèque standard est basée sur le module " -"pyblake2_. Elle a été écrite par *Dmitry Chestnykh* et est basée sur " -"l'implémentation C écrite par *Samuel Neves*. La documentation a été copiée " -"depuis pyblake2_ et écrite par *Dmitry Chestnykh*." - -#: library/hashlib.rst:791 -msgid "The C code was partly rewritten for Python by *Christian Heimes*." -msgstr "" -"Le code C a été partiellement réécrit pour Python par *Christian Heimes*." - -#: library/hashlib.rst:793 -msgid "" -"The following public domain dedication applies for both C hash function " -"implementation, extension code, and this documentation:" -msgstr "" -"Le transfert dans le domaine public s'applique pour l'implémentation C de la " -"fonction de hachage, ses extensions et cette documentation :" - -#: library/hashlib.rst:796 -msgid "" -"To the extent possible under law, the author(s) have dedicated all copyright " -"and related and neighboring rights to this software to the public domain " -"worldwide. This software is distributed without any warranty." -msgstr "" -"Tout en restant dans les limites de la loi, le(s) auteur(s) a (ont) donné " -"tous les droits d’auteur et droits connexes et voisins de ce logiciel au " -"domaine public dans le monde entier. Ce logiciel est distribué sans aucune " -"garantie." - -#: library/hashlib.rst:800 -msgid "" -"You should have received a copy of the CC0 Public Domain Dedication along " -"with this software. If not, see https://creativecommons.org/publicdomain/" -"zero/1.0/." -msgstr "" -"Vous devriez recevoir avec ce logiciel une copie de la licence *CC0 Public " -"Domain Dedication*. Sinon, voir https://creativecommons.org/publicdomain/" -"zero/1.0/." - -#: library/hashlib.rst:804 -msgid "" -"The following people have helped with development or contributed their " -"changes to the project and the public domain according to the Creative " -"Commons Public Domain Dedication 1.0 Universal:" -msgstr "" -"Les personnes suivantes ont aidé au développement ou contribué aux " -"modifications du projet et au domaine public selon la licence Creative " -"Commons Public Domain Dedication 1.0 Universal :" - -#: library/hashlib.rst:808 -msgid "*Alexandr Sokolovskiy*" -msgstr "*Alexandr Sokolovskiy*" - -#: library/hashlib.rst:829 -msgid "Module :mod:`hmac`" -msgstr "Module :mod:`hmac`" - -#: library/hashlib.rst:830 -msgid "A module to generate message authentication codes using hashes." -msgstr "" -"Un module pour générer des codes d'authentification utilisant des *hash*." - -#: library/hashlib.rst:832 -msgid "Module :mod:`base64`" -msgstr "Module :mod:`base64`" - -#: library/hashlib.rst:833 -msgid "Another way to encode binary hashes for non-binary environments." -msgstr "" -"Un autre moyen d'encoder des *hash* binaires dans des environnements non " -"binaires." - -#: library/hashlib.rst:835 -msgid "https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.180-4.pdf" -msgstr "https://nvlpubs.nist.gov/nistpubs/fips/nist.fips.180-4.pdf" - -#: library/hashlib.rst:836 -msgid "The FIPS 180-4 publication on Secure Hash Algorithms." -msgstr "La publication FIPS 180-4 sur les algorithmes de hachage sécurisés." - -#: library/hashlib.rst:838 -msgid "https://csrc.nist.gov/pubs/fips/202/final" -msgstr "https://csrc.nist.gov/pubs/fips/202/final" - -#: library/hashlib.rst:839 -msgid "The FIPS 202 publication on the SHA-3 Standard." -msgstr "La publication FIPS 202 sur le standard SHA-3." - -#: library/hashlib.rst:841 -msgid "https://www.blake2.net/" -msgstr "https://www.blake2.net/" - -#: library/hashlib.rst:842 -msgid "Official BLAKE2 website." -msgstr "Site officiel de BLAKE2." - -#: library/hashlib.rst:844 -msgid "https://en.wikipedia.org/wiki/Cryptographic_hash_function" -msgstr "https://en.wikipedia.org/wiki/Cryptographic_hash_function" - -#: library/hashlib.rst:845 -msgid "" -"Wikipedia article with information on which algorithms have known issues and " -"what that means regarding their use." -msgstr "" -"Article Wikipedia contenant les informations relatives aux algorithmes ayant " -"des problèmes et leur interprétation au regard de leur utilisation." - -#: library/hashlib.rst:848 -msgid "https://www.ietf.org/rfc/rfc8018.txt" -msgstr "https://www.ietf.org/rfc/rfc8018.txt" - -#: library/hashlib.rst:849 -msgid "PKCS #5: Password-Based Cryptography Specification Version 2.1" -msgstr "PKCS #5 : Password-Based Cryptography Specification Version 2.1" - -#: library/hashlib.rst:851 -msgid "" -"https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf" -msgstr "" -"https://nvlpubs.nist.gov/nistpubs/Legacy/SP/nistspecialpublication800-132.pdf" - -#: library/hashlib.rst:852 -msgid "NIST Recommendation for Password-Based Key Derivation." -msgstr "" -"Recommandations du NIST pour la dérivation de clé à partir de mot de passe " -"(ressource en anglais)." - -#~ msgid "OpenSSL" -#~ msgstr "OpenSSL" - -# suit un : -#~ msgid ":func:`blake2b` and :func:`blake2s` were added." -#~ msgstr "les fonctions :func:`blake2b` et :func:`blake2s` ont été ajoutées." - -# suit un : -#~ msgid "" -#~ "The Python GIL is released to allow other threads to run while hash " -#~ "updates on data larger than 2047 bytes is taking place when using hash " -#~ "algorithms supplied by OpenSSL." -#~ msgstr "" -#~ "le GIL Python est relâché pour permettre aux autres fils d'exécution de " -#~ "tourner pendant que la fonction de hachage met à jour des données plus " -#~ "longues que 2047 octets, lorsque les algorithmes fournis par OpenSSL sont " -#~ "utilisés." - -# suit un : -#~ msgid "" -#~ "A fast implementation of *pbkdf2_hmac* is available with OpenSSL. The " -#~ "Python implementation uses an inline version of :mod:`hmac`. It is about " -#~ "three times slower and doesn't release the GIL." -#~ msgstr "" -#~ "une implémentation rapide de *pbkdf2_hmac* est disponible avec OpenSSL. " -#~ "L'implémentation Python utilise une version *inline* de :mod:`hmac`. Elle " -#~ "est trois fois plus lente et ne libère pas le GIL." - -# suit un : -#~ msgid "" -#~ "Slow Python implementation of *pbkdf2_hmac* is deprecated. In the future " -#~ "the function will only be available when Python is compiled with OpenSSL." -#~ msgstr "" -#~ "l'implémentation en Python (lente) de *pbkdf2_hmac* est obsolète. À " -#~ "l'avenir, la fonction ne sera disponible que lorsque Python est compilé " -#~ "avec OpenSSL." - -# suit un : -#~ msgid "" -#~ "Feeding string objects into :meth:`update` is not supported, as hashes " -#~ "work on bytes, not on characters." -#~ msgstr "" -#~ "fournir des objets chaînes de caractères à la méthode :meth:`update` " -#~ "n'est pas implémenté, comme les fonctions de hachages travaillent sur des " -#~ "*bytes* et pas sur des caractères." - -#~ msgid "" -#~ "https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/" -#~ "2002-08-01/documents/fips180-2.pdf" -#~ msgstr "" -#~ "https://csrc.nist.gov/csrc/media/publications/fips/180/2/archive/" -#~ "2002-08-01/documents/fips180-2.pdf" - -#~ msgid "" -#~ "The number of *iterations* should be chosen based on the hash algorithm " -#~ "and computing power. As of 2013, at least 100,000 iterations of SHA-256 " -#~ "are suggested." -#~ msgstr "" -#~ "Le nombre d'*iterations* doit être choisi sur la base de l'algorithme de " -#~ "hachage et de la puissance de calcul. En 2013, au moins 100000 itérations " -#~ "de SHA-256 sont recommandées." - -#~ msgid ":ref:`Availability `: OpenSSL 1.1+." -#~ msgstr ":ref:`Disponibilité ` : OpenSSL 1.1+." diff --git a/library/heapq.po b/library/heapq.po deleted file mode 100644 index dc7da17439..0000000000 --- a/library/heapq.po +++ /dev/null @@ -1,698 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-05-10 23:09+0200\n" -"Last-Translator: \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.4.2\n" - -#: library/heapq.rst:2 -#, fuzzy -msgid ":mod:`!heapq` --- Heap queue algorithm" -msgstr ":mod:`heapq` — File de priorité basée sur un tas" - -#: library/heapq.rst:7 -msgid "**Source code:** :source:`Lib/heapq.py`" -msgstr "**Code source :** :source:`Lib/heapq.py`" - -#: library/heapq.rst:11 -msgid "" -"This module provides an implementation of the heap queue algorithm, also " -"known as the priority queue algorithm." -msgstr "" -"Ce module expose une implémentation de l'algorithme de file de priorité, " -"basée sur un tas." - -#: library/heapq.rst:14 -msgid "" -"Min-heaps are binary trees for which every parent node has a value less than " -"or equal to any of its children. We refer to this condition as the heap " -"invariant." -msgstr "" - -#: library/heapq.rst:18 -#, fuzzy -msgid "" -"For min-heaps, this implementation uses lists for which ``heap[k] <= " -"heap[2*k+1]`` and ``heap[k] <= heap[2*k+2]`` for all *k* for which the " -"compared elements exist. Elements are counted from zero. The interesting " -"property of a min-heap is that its smallest element is always the root, " -"``heap[0]``." -msgstr "" -"Les tas sont des arbres binaires pour lesquels chaque valeur portée par un " -"nœud est inférieure ou égale à celle de ses deux fils. Cette implémentation " -"utilise des tableaux pour lesquels ``tas[k] <= tas[2*k+1]`` et ``tas[k] <= " -"tas[2*k+2]`` pour tout *k*, en commençant la numérotation à zéro. Pour " -"contenter l'opérateur de comparaison, les éléments inexistants sont " -"considérés comme porteur d'une valeur infinie. L'intérêt du tas est que son " -"plus petit élément est toujours la racine, ``tas[0]``." - -#: library/heapq.rst:24 -msgid "" -"Max-heaps satisfy the reverse invariant: every parent node has a value " -"*greater* than any of its children. These are implemented as lists for " -"which ``maxheap[2*k+1] <= maxheap[k]`` and ``maxheap[2*k+2] <= maxheap[k]`` " -"for all *k* for which the compared elements exist. The root, ``maxheap[0]``, " -"contains the *largest* element; ``heap.sort(reverse=True)`` maintains the " -"max-heap invariant." -msgstr "" - -#: library/heapq.rst:31 -#, fuzzy -msgid "" -"The :mod:`!heapq` API differs from textbook heap algorithms in two aspects: " -"(a) We use zero-based indexing. This makes the relationship between the " -"index for a node and the indexes for its children slightly less obvious, but " -"is more suitable since Python uses zero-based indexing. (b) Textbooks often " -"focus on max-heaps, due to their suitability for in-place sorting. Our " -"implementation favors min-heaps as they better correspond to " -"Python :class:`lists `." -msgstr "" -"L'API ci-dessous diffère de la file de priorité classique par deux aspects : " -"(a) l'indiçage commence à zéro. Cela complexifie légèrement la relation " -"entre l'indice d'un nœud et les indices de ses fils mais est alignée avec " -"l'indiçage commençant à zéro que Python utilise. (b) La méthode *pop* " -"renvoie le plus petit élément et non le plus grand (appelé « tas-min » dans " -"les manuels scolaires ; le « tas-max » étant généralement plus courant dans " -"la littérature car il permet le classement sans tampon)." - -#: library/heapq.rst:38 -#, fuzzy -msgid "" -"These two aspects make it possible to view the heap as a regular Python list " -"without surprises: ``heap[0]`` is the smallest item, and ``heap.sort()`` " -"maintains the heap invariant!" -msgstr "" -"Ces deux points permettent d'aborder le tas comme une liste Python standard " -"sans surprise : ``heap[0]`` est le plus petit élément et ``heap.sort()`` " -"conserve l'invariant du tas !" - -#: library/heapq.rst:42 -msgid "" -"Like :meth:`list.sort`, this implementation uses only the ``<`` operator for " -"comparisons, for both min-heaps and max-heaps." -msgstr "" - -#: library/heapq.rst:45 -msgid "" -"In the API below, and in this documentation, the unqualified term *heap* " -"generally refers to a min-heap. The API for max-heaps is named using a " -"``_max`` suffix." -msgstr "" - -#: library/heapq.rst:49 -#, fuzzy -msgid "" -"To create a heap, use a list initialized as ``[]``, or transform an existing " -"list into a min-heap or max-heap using the :func:`heapify` " -"or :func:`heapify_max` functions, respectively." -msgstr "" -"Pour créer un tas, utilisez une liste initialisée à ``[]`` ou bien utilisez " -"une liste existante et transformez la en tas à l'aide de la " -"fonction :func:`heapify`." - -#: library/heapq.rst:53 -#, fuzzy -msgid "The following functions are provided for min-heaps:" -msgstr "Les fonctions suivantes sont fournies :" - -#: library/heapq.rst:58 -#, fuzzy -msgid "Transform list *x* into a min-heap, in-place, in linear time." -msgstr "" -"Transforme une liste *x* en un tas, sans utiliser de tampon et en temps " -"linéaire." - -#: library/heapq.rst:63 -#, fuzzy -msgid "" -"Push the value *item* onto the *heap*, maintaining the min-heap invariant." -msgstr "" -"Introduit la valeur *item* dans le tas *heap*, en conservant l'invariance du " -"tas." - -#: library/heapq.rst:68 -#, fuzzy -msgid "" -"Pop and return the smallest item from the *heap*, maintaining the min-heap " -"invariant. If the heap is empty, :exc:`IndexError` is raised. To access " -"the smallest item without popping it, use ``heap[0]``." -msgstr "" -"Extraie le plus petit élément de *heap* en préservant l'invariant du tas. Si " -"le tas est vide, une exception :exc:`IndexError` est levée. Pour accéder au " -"plus petit élément sans le retirer, utilisez ``heap[0]``." - -#: library/heapq.rst:75 -msgid "" -"Push *item* on the heap, then pop and return the smallest item from the " -"*heap*. The combined action runs more efficiently than :func:`heappush` " -"followed by a separate call to :func:`heappop`." -msgstr "" -"Introduit l'élément *item* dans le tas, puis extraie le plus petit élément " -"de *heap*. Cette action combinée est plus efficace que :func:`heappush` " -"suivie par un appel séparé à :func:`heappop`." - -#: library/heapq.rst:82 -msgid "" -"Pop and return the smallest item from the *heap*, and also push the new " -"*item*. The heap size doesn't change. If the heap is " -"empty, :exc:`IndexError` is raised." -msgstr "" -"Extraie le plus petit élément de *heap* et introduit le nouvel élément " -"*item*. La taille du tas ne change pas. Si le tas est vide, une " -"exception :exc:`IndexError` est levée." - -#: library/heapq.rst:85 -msgid "" -"This one step operation is more efficient than a :func:`heappop` followed " -"by :func:`heappush` and can be more appropriate when using a fixed-size " -"heap. The pop/push combination always returns an element from the heap and " -"replaces it with *item*." -msgstr "" -"Cette opération en une étape est plus efficace qu'un appel à :func:`heappop` " -"suivi d'un appel à :func:`heappush` et est plus appropriée lorsque le tas " -"est de taille fixe. La combinaison *pop*/*push* renvoie toujours un élément " -"du tas et le remplace par *item*." - -#: library/heapq.rst:90 -msgid "" -"The value returned may be larger than the *item* added. If that isn't " -"desired, consider using :func:`heappushpop` instead. Its push/pop " -"combination returns the smaller of the two values, leaving the larger value " -"on the heap." -msgstr "" -"La valeur renvoyée peut être plus grande que l'élément *item* ajouté. Si " -"cela n'est pas souhaitable, utilisez plutôt :func:`heappushpop` à la place. " -"Sa combinaison *push*/*pop* renvoie le plus petit élément des deux valeurs " -"et laisse la plus grande sur le tas." - -#: library/heapq.rst:96 -#, fuzzy -msgid "For max-heaps, the following functions are provided:" -msgstr "Les fonctions suivantes sont fournies :" - -#: library/heapq.rst:101 -#, fuzzy -msgid "Transform list *x* into a max-heap, in-place, in linear time." -msgstr "" -"Transforme une liste *x* en un tas, sans utiliser de tampon et en temps " -"linéaire." - -#: library/heapq.rst:108 -#, fuzzy -msgid "" -"Push the value *item* onto the max-heap *heap*, maintaining the max-heap " -"invariant." -msgstr "" -"Introduit la valeur *item* dans le tas *heap*, en conservant l'invariance du " -"tas." - -#: library/heapq.rst:116 -#, fuzzy -msgid "" -"Pop and return the largest item from the max-heap *heap*, maintaining the " -"max-heap invariant. If the max-heap is empty, :exc:`IndexError` is raised. " -"To access the largest item without popping it, use ``maxheap[0]``." -msgstr "" -"Extraie le plus petit élément de *heap* en préservant l'invariant du tas. Si " -"le tas est vide, une exception :exc:`IndexError` est levée. Pour accéder au " -"plus petit élément sans le retirer, utilisez ``heap[0]``." - -#: library/heapq.rst:125 -#, fuzzy -msgid "" -"Push *item* on the max-heap *heap*, then pop and return the largest item " -"from *heap*. The combined action runs more efficiently " -"than :func:`heappush_max` followed by a separate call to :func:`heappop_max`." -msgstr "" -"Introduit l'élément *item* dans le tas, puis extraie le plus petit élément " -"de *heap*. Cette action combinée est plus efficace que :func:`heappush` " -"suivie par un appel séparé à :func:`heappop`." - -#: library/heapq.rst:135 -#, fuzzy -msgid "" -"Pop and return the largest item from the max-heap *heap* and also push the " -"new *item*. The max-heap size doesn't change. If the max-heap is " -"empty, :exc:`IndexError` is raised." -msgstr "" -"Extraie le plus petit élément de *heap* et introduit le nouvel élément " -"*item*. La taille du tas ne change pas. Si le tas est vide, une " -"exception :exc:`IndexError` est levée." - -#: library/heapq.rst:140 -msgid "" -"The value returned may be smaller than the *item* added. Refer to the " -"analogous function :func:`heapreplace` for detailed usage notes." -msgstr "" - -#: library/heapq.rst:146 -msgid "The module also offers three general purpose functions based on heaps." -msgstr "" -"Ce module contient également trois fonctions génériques utilisant les tas." - -#: library/heapq.rst:151 -msgid "" -"Merge multiple sorted inputs into a single sorted output (for example, merge " -"timestamped entries from multiple log files). Returns an :term:`iterator` " -"over the sorted values." -msgstr "" -"Fusionne plusieurs entrées ordonnées en une unique sortie ordonnée (par " -"exemple, fusionne des entrées datées provenant de multiples journaux " -"applicatifs). Renvoie un :term:`iterator` sur les valeurs ordonnées." - -#: library/heapq.rst:155 -msgid "" -"Similar to ``sorted(itertools.chain(*iterables))`` but returns an iterable, " -"does not pull the data into memory all at once, and assumes that each of the " -"input streams is already sorted (smallest to largest)." -msgstr "" -"Similaire à ``sorted(itertools.chain(*iterables))`` mais renvoie un " -"itérable, ne stocke pas toutes les données en mémoire en une fois et suppose " -"que chaque flux d'entrée est déjà classé (en ordre croissant)." - -#: library/heapq.rst:159 -msgid "" -"Has two optional arguments which must be specified as keyword arguments." -msgstr "A deux arguments optionnels qui doivent être fournis par mot clef." - -#: library/heapq.rst:161 -msgid "" -"*key* specifies a :term:`key function` of one argument that is used to " -"extract a comparison key from each input element. The default value is " -"``None`` (compare the elements directly)." -msgstr "" -"*key* spécifie une :term:`key function` d'un argument utilisée pour extraire " -"une clef de comparaison de chaque élément de la liste. La valeur par défaut " -"est ``None`` (compare les éléments directement)." - -#: library/heapq.rst:165 -msgid "" -"*reverse* is a boolean value. If set to ``True``, then the input elements " -"are merged as if each comparison were reversed. To achieve behavior similar " -"to ``sorted(itertools.chain(*iterables), reverse=True)``, all iterables must " -"be sorted from largest to smallest." -msgstr "" -"*reverse* est une valeur booléenne. Si elle est ``True``, la liste " -"d'éléments est fusionnée comme si toutes les comparaisons étaient inversées. " -"Pour obtenir un comportement similaire à " -"``sorted(itertools.chain(*iterables), reverse=True)``, tous les itérables " -"doivent être classés par ordre décroissant." - -#: library/heapq.rst:170 -msgid "Added the optional *key* and *reverse* parameters." -msgstr "Ajout des paramètres optionnels *key* et *reverse*." - -#: library/heapq.rst:176 -msgid "" -"Return a list with the *n* largest elements from the dataset defined by " -"*iterable*. *key*, if provided, specifies a function of one argument that " -"is used to extract a comparison key from each element in *iterable* (for " -"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key, " -"reverse=True)[:n]``." -msgstr "" -"Renvoie une liste contenant les *n* plus grands éléments du jeu de données " -"défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une " -"fonction à un argument qui est utilisée pour extraire la clé de comparaison " -"de chaque élément dans *iterable* (par exemple, ``key=str.lower``). " -"Équivalent à : ``sorted(iterable, key=key, reverse=True)[:n]``." - -#: library/heapq.rst:185 -msgid "" -"Return a list with the *n* smallest elements from the dataset defined by " -"*iterable*. *key*, if provided, specifies a function of one argument that " -"is used to extract a comparison key from each element in *iterable* (for " -"example, ``key=str.lower``). Equivalent to: ``sorted(iterable, key=key)" -"[:n]``." -msgstr "" -"Renvoie une liste contenant les *n* plus petits éléments du jeu de données " -"défini par *iterable*. Si l'option *key* est fournie, celle-ci spécifie une " -"fonction à un argument qui est utilisée pour extraire la clé de comparaison " -"de chaque élément dans *iterable* (par exemple, ``key=str.lower``). " -"Équivalent à : ``sorted(iterable, key=key)[:n]``." - -#: library/heapq.rst:191 -msgid "" -"The latter two functions perform best for smaller values of *n*. For larger " -"values, it is more efficient to use the :func:`sorted` function. Also, when " -"``n==1``, it is more efficient to use the built-in :func:`min` " -"and :func:`max` functions. If repeated usage of these functions is " -"required, consider turning the iterable into an actual heap." -msgstr "" -"Les deux fonctions précédentes sont les plus efficaces pour des petites " -"valeurs de *n*. Pour de grandes valeurs, il est préférable d'utiliser la " -"fonction :func:`sorted`. En outre, lorsque ``n==1``, il est plus efficace " -"d'utiliser les fonctions natives :func:`min` et :func:`max`. Si vous devez " -"utiliser ces fonctions de façon répétée, il est préférable de transformer " -"l'itérable en tas." - -#: library/heapq.rst:199 -msgid "Basic Examples" -msgstr "Exemples simples" - -#: library/heapq.rst:201 -msgid "" -"A `heapsort `_ can be implemented by " -"pushing all values onto a heap and then popping off the smallest values one " -"at a time::" -msgstr "" -"Un `tri par tas `_ peut être " -"implémenté en introduisant toutes les valeurs dans un tas puis en effectuant " -"l'extraction des éléments un par un ::" - -#: library/heapq.rst:214 -msgid "" -"This is similar to ``sorted(iterable)``, but unlike :func:`sorted`, this " -"implementation is not stable." -msgstr "" -"Ceci est similaire à ``sorted(iterable)`` mais, contrairement " -"à :func:`sorted`, cette implémentation n'est pas stable." - -#: library/heapq.rst:217 -msgid "" -"Heap elements can be tuples. This is useful for assigning comparison values " -"(such as task priorities) alongside the main record being tracked::" -msgstr "" -"Les éléments d'un tas peuvent être des *n*-uplets. C'est pratique pour " -"assigner des valeurs de comparaison (par exemple, des priorités de tâches) " -"en plus de l'élément qui est suivi ::" - -#: library/heapq.rst:230 -msgid "Other Applications" -msgstr "" - -#: library/heapq.rst:232 -msgid "" -"`Medians `_ are a measure of central " -"tendency for a set of numbers. In distributions skewed by outliers, the " -"median provides a more stable estimate than an average (arithmetic mean). A " -"running median is an `online algorithm `_ that updates continuously as new data arrives." -msgstr "" - -#: library/heapq.rst:239 -msgid "" -"A running median can be efficiently implemented by balancing two heaps, a " -"max-heap for values at or below the midpoint and a min-heap for values above " -"the midpoint. When the two heaps have the same size, the new median is the " -"average of the tops of the two heaps; otherwise, the median is at the top of " -"the larger heap::" -msgstr "" - -#: library/heapq.rst:259 -msgid "For example::" -msgstr "" - -#: library/heapq.rst:266 -msgid "Priority Queue Implementation Notes" -msgstr "Notes d'implémentation de la file de priorité" - -#: library/heapq.rst:268 -msgid "" -"A `priority queue `_ is common " -"use for a heap, and it presents several implementation challenges:" -msgstr "" -"Une `file de priorité `_ est une application courante des tas et présente " -"plusieurs défis d'implémentation :" - -#: library/heapq.rst:271 -msgid "" -"Sort stability: how do you get two tasks with equal priorities to be " -"returned in the order they were originally added?" -msgstr "" -"Stabilité du classement : comment s'assurer que deux tâches avec la même " -"priorité sont renvoyées dans l'ordre de leur ajout ?" - -#: library/heapq.rst:274 -msgid "" -"Tuple comparison breaks for (priority, task) pairs if the priorities are " -"equal and the tasks do not have a default comparison order." -msgstr "" -"La comparaison des couples (priorité, tâche) échoue si les priorités sont " -"identiques et que les tâches n'ont pas de relation d'ordre par défaut." - -#: library/heapq.rst:277 -msgid "" -"If the priority of a task changes, how do you move it to a new position in " -"the heap?" -msgstr "" -"Si la priorité d'une tâche change, comment la déplacer à sa nouvelle " -"position dans le tas ?" - -#: library/heapq.rst:280 -msgid "" -"Or if a pending task needs to be deleted, how do you find it and remove it " -"from the queue?" -msgstr "" -"Si une tâche en attente doit être supprimée, comment la trouver et la " -"supprimer de la file ?" - -#: library/heapq.rst:283 -msgid "" -"A solution to the first two challenges is to store entries as 3-element list " -"including the priority, an entry count, and the task. The entry count " -"serves as a tie-breaker so that two tasks with the same priority are " -"returned in the order they were added. And since no two entry counts are the " -"same, the tuple comparison will never attempt to directly compare two tasks." -msgstr "" -"Une solution aux deux premiers problèmes consiste à stocker les entrées sous " -"forme de liste à 3 éléments incluant la priorité, le numéro d'ajout et la " -"tâche. Le numéro d'ajout sert à briser les égalités de telle sorte que deux " -"tâches avec la même priorité sont renvoyées dans l'ordre de leur insertion. " -"Puisque deux tâches ne peuvent jamais avoir le même numéro d'ajout, la " -"comparaison des triplets ne va jamais chercher à comparer des tâches entre " -"elles." - -#: library/heapq.rst:289 -msgid "" -"Another solution to the problem of non-comparable tasks is to create a " -"wrapper class that ignores the task item and only compares the priority " -"field::" -msgstr "" -"Une autre solution au fait que les tâches ne possèdent pas de relation " -"d'ordre est de créer une classe d'encapsulation qui ignore l'élément tâche " -"et ne compare que le champ priorité ::" - -#: library/heapq.rst:300 -msgid "" -"The remaining challenges revolve around finding a pending task and making " -"changes to its priority or removing it entirely. Finding a task can be done " -"with a dictionary pointing to an entry in the queue." -msgstr "" -"Le problème restant consiste à trouver une tâche en attente et modifier sa " -"priorité ou la supprimer. Trouver une tâche peut être réalisé à l'aide d'un " -"dictionnaire pointant vers une entrée dans la file." - -#: library/heapq.rst:304 -msgid "" -"Removing the entry or changing its priority is more difficult because it " -"would break the heap structure invariants. So, a possible solution is to " -"mark the entry as removed and add a new entry with the revised priority::" -msgstr "" -"Supprimer une entrée ou changer sa priorité est plus difficile puisque cela " -"romprait l'invariant de la structure de tas. Une solution possible est de " -"marquer l'entrée comme supprimée et d'ajouter une nouvelle entrée avec sa " -"priorité modifiée ::" - -#: library/heapq.rst:338 -msgid "Theory" -msgstr "Théorie" - -#: library/heapq.rst:340 -msgid "" -"Heaps are arrays for which ``a[k] <= a[2*k+1]`` and ``a[k] <= a[2*k+2]`` for " -"all *k*, counting elements from 0. For the sake of comparison, non-existing " -"elements are considered to be infinite. The interesting property of a heap " -"is that ``a[0]`` is always its smallest element." -msgstr "" -"Les tas sont des tableaux pour lesquels ``a[k] <= a[2*k+1]`` et ``a[k] <= " -"a[2*k+2]`` pour tout *k* en comptant les éléments à partir de 0. Pour " -"simplifier la comparaison, les éléments inexistants sont considérés comme " -"étant infinis. L'intérêt des tas est que ``a[0]`` est toujours leur plus " -"petit élément." - -#: library/heapq.rst:345 -#, fuzzy -msgid "" -"The strange invariant above is meant to be an efficient memory " -"representation for a tournament. The numbers below are *k*, not ``a[k]``:" -msgstr "" -"L'invariant étrange ci-dessus est une représentation efficace en mémoire " -"d'un tournoi. Les nombres ci-dessous sont *k* et non ``a[k]`` ::" - -#: library/heapq.rst:348 -msgid "Example (min-heap) binary tree." -msgstr "" - -#: library/heapq.rst:353 -msgid "" -"In the tree above, each cell *k* is topping ``2*k+1`` and ``2*k+2``. In a " -"usual binary tournament we see in sports, each cell is the winner over the " -"two cells it tops, and we can trace the winner down the tree to see all " -"opponents s/he had. However, in many computer applications of such " -"tournaments, we do not need to trace the history of a winner. To be more " -"memory efficient, when a winner is promoted, we try to replace it by " -"something else at a lower level, and the rule becomes that a cell and the " -"two cells it tops contain three different items, but the top cell \"wins\" " -"over the two topped cells." -msgstr "" -"Dans l'arbre ci-dessus, chaque nœud *k* a pour enfants ``2*k+1`` et " -"``2*k+2``. Dans les tournois binaires habituels dans les compétitions " -"sportives, chaque nœud est le vainqueur des deux nœuds inférieurs et nous " -"pouvons tracer le chemin du vainqueur le long de l'arbre afin de voir qui " -"étaient ses adversaires. Cependant, dans de nombreuses applications " -"informatiques de ces tournois, nous n'avons pas besoin de produire " -"l'historique du vainqueur. Afin d'occuper moins de mémoire, on remplace le " -"vainqueur lors de sa promotion par un autre élément à un plus bas niveau. La " -"règle devient alors qu'un nœud et les deux nœuds qu'il chapeaute contiennent " -"trois éléments différents, mais le nœud supérieur « gagne » contre les deux " -"nœuds inférieurs." - -#: library/heapq.rst:362 -#, fuzzy -msgid "" -"If this heap invariant is protected at all time, index 0 is clearly the " -"overall winner. The simplest algorithmic way to remove it and find the " -"\"next\" winner is to move some loser (let's say cell 30 in the diagram " -"above) into the 0 position, and then percolate this new 0 down the tree, " -"exchanging values, until the invariant is re-established. This is clearly " -"logarithmic on the total number of items in the tree. By iterating over all " -"items, you get an *O*\\ (*n* log *n*) sort." -msgstr "" -"Si cet invariant de tas est vérifié à tout instant, alors l'élément à " -"l'indice 0 est le vainqueur global. L'algorithme le plus simple pour le " -"retirer et trouver le vainqueur « suivant » consiste à déplacer un perdant " -"(par exemple le nœud 30 dans le diagramme ci-dessus) à la position 0, puis à " -"faire redescendre cette nouvelle racine dans l'arbre en échangeant sa valeur " -"avec celle d'un de ses fils jusqu'à ce que l'invariant soit rétabli. Cette " -"approche a un coût logarithmique par rapport au nombre total d'éléments dans " -"l'arbre. En itérant sur tous les éléments, le classement s'effectue en O(n " -"log n) opérations." - -#: library/heapq.rst:369 -msgid "" -"A nice feature of this sort is that you can efficiently insert new items " -"while the sort is going on, provided that the inserted items are not " -"\"better\" than the last 0'th element you extracted. This is especially " -"useful in simulation contexts, where the tree holds all incoming events, and " -"the \"win\" condition means the smallest scheduled time. When an event " -"schedules other events for execution, they are scheduled into the future, so " -"they can easily go into the heap. So, a heap is a good structure for " -"implementing schedulers (this is what I used for my MIDI sequencer :-)." -msgstr "" -"Une propriété agréable de cet algorithme est qu'il est possible d'insérer " -"efficacement de nouveaux éléments en cours de classement, du moment que les " -"éléments insérés ne sont pas « meilleurs » que le dernier élément qui a été " -"extrait. Ceci s'avère très utile dans des simulations où l'arbre contient la " -"liste des événements arrivants et que la condition de « victoire » est le " -"plus petit temps d'exécution planifié. Lorsqu'un événement programme " -"l'exécution d'autres événements, ceux-ci sont planifiés pour le futur et " -"peuvent donc rejoindre le tas. Ainsi, le tas est une bonne structure pour " -"implémenter un ordonnanceur (et c'est ce que j'ai utilisé pour mon " -"séquenceur MIDI ☺)." - -#: library/heapq.rst:378 -msgid "" -"Various structures for implementing schedulers have been extensively " -"studied, and heaps are good for this, as they are reasonably speedy, the " -"speed is almost constant, and the worst case is not much different than the " -"average case. However, there are other representations which are more " -"efficient overall, yet the worst cases might be terrible." -msgstr "" -"Plusieurs structures ont été étudiées en détail pour implémenter des " -"ordonnanceurs et les tas sont bien adaptés : ils sont raisonnablement " -"rapides, leur vitesse est presque constante et le pire cas ne diffère pas " -"trop du cas moyen. S'il existe des représentations qui sont plus efficaces " -"en général, les pires cas peuvent être terriblement mauvais." - -#: library/heapq.rst:384 -msgid "" -"Heaps are also very useful in big disk sorts. You most probably all know " -"that a big sort implies producing \"runs\" (which are pre-sorted sequences, " -"whose size is usually related to the amount of CPU memory), followed by a " -"merging passes for these runs, which merging is often very cleverly " -"organised [#]_. It is very important that the initial sort produces the " -"longest runs possible. Tournaments are a good way to achieve that. If, " -"using all the memory available to hold a tournament, you replace and " -"percolate items that happen to fit the current run, you'll produce runs " -"which are twice the size of the memory for random input, and much better for " -"input fuzzily ordered." -msgstr "" -"Les tas sont également très utiles pour ordonner les données sur de gros " -"disques. Vous savez probablement qu'un gros tri implique la production de " -"séquences pré-classées (dont la taille est généralement liée à la quantité " -"de mémoire CPU disponible), suivie par une passe de fusion qui est " -"généralement organisée de façon très intelligente [#]_. Il est très " -"important que le classement initial produise des séquences les plus longues " -"possibles. Les tournois sont une bonne façon d'arriver à ce résultat. Si, en " -"utilisant toute la mémoire disponible pour stocker un tournoi, vous " -"remplacez et faites percoler les éléments qui s'avèrent acceptables pour la " -"séquence courante, vous produirez des séquences d'une taille égale au double " -"de la mémoire pour une entrée aléatoire et bien mieux pour une entrée " -"approximativement triée." - -#: library/heapq.rst:394 -msgid "" -"Moreover, if you output the 0'th item on disk and get an input which may not " -"fit in the current tournament (because the value \"wins\" over the last " -"output value), it cannot fit in the heap, so the size of the heap " -"decreases. The freed memory could be cleverly reused immediately for " -"progressively building a second heap, which grows at exactly the same rate " -"the first heap is melting. When the first heap completely vanishes, you " -"switch heaps and start a new run. Clever and quite effective!" -msgstr "" -"Qui plus est, si vous écrivez l'élément 0 sur le disque et que vous recevez " -"en entrée un élément qui n'est pas adapté au tournoi actuel (parce que sa " -"valeur « gagne » par rapport à la dernière valeur de sortie), alors il ne " -"peut pas être stocké dans le tas donc la taille de ce dernier diminue. La " -"mémoire libérée peut être réutilisée immédiatement pour progressivement " -"construire un deuxième tas, qui croit à la même vitesse que le premier " -"décroît. Lorsque le premier tas a complètement disparu, vous échangez les " -"tas et démarrez une nouvelle séquence. Malin et plutôt efficace !" - -#: library/heapq.rst:402 -msgid "" -"In a word, heaps are useful memory structures to know. I use them in a few " -"applications, and I think it is good to keep a 'heap' module around. :-)" -msgstr "" -"Pour résumer, les tas sont des structures de données qu'il est bon de " -"connaître. Je les utilise dans quelques applications et je pense qu'il est " -"bon de garder le module *heap* sous le coude. ☺" - -#: library/heapq.rst:406 -msgid "Footnotes" -msgstr "Notes" - -#: library/heapq.rst:407 -msgid "" -"The disk balancing algorithms which are current, nowadays, are more annoying " -"than clever, and this is a consequence of the seeking capabilities of the " -"disks. On devices which cannot seek, like big tape drives, the story was " -"quite different, and one had to be very clever to ensure (far in advance) " -"that each tape movement will be the most effective possible (that is, will " -"best participate at \"progressing\" the merge). Some tapes were even able " -"to read backwards, and this was also used to avoid the rewinding time. " -"Believe me, real good tape sorts were quite spectacular to watch! From all " -"times, sorting has always been a Great Art! :-)" -msgstr "" -"Les algorithmes de répartition de charge pour les disques, courants de nos " -"jours, sont plus embêtants qu'utiles, en raison de la capacité des disques à " -"réaliser des accès aléatoires. Sur les périphériques qui ne peuvent faire " -"que de la lecture séquentielle, comme les gros lecteurs à bandes, le besoin " -"était différent et il fallait être malin pour s'assurer (bien à l'avance) " -"que chaque mouvement de bande serait le plus efficace possible (c'est-à-dire " -"participerait au mieux à l'« avancée » de la fusion). Certaines cassettes " -"pouvaient même lire à l'envers et cela était aussi utilisé pour éviter de " -"remonter dans le temps. Croyez-moi, les bons tris sur bandes étaient " -"spectaculaires à regarder ! Depuis la nuit des temps, trier a toujours été " -"le Grand Art ! ☺" diff --git a/library/hmac.po b/library/hmac.po deleted file mode 100644 index a3fd99bd14..0000000000 --- a/library/hmac.po +++ /dev/null @@ -1,257 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2021-04-28 21:10+0200\n" -"Last-Translator: Dimitri Merejkowsky \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.1\n" - -#: library/hmac.rst:2 -#, fuzzy -msgid ":mod:`!hmac` --- Keyed-Hashing for Message Authentication" -msgstr "" -":mod:`hmac` — Authentification de messages par hachage en combinaison avec " -"une clé secrète" - -#: library/hmac.rst:7 -msgid "**Source code:** :source:`Lib/hmac.py`" -msgstr "**Code source :** :source:`Lib/hmac.py`" - -#: library/hmac.rst:11 -msgid "" -"This module implements the HMAC algorithm as described by :rfc:`2104`. The " -"interface allows to use any hash function with a *fixed* digest size. In " -"particular, extendable output functions such as SHAKE-128 or SHAKE-256 " -"cannot be used with HMAC." -msgstr "" - -#: library/hmac.rst:19 -msgid "" -"Return a new hmac object. *key* is a bytes or bytearray object giving the " -"secret key. If *msg* is present, the method call ``update(msg)`` is made. " -"*digestmod* is the digest name, digest constructor or module for the HMAC " -"object to use. It may be any name suitable to :func:`hashlib.new`. Despite " -"its argument position, it is required." -msgstr "" -"Renvoie un nouvel objet HMAC. *key* est un objet *byte* ou *bytearray* " -"représentant la clé secrète. Si *msg* est présent, un appel à " -"``update(msg)`` est effectué. *digestmod* permet de choisir l’algorithme à " -"utiliser par l’objet HMAC, il accepte un nom de fonction de hachage (peut " -"être tout ce qui convient à :func:`hashlib.new`), un constructeur de " -"fonction de hachage ou un module implémentant la PEP 247. Bien qu’il soit " -"après *msg*, *digestmod* est un paramètre obligatoire." - -#: library/hmac.rst:25 -msgid "" -"Parameter *key* can be a bytes or bytearray object. Parameter *msg* can be " -"of any type supported by :mod:`hashlib`. Parameter *digestmod* can be the " -"name of a hash algorithm." -msgstr "" -"Le paramètre *key* peut être un *byte* ou un objet *bytearray*. Le paramètre " -"*msg* peut être de n'importe quel type pris en charge par :mod:`hashlib`. Le " -"paramètre *digestmod* peut être le nom d'un algorithme de hachage." - -#: library/hmac.rst:30 -#, fuzzy -msgid "" -"The *digestmod* argument is now required. Pass it as a keyword argument to " -"avoid awkwardness when you do not have an initial *msg*." -msgstr "" -"MD5 en tant qu’algorithme cryptographique par défaut implicite pour " -"*digestmod* est obsolète. Le paramètre *digestmod* est maintenant requis. " -"Passez-le en argument nommé pour éviter la bizarrerie que ça donnerait quand " -"vous n'avez pas un *msg* initial." - -#: library/hmac.rst:37 -msgid "" -"Return digest of *msg* for given secret *key* and *digest*. The function is " -"equivalent to ``HMAC(key, msg, digest).digest()``, but uses an optimized C " -"or inline implementation, which is faster for messages that fit into memory. " -"The parameters *key*, *msg*, and *digest* have the same meaning as " -"in :func:`~hmac.new`." -msgstr "" -"Renvoie le code d'authentification de *msg*, pour la clé secrète *key* et à " -"l'algorithme *digest* donné. La fonction est équivalente à ``HMAC(key, msg, " -"digest).digest()``, mais elle utilise une implémentation optimisée en C ou " -"*inline*, qui est plus rapide pour les messages dont la taille leur permet " -"de tenir en mémoire vive. Les paramètres *key*, *msg* et *digest* ont la " -"même signification que pour :func:`~hmac.new`." - -#: library/hmac.rst:43 -msgid "" -"CPython implementation detail, the optimized C implementation is only used " -"when *digest* is a string and name of a digest algorithm, which is supported " -"by OpenSSL." -msgstr "" -"Détail d'implémentation CPython, l'implémentation C optimisée n'est utilisée " -"que lorsque le *digest* est une chaîne de caractères et le nom d'un " -"algorithme de hachage implémenté dans OpenSSL." - -#: library/hmac.rst:52 -msgid "An HMAC object has the following methods:" -msgstr "Un objet HMAC a les méthodes suivantes :" - -#: library/hmac.rst:56 -msgid "" -"Update the hmac object with *msg*. Repeated calls are equivalent to a " -"single call with the concatenation of all the arguments: ``m.update(a); " -"m.update(b)`` is equivalent to ``m.update(a + b)``." -msgstr "" -"Met à jour l'objet HMAC avec *msg*. Des appels répétés sont équivalents à un " -"seul appel avec la concaténation de tous les arguments : ``m.update(a); " -"m.update(b)`` est équivalent à ``m.update(a + b)``." - -#: library/hmac.rst:60 -msgid "Parameter *msg* can be of any type supported by :mod:`hashlib`." -msgstr "" -"Le paramètre *msg* peut être de n'importe quel type géré par :mod:`hashlib`." - -#: library/hmac.rst:66 -msgid "" -"Return the digest of the bytes passed to the :meth:`update` method so far. " -"This bytes object will be the same length as the *digest_size* of the digest " -"given to the constructor. It may contain non-ASCII bytes, including NUL " -"bytes." -msgstr "" -"Renvoie le condensat des octets passés à la méthode :meth:`update` jusque " -"là. L'objet *bytes* renvoyé sera de la même longueur que la *digest_size* de " -"la fonction de hachage donnée au constructeur. Il peut contenir des octets " -"qui ne sont pas dans la table ASCII, y compris des octets NUL." - -#: library/hmac.rst:73 -#, fuzzy -msgid "" -"When comparing the output of :meth:`digest` to an externally supplied digest " -"during a verification routine, it is recommended to use " -"the :func:`compare_digest` function instead of the ``==`` operator to reduce " -"the vulnerability to timing attacks." -msgstr "" -"Si vous devez vérifier la sortie de :meth:`digest` avec un condensat obtenu " -"par ailleurs par un service extérieur durant une routine de vérification, il " -"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " -"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques temporelles." - -#: library/hmac.rst:81 -msgid "" -"Like :meth:`digest` except the digest is returned as a string twice the " -"length containing only hexadecimal digits. This may be used to exchange the " -"value safely in email or other non-binary environments." -msgstr "" -"Comme :meth:`digest` sauf que ce condensat est renvoyé en tant que chaîne de " -"caractères de taille doublée contenant seulement des chiffres hexadécimaux. " -"Cela permet d’échanger le résultat sans problèmes par e-mail ou dans " -"d'autres environnements ne gérant pas les données binaires." - -#: library/hmac.rst:87 -#, fuzzy -msgid "" -"When comparing the output of :meth:`hexdigest` to an externally supplied " -"digest during a verification routine, it is recommended to use " -"the :func:`compare_digest` function instead of the ``==`` operator to reduce " -"the vulnerability to timing attacks." -msgstr "" -"Si l'on compare la sortie de :meth:`hexdigest` avec celle d'un condensat " -"connu obtenu par un service extérieur durant une routine de vérification, il " -"est recommandé d'utiliser la fonction :func:`compare_digest` au lieu de " -"l'opérateur ``==`` afin de réduire la vulnérabilité aux attaques basées sur " -"les temps de réponse." - -#: library/hmac.rst:95 -msgid "" -"Return a copy (\"clone\") of the hmac object. This can be used to " -"efficiently compute the digests of strings that share a common initial " -"substring." -msgstr "" -"Renvoie une copie (un clone) de l'objet HMAC. C'est utile pour calculer de " -"manière efficace les empreintes cryptographiques de chaînes de caractères " -"qui ont en commun une sous-chaîne initiale." - -#: library/hmac.rst:99 -msgid "A hash object has the following attributes:" -msgstr "" -"Un objet *code d'authentification de message* (HMAC) possède les attributs " -"suivants :" - -#: library/hmac.rst:103 -msgid "The size of the resulting HMAC digest in bytes." -msgstr "" -"La taille du code d'authentification (c.-à-d. de l'empreinte " -"cryptographique) en octets." - -#: library/hmac.rst:107 -msgid "The internal block size of the hash algorithm in bytes." -msgstr "La taille interne d'un bloc de l'algorithme de hachage en octets." - -#: library/hmac.rst:113 -msgid "The canonical name of this HMAC, always lowercase, e.g. ``hmac-md5``." -msgstr "" -"Le nom canonique de ce HMAC, toujours en lettres minuscules, par exemple " -"``hmac-md5``." - -#: library/hmac.rst:118 -#, fuzzy -msgid "" -"Removed the undocumented attributes ``HMAC.digest_cons``, ``HMAC.inner``, " -"and ``HMAC.outer``." -msgstr "" -"Les attributs ``HMAC.digest_cons``, ``HMAC.inner`` et ``HMAC.outer`` (non " -"documentés) sont des détails d'implémentation internes et seront supprimés " -"en Python 3.10." - -#: library/hmac.rst:122 -msgid "This module also provides the following helper function:" -msgstr "Ce module fournit également la fonction utilitaire suivante :" - -#: library/hmac.rst:126 -msgid "" -"Return ``a == b``. This function uses an approach designed to prevent " -"timing analysis by avoiding content-based short circuiting behaviour, making " -"it appropriate for cryptography. *a* and *b* must both be of the same type: " -"either :class:`str` (ASCII only, as e.g. returned " -"by :meth:`HMAC.hexdigest`), or a :term:`bytes-like object`." -msgstr "" -"Renvoie ``a == b``. Cette fonction a été conçue pour prévenir les attaques " -"temporelles en évitant l'implémentation de courts-circuits basés sur le " -"contenu, ce qui la rend appropriée pour de la cryptographie. *a* et *b* " -"doivent être du même type : soit :class:`str` (caractères ASCII seulement, " -"comme retourné par :meth:`HMAC.hexdigest` par exemple), ou :term:`bytes-like " -"object`." - -#: library/hmac.rst:134 -msgid "" -"If *a* and *b* are of different lengths, or if an error occurs, a timing " -"attack could theoretically reveal information about the types and lengths of " -"*a* and *b*—but not their values." -msgstr "" -"Si *a* et *b* sont de longueurs différentes ou si une erreur se produit, une " -"attaque temporelle pourrait en théorie obtenir des informations sur les " -"types et longueurs de *a* et de *b*, mais pas sur leurs valeurs." - -#: library/hmac.rst:142 -msgid "" -"The function uses OpenSSL's ``CRYPTO_memcmp()`` internally when available." -msgstr "" -"Cette fonction utilise la fonction ``CRYPTO_memcmp()`` de OpenSSL quand " -"celle-ci est disponible." - -#: library/hmac.rst:148 -msgid "Module :mod:`hashlib`" -msgstr "Module :mod:`hashlib`" - -#: library/hmac.rst:149 -msgid "The Python module providing secure hash functions." -msgstr "Le module Python fournissant des fonctions de hachage sécurisé." - -#~ msgid "" -#~ "This module implements the HMAC algorithm as described by :rfc:`2104`." -#~ msgstr "" -#~ "Ce module implémente l'algorithme HMAC tel que décrit par la :rfc:`2104`." diff --git a/library/html.entities.po b/library/html.entities.po deleted file mode 100644 index 9092d81a5d..0000000000 --- a/library/html.entities.po +++ /dev/null @@ -1,86 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2025-10-24 10:39+0200\n" -"Last-Translator: Jean Abou Samra \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 3.0\n" - -#: library/html.entities.rst:2 -#, fuzzy -msgid ":mod:`!html.entities` --- Definitions of HTML general entities" -msgstr ":mod:`html.entities` — Définitions des entités HTML générales" - -#: library/html.entities.rst:7 -msgid "**Source code:** :source:`Lib/html/entities.py`" -msgstr "**Source code:** :source:`Lib/html/entities.py`" - -#: library/html.entities.rst:11 -msgid "" -"This module defines four " -"dictionaries, :data:`html5`, :data:`name2codepoint`, :data:`codepoint2name`, " -"and :data:`entitydefs`." -msgstr "" -"Ce module définit quatre " -"dictionnaires, :data:`html5`, :data:`name2codepoint`, :data:`codepoint2name`, " -"et :data:`entitydefs`." - -#: library/html.entities.rst:17 -msgid "" -"A dictionary that maps HTML5 named character references [#]_ to the " -"equivalent Unicode character(s), e.g. ``html5['gt;'] == '>'``. Note that the " -"trailing semicolon is included in the name (e.g. ``'gt;'``), however some of " -"the names are accepted by the standard even without the semicolon: in this " -"case the name is present with and without the ``';'``. See " -"also :func:`html.unescape`." -msgstr "" -"Un dictionnaire qui fait correspondre les références de caractères nommés " -"HTML5 [#]_ aux caractères Unicode équivalents, e.g. ``html5['gt;'] == '>'``. " -"À noter que le point-virgule en fin de chaîne est inclus dans le nom (e.g. " -"``'gt;'``), toutefois certains noms sont acceptés par le standard même sans " -"le point-virgule: dans ce cas, le nom est présent à la fois avec et sans le " -"``;``. Voir aussi :func:`html.unescape`." - -#: library/html.entities.rst:29 -msgid "" -"A dictionary mapping XHTML 1.0 entity definitions to their replacement text " -"in ISO Latin-1." -msgstr "" -"Un dictionnaire qui fait correspondre les définitions d'entités XHTML 1.0 " -"avec leur remplacement en ISO Latin-1." - -#: library/html.entities.rst:35 -#, fuzzy -msgid "A dictionary that maps HTML4 entity names to the Unicode code points." -msgstr "" -"Un dictionnaire qui fait correspondre les noms d'entités HTML avec les " -"points de code Unicode." - -#: library/html.entities.rst:40 -#, fuzzy -msgid "A dictionary that maps Unicode code points to HTML4 entity names." -msgstr "" -"Un dictionnaire qui fait correspondre les points de code Unicode avec les " -"noms d'entités HTML." - -#: library/html.entities.rst:44 -msgid "Footnotes" -msgstr "Notes" - -#: library/html.entities.rst:45 -#, fuzzy -msgid "" -"See https://html.spec.whatwg.org/multipage/named-characters.html#named-" -"character-references" -msgstr "" -"Voir https://html.spec.whatwg.org/multipage/syntax.html#named-character-" -"references" diff --git a/library/html.parser.po b/library/html.parser.po deleted file mode 100644 index 8e300c5a0f..0000000000 --- a/library/html.parser.po +++ /dev/null @@ -1,457 +0,0 @@ -# Copyright (C) 2001-2018, Python Software Foundation -# For licence information, see README file. -# -msgid "" -msgstr "" -"Project-Id-Version: Python 3\n" -"Report-Msgid-Bugs-To: \n" -"POT-Creation-Date: 2026-10-17 14:27+0200\n" -"PO-Revision-Date: 2022-05-08 09:48+0200\n" -"Last-Translator: Thierry Pellé \n" -"Language-Team: FRENCH \n" -"Language: fr\n" -"MIME-Version: 1.0\n" -"Content-Type: text/plain; charset=UTF-8\n" -"Content-Transfer-Encoding: 8bit\n" -"X-Generator: Poedit 2.2.1\n" - -#: library/html.parser.rst:2 -#, fuzzy -msgid ":mod:`!html.parser` --- Simple HTML and XHTML parser" -msgstr ":mod:`html.parser`— Un analyseur syntaxique simple pour HTML et XHTML" - -#: library/html.parser.rst:7 -msgid "**Source code:** :source:`Lib/html/parser.py`" -msgstr "**Code source :** :source:`Lib/html/parser.py`" - -#: library/html.parser.rst:15 -msgid "" -"This module defines a class :class:`HTMLParser` which serves as the basis " -"for parsing text files formatted in HTML (HyperText Mark-up Language) and " -"XHTML." -msgstr "" -"Ce module définit une classe :class:`HTMLParser` qui sert de base pour " -"l'analyse syntaxique de fichiers texte formatés HTML (*HyperText Mark-up " -"Language*, le « langage de balisage hypertexte ») et XHTML (*EXtensible " -"HyperText Markup Language*, le « langage extensible de balisage " -"hypertexte »)." - -#: library/html.parser.rst:20 -msgid "Create a parser instance able to parse invalid markup." -msgstr "" -"Crée une instance d'analyseur capable de traiter tout balisage, même " -"invalide." - -#: library/html.parser.rst:22 -#, fuzzy -msgid "" -"If *convert_charrefs* is true (the default), all character references " -"(except the ones in elements like ``script`` and ``style``) are " -"automatically converted to the corresponding Unicode characters." -msgstr "" -"Si *convert_charrefs* est ``True`` (valeur par défaut), toute référence de " -"caractère (sauf ceux enchâssés dans des éléments ``script``/``style``) est " -"automatiquement convertie en son caractère Unicode." - -#: library/html.parser.rst:26 -msgid "" -"If *scripting* is false (the default), the content of the ``noscript`` " -"element is parsed normally; if it's true, it's returned as is without being " -"parsed." -msgstr "" - -#: library/html.parser.rst:30 -msgid "" -"An :class:`.HTMLParser` instance is fed HTML data and calls handler methods " -"when start tags, end tags, text, comments, and other markup elements are " -"encountered. The user should subclass :class:`.HTMLParser` and override its " -"methods to implement the desired behavior." -msgstr "" -"Une instance de :class:`.HTMLParser` est alimentée par des données HTML. " -"Elle fait appel à des méthodes offrant un traitement spécifique quand est " -"rencontré un élément de balisage : balise ouvrante ou fermante, textes, " -"commentaires… Pour implémenter le comportement désiré, l'utilisateur crée " -"une sous-classe de :class:`.HTMLParser` en surchargeant ses méthodes." - -#: library/html.parser.rst:35 -msgid "" -"This parser does not check that end tags match start tags or call the end-" -"tag handler for elements which are closed implicitly by closing an outer " -"element." -msgstr "" -"Cet analyseur ne vérifie ni que les balises fermantes correspondent aux " -"balises ouvrantes, ni n'invoque le gestionnaire de balises fermantes pour " -"les éléments implicitement fermés par un élément extérieur." - -#: library/html.parser.rst:38 -msgid "*convert_charrefs* keyword argument added." -msgstr "L'argument *convert_charrefs* a été ajouté." - -#: library/html.parser.rst:41 -msgid "The default value for argument *convert_charrefs* is now ``True``." -msgstr "" -"La valeur par défaut de l'argument *convert_charrefs* est désormais ``True``." - -#: library/html.parser.rst:44 -msgid "Added the *scripting* parameter." -msgstr "" - -#: library/html.parser.rst:49 -msgid "Example HTML Parser Application" -msgstr "Exemple d'application de l'analyseur HTML" - -#: library/html.parser.rst:51 -#, fuzzy -msgid "" -"As a basic example, below is a simple HTML parser that uses " -"the :class:`HTMLParser` class to print out start tags, end tags, and data as " -"they are encountered:" -msgstr "" -"Comme exemple simple, un analyseur HTML minimal qui utilise la " -"classe :class:`HTMLParser` pour afficher les balises ouvrantes, les balises " -"fermantes ainsi que les données quand elles apparaissent ::" - -#: library/html.parser.rst:73 -msgid "The output will then be:" -msgstr "La sortie est alors :" - -#: library/html.parser.rst:92 -msgid ":class:`.HTMLParser` Methods" -msgstr "Méthodes de la classe :class:`.HTMLParser`" - -#: library/html.parser.rst:94 -msgid ":class:`HTMLParser` instances have the following methods:" -msgstr "" -"Les instances de :class:`HTMLParser` disposent des méthodes suivantes :" - -#: library/html.parser.rst:99 -msgid "" -"Feed some text to the parser. It is processed insofar as it consists of " -"complete elements; incomplete data is buffered until more data is fed " -"or :meth:`close` is called. *data* must be :class:`str`." -msgstr "" -"Alimente l'analyseur avec du texte. Ce texte est traité dans la mesure où il " -"constitue des éléments complets ; les données incomplètes sont mises dans un " -"tampon jusqu'à ce que d'autres données soient fournies ou que la " -"méthode :meth:`close` soit appelée. L'argument *data* doit être de " -"classe :class:`str`." - -#: library/html.parser.rst:106 -msgid "" -"Force processing of all buffered data as if it were followed by an end-of-" -"file mark. This method may be redefined by a derived class to define " -"additional processing at the end of the input, but the redefined version " -"should always call the :class:`HTMLParser` base class method :meth:`close`." -msgstr "" -"Force le traitement de toutes les données du tampon comme si elles étaient " -"suivies par un caractère *fin de fichier*. Cette méthode peut-être redéfinie " -"par une classe dérivée pour ajouter des traitements supplémentaires à la fin " -"de l'entrée, mais la version redéfinie devra impérativement appeler la " -"méthode :meth:`close` de la classe de base :class:`HTMLParser`." - -#: library/html.parser.rst:114 -msgid "" -"Reset the instance. Loses all unprocessed data. This is called implicitly " -"at instantiation time." -msgstr "" -"Réinitialise l'instance. Toutes les données non traitées sont perdues. Cette " -"méthode est appelée implicitement lors de l'instanciation." - -#: library/html.parser.rst:120 -msgid "Return current line number and offset." -msgstr "" -"Renvoie le numéro de ligne et le numéro du caractère dans la ligne où le " -"curseur est positionné." - -#: library/html.parser.rst:125 -#, fuzzy -msgid "" -"Return the text of the most recently opened start tag. This should not " -"normally be needed for structured processing, but may be useful in dealing " -"with HTML \"as deployed\" or for re-generating input with minimal changes " -"(whitespace between attributes can be preserved, etc.)." -msgstr "" -"Renvoie le texte de la dernière balise ouverte. Pour un traitement " -"structuré, ce ne devrait jamais être nécessaire, mais peut s'avérer utile " -"pour traiter un code HTML de mauvaise qualité (tel qu'on en trouve souvent) " -"ou pour ré-générer la balise avec des changements mineurs (les espaces entre " -"les attributs pouvant être préservés, etc. …)." - -#: library/html.parser.rst:131 -msgid "" -"The following methods are called when data or markup elements are " -"encountered and they are meant to be overridden in a subclass. The base " -"class implementations do nothing (except " -"for :meth:`~HTMLParser.handle_startendtag`):" -msgstr "" -"Les méthodes suivantes sont appelées lors de la rencontre de données ou " -"d'éléments de balisage ; elles sont destinées à être surchargées par la sous-" -"classe. L'implémentation de la classe de base ne fait rien (sauf pour ce qui " -"est de :meth:`~HTMLParser.handle_startendtag`) :" - -#: library/html.parser.rst:138 -msgid "" -"This method is called to handle the start tag of an element (e.g. ``
``)." -msgstr "" -"Cette méthode est appelée pour traiter une balise ouvrante (p. ex. ``
``)." - -#: library/html.parser.rst:140 -#, fuzzy -msgid "" -"The *tag* argument is the name of the tag converted to lower case. The " -"*attrs* argument is a list of ``(name, value)`` pairs containing the " -"attributes found inside the tag's ``<>`` brackets. The *name* will be " -"translated to lower case, and quotes in the *value* have been removed, and " -"character and entity references have been replaced. For empty attributes, " -"*value* is ``None``." -msgstr "" -"L'argument *tag* contient le nom de la balise en minuscules. L'argument " -"*attrs* contient une liste de *n-uplets* ``(name, value)`` regroupant les " -"attributs présents entre les symboles ``<`` et ``>`` de la balise. Le " -"paramètre *name* est converti en minuscule ; les guillemets sont supprimés " -"du paramètre *value* et toute entité de référence ou de caractère est " -"remplacée." - -#: library/html.parser.rst:146 -msgid "" -"For instance, for the tag ````, this method " -"would be called as ``handle_starttag('a', [('href', 'https://" -"www.cwi.nl/')])``." -msgstr "" -"Par exemple, pour la balise ````, cette " -"méthode est appelée par ``handle_starttag('a', [('href', 'https://" -"www.cwi.nl/')])``." - -#: library/html.parser.rst:149 -msgid "" -"All entity references from :mod:`html.entities` are replaced in the " -"attribute values." -msgstr "" -"Toute référence d'entité présente dans :mod:`html.entities` est remplacée " -"dans la valeur des attributs." - -#: library/html.parser.rst:155 -msgid "" -"This method is called to handle the end tag of an element (e.g. ``
``)." -msgstr "" -"Cette méthode est appelée pour traiter les balises fermantes (p. ex. ````)." - -#: library/html.parser.rst:157 -msgid "The *tag* argument is the name of the tag converted to lower case." -msgstr "L'argument *tag* est le nom de la balise en minuscules." - -#: library/html.parser.rst:162 -msgid "" -"Similar to :meth:`handle_starttag`, but called when the parser encounters an " -"XHTML-style empty tag (````). This method may be overridden by " -"subclasses which require this particular lexical information; the default " -"implementation simply calls :meth:`handle_starttag` " -"and :meth:`handle_endtag`." -msgstr "" -"Traitée de façon similaire à :meth:`handle_starttag`, mais appelée quand " -"l'analyseur rencontre une balise vide de type *XHTML* (p. ex. ````). Cette méthode peut-être surchargée par les sous-classes demandant " -"cette information lexicale ; l'implémentation par défaut appelle " -"simplement :meth:`handle_starttag` et :meth:`handle_endtag`." - -#: library/html.parser.rst:170 -#, fuzzy -msgid "" -"This method is called to process arbitrary data (e.g. text nodes and the " -"content of elements like ``script`` and ``style``)." -msgstr "" -"Cette méthode est appelée pour traiter toute donnée arbitraire (p. ex. les " -"nœuds textuels ou les contenus de ```` et ``